diff --git a/.agents/AGENTS.md b/.agents/AGENTS.md index aa55e036..02689188 100644 --- a/.agents/AGENTS.md +++ b/.agents/AGENTS.md @@ -3,20 +3,40 @@ Guidance for AI coding agents working on the N-APT RF spectrum analyzer. Keep feature notes and implementation summaries in `.agents/`. +For signal-processing, IQ-capture, FFT, demodulation, `/learn`, or signals CLI +work, load `.agents/signals/SKILL.md`. It defines the project's plain-language +terminology, current demod modes, evidence standards, and RX-only safety rules. + ## Working Rules - The user normally has the dev server running. Do not start or restart it for ordinary changes; Vite and Rust hot reload are enabled. -- Do not run `npm run build`; run `npm run build:markdown` only for markdown +- Keep changes scoped, avoid scratch files, and keep the workspace clean. +- Keep changes as device/source agnostic as possible. +- Do not add unrequested design changes or features. +- Ensure to update checklists, tasks, etc., as you complete tasks. +- Do not run `npm run build`; run `npm run build:article` only for markdown article changes. - Do not use browser automation for testing. If frontend testing is necessary, use `http://localhost:5173`; `127.0.0.1` is blocked. +- Do not preserve backwards compatibility. - Prefer inspecting code and focused tests over repeating broad verification. - Use the Act MCP tool for repository searches. -- Do not add unrequested design changes or features. - Add regression tests for bugs and run `npm run typecheck` after TypeScript changes. Run `cargo check` after Rust changes. -- Keep changes scoped, avoid scratch files, and keep the workspace clean. + +## Real-Time Device I/O + +- Do not log from device I/O paths. This includes RTL-SDR/HackRF callbacks, + sample reads and writes, acquisition hot paths, reader startup/restart, + cancellation, cleanup/drop, and Tx monitor or transmission callbacks. +- Logger formatting and logger locks can delay USB/libusb work and make the + hardware unstable. Use comments to document these constraints, and use + returned errors, state, counters, or deferred control-plane diagnostics to + surface failures after the I/O operation completes. +- Keep the global Tx log disabled; do not re-enable it or add logging around + physical Tx operations without explicit authorization and device-safety + evidence. ## Mock APT SDR Rules @@ -29,12 +49,12 @@ feature notes and implementation summaries in `.agents/`. ## I/Q Captures and Privacy -- Never add I/Q capture data to Git. This includes `.napt`, `.wav`, `.iq`, and - related extensions such as `.iq.u8` and `.c64`. Keep captures local or in +- Never add I/Q capture data to Git. This includes `.napt, .iq, .wav`, and + related extensions such as `.c64`. Keep captures local or in external storage; version only metadata, manifests, and synthetic fixtures. - Treat every I/Q capture as potentially sensitive: it may reveal information about the recording environment, and some signals may contain exceptionally - sensitive or otherwise unparalleled information. + sensitive or otherwise private information. - Treat N-APT captures as the greatest privacy risk in this project. Minimize copying and exposure, and never share, upload, or commit them without the user's explicit authorization. @@ -87,6 +107,7 @@ build merely to validate a local edit. ### TypeScript and React - Use strict TypeScript; prefer `unknown` over `any`. +- In tests, import `act` from `@testing-library/react`; do not use `react-dom/test-utils`. - Use `camelCase` for variables/functions, `PascalCase` for types/components, and `UPPER_SNAKE_CASE` for constants. - Keep hook dependency arrays correct and use `useCallback` when passing stable @@ -108,10 +129,31 @@ build merely to validate a local edit. - The main app runs on port 5173. The markdown preview runs on port 5174. - The login password is `UNSAFE_LOCAL_USER_PASSWORD` in `.env.local`; do not print or commit secrets. -- Rust logs are in `/tmp/rust_log.txt`; Tx logs are in `/tmp/n-apt/tx_log.txt`. +- Rust logs, both output and errors, are in `/tmp/rust_log.txt`; Tx logs are in `/tmp/n-apt/tx_log.txt`. ## Repository Conventions - Use `@n-apt/*` for scoped imports. - When adding Vite aliases for static assets, update Jest `moduleNameMapper` so tests resolve them through the shared file mock instead of parsing raw assets. + +## Learned User Preferences + +- Prefer frontend DSP for demodulation so audio/processing changes can be inspected and listened to in real time on the demod route. +- Treat `liveSourceLifecycle` and `sourcePresentationController` as the source of truth for live placeholder and stream lifecycle; FFT/waterfall canvases should only render those states. Paused Rx keeps the last live Rx frame; Tx standby accepts `request_next_frame` previews; transmitting must unfreeze and follow live Tx frames. +- When the backend is down or killed, show Server Down / unavailable — not an indefinite Loading FFT state or optimistic Loading flashes from polling. +- Do not auto-start Tx when opening a Tx device into standby; standby is announce-only until the user explicitly starts transmit. +- Keep VFO and FrequencyRangeSlider scroll/pan responsive; avoid debounce, timer coalescing, or paint gates that stall live spectrum during hardware retune. +- Keep mirror I/Q baseband behavior explicit in `test/ts/basebandMirror.test.ts`; the mirror path should stay GPU-resample focused with performance close to mirror-off. +- Keep build/hot-reload orchestration under `scripts/build`; leave in-app hot-reload notifications in the app code. + +## Learned Workspace Facts + +- Never lower the hardware sample rate below 3.2 MHz (N-APT Nyquist needs that width); narrower modes such as FM use a bandwidth slice/window inside that sample rate. +- Span bandwidth is a selected slice within the sample-rate window, not the same thing as sample rate. +- The available spectrum display range is 0 Hz to 30 GHz; center/span padding and clamps must respect those bounds (including sample_rate/2 from center). With "Mirror I/Q baseband below 0 Hz" enabled, negative-frequency presentation is allowed without changing what the radio is tuned to. +- Mirror I/Q below 0 Hz is presentation-only: reflect acquired positive baseband across DC via `basebandMirror.ts` and the WebGPU resample path; it must not retune hardware on every pan tick. +- During VFO/slider retune, paint live IQ on each frame's acquisition axis (`center_frequency_hz ± sample_rate/2`) when the requested viewport and frame center diverge; mapping bins onto the scrolled Redux viewport causes channel-island flatlining. +- Agent guidance and related docs live under `.agents/` (including `.agents/AGENTS.md`). +- HackRF One needs LNA/VGA/AMP gain plus baseband bandwidth-filter control, with persistence/control parity similar to other radio gain settings. +- Avoid eagerly loading heavy `/transformers` / transformers.js paths on app startup; they can hang localhost load and should stay excluded or lazy-loaded. diff --git a/.agents/FEATURE_COMPLETION_SUMMARY.md b/.agents/FEATURE_COMPLETION_SUMMARY.md deleted file mode 100644 index c8196a5d..00000000 --- a/.agents/FEATURE_COMPLETION_SUMMARY.md +++ /dev/null @@ -1,20 +0,0 @@ -# Walkthrough - Transmit (Tx) Stability and Phase Continuous Synthesis - -We have diagnosed and resolved two critical issues related to mock Transmit (Tx) functionality and interaction: - -1. **Panning spectral spikes and I/Q garble**: Discovered that calculating the mock Tx receiver phase using the absolute sample cursor index `t_f` multiplied by the relative frequency `phase_step` caused major phase jumps and discontinuities at frame boundaries when the relative frequency changed during panning or zooming. This has been resolved by storing a persistent `mock_tx_phase_accumulator` inside `SharedState` on the Rust backend, and incrementally updating the phase sample-by-sample. -2. **Frontend-induced backend crashes**: Guarded drag interaction callbacks in [TxSliderOverlay.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/TxSliderOverlay.tsx) to prevent `NaN` values from propagating to React state, Redux store, and the backend. - -## Changes Made - -### Backend (Rust) -- Added `mock_tx_phase_accumulator: Mutex` to `SharedState` in [shared_state.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/server/shared_state.rs). -- Modified `synthesize_mock_tx_monitor_iq` in [websocket_server.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/server/websocket_server.rs) to accept `phase_accumulator: &mut f64` and accumulate the phase step sample-by-sample, keeping it normalized. -- Updated all test suites and main loops calling `synthesize_mock_tx_monitor_iq` to correctly thread the phase accumulator. - -### Frontend (React) -- Added robust `Number.isFinite` validations in [TxSliderOverlay.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/TxSliderOverlay.tsx) to block any potential `NaN` values resulting from pointer computations from dispatching. - -## Verification Results -- **Rust Backend**: All unit and integration tests successfully compile and pass, with all performance/regression testing passing. -- **Frontend App**: All type checks and Jest test runs pass successfully. diff --git a/.agents/FRAME_RATE_AND_SYNC_FIX.md b/.agents/FRAME_RATE_AND_SYNC_FIX.md deleted file mode 100644 index 87b481e2..00000000 --- a/.agents/FRAME_RATE_AND_SYNC_FIX.md +++ /dev/null @@ -1,22 +0,0 @@ -# Frame Rate Relocation and Settings Sync Fixes - -## Problem -1. **Frame Rate Capping**: With higher sample rates (e.g. in "Whole Channel" mode), the frontend capped the max frame rate to `12` fps (when FFT size is `262144`) or similar low values, because it calculated the max frame rate using the hardcoded hardware maximum sample rate (`3.2MHz` for mock) instead of the *current active* sample rate (`18.25MHz`). -2. **LocalStorage Loop**: The frontend loaded cached SDR settings from localStorage/sessionStorage on startup, which prematurely triggered the initialization effect in `useSpectrumStore.tsx` and blocked the real backend defaults from being absorbed once connected. The Redux cache was also never updated during the active WebSocket session because the status messages didn't dispatch the status updates to Redux. - -## Solutions - -### 1. Frame Rate Relocation & Active Calculation -- Relocated frame rate cap logic (`MAX_SCREEN_REFRESH_RATE = 60`, `computeMaxFrameRate`, `getLogicalSizeToFrameRate`, and `getLogicalMaxFrameRate`) to [signals.ts](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/utils/signals.ts). -- Updated [useSdrSettings.ts](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/hooks/useSdrSettings.ts) to calculate the max frame rate and perform coupled adjustments using the current active sample rate (`state.sampleRateHz` / `stateRef.current.sampleRateHz`). -- Enhanced `getLogicalMaxFrameRate` to dynamically fallback to `computeMaxFrameRate(sampleRate, fftSize)` if the backend settings' sample rate is not in sync with the active frontend sample rate yet, resolving lag on change. - -### 2. Synchronization Loop Fix -- Reset the initialization flag (`hasInitializedBackendSettingsRef.current = false`) in [useSpectrumStore.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/hooks/useSpectrumStore.tsx) when `isConnected` transitions to `true`. -- Conditioned the default settings absorption effect on `isConnected` being `true` so it only runs when connected to the real WebSocket backend. -- Updated the WebSocket settings caching effect in `useSpectrumStore.tsx` to write to `localStorage` under `"napt-sdr-settings"` and dispatch `updateDeviceState` to the Redux store whenever a status update is received, keeping the caches and store in sync. -- Handled TS type checks by casting `sdrSettings` to `any` during the dispatch. - -## Verification -- TypeScript type checking: `npm run typecheck` (Passed). -- Jest test suite: `npm test` (Passed). diff --git a/.agents/NON_TTY_BUILD_NOTIFICATIONS.md b/.agents/NON_TTY_BUILD_NOTIFICATIONS.md deleted file mode 100644 index b3706492..00000000 --- a/.agents/NON_TTY_BUILD_NOTIFICATIONS.md +++ /dev/null @@ -1,30 +0,0 @@ -# Non-TTY Build Process and Notifications - -We have added support to the build orchestrator (`scripts/build/build-orchestrator.tsx`) to perform build steps and send OS-level notifications when the script is run in non-TTY (non-interactive) environments. - -## Notification Events - -1. **Build Started**: - - Triggers immediately when the orchestrator starts in non-TTY mode. - - Message: `N-APT / Staring build...` - -2. **Almost Done (Rust backend build)**: - - Triggers when the orchestrator reaches the composite Rust backend compilation step. - - Message: `N-APT, Almost done building...` - -3. **Build Success**: - - Triggers when all build steps complete successfully. - - Message: `✓ Finished building and running at http://localhost:5173` - -4. **Build Errors**: - - Triggers when any build step fails, identifying the specific errored components. - - Message structure: - - For single component error: `N-APT / Failed to build, error with [Component]` - - For multiple component errors: `N-APT / Failed to build, errors with [Component1] and [Component2]` - - Mapped Components: - - **Rust**: Steps 1 and 7 - - **signals.yaml**: Step 2 - - **Redis**: Steps 3 and 4 - - **WASM**: Step 5 - - **N-APT Encrypted Modules**: Step 6 - - **Typescript**: Step 8 diff --git a/.agents/ONBOARDING_PROMPT.md b/.agents/ONBOARDING_PROMPT.md new file mode 100644 index 00000000..c3760a6d --- /dev/null +++ b/.agents/ONBOARDING_PROMPT.md @@ -0,0 +1,94 @@ +# Partial n-apt Onboarding Prompt + +Copy this prompt into a new coding-agent session when the agent needs a fast, +partial understanding of this repository before making a scoped change. + +```text +You are onboarding to the n-apt repository, an SDR spectrum-analyzer and +signal-visualization application. Build a partial mental model first; do not +modify files during onboarding unless the user separately asks for a change. + +## Start here + +1. Read `.agents/AGENTS.md` and `.agents/SECURITY.md`. +2. Read `README.md` only for the product vocabulary and broad feature scope; + do not treat its narrative claims as implementation evidence. +3. Inspect `package.json`, `Cargo.toml`, `vite.config.js`, `tsconfig.json`, + `scripts/build/`, and the current Git status. +4. Follow this reading order: + + - `src/ts/root.tsx` and the route/app-shell files under `src/ts/app/` + - `src/ts/redux/store.ts`, the Redux slices, and + `src/ts/redux/middleware/websocketMiddleware.ts` + - `src/ts/validation/schemas.ts` and + `src/ts/consts/schemas/websocket.ts` + - `src/ts/app/routes/pages/SpectrumRoute.tsx`, + `src/ts/features/spectrum/FFTCanvas.tsx`, and the waterfall components + - `src/rs/server/main_bin.rs`, `src/rs/server/main.rs`, + `src/rs/app/bootstrap.rs`, and `src/rs/app/router.rs` + - `src/rs/server/types.rs`, `src/rs/server/websocket_server/`, + `src/rs/server/stream_manager.rs`, and `src/rs/streaming/` + - `src/rs/sdr/`, `src/rs/acquisition/`, and `src/rs/s/fft/` + - `src/rs/lib.rs`, `scripts/build/build_wasm.sh`, and + `packages/n_apt_canvas/` only when the task involves WASM or WebGPU + +## Trace one vertical path + +Explain the actual lifecycle, with file and symbol references, for: + +`process startup → frontend authentication → `/ws` and `/ws/streams` → +`source_info` inventory/active-source handoff → source selection → I/Q or +spectrum frame transport → Redux state → FFT/waterfall presentation`. + +Also identify where the following are owned: + +- source selection intent versus backend-confirmed active source; +- WebSocket message validation and protocol/version ordering; +- live/paused/standby/transmitting presentation state; +- hardware acquisition versus display-rate frame dropping; +- FFT, resampling, mirroring, and WebGPU/WASM work; +- authentication, sessions, Redis readiness, and HTTP routes. + +## Produce a short onboarding memo + +Return: + +1. a five-to-eight-step guided reading order; +2. the key runtime boundaries and data contracts; +3. the smallest relevant test locations for a future change; +4. three to five risks or invariants an implementer must preserve; +5. open questions and areas not inspected. + +Label each statement as one of `verified in code`, `verified by focused test`, +or `inference`. Do not claim browser, live-backend, physical-device, or +hardware validation unless it was actually performed and recorded separately. + +## Project guardrails + +- Preserve unrelated dirty-worktree changes. Inspect `git status` and diffs + before proposing edits. +- Do not start or restart the development server for ordinary code changes. +- Do not run `npm run build`; use focused checks. Run `npm run typecheck` after + TypeScript changes and `cargo check` after Rust changes. +- Do not add logging to RTL-SDR/HackRF callbacks, sample I/O, acquisition, + restart/cleanup/drop, or Tx paths. Keep global Tx logging disabled. +- Never commit, upload, decrypt, or expose I/Q captures, credentials, or + private environment values. Prefer synthetic fixtures. +- Treat `source_info` as the authoritative active-source/inventory boundary; + `/ws` and `/ws/streams` have distinct responsibilities. +- If the task concerns signal processing, IQ capture, FFT, demodulation, + `/learn`, or the signals CLI, read `.agents/signals/SKILL.md` before going + deeper. + +## Deliberate partial scope + +Do not deeply inspect `src/app-article/`, `src/app-game/`, legal pages, tower +data/Redis tooling, encrypted modules, or unrelated scripts unless the task +reaches one of those areas. Say explicitly when the onboarding stops at one of +those boundaries. +``` + +This is intentionally a partial onboarding prompt, not a complete architecture +catalog. It prioritizes the live application path and the contracts most likely +to matter for frontend, backend, transport, spectrum, and device-lifecycle +work. diff --git a/.agents/RUST_HOTLOAD_AND_BUILD_PRUNING.md b/.agents/RUST_HOTLOAD_AND_BUILD_PRUNING.md deleted file mode 100644 index 7c0886f2..00000000 --- a/.agents/RUST_HOTLOAD_AND_BUILD_PRUNING.md +++ /dev/null @@ -1,13 +0,0 @@ -# Rust Hotload and Build Pruning Summary - -We have fixed the lack of Rust backend hot reloading and the excessive build garbage accumulation. - -## Key Actions Taken - -1. **Profile Alignment**: Updated all check and validation commands (including in TTY and Non-TTY scripts) to build with `--profile dev-fast` instead of default debug. This avoids building the project twice (once for debug and once for dev-fast), saving ~3.6GB in the `target` folder. -2. **Incremental Build Pruning**: Implemented `pruneIncrementalCache()`. Before any Rust build or rebuild, it automatically lists subdirectories in `target/dev-fast/incremental` and `target/debug/incremental`, sorts them by modification time, and removes all but the 5 most recent directories to prevent unbounded cache growth. -3. **Rust Hotload filesystem watcher**: Configured an `fs.watch` recursive watcher on `src/rs` within the orchestrator. When `.rs` or `Cargo.toml` files are changed, it debounces (300ms) and rebuilds/restarts the Rust server. In case of syntax/compilation errors, the previous running instance of the backend is kept alive and warning/error details are clearly displayed in the dashboard, preventing developer friction. -4. **UI Rebuild Notifications**: Added `.rebuild_status.json` write events to the build orchestrator. Added a custom `/rebuild-status` endpoint in the Vite dev server ([vite.config.js](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/vite.config.js)) and a custom React hook ([useRustRebuildStatus.ts](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/hooks/useRustRebuildStatus.ts)) in the frontend. This polls the status and dispatches live warnings and completion/failure notifications to the user interface. -5. **Vite Proxy & Crash Recovery**: - - Added an error handler to the `/ws` proxy rule in [vite.config.js](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/vite.config.js) to catch and gracefully destroy socket connections during backend rebuild/restart periods, preventing the dev server from crashing with `AggregateError [ECONNREFUSED]`. - - Added an auto-restart listener in [build-orchestrator.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/scripts/build/build-orchestrator.tsx) that automatically restarts the Rust backend after 1s if it exits unexpectedly (excluding intentional hot reload terminations or full program shutdowns). diff --git a/.agents/SECURITY.md b/.agents/SECURITY.md new file mode 100644 index 00000000..61d7d8e8 --- /dev/null +++ b/.agents/SECURITY.md @@ -0,0 +1,79 @@ +# Security Policy + +## Scope + +This policy covers the n-apt source repository, its Rust backend, TypeScript +frontend, WebSocket endpoints, WASM modules, build scripts, and published +packages or binaries maintained from this repository. + +I/Q captures and related recordings are especially sensitive. Do not include +captures, credentials, private keys, or other personal data in a report or +pull request. Share the smallest reproducible artifact possible, preferably a +synthetic fixture or a redacted log. + +Never upload captures or derived artifacts to AI tools, security scanners, +issue trackers, or other cloud services. Avoid exposing capture filenames, +metadata, filesystem paths, logs, screenshots, recordings, or crash dumps when +they could identify a person, place, device, or recording environment. + +Do not decrypt, copy, transform, or export captures unless necessary for the +requested task. Keep temporary derivatives outside the repository and remove +them after use when they are no longer needed. Use synthetic fixtures or +redacted excerpts for tests, bug reports, and reproductions whenever possible. + +## Supported versions + +Security fixes are generally made against the default branch and the most +recent release. Older versions may not receive backports. + +## Reporting a vulnerability + +Please report suspected vulnerabilities privately through GitHub's repository +security advisory / private vulnerability reporting flow for +[ceane/n-apt](https://github.com/ceane/n-apt/security/advisories). + +If that flow is unavailable, contact the maintainer through the contact method +listed on the [repository owner profile](https://github.com/ceane) and request +a private security channel. Do not open a public issue for an undisclosed +vulnerability. + +Include, when safe to share: + +- the affected version, commit, or deployment; +- the component and vulnerability type; +- clear reproduction steps or a minimal proof of concept; +- the security impact and any prerequisites; and +- suggested mitigation, if known. + +Please allow time for confirmation, remediation, and coordinated disclosure. +We will acknowledge valid reports, keep the reporter informed when practical, +and credit reporters who want attribution. + +## Automated findings and triage + +CodeQL alerts and Aikido findings are treated as security signals, not as +automatic proof of exploitability. Maintainers should reproduce or otherwise +validate each finding, identify the affected data flow and reachable +deployment, and record the decision to fix, mitigate, defer, or dismiss. + +- **CodeQL:** review alerts in the repository's GitHub Security tab, prioritize + reachable high-impact flows, and retain the alert reference in the change or + triage record. +- **Aikido:** review the trial workspace findings for dependency, secret, + SAST, and infrastructure exposure; verify that the finding maps to this + repository and is not a duplicate of a CodeQL alert. +- **Dependencies and secrets:** rotate exposed credentials immediately, avoid + committing secrets while reproducing a finding, and use lockfile-aware + updates for dependency fixes. + +Automated scanners do not replace review of authentication, authorization, +WebSocket input validation, file/capture handling, cryptography, or native +device boundaries. + +## Disclosure + +Please keep vulnerability details private until a fix or mitigation is +available and a disclosure date has been agreed with the maintainer. Public +security advisories should include affected versions, fixed versions or +mitigations, and upgrade guidance without exposing sensitive captures or +credentials. diff --git a/.agents/SECURITY_UPDATES.md b/.agents/SECURITY_UPDATES.md deleted file mode 100644 index f5ee6b5b..00000000 --- a/.agents/SECURITY_UPDATES.md +++ /dev/null @@ -1,26 +0,0 @@ -# Security Updates Summary - -We resolved the security vulnerabilities listed in the package security report by adding/updating overrides in `package.json` to pull patched versions published before the registry cutoff date of June 3, 2026. - -## Fixed Vulnerabilities - -1. **Hono Framework Vulnerabilities** - * **Issues:** - * IP Restriction bypass for non-canonical IPv6 (CVE-2026-47674) - * Prefix stripping mismatch using undecoded paths in `app.mount()` (CVE-2026-47676) - * JWT middleware accepting any Authorization scheme (CVE-2026-47673) - * Cookie helper injection due to unsanitized `sameSite` and `priority` (CVE-2026-47675) - * **Fix:** Added `"hono": "^4.12.23"` to the `overrides` section of `package.json` to resolve these issues. Version `4.12.23` is the latest version published before the local June 3, 2026 registry cutoff. - -2. **protobufjs Vulnerability** - * **Issue:** Denial of Service via unbounded recursive JSON descriptor expansion (CVE-2026-45740). - * **Fix:** Updated the `"protobufjs"` override version in `package.json` to `^7.6.2`, which includes the patch and matches the registry date cutoff. - -3. **qs & ws Packages** - * Verified that the existing overrides (`"qs": "^6.15.2"` and `"ws": "^8.21.0"`) are correct and target the patched versions for their respective vulnerabilities (CVE-2026-8723 and CVE-2026-45736). - -## Verification Results - -* Ran `npm run typecheck` - TS compiled successfully. -* Ran `npm test` - All 1,010 Jest unit tests and vitest shader tests passed successfully. -* Ran `cargo check` - Rust backend compiled successfully. diff --git a/.agents/TX_BANDWIDTH_AND_CLIP_FIX.md b/.agents/TX_BANDWIDTH_AND_CLIP_FIX.md deleted file mode 100644 index 9fea1fa5..00000000 --- a/.agents/TX_BANDWIDTH_AND_CLIP_FIX.md +++ /dev/null @@ -1,21 +0,0 @@ -# Feature Completion Summary: Mock Tx Bandwidth and Clipping Fixes - -We have resolved the mock transmitter synthesis issues, OFDM shape failures, and spectral mask violations. - -## Implemented Fixes - -### 1. Preset Bandwidth and IFFT Size Resolution -- Updated `synthesize_mock_tx_monitor_iq` to fallback to the configured preset `bandwidth_hz` from `signals.yaml` when the user-provided `tx_bandwidth_hz` is not specified or set to `0.0`. -- Ensured that `tx_ifft_size` is respected for baseband generation, preventing signals from being stretched to the full display bandwidth. - -### 2. OFDM Skirt Shape Conformity -- Adjusted `shoulder_start` in `mock_tx_gen.rs` to `0.50` for `wifi` and `0.55` for `5g`. This triggers the rolloff earlier, ensuring that the 75th percentile of the shoulder drops below the flat top by the required margin. - -### 3. Dithered Bandwidth Clamping -- Modified `clamp_quantized_iq_to_bandwidth` in `mock_tx.rs` to use `quantize_mock_tx_iq` for dithered quantization back to 8-bit integer format. This removes the truncation spurs (distortion harmonics) and lowers the peak out-of-band energy to satisfy the 50 dB spectral mask. - -### 4. Grid Filtering in Shape Tests -- Filtered spectrum bins in OFDM shape tests (`tx_monitor_wifi_and_5g_have_ofdm_shaped_skirts_not_square_edges` and `tx_monitor_wifi_and_5g_have_flat_top_then_internal_rolloff`) by `idx % 32 == 0`. This checks only the active bins of the repeated 2048-sample IFFT grid, preventing the percentiles from being skewed by empty bins. - -### 5. Concurrent Test Synchronization -- Serialized execution of `synthesize_mock_tx_monitor_iq` under `#[cfg(test)]` using `cwd_lock` to prevent parallel test runners from triggering race conditions on the configuration cache. diff --git a/.agents/TX_FIX_SUMMARY.md b/.agents/TX_FIX_SUMMARY.md deleted file mode 100644 index ac57b627..00000000 --- a/.agents/TX_FIX_SUMMARY.md +++ /dev/null @@ -1,27 +0,0 @@ -# Tx Mode Transmission Fix Summary - -## Goal -Diagnose and fix the "Start Tx" button and transmission functionality which was not working at all. - -## Key Findings & Root Causes -1. **WebSocket Handler Delimiter & Branch Syntax Error**: In [websocket_handlers.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/server/websocket_handlers.rs), the `match serde_json::from_str` statement was missing its closing brace and the `Err` error handling branch. This resulted in a backend syntax compilation error that stopped new builds from compiling correctly. -2. **Missing Imports for Decrypted Targets**: In [processor/mod.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/sdr/processor/mod.rs), under the conditional compilation cfg `#[cfg(rs_decrypted)]`, the types `FrequencyRegion` and `ScanProgressResponse` were referenced but not imported from `crate::server::types`. -3. **Invalid Field Access in Encrypted Module**: In [apt_analysis.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/../encrypted-modules/tmp/rs/apt_analysis.rs), the asynchronous analysis task was attempting to access `processor.last_frame_raw_iq.clone()`, but `last_frame_raw_iq` resides on `processor.frame` (`SdrFrameState`). -4. **Source ID Mismatch on Selection**: The frontend was sending underscored source IDs (`mock_tx`, `mock_apt`) during selection, but the backend's `resolve_source_selection` was strictly looking for hyphenated strings (`mock-tx`, `mock-apt`), leading to: `Failed to open source mock_tx for switching: No matching source found`. - -## Resolution & Code Changes -1. **Fixed WebSocket Handler Syntax**: Added the closing brace and `Err(e)` branch logging warnings for JSON deserialization failures in [websocket_handlers.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/server/websocket_handlers.rs#L254-L290). -2. **Normalized Mock Source IDs**: Updated the `select_source` handler in [websocket_handlers.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/server/websocket_handlers.rs#L759-L767) to normalize `mock_tx` and `mock_apt` to `mock-tx` and `mock-apt`. Also updated `resolve_source_selection` in [websocket_server.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/server/websocket_server.rs#L118-L125) to accept both hyphenated and underscored versions. -3. **Added Conditional Imports**: Added `FrequencyRegion` and `ScanProgressResponse` imports under `#[cfg(rs_decrypted)]` in [processor/mod.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/sdr/processor/mod.rs#L17-L18). -4. **Fixed Struct Field Access**: Changed `processor.last_frame_raw_iq` to `processor.frame.last_frame_raw_iq` in [apt_analysis.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/../encrypted-modules/tmp/rs/apt_analysis.rs#L48). -5. **Rebuilt and Restarted Backend**: Rebuilt the backend binary (`cargo build --profile dev-fast --bin n-apt-backend`) and restarted the server. - -## Verification & Test Results -- Ran our custom node simulation script [simulate_tx.js](file:///Users/ceanelamerez/.gemini/antigravity-ide/brain/16553089-c17a-474c-bff6-c166c78ea37f/scratch/simulate_tx.js) to switch to `mock_tx` and start/stop the transmitter. -- Confirmed from `/tmp/rust_log.txt` that `mock-tx` is opened successfully and synchronized: - `[INFO n_apt_backend::server::websocket_server] Switching active source to mock-tx` - `[INFO n_apt_backend::sdr::processor] SDR processor swapped and synchronized to Mock APT SDR` -- Confirmed from `/tmp/n-apt/tx_log.txt` that the transmitter started and stopped correctly: - `phase=start device=mock-tx serial_number=mock-tx transmit=true` - `phase=end device=mock-tx serial_number=mock-tx transmit=false` -- Ran the entire backend Rust test suite (`npm run test:rust`), which completed successfully with all 110+ tests passing. diff --git a/.agents/TX_FREQUENCY_DISPLAY_RANGE_FIX.md b/.agents/TX_FREQUENCY_DISPLAY_RANGE_FIX.md deleted file mode 100644 index 3e718fcf..00000000 --- a/.agents/TX_FREQUENCY_DISPLAY_RANGE_FIX.md +++ /dev/null @@ -1,11 +0,0 @@ -# Fix for Mock Tx SDR Frequency Range Alignment - -## Issues Addressed -- The Mock Tx SDR's frequency range display was not respected on the FFT canvas. -- When Mock Tx SDR was active, the labels and VFO axis displayed the last cached receiver range (or a flat 2.204MHz without span details). -- Mismatched state synchronization meant that coordinates on the FFT spectrum canvas grid did not align properly with the active Mock Tx settings (center frequency and sample rate bandwidth). - -## Changes Made -1. **State Synchronization**: Added a `useEffect` inside [SpectrumRoute.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/routes/SpectrumRoute.tsx) to automatically synchronize the spectrum store's local state (`state.frequencyRange` and `state.sampleRateHz`) to the transmitter settings (`txCenterFrequencyHz` and `txSampleRateHz`) whenever the selected source is Mock Tx (`isSelectedMockTxSource === true`). -2. **Tx Capability Checks**: Refined `isTxCapableSourceInfo` in [useSpectrumStore.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/hooks/useSpectrumStore.tsx) to check the `source.id` field for `"mock-tx"` or `"hackrf_one"`. This prevents type failures in tests where full source records are mocked without full `kind` or `capability` properties. -3. **Verified correctness**: Verified that all Jest tests compile, pass, and type check successfully. diff --git a/.agents/TX_POWER_INPUT_FIX.md b/.agents/TX_POWER_INPUT_FIX.md deleted file mode 100644 index c649dddf..00000000 --- a/.agents/TX_POWER_INPUT_FIX.md +++ /dev/null @@ -1,21 +0,0 @@ -# Bug Fix: Tx Power & VGA Gain Input Lockout in Sidebar - -We resolved the issue where users were locked at `-18dBm` and could not change the value in the transmit settings. - -## Root Cause -In `TxSettingsSection.tsx`, the local state variables `localPower` and `localVgaGain` were being reset/overwritten by the incoming parent props (`powerDbm`, `vgaGainDb`) via `useEffect` whenever the manual focus ref `isPowerFocusedRef.current` / `isVgaGainFocusedRef.current` was `false`. Due to React component updates triggered by real-time WebSocket spectrum frames or parent state changes, the manual event-listener-based ref update cycle would desynchronize or reset during rendering, causing the input field to overwrite the user's keystrokes back to `-18`. - -## Solution -1. **Direct DOM Focus Comparison**: - - Replaced manual event-driven focus refs (`isPowerFocusedRef`, `isVgaGainFocusedRef`) with actual input element refs (`powerInputRef`, `vgaGainInputRef`). - - Replaced focus checks in `useEffect` hooks with synchronous DOM checks: `document.activeElement !== powerInputRef.current` and `document.activeElement !== vgaGainInputRef.current`. - - This ensures focus status is retrieved directly and synchronously from the browser, completely immune to React render cycle timing or event ordering. - -2. **Clean Up Event Handlers**: - - Removed `onFocus` event handlers from `` elements. - - Simplified `onBlur` event handlers to only handle parsing, boundary validation, and committing the values to the Redux store. - -## Verification Status -- **Typecheck**: `npm run typecheck` passes with `0` errors. -- **Jest Tests**: `npm test` passes all tests. -- **Linting**: `npm run lint` completes with `0` errors. diff --git a/.agents/TX_SAFETY_HOP_FEATURE.md b/.agents/TX_SAFETY_HOP_FEATURE.md deleted file mode 100644 index b8e8a21d..00000000 --- a/.agents/TX_SAFETY_HOP_FEATURE.md +++ /dev/null @@ -1,32 +0,0 @@ -# Mock SDR TX Safety & Frequency Hopping Feature - -## Overview -We added support for output power clamping (Safety) and frequency hopping (Hop) controls to the TX Settings sidebar panel, backed by a unified WASM/Rust module `safety.rs` and simulated in the mock SDR generator. - -## Key Design & Implementation - -1. **WASM/Rust Unified Calculations (`src/rs/safety.rs`, `src/ts/utils/safetyWasm.ts`)**: - - Computes propagation reach distances and determines power limits ($dBm$) for "Person" ($1$m reach), "Room" ($3$m reach) mode, and "Minimum" (device min power reach at $-70.0$ dBm). - - Interpolates HackRF One VGA gain ($0-47$) and AMP state (on/off) to find the approximate output power. - - Enforces limits in the WebSocket state and frontend input clamp logic. - -2. **Backend Server Integration (`src/rs/server/websocket_handlers.rs`, `src/rs/server/shared_state.rs`)**: - - Deserializes safety and hop settings from client WS messages. - - Enforces clamping in `handle_message`: if safety is enabled, clamps the requested VGA gain and turns off AMP if required, updating the thread-safe `SharedState`. - - If safety is enabled with limit `"min"`, forces VGA gain to `0.0`, AMP to `false`, and clamps `TX_POWER_DBM` to `-70.0`. - -3. **Active Settings Sync (`src/ts/components/sidebar/SpectrumSidebar.tsx`)**: - - Implemented a React `useEffect` hook to dynamically synchronize the client settings with the backend whenever TX parameters change during active transmission. - -4. **Frequency Hopping Simulation (`src/rs/sdr/mock_apt/mod.rs`)**: - - Detects if `TX_TRANSMITTING` is active. If `TX_HOP_ENABLED` is true, it simulates hopping at $X$ Hz by adding a band-limited noise spike across the selected channels (A: 2.204 MHz, B: 27.235 MHz, C: 13.875 MHz) or the frequency range. - -5. **UI Panel Controls (`src/ts/components/sidebar/TxSettingsSection.tsx`)**: - - Refactored `Toggle.tsx` to support custom labels ("On" and "Off"). - - Implemented sidebar fields for signal type ("Hop"), hop rate (Hz), hop start/end inputs, channel selector buttons, safety toggle, and safety limit dropdowns. - - Replaced separate safety limit rows with a side-by-side Toggle and Select dropdown in the "Safety" row. - - Toggling Safety to ON immediately sets power to `-70.0` dBm, VGA gain to `0` dB, and turns off AMP. - -## Verification -- Checked formatting: TypeScript and Rust formatting are fully compliant. -- Ran tests: all `cargo test` and `npm test` suites pass successfully. diff --git a/.agents/TX_SETTINGS_LAYOUT_UPDATE.md b/.agents/TX_SETTINGS_LAYOUT_UPDATE.md deleted file mode 100644 index 18b8d042..00000000 --- a/.agents/TX_SETTINGS_LAYOUT_UPDATE.md +++ /dev/null @@ -1,26 +0,0 @@ -# Tx Settings Layout Relocation, Tooltips, and Keyboard Increments - -## Goal -1. Move the rendering of the `Tx Settings` section in [SpectrumSidebar.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/sidebar/SpectrumSidebar.tsx) to be directly beneath the `Channels` component. -2. Ensure the `Tx Settings` section's collapsible container is open by default. -3. Add informative, user-friendly tooltips for all configuration options in the [TxSettingsSection.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/sidebar/TxSettingsSection.tsx) panel. -4. Position the `Safety` Row directly beneath the `Power` Row. -5. Fix power, VGA gain, and hop rate inputs to support increment/decrement modifications using `ArrowUp` and `ArrowDown` keyboard keys. - -## Changes Made -- Modified [SpectrumSidebar.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/sidebar/SpectrumSidebar.tsx): - - Relocated the `` container that wraps `` from its original position to be placed immediately beneath ``. - - Updated the `defaultOpen` prop on this `` component from `false` to `true`. -- Modified [TxSettingsSection.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/sidebar/TxSettingsSection.tsx): - - Imported the reusable `Tooltip` component from `@n-apt/components/ui`. - - Configured informative tooltips for the standard `Row` items (`Signal`, `Sample rate`, `Center frequency`, `Power`, `VGA gain`, `TX Amp`, and `Safety`). - - Added inline `Tooltip` components inside custom Hop headers and fields (`Hop`, `Hop type`, `Hop start`, `Hop end`, `Channels`, and `Hop rate`). - - Moved the `Safety` row directly beneath the `Power` row in the JSX structure. - - Implemented keyboard keydown handlers (`handlePowerKeyDown`, `handleVgaGainKeyDown`, `handleHopRateKeyDown`) to increment and decrement input values on `ArrowUp` / `ArrowDown` keys. Attached these handlers to the respective `NumericInput` elements. -- Created [TxSettingsSection.test.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/test/ts/TxSettingsSection.test.tsx): - - Wrote Jest unit tests to verify that pressing `ArrowUp` and `ArrowDown` correctly increments and decrements the Power, VGA gain, and Hop rate values. - -## Verification & Testing -- Ran TypeScript compilation via `npm run typecheck` to confirm no errors. -- Ran newly created unit tests via `npx jest test/ts/TxSettingsSection.test.tsx` and sidebar tests via `npx jest test/ts/SpectrumSidebar.sampleRate.test.tsx` to verify all passed. -- Ran `npm run format` to keep files clean and aligned with formatting guidelines. diff --git a/.agents/TX_SIMULATION_SUMMARY.md b/.agents/TX_SIMULATION_SUMMARY.md deleted file mode 100644 index f62dd0d2..00000000 --- a/.agents/TX_SIMULATION_SUMMARY.md +++ /dev/null @@ -1,18 +0,0 @@ -# Mock TX Loopback and Status Improvements - -We resolved the issues preventing the Mock TX Device from correctly transitioning to the transmitting state, updated status formatting, and improved loopback simulation. - -## Accomplishments - -1. **Modulated Tone for Loopback Leakage**: - - Updated the loopback simulation in [mod.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/sdr/mock_apt/mod.rs) to generate a modulated APT carrier tone at a 25 kHz offset instead of flat white noise. - - This ensures the background mock signals continue playing and remain visible on the visualizer while the loopback transmit signal appears clearly as a peak over that spectrum. - -2. **Status Formatting**: - - Modified `formatStatusLabel` in [SourceInput.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/sidebar/SourceInput.tsx) to accept an `isMock` flag. - - Updated it to return `"Transmitting (Mock Tx)"` for mock transmitter devices, correcting the display in the sidebar source pills. - -3. **TS Typecheck & Test Compliance**: - - Fixed a TypeScript type check issue in `test/ts/SpectrumRoute.file-mode.test.tsx` by adding the missing `notificationsSlice` and matching the reducer keys and order of `store.ts` exactly. - - Fixed a timer type mismatch in `SourceInput.tsx` under the Node/Browser environments. - - Verified that `npm run typecheck` and `npm test` pass successfully. diff --git a/.agents/TX_SLIDER_SHOW_HIDE.md b/.agents/TX_SLIDER_SHOW_HIDE.md deleted file mode 100644 index 2a159789..00000000 --- a/.agents/TX_SLIDER_SHOW_HIDE.md +++ /dev/null @@ -1,24 +0,0 @@ -# Feature: Show/Hide Tx Slider Button in Visualizer Sliders - -We implemented a toggle button in the visualizer controls rail to show/hide the Tx Slider overlay. - -## Changes Implemented -1. **Redux Store State**: - - Added `showTxSlider: boolean` to the Redux state in [spectrumSlice.ts](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/redux/slices/spectrumSlice.ts) (defaults to `true`). - - Added action creator `setShowTxSlider` to toggle this state. - - Re-exported the new action via `spectrumActions` in [index.ts](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/redux/index.ts). - -2. **Visualizer Sliders Control**: - - Added a new toggle button to [VisualizerSliders.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/VisualizerSliders.tsx). - - The label dynamically displays **"Hide Tx Slider"** when shown (so clicking hides it) or **"Show Tx Slider"** when hidden (so clicking shows it). - - Rendered using `Eye` and `EyeOff` icons from `lucide-react` to indicate its visibility state. - - Bound the button to a new `onShowTxSliderChange` prop. - -3. **Wrappers and Main Route Integration**: - - Connected `showTxSlider` state and dispatcher in the Redux sidebar wrapper [ReduxVisualizerSliders.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/sidebar/ReduxVisualizerSliders.tsx) and the Visualizer component [FFTAndWaterfall.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/FFTAndWaterfall.tsx). - - Conditionally rendered `` inside [SpectrumRoute.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/routes/SpectrumRoute.tsx) depending on `showTxSlider`. - -## Verification Status -- **Typecheck**: `npm run typecheck` passes with `0` errors. -- **Jest Tests**: `npm test` passes all tests. -- **Formatting & Lint**: Formatted with `oxfmt` and verified linting. diff --git a/.agents/TX_START_STOP_FLOW_FIX.md b/.agents/TX_START_STOP_FLOW_FIX.md deleted file mode 100644 index 01180156..00000000 --- a/.agents/TX_START_STOP_FLOW_FIX.md +++ /dev/null @@ -1,34 +0,0 @@ -# Feature Completion Summary - Transmit (Tx) Start/Stop Flow Fix - -This document records the updates implemented to fix starting and stopping transmit (Tx) modes in the frontend when interacting with the `mock-tx` device backend. - -## Summary of Completed Work - -### 1. Frontend: Rapid Toggle Prevention & State Sync -- **Location**: `src/ts/components/sidebar/SpectrumSidebar.tsx` -- **Rapid Toggle Prevention**: Added a `lastTxToggleTimeRef` ref that acts as a timestamp cache. We throttle the `handleToggleTransmitMode` calls if they occur within 800ms of the previous toggle. This completely eliminates the double-click/click-through deactivation bug where confirming a transmit modal closed the modal and let the click event queue register a deactivation click on the newly rendered underlying "Stop Tx" button. -- **Robust State Check**: Updated the local `isTransmittingGlobal` logic to check `selectedSource?.status === "transmitting"` directly as well as elements in the `websocketSources` array. This ensures immediate local synchronization of the UI toggle button state with the selected source's status. - -### 2. Backend: WebSocket Serde Aliases -- **Location**: `src/rs/server/types.rs` -- **Serde Field Aliases**: Added missing deserialization aliases on the `WebSocketMessage` struct: - - `center_frequency`: Added `alias = "centerFrequencyHz"` - - `hackrf_amp_enable`: Added `alias = "ampEnabled"` - - `tuner_agc`: Added `alias = "tunerAgc"` - - `rtl_agc`: Added `alias = "rtlAgc"` -- This allows properties sent in camelCase format from the React frontend in the `"tx_mode"` message payload to be correctly deserialized rather than defaulting to `None`, thereby ensuring they are successfully applied to the SDR settings and written to the global transmission log. - -### 3. Backend: Active/Inactive Source Status Updates Fix -- **Location**: `src/rs/server/websocket_server.rs` & `src/rs/server/shared_state.rs` -- **Source Status Serialization**: Modified `source_status_for_entry` so that the `"mock_tx"` status is evaluated directly from `device_state == "transmitting"` regardless of whether the mock TX device is the active source. This fixes the issue where starting or stopping transmit on `"mock-tx"` while the active source was `"mock-apt"` (normal viewing mode) caused `"mock-tx"` to be serialized in the source list payload with the stale status `"connected"` (since it was not the active source). -- **Connection Flag Optimization**: Updated `set_device_state` in `SharedState` to include `"transmitting"` as a connected state (`state == "connected" || state == "loading" || state == "transmitting"`). This prevents the device connection status from dropping to `false` during live transmissions, which was causing the UI to lose track of active device connections. - -## Verification - -### 1. Compilation & Typechecks -- Rust codebase compiles successfully (`cargo check --bin n-apt-backend`). -- TypeScript typecheck passes successfully (`npm run typecheck`). - -### 2. Tests -- All Rust tests pass successfully (`cargo test`). -- Target Jest frontend tests pass successfully (`test/ts/useWebSocket.test.tsx`, `test/ts/useSdrSettings.test.tsx`, `test/ts/SpectrumSidebar.sampleRate.test.tsx`). diff --git a/.agents/TX_THROTTLE_AND_LOG_ROTATION.md b/.agents/TX_THROTTLE_AND_LOG_ROTATION.md deleted file mode 100644 index 1cf19612..00000000 --- a/.agents/TX_THROTTLE_AND_LOG_ROTATION.md +++ /dev/null @@ -1,13 +0,0 @@ -# Tx Slider Message Flow & Logging Updates - -This document outlines updates to backend transmit logging and frontend throttling behavior. - -## Changes Implemented - -### 1. Backend: Disabled Global Tx Logging -- Modified `src/rs/server/tx_log.rs` to comment out the body of `write_global`. -- This temporarily disables all global transmit logging (`tx_log.txt` entries) on the backend server, completely removing hot-path file I/O overhead without modifying log entry creation sites or structural code. - -### 2. Frontend: Reverted Throttling -- Restored `src/ts/redux/middleware/websocketMiddleware.ts` to its original state (removed `tx_mode` message throttling). -- Restored `src/ts/hooks/useSpectrumStore.tsx` transmit settings sync throttle limit back to `50ms` (from `100ms`). diff --git a/.agents/VAL_ERR_AND_WARN_FIX.md b/.agents/VAL_ERR_AND_WARN_FIX.md deleted file mode 100644 index 9835fcfc..00000000 --- a/.agents/VAL_ERR_AND_WARN_FIX.md +++ /dev/null @@ -1,36 +0,0 @@ -# WebSocket Validation & Deprecation Warning Fixes - -## Problem Description -1. **WebSocket Message Validation Errors**: - - The Rust backend logged the following warning/errors repeatedly: - ``` - [2026-06-03T12:06:37Z WARN n_apt_backend::server::websocket_handlers] Invalid WebSocket message received: source_id: Validation error: regex [{"value": String("")}] - ``` - - This occurred because on connection / hook mount, the client sent a `signal_display_settings` WebSocket message where `activeSourceId` was initialized to `""` (empty string). - - In `types.rs`, `source_id: Option` is validated via the `RE_SAFE_ID` regex (`^[a-zA-Z0-9_-]+$`), which requires at least one character. The empty string failed validation, causing validation warnings on the backend. - -2. **Node Deprecation Warning**: - - The Vite dev server running under Node.js logged: - ``` - (node:47933) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead. - ``` - - This warning was captured by the build orchestrator's stderr listener and logged to the console/dashboard dashboard interface under warnings. - ---- - -## Solutions Implemented - -### 1. Fixed WebSocket Validation Issues -- Modified [useSpectrumStore.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/hooks/useSpectrumStore.tsx#L1647) to check if `activeSourceId` is truthy before dispatching the `signal_display_settings` message. -- This prevents the client from transmitting `source_id: ""` on startup when the active source is still null/unresolved, eliminating the validation failure logs on the Rust backend. - -### 2. Suppressed Node Deprecation Warning -- Modified [build-orchestrator.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/scripts/build/build-orchestrator.tsx#L2) to prepend `--no-deprecation` to `process.env.NODE_OPTIONS`. -- Since child processes inherit the environment, this automatically disables Node deprecation warnings in Vite and other spawned Node.js tools, keeping the dashboard clean. - ---- - -## Verification -- Ran TypeScript type checking: `npm run typecheck` passed successfully. -- Ran frontend tests: `npm test` successfully completed all 133 suites (942 tests) and shader Vitest tests (31 tests). -- Ran Rust checks: `cargo check` compiled successfully. diff --git a/.agents/WORK_SESSION_NOTES.md b/.agents/WORK_SESSION_NOTES.md deleted file mode 100644 index f447824e..00000000 --- a/.agents/WORK_SESSION_NOTES.md +++ /dev/null @@ -1,14 +0,0 @@ -# Tx Standby & Pause Optimization - -## Problem -In Mock APT transmitter mode, when the transmitter went into standby (paused) after a transmission, the visualizer did not preserve the last rendered spectrum/waterfall frames. Instead, it reset to a narrow, blocky artificial preview spike. - -Additionally, reducing the Tx bandwidth in the settings did not confine the generated Mock transmit I/Q leakage signal (skirts/noise/shoulders) to the selected bandwidth, causing it to occupy the preset wider bandwidth (e.g. 2.4 MHz). - -## Solution -1. Modified [FFTCanvas.tsx](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/FFTCanvas.tsx) to only generate and display the standby/preview waveform before any real spectrum frame has been rendered (`!hasRenderedSpectrumFrame`). -2. Once a transmission has started and rendered at least one real frame, subsequent standby/pause states do not overwrite the waveform with the preview waveform. -3. The visualizer now correctly preserves and freezes the last rendered spectrum frame and waterfall state when transitioning to standby, acting exactly like a pause. -4. Updated [mod.rs](file:///Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/rs/sdr/mock_apt/mod.rs) to read the dynamic transmit sample rate (`TX_SAMPLE_RATE_HZ`) from the safety state. -5. Implemented precise carrier phase calculation (direct `sin_cos`) and band-limited noise/phase-modulation for the simulated transmitter signals (such as `APT`, `noise`, `custom`, and `tone`). This ensures that the transmit leakage signal and its noise shoulders perfectly scale and constrain themselves to the dynamically selected Tx bandwidth. - diff --git a/.agents/progressive-vfo-tuning.md b/.agents/progressive-vfo-tuning.md new file mode 100644 index 00000000..6b70477a --- /dev/null +++ b/.agents/progressive-vfo-tuning.md @@ -0,0 +1,46 @@ +# Progressive VFO tuning + +Progressive tuning is an opt-in path for RX channel selection. It is separate +from wheel/trackpad scrolling: scrolling remains direct, has no inertia state, +and must not use this controller. A direct wheel/hardware-retune gesture also +cancels any still-active progressive channel trajectory before that trajectory +can overwrite the gesture range. + +## API + +`useChannelTuner().tuneChannels` accepts a fifth argument: + +```ts +tuneChannels(channels, selectedLabels, rangeOverride, sampleRateOverride, { + durationMs: 500, + inertia: "ease-out", + wiggle: { amplitudeHz: 12_000, cycles: 2, damping: 4 }, +}); +``` + +The supported inertia values are `linear`, `ease-in`, `ease-out`, +`ease-in-out`, CSS-style cubic Bézier points, sine easing, or a custom +`(progress) => progress` function. `wiggle` is decorative and is forced to +zero at both endpoints. All trajectory ranges are integer-Hz ranges and are +translated, without changing bandwidth, into the active channel bounds. + +Omitting the options argument preserves the existing single-step behavior. +RX channel selection supplies a 500 ms ease-out tune; playback and Tx channel +operations remain immediate. + +## Lifecycle and transport + +The controller in +`src/ts/features/spectrum/tuning/progressiveTuning.ts` owns one rAF trajectory +at a time. A newer tune cancels the prior trajectory, and an immediate tune +also cancels an active progressive tune. Preview ranges update the display on +every animation frame. Hardware retune commands are rate-limited to 50 ms and +the final target is always published exactly. + +While previewing, `tuningPreviewActive` prevents the normal range-sync effect +from echoing every preview frame to the device. The controller is the only +publisher during the trajectory; the normal sync path resumes after the exact +final range is committed. + +The progressive path must not be used to solve scroll rendering or mirror +presentation. Server FFT frames remain authoritative for live-spectrum axes. diff --git a/.agents/signals/SKILL.md b/.agents/signals/SKILL.md new file mode 100644 index 00000000..77b40308 --- /dev/null +++ b/.agents/signals/SKILL.md @@ -0,0 +1,59 @@ +--- +name: signals +description: Use when working with N-APT signal analysis, IQ captures, FFTs, demodulation, the /learn route, or the signals CLI. Explain signal ideas simply first, then use the correct RF/DSP term. +--- + +# Signals + +Use this skill when an agent needs to understand, inspect, capture, demodulate, or validate a signal in N-APT. + +## Communication rule + +Explain the idea in ordinary language first. Put the technical name next: + +> The radio listens across a slice of frequencies (the capture bandwidth). + +Use the terms in [references/terminology.md](references/terminology.md). Do not replace a clear explanation with unexplained industry language. + +## Working order + +Follow this order: + +1. Identify the source and whether it is live, a file, mock, RTL-SDR, or HackRF RX. +2. Read the metadata: center frequency, sample rate, frequency range, encoding, and continuity. +3. Inspect the spectrum (FFT) to locate energy. Energy is not proof of a usable signal. +4. Select the signal region and keep the selected bandwidth separate from the hardware sample rate. +5. Choose the demodulator and preserve a contiguous IQ timeline. +6. Validate the result as audio, an image, symbols, or data. + +Read the mode-specific guidance in [references/demod-modes.md](references/demod-modes.md) before changing a processor. + +## CLI + +Use the existing entrypoint: + +```text +npm run cli -- signals inspect +npm run cli -- signals spectrum +npm run cli -- signals demod --input --algorithm fm +npm run cli -- signals validate +npm run cli -- signals capture --allow-mutations +``` + +Local inspection, spectrum summaries, replay, and validation are read-only. Live capture and receive-side settings require explicit mutation opt-in. Transmit is always blocked for agent clients. + +## Evidence and safety + +Say what evidence supports a conclusion: synthetic fixture, deterministic replay, focused test, rendered app, live SDR, or physical hardware. A mock signal proves software behavior only; it does not prove real RF behavior. + +Do not commit, upload, or expose IQ captures or derived private recordings. Use synthetic fixtures and redacted metadata. Follow [references/capture-workflow.md](references/capture-workflow.md). + +## Troubleshooting + +- Silent audio: check source mode, contiguous IQ, tuning, bandwidth, sample rate, and audio output before changing the algorithm. +- Stale audio: check source identity, stream/session epoch, sequence, and pending tune intent. +- A moving FFT with frozen demod: inspect the demod IQ queue; the newest FFT frame alone is not enough for audio. +- Mock works but hardware fails: report the mock result separately and request live SDR evidence. +- Empty demod flow: treat it as intentional state; do not recreate nodes merely because the node list is empty. + +Use [references/validation.md](references/validation.md) when reporting whether a signal path is actually proven. diff --git a/.agents/signals/references/capture-workflow.md b/.agents/signals/references/capture-workflow.md new file mode 100644 index 00000000..749f1771 --- /dev/null +++ b/.agents/signals/references/capture-workflow.md @@ -0,0 +1,10 @@ +# Receive capture workflow + +1. Confirm the source is authorized and is operating in RX. +2. Record center frequency, hardware sample rate, selected range, gain, PPM, device identity, and timestamp. +3. Capture locally and keep the file out of Git. +4. Prefer encrypted `.napt` output for sensitive captures. +5. Analyze locally with `signals inspect`, `signals spectrum`, `signals demod`, and `signals validate`. +6. Share synthetic fixtures or redacted metadata when reporting a problem. + +`signals capture` requires `--allow-mutations`. This permits receive capture and receive-side settings only. It must never start transmit. diff --git a/.agents/signals/references/demod-modes.md b/.agents/signals/references/demod-modes.md new file mode 100644 index 00000000..58a07093 --- /dev/null +++ b/.agents/signals/references/demod-modes.md @@ -0,0 +1,12 @@ +# Current demodulation modes + +N-APT currently exposes these algorithms through the shared TypeScript demodulation processors: + +- `fm`: FM audio processing. +- `fmDiscriminator`: FM discriminator path. +- `aptAudio`: recover APT audio. +- `aptImage`: recover an APT image. + +FM audio needs a bounded, contiguous IQ window. Do not feed it only the most recent FFT frame. When tuning live, reject output from an older tune intent or source/session. + +The demod route uses flow nodes such as Radio, Span, IQ Capture, FM, APT, and Output. Preserve their existing names and data contracts when modifying the flow. diff --git a/.agents/signals/references/terminology.md b/.agents/signals/references/terminology.md new file mode 100644 index 00000000..5104fbed --- /dev/null +++ b/.agents/signals/references/terminology.md @@ -0,0 +1,15 @@ +# Signal terminology + +| Simple wording | Correct term | Meaning in N-APT | +|---|---|---| +| Where the radio is listening | Center frequency | Middle of the sampled RF window | +| How wide the radio listens | Sample rate | Width of the hardware IQ window | +| The smaller part we study | Span or bandwidth | Selected frequency slice inside that window | +| Paired radio measurements | I/Q samples | In-phase and quadrature complex samples | +| A picture of energy by frequency | FFT / spectrum | Frequency-domain view of a time window | +| A continuous piece of the signal | Contiguous IQ | IQ samples with no missing time between them | +| Turning a carrier into useful output | Demodulation | Recovering audio, image, symbols, or data | +| The signal becoming old after a switch | Stale frame | Data from a previous source, session, or tuning request | +| How strong it is above background | SNR | Signal-to-noise ratio | + +Keep hardware sample rate and selected span distinct. A narrow FM signal can use a slice of a wider hardware sample-rate window. diff --git a/.agents/signals/references/validation.md b/.agents/signals/references/validation.md new file mode 100644 index 00000000..bf889691 --- /dev/null +++ b/.agents/signals/references/validation.md @@ -0,0 +1,11 @@ +# Validation levels + +Use the smallest truthful claim: + +- A unit test proves a function for its fixture. +- A deterministic replay proves repeatable processing for that input. +- A rendered app check proves the displayed path. +- A live SDR check proves behavior with a connected receiver. +- Physical hardware evidence is required for hardware-specific continuity or TX/RX claims. + +Always report passed, skipped, environment-blocked, and real failures separately. Do not call a signal “identified” from FFT energy alone. diff --git a/.agents/spectrum-scroll-rendering.md b/.agents/spectrum-scroll-rendering.md new file mode 100644 index 00000000..3f315442 --- /dev/null +++ b/.agents/spectrum-scroll-rendering.md @@ -0,0 +1,66 @@ +# Spectrum scroll and mirror rendering + +The VFO scroll path is a direct view update. Native `WheelEvent` deltas may +include trackpad momentum, but N-APT does not maintain a VFO inertia, +velocity, friction, or animation state. Wheel pixel/line/page units are +normalized at the native handler, and each event is capped at 24 plot pixels +before it becomes a frequency step, with an additional 5 MHz frequency-step +cap for very wide views. A positive wheel delta moves toward higher frequencies; +a negative delta moves toward lower frequencies. Native events are accumulated +into at most one bounded pan calculation per animation frame, so an OS momentum +burst cannot create an unbounded queue of retunes. Each frame update is bounded by the configured +available-spectrum range (30 GHz by default, from `signals.yaml`). With +“Mirror spectrum below 0 Hz” enabled, the signed display may extend below DC, +but the radio remains on a non-negative acquisition range. + +Live wheel/drag interaction refs are updated immediately. Canvas repaint is +coalesced to at most one request per animation frame. Redux pan and route/device +fan-out use bounded latest-value schedulers so a trackpad burst does not issue +one React render and socket command per native event; those schedulers must not +gate covered mirror painting or hold a stale FFT row. + +The live FFT must obey these rendering invariants: + +- A received frame is drawn immediately on its own server-owned axis: + `center_frequency_hz ± sample_rate / 2`. +- If a VFO request outruns the newest frame, the plot remains on that resident + frame axis until the next server frame arrives; it must not show a moving + floor-filled gap toward the requested position. +- An uncovered resident frame is committed as one complete positive or + reflected server-owned row. Never map it onto the pending DC-crossing axis: + floor bins that shrink as acknowledgements arrive are a directional + fill/wipe animation, not valid live spectrum data. +- The renderer must not translate a resident/stale FFT toward a requested VFO + position while hardware catches up. +- A covered mirror pan may repaint the current authoritative frame immediately. + If the pending viewport is not covered, keep the complete resident frame on + its positive or reflected server-owned axis until a covering frame arrives; + never stretch it into floor-filled islands on the pending axis. +- Mirror mode is presentation-only. Negative display frequencies map through + `abs(f)` to the positive acquired baseband; they do not create a second + hardware stream or retune the radio for each scroll tick. +- Device acknowledgements that omit signed display metadata preserve the + current local mirror pan. Explicit channel-selection actions clear pan; a + generic device range hydration must not silently reset it to 0 Hz. +- Channel highlighting is derived from the displayed center + (`hardware VFO center + signed pan`). A negative displayed center must not + highlight a positive channel, and a nonzero signed pan must not force a stale + stored channel label. +- Free wheel/drag panning does not select a channel and does not change the + acquisition sample rate. Only an explicit channel or sample-rate control may + do that; crossing inferred channel bounds is presentation state, not a + `Whole Channel` selection. +- Source-scoped SDR settings are authoritative. Caching or bridging them into a + legacy global settings field must be structurally idempotent and keyed to a + source-settings change. A legacy/global hydration update must not bounce an + unchanged source snapshot back into Redux and create an update-depth loop. +- Do not add a retune smear, synthetic transition row, stale-frame offset, or + other directional animation to this path without an explicit product + decision and a regression test. + +The implementation boundary is the native wheel handler in +`src/ts/features/spectrum/hooks/useFrequencyDrag.ts`, the coordinate contract +in `src/ts/features/spectrum/fft/frameProcessing.ts`, and the WebGPU mapping +in `src/ts/shaders/resample.wgsl`. Regression coverage belongs in +`test/ts/negativeScrollPanRegression.test.tsx`, +`test/ts/frameProcessing.test.ts`, and `test/ts/shaders/resample.test.ts`. diff --git a/.commandcode/settings.json b/.commandcode/settings.json new file mode 100644 index 00000000..47fedecf --- /dev/null +++ b/.commandcode/settings.json @@ -0,0 +1,16 @@ +{ + "permissions": { + "allow": [ + "Shell(npx jest test/ts/settingsDefaults.test.ts test/ts/useSettingsSectionScrollSpy.test.ts test/ts/SettingsRoute.test.tsx test/ts/SidebarRoutesNav.test.tsx --runInBand 2 >& 1)", + "Shell(npx jest test/ts/bypassStartPage.test.ts --runInBand 2 >& 1)", + "Shell(npx jest test/ts/GetStartedRoute.test.tsx --runInBand 2 >& 1)", + "Shell(npx tsc --noEmit --ignoreDeprecations 6.0 2 >& 1)", + "Shell(npx jest test/ts/basebandMirror.test.ts test/ts/frameProcessing.test.ts test/ts/shaders/resample.test.ts --runInBand)", + "Shell(node - <<'NODE' function negative(display, span){const distance=Math.max(0,-display); const period=2*span; const phase=((distance%period)+period)%period; const folded=phase<=span?phase:2*span-phase; return 0+folded;} function srcF(d, span){return d<0?negative(d,span):d;} function freqToBin(f, span, len){return ((f-0)/span)*(len-1);} function peak(arr,start,endEx){let max=-Infinity,idx=start;for(let i=start;imax){max=arr[i];idx=i;}}return {max,idx};} const spectrum=[0,1,2,3,4]; const sourceMin=0, sourceMax=4, displayMin=-4, displayMax=0, outLen=5, srcLen=5; const sourceSpan=sourceMax-sourceMin, displaySpan=displayMax-displayMin; for(let x=0;xsourceMax){out='FLOOR';} else {let clo=Math.max(srcLo,sourceMin), chi=Math.min(srcHi,sourceMax); let start=Math.max(0,Math.min(srcLen-1,Math.floor(freqToBin(clo,sourceSpan,srcLen)))); let end=Math.max(0,Math.min(srcLen,Math.ceil(freqToBin(chi,sourceSpan,srcLen)))); end=Math.max(end,start+1); let p=peak(spectrum,start,end); out=p.max;} console.log(x,{d0,d1,s0,s1,srcLo,srcHi,out}); } NODE)", + "Shell(node - <<'NODE' function negative(display, span){const distance=Math.max(0,-display); const period=2*span; const phase=((distance%period)+period)%period; const folded=phase<=span?phase:2*span-phase; return 0+folded;} function srcF(d, span){return d<0?negative(d,span):d;} function freqToBin(f, span, len){return ((f-0)/span)*(len-1);} function peak(arr,start,endEx){let max=-Infinity;for(let i=start;imax)max=arr[i];}return max;} const arr=[0,1,2,3,4]; const smin=0,smax=4,slen=5; for(const [dmin,dmax] of [[-2,2],[-4,0],[-1,1],[0,4]]){console.log('range',dmin,dmax); const span=smax-smin; const ds=dmax-dmin; for(let x=0;x<5;x++){const t0=x/5,t1=(x+1)/5; const d0=dmin+t0*ds,d1=dmin+t1*ds; let lo,hi; if(d0<0&&d1>0){lo=smin; hi=Math.max(negative(d0,span),srcF(d1,span));} else if(d1-d0>=span){lo=smin;hi=smax;} else {let s0=srcF(d0,span),s1=srcF(d1,span);lo=Math.min(s0,s1);hi=Math.max(s0,s1);} let out='F'; if(hi>=smin&&lo<=smax){const clo=Math.max(lo,smin),chi=Math.min(hi,smax); let st=Math.max(0,Math.min(slen-1,Math.floor(freqToBin(clo,span,slen)))); let en=Math.max(0,Math.min(slen,Math.ceil(freqToBin(chi,span,slen)))); en=Math.max(en,st+1); out=peak(arr,st,en);} console.log(x,out,'d0',d0.toFixed(2),'d1',d1.toFixed(2));}} NODE)", + "Shell(node - <<'NODE' function negative(display, span){const distance=Math.max(0,-display); const period=2*span; const phase=((distance%period)+period)%period; const folded=phase<=span?phase:2*span-phase; return 0+folded;} function srcF(d, span){return d<0?negative(d,span):d;} function freqToBin(f, span, len){return ((f-0)/span)*(len-1);} function peak(arr,start,endEx){let max=-Infinity;for(let i=start;imax)max=arr[i];}return max;} const arr=[0,1,2,3,4]; const smin=0,smax=4,slen=5; for(const [dmin,dmax] of [[-2,2],[-4,0],[-1,1],[0,4]]){console.log('range',dmin,dmax); const span=smax-smin; const ds=dmax-dmin; for(let x=0;x<5;x++){const t0=x/5,t1=(x+1)/5; const d0=dmin+t0*ds,d1=dmin+t1*ds; let lo,hi; if(d0<0&&d1>0){lo=smin; hi=Math.max(negative(d0,span),srcF(d1,span));} else if(d1-d0>=span){lo=smin;hi=smax;} else {let s0=srcF(d0,span),s1=srcF(d1,span);lo=Math.min(s0,s1);hi=Math.max(s0,s1);} let out='F'; if(hi>=smin&&lo<=smax){const clo=Math.max(lo,smin),chi=Math.min(hi,smax); let st=Math.max(0,Math.min(slen-1,Math.floor(freqToBin(clo,span,slen)))); let en=Math.max(0,Math.min(slen,Math.floor(freqToBin(chi,span,slen))+1)); en=Math.max(en,st+1); out=peak(arr,st,en);} console.log(x,out,'d0',d0.toFixed(2),'d1',d1.toFixed(2));}} NODE)" + ], + "deny": [], + "defaultMode": "default" + } +} \ No newline at end of file diff --git a/.commandcode/taste/taste.md b/.commandcode/taste/taste.md new file mode 100644 index 00000000..1e0e8821 --- /dev/null +++ b/.commandcode/taste/taste.md @@ -0,0 +1,2 @@ +# Taste +See [taste/taste.md](taste/taste.md) diff --git a/.commandcode/taste/taste/taste.md b/.commandcode/taste/taste/taste.md new file mode 100644 index 00000000..48a52999 --- /dev/null +++ b/.commandcode/taste/taste/taste.md @@ -0,0 +1,133 @@ +# Taste +- Playback/pause state must be owned by the client, not the backend: the client should be able to pause "locally and immediately" — freeze frames and cut the stream without waiting for or depending on backend acknowledgment — treating the backend pause as a secondary confirmation rather than the source of truth. Making the backend authoritative is explicitly called an anti-pattern because it strips the client of the ability to "just cut the stream (even if it's sending frames) and await for the backend to acknowledge the pause command" ("I feel that it's anti-pattern to let the backend handle the paused state when the client can just stop"). This refines the earlier "backend is source of truth for display" reconciliation preference: the backend may be read to clear a *stuck stale display state*, but must never be the gate that blocks an immediate client-side pause. Confidence: 0.85 +- Treats a selected UI mode/label not matching the actual applied value as a bug — e.g., reported "Whole Channel is erroring again... when I have it selected it is doing a 3.2MHz sample rate, instead of the 'Whole Channel 4.372MHz'". The user's explicit selection (the label shown in the UI) is expected to be authoritative and to drive the real underlying behavior; a stale backend/frame-reported value overriding the user's selection is a defect, not acceptable fallback behavior. Confidence: 0.6 +- Reports previously-fixed bugs that have regressed explicitly as regressions ("Whole Channel is erroring again") and expects the agent to treat them as such — investigate what changed since the last fix (git history, prior fix commits) rather than re-diagnosing the symptom from scratch. Confidence: 0.55 +- When changing behavior, expects the fix to also update every dedicated test file for the affected feature, not just the ones the agent happened to look at — e.g., during the spectrum-mirror fix the user had to point at `test/ts/basebandMirror.test.ts` ("Don't forget about...") because the agent's test-update sweep had not yet considered the feature's own test file. Confidence: 0.55 +- Prefers real integration tests that cross the actual boundaries (UI → Redux → WebSocket → backend → mocked hardware) and Playwright/browser tests against the real running app; considers tests that pass while live behavior is broken to be poor coverage ("Tests can pass but it isn't streaming now, coverage is poor"). Confidence: 0.9 +- Wants a regression test for every reported bug ("trace the flow, we need a test for this"), including state/connection transitions (e.g., RX → TX → RX with false "Server down"/"Loading" states). Confidence: 0.9 +- When a bug slips through the existing test suite ("Tests didn't catch this bug previously can you also correct that?"), expects the agent to fix the test suite so it would have caught the bug — which includes correcting tests that locked in the previously-broken behavior (e.g., tests asserting the old backend-reconciliation pause logic). The corrected tests must assert the actual fix's invariant (e.g., client-authoritative pause wins against a live/stale backend snapshot), not merely re-test the new code path in the abstract. Confidence: 0.7 +- Wants performance/latency tests with explicit budgets tied to the frame interval — e.g., VFO retune round-trip must stay under the frame time for the FFT size/FPS — not just functional tests. Confidence: 0.85 +- Values a reusable generic test harness for streaming (asked whether a generic streaming harness exists rather than writing one-off tests). Confidence: 0.7 +- Demands extremely fast hot paths ("as instant as possible", e.g., VFO → hardware → response); expects latency to be measured end-to-end, not just optimized by intuition. Confidence: 0.9 +- Expects high-frequency pointer/UI updates to be coalesced (e.g., latest-value-per-animation-frame) so Redux/WebSocket work does not scale with raw event frequency and choke on swipes/drags. Confidence: 0.85 +- Commits must be narrowly scoped to only the requested files/changes ("Commit these changes only"); do not sweep in pre-existing staged or worktree changes. When the working tree already contains unrelated pre-existing WIP, expects surgical hunk-level commits isolating only the agent's own changes — possibly including related feature-area WIP, but never unrelated work ("can you surgically commit the changes you have made across the conversation?"). Confidence: 0.9 +- When asked to "add these changes to the previous commit", prefers consolidating follow-up work and test fixes into that commit via `git commit --amend` (preserving its message, adding the co-author trailer) rather than creating a separate commit — but only when the commit is confirmed to be local/unpushed, and staging only the session's own files while leaving unrelated working-tree changes untouched. Confidence: 0.7 +- When a failing test is stale because copy/content was intentionally changed, fix the test to match the new behavior instead of reverting the change or leaving the test red — e.g., updated the "See hardware" assertions to "See hardware gallery" after the card copy changed. Confidence: 0.6 +- Keeps agent-guidance docs minimal and current: deletes obsolete `.md` notes, keeping only `AGENTS.md` and `ANALYZE.md` in `.agents`. Confidence: 0.8 +- Wants to adopt GitHub stacked PRs for the repo's existing changes. Confidence: 0.7 +- Provides detailed implementation plans and expects them executed faithfully ("PLEASE IMPLEMENT THIS PLAN"). Confidence: 0.8 +- Corrects scope/file-placement mistakes promptly; wants one canonical copy of a document in the right location, not duplicates across files. Confidence: 0.8 +- Prefers one central manager/API owning cross-cutting concerns — e.g., one physical stream per (source, mode) with shared options and multi-subscriber fan-out — over ad-hoc duplicated ownership spread across middleware, routes, and sockets; explicitly wants to avoid duplicate code. Confidence: 0.9 +- Leans toward separating transports by purpose: SSE (low-frequency server/app state like running/server-down) alongside WebSocket for high-rate IQ/waterfall data, with typed payloads. Confidence: 0.6 +- Treats I/Q captures as highly sensitive: never commit, upload, or expose them or derived artifacts to Git, AI tools, scanners, or cloud services; use synthetic fixtures or redacted excerpts for tests and reports. Confidence: 0.9 +- Uses GitHub CodeQL alerts plus Aikido trial findings as security signals that must be triaged (reachability, dedup, and explicit fix/mitigate/defer decisions), not treated as automatic proof of exploitability. Confidence: 0.8 +- Wants invariant UI: labels/placeholders that are meant to be constant must not hide or reappear based on state (e.g., "FFT Signal Display" disappearing in paused mode), and features like Fast snapshot should not be disabled by pause. Confidence: 0.8 +- When offered the choice between a Settings page that mirrors live view state vs. one that persists defaults read by live views on mount, chose persisted defaults — prefers settings as a source-of-truth store consumed by live pages over an isolated mirror of current state. Confidence: 0.65 +- Likes a consolidated/universal Settings surface that gathers scattered per-view settings (theme, SDR, login, I/Q capture, snapshot) into a single route, reusing existing settings sections rather than duplicating controls. Confidence: 0.5 +- Likes sectioned pages with a sidebar whose links scroll-spy to the section currently in view (active state follows scroll position), with clicks smooth-scrolling to the section. Confidence: 0.5 +- Wants sidebar navigation to visually reflect hierarchy: section links under a parent route should be indented with the same branch styling (indent + left border) as the route tree's child links, so they read as nested "floating under" the parent route. Pushes back and asks for even deeper indentation when the nesting is not clearly deeper than the parent ("Even more indented, right now they're equal") — the depth difference must be visually obvious, not subtle. Confidence: 0.6 +- Wants a single canonical header per UI section — when a reusable section (e.g., ThemeSection) is embedded in a page that already provides its own section header, the embedded section must not render its own duplicate icon + title (e.g., two "Theme" headers with different icons on the Settings page); asks to remove such duplicates outright. Confidence: 0.6 +- Wants reusable UI pieces extracted into isolated components instead of duplicated markup — e.g., the 4-up link-card grid from the Get Started page should live in its own reusable component (LinkCardGrid) with extension points (configurable columns, compact variant) so other pages (Settings footer) can consume it rather than copying it. Confidence: 0.85 +- Wants every section/page to use the app's canonical shared components for consistent UX — e.g., the FAQ layout must use the universal `AppBackButton` and the app's `Logo` component rather than bespoke back links or custom brand text, and redundant branding next to the logo should be removed (dropped "N-APT FAQ" because the logo already conveys the identity). Asked for a new start-page card to mirror an existing card's established presentation pattern (the "Connected Sources" divider + label + pill row, via the shared SourceLabel/SourcePills/SourcePill styles) rather than introducing a bespoke look. Confidence: 0.85 +- Wants feature/content affordances mirrored across all relevant surfaces, not just the page where they were introduced — e.g., after adding the "Lingo and Learn" card to the Get Started page, immediately asked to also add it to the Settings page footer ("add the ... card to the settings page too!"). Confidence: 0.55 +- New card/feature affordances that deep-link into the app must land the user on the relevant mode/state, not just scroll near it — e.g., a "Playback I/Q Captures" card must switch the sidebar into file mode. Deep links should drive the full intended flow, not just navigation: the entry param (chosen as `/?source=fileSelection`) should both select the source/mode *and* auto-trigger its primary action (auto-clicking the browse button to open the file picker), with a dedicated descriptive param rather than reusing a section param. When that auto-trigger silently fails (e.g., the OS file dialog never opens after landing), the user reports it as a bug — the auto-action must reliably fire after landing/loaded, not just be wired up in theory. Confidence: 0.85 +- Deep-link query params should remain visible in the URL after the one-shot action fires — e.g., `/?source=fileSelection` stays in the address bar as a stable, bookmarked deep link rather than being stripped immediately after handling; the user flagged the param disappearing after clicking the card as a bug ("I don't see the query param in the url after clicking that box"). Only the local one-shot state should reset, not the URL. Confidence: 0.6 +- Cares about protecting personal contact info (e.g., an iCloud email address) from scrapers: the address must never appear as a plaintext literal in source or markup — it should be split into fragments in an array, assembled only at runtime, and revealed only through an explicit interaction (press-and-hold), with the value hidden again on release ("be very very careful with that"). Confidence: 0.9 +- Wants third-party data properly attributed and licensed on public-facing pages (e.g., OpenCelliD cell tower data with a CC BY-SA notice) and legal documents (terms and conditions, privacy policy, license) surfaced in the page footer. Confidence: 0.6 +- Wants card/tile grids to flow naturally with no empty gaps — items should stack from the start and the final item in the data array should be the visually last tile; rejects forced grid-column placement that pins an item to the last column and leaves holes in the row, and explicitly asks for the contact card to sit last in the list ("there's an empty card spot... they should stack properly"; "move the contact card to the last card"). Confidence: 0.75 +- Prefers consolidating related card/link groups into a single unified grid with uniform card styling instead of separate sub-grids — e.g., merged the settings footer's link cards with the terms/privacy/license legal cards into one shared list (dropping the `compact` variant) so all cards render identically in one grid. Confidence: 0.6 +- Prefers a real landing/overview page for a multi-section content area rather than auto-redirecting to the first sub-page — e.g., asked for a dedicated `/faq` landing page listing the FAQ sections ("I need a landing page for the faqs overall") instead of the existing redirect to `/faq/iq-captures`. Confidence: 0.5 +- Wants card layouts to be flex/grid columns where the meta/footer items (e.g., bypass toggle, "Connected sources", "Accepts" pills) are pinned to the bottom/end of the card (`margin-top: auto` on a footer/meta block with a divider) so those pieces align consistently across cards regardless of content height — explicitly asked to "ensure the card is like grid or flex and those parts are at the bottom/end of the card's layout." Confidence: 0.8 +- Verifies bug fixes in the live running app and reports back promptly when the behavior is still broken, even when unit tests pass — e.g., after a scroll-spy fix that passed its tests, reported "Still broken (the app's layout did change)", showing unit-test green is not accepted as proof of a fixed live behavior. Confidence: 0.95 +- The spectrum mirror feature must fold the *spectrum* around the display's 0 Hz (baseband) axis — "Mirror the spectrum" — not mirror the absolute RF channel window ("Mirror the channel"); when the mirrored pipeline was reported still wrong, the root cause was the shader receiving the absolute RF acquisition window (`center_frequency_hz ± sample_rate/2`) instead of a baseband `[0, sample_rate]` range, so mirroring must be computed in display/baseband coordinate space, not in absolute RF coordinates. The mirror must not engage until the viewport's start edge frequency actually crosses below 0 Hz — it only fills the region exposed by panning below DC, and must never re-center/re-label the spectrum around the channel (reported as "centering the channel and not the spectrum around 0Hz"). Confidence: 0.75 +- Expects a fresh login to land on the onboarding `/get-started` page rather than dropping straight into the app, unless the user has explicitly opted to bypass the start page — reported the skip as a bug ("After I logged in, I was directed straight to the app instead of the /get-started page"). Confidence: 0.7 +- Expects post-login redirects to be visually seamless — the authenticated app must never paint even a single frame before navigating to the landing page; reported "it went to the app then redirected to the start page" (a flash of the app) as still-broken behavior. Confidence: 0.7 +- Expects browser permission prompts (e.g., geolocation) to fire only when the user actually uses the feature that needs them — such as opening the map page or enabling location for an IQ capture — never eagerly on app load; flagged an app-load geolocation request as a bug ("some element of the app is loading somehow because it's asking for location... should only happen for IQ captures when that's turned on"). Confidence: 0.75 +- Wants landing/overview pages sized fluidly against the viewport — dynamic font and padding that scale with viewport size, bounded by min/max aspect-ratio media queries for regular landscape ratios — so logo, title, and cards always fit in the viewport with good spacing; explicitly calls oversized, overflowing layouts "overbloated." Confidence: 0.75 +- When merging related standalone pages (e.g., FAQ) into an existing interactive container, prefers a full consolidation over a partial one: migrates the content as sections, removes the old hub/overview and its layout entirely, deletes the now-dead route files, and redirects the old URLs to the canonical route — rather than leaving both page structures alive. Confidence: 0.7 +- When a merged-in content category is added to an existing sidebar, wants it visually grouped under its own labeled group (uppercase mono title over a dashed separator) instead of appended as flat links — chose the deeper "merge into sections" refactor over the lighter "keep the old nav" option to get this grouping. Confidence: 0.65 +- Prefers rearranging/reordering UI content by reordering the underlying data array rather than editing text or markup ("reorder the bar in this order (no text changes, just rearranging stuff)"). Confidence: 0.65 +- Prefers deriving UI defaults/state from data structure instead of fragile text targeting — e.g., the initially selected model should be the first item in the data array (via filter/map/index), not selected by matching text ("I don't want to target text, just like .filter or .map"). Confidence: 0.7 +- Likes an expandable drawer opened from a compact control (e.g., a ^ button) that lists all items in a scrollable list grouped by section titles for quick navigation within a gallery. Confidence: 0.5 +- Wants explicit padding on scrollable bars/containers so overlaid scrollbars don't obscure text titles (e.g., ~20px bottom padding on the bottom bar so the scrollbar doesn't cover the titles). Confidence: 0.6 +- Deep links that switch the sidebar into a mode must also scroll the sidebar to its compact/sticky state so the targeted mode stays pinned at the top — e.g., opening file mode via `?source=fileSelection` should scroll the navigation container to the top so the File Selection header compacts and remains visible, mirroring the I/Q Capture Controls deep link behavior ("auto scroll to the compact mode so the file mode remains at the top of the sidebar"). The user re-verified after the dialog fix and reported the scroll as still broken ("The file dialog opens now! Yay! However the deep link scroll did not work"), confirming this deep-link scroll behavior is an expected, tested requirement, not a nice-to-have. Confidence: 0.85 +- Prefers a single unified sidebar deep-link mechanism (explicitly suggested a `spectrumSidebarDeepLink`) that merges all deep-link targets (I/Q Capture Controls Collapsible, file-selection mode) into one consolidated flow rather than separate ad-hoc per-target handling in the sidebar. Confidence: 0.6 +- Deep-link-driven mode/state must be two-way and reversible: when a deep link (e.g., `/?source=fileSelection`) switches the app into a mode, navigating back or away (so the param is gone) must reset that state back to the default — e.g., file-selection mode must unset back to live SDR/mock sources — rather than leaving the app stuck in the deep-link mode ("When in the File Selection mode ... and navigating back, I want to unset the source from file selection mode to SDRs/the mock ones"). The deep link should drive the full flow in both directions, with guards so it doesn't fight other deep links that legitimately request the same mode. Confidence: 0.85 +- When a deep link's job is to open the OS file picker, the dialog must fire from a genuine user gesture: a programmatic `.click()` dispatched asynchronously from a `useEffect` after client-side navigation loses browser transient user activation and is silently ignored (reported twice: "Still not seeing the OS dialog, the click not working yet"). The reliable pattern is opening the hidden file input synchronously inside the entry point's own click handler (e.g., the start-page card) and then navigating, with the sidebar auto-click kept only as a no-files-selected fallback. The user confirmed this pattern works in the live app ("The file dialog opens now! Yay!"). Confidence: 0.85 +- Browser file inputs that must be programmatically clicked (e.g., auto-opening a file picker after landing on a deep link) cannot use `display: none` — browsers silently swallow programmatic `.click()` on such inputs; the standard pattern is an off-screen positioned input (`position: fixed; top: 0; left: 0; 1px; opacity: 0; pointer-events: none`). Confidence: 0.7 +- Deep links into an interactive multi-section page must skip the intro animation and land directly on the specific target section — e.g., old FAQ redirects point to `/learn-signals?section=iq-captures` so users land on the section, not the intro ("If going to a specific link in the interactive, skip the animation"). Confidence: 0.7 +- Prefers real path-based sub-routes for each page/section in a multi-section interactive area (e.g., `/learn-signals/iq-captures`) over query-parameter deep links (`?section=...`); nav clicks should navigate to the sub-route so the URL always reflects the active section and every section is deep-linkable ("The pages in the interactive should have specific sub routes"). Confidence: 0.75 +- When a section/route is public, all of its sub-paths must also be public — public-route checks should use a prefix match (e.g., `startsWith("/learn-signals")`) so deep links like `/learn-signals/iq-captures` open without an auth gate; an exact-match check that blocks sub-paths silently breaks deep links into public sections (reported as "It doesn't open" with a runtime error). Confidence: 0.6 +- When merging related standalone pages (e.g., FAQ) into an existing interactive container, prefers a full consolidation over a partial one: migrates the content as sections, removes the old hub/overview and its layout entirely, deletes the now-dead route files, and redirects the old URLs to the canonical route — rather than leaving both page structures alive. Confidence: 0.7 +- When a merged-in content category is added to an existing sidebar, wants it visually grouped under its own labeled group (uppercase mono title over a dashed separator) instead of appended as flat links — chose the deeper "merge into sections" refactor over the lighter "keep the old nav" option to get this grouping. Confidence: 0.65 + the deeper "merge into sections" refactor over the lighter "keep the old nav" option to get this grouping. Confidence: 0.65 +- Expects the UI to enforce half-duplex hardware constraints for SDRs like the HackRF One: while the device is streaming in Rx mode, the Source pill must offer "Preview Tx" (pause Rx, then enter Tx standby) rather than "Start Tx" — showing a Tx button while Rx is still streaming is a bug ("the HackRF One in the Source pill, which is in Rx mode, not Tx mode"), and the pause-Rx-before-Tx flow must exist on every route exposing the Source pill, not just the route where it was originally built. Confidence: 0.65 +- Presents nuanced device/feature capability ratings as compact icon affordances with tooltips instead of plain text: thumbs-up for "good" ratings, and a warning icon (e.g., lucide triangle-alert) wrapped in a hover tooltip explaining the caveat (e.g., "Not recommended for LF/MF/HF frequencies..."), with the per-mode rating rows (Rx/Tx) stacked side by side as two equal columns each taking half of the container width with a gap between them, and the duplex-mode descriptor line (Simplex / Half-Duplex) placed beneath the ratings (explicitly requested: "put the simplex/half-duplex copy beneath the ratings and then stack rx/tx next to each other, they share half of the container space with a gap for spacing"). Confidence: 0.6 +- Treats "Loading..." placeholder states on initial routes (e.g., the auth screen) as a symptom of bundle/network bloat to be eliminated, not an accepted cost: wants heavy deps (R3F/three, ReactFlow, leaflet, katex) kept out of the eager module graph of the critical entry routes via lazy-loading/code splitting, and explicitly scoped the optimization to the Auth and regular App routes ("optimized for the routes Auth and regular App right now"). Confidence: 0.7 +- Distinguishes "floating", "moving/squeezing", and "oscillating in place" in waveform animations, and rejected both wrong forms before settling on the right one: a wave that is supposed to undulate must not translate the whole path as a rigid block (`transform: translate(0 y)` vertical bobbing reads as "floating"), and must not use a traveling phase either (with too few samples per period the interpolated curve distorts and slides sideways, reported as "It's like squeezing and then it's moving instead of in place oscillating"). The accepted look is a standing wave: the curve stays fixed in place while the amplitude oscillates (crests rise/fall, nodes stay put), recomputed each frame via the path `d` (e.g., `scale = 0.55 + 0.45 * Math.sin(time * 0.0028)` so it returns to the same shape each cycle), with enough sample points per period (denser `step`, ~31 points vs 11) so the curve renders smoothly without interpolation distortion — from CaptureStitchingGuide.tsx ("not an oscillating wave, it's like floating"; then "squeezing and then it's moving instead of in place oscillating"). Confidence: 0.7 +- Even after a wave is made to oscillate in place, a uniform amplitude breath where every crest rises/falls in lockstep ("when all the amplitudes look the same") reads as "weird" — the animation must keep changing shape and never settle into one static look. The accepted pattern combines the amplitude oscillation with a small phase sway in quadrature (e.g., `scale = 0.6 + 0.4 * Math.sin(t)` with `phase = Math.PI + 0.5 * Math.cos(t)` on the same `t`) so crests swell, sag, and shift continuously rather than pulsing like a zoom. Confidence: 0.6 +- Avoids animating the SVG `d` attribute with framer-motion `motion.path` string keyframe arrays — framer-motion 12 renders an intermediate `d="undefined"` and throws "Problem parsing d=\"undefined\"" (the codebase's only `d` animation was reported as "It doesn't open and I have some strange error"). Decorative waves are instead animated with `motion.svg` transforms (e.g., `animate={{ y: [...] }}`) around a static `path`, matching the safe pattern of animating numeric attrs/transforms (`r`, `opacity`, `y`) rather than `d`. Confidence: 0.6 +- Flags it as a problem when the agent gets stuck in an infinite loop of repeated tool calls (e.g., the same grep re-run dozens of times against the same target with no new information): expects the agent to notice the repetition, stop, and step back to consolidate what it already knows and lay out a concrete plan — not to keep re-running the identical call ("You were stuck in an infinite loop"). Confidence: 0.9 +- Questions whether a blocking "Initializing"/session-restore gate on the app route is the right approach when the page could render instantly: prefers optimistic rendering (mount the app as soon as a stored session/token exists) and parallelizing the async restore chain (e.g., fire `validateSession` and `fetchVaultKey` concurrently instead of serially) rather than blocking first paint behind sequential network round trips — only the decryption/vault key is truly needed before the first stream frame, not before first paint; fall back to the login screen only if the session turns out invalid ("I get the 'Initializing' placeholder, is this the right approach for that page when it could instantly load?"). Confidence: 0.75 +- Expects SPA navigation to preserve the persistent layout shell: navigating between routes (e.g., `/visualizer` → `/3d-model` or `/settings`) must keep the sidebar and layout frame mounted in place, with only the content section swapping and showing a "Loading..." placeholder while the lazy chunk loads — reported a whole-app flash/remount as a bug ("the whole app flashes and reloads instead of the sidebar remaining in place and the section displaying 'Loading...'"). Implies one shared layout instance (React Router layout-route pattern) with `Suspense` inside the content area, never per-route layout wrappers that unmount on navigation. Confidence: 0.85 +- Treats intermittent, reload-dependent failures as bugs, not flukes: e.g., a scroll-spy fix that works during a session but breaks when the page is reloaded and scrolled ("It seems broken if I reload the page and start scrolling, like it's racing with mounts") is reported as still broken. Expects mount/observer/timing behavior to be deterministic across a full page reload — green unit tests and in-session success are not accepted as proof of reliability. Confidence: 0.7 +- When a refactor hoists shared components (e.g., sidebars) into a persistent shell/layout, expects every context provider those components consume to be hoisted so its scope still covers the new location — a provider left scoped to route content surfaces as a runtime error ("Error: useMapRoutePaths must be used within MapRoutePathsProvider") that the user reports as a bug; the fix is auditing all moved components' hooks and moving lightweight state-only providers (e.g., MapRoutePathsProvider, DrawSignalPaginationProvider) to the top-level provider stack rather than wrapping only the route element. Confidence: 0.6 +- Deep-link-driven effects must never stomp manual user selections on the regular app: the revert/reset logic for a deep-link-driven mode (e.g., `?source=fileSelection` resetting file mode back to live) must track whether the deep link actually drove the state (e.g., a ref set only when the deep link is active), so the reset fires only on deep-link transitions — a user manually selecting "File Selection" with no deep link present must not be immediately reverted (reported as "There's a bug, when I'm on the regular app, I can't select the 'File Selection' source"). The guard must cover both within-mount transitions and the fresh-mount/unmount-remount path, and the fix should include a regression test for the manual-selection case alongside the existing deep-link reset test. Confidence: 0.85 +- Wants visual dimming to enforce interaction lockout: when source pills/controls are dimmed (opacity < 1, e.g., in file-selection mode), their action buttons must be `disabled` so they can't be triggered until the element returns to full transparency (out of the dimming mode) — a dimmed state implies non-interactive, not merely visually muted; asked to disable the action button "so they can't trigger it unless it's at full transparency." Confidence: 0.7 +- Treats leaving a locked/dimmed mode (e.g., switching from file-selection mode to a live source) as an explicit deliberate gesture: expects a double-click on the source pill to perform the switch while dimmed, so a single click in that state cannot accidentally yank the user out of the flow; a single click only "arms" the switch and a second click within a short window (500ms) completes it, while at full opacity (normal mode) a single click switches as usual. Confidence: 0.6 +- When requesting a visual styling change, is precise about which element is the target ("the options" vs. "the container") and will explicitly correct the agent for modifying the wrong element ("You removed the background of the container, not the options"); expects the change to be applied to exactly the element the user described, not its ancestor wrapper. Confidence: 0.6 +- When a styling change is meant to cover every instance of an element on a page, expects it to also cover instances rendered by separately-imported sub-sections/components (e.g., the Theme section renders its own `Row`s independent of the main file's), not just those in the directly-edited file — will review the rendered page and report any missed spot ("You got all of them except in the Theme section"). Confidence: 0.7 +- Treats route-transition placeholder flashes as a performance defect, not an accepted cost: on React Router's cold start, navigating between sections (e.g., Settings → Demod) must not flash a full-screen "Loading route…" placeholder that replaces the shell/sidebar while lazy chunks load; wants route navigation fast enough to feel instant, with the accepted fix direction being to prefetch heavy route chunks (provider/sidebar + route) on nav hover/focus so the lazy chunk waterfall is paid before the click lands, not after ("Is there any way we can get faster performance for the routes?"). Confidence: 0.75 +- A toggle/setting that logically applies to multiple related views must be wired to all of them, not just one — e.g., the fast snapshot "include stats" toggle must turn stats on for both the FFT and the waterfall, not only the FFT (the waterfall's stats state was hardcoded to `false` while the FFT read the setting). Prefers one shared setting/state driving all the views it governs (so toggling either control keeps them in sync) over per-view hardcoded defaults. Confidence: 0.7 +- After completing a route migration (e.g., `/learn-signals` → `/learn`), prefers removing the legacy redirects for old URLs outright — old paths simply die/404 rather than redirecting to the canonical route ("You can remove those redirects"). Expects the redirect entries dropped from both route trees, the now-orphaned redirect component deleted (along with its generated types), and dead references cleaned up (e.g., capability manifest entries and test assertions pointing at the removed URLs). Confidence: 0.8 +- Prefers light mode UI to avoid boxed/card styling — background fills and borders (e.g., the settings page's blue surface blocks) should be dropped in light mode in favor of whitespace/spacing for visual separation, while dark mode keeps the surface-card look ("For light mode of the settings page, I'd like to remove the blue background and border and just use spacing here"). Confidence: 0.55 +- Every UI surface that displays the same underlying value must use the same canonical data source and formatter as the others — e.g., the settings page's sample-rate control must use the per-device sample-rate options and the shared `formatFrequency` utility exactly like the live view, not a hardcoded rate list formatted with inline `.toFixed(1)`; reported the settings/live-view divergence as a bug ("Sample rate in the settings diverges from sample rate on the live view, it's not using the frequency formatter or with the appropriate list of sample rates (per device)"). Confidence: 0.85 +- Prefers selectable option lists to be derived from device-reported/backend capability data (e.g., `source.sdr.sample_rate_options`) rather than hardcoded arrays, so different surfaces never show different choices for the same setting; hardcoded lists that differ from capability data are treated as the root cause of UI divergence. Confidence: 0.8 +- Rejects invented/hardcoded default values as "fake numbers" — UI defaults and fallback lists (e.g., sample rates) must be derived from the canonical config source (signals.yaml: the global `sample_rate` default plus per-device `sample_rate` specs, resolved via the same `resolveSampleRateSpec` utility the live view uses), never hardcoded literals like `[3.2M, 1.6M, 800k]`; explicitly stated "3.2, 1.6, 800k are fake numbers... the default sample rates are derived from signals.yaml." Confidence: 0.85 +- Works concurrently with the agent in the same working tree (e.g., added the SDR++ colormap attribution section and its test to `SettingsRoute.tsx` mid-session); expects the agent to recognize such in-progress work via git diff and leave it untouched rather than treating it as its own change, "fixing" it, or reverting it. Confidence: 0.6 +- Wants third-party open-source assets used in the app credited to their authors (e.g., the SDR++ waterfall colormaps attributed to Youssef Touil in the settings page), consistent with the existing insistence on attribution for third-party data and legal/licensing notices. Confidence: 0.6 +- During a long, multi-step debugging investigation, expects the agent to carry the work through to completion autonomously; when the agent pauses mid-analysis, the user nudges with a bare "Continue" rather than giving new direction — the agent should proceed through diagnosis, implementation, and testing without stopping to check in at each stage. Confidence: 0.55 +- When a full-project test run reports failures in files/areas outside the task's scope, expects the agent to verify whether each failure is pre-existing (via read-only `git status`/`git diff`/`git log`) and, if pre-existing WIP unrelated to the task, to leave it unfixed and report it accurately as such rather than expanding scope to "fix" an unrelated broken test. During the fuzz-initiative verification the full `test/ts` suite failed only on a `componentArchitecture` violation in `CaptureStitchingGuide.tsx` (a file never touched — pre-existing branch WIP); the agent confirmed non-responsibility via git and did not let it count against the task's own verification ("no new failures"), which is the accepted outcome. Confidence: 0.55 +- When asked to pick a primary performance goal for a client-side optimization, wants shipped-load wins (initial page load / bundle size / first paint) addressed alongside dev hot-reload — chose "Both" over the recommended dev-only option, and the executed plan led with bundle-size/first-paint cuts (drop dead deps, shrink imports) with memoization/caching as the secondary dev-speed win. Confidence: 0.5 +- Prefers removing genuinely dead dependencies/pipeline stages from the bundle entirely over keeping them with lazy-load fallbacks for hypothetical future content — e.g., chose to drop rehype-highlight + highlight.js (and its CSS) outright because the current article has zero highlightable code fences, rather than "keep but lazy-load" or "keep as-is"; dead weight in a bundle is a cost to eliminate, not a safety net. Confidence: 0.6 +- Prefers explicit named imports over wholesale `import * as namespace` imports so only the used symbols ship in the bundle — e.g., `import { Bug, RadioTower } from "lucide-react"` backed by a small static icon map instead of importing the entire icon library; namespace imports are treated as bundle bloat. Confidence: 0.5 +- Prefers lightweight in-module memoization/caching (e.g., a small bounded `Map` for expensive repeat computations like `katex.renderToString`) over adding a caching library dependency, and memoizing an expensive render subtree on the stable input that actually drives it (e.g., `React.memo` on the source markdown string) so unrelated re-renders/hot reloads skip re-running the whole pipeline. Confidence: 0.5 +- When requesting a fix for a reported bug, points the agent at the specific files believed to be involved via file references (e.g., @-mentioning the UI component, the route wiring, and the feature hook) to scope the investigation, rather than re-describing the symptom — expects the agent to follow those pointers. Also pinpoints the broken flow at the protocol level, naming internal message flows (e.g., "does not grab the `request_next_frame`") and contrasting what the UI shows (standby drawing) vs. what the backend should deliver (preview tx frame). Confidence: 0.5 +- Treats the todo checklist as user-owned: when the conversation pivots to a different path, the user clears the checklist themselves and expects the agent to continue on the new direction rather than resuming items from the previous plan ("Ok, continue here, I cleared the checklist since we're on a different path here"). Confidence: 0.4 +- When thinking through a bug or implementation, wants the agent to pause and relay its thoughts: the implementation approach, what should be visually present, and the edge cases of expectation versus outcome — before continuing ("When thinking, stop and relay your thoughts of the implementation and what should be visually present and the edge cases of expectation versus outcome"). Confidence: 0.75 +- Playback/streaming controls (e.g., Pause) must take effect instantly with zero residual frames: after the cold-start pause bug was confirmed fixed, the user immediately flagged "sometimes it goes through a frame or two before stopping" as a remaining defect and asked to "enhance the performance of pausing" — a pause click is expected to freeze the frame pipeline at every layer (controller slot, shared ref, per-source ref) with no 1-2 frame bleed-through, and the fix must keep deliberate pause-time features (request_next_frame one-shots, Tx previews, secondary-source previews) working while gating the active source's stream. Confidence: 0.8 +- Treats device settings that are physically coupled as invariants that must move together: on a HackRF One, when the sample rate changes (e.g., entering Whole Channel mode), the baseband filter bandwidth must be updated to match — "when the sample rate changes, such as the whole channel mode, it needs to update the Baseband Filter to have the same frequency/bandwidth." A baseband filter left at the previous bandwidth after a rate change is reported as a bug, and the coupled setting is expected to be re-applied on every path that reconfigures the device (initial init, warm swap, cold swap), not just the frontend send path. Confidence: 0.7 +- Fixes must be applied at the layer where the bug actually lives: when a defect is in the frontend UI (e.g., the Baseband Filter control not updating when the sample rate changes), the frontend is expected to transparently dispatch the coupled change itself — patching the backend to compensate is considered an anti-pattern even when it resolves the symptom ("Well the backend solution seemed nice, but this was a bug happening in the frontend UI, not backend... it's anti-pattern because the frontend is transparently dispatching changes"). The backend fix was acknowledged as functionally solving the issue, but the user still rejected it as the wrong layer and redirected the investigation to the frontend UI state flow. Confidence: 0.8 +ion — the agent should proceed through diagnosis, implementation, and testing without stopping to check in at each stage. Confidence: 0.4 +- Wants SDR devices kept warm — pre-opened and cached so switching between connected devices (e.g., RTL-SDR ↔ HackRF One) is instant with zero placeholder flash or cold-open/swap latency; explicitly rejected ever seeing the placeholder on switch ("There should be minimum latency... it should be kept warm so I can quickly switch between devices") and expects all connected devices (not just the previously-active one) to be pre-opened. Confidence: 0.85 +- Stream commands (Pause/Resume) must be gated until a veritable stream is actually running: while a source is loading/initializing, the backend must ignore resume (`pause:false`) and the frontend must not offer a clickable Pause/Resume — "pause/resume commands are not accepted and allowed to change state before a veritable stream can run (receiving or transmitting)". Confidence: 0.9 +- Loading/initializing device states must be visually explicit and authoritative: the device/source pill must always show the circular loading spinner while loading (even when other affordances like tx-mode toggles exist), and a loading state must never render a blank area where the canvas/waterfall should be — a stale frame from a previous source must not flip the UI to "ready" and suppress the loading placeholder (reported a blank canvas after Resume on a loading HackRF as a bug to fix). Confidence: 0.85 +- A disconnected/stale hardware device must keep its real display name in the UI (e.g., "HackRF One · Stale/Disconnected") rather than being relabeled to a generic or mock-source name — reported "Rx / Loading / … without the device name" after unplugging a stale device as a defect. Confidence: 0.55 +- When offered scoped fix options (frontend-only vs backend-first vs full-stack), chose the comprehensive full lifecycle fix covering both the backend state machine and the frontend UI — expects cross-cutting device-lifecycle bugs to be fixed end-to-end at both layers (with matching Rust + TS tests), not patched on one side. Confidence: 0.6 +- In a shared working tree full of pre-existing WIP, never use disruptive git operations (stash-all, `git checkout --` on edited files) to compare or verify changes — doing so tangled the WIP with the session's edits and nearly lost work. Verify against HEAD with read-only commands (`git diff`, `git show`) instead, and treat every tracked-file mutation as risky; restore via file-by-file extraction if something does go wrong. Confidence: 0.7 + standby drawing/chrome. A Tx-mode switch that shows the standby UI but never receives/displays the preview frame is reported as a bug; the backend must honor preview requests for tx-capable sources even when they are not the active streaming source (e.g., a bound Tx-suite device with a separate Rx source active), publishing a synthesized standby preview. Confidence: 0.6 +- Device switches must never flash the previous device's paused/frozen frame: switching devices and resuming a stream is expected to show only the new device's stream (or a loading placeholder), never the last device's paused frame during warm-up. Stale frozen frames must be invalidated by source identity/stream epoch at the source boundary (presentation ref gating, pause-cache clearing on `expectedSourceId` change, session-snapshot restore guards) — the agent's fix served the frozen frame only when it belongs to the active source and cleared the canvas's pause-cache refs immediately at the switch. Confidence: 0.65 +- Feature visibility and behavior should be driven by declared device capabilities (e.g., a `baseband_filter` entry in `supported_controls`, declared per-device in config like `baseband_filter: true` in signals.yaml) rather than hardcoded device-kind heuristics such as `deviceType === "hackrf_one"` — explicitly wants the app "as less reliant on device detection so the frontend is a more transparent and resilient consumer," with the frontend reading capabilities instead of inferring device identity. Confidence: 0.85 +- Wants silent auto-tracking with a user-pin escape hatch for capability-driven coupled settings (e.g., the HackRF baseband filter tracking the sample rate): by default the value silently follows the related setting; once the user types a custom value the auto-updates stop (pinned); clearing the field to zero resumes automatic tracking. The pin state must be respected by every path that would otherwise push the coupled value (sample-rate-change dispatches and sync callbacks), not just the control's own effect. Confidence: 0.8 +- Treats "the backend now produces the data but the UI still doesn't display it" as an unresolved bug: after a fix makes the backend honor a request and publish a frame, a follow-up report of the same symptom means the remaining defect lives in the transport/subscription layer — the frame has no delivery path to the canvas (e.g., the managed stream subscription was rejected by half-duplex arbitration, or the stream key/filter doesn't match). Expects the agent to trace the full end-to-end path (subscription opening, arbitration, stream key identity, frame filtering) rather than stopping at backend production. Confidence: 0.7 +- Reports follow-up bugs as precise numbered reproduction sequences, giving the exact UI state after each action (e.g., Rx streaming fine → "Preview Tx" still shows the Rx frame → switch back to Rx shows the Loading placeholder → repeated "Resume" cycles blank FFT/waterfall, placeholder, then the stream) rather than just restating the symptom; expects the fix to account for every state in the sequence, not only the first one. Confidence: 0.6 +- When resuming a paused source or switching back from Tx preview to Rx on the SAME source, the last known frame for that source must remain visible as a fallback while the stream reopens — showing a Loading placeholder or blank canvas in that window is a defect ("it does the placeholder instead of showing the last Rx frame"), and the resume must complete deterministically from a single action rather than requiring repeated Resume clicks that cycle blank/placeholder states until the stream eventually returns. This is distinct from cross-device switching, where stale frozen frames from the previous device must NOT be shown. Confidence: 0.75 +- UI playback state must reconcile with the actual stream state — a stale client-side optimistic latch must not keep the pause button showing "Resume" while the stream plays. When the backend authoritatively reports the source as unpaused (and no pause/resume command is in flight), the client's manual/auto pause latch must be released so the UI can't stay stuck indefinitely ("I keep seeing the pause button in the 'Resume' state when it's playing... the UI's state is out of sync"); the backend's reported state is the source of truth for display once the optimistic click-to-echo window has passed. This complements (not contradicts) the preference that a user's explicit selection be authoritative: the user's *intent* drives the command, but a stuck stale display state that no longer matches reality is itself a bug. Confidence: 0.7 +- User-set runtime state must survive hot reloads / reconnects: a hot reload must not auto-play a stream the user left paused — the pause intent is expected to be persisted (e.g., localStorage) and restored/re-asserted to the backend on reconnect, because a fresh mount that resets the pause state lets the backend silently resume ("possibly hot reload is triggering auto play when it should remain paused"). Pause persistence should only be released by an explicit user toggle, not by a backend "unpaused" snapshot. Confidence: 0.65 +- Treats letting the backend drive the paused state as an anti-pattern: the client-side pause should be authoritative and locally-immediate — the client must be able to just "cut the stream" (freeze frames / stop the local stream) and only await the backend pause command as a secondary async confirmation, not depend on the backend as the source of truth for the paused state. Explicitly rejected a backend-authoritative pause design even though it resolved a symptom ("If the backend is the source of truth, the client loses the ability to just cut the stream... it's anti-pattern to let the backend handle the paused state when the client can just stop"). Confidence: 0.75 +- When the user refactors an agent's previously-accepted fix in the working tree and then reports the feature works WORSE ("This is even WORSE now after some changes"), the agent must treat the user's edited code as the current source of truth and diagnose the regression inside the refactored logic — not assume the agent's own committed fix is still intact. Concretely, a state-sync reconciliation bug recurs when the sync function reads a derived/effective source map that is itself computed from the same mutable latch it is reconciling (so it can only re-affirm the stale value); the fix is to read the raw authoritative backend state as the source of truth, release the latch + early-return when released, and repair the logic in-place while preserving the user's refactor structure (helper names, extraction) rather than reverting the refactor wholesale. Confidence: 0.6 +- When asking for an audit/review of the codebase (e.g., "go through frontend tests, unit and regression and see if we should delete some"), explicitly requests a READ-ONLY pass: "I don't want any edits." The deliverable is a findings report with concrete recommendations and rationale — never file mutations — and the agent is expected to honor that constraint strictly even when the natural impulse would be to fix or delete along the way. Confidence: 0.9 +- Wants the test suite kept lean and actively pruned, not accumulated: asks for dead-weight test files to be identified for deletion — orphaned tests no runner picks up (e.g., files under `src/**/__tests__` excluded by jest's `testMatch`, referenced by no script), degenerate tests that assert on hand-crafted literals rather than exercising app code, meta-tests of the mock/test harness itself ("test of the test"), and tests double-run by multiple runners (e.g., the same shader specs executed by both jest and vitest). Redundancy verdicts must be verified against in-tree sibling tests before calling something deletable, and weak-but-valuable tests are kept or moved rather than deleted when coverage would be lost. Confidence: 0.8 +- Wants the app strengthened with fuzz/property-based tests on both frontend and backend (e.g., fast-check + proptest style deterministic property tests), not just hand-written unit cases — explicitly requested a plan to stress-test settings, source load in/out, and "a lot around the websockets and redux layer," i.e., the untrusted-input parsing and state-mutation boundaries are where robustness must be proven (no panics/throws, no NaN/Inf leak, invariants over finite/clamped values). Confidence: 0.6 +- When scoping a new initiative (e.g., a fuzz-testing effort), expects the agent to first research the codebase and produce a concrete plan of stress-test points — specific files/functions, invariants, known-bug targets, and CI wiring — rather than jumping straight to implementation; the user asks "come up with a plan of points to stress test" before any code is written. Confidence: 0.6 +- Test file names and describe blocks must honestly reflect their actual scope: a test that only validates a schema/reducer contract or two pure functions must not be named "integration"/"pipeline"/"end-to-end." When auditing the test suite, the user asked to relabel a misleadingly-named integration test (#8: `backend-frontend-integration` → `source-info-payload.validation`) and rename a misframed pipeline test (#9: `frequency-pipeline` → `frequencyGuardAndParse`) to be "more appropriate" — updating the header comment, describe, and removing the faux step comments ("1. Simulate signals.yaml → Backend parsing") that invented a pipeline the test doesn't exercise. Confidence: 0.6 +- When fixing a test double-run across runners (same specs executing under both jest and vitest), prefers designating a single owner runner via `testPathIgnorePatterns` (keep vitest for `test/ts/shaders`, drop them from jest) rather than deleting the tests — a narrowing of scope, not a loss of coverage, and verified by counting discovered files before/after (309 → 297). Confidence: 0.6 +- For fuzz/property testing, prefers deterministic property tests that run in the normal CI test jobs on every push (fast-check + proptest with fixed seeds) over long-running coverage-guided fuzzing (cargo-fuzz/libFuzzer, nightly toolchain, separate slower CI job) — chose "Property tests in CI" when offered the choice, and also chose to stress the real live integration harness (real Redux store + middleware against the real backend) in addition to unit-level properties, not unit-only. Confidence: 0.6 +- When requesting revisions to an already-written plan, expects the agent to re-survey the current codebase state (recent commits/architecture) before editing, revise the plan IN-PLACE at the same file path ("revise the plan in place at the same path ... do not start implementing"), address every requested change, and re-present it for another review — keeping that single plan file as the canonical source of truth rather than spawning a new version. Notably flagged that a persistent plan/artifact must track the latest architecture (the new batched per-source streaming model with local vs global device state) rather than describing a stale model. Confidence: 0.6 +- After a plan is approved, does not expect immediate implementation unless explicitly told to go — the plan file stands on its own as the deliverable ("I'll leave the plan file as the single source of truth — nothing in live mode to implement yet unless you want to start"). Confidence: 0.5 +- When verifying Rust work locally requires native system libraries (e.g., a crate's build.rs needing librtlsdr via pkg-config), prefers the agent to install those build deps locally (brew install librtlsdr pkg-config libusb, matching what CI installs) and actually build/run the new Rust test suites, rather than deferring Rust verification to CI ("Skip local Rust verification"). Choosing to install the libs locally is the accepted option; verification-by-deferral is the fallback, not the default. Confidence: 0.5 +- Wants a featured/primary card (e.g., the "Use the App" CTA on the start page) visually distinguished from the sibling cards via an accent color, and requires that accent to work in both dark and light mode — i.e., it must come from a mode-aware theme token applied consistently (border, icon, subtle background wash), never a single fixed color that only reads on one surface. Also expects the featured card's hover state to be visually distinct too, not just its resting state: a stronger accent tint, an accent-colored ring/glow, and the lift preserved on hover ("It's hover state should be different too"). The orange `secondary` token (`#ffaa00` dark / `#ff8c42` light) was explicitly rejected as the accent for this CTA ("Possibly not orange, but something else"); the accepted accent is the app's native blue `theme.primary` (cyan `#00d4ff` dark / `#0055ff` light) — it is designed to work in both modes and follows the user-customizable accent setting, and once the accent matched the standard icon color the now-redundant icon-frame variant was dropped. Confidence: 0.65 +- Hover feedback must be scoped to the interactive element actually under the cursor: on a composite card with multiple clickable halves (e.g., the legal card with ToS and Privacy Policy sides), hovering one half must highlight only that half — a container-level `:hover` background tint that covers the whole card is a defect because it masks the per-half highlight ("the hover for the legal card... it should just be one side"). The accepted fix keeps structural feedback on the container (lift, border change) but suppresses its background tint so only the hovered sub-region's own highlight shows. Confidence: 0.55 +- A new regression test is only kept if it is verified to genuinely capture the bug: the agent temporarily disables the fix and confirms the test then FAILS with the bug's exact signature (e.g., pan stuck at `-0.2`) before restoring the fix and trusting the test. A test that passes both with and without the fix is worthless — the agent disabled just the fold, saw the test still pass, then disabled the whole handling branch to confirm the failure, iterating until the test demonstrably red-on-pre-fix/green-on-fix. Confidence: 0.8 +- Prefers minimal, focused fixes over hypothesis-driven defensive changes: when the investigation showed a previously-designed cap (`maxAcquisitionSpanHz`) was a no-op at zoom ≥ 1 (never triggered), the agent reverted that option/plumbing entirely rather than shipping it alongside the real fix — unvalidated defensive surface is removed to keep the diff tight and aimed at the actual reproduced bug. Confidence: 0.7 +- When a user reports a subtle interaction bug with only a brief symptom clue (e.g., "snaps back when crossing DC"), expects the agent to pin down the exact mechanism (here: a two-branch drag path where the below-DC visual-pan branch holds displacement as pan and the positive hardware-retune branch double-counts it at the re-cross), reproduce it in a minimal focused numeric harness, fix at that layer, and clean up scratch reproduction files afterward. Confidence: 0.65 diff --git a/.cursor/hooks/state/continual-learning-index.json b/.cursor/hooks/state/continual-learning-index.json index c1e7fc0c..50c88ae1 100644 --- a/.cursor/hooks/state/continual-learning-index.json +++ b/.cursor/hooks/state/continual-learning-index.json @@ -4,12 +4,132 @@ "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/0ddb2380-48b5-4fe1-81f0-9b2244eb4dea/0ddb2380-48b5-4fe1-81f0-9b2244eb4dea.jsonl": { "mtimeMs": 1775966600289 }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/16e5659c-ca63-4bd7-ba55-b373605303ce/16e5659c-ca63-4bd7-ba55-b373605303ce.jsonl": { + "mtimeMs": 1785638212140 + }, "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/3bdd0f3c-2457-4c51-822f-27913f591c22/3bdd0f3c-2457-4c51-822f-27913f591c22.jsonl": { - "mtimeMs": 1775968918285 + "mtimeMs": 1776015517938 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/3bdd0f3c-2457-4c51-822f-27913f591c22/subagents/21d851c2-da5c-4a04-ab0b-459bd742398d.jsonl": { + "mtimeMs": 1775968997123 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/42c9a65d-52b7-4b6b-aada-0476a820d5fb/42c9a65d-52b7-4b6b-aada-0476a820d5fb.jsonl": { + "mtimeMs": 1785968732141 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/4d4858a3-452e-4af1-986e-713453618ca0/4d4858a3-452e-4af1-986e-713453618ca0.jsonl": { + "mtimeMs": 1785633600657 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/552f7f74-4767-4e40-8cd8-61806bb8a718/552f7f74-4767-4e40-8cd8-61806bb8a718.jsonl": { + "mtimeMs": 1785638475565 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/552f7f74-4767-4e40-8cd8-61806bb8a718/subagents/34263aca-50fc-4b61-a039-c9ac959e3b1d.jsonl": { + "mtimeMs": 1785632151418 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/552f7f74-4767-4e40-8cd8-61806bb8a718/subagents/70c80507-4de7-4d35-be61-fe7c6470c439.jsonl": { + "mtimeMs": 1785632005480 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/552f7f74-4767-4e40-8cd8-61806bb8a718/subagents/f368f6ba-e072-448d-b4d7-17758fae9e07.jsonl": { + "mtimeMs": 1785632079869 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/654ed315-4f5d-4130-b01c-3e40bc134249/654ed315-4f5d-4130-b01c-3e40bc134249.jsonl": { + "mtimeMs": 1785631056224 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/654ed315-4f5d-4130-b01c-3e40bc134249/subagents/8b71e615-7bae-4f53-9ad1-cc35fdbf64f1.jsonl": { + "mtimeMs": 1785617940954 }, "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/7d766702-c37f-43e0-8de6-c3e88b27e3d0/7d766702-c37f-43e0-8de6-c3e88b27e3d0.jsonl": { "mtimeMs": 1774673065066 }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/7f9d0275-b2d8-44da-b552-cc67e8ad3feb/7f9d0275-b2d8-44da-b552-cc67e8ad3feb.jsonl": { + "mtimeMs": 1785638507182 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/8140eb07-8086-44c1-9c2c-6e7ed56e991a/8140eb07-8086-44c1-9c2c-6e7ed56e991a.jsonl": { + "mtimeMs": 1786553756011 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/a8bd8902-a697-4779-80f4-7632ffe3c57a/a8bd8902-a697-4779-80f4-7632ffe3c57a.jsonl": { + "mtimeMs": 1782952247761 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/af9bf9ad-6cfc-49f8-9539-436b7d7e01d9/af9bf9ad-6cfc-49f8-9539-436b7d7e01d9.jsonl": { + "mtimeMs": 1786402090539 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610.jsonl": { + "mtimeMs": 1785873041866 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/0bdf3d06-959a-4c5a-b4cc-c61dee7c0456.jsonl": { + "mtimeMs": 1785705098234 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/160348b0-16f4-498b-aa99-957a68b6723d.jsonl": { + "mtimeMs": 1785725393552 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/2c2334ab-d751-42ca-afff-e5579fa6b22d.jsonl": { + "mtimeMs": 1785638569393 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/38404fe4-5434-408c-8abe-a858a8cd8b83.jsonl": { + "mtimeMs": 1785872793328 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/46957ab1-dd0d-4800-aa0c-40f18f87c9e3.jsonl": { + "mtimeMs": 1785636668454 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/5320cad4-9378-4676-9b1e-4c2d11d4be1b.jsonl": { + "mtimeMs": 1785637017367 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/6283c5e6-e869-4a30-97b3-ac428f1d3baa.jsonl": { + "mtimeMs": 1785704965093 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/7f9d0275-b2d8-44da-b552-cc67e8ad3feb.jsonl": { + "mtimeMs": 1785636490509 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/7feb51b2-e2d8-4032-bbc1-11cd7713b0fd.jsonl": { + "mtimeMs": 1785637844585 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/9e9b9b1b-8147-42c7-9fe6-c05d0fe2a97f.jsonl": { + "mtimeMs": 1785637110632 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c5b8d7a1-4711-4841-a2a6-a6ffbb8a1610/subagents/a4509140-cd76-4d62-b3ed-bef7cb7c265f.jsonl": { + "mtimeMs": 1785638496044 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/c9fa3ecc-579f-4488-a9ee-136bdb027764/c9fa3ecc-579f-4488-a9ee-136bdb027764.jsonl": { + "mtimeMs": 1778450527469 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/cf2d562c-a049-464b-bec3-18cc1459e90a/cf2d562c-a049-464b-bec3-18cc1459e90a.jsonl": { + "mtimeMs": 1786561288390 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/cf2d562c-a049-464b-bec3-18cc1459e90a/subagents/aafdfb2b-ebc4-41aa-90b5-332dd8697015.jsonl": { + "mtimeMs": 1786561307270 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/cf490c59-5f30-4dd0-8735-b7b541acdc56/cf490c59-5f30-4dd0-8735-b7b541acdc56.jsonl": { + "mtimeMs": 1786132222808 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/d39a5bf3-1a40-4216-aa9a-3a8cdea88d94/d39a5bf3-1a40-4216-aa9a-3a8cdea88d94.jsonl": { + "mtimeMs": 1786066969778 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/d39a5bf3-1a40-4216-aa9a-3a8cdea88d94/subagents/c8e8eda4-d0d6-4062-b7b8-ebbf2c8a214a.jsonl": { + "mtimeMs": 1786065342776 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/d39a5bf3-1a40-4216-aa9a-3a8cdea88d94/subagents/e358138c-3b58-4d6e-8fc6-776629592e21.jsonl": { + "mtimeMs": 1786062742581 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/d39a5bf3-1a40-4216-aa9a-3a8cdea88d94/subagents/f6e7184c-bca5-496f-93bc-3692a0f19c5b.jsonl": { + "mtimeMs": 1786065424471 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/d3aedfc3-707a-44d7-b6f1-db3f37288c7b/d3aedfc3-707a-44d7-b6f1-db3f37288c7b.jsonl": { + "mtimeMs": 1785974536403 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/ed7e20a3-6a8e-4d89-bf36-9d5260eccb46/ed7e20a3-6a8e-4d89-bf36-9d5260eccb46.jsonl": { + "mtimeMs": 1786556441335 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/f10b425a-bbec-46f9-bbc4-c1b6f5fdff84/f10b425a-bbec-46f9-bbc4-c1b6f5fdff84.jsonl": { + "mtimeMs": 1785636384280 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/f10b425a-bbec-46f9-bbc4-c1b6f5fdff84/subagents/c155ec17-a792-423c-89b4-ff85682c57ce.jsonl": { + "mtimeMs": 1785636382159 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/fc5828ec-cde7-4b90-a7b0-657beb359ec9/fc5828ec-cde7-4b90-a7b0-657beb359ec9.jsonl": { + "mtimeMs": 1786553030635 + }, + "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/fda6f153-7113-4181-b4b4-b82603ec9a1e/fda6f153-7113-4181-b4b4-b82603ec9a1e.jsonl": { + "mtimeMs": 1785635290849 + }, "/Users/ceanelamerez/.cursor/projects/Users-ceanelamerez-Documents-codescratch-nosync-n-apt/agent-transcripts/fec00fd3-938b-47a3-838e-1bae9c6c6c19/fec00fd3-938b-47a3-838e-1bae9c6c6c19.jsonl": { "mtimeMs": 1775955832877 } diff --git a/.cursor/hooks/state/continual-learning.json b/.cursor/hooks/state/continual-learning.json index cb12c1c0..6b9ea53c 100644 --- a/.cursor/hooks/state/continual-learning.json +++ b/.cursor/hooks/state/continual-learning.json @@ -1,8 +1,8 @@ { "version": 1, - "lastRunAtMs": 1775968913651, - "turnsSinceLastRun": 9, - "lastTranscriptMtimeMs": 1775968913421, - "lastProcessedGenerationId": "81a6339d-d333-48f9-94da-6dcc2bc80fe0", + "lastRunAtMs": 1786561173177, + "turnsSinceLastRun": 7, + "lastTranscriptMtimeMs": 1786561172888, + "lastProcessedGenerationId": "49c5422e-b7f5-4447-b6d6-6139fd8739fd", "trialStartedAtMs": null } diff --git a/.githooks/pre-commit b/.githooks/pre-commit new file mode 100755 index 00000000..77171200 --- /dev/null +++ b/.githooks/pre-commit @@ -0,0 +1,21 @@ +#!/bin/sh + +set -eu + +ROOT=$(git rev-parse --show-toplevel) +cd "$ROOT" + +if command -v node >/dev/null 2>&1; then + NODE_BIN=$(command -v node) +elif [ -x "/Users/ceanelamerez/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/bin/node" ]; then + NODE_BIN="/Users/ceanelamerez/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/bin/node" +else + echo "pre-commit: Node.js is required to synchronize article channel frequencies." >&2 + exit 1 +fi + +"$NODE_BIN" scripts/article/sync-channel-frequencies.mjs --write + +# The synchronizer intentionally updates generated article text as part of the +# commit so a signals.yaml channel edit cannot leave either article copy stale. +git add -- pages/how-do-they-do-it.md docs/pages/how-do-they-do-it.md diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 34dbbcbd..39c81f29 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,8 @@ on: push: branches: [main] pull_request: - branches: ["**"] + types: [opened, synchronize, reopened] + workflow_dispatch: {} permissions: contents: read @@ -15,94 +16,18 @@ concurrency: cancel-in-progress: true jobs: - # Detect changes for conditional testing - detect-changes: - runs-on: ubuntu-latest - outputs: - frontend: ${{ steps.filter.outputs.frontend }} - rust: ${{ steps.filter.outputs.rust }} - rust-performance: ${{ steps.filter.outputs['rust-performance'] }} - wasm: ${{ steps.filter.outputs.wasm }} - integration: ${{ steps.filter.outputs.integration }} - steps: - - uses: actions/checkout@v4 - - uses: dorny/paths-filter@v3 - id: filter - with: - list-files: shell - filters: | - frontend: - - 'src/ts/**' - - 'src/md-preview/**' - - 'src/types/**' - - 'test/ts/**' - - 'package*.json' - - 'tsconfig*.json' - - 'vite*.config.*' - - 'jest.config.*' - rust: - - 'src/rs/**' - - 'test/rust/**' - - 'Cargo.toml' - - 'Cargo.lock' - - 'build.rs' - - 'signals.yaml' - rust-performance: - - 'test/rust/performance_tests.rs' - - 'src/rs/fft/**' - - 'src/rs/simd/**' - - 'src/rs/sdr/processor/**' - - 'Cargo.toml' - - 'Cargo.lock' - wasm: - - 'src/rs/lib.rs' - - 'src/rs/wasm/**' - - 'src/rs/simd/**' - - 'test/wasm/**' - - 'Cargo-wasm.toml' - - 'scripts/build/build_wasm.sh' - - 'Cargo.lock' - - 'package-lock.json' - integration: - - 'test/integration/**' - - 'src/ts/crypto/**' - - 'src/ts/services/**' - - 'src/ts/workers/**' - - 'src/rs/crypto/**' - - 'src/rs/server/**' - - 'src/rs/sdr/**' - - 'scripts/**' - - 'signals.yaml' - - 'Cargo.toml' - - 'Cargo.lock' - - - name: Print matched files - run: | - echo "frontend=${{ steps.filter.outputs.frontend }}" - echo "${{ steps.filter.outputs.frontend_files }}" - echo "rust=${{ steps.filter.outputs.rust }}" - echo "${{ steps.filter.outputs.rust_files }}" - echo "rust-performance=${{ steps.filter.outputs['rust-performance'] }}" - echo "${{ steps.filter.outputs['rust-performance_files'] }}" - echo "wasm=${{ steps.filter.outputs.wasm }}" - echo "${{ steps.filter.outputs.wasm_files }}" - echo "integration=${{ steps.filter.outputs.integration }}" - echo "${{ steps.filter.outputs.integration_files }}" - # Frontend type checking frontend-typecheck: runs-on: ubuntu-latest - needs: detect-changes - if: needs.detect-changes.outputs.frontend == 'true' steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 0 - name: Setup Node.js 26.x - uses: actions/setup-node@v4 + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: 26.x cache: "npm" @@ -116,20 +41,21 @@ jobs: - name: Run type checking run: npm run typecheck + - name: Check module reachability and script targets + run: npm run lint:structure + # Frontend tests frontend-tests: runs-on: ubuntu-latest - needs: detect-changes - if: needs.detect-changes.outputs.frontend == 'true' steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 0 - name: Setup Node.js 26.x - uses: actions/setup-node@v4 + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: 26.x cache: "npm" @@ -137,23 +63,11 @@ jobs: - name: Install dependencies run: npm ci --legacy-peer-deps - - name: Run tests (Affected Only on Branches) - run: | - if [ "${{ github.event_name }}" = "pull_request" ]; then - changed_since="origin/${{ github.base_ref }}" - else - changed_since="${{ github.event.before }}" - fi - - if [ -z "$changed_since" ] || [ "$changed_since" = "0000000000000000000000000000000000000000" ]; then - npm test - exit 0 - fi - - ./node_modules/.bin/jest test/ts --changedSince="$changed_since" --passWithNoTests + - name: Run all frontend tests + run: npm test - name: Upload coverage reports - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@0f8570b1a125f4937846a11fcfa3bcd548bd8c97 # v4.6.0 with: file: ./coverage/lcov.info flags: frontend @@ -163,8 +77,6 @@ jobs: # Rust tests rust-tests: runs-on: ubuntu-latest - needs: detect-changes - if: needs.detect-changes.outputs.rust == 'true' services: redis: @@ -179,7 +91,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 0 @@ -187,17 +99,20 @@ jobs: run: sudo apt-get update && sudo apt-get install -y librtlsdr-dev redis-server - name: Setup Rust - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable - name: Install cargo-nextest run: cargo install cargo-nextest --locked - name: Cache Rust dependencies - uses: Swatinem/rust-cache@v2 + uses: Swatinem/rust-cache@aa7c1c80a07a27a84c0aa76d0cef0aad3830e330 # v2.7.8 with: workspaces: . cache-on-failure: true + - name: Compile check (warnings are errors) + run: RUSTFLAGS="-D warnings" cargo check --workspace --all-targets + - name: Run Rust tests run: | all_tests=( @@ -210,7 +125,13 @@ jobs: frequency_validation_tests iq_capture_integration_tests mock_apt_tests + performance_program_tests server_tests + ws_message_proptests + yaml_config_proptests + iq_frame_codec_proptests + stream_manager_proptests + stream_command_proptests ) run_selected_tests() { @@ -219,90 +140,14 @@ jobs: done } - if [ "${{ github.event_name }}" = "pull_request" ]; then - git fetch --no-tags --prune --depth=1 origin "${{ github.base_ref }}" - changed_since="origin/${{ github.base_ref }}" - else - changed_since="${{ github.event.before }}" - fi - - if [ -z "$changed_since" ] || [ "$changed_since" = "0000000000000000000000000000000000000000" ]; then - run_selected_tests "${all_tests[@]}" - exit 0 - fi - - changed_files=$(git diff --name-only "$changed_since...HEAD" -- 'src/rs/**' 'test/rust/**' 'Cargo.toml' 'Cargo.lock' 'build.rs' 'signals.yaml') - echo "Changed Rust files:" - echo "$changed_files" - - tests=() - run_all=false - - while IFS= read -r file; do - case "$file" in - Cargo.toml|Cargo.lock|build.rs|signals.yaml|src/rs/lib.rs) - run_all=true - ;; - test/rust/performance_tests.rs) - ;; - test/rust/*.rs) - test_name=$(basename "$file" .rs) - tests+=("$test_name") - ;; - src/rs/authentication/*|src/rs/session/*) - tests+=("authentication_tests" "server_tests") - ;; - src/rs/crypto/*) - tests+=("encryption_e2e_tests" "authentication_tests") - ;; - src/rs/server/*) - tests+=("server_tests" "device_stream_frozen_tests") - ;; - src/rs/sdr/mock_apt/*) - tests+=("mock_apt_tests") - ;; - src/rs/sdr/processor/*) - tests+=("capture_stitch_tests" "frequency_validation_tests" "iq_capture_integration_tests") - ;; - src/rs/sdr/*) - tests+=("mock_apt_tests" "device_stream_frozen_tests") - ;; - src/rs/fft/*) - tests+=("fft_processor_tests" "capture_stitch_tests") - ;; - src/rs/stitching.rs) - tests+=("capture_stitch_tests") - ;; - src/rs/simd/*) - tests+=("fft_processor_tests") - ;; - src/rs/consts/*) - tests+=("fft_processor_tests" "frequency_validation_tests") - ;; - *) - run_all=true - ;; - esac - done <<< "$changed_files" - - if [ "$run_all" = true ]; then - run_selected_tests "${all_tests[@]}" - exit 0 - fi - - if [ "${#tests[@]}" -eq 0 ]; then - cargo nextest run --lib - exit 0 - fi - - mapfile -t selected_tests < <(printf "%s\n" "${tests[@]}" | sort -u) - run_selected_tests "${selected_tests[@]}" + run_selected_tests "${all_tests[@]}" env: REDIS_URL: redis://localhost:6379 UNSAFE_LOCAL_USER_PASSWORD: n-apt-dev-key + PROPTEST_SEED: "0xdeadbeef00000001" - name: Upload Rust coverage - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@0f8570b1a125f4937846a11fcfa3bcd548bd8c97 # v4.6.0 with: flags: rust token: ${{ secrets.CODECOV_TOKEN }} @@ -311,48 +156,49 @@ jobs: # Rust Performance Tests (Release mode) rust-performance-tests: runs-on: ubuntu-latest - needs: detect-changes - if: needs.detect-changes.outputs['rust-performance'] == 'true' || github.ref == 'refs/heads/main' steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Install system dependencies run: sudo apt-get update && sudo apt-get install -y librtlsdr-dev - name: Setup Rust - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable - name: Cache Rust dependencies - uses: Swatinem/rust-cache@v2 + uses: Swatinem/rust-cache@aa7c1c80a07a27a84c0aa76d0cef0aad3830e330 # v2.7.8 with: workspaces: . cache-on-failure: true - name: Run Rust Performance Tests - run: cargo --config .cargo/performance.toml test --test performance_tests --release -- --nocapture + run: | + cargo --config .cargo/performance.toml test --test performance_tests --release -- --nocapture + cargo test --test performance_program_tests + + - name: Compile report-only uncapped benchmarks + run: cargo bench --bench pipeline_benchmarks --no-run # WASM tests wasm-tests: runs-on: ubuntu-latest - needs: detect-changes - if: needs.detect-changes.outputs.wasm == 'true' || github.ref == 'refs/heads/main' steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 0 - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: '26.x' cache: "npm" - name: Setup Rust - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable with: targets: wasm32-unknown-unknown @@ -368,8 +214,6 @@ jobs: # Integration tests integration-tests: runs-on: ubuntu-latest - needs: detect-changes - if: needs.detect-changes.outputs.integration == 'true' services: redis: @@ -384,12 +228,12 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: 0 - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: '26.x' cache: "npm" @@ -398,10 +242,10 @@ jobs: run: sudo apt-get update && sudo apt-get install -y librtlsdr-dev - name: Setup Rust - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable - name: Cache Rust dependencies - uses: Swatinem/rust-cache@v2 + uses: Swatinem/rust-cache@aa7c1c80a07a27a84c0aa76d0cef0aad3830e330 # v2.7.8 with: workspaces: . cache-on-failure: true @@ -409,8 +253,7 @@ jobs: - name: Install dependencies run: npm ci --legacy-peer-deps - - name: Build WASM (if changed) - if: needs.detect-changes.outputs.wasm == 'true' || github.ref == 'refs/heads/main' + - name: Build WASM run: npm run build:wasm - name: Build Rust Backend @@ -419,19 +262,8 @@ jobs: - name: Generate Encrypted Test Artifacts run: cargo test --test encryption_e2e_tests generate_test_artifacts -- --nocapture - - name: Run integration tests (Affected Only on Branches) - run: | - if [ "${{ github.event_name }}" = "pull_request" ]; then - changed_since="origin/${{ github.base_ref }}" - else - changed_since="${{ github.event.before }}" - fi - - if [ -z "$changed_since" ] || [ "$changed_since" = "0000000000000000000000000000000000000000" ]; then - npm run test:integration - else - ./node_modules/.bin/jest test/integration --runInBand --changedSince="$changed_since" --passWithNoTests - fi + - name: Run all integration tests + run: npm run test:integration env: REDIS_URL: redis://localhost:6379 UNSAFE_LOCAL_USER_PASSWORD: n-apt-dev-key diff --git a/.gitignore b/.gitignore index c75d6abb..50b5aa76 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ build/ scripts/dist/ scratch/ .ts-node-build/ +.react-router/ benches/ # Generated diagnostics and test artifacts @@ -69,6 +70,10 @@ redis/backups # Local rebuild metadata .rebuild_status.json +.n-apt-build-orchestrator.lock +.n-apt-backend-handoff-proxy.lock +.n-apt-backend-target.json +.n-apt-backend-target.json.tmp # Rust-specific files *.pdb diff --git a/.ladle/components.tsx b/.ladle/components.tsx index 0aef1366..758b270e 100644 --- a/.ladle/components.tsx +++ b/.ladle/components.tsx @@ -1,34 +1,34 @@ import React, { useEffect } from "react"; import type { GlobalProvider } from "@ladle/react"; import { useLadleContext, ThemeState, ActionType } from "@ladle/react"; -import { MemoryRouter } from "react-router-dom"; -import ReduxProvider from "../src/ts/components/ReduxProvider"; -import ReduxThemeProvider from "../src/ts/components/ReduxThemeProvider"; -import { PromptProvider } from "../src/ts/components/ui/PromptProvider"; -import { AuthProvider } from "../src/ts/hooks/useAuthentication"; -import { Model3DProvider } from "../src/ts/hooks/useModel3D"; -import { HotspotEditorProvider } from "../src/ts/hooks/useHotspotEditor"; +import { MemoryRouter } from "react-router"; +import ReduxProvider from "@n-apt/app/ReduxProvider"; +import ReduxThemeProvider from "@n-apt/app/ReduxThemeProvider"; +import { PromptProvider } from "@n-apt/ui/PromptProvider"; +import { AuthProvider } from "@n-apt/app/hooks/useAuthentication"; +import { Model3DProvider } from "@n-apt/three-d/hooks/useModel3D"; +import { Model3DInteractionProvider as HotspotEditorProvider } from "@n-apt/three-d/hooks/useHotspotEditor"; import { SpectrumProvider, INITIAL_SPECTRUM_STATE, -} from "../src/ts/hooks/useSpectrumStore"; +} from "@n-apt/spectrum/hooks/useSpectrumStore"; import type { SpectrumStoreContextValue, SpectrumState, -} from "../src/ts/hooks/useSpectrumStore"; +} from "@n-apt/spectrum/hooks/useSpectrumStore"; import type { DeviceState, DeviceLoadingReason, -} from "../src/ts/hooks/useWebSocket"; -import { store, authActions, themeActions, websocketActions, spectrumActions } from "../src/ts/redux"; -import { setDisconnected, setConnected } from "../src/ts/redux/slices/websocketSlice"; +} from "@n-apt/consts/schemas/websocket"; +import { store, authActions, themeActions, websocketActions, spectrumActions } from "@n-apt/redux"; +import { setDisconnected, setConnected } from "@n-apt/redux/slices/websocketSlice"; import { createGlobalStyle } from "styled-components"; import type { SpectrumFrame, SdrSettingsConfig, CaptureRequest, CaptureStatus, -} from "../src/ts/consts/schemas/websocket"; +} from "@n-apt/consts/schemas/websocket"; const GlobalStyle = createGlobalStyle` body, button, input, select, textarea { diff --git a/Cargo.toml b/Cargo.toml index 626b4c50..38adde00 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,6 +53,10 @@ path = "test/rust/encryption_e2e_tests.rs" name = "performance_tests" path = "test/rust/performance_tests.rs" +[[test]] +name = "performance_program_tests" +path = "test/rust/performance_program_tests.rs" + [[test]] name = "frequency_validation_tests" path = "test/rust/frequency_validation_tests.rs" @@ -85,6 +89,30 @@ path = "test/rust/hackrf_integration_tests.rs" name = "reload_tests" path = "test/rust/reload_tests.rs" +[[test]] +name = "stream_manager_tests" +path = "test/rust/stream_manager_tests.rs" + +[[test]] +name = "ws_message_proptests" +path = "test/rust/ws_message_proptests.rs" + +[[test]] +name = "yaml_config_proptests" +path = "test/rust/yaml_config_proptests.rs" + +[[test]] +name = "iq_frame_codec_proptests" +path = "test/rust/iq_frame_codec_proptests.rs" + +[[test]] +name = "stream_manager_proptests" +path = "test/rust/stream_manager_proptests.rs" + +[[test]] +name = "stream_command_proptests" +path = "test/rust/stream_command_proptests.rs" + [[bin]] name = "live_stream_test" path = "src/rs/bin/live_stream_test.rs" @@ -93,6 +121,11 @@ path = "src/rs/bin/live_stream_test.rs" name = "dump_config" path = "src/rs/bin/dump_config.rs" +[[bench]] +name = "pipeline_benchmarks" +path = "test/benchmarks/pipeline_benchmarks.rs" +harness = false + [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rs_decrypted)'] } @@ -101,15 +134,15 @@ default = [] mock_apt_metal = ["dep:metal"] [dependencies] -paste = "1.0" # Core dependencies (always included) rustfft = "6" num-complex = "0.4" -rand = "0.10" +rand = ">=0.10.1, <0.11" +paste = { package = "pastey", version = "0.1.1" } rayon = "1.12" getrandom = { version = "0.4", features = ["wasm_js"] } -anyhow = "1.0" +anyhow = ">=1.0.103, <2" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" bytemuck = "1.25.0" @@ -135,7 +168,7 @@ metal = { version = "0.31", optional = true } tokio = { version = "1.52", features = ["full"] } tokio-util = { version = "0.7", features = ["io"] } tokio-tungstenite = "0.29" -redis = { version = "1.2", features = ["aio", "tokio-comp"] } +redis = { version = "1.6", features = ["aio", "tokio-comp"] } env_logger = "0.11" futures-util = "0.3" chrono = { version = "0.4", features = ["serde", "wasmbind"] } @@ -156,7 +189,7 @@ tower-http = { version = "0.6", features = ["cors", "set-header", "compression-g webauthn-rs = { version = "0.5", default-features = false } webauthn-rs-proto = "0.5" # Session management -uuid = { version = "1", features = ["v4"] } +uuid = { version = "1.25", features = ["v4"] } # Hot reloading and configuration notify = "8.2" serde_yaml = "0.9" @@ -175,6 +208,7 @@ doc-comment = "0.3" tempfile = "3" serial_test = "3.2" criterion = { version = "0.8", features = ["html_reports"] } +proptest = "1.6" [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] tokio-test = "0.4" @@ -223,4 +257,3 @@ overflow-checks = false [[bin]] name = "test_fft" path = "src/rs/bin/test_fft.rs" - diff --git a/README.md b/README.md index 8dfc24e8..f1f917d1 100644 --- a/README.md +++ b/README.md @@ -342,6 +342,7 @@ git clone https://github.com/ceane/n-apt.git cd n-apt npm run setup # sets up .env.local and fetches Rust dependencies npm install # installs dependencies +npm run setup:hooks # enables the tracked signals/article pre-commit hook npm run dev # starts app ``` @@ -367,6 +368,33 @@ The web app will be **available at `http://localhost:5173`** with the WebSocket ### Command-Line Captures +### Agent surfaces and CLI automation + +N-APT exposes a route-aware Markdown-for-Agents surface and WebMCP capability +manifest. Request `text/markdown` from `/agents.md` for the coverage index or +from a supported app route for its agent instructions: + +```bash +curl -H 'Accept: text/markdown' http://localhost:5173/agents.md +curl -H 'Accept: text/markdown' http://localhost:5173/visualizer +``` + +The CLI exposes the same capability inventory and can retrieve Markdown or +execute authenticated backend tools: + +```bash +npm run cli -- agent capabilities --json +npm run cli -- agent markdown --route /visualizer +npm run cli -- agent call getDeviceStatus --json +npm run cli -- agent call setGain --params '{"gain":46.9}' --allow-mutations --json +``` + +CLI execution is read-only by default. Mutations require `--allow-mutations`; +transmission and destructive device/storage actions are blocked. Unsupported, +authenticated-only, legal, onboarding, educational, and demo routes are +explicitly marked in the capability manifest rather than advertised as +automatable. + The CLI can discover SDR devices, render signal snapshots, and record I/Q captures without opening or operating the frontend UI. Run commands from the repository root after completing the setup and installation steps above. diff --git a/RESPONSIBLE_USE.md b/RESPONSIBLE_USE.md index 5e0d95c1..e4a34aa3 100644 --- a/RESPONSIBLE_USE.md +++ b/RESPONSIBLE_USE.md @@ -11,14 +11,14 @@ Violations of this policy constitute a breach of the License and trigger the **D Licensee **may not use the Software or any derivatives** for purposes that: 1. **Violate human rights** - - Arbitrary killing, slavery, forced labor, torture, inhumane treatment. + - Arbitrary wrongdoing, violence, killing, slavery, forced labor, torture, inhumane treatment. - Discrimination or denial of fundamental rights. 2. **Engage in unlawful surveillance or privacy violations** - Mass surveillance, unauthorized data collection, stalking, eavesdropping, or tracking. 3. **Cause psychological, emotional, or physical harm** - - Manipulation, coercion, harassment, cyberbullying, intimidation, or emotional abuse. + - Intimidation, manipulation, witholding, coercion, harassment, cyberbullying, or emotional abuse. - Licensee must **avoid use that imposes extreme, disproportionate, or sustained harm, or exploits individuals or systems in ways beyond legitimate purposes**. 4. **Use in offensive military or weaponized applications** @@ -28,7 +28,7 @@ Licensee **may not use the Software or any derivatives** for purposes that: - Exploiting loopholes to bypass privacy laws, consent requirements, or regulatory safeguards. 6. **Engage in hate crimes, unlawful discrimination, or harassment** - - Target individuals or groups based on **identity, belief, sexual orientation, gender, race, ethnicity, nationality, religion, ability, or any protected status**. + - Target individuals or groups based on **nationality, religion, ethnicity, gender, race, identity, belief, sexual orientation, ability, or any protected status**. - Licensee must not use the Software to **arbitrarily single out, coerce, or manipulate** any person or group for discriminatory purposes. --- diff --git a/build.rs b/build.rs index a7d0ddc2..8d79cdef 100644 --- a/build.rs +++ b/build.rs @@ -21,6 +21,10 @@ fn main() { } fn link_rtlsdr() { + if link_homebrew_library("librtlsdr", "rtlsdr") { + return; + } + if try_pkg_config() { return; } @@ -46,11 +50,34 @@ fn link_homebrew_libusb() { } fn link_hackrf() { - if try_pkg_config_for(&["libhackrf", "hackrf"]) { + if link_homebrew_library("hackrf", "hackrf") + || try_pkg_config_for(&["libhackrf", "hackrf"]) + { println!("cargo:rustc-cfg=has_hackrf"); } } +fn link_homebrew_library(formula: &str, library: &str) -> bool { + if !cfg!(target_os = "macos") { + return false; + } + + for prefix in ["/opt/homebrew", "/usr/local"] { + if let Some(path) = homebrew_library_dir(Path::new(prefix), formula) { + println!("cargo:rustc-link-search=native={}", path.display()); + println!("cargo:rustc-link-lib={}", library); + return true; + } + } + + false +} + +fn homebrew_library_dir(prefix: &Path, formula: &str) -> Option { + let path = prefix.join("opt").join(formula).join("lib"); + path.is_dir().then_some(path) +} + fn try_pkg_config() -> bool { try_pkg_config_for(&["librtlsdr", "rtlsdr"]) } @@ -67,3 +94,21 @@ fn try_pkg_config_for(packages: &[&str]) -> bool { } false } + +#[cfg(test)] +mod tests { + use super::homebrew_library_dir; + use std::fs; + use std::path::PathBuf; + + #[test] + fn homebrew_library_dir_uses_stable_opt_path() { + let root = std::env::temp_dir() + .join(format!("n-apt-build-script-test-{}", std::process::id())); + let library_dir: PathBuf = root.join("opt").join("librtlsdr").join("lib"); + fs::create_dir_all(&library_dir).unwrap(); + + assert_eq!(homebrew_library_dir(&root, "librtlsdr"), Some(library_dir)); + fs::remove_dir_all(root).unwrap(); + } +} diff --git a/docs/architecture/multiplex-stream-pipeline.md b/docs/architecture/multiplex-stream-pipeline.md new file mode 100644 index 00000000..45a3d1a5 --- /dev/null +++ b/docs/architecture/multiplex-stream-pipeline.md @@ -0,0 +1,128 @@ +# Multiplex Stream Pipeline: Socket → Paint + +Owner vocabulary: **multiplexStream\***. This document is the contract for how an +I/Q frame travels from the wire to a painted canvas, who makes each decision, +and where each rule lives in code. If you are changing frame flow, change this +document in the same commit. + +## 1. Canonical vocabulary + +| Term | Meaning | Home | +|---|---|---| +| **MultiplexStreamFrameId** | `{sourceId, streamEpoch, sequence}` — the identity of a frame on the wire | `features/spectrum/model/multiplexStream/frameIdentity` (see `frameGate.ts`) | +| **acceptsMultiplexStreamFrame(frame, lifecycle)** | The *only* "does this frame belong here" predicate | `model/multiplexStream/frameGate.ts` | +| **Sequence gate** | Per-stream monotonic ordering, duplicate rejection, gap counting, first-frame-per-epoch readiness boundary | `model/multiplexStream/frameGate.ts` (`createMultiplexStreamSequenceGate`) | +| **Verdict** | One decision object consumed by canvases/route: `{phase, placeholder, framePolicy, gpuReset, standby}` | `model/multiplexStream/lifecycle/` (Phase 3 of consolidation) | +| **Transport** | One authenticated WebSocket carrying every active source/mode subscription | `app/infrastructure/streams/multiplexedStreamTransport.ts` | +| **Delivery policy** | `latest` (coalesce while decrypting; slow consumer drops stale frames) vs `lossless` (bounded 32-frame queue, lag error beyond that) | transport + `streamContract.ts` | +| **optionsRevision** | Monotonic tuning-contract counter; frames from an older device window are purged on advance | transport | + +Rule: `model/` is pure and imports nothing from `app/`, `redux/`, or React. +Infrastructure owns mechanism (sockets, GPU flushes, storage). Middleware and +routes apply decisions; they never define them. + +## 2. Live path (socket → paint) + +``` +Backend /ws/streams (one socket, all subscriptions) + │ JSON messages: stream_frame / stream_subscribed / stream_options_applied … + ▼ +multiplexedStreamTransport [infrastructure/streams] + │ • routes by StreamKey {sourceId, mode} + │ • delivery policy queues (latest coalesce | lossless bounded) + │ • async decrypt (one in flight per connection) + │ • optionsRevision gating: purge frames from superseded tuning windows + ▼ +sourceModeStreamManager [infrastructure/streams] + │ logical subscriptions, epoch/state events (stream_opened/stream_state) + ▼ +websocketMiddleware [redux/middleware] + │ • publishes presentation frames into frame slots + │ (presentationController slots / liveDataRef / liveDataBySourceRef) + │ • dispatches sourceFrameReadinessByMode (low-frequency readiness boundary) + │ • notifyFrameArrival() → push notification [frameArrivalRuntime] + │ • subscribeFrameRuntime() shared 50ms clock for pull consumers + ▼ +getLiveFrameRefForSource() proxy [infrastructure/visualization/frameRuntime] + │ resolves the ref a canvas reads: active slot → mode-scoped slot + │ (frozen-frame epoch validated) → legacy source map. Being replaced by + │ explicit resolveFrameSlot(sourceId, mode) → {ref, kind} (Phase 4). + ▼ +SpectrumRoute [routes/pages] + │ useLiveSourceLifecycle() → phase/policy verdicts from Redux status + + │ transport phase + readiness + painted-frame owner. Never subscribes to + │ raw frames. + ▼ +FFTCanvas rAF loop [features/spectrum] + ├─ resolveFramePresentation() [fft/framePresentation.ts] + │ applies the lifecycle Verdict + explicit placeholders → paint / + │ placeholder / preserve-last-paint / deferred-reset decision record + ├─ resolveLiveSpectrumPaintContract() [fft/frameProcessing.ts] + │ frequency-axis geometry: range match, retune-hold, baseband mirror, + │ pan/zoom rebase, temporal averaging ring buffer + └─ GPU submit · flushWebGpuPresentation* [webgpuStreamReset.ts — mechanism only] + reset epochs advance ONLY at source-selection / same-source-reconnect + boundaries (resolveWebGpuStreamTransition). +``` + +## 3. File playback path + +Stitch worker → precomputed frames → `buildPlaybackSeedFrame` +(`features/spectrum/fft/playbackSeedFrame.ts`) writes a synthetic first frame +into `fileFrameRuntime` during the mount render (avoids a blank-canvas race), +then the same canvas stages above consume it. File playback never touches the +transport, middleware slots, or readiness. + +## 4. Frame acceptance rules (the one predicate) + +`acceptsMultiplexStreamFrame(frame, lifecycle)`: + +1. Source mismatch ⇒ reject. No committed source ⇒ reject everything. +2. Epoch-less frame (v1 wire format / legacy untagged) ⇒ accept on source match. +3. Epoch-tagged frame ⇒ accept when `frameEpoch >= committedEpoch`. A newer + same-source epoch is accepted so the data plane may lead control-plane + metadata; the consumer adopts it when observed. + +On top: `createMultiplexStreamSequenceGate()` rejects duplicates/reorders within +an epoch, counts gaps, and yields the once-per-`{sourceId}:{epoch}` readiness +boundary. Historical note: these rules were first implemented in the IQ frame +pump (`iqFramePump.ts`, removed 2026-08); the pump was superseded by the +multiplexed transport but its acceptance semantics are preserved verbatim here +and covered by `test/ts/frameGate.test.ts`. + +## 5. Ingress paths and the tagging seam + +Two ingress paths feed the same presentation slots today: + +| Path | Frames | Tagging | +|---|---|---| +| Multiplexed transport (`/ws/streams`) | live RX/TX streaming | `makeFrame` hardcodes `frame_status` to `"receiving"`/`"transmitting"` — never emits `standby`/`is_tx_preview` | +| Legacy control socket (`/ws`) batch path | paused/one-shot preview frames (`request_next_frame`) | carries the `standby`/`is_tx_preview` tags the middleware gate filters on | + +**Consequence:** standby/Tx-preview frames reach the canvas exclusively through +the legacy control-socket path. This is deliberate today and pinned by tests; +removing the legacy layer requires migrating preview frames onto the +multiplexed transport with explicit tagging (backend-inclusive work). + +## 6. Decision ownership map + +| Question | Decided by | Applied by | +|---|---|---| +| Does this frame belong to my selection? | `frameGate.ts` | transport/middleware/canvas/slots | +| Is there a paintable frame for the selected source? | lifecycle model (readiness ∨ frozen frame ∨ rendered-once) | SpectrumRoute → canvas | +| What phase is the live view in? | `resolveLiveSourceLifecycle` (pure resolver) | route placeholders, canvas loading | +| May the last painted frame be kept across a gap/handoff? | presentation policy within the Verdict + `shouldPreservePresentationDuringFrameGap` | FFTCanvas | +| When does the GPU state reset? | epoch transitions only (`resolveWebGpuStreamTransition`) | FFTCanvas via `webGpuStreamResetEpoch` | +| Which pixels does this frame occupy? | `frameProcessing.ts` paint contract | FFTCanvas GPU submission | + +## 7. Testing strategy + +- Pure modules (`model/`, `framePresentation`, `frameProcessing`, + `webgpuStreamReset` predicates) carry exhaustive unit/table tests. +- `test/ts/frameGate.test.ts` pins acceptance semantics, including the + device-swap late-frame rejection scenario end-to-end. +- `test/integration/device-swap-frame-form.integration.test.ts` exercises + identity gate → readiness dispatch → middleware queue → payload-form + integrity across a handoff. +- Any refactor of a stage must be preceded by a characterization-test commit so + regressions bisect to a single diff. diff --git a/docs/assets/CanvasText-BD49uWGZ.js b/docs/assets/CanvasText-BD49uWGZ.js new file mode 100644 index 00000000..c999db11 --- /dev/null +++ b/docs/assets/CanvasText-BD49uWGZ.js @@ -0,0 +1,4201 @@ +import{D as ip,E as $R,O as JR,T as m0,b as KR,k as rp,v as $g}from"./index-DFp1YEqS.js";var xt=rp(m0(),1);var QR={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},e2={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};var OM="attached",t2="detached";var qu=1e3,ji=1001,Yu=1002,qn=1003,g0=1004,n2=1004,v0=1005,i2=1005,xn=1006,y0=1007,r2=1007,bc=1008,s2=1008,Zs=1009,FM=1010,BM=1011,_0=1012,zM=1013,Js=1014,Ks=1015,Ha=1016,b0=1017,x0=1018,S0=1020,kM=35902,VM=35899,HM=1021,GM=1022,Qs=1023,fc=1026,M0=1027,w0=1028,sp=1029,ju=1030,T0=1031,a2=1032,E0=1033,WM=33776,XM=33777,qM=33778,YM=33779,jM=35840,ZM=35841,$M=35842,JM=35843,KM=36196,QM=37492,ew=37496,tw=37488,nw=37489,iw=37490,rw=37491,sw=37808,aw=37809,ow=37810,lw=37811,cw=37812,uw=37813,hw=37814,dw=37815,fw=37816,pw=37817,mw=37818,gw=37819,vw=37820,yw=37821,_w=36492,bw=36494,xw=36495,Sw=36283,Mw=36284,ww=36285,Tw=36286,o2=2200,Ew=2201,Aw=2202,Zu=2300,Zf=2301,Hf=2302,Zv=2303,Bo=2400,zo=2401,$u=2402,ap=2500,A0=2501,Cw=3200,l2=3201,c2=3202,u2=3203;var xi="srgb",Ju="srgb-linear",Ku="linear",Qu="srgb",Gf=7680,h2=7681,d2=7682,f2=7683,p2=34055,m2=34056,g2=5386;var op=35044,v2=35048,y2=35040,_2=35045,b2=35049,x2=35041,S2=35046,M2=35050,w2=35042,T2="300 es",Ga=2e3,E2=2001,A2={COMPUTE:"compute",RENDER:"render"},C2={PERSPECTIVE:"perspective",LINEAR:"linear",FLAT:"flat"},R2={NORMAL:"normal",CENTROID:"centroid",SAMPLE:"sample",FIRST:"first",EITHER:"either"},P2={TEXTURE_COMPARE:"depthTextureCompare"};function I2(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}var L2={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function cc(e,t){return new L2[e](t)}function Rw(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function eh(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}function Pw(){const e=eh("canvas");return e.style.display="block",e}var HS={},Wa=null;function N2(e){Wa=e}function D2(){return Wa}function th(...e){const t="THREE."+e.shift();Wa&&Wa("log",t,...e)}function Iw(e){const t=e[0];if(typeof t=="string"&&t.startsWith("TSL:")){const n=e[1];n&&n.isStackTrace?e[0]+=" "+n.getLocation():e[1]='Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.'}return e}function Ne(...e){e=Iw(e);const t="THREE."+e.shift();if(Wa)Wa("warn",t,...e);else{const n=e[0];n&&n.isStackTrace}}function rt(...e){e=Iw(e);const t="THREE."+e.shift();if(Wa)Wa("error",t,...e);else{const n=e[0];n&&n.isStackTrace}}function Va(...e){const t=e.join(" ");t in HS||(HS[t]=!0,Ne(...e))}function fU(){return typeof self<"u"&&typeof self.scheduler<"u"&&typeof self.scheduler.yield<"u"?self.scheduler.yield():new Promise(e=>{requestAnimationFrame(e)})}function U2(e,t,n){return new Promise(function(s,a){function l(){switch(e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0)){case e.WAIT_FAILED:a();break;case e.TIMEOUT_EXPIRED:setTimeout(l,n);break;default:s()}}setTimeout(l,n)})}var O2={0:1,2:6,4:7,3:5,1:0,6:2,7:4,5:3},Wr=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){const n=this._listeners;return n===void 0?!1:n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){const n=this._listeners;if(n===void 0)return;const s=n[e];if(s!==void 0){const a=s.indexOf(t);a!==-1&&s.splice(a,1)}}dispatchEvent(e){const t=this._listeners;if(t===void 0)return;const n=t[e.type];if(n!==void 0){e.target=this;const s=n.slice(0);for(let a=0,l=s.length;a>8&255]+yi[e>>16&255]+yi[e>>24&255]+"-"+yi[t&255]+yi[t>>8&255]+"-"+yi[t>>16&15|64]+yi[t>>24&255]+"-"+yi[n&63|128]+yi[n>>8&255]+"-"+yi[n>>16&255]+yi[n>>24&255]+yi[s&255]+yi[s>>8&255]+yi[s>>16&255]+yi[s>>24&255]).toLowerCase()}function gt(e,t,n){return Math.max(t,Math.min(n,e))}function C0(e,t){return(e%t+t)%t}function F2(e,t,n,s,a){return s+(e-t)*(a-s)/(n-t)}function B2(e,t,n){return e!==t?(n-e)/(t-e):0}function Hu(e,t,n){return(1-n)*e+n*t}function z2(e,t,n,s){return Hu(e,t,1-Math.exp(-n*s))}function k2(e,t=1){return t-Math.abs(C0(e,t*2)-t)}function V2(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*(3-2*e))}function H2(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*e*(e*(e*6-15)+10))}function G2(e,t){return e+Math.floor(Math.random()*(t-e+1))}function W2(e,t){return e+Math.random()*(t-e)}function X2(e){return e*(.5-Math.random())}function q2(e){e!==void 0&&(GS=e);let t=GS+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function Y2(e){return e*Ho}function j2(e){return e*pc}function Z2(e){return(e&e-1)===0&&e!==0}function $2(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function J2(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function K2(e,t,n,s,a){const l=Math.cos,c=Math.sin,h=l(n/2),d=c(n/2),f=l((t+s)/2),g=c((t+s)/2),v=l((t-s)/2),y=c((t-s)/2),_=l((s-t)/2),M=c((s-t)/2);switch(a){case"XYX":e.set(h*g,d*v,d*y,h*f);break;case"YZY":e.set(d*y,h*g,d*v,h*f);break;case"ZXZ":e.set(d*v,d*y,h*g,h*f);break;case"XZX":e.set(h*g,d*M,d*_,h*f);break;case"YXY":e.set(d*_,h*g,d*M,h*f);break;case"ZYZ":e.set(d*M,d*_,h*g,h*f);break;default:Ne("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+a)}}function Fi(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return e/4294967295;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int32Array:return Math.max(e/2147483647,-1);case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("THREE.MathUtils: Invalid component type.")}}function It(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return Math.round(e*4294967295);case Uint16Array:return Math.round(e*65535);case Uint8Array:return Math.round(e*255);case Int32Array:return Math.round(e*2147483647);case Int16Array:return Math.round(e*32767);case Int8Array:return Math.round(e*127);default:throw new Error("THREE.MathUtils: Invalid component type.")}}var Q2={DEG2RAD:Ho,RAD2DEG:pc,generateUUID:or,clamp:gt,euclideanModulo:C0,mapLinear:F2,inverseLerp:B2,lerp:Hu,damp:z2,pingpong:k2,smoothstep:V2,smootherstep:H2,randInt:G2,randFloat:W2,randFloatSpread:X2,seededRandom:q2,degToRad:Y2,radToDeg:j2,isPowerOfTwo:Z2,ceilPowerOfTwo:$2,floorPowerOfTwo:J2,setQuaternionFromProperEuler:K2,normalize:It,denormalize:Fi},ye=class Lw{static{Lw.prototype.isVector2=!0}constructor(t=0,n=0){this.x=t,this.y=n}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,n){return this.x=t,this.y=n,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,n){switch(t){case 0:this.x=n;break;case 1:this.y=n;break;default:throw new Error("THREE.Vector2: index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("THREE.Vector2: index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,n){return this.x=t.x+n.x,this.y=t.y+n.y,this}addScaledVector(t,n){return this.x+=t.x*n,this.y+=t.y*n,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,n){return this.x=t.x-n.x,this.y=t.y-n.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const n=this.x,s=this.y,a=t.elements;return this.x=a[0]*n+a[3]*s+a[6],this.y=a[1]*n+a[4]*s+a[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,n){return this.x=gt(this.x,t.x,n.x),this.y=gt(this.y,t.y,n.y),this}clampScalar(t,n){return this.x=gt(this.x,t,n),this.y=gt(this.y,t,n),this}clampLength(t,n){const s=this.length();return this.divideScalar(s||1).multiplyScalar(gt(s,t,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const n=Math.sqrt(this.lengthSq()*t.lengthSq());if(n===0)return Math.PI/2;const s=this.dot(t)/n;return Math.acos(gt(s,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const n=this.x-t.x,s=this.y-t.y;return n*n+s*s}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,n){return this.x+=(t.x-this.x)*n,this.y+=(t.y-this.y)*n,this}lerpVectors(t,n,s){return this.x=t.x+(n.x-t.x)*s,this.y=t.y+(n.y-t.y)*s,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,n=0){return this.x=t[n],this.y=t[n+1],this}toArray(t=[],n=0){return t[n]=this.x,t[n+1]=this.y,t}fromBufferAttribute(t,n){return this.x=t.getX(n),this.y=t.getY(n),this}rotateAround(t,n){const s=Math.cos(n),a=Math.sin(n),l=this.x-t.x,c=this.y-t.y;return this.x=l*s-c*a+t.x,this.y=l*a+c*s+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Bi=class{constructor(e=0,t=0,n=0,s=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=n,this._w=s}static slerpFlat(e,t,n,s,a,l,c){let h=n[s+0],d=n[s+1],f=n[s+2],g=n[s+3],v=a[l+0],y=a[l+1],_=a[l+2],M=a[l+3];if(g!==M||h!==v||d!==y||f!==_){let T=h*v+d*y+f*_+g*M;T<0&&(v=-v,y=-y,_=-_,M=-M,T=-T);let S=1-c;if(T<.9995){const b=Math.acos(T),C=Math.sin(b);S=Math.sin(S*b)/C,c=Math.sin(c*b)/C,h=h*S+v*c,d=d*S+y*c,f=f*S+_*c,g=g*S+M*c}else{h=h*S+v*c,d=d*S+y*c,f=f*S+_*c,g=g*S+M*c;const b=1/Math.sqrt(h*h+d*d+f*f+g*g);h*=b,d*=b,f*=b,g*=b}}e[t]=h,e[t+1]=d,e[t+2]=f,e[t+3]=g}static multiplyQuaternionsFlat(e,t,n,s,a,l){const c=n[s],h=n[s+1],d=n[s+2],f=n[s+3],g=a[l],v=a[l+1],y=a[l+2],_=a[l+3];return e[t]=c*_+f*g+h*y-d*v,e[t+1]=h*_+f*v+d*g-c*y,e[t+2]=d*_+f*y+c*v-h*g,e[t+3]=f*_-c*g-h*v-d*y,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,s){return this._x=e,this._y=t,this._z=n,this._w=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const n=e._x,s=e._y,a=e._z,l=e._order,c=Math.cos,h=Math.sin,d=c(n/2),f=c(s/2),g=c(a/2),v=h(n/2),y=h(s/2),_=h(a/2);switch(l){case"XYZ":this._x=v*f*g+d*y*_,this._y=d*y*g-v*f*_,this._z=d*f*_+v*y*g,this._w=d*f*g-v*y*_;break;case"YXZ":this._x=v*f*g+d*y*_,this._y=d*y*g-v*f*_,this._z=d*f*_-v*y*g,this._w=d*f*g+v*y*_;break;case"ZXY":this._x=v*f*g-d*y*_,this._y=d*y*g+v*f*_,this._z=d*f*_+v*y*g,this._w=d*f*g-v*y*_;break;case"ZYX":this._x=v*f*g-d*y*_,this._y=d*y*g+v*f*_,this._z=d*f*_-v*y*g,this._w=d*f*g+v*y*_;break;case"YZX":this._x=v*f*g+d*y*_,this._y=d*y*g+v*f*_,this._z=d*f*_-v*y*g,this._w=d*f*g-v*y*_;break;case"XZY":this._x=v*f*g-d*y*_,this._y=d*y*g-v*f*_,this._z=d*f*_+v*y*g,this._w=d*f*g+v*y*_;break;default:Ne("Quaternion: .setFromEuler() encountered an unknown order: "+l)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const n=t/2,s=Math.sin(n);return this._x=e.x*s,this._y=e.y*s,this._z=e.z*s,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,n=t[0],s=t[4],a=t[8],l=t[1],c=t[5],h=t[9],d=t[2],f=t[6],g=t[10],v=n+c+g;if(v>0){const y=.5/Math.sqrt(v+1);this._w=.25/y,this._x=(f-h)*y,this._y=(a-d)*y,this._z=(l-s)*y}else if(n>c&&n>g){const y=2*Math.sqrt(1+n-c-g);this._w=(f-h)/y,this._x=.25*y,this._y=(s+l)/y,this._z=(a+d)/y}else if(c>g){const y=2*Math.sqrt(1+c-n-g);this._w=(a-d)/y,this._x=(s+l)/y,this._y=.25*y,this._z=(h+f)/y}else{const y=2*Math.sqrt(1+g-n-c);this._w=(l-s)/y,this._x=(a+d)/y,this._y=(h+f)/y,this._z=.25*y}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return n<1e-8?(n=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(gt(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(n===0)return this;const s=Math.min(1,t/n);return this.slerp(e,s),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,s=e._y,a=e._z,l=e._w,c=t._x,h=t._y,d=t._z,f=t._w;return this._x=n*f+l*c+s*d-a*h,this._y=s*f+l*h+a*c-n*d,this._z=a*f+l*d+n*h-s*c,this._w=l*f-n*c-s*h-a*d,this._onChangeCallback(),this}slerp(e,t){let n=e._x,s=e._y,a=e._z,l=e._w,c=this.dot(e);c<0&&(n=-n,s=-s,a=-a,l=-l,c=-c);let h=1-t;if(c<.9995){const d=Math.acos(c),f=Math.sin(d);h=Math.sin(h*d)/f,t=Math.sin(t*d)/f,this._x=this._x*h+n*t,this._y=this._y*h+s*t,this._z=this._z*h+a*t,this._w=this._w*h+l*t,this._onChangeCallback()}else this._x=this._x*h+n*t,this._y=this._y*h+s*t,this._z=this._z*h+a*t,this._w=this._w*h+l*t,this.normalize();return this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){const e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),s=Math.sqrt(1-n),a=Math.sqrt(n);return this.set(s*Math.sin(e),s*Math.cos(e),a*Math.sin(t),a*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},z=class Nw{static{Nw.prototype.isVector3=!0}constructor(t=0,n=0,s=0){this.x=t,this.y=n,this.z=s}set(t,n,s){return s===void 0&&(s=this.z),this.x=t,this.y=n,this.z=s,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,n){switch(t){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;default:throw new Error("THREE.Vector3: index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("THREE.Vector3: index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,n){return this.x=t.x+n.x,this.y=t.y+n.y,this.z=t.z+n.z,this}addScaledVector(t,n){return this.x+=t.x*n,this.y+=t.y*n,this.z+=t.z*n,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,n){return this.x=t.x-n.x,this.y=t.y-n.y,this.z=t.z-n.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,n){return this.x=t.x*n.x,this.y=t.y*n.y,this.z=t.z*n.z,this}applyEuler(t){return this.applyQuaternion(WS.setFromEuler(t))}applyAxisAngle(t,n){return this.applyQuaternion(WS.setFromAxisAngle(t,n))}applyMatrix3(t){const n=this.x,s=this.y,a=this.z,l=t.elements;return this.x=l[0]*n+l[3]*s+l[6]*a,this.y=l[1]*n+l[4]*s+l[7]*a,this.z=l[2]*n+l[5]*s+l[8]*a,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const n=this.x,s=this.y,a=this.z,l=t.elements,c=1/(l[3]*n+l[7]*s+l[11]*a+l[15]);return this.x=(l[0]*n+l[4]*s+l[8]*a+l[12])*c,this.y=(l[1]*n+l[5]*s+l[9]*a+l[13])*c,this.z=(l[2]*n+l[6]*s+l[10]*a+l[14])*c,this}applyQuaternion(t){const n=this.x,s=this.y,a=this.z,l=t.x,c=t.y,h=t.z,d=t.w,f=2*(c*a-h*s),g=2*(h*n-l*a),v=2*(l*s-c*n);return this.x=n+d*f+c*v-h*g,this.y=s+d*g+h*f-l*v,this.z=a+d*v+l*g-c*f,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const n=this.x,s=this.y,a=this.z,l=t.elements;return this.x=l[0]*n+l[4]*s+l[8]*a,this.y=l[1]*n+l[5]*s+l[9]*a,this.z=l[2]*n+l[6]*s+l[10]*a,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,n){return this.x=gt(this.x,t.x,n.x),this.y=gt(this.y,t.y,n.y),this.z=gt(this.z,t.z,n.z),this}clampScalar(t,n){return this.x=gt(this.x,t,n),this.y=gt(this.y,t,n),this.z=gt(this.z,t,n),this}clampLength(t,n){const s=this.length();return this.divideScalar(s||1).multiplyScalar(gt(s,t,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,n){return this.x+=(t.x-this.x)*n,this.y+=(t.y-this.y)*n,this.z+=(t.z-this.z)*n,this}lerpVectors(t,n,s){return this.x=t.x+(n.x-t.x)*s,this.y=t.y+(n.y-t.y)*s,this.z=t.z+(n.z-t.z)*s,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,n){const s=t.x,a=t.y,l=t.z,c=n.x,h=n.y,d=n.z;return this.x=a*d-l*h,this.y=l*c-s*d,this.z=s*h-a*c,this}projectOnVector(t){const n=t.lengthSq();if(n===0)return this.set(0,0,0);const s=t.dot(this)/n;return this.copy(t).multiplyScalar(s)}projectOnPlane(t){return Jg.copy(this).projectOnVector(t),this.sub(Jg)}reflect(t){return this.sub(Jg.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const n=Math.sqrt(this.lengthSq()*t.lengthSq());if(n===0)return Math.PI/2;const s=this.dot(t)/n;return Math.acos(gt(s,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const n=this.x-t.x,s=this.y-t.y,a=this.z-t.z;return n*n+s*s+a*a}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,n,s){const a=Math.sin(n)*t;return this.x=a*Math.sin(s),this.y=Math.cos(n)*t,this.z=a*Math.cos(s),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,n,s){return this.x=t*Math.sin(n),this.y=s,this.z=t*Math.cos(n),this}setFromMatrixPosition(t){const n=t.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this}setFromMatrixScale(t){const n=this.setFromMatrixColumn(t,0).length(),s=this.setFromMatrixColumn(t,1).length(),a=this.setFromMatrixColumn(t,2).length();return this.x=n,this.y=s,this.z=a,this}setFromMatrixColumn(t,n){return this.fromArray(t.elements,n*4)}setFromMatrix3Column(t,n){return this.fromArray(t.elements,n*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,n=0){return this.x=t[n],this.y=t[n+1],this.z=t[n+2],this}toArray(t=[],n=0){return t[n]=this.x,t[n+1]=this.y,t[n+2]=this.z,t}fromBufferAttribute(t,n){return this.x=t.getX(n),this.y=t.getY(n),this.z=t.getZ(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,n=Math.random()*2-1,s=Math.sqrt(1-n*n);return this.x=s*Math.cos(t),this.y=n,this.z=s*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},Jg=new z,WS=new Bi,Et=class Dw{static{Dw.prototype.isMatrix3=!0}constructor(t,n,s,a,l,c,h,d,f){this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,n,s,a,l,c,h,d,f)}set(t,n,s,a,l,c,h,d,f){const g=this.elements;return g[0]=t,g[1]=a,g[2]=h,g[3]=n,g[4]=l,g[5]=d,g[6]=s,g[7]=c,g[8]=f,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const n=this.elements,s=t.elements;return n[0]=s[0],n[1]=s[1],n[2]=s[2],n[3]=s[3],n[4]=s[4],n[5]=s[5],n[6]=s[6],n[7]=s[7],n[8]=s[8],this}extractBasis(t,n,s){return t.setFromMatrix3Column(this,0),n.setFromMatrix3Column(this,1),s.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const n=t.elements;return this.set(n[0],n[4],n[8],n[1],n[5],n[9],n[2],n[6],n[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,n){const s=t.elements,a=n.elements,l=this.elements,c=s[0],h=s[3],d=s[6],f=s[1],g=s[4],v=s[7],y=s[2],_=s[5],M=s[8],T=a[0],S=a[3],b=a[6],C=a[1],R=a[4],w=a[7],L=a[2],D=a[5],O=a[8];return l[0]=c*T+h*C+d*L,l[3]=c*S+h*R+d*D,l[6]=c*b+h*w+d*O,l[1]=f*T+g*C+v*L,l[4]=f*S+g*R+v*D,l[7]=f*b+g*w+v*O,l[2]=y*T+_*C+M*L,l[5]=y*S+_*R+M*D,l[8]=y*b+_*w+M*O,this}multiplyScalar(t){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=t,n[4]*=t,n[7]*=t,n[2]*=t,n[5]*=t,n[8]*=t,this}determinant(){const t=this.elements,n=t[0],s=t[1],a=t[2],l=t[3],c=t[4],h=t[5],d=t[6],f=t[7],g=t[8];return n*c*g-n*h*f-s*l*g+s*h*d+a*l*f-a*c*d}invert(){const t=this.elements,n=t[0],s=t[1],a=t[2],l=t[3],c=t[4],h=t[5],d=t[6],f=t[7],g=t[8],v=g*c-h*f,y=h*d-g*l,_=f*l-c*d,M=n*v+s*y+a*_;if(M===0)return this.set(0,0,0,0,0,0,0,0,0);const T=1/M;return t[0]=v*T,t[1]=(a*f-g*s)*T,t[2]=(h*s-a*c)*T,t[3]=y*T,t[4]=(g*n-a*d)*T,t[5]=(a*l-h*n)*T,t[6]=_*T,t[7]=(s*d-f*n)*T,t[8]=(c*n-s*l)*T,this}transpose(){let t;const n=this.elements;return t=n[1],n[1]=n[3],n[3]=t,t=n[2],n[2]=n[6],n[6]=t,t=n[5],n[5]=n[7],n[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const n=this.elements;return t[0]=n[0],t[1]=n[3],t[2]=n[6],t[3]=n[1],t[4]=n[4],t[5]=n[7],t[6]=n[2],t[7]=n[5],t[8]=n[8],this}setUvTransform(t,n,s,a,l,c,h){const d=Math.cos(l),f=Math.sin(l);return this.set(s*d,s*f,-s*(d*c+f*h)+c+t,-a*f,a*d,-a*(-f*c+d*h)+h+n,0,0,1),this}scale(t,n){return Va("Matrix3: .scale() is deprecated. Use .makeScale() instead."),this.premultiply(Kg.makeScale(t,n)),this}rotate(t){return Va("Matrix3: .rotate() is deprecated. Use .makeRotation() instead."),this.premultiply(Kg.makeRotation(-t)),this}translate(t,n){return Va("Matrix3: .translate() is deprecated. Use .makeTranslation() instead."),this.premultiply(Kg.makeTranslation(t,n)),this}makeTranslation(t,n){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,n,0,0,1),this}makeRotation(t){const n=Math.cos(t),s=Math.sin(t);return this.set(n,-s,0,s,n,0,0,0,1),this}makeScale(t,n){return this.set(t,0,0,0,n,0,0,0,1),this}equals(t){const n=this.elements,s=t.elements;for(let a=0;a<9;a++)if(n[a]!==s[a])return!1;return!0}fromArray(t,n=0){for(let s=0;s<9;s++)this.elements[s]=t[s+n];return this}toArray(t=[],n=0){const s=this.elements;return t[n]=s[0],t[n+1]=s[1],t[n+2]=s[2],t[n+3]=s[3],t[n+4]=s[4],t[n+5]=s[5],t[n+6]=s[6],t[n+7]=s[7],t[n+8]=s[8],t}clone(){return new this.constructor().fromArray(this.elements)}},Kg=new Et,XS=new Et().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),qS=new Et().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function eP(){const e={enabled:!0,workingColorSpace:Ju,spaces:{},convert:function(a,l,c){return this.enabled===!1||l===c||!l||!c||(this.spaces[l].transfer==="srgb"&&(a.r=$s(a.r),a.g=$s(a.g),a.b=$s(a.b)),this.spaces[l].primaries!==this.spaces[c].primaries&&(a.applyMatrix3(this.spaces[l].toXYZ),a.applyMatrix3(this.spaces[c].fromXYZ)),this.spaces[c].transfer==="srgb"&&(a.r=dc(a.r),a.g=dc(a.g),a.b=dc(a.b))),a},workingToColorSpace:function(a,l){return this.convert(a,this.workingColorSpace,l)},colorSpaceToWorking:function(a,l){return this.convert(a,l,this.workingColorSpace)},getPrimaries:function(a){return this.spaces[a].primaries},getTransfer:function(a){return a===""?Ku:this.spaces[a].transfer},getToneMappingMode:function(a){return this.spaces[a].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(a,l=this.workingColorSpace){return a.fromArray(this.spaces[l].luminanceCoefficients)},define:function(a){Object.assign(this.spaces,a)},_getMatrix:function(a,l,c){return a.copy(this.spaces[l].toXYZ).multiply(this.spaces[c].fromXYZ)},_getDrawingBufferColorSpace:function(a){return this.spaces[a].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(a=this.workingColorSpace){return this.spaces[a].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(a,l){return Va("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),e.workingToColorSpace(a,l)},toWorkingColorSpace:function(a,l){return Va("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),e.colorSpaceToWorking(a,l)}},t=[.64,.33,.3,.6,.15,.06],n=[.2126,.7152,.0722],s=[.3127,.329];return e.define({[Ju]:{primaries:t,whitePoint:s,transfer:Ku,toXYZ:XS,fromXYZ:qS,luminanceCoefficients:n,workingColorSpaceConfig:{unpackColorSpace:xi},outputColorSpaceConfig:{drawingBufferColorSpace:xi}},[xi]:{primaries:t,whitePoint:s,transfer:Qu,toXYZ:XS,fromXYZ:qS,luminanceCoefficients:n,outputColorSpaceConfig:{drawingBufferColorSpace:xi}}}),e}var Ht=eP();function $s(e){return e<.04045?e*.0773993808:Math.pow(e*.9478672986+.0521327014,2.4)}function dc(e){return e<.0031308?e*12.92:1.055*Math.pow(e,.41666)-.055}var Fl,Uw=class{static getDataURL(e,t="image/png"){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let n;if(e instanceof HTMLCanvasElement)n=e;else{Fl===void 0&&(Fl=eh("canvas")),Fl.width=e.width,Fl.height=e.height;const s=Fl.getContext("2d");e instanceof ImageData?s.putImageData(e,0,0):s.drawImage(e,0,0,e.width,e.height),n=Fl}return n.toDataURL(t)}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=eh("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);const s=n.getImageData(0,0,e.width,e.height),a=s.data;for(let l=0;l1),this.pmremVersion=0,this.normalized=!1}get width(){return this.source.getSize(ev).x}get height(){return this.source.getSize(ev).y}get depth(){return this.source.getSize(ev).z}get image(){return this.source.data}set image(t){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(t,n){this.updateRanges.push({start:t,count:n})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(t){return this.name=t.name,this.source=t.source,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.channel=t.channel,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.normalized=t.normalized,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.colorSpace=t.colorSpace,this.renderTarget=t.renderTarget,this.isRenderTargetTexture=t.isRenderTargetTexture,this.isArrayTexture=t.isArrayTexture,this.userData=JSON.parse(JSON.stringify(t.userData)),this.needsUpdate=!0,this}setValues(t){for(const n in t){const s=t[n];if(s===void 0){Ne(`Texture.setValues(): parameter '${n}' has value of undefined.`);continue}const a=this[n];if(a===void 0){Ne(`Texture.setValues(): property '${n}' does not exist.`);continue}a&&s&&a.isVector2&&s.isVector2||a&&s&&a.isVector3&&s.isVector3||a&&s&&a.isMatrix3&&s.isMatrix3?a.copy(s):this[n]=s}}toJSON(t){const n=t===void 0||typeof t=="string";if(!n&&t.textures[this.uuid]!==void 0)return t.textures[this.uuid];const s={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,normalized:this.normalized,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(s.userData=this.userData),n||(t.textures[this.uuid]=s),s}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==300)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case qu:t.x=t.x-Math.floor(t.x);break;case ji:t.x=t.x<0?0:1;break;case Yu:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case qu:t.y=t.y-Math.floor(t.y);break;case ji:t.y=t.y<0?0:1;break;case Yu:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(t){t===!0&&this.pmremVersion++}};Zn.DEFAULT_IMAGE=null;Zn.DEFAULT_MAPPING=300;Zn.DEFAULT_ANISOTROPY=1;var cn=class Ow{static{Ow.prototype.isVector4=!0}constructor(t=0,n=0,s=0,a=1){this.x=t,this.y=n,this.z=s,this.w=a}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,n,s,a){return this.x=t,this.y=n,this.z=s,this.w=a,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,n){switch(t){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;case 3:this.w=n;break;default:throw new Error("THREE.Vector4: index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("THREE.Vector4: index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,n){return this.x=t.x+n.x,this.y=t.y+n.y,this.z=t.z+n.z,this.w=t.w+n.w,this}addScaledVector(t,n){return this.x+=t.x*n,this.y+=t.y*n,this.z+=t.z*n,this.w+=t.w*n,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,n){return this.x=t.x-n.x,this.y=t.y-n.y,this.z=t.z-n.z,this.w=t.w-n.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const n=this.x,s=this.y,a=this.z,l=this.w,c=t.elements;return this.x=c[0]*n+c[4]*s+c[8]*a+c[12]*l,this.y=c[1]*n+c[5]*s+c[9]*a+c[13]*l,this.z=c[2]*n+c[6]*s+c[10]*a+c[14]*l,this.w=c[3]*n+c[7]*s+c[11]*a+c[15]*l,this}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this.w/=t.w,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const n=Math.sqrt(1-t.w*t.w);return n<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/n,this.y=t.y/n,this.z=t.z/n),this}setAxisAngleFromRotationMatrix(t){let n,s,a,l;const d=t.elements,f=d[0],g=d[4],v=d[8],y=d[1],_=d[5],M=d[9],T=d[2],S=d[6],b=d[10];if(Math.abs(g-y)<.01&&Math.abs(v-T)<.01&&Math.abs(M-S)<.01){if(Math.abs(g+y)<.1&&Math.abs(v+T)<.1&&Math.abs(M+S)<.1&&Math.abs(f+_+b-3)<.1)return this.set(1,0,0,0),this;n=Math.PI;const R=(f+1)/2,w=(_+1)/2,L=(b+1)/2,D=(g+y)/4,O=(v+T)/4,A=(M+S)/4;return R>w&&R>L?R<.01?(s=0,a=.707106781,l=.707106781):(s=Math.sqrt(R),a=D/s,l=O/s):w>L?w<.01?(s=.707106781,a=0,l=.707106781):(a=Math.sqrt(w),s=D/a,l=A/a):L<.01?(s=.707106781,a=.707106781,l=0):(l=Math.sqrt(L),s=O/l,a=A/l),this.set(s,a,l,n),this}let C=Math.sqrt((S-M)*(S-M)+(v-T)*(v-T)+(y-g)*(y-g));return Math.abs(C)<.001&&(C=1),this.x=(S-M)/C,this.y=(v-T)/C,this.z=(y-g)/C,this.w=Math.acos((f+_+b-1)/2),this}setFromMatrixPosition(t){const n=t.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this.w=n[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,n){return this.x=gt(this.x,t.x,n.x),this.y=gt(this.y,t.y,n.y),this.z=gt(this.z,t.z,n.z),this.w=gt(this.w,t.w,n.w),this}clampScalar(t,n){return this.x=gt(this.x,t,n),this.y=gt(this.y,t,n),this.z=gt(this.z,t,n),this.w=gt(this.w,t,n),this}clampLength(t,n){const s=this.length();return this.divideScalar(s||1).multiplyScalar(gt(s,t,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,n){return this.x+=(t.x-this.x)*n,this.y+=(t.y-this.y)*n,this.z+=(t.z-this.z)*n,this.w+=(t.w-this.w)*n,this}lerpVectors(t,n,s){return this.x=t.x+(n.x-t.x)*s,this.y=t.y+(n.y-t.y)*s,this.z=t.z+(n.z-t.z)*s,this.w=t.w+(n.w-t.w)*s,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,n=0){return this.x=t[n],this.y=t[n+1],this.z=t[n+2],this.w=t[n+3],this}toArray(t=[],n=0){return t[n]=this.x,t[n+1]=this.y,t[n+2]=this.z,t[n+3]=this.w,t}fromBufferAttribute(t,n){return this.x=t.getX(n),this.y=t.getY(n),this.z=t.getZ(n),this.w=t.getW(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},R0=class extends Wr{constructor(e=1,t=1,n={}){super(),n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:xn,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1,useArrayDepthTexture:!1},n),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=n.depth,this.scissor=new cn(0,0,e,t),this.scissorTest=!1,this.viewport=new cn(0,0,e,t),this.textures=[];const s={width:e,height:t,depth:n.depth},a=new Zn(s),l=n.count;for(let c=0;c1);this.dispose()}this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.textures.length=0;for(let t=0,n=e.textures.length;t>>0}enable(e){this.mask|=1<1){for(let n=0;n1){for(let s=0;s0&&(a.userData=this.userData),a.layers=this.layers.mask,a.matrix=this.matrix.toArray(),a.up=this.up.toArray(),this.pivot!==null&&(a.pivot=this.pivot.toArray()),this.matrixAutoUpdate===!1&&(a.matrixAutoUpdate=!1),this.morphTargetDictionary!==void 0&&(a.morphTargetDictionary=Object.assign({},this.morphTargetDictionary)),this.morphTargetInfluences!==void 0&&(a.morphTargetInfluences=this.morphTargetInfluences.slice()),this.isInstancedMesh&&(a.type="InstancedMesh",a.count=this.count,a.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(a.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(a.type="BatchedMesh",a.perObjectFrustumCulled=this.perObjectFrustumCulled,a.sortObjects=this.sortObjects,a.drawRanges=this._drawRanges,a.reservedRanges=this._reservedRanges,a.geometryInfo=this._geometryInfo.map(h=>({...h,boundingBox:h.boundingBox?h.boundingBox.toJSON():void 0,boundingSphere:h.boundingSphere?h.boundingSphere.toJSON():void 0})),a.instanceInfo=this._instanceInfo.map(h=>({...h})),a.availableInstanceIds=this._availableInstanceIds.slice(),a.availableGeometryIds=this._availableGeometryIds.slice(),a.nextIndexStart=this._nextIndexStart,a.nextVertexStart=this._nextVertexStart,a.geometryCount=this._geometryCount,a.maxInstanceCount=this._maxInstanceCount,a.maxVertexCount=this._maxVertexCount,a.maxIndexCount=this._maxIndexCount,a.geometryInitialized=this._geometryInitialized,a.matricesTexture=this._matricesTexture.toJSON(t),a.indirectTexture=this._indirectTexture.toJSON(t),this._colorsTexture!==null&&(a.colorsTexture=this._colorsTexture.toJSON(t)),this.boundingSphere!==null&&(a.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(a.boundingBox=this.boundingBox.toJSON()));function l(h,d){return h[d.uuid]===void 0&&(h[d.uuid]=d.toJSON(t)),d.uuid}if(this.isScene)this.background&&(this.background.isColor?a.background=this.background.toJSON():this.background.isTexture&&(a.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(a.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){a.geometry=l(t.geometries,this.geometry);const h=this.geometry.parameters;if(h!==void 0&&h.shapes!==void 0){const d=h.shapes;if(Array.isArray(d))for(let f=0,g=d.length;f0){a.children=[];for(let h=0;h0){a.animations=[];for(let h=0;h0&&(s.geometries=h),d.length>0&&(s.materials=d),f.length>0&&(s.textures=f),g.length>0&&(s.images=g),v.length>0&&(s.shapes=v),y.length>0&&(s.skeletons=y),_.length>0&&(s.animations=_),M.length>0&&(s.nodes=M)}return s.object=a,s;function c(h){const d=[];for(const f in h){const g=h[f];delete g.metadata,d.push(g)}return d}}clone(t){return new this.constructor().copy(this,t)}copy(t,n=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.pivot=t.pivot!==null?t.pivot.clone():null,this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.static=t.static,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),n===!0)for(let s=0;s.025?(d.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!d.inputState.pinching&&v<=.015&&(d.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else h!==null&&e.gripSpace&&(a=t.getPose(e.gripSpace,n),a!==null&&(h.matrix.fromArray(a.transform.matrix),h.matrix.decompose(h.position,h.rotation,h.scale),h.matrixWorldNeedsUpdate=!0,a.linearVelocity?(h.hasLinearVelocity=!0,h.linearVelocity.copy(a.linearVelocity)):h.hasLinearVelocity=!1,a.angularVelocity?(h.hasAngularVelocity=!0,h.angularVelocity.copy(a.angularVelocity)):h.hasAngularVelocity=!1,h.eventsEnabled&&h.dispatchEvent({type:"gripUpdated",data:e,target:this})));c!==null&&(s=t.getPose(e.targetRaySpace,n),s===null&&a!==null&&(s=a),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1,this.dispatchEvent(hP)))}return c!==null&&(c.visible=s!==null),h!==null&&(h.visible=a!==null),d!==null&&(d.visible=l!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const n=new uc;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}},Bw={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Pa={h:0,s:0,l:0},Jd={h:0,s:0,l:0};function nv(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*6*(2/3-n):e}var Xe=class{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){if(t===void 0&&n===void 0){const s=e;s&&s.isColor?this.copy(s):typeof s=="number"?this.setHex(s):typeof s=="string"&&this.setStyle(s)}else this.setRGB(e,t,n);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=xi){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,Ht.colorSpaceToWorking(this,t),this}setRGB(e,t,n,s=Ht.workingColorSpace){return this.r=e,this.g=t,this.b=n,Ht.colorSpaceToWorking(this,s),this}setHSL(e,t,n,s=Ht.workingColorSpace){if(e=C0(e,1),t=gt(t,0,1),n=gt(n,0,1),t===0)this.r=this.g=this.b=n;else{const a=n<=.5?n*(1+t):n+t-n*t,l=2*n-a;this.r=nv(l,a,e+1/3),this.g=nv(l,a,e),this.b=nv(l,a,e-1/3)}return Ht.colorSpaceToWorking(this,s),this}setStyle(e,t=xi){function n(a){a!==void 0&&parseFloat(a)<1&&Ne("Color: Alpha component of "+e+" will be ignored.")}let s;if(s=/^(\w+)\(([^\)]*)\)/.exec(e)){let a;const l=s[1],c=s[2];switch(l){case"rgb":case"rgba":if(a=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(c))return n(a[4]),this.setRGB(Math.min(255,parseInt(a[1],10))/255,Math.min(255,parseInt(a[2],10))/255,Math.min(255,parseInt(a[3],10))/255,t);if(a=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(c))return n(a[4]),this.setRGB(Math.min(100,parseInt(a[1],10))/100,Math.min(100,parseInt(a[2],10))/100,Math.min(100,parseInt(a[3],10))/100,t);break;case"hsl":case"hsla":if(a=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(c))return n(a[4]),this.setHSL(parseFloat(a[1])/360,parseFloat(a[2])/100,parseFloat(a[3])/100,t);break;default:Ne("Color: Unknown color model "+e)}}else if(s=/^\#([A-Fa-f\d]+)$/.exec(e)){const a=s[1],l=a.length;if(l===3)return this.setRGB(parseInt(a.charAt(0),16)/15,parseInt(a.charAt(1),16)/15,parseInt(a.charAt(2),16)/15,t);if(l===6)return this.setHex(parseInt(a,16),t);Ne("Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=xi){const n=Bw[e.toLowerCase()];return n!==void 0?this.setHex(n,t):Ne("Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=$s(e.r),this.g=$s(e.g),this.b=$s(e.b),this}copyLinearToSRGB(e){return this.r=dc(e.r),this.g=dc(e.g),this.b=dc(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=xi){return Ht.workingToColorSpace(_i.copy(this),e),Math.round(gt(_i.r*255,0,255))*65536+Math.round(gt(_i.g*255,0,255))*256+Math.round(gt(_i.b*255,0,255))}getHexString(e=xi){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Ht.workingColorSpace){Ht.workingToColorSpace(_i.copy(this),t);const n=_i.r,s=_i.g,a=_i.b,l=Math.max(n,s,a),c=Math.min(n,s,a);let h,d;const f=(c+l)/2;if(c===l)h=0,d=0;else{const g=l-c;switch(d=f<=.5?g/(l+c):g/(2-l-c),l){case n:h=(s-a)/g+(s0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}},Vr=new z,Vs=new z,iv=new z,Hs=new z,Vl=new z,Hl=new z,e1=new z,rv=new z,sv=new z,av=new z,ov=new cn,lv=new cn,cv=new cn,Fa=class oc{constructor(t=new z,n=new z,s=new z){this.a=t,this.b=n,this.c=s}static getNormal(t,n,s,a){a.subVectors(s,n),Vr.subVectors(t,n),a.cross(Vr);const l=a.lengthSq();return l>0?a.multiplyScalar(1/Math.sqrt(l)):a.set(0,0,0)}static getBarycoord(t,n,s,a,l){Vr.subVectors(a,n),Vs.subVectors(s,n),iv.subVectors(t,n);const c=Vr.dot(Vr),h=Vr.dot(Vs),d=Vr.dot(iv),f=Vs.dot(Vs),g=Vs.dot(iv),v=c*f-h*h;if(v===0)return l.set(0,0,0),null;const y=1/v,_=(f*d-h*g)*y,M=(c*g-h*d)*y;return l.set(1-_-M,M,_)}static containsPoint(t,n,s,a){return this.getBarycoord(t,n,s,a,Hs)===null?!1:Hs.x>=0&&Hs.y>=0&&Hs.x+Hs.y<=1}static getInterpolation(t,n,s,a,l,c,h,d){return this.getBarycoord(t,n,s,a,Hs)===null?(d.x=0,d.y=0,"z"in d&&(d.z=0),"w"in d&&(d.w=0),null):(d.setScalar(0),d.addScaledVector(l,Hs.x),d.addScaledVector(c,Hs.y),d.addScaledVector(h,Hs.z),d)}static getInterpolatedAttribute(t,n,s,a,l,c){return ov.setScalar(0),lv.setScalar(0),cv.setScalar(0),ov.fromBufferAttribute(t,n),lv.fromBufferAttribute(t,s),cv.fromBufferAttribute(t,a),c.setScalar(0),c.addScaledVector(ov,l.x),c.addScaledVector(lv,l.y),c.addScaledVector(cv,l.z),c}static isFrontFacing(t,n,s,a){return Vr.subVectors(s,n),Vs.subVectors(t,n),Vr.cross(Vs).dot(a)<0}set(t,n,s){return this.a.copy(t),this.b.copy(n),this.c.copy(s),this}setFromPointsAndIndices(t,n,s,a){return this.a.copy(t[n]),this.b.copy(t[s]),this.c.copy(t[a]),this}setFromAttributeAndIndices(t,n,s,a){return this.a.fromBufferAttribute(t,n),this.b.fromBufferAttribute(t,s),this.c.fromBufferAttribute(t,a),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Vr.subVectors(this.c,this.b),Vs.subVectors(this.a,this.b),Vr.cross(Vs).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return oc.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,n){return oc.getBarycoord(t,this.a,this.b,this.c,n)}getInterpolation(t,n,s,a,l){return oc.getInterpolation(t,this.a,this.b,this.c,n,s,a,l)}containsPoint(t){return oc.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return oc.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,n){const s=this.a,a=this.b,l=this.c;let c,h;Vl.subVectors(a,s),Hl.subVectors(l,s),rv.subVectors(t,s);const d=Vl.dot(rv),f=Hl.dot(rv);if(d<=0&&f<=0)return n.copy(s);sv.subVectors(t,a);const g=Vl.dot(sv),v=Hl.dot(sv);if(g>=0&&v<=g)return n.copy(a);const y=d*v-g*f;if(y<=0&&d>=0&&g<=0)return c=d/(d-g),n.copy(s).addScaledVector(Vl,c);av.subVectors(t,l);const _=Vl.dot(av),M=Hl.dot(av);if(M>=0&&_<=M)return n.copy(l);const T=_*f-d*M;if(T<=0&&f>=0&&M<=0)return h=f/(f-M),n.copy(s).addScaledVector(Hl,h);const S=g*M-_*v;if(S<=0&&v-g>=0&&_-M>=0)return e1.subVectors(l,a),h=(v-g)/(v-g+(_-M)),n.copy(a).addScaledVector(e1,h);const b=1/(S+T+y);return c=T*b,h=y*b,n.copy(s).addScaledVector(Vl,c).addScaledVector(Hl,h)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},Si=class{constructor(e=new z(1/0,1/0,1/0),t=new z(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,Hr),Hr.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Tu),Qd.subVectors(this.max,Tu),Gl.subVectors(e.a,Tu),Wl.subVectors(e.b,Tu),Xl.subVectors(e.c,Tu),Ia.subVectors(Wl,Gl),La.subVectors(Xl,Wl),Eo.subVectors(Gl,Xl);let t=[0,-Ia.z,Ia.y,0,-La.z,La.y,0,-Eo.z,Eo.y,Ia.z,0,-Ia.x,La.z,0,-La.x,Eo.z,0,-Eo.x,-Ia.y,Ia.x,0,-La.y,La.x,0,-Eo.y,Eo.x,0];return!uv(t,Gl,Wl,Xl,Qd)||(t=[1,0,0,0,1,0,0,0,1],!uv(t,Gl,Wl,Xl,Qd))?!1:(ef.crossVectors(Ia,La),t=[ef.x,ef.y,ef.z],uv(t,Gl,Wl,Xl,Qd))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Hr).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(Hr).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Gs[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Gs[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Gs[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Gs[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Gs[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Gs[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Gs[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Gs[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Gs),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(e){return this.min.fromArray(e.min),this.max.fromArray(e.max),this}},Gs=[new z,new z,new z,new z,new z,new z,new z,new z],Hr=new z,Kd=new Si,Gl=new z,Wl=new z,Xl=new z,Ia=new z,La=new z,Eo=new z,Tu=new z,Qd=new z,ef=new z,Ao=new z;function uv(e,t,n,s,a){for(let l=0,c=e.length-3;l<=c;l+=3){Ao.fromArray(e,l);const h=a.x*Math.abs(Ao.x)+a.y*Math.abs(Ao.y)+a.z*Math.abs(Ao.z),d=t.dot(Ao),f=n.dot(Ao),g=s.dot(Ao);if(Math.max(-Math.max(d,f,g),Math.min(d,f,g))>h)return!1}return!0}var Ys=dP();function dP(){const e=new ArrayBuffer(4),t=new Float32Array(e),n=new Uint32Array(e),s=new Uint32Array(512),a=new Uint32Array(512);for(let d=0;d<256;++d){const f=d-127;f<-27?(s[d]=0,s[d|256]=32768,a[d]=24,a[d|256]=24):f<-14?(s[d]=1024>>-f-14,s[d|256]=1024>>-f-14|32768,a[d]=-f-1,a[d|256]=-f-1):f<=15?(s[d]=f+15<<10,s[d|256]=f+15<<10|32768,a[d]=13,a[d|256]=13):f<128?(s[d]=31744,s[d|256]=64512,a[d]=24,a[d|256]=24):(s[d]=31744,s[d|256]=64512,a[d]=13,a[d|256]=13)}const l=new Uint32Array(2048),c=new Uint32Array(64),h=new Uint32Array(64);for(let d=1;d<1024;++d){let f=d<<13,g=0;for(;(f&8388608)===0;)f<<=1,g-=8388608;f&=-8388609,g+=947912704,l[d]=f|g}for(let d=1024;d<2048;++d)l[d]=939524096+(d-1024<<13);for(let d=1;d<31;++d)c[d]=d<<23;c[31]=1199570944,c[32]=2147483648;for(let d=33;d<63;++d)c[d]=2147483648+(d-32<<23);c[63]=3347054592;for(let d=1;d<64;++d)d!==32&&(h[d]=1024);return{floatView:t,uint32View:n,baseTable:s,shiftTable:a,mantissaTable:l,exponentTable:c,offsetTable:h}}function Yi(e){Math.abs(e)>65504&&Ne("DataUtils.toHalfFloat(): Value out of range."),e=gt(e,-65504,65504),Ys.floatView[0]=e;const t=Ys.uint32View[0],n=t>>23&511;return Ys.baseTable[n]+((t&8388607)>>Ys.shiftTable[n])}function Bu(e){const t=e>>10;return Ys.uint32View[0]=Ys.mantissaTable[Ys.offsetTable[t]+(e&1023)]+Ys.exponentTable[t],Ys.floatView[0]}var fP=class{static toHalfFloat(e){return Yi(e)}static fromHalfFloat(e){return Bu(e)}},Vn=new z,tf=new ye,pP=0,an=class extends Wr{constructor(e,t,n=!1){if(super(),Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:pP++}),this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=n,this.usage=op,this.updateRanges=[],this.gpuType=Ks,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let s=0,a=this.itemSize;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Eu.subVectors(e,this.center);const t=Eu.lengthSq();if(t>this.radius*this.radius){const n=Math.sqrt(t),s=(n-this.radius)*.5;this.center.addScaledVector(Eu,s/n),this.radius+=s}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(hv.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Eu.copy(e.center).add(hv)),this.expandByPoint(Eu.copy(e.center).sub(hv))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(e){return this.radius=e.radius,this.center.fromArray(e.center),this}},SP=0,xr=new St,dv=new tn,ql=new z,sr=new Si,Au=new Si,ti=new z,Lt=class Gw extends Wr{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:SP++}),this.uuid=or(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=null,this.indirectOffset=0,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={},this._transformed=!1}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(I2(t)?L0:I0)(t,1):this.index=t,this}setIndirect(t,n=0){return this.indirect=t,this.indirectOffset=n,this}getIndirect(){return this.indirect}getAttribute(t){return this.attributes[t]}setAttribute(t,n){return this.attributes[t]=n,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return this.attributes[t]!==void 0}addGroup(t,n,s=0){this.groups.push({start:t,count:n,materialIndex:s})}clearGroups(){this.groups=[]}setDrawRange(t,n){this.drawRange.start=t,this.drawRange.count=n}applyMatrix4(t){const n=this.attributes.position;n!==void 0&&(n.applyMatrix4(t),n.needsUpdate=!0);const s=this.attributes.normal;if(s!==void 0){const l=new Et().getNormalMatrix(t);s.applyNormalMatrix(l),s.needsUpdate=!0}const a=this.attributes.tangent;return a!==void 0&&(a.transformDirection(t),a.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this._transformed=!0,this}applyQuaternion(t){return xr.makeRotationFromQuaternion(t),this.applyMatrix4(xr),this}rotateX(t){return xr.makeRotationX(t),this.applyMatrix4(xr),this}rotateY(t){return xr.makeRotationY(t),this.applyMatrix4(xr),this}rotateZ(t){return xr.makeRotationZ(t),this.applyMatrix4(xr),this}translate(t,n,s){return xr.makeTranslation(t,n,s),this.applyMatrix4(xr),this}scale(t,n,s){return xr.makeScale(t,n,s),this.applyMatrix4(xr),this}lookAt(t){return dv.lookAt(t),dv.updateMatrix(),this.applyMatrix4(dv.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(ql).negate(),this.translate(ql.x,ql.y,ql.z),this}setFromPoints(t){const n=this.getAttribute("position");if(n===void 0){const s=[];for(let a=0,l=t.length;an.count&&Ne("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),n.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Si);const t=this.attributes.position,n=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){rt("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new z(-1/0,-1/0,-1/0),new z(1/0,1/0,1/0));return}if(t!==void 0){if(this.boundingBox.setFromBufferAttribute(t),n)for(let s=0,a=n.length;s0&&(t.userData=this.userData),this.parameters!==void 0&&this._transformed!==!0){const d=this.parameters;for(const f in d)d[f]!==void 0&&(t[f]=d[f]);return t}t.data={attributes:{}};const n=this.index;n!==null&&(t.data.index={type:n.array.constructor.name,array:Array.prototype.slice.call(n.array)});const s=this.attributes;for(const d in s){const f=s[d];t.data.attributes[d]=f.toJSON(t.data)}const a={};let l=!1;for(const d in this.morphAttributes){const f=this.morphAttributes[d],g=[];for(let v=0,y=f.length;v0&&(a[d]=g,l=!0)}l&&(t.data.morphAttributes=a,t.data.morphTargetsRelative=this.morphTargetsRelative);const c=this.groups;c.length>0&&(t.data.groups=JSON.parse(JSON.stringify(c)));const h=this.boundingSphere;return h!==null&&(t.data.boundingSphere=h.toJSON()),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const n={};this.name=t.name;const s=t.index;s!==null&&this.setIndex(s.clone());const a=t.attributes;for(const f in a){const g=a[f];this.setAttribute(f,g.clone(n))}const l=t.morphAttributes;for(const f in l){const g=[],v=l[f];for(let y=0,_=v.length;y<_;y++)g.push(v[y].clone(n));this.morphAttributes[f]=g}this.morphTargetsRelative=t.morphTargetsRelative;const c=t.groups;for(let f=0,g=c.length;f0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const n=e[t];if(n===void 0){Ne(`Material: parameter '${t}' has value of undefined.`);continue}const s=this[t];if(s===void 0){Ne(`Material: '${t}' is not a property of THREE.${this.type}.`);continue}s&&s.isColor?s.set(n):s&&s.isVector2&&n&&n.isVector2||s&&s.isEuler&&n&&n.isEuler||s&&s.isVector3&&n&&n.isVector3?s.copy(n):this[t]=n}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const n={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(n.sheenColorMap=this.sheenColorMap.toJSON(e).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(n.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid),this.dispersion!==void 0&&(n.dispersion=this.dispersion),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapRotation!==void 0&&(n.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==1&&(n.blending=this.blending),this.side!==0&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==204&&(n.blendSrc=this.blendSrc),this.blendDst!==205&&(n.blendDst=this.blendDst),this.blendEquation!==100&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==3&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==519&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==7680&&(n.stencilFail=this.stencilFail),this.stencilZFail!==7680&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==7680&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.allowOverride===!1&&(n.allowOverride=!1),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function s(a){const l=[];for(const c in a){const h=a[c];delete h.metadata,l.push(h)}return l}if(t){const a=s(e.textures),l=s(e.images);a.length>0&&(n.textures=a),l.length>0&&(n.images=l)}return n}fromJSON(e,t){if(e.uuid!==void 0&&(this.uuid=e.uuid),e.name!==void 0&&(this.name=e.name),e.color!==void 0&&this.color!==void 0&&this.color.setHex(e.color),e.roughness!==void 0&&(this.roughness=e.roughness),e.metalness!==void 0&&(this.metalness=e.metalness),e.sheen!==void 0&&(this.sheen=e.sheen),e.sheenColor!==void 0&&(this.sheenColor=new Xe().setHex(e.sheenColor)),e.sheenRoughness!==void 0&&(this.sheenRoughness=e.sheenRoughness),e.emissive!==void 0&&this.emissive!==void 0&&this.emissive.setHex(e.emissive),e.specular!==void 0&&this.specular!==void 0&&this.specular.setHex(e.specular),e.specularIntensity!==void 0&&(this.specularIntensity=e.specularIntensity),e.specularColor!==void 0&&this.specularColor!==void 0&&this.specularColor.setHex(e.specularColor),e.shininess!==void 0&&(this.shininess=e.shininess),e.clearcoat!==void 0&&(this.clearcoat=e.clearcoat),e.clearcoatRoughness!==void 0&&(this.clearcoatRoughness=e.clearcoatRoughness),e.dispersion!==void 0&&(this.dispersion=e.dispersion),e.iridescence!==void 0&&(this.iridescence=e.iridescence),e.iridescenceIOR!==void 0&&(this.iridescenceIOR=e.iridescenceIOR),e.iridescenceThicknessRange!==void 0&&(this.iridescenceThicknessRange=e.iridescenceThicknessRange),e.transmission!==void 0&&(this.transmission=e.transmission),e.thickness!==void 0&&(this.thickness=e.thickness),e.attenuationDistance!==void 0&&(this.attenuationDistance=e.attenuationDistance),e.attenuationColor!==void 0&&this.attenuationColor!==void 0&&this.attenuationColor.setHex(e.attenuationColor),e.anisotropy!==void 0&&(this.anisotropy=e.anisotropy),e.anisotropyRotation!==void 0&&(this.anisotropyRotation=e.anisotropyRotation),e.fog!==void 0&&(this.fog=e.fog),e.flatShading!==void 0&&(this.flatShading=e.flatShading),e.blending!==void 0&&(this.blending=e.blending),e.combine!==void 0&&(this.combine=e.combine),e.side!==void 0&&(this.side=e.side),e.shadowSide!==void 0&&(this.shadowSide=e.shadowSide),e.opacity!==void 0&&(this.opacity=e.opacity),e.transparent!==void 0&&(this.transparent=e.transparent),e.alphaTest!==void 0&&(this.alphaTest=e.alphaTest),e.alphaHash!==void 0&&(this.alphaHash=e.alphaHash),e.depthFunc!==void 0&&(this.depthFunc=e.depthFunc),e.depthTest!==void 0&&(this.depthTest=e.depthTest),e.depthWrite!==void 0&&(this.depthWrite=e.depthWrite),e.colorWrite!==void 0&&(this.colorWrite=e.colorWrite),e.blendSrc!==void 0&&(this.blendSrc=e.blendSrc),e.blendDst!==void 0&&(this.blendDst=e.blendDst),e.blendEquation!==void 0&&(this.blendEquation=e.blendEquation),e.blendSrcAlpha!==void 0&&(this.blendSrcAlpha=e.blendSrcAlpha),e.blendDstAlpha!==void 0&&(this.blendDstAlpha=e.blendDstAlpha),e.blendEquationAlpha!==void 0&&(this.blendEquationAlpha=e.blendEquationAlpha),e.blendColor!==void 0&&this.blendColor!==void 0&&this.blendColor.setHex(e.blendColor),e.blendAlpha!==void 0&&(this.blendAlpha=e.blendAlpha),e.stencilWriteMask!==void 0&&(this.stencilWriteMask=e.stencilWriteMask),e.stencilFunc!==void 0&&(this.stencilFunc=e.stencilFunc),e.stencilRef!==void 0&&(this.stencilRef=e.stencilRef),e.stencilFuncMask!==void 0&&(this.stencilFuncMask=e.stencilFuncMask),e.stencilFail!==void 0&&(this.stencilFail=e.stencilFail),e.stencilZFail!==void 0&&(this.stencilZFail=e.stencilZFail),e.stencilZPass!==void 0&&(this.stencilZPass=e.stencilZPass),e.stencilWrite!==void 0&&(this.stencilWrite=e.stencilWrite),e.wireframe!==void 0&&(this.wireframe=e.wireframe),e.wireframeLinewidth!==void 0&&(this.wireframeLinewidth=e.wireframeLinewidth),e.wireframeLinecap!==void 0&&(this.wireframeLinecap=e.wireframeLinecap),e.wireframeLinejoin!==void 0&&(this.wireframeLinejoin=e.wireframeLinejoin),e.rotation!==void 0&&(this.rotation=e.rotation),e.linewidth!==void 0&&(this.linewidth=e.linewidth),e.dashSize!==void 0&&(this.dashSize=e.dashSize),e.gapSize!==void 0&&(this.gapSize=e.gapSize),e.scale!==void 0&&(this.scale=e.scale),e.polygonOffset!==void 0&&(this.polygonOffset=e.polygonOffset),e.polygonOffsetFactor!==void 0&&(this.polygonOffsetFactor=e.polygonOffsetFactor),e.polygonOffsetUnits!==void 0&&(this.polygonOffsetUnits=e.polygonOffsetUnits),e.dithering!==void 0&&(this.dithering=e.dithering),e.alphaToCoverage!==void 0&&(this.alphaToCoverage=e.alphaToCoverage),e.premultipliedAlpha!==void 0&&(this.premultipliedAlpha=e.premultipliedAlpha),e.forceSinglePass!==void 0&&(this.forceSinglePass=e.forceSinglePass),e.allowOverride!==void 0&&(this.allowOverride=e.allowOverride),e.visible!==void 0&&(this.visible=e.visible),e.toneMapped!==void 0&&(this.toneMapped=e.toneMapped),e.userData!==void 0&&(this.userData=e.userData),e.vertexColors!==void 0&&(typeof e.vertexColors=="number"?this.vertexColors=e.vertexColors>0:this.vertexColors=e.vertexColors),e.size!==void 0&&(this.size=e.size),e.sizeAttenuation!==void 0&&(this.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(this.map=t[e.map]||null),e.matcap!==void 0&&(this.matcap=t[e.matcap]||null),e.alphaMap!==void 0&&(this.alphaMap=t[e.alphaMap]||null),e.bumpMap!==void 0&&(this.bumpMap=t[e.bumpMap]||null),e.bumpScale!==void 0&&(this.bumpScale=e.bumpScale),e.normalMap!==void 0&&(this.normalMap=t[e.normalMap]||null),e.normalMapType!==void 0&&(this.normalMapType=e.normalMapType),e.normalScale!==void 0){let n=e.normalScale;Array.isArray(n)===!1&&(n=[n,n]),this.normalScale=new ye().fromArray(n)}return e.displacementMap!==void 0&&(this.displacementMap=t[e.displacementMap]||null),e.displacementScale!==void 0&&(this.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(this.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(this.roughnessMap=t[e.roughnessMap]||null),e.metalnessMap!==void 0&&(this.metalnessMap=t[e.metalnessMap]||null),e.emissiveMap!==void 0&&(this.emissiveMap=t[e.emissiveMap]||null),e.emissiveIntensity!==void 0&&(this.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(this.specularMap=t[e.specularMap]||null),e.specularIntensityMap!==void 0&&(this.specularIntensityMap=t[e.specularIntensityMap]||null),e.specularColorMap!==void 0&&(this.specularColorMap=t[e.specularColorMap]||null),e.envMap!==void 0&&(this.envMap=t[e.envMap]||null),e.envMapRotation!==void 0&&this.envMapRotation.fromArray(e.envMapRotation),e.envMapIntensity!==void 0&&(this.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(this.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(this.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(this.lightMap=t[e.lightMap]||null),e.lightMapIntensity!==void 0&&(this.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(this.aoMap=t[e.aoMap]||null),e.aoMapIntensity!==void 0&&(this.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(this.gradientMap=t[e.gradientMap]||null),e.clearcoatMap!==void 0&&(this.clearcoatMap=t[e.clearcoatMap]||null),e.clearcoatRoughnessMap!==void 0&&(this.clearcoatRoughnessMap=t[e.clearcoatRoughnessMap]||null),e.clearcoatNormalMap!==void 0&&(this.clearcoatNormalMap=t[e.clearcoatNormalMap]||null),e.clearcoatNormalScale!==void 0&&(this.clearcoatNormalScale=new ye().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(this.iridescenceMap=t[e.iridescenceMap]||null),e.iridescenceThicknessMap!==void 0&&(this.iridescenceThicknessMap=t[e.iridescenceThicknessMap]||null),e.transmissionMap!==void 0&&(this.transmissionMap=t[e.transmissionMap]||null),e.thicknessMap!==void 0&&(this.thicknessMap=t[e.thicknessMap]||null),e.anisotropyMap!==void 0&&(this.anisotropyMap=t[e.anisotropyMap]||null),e.sheenColorMap!==void 0&&(this.sheenColorMap=t[e.sheenColorMap]||null),e.sheenRoughnessMap!==void 0&&(this.sheenRoughnessMap=t[e.sheenRoughnessMap]||null),this}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(t!==null){const s=t.length;n=new Array(s);for(let a=0;a!==s;++a)n[a]=t[a].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.allowOverride=e.allowOverride,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}},N0=class extends ci{constructor(e){super(),this.isSpriteMaterial=!0,this.type="SpriteMaterial",this.color=new Xe(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.rotation=e.rotation,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}},Yl,Cu=new z,jl=new z,Zl=new z,$l=new ye,Ru=new ye,Xw=new St,nf=new z,Pu=new z,rf=new z,t1=new ye,fv=new ye,n1=new ye,qw=class extends tn{constructor(e=new N0){if(super(),this.isSprite=!0,this.type="Sprite",Yl===void 0){Yl=new Lt;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),n=new up(t,5);Yl.setIndex([0,1,2,0,2,3]),Yl.setAttribute("position",new nh(n,3,0,!1)),Yl.setAttribute("uv",new nh(n,2,3,!1))}this.geometry=Yl,this.material=e,this.center=new ye(.5,.5),this.count=1}raycast(e,t){e.camera===null&&rt('Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),jl.setFromMatrixScale(this.matrixWorld),Xw.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),Zl.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&jl.multiplyScalar(-Zl.z);const n=this.material.rotation;let s,a;n!==0&&(a=Math.cos(n),s=Math.sin(n));const l=this.center;sf(nf.set(-.5,-.5,0),Zl,l,jl,s,a),sf(Pu.set(.5,-.5,0),Zl,l,jl,s,a),sf(rf.set(.5,.5,0),Zl,l,jl,s,a),t1.set(0,0),fv.set(1,0),n1.set(1,1);let c=e.ray.intersectTriangle(nf,Pu,rf,!1,Cu);if(c===null&&(sf(Pu.set(-.5,.5,0),Zl,l,jl,s,a),fv.set(0,1),c=e.ray.intersectTriangle(nf,rf,Pu,!1,Cu),c===null))return;const h=e.ray.origin.distanceTo(Cu);he.far||t.push({distance:h,point:Cu.clone(),uv:Fa.getInterpolation(Cu,nf,Pu,rf,t1,fv,n1,new ye),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}};function sf(e,t,n,s,a,l){$l.subVectors(e,n).addScalar(.5).multiply(s),a!==void 0?(Ru.x=l*$l.x-a*$l.y,Ru.y=a*$l.x+l*$l.y):Ru.copy($l),e.copy(t),e.x+=Ru.x,e.y+=Ru.y,e.applyMatrix4(Xw)}var af=new z,i1=new z,Yw=class extends tn{constructor(){super(),this.isLOD=!0,this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let n=0,s=t.length;n0){let n,s;for(n=1,s=t.length;n0){af.setFromMatrixPosition(this.matrixWorld);const n=e.ray.origin.distanceTo(af);this.getObjectForDistance(n).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){af.setFromMatrixPosition(e.matrixWorld),i1.setFromMatrixPosition(this.matrixWorld);const n=af.distanceTo(i1)/e.zoom;t[0].object.visible=!0;let s,a;for(s=1,a=t.length;s=l)t[s-1].object.visible=!1,t[s].object.visible=!0;else break}for(this._currentLevel=s-1;s0)if(g=l*h-c,v=l*c-h,_=a*f,g>=0)if(v>=-_)if(v<=_){const M=1/f;g*=M,v*=M,y=g*(g+l*v+2*c)+v*(l*g+v+2*h)+d}else v=a,g=Math.max(0,-(l*v+c)),y=-g*g+v*(v+2*h)+d;else v=-a,g=Math.max(0,-(l*v+c)),y=-g*g+v*(v+2*h)+d;else v<=-_?(g=Math.max(0,-(-l*a+c)),v=g>0?-a:Math.min(Math.max(-a,-h),a),y=-g*g+v*(v+2*h)+d):v<=_?(g=0,v=Math.min(Math.max(-a,-h),a),y=v*(v+2*h)+d):(g=Math.max(0,-(l*a+c)),v=g>0?a:Math.min(Math.max(-a,-h),a),y=-g*g+v*(v+2*h)+d);else v=l>0?-a:a,g=Math.max(0,-(l*v+c)),y=-g*g+v*(v+2*h)+d;return n&&n.copy(this.origin).addScaledVector(this.direction,g),s&&s.copy(pv).addScaledVector(of,v),y}intersectSphere(e,t){Ws.subVectors(e.center,this.origin);const n=Ws.dot(this.direction),s=Ws.dot(Ws)-n*n,a=e.radius*e.radius;if(s>a)return null;const l=Math.sqrt(a-s),c=n-l,h=n+l;return h<0?null:c<0?this.at(h,t):this.at(c,t)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){const n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,s,a,l,c,h;const d=1/this.direction.x,f=1/this.direction.y,g=1/this.direction.z,v=this.origin;return d>=0?(n=(e.min.x-v.x)*d,s=(e.max.x-v.x)*d):(n=(e.max.x-v.x)*d,s=(e.min.x-v.x)*d),f>=0?(a=(e.min.y-v.y)*f,l=(e.max.y-v.y)*f):(a=(e.max.y-v.y)*f,l=(e.min.y-v.y)*f),n>l||a>s||((a>n||isNaN(n))&&(n=a),(l=0?(c=(e.min.z-v.z)*g,h=(e.max.z-v.z)*g):(c=(e.max.z-v.z)*g,h=(e.min.z-v.z)*g),n>h||c>s)||((c>n||n!==n)&&(n=c),(h=0?n:s,t)}intersectsBox(e){return this.intersectBox(e,Ws)!==null}intersectTriangle(e,t,n,s,a){mv.subVectors(t,e),lf.subVectors(n,e),gv.crossVectors(mv,lf);let l=this.direction.dot(gv),c;if(l>0){if(s)return null;c=1}else if(l<0)c=-1,l=-l;else return null;Na.subVectors(this.origin,e);const h=c*this.direction.dot(lf.crossVectors(Na,lf));if(h<0)return null;const d=c*this.direction.dot(mv.cross(Na));if(d<0||h+d>l)return null;const f=-c*Na.dot(gv);return f<0?null:this.at(f/l,a)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},qa=class extends ci{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Xe(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new ea,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},r1=new St,Co=new xc,cf=new li,s1=new z,uf=new z,hf=new z,df=new z,vv=new z,ff=new z,a1=new z,pf=new z,Hn=class extends tn{constructor(e=new Lt,t=new qa){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}updateMorphTargets(){const e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){const n=e[t[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=n.length;s(e.far-e.near)**2))&&(r1.copy(a).invert(),Co.copy(e.ray).applyMatrix4(r1),!(n.boundingBox!==null&&Co.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(e,t,Co)))}_computeIntersections(e,t,n){let s;const a=this.geometry,l=this.material,c=a.index,h=a.attributes.position,d=a.attributes.uv,f=a.attributes.uv1,g=a.attributes.normal,v=a.groups,y=a.drawRange;if(c!==null)if(Array.isArray(l))for(let _=0,M=v.length;_n.far?null:{distance:f,point:pf.clone(),object:e}}function mf(e,t,n,s,a,l,c,h,d,f){e.getVertexPosition(h,uf),e.getVertexPosition(d,hf),e.getVertexPosition(f,df);const g=wP(e,t,n,s,uf,hf,df,a1);if(g){const v=new z;Fa.getBarycoord(a1,uf,hf,df,v),a&&(g.uv=Fa.getInterpolatedAttribute(a,h,d,f,v,new ye)),l&&(g.uv1=Fa.getInterpolatedAttribute(l,h,d,f,v,new ye)),c&&(g.normal=Fa.getInterpolatedAttribute(c,h,d,f,v,new z),g.normal.dot(s.direction)>0&&g.normal.multiplyScalar(-1));const y={a:h,b:d,c:f,normal:new z,materialIndex:0};Fa.getNormal(uf,hf,df,y.normal),g.face=y,g.barycoord=v}return g}var Iu=new cn,o1=new cn,l1=new cn,TP=new cn,c1=new St,gf=new z,yv=new li,u1=new St,_v=new xc,jw=class extends Hn{constructor(e,t){super(e,t),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=OM,this.bindMatrix=new St,this.bindMatrixInverse=new St,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const e=this.geometry;this.boundingBox===null&&(this.boundingBox=new Si),this.boundingBox.makeEmpty();const t=e.getAttribute("position");for(let n=0;n1)?null:t.copy(e.start).addScaledVector(s,l)}intersectsLine(e){const t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const n=t||RP.getNormalMatrix(e),s=this.coplanarPoint(bv).applyMatrix4(e),a=this.normal.applyMatrix3(n).normalize();return this.constant=-s.dot(a),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}},Ro=new li,PP=new ye(.5,.5),yf=new z,Go=class{constructor(e=new Oa,t=new Oa,n=new Oa,s=new Oa,a=new Oa,l=new Oa){this.planes=[e,t,n,s,a,l]}set(e,t,n,s,a,l){const c=this.planes;return c[0].copy(e),c[1].copy(t),c[2].copy(n),c[3].copy(s),c[4].copy(a),c[5].copy(l),this}copy(e){const t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=Ga,n=!1){const s=this.planes,a=e.elements,l=a[0],c=a[1],h=a[2],d=a[3],f=a[4],g=a[5],v=a[6],y=a[7],_=a[8],M=a[9],T=a[10],S=a[11],b=a[12],C=a[13],R=a[14],w=a[15];if(s[0].setComponents(d-l,y-f,S-_,w-b).normalize(),s[1].setComponents(d+l,y+f,S+_,w+b).normalize(),s[2].setComponents(d+c,y+g,S+M,w+C).normalize(),s[3].setComponents(d-c,y-g,S-M,w-C).normalize(),n)s[4].setComponents(h,v,T,R).normalize(),s[5].setComponents(d-h,y-v,S-T,w-R).normalize();else if(s[4].setComponents(d-h,y-v,S-T,w-R).normalize(),t===2e3)s[5].setComponents(d+h,y+v,S+T,w+R).normalize();else if(t===2001)s[5].setComponents(h,v,T,R).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),Ro.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),Ro.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Ro)}intersectsSprite(e){Ro.center.set(0,0,0);const t=PP.distanceTo(e.center);return Ro.radius=.7071067811865476+t,Ro.applyMatrix4(e.matrixWorld),this.intersectsSphere(Ro)}intersectsSphere(e){const t=this.planes,n=e.center,s=-e.radius;for(let a=0;a<6;a++)if(t[a].distanceToPoint(n)0?e.max.x:e.min.x,yf.y=s.normal.y>0?e.max.y:e.min.y,yf.z=s.normal.z>0?e.max.z:e.min.z,s.distanceToPoint(yf)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}},p1=new St,Kw=class Qw{constructor(){this.coordinateSystem=Ga,this._frustums=[],this._count=0}setFromArrayCamera(t){const n=t.cameras,s=this._frustums;for(let a=0;a=a.length&&a.push({start:-1,count:-1,z:-1,index:-1});const c=a[this.index];l.push(c),this.index++,c.start=e,c.count=t,c.z=n,c.index=s}reset(){this.list.length=0,this.index=0}},qi=new St,DP=new Xe(1,1,1),UP=new Go,OP=new Kw,_f=new Si,Po=new li,Du=new z,m1=new z,FP=new z,Sv=new NP,bi=new Hn,bf=[];function BP(e,t,n=0){const s=t.itemSize;if(e.isInterleavedBufferAttribute||e.array.constructor!==t.array.constructor){const a=e.count;for(let l=0;l65535?new Uint32Array(s):new Uint16Array(s);t.setIndex(new an(a,1))}this._geometryInitialized=!0}}_validateGeometry(e){const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(const n in t.attributes){if(!e.hasAttribute(n))throw new Error(`THREE.BatchedMesh: Added geometry missing "${n}". All geometries must have consistent attributes.`);const s=e.getAttribute(n),a=t.getAttribute(n);if(s.itemSize!==a.itemSize||s.normalized!==a.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){const t=this._instanceInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${e}. Instance is either out of range or has been deleted.`)}validateGeometryId(e){const t=this._geometryInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${e}. Geometry is either out of range or has been deleted.`)}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Si);const e=this.boundingBox,t=this._instanceInfo;e.makeEmpty();for(let n=0,s=t.length;n=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");const t={visible:!0,active:!0,geometryIndex:e};let n=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(xv),n=this._availableInstanceIds.shift(),this._instanceInfo[n]=t):(n=this._instanceInfo.length,this._instanceInfo.push(t));const s=this._matricesTexture;qi.identity().toArray(s.image.data,n*16),s.needsUpdate=!0;const a=this._colorsTexture;return a&&(DP.toArray(a.image.data,n*4),a.needsUpdate=!0),this._visibilityChanged=!0,n}addGeometry(e,t=-1,n=-1){this._initializeGeometry(e),this._validateGeometry(e);const s={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},a=this._geometryInfo;s.vertexStart=this._nextVertexStart,s.reservedVertexCount=t===-1?e.getAttribute("position").count:t;const l=e.getIndex();if(l!==null&&(s.indexStart=this._nextIndexStart,s.reservedIndexCount=n===-1?l.count:n),s.indexStart!==-1&&s.indexStart+s.reservedIndexCount>this._maxIndexCount||s.vertexStart+s.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let c;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(xv),c=this._availableGeometryIds.shift(),a[c]=s):(c=this._geometryCount,this._geometryCount++,a.push(s)),this.setGeometryAt(c,e),this._nextIndexStart=s.indexStart+s.reservedIndexCount,this._nextVertexStart=s.vertexStart+s.reservedVertexCount,c}setGeometryAt(e,t){if(e>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const n=this.geometry,s=n.getIndex()!==null,a=n.getIndex(),l=t.getIndex(),c=this._geometryInfo[e];if(s&&l.count>c.reservedIndexCount||t.attributes.position.count>c.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");const h=c.vertexStart,d=c.reservedVertexCount;c.vertexCount=t.getAttribute("position").count;for(const f in n.attributes){const g=t.getAttribute(f),v=n.getAttribute(f);BP(g,v,h);const y=g.itemSize;for(let _=g.count,M=d;_=t.length||t[e].active===!1)return this;const n=this._instanceInfo;for(let s=0,a=n.length;sc).sort((l,c)=>n[l].vertexStart-n[c].vertexStart),a=this.geometry;for(let l=0,c=n.length;l=this._geometryCount)return null;const n=this.geometry,s=this._geometryInfo[e];if(s.boundingBox===null){const a=new Si,l=n.index,c=n.attributes.position;for(let h=s.start,d=s.start+s.count;h=this._geometryCount)return null;const n=this.geometry,s=this._geometryInfo[e];if(s.boundingSphere===null){const a=new li;this.getBoundingBoxAt(e,_f),_f.getCenter(a.center);const l=n.index,c=n.attributes.position;let h=0;for(let d=s.start,f=s.start+s.count;dl.active);if(Math.max(...n.map(l=>l.vertexStart+l.reservedVertexCount))>e)throw new Error(`THREE.BatchedMesh: Geometry vertex values are being used outside the range ${t}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...n.map(l=>l.indexStart+l.reservedIndexCount))>t)throw new Error(`THREE.BatchedMesh: Geometry index values are being used outside the range ${t}. Cannot shrink further.`);const s=this.geometry;s.dispose(),this._maxVertexCount=e,this._maxIndexCount=t,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new Lt,this._initializeGeometry(s));const a=this.geometry;s.index&&Io(s.index.array,a.index.array);for(const l in s.attributes)Io(s.attributes[l].array,a.attributes[l].array)}raycast(e,t){const n=this._instanceInfo,s=this._geometryInfo,a=this.matrixWorld,l=this.geometry;bi.material=this.material,bi.geometry.index=l.index,bi.geometry.attributes=l.attributes,bi.geometry.boundingBox===null&&(bi.geometry.boundingBox=new Si),bi.geometry.boundingSphere===null&&(bi.geometry.boundingSphere=new li);for(let c=0,h=n.length;c({...t,boundingBox:t.boundingBox!==null?t.boundingBox.clone():null,boundingSphere:t.boundingSphere!==null?t.boundingSphere.clone():null})),this._instanceInfo=e._instanceInfo.map(t=>({...t})),this._availableInstanceIds=e._availableInstanceIds.slice(),this._availableGeometryIds=e._availableGeometryIds.slice(),this._nextIndexStart=e._nextIndexStart,this._nextVertexStart=e._nextVertexStart,this._geometryCount=e._geometryCount,this._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._indirectTexture=e._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=e._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(e,t,n,s,a){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const l=s.getIndex();let c=l===null?1:l.array.BYTES_PER_ELEMENT,h=1;a.wireframe&&(h=2,c=s.attributes.position.count>65535?4:2);const d=this._instanceInfo,f=this._multiDrawStarts,g=this._multiDrawCounts,v=this._geometryInfo,y=this.perObjectFrustumCulled,_=this._indirectTexture,M=_.image.data,T=n.isArrayCamera?OP:UP;y&&(n.isArrayCamera?T.setFromArrayCamera(n):(qi.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld),T.setFromProjectionMatrix(qi,n.coordinateSystem,n.reversedDepth)));let S=0;if(this.sortObjects){qi.copy(this.matrixWorld).invert(),Du.setFromMatrixPosition(n.matrixWorld).applyMatrix4(qi),m1.set(0,0,-1).transformDirection(n.matrixWorld).transformDirection(qi);for(let R=0,w=d.length;R0){const n=e[t[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=n.length;ss)return;Mv.applyMatrix4(e.matrixWorld);const d=t.ray.origin.distanceTo(Mv);if(!(dt.far))return{distance:d,point:v1.clone().applyMatrix4(e.matrixWorld),index:c,face:null,faceIndex:null,barycoord:null,object:e}}var y1=new z,_1=new z,ps=class extends Xa{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.index===null){const t=e.attributes.position,n=[];for(let s=0,a=t.count;s0){const n=e[t[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=n.length;sa.far)return;l.push({distance:f,distanceToRay:Math.sqrt(h),point:d,index:t,face:null,faceIndex:null,barycoord:null,object:c})}}var iT=class extends Zn{constructor(e,t,n,s,a=xn,l=xn,c,h,d){super(e,t,n,s,a,l,c,h,d),this.isVideoTexture=!0,this.generateMipmaps=!1,this._requestVideoFrameCallbackId=0;const f=this;function g(){f.needsUpdate=!0,f._requestVideoFrameCallbackId=e.requestVideoFrameCallback(g)}"requestVideoFrameCallback"in e&&(this._requestVideoFrameCallbackId=e.requestVideoFrameCallback(g))}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;!("requestVideoFrameCallback"in e)&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}dispose(){this._requestVideoFrameCallbackId!==0&&(this.source.data.cancelVideoFrameCallback(this._requestVideoFrameCallbackId),this._requestVideoFrameCallbackId=0),super.dispose()}},zP=class extends iT{constructor(e,t,n,s,a,l,c,h){super({},e,t,n,s,a,l,c,h),this.isVideoFrameTexture=!0}update(){}clone(){return new this.constructor().copy(this)}setFrame(e){this.image=e,this.needsUpdate=!0}},kP=class extends Zn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=qn,this.minFilter=qn,this.generateMipmaps=!1,this.needsUpdate=!0}},hp=class extends Zn{constructor(e,t,n,s,a,l,c,h,d,f,g,v){super(null,l,c,h,d,f,s,a,g,v),this.isCompressedTexture=!0,this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}},VP=class extends hp{constructor(e,t,n,s,a,l){super(e,t,n,a,l),this.isCompressedArrayTexture=!0,this.image.depth=s,this.wrapR=ji,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}},HP=class extends hp{constructor(e,t,n){super(void 0,e[0].width,e[0].height,t,n,301),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}},hh=class extends Zn{constructor(e=[],t=301,n,s,a,l,c,h,d,f){super(e,t,n,s,a,l,c,h,d,f),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},rT=class extends Zn{constructor(e,t,n,s,a,l,c,h,d){super(e,t,n,s,a,l,c,h,d),this.isCanvasTexture=!0,this.needsUpdate=!0}},GP=class extends Zn{constructor(e,t,n,s,a,l,c,h,d){super(e,t,n,s,a,l,c,h,d),this.isHTMLTexture=!0,this.generateMipmaps=!1,this.needsUpdate=!0;const f=e?e.parentNode:null;f!==null&&"requestPaint"in f&&(f.onpaint=()=>{this.needsUpdate=!0},f.requestPaint())}dispose(){const e=this.image?this.image.parentNode:null;e!==null&&"onpaint"in e&&(e.onpaint=null),super.dispose()}},Wo=class extends Zn{constructor(e,t,n=Js,s,a,l,c=qn,h=qn,d,f=fc,g=1){if(f!==1026&&f!==1027)throw new Error("THREE.DepthTexture: format must be either THREE.DepthFormat or THREE.DepthStencilFormat");super({width:e,height:t,depth:g},s,a,l,c,h,f,n,d),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new za(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){const t=super.toJSON(e);return this.compareFunction!==null&&(t.compareFunction=this.compareFunction),t}},sT=class extends Wo{constructor(e,t=Js,n=301,s,a,l=qn,c=qn,h,d=fc){const f={width:e,height:e,depth:1},g=[f,f,f,f,f,f];super(e,e,t,n,s,a,l,c,h,d),this.image=g,this.isCubeDepthTexture=!0,this.isCubeTexture=!0}get images(){return this.image}set images(e){this.image=e}},O0=class extends Zn{constructor(e=null){super(),this.sourceTexture=e,this.isExternalTexture=!0}copy(e){return super.copy(e),this.sourceTexture=e.sourceTexture,this}},dh=class aT extends Lt{constructor(t=1,n=1,s=1,a=1,l=1,c=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:n,depth:s,widthSegments:a,heightSegments:l,depthSegments:c};const h=this;a=Math.floor(a),l=Math.floor(l),c=Math.floor(c);const d=[],f=[],g=[],v=[];let y=0,_=0;M("z","y","x",-1,-1,s,n,t,c,l,0),M("z","y","x",1,-1,s,n,-t,c,l,1),M("x","z","y",1,1,t,s,n,a,c,2),M("x","z","y",1,-1,t,s,-n,a,c,3),M("x","y","z",1,-1,t,n,s,a,l,4),M("x","y","z",-1,-1,t,n,-s,a,l,5),this.setIndex(d),this.setAttribute("position",new Ke(f,3)),this.setAttribute("normal",new Ke(g,3)),this.setAttribute("uv",new Ke(v,2));function M(T,S,b,C,R,w,L,D,O,A,P){const k=w/O,F=L/A,q=w/2,X=L/2,K=D/2,ee=O+1,ae=A+1;let Q=0,me=0;const _e=new z;for(let ge=0;ge0?1:-1,g.push(_e.x,_e.y,_e.z),v.push(Ie/O),v.push(1-ge/A),Q+=1}for(let ge=0;ge0){const P=(C-1)*T;for(let k=0;k0&&R(!0),n>0&&R(!1)),this.setIndex(g),this.setAttribute("position",new Ke(v,3)),this.setAttribute("normal",new Ke(y,3)),this.setAttribute("uv",new Ke(_,2));function C(){const w=new z,L=new z;let D=0;const O=(n-t)/s;for(let A=0;A<=l;A++){const P=[],k=A/l,F=k*(n-t)+t;for(let q=0;q<=a;q++){const X=q/a,K=X*d+h,ee=Math.sin(K),ae=Math.cos(K);L.x=F*ee,L.y=-k*s+S,L.z=F*ae,v.push(L.x,L.y,L.z),w.set(ee,O,ae).normalize(),y.push(w.x,w.y,w.z),_.push(X,1-k),P.push(M++)}T.push(P)}for(let A=0;A0||P!==0)&&(g.push(k,F,X),D+=3),(n>0||P!==l-1)&&(g.push(F,q,X),D+=3)}f.addGroup(b,D,0),b+=D}function R(w){const L=M,D=new ye,O=new z;let A=0;const P=w===!0?t:n,k=w===!0?1:-1;for(let q=1;q<=a;q++)v.push(0,S*k,0),y.push(0,k,0),_.push(.5,.5),M++;const F=M;for(let q=0;q<=a;q++){const X=q/a*d+h,K=Math.cos(X),ee=Math.sin(X);O.x=P*ee,O.y=S*k,O.z=P*K,v.push(O.x,O.y,O.z),y.push(0,k,0),D.x=K*.5+.5,D.y=ee*.5*k+.5,_.push(D.x,D.y),M++}for(let q=0;q.9&&Math.min(R,w,L)<.1&&(R<.2&&(c[C+0]+=1),w<.2&&(c[C+2]+=1),L<.2&&(c[C+4]+=1))}}function y(C){l.push(C.x,C.y,C.z)}function _(C,R){const w=C*3;R.x=t[w+0],R.y=t[w+1],R.z=t[w+2]}function M(){const C=new z,R=new z,w=new z,L=new z,D=new ye,O=new ye,A=new ye;for(let P=0,k=0;P0)h=s-1;else{h=s;break}if(s=h,n[s]===l)return s/(a-1);const f=n[s],g=n[s+1]-f,v=(l-f)/g;return(s+v)/(a-1)}getTangent(e,t){let s=e-1e-4,a=e+1e-4;s<0&&(s=0),a>1&&(a=1);const l=this.getPoint(s),c=this.getPoint(a),h=t||(l.isVector2?new ye:new z);return h.copy(c).sub(l).normalize(),h}getTangentAt(e,t){const n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t=!1){const n=new z,s=[],a=[],l=[],c=new z,h=new St;for(let y=0;y<=e;y++){const _=y/e;s[y]=this.getTangentAt(_,new z)}a[0]=new z,l[0]=new z;let d=Number.MAX_VALUE;const f=Math.abs(s[0].x),g=Math.abs(s[0].y),v=Math.abs(s[0].z);f<=d&&(d=f,n.set(1,0,0)),g<=d&&(d=g,n.set(0,1,0)),v<=d&&n.set(0,0,1),c.crossVectors(s[0],n).normalize(),a[0].crossVectors(s[0],c),l[0].crossVectors(s[0],a[0]);for(let y=1;y<=e;y++){if(a[y]=a[y-1].clone(),l[y]=l[y-1].clone(),c.crossVectors(s[y-1],s[y]),c.length()>Number.EPSILON){c.normalize();const _=Math.acos(gt(s[y-1].dot(s[y]),-1,1));a[y].applyMatrix4(h.makeRotationAxis(c,_))}l[y].crossVectors(s[y],a[y])}if(t===!0){let y=Math.acos(gt(a[0].dot(a[e]),-1,1));y/=e,s[0].dot(c.crossVectors(a[0],a[e]))>0&&(y=-y);for(let _=1;_<=e;_++)a[_].applyMatrix4(h.makeRotationAxis(s[_],y*_)),l[_].crossVectors(s[_],a[_])}return{tangents:s,normals:a,binormals:l}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.7,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},dp=class extends Xr{constructor(e=0,t=0,n=1,s=1,a=0,l=Math.PI*2,c=!1,h=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=s,this.aStartAngle=a,this.aEndAngle=l,this.aClockwise=c,this.aRotation=h}getPoint(e,t=new ye){const n=t,s=Math.PI*2;let a=this.aEndAngle-this.aStartAngle;const l=Math.abs(a)s;)a-=s;a0?0:(Math.floor(Math.abs(c)/a)+1)*a:h===0&&c===a-1&&(c=a-2,h=1);let d,f;this.closed||c>0?d=s[(c-1)%a]:(M1.subVectors(s[0],s[1]).add(s[0]),d=M1);const g=s[c%a],v=s[(c+1)%a];if(this.closed||c+2s.length-2?s.length-1:l+1],g=s[l>s.length-3?s.length-1:l+2];return n.set(w1(c,h.x,d.x,f.x,g.x),w1(c,h.y,d.y,f.y,g.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){const l=s[a]-n,c=this.curves[a],h=c.getLength(),d=h===0?0:1-l/h;return c.getPointAt(d,t)}a++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let n=0,s=this.curves.length;n1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){const g=d.getPoint(0);g.equals(this.currentPoint)||this.lineTo(g.x,g.y)}this.curves.push(d);const f=d.getPoint(1);return this.currentPoint.copy(f),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}},fh=class extends ih{constructor(e){super(e),this.uuid=or(),this.type="Shape",this.holes=[]}getPointsHoles(e){const t=[];for(let n=0,s=this.holes.length;n80*n){h=e[0],d=e[1];let g=h,v=d;for(let y=n;yg&&(g=_),M>v&&(v=M)}f=Math.max(g-h,v-d),f=f!==0?32767/f:0}return rh(l,c,n,h,d,f,0),c}function ST(e,t,n,s,a){let l;if(a===f3(e,t,n,s)>0)for(let c=t;c=t;c-=s)l=T1(c/s|0,e[c],e[c+1],l);return l&&vc(l,l.next)&&(ah(l),l=l.next),l}function Xo(e,t){if(!e)return e;t||(t=e);let n=e,s;do if(s=!1,!n.steiner&&(vc(n,n.next)||En(n.prev,n,n.next)===0)){if(ah(n),n=t=n.prev,n===n.next)break;s=!0}else n=n.next;while(s||n!==t);return t}function rh(e,t,n,s,a,l,c){if(!e)return;!c&&l&&o3(e,s,a,l);let h=e;for(;e.prev!==e.next;){const d=e.prev,f=e.next;if(l?QP(e,s,a,l):KP(e)){t.push(d.i,e.i,f.i),ah(e),e=f.next,h=f.next;continue}if(e=f,e===h){c?c===1?(e=e3(Xo(e),t),rh(e,t,n,s,a,l,2)):c===2&&t3(e,t,n,s,a,l):rh(Xo(e),t,n,s,a,l,1);break}}}function KP(e){const t=e.prev,n=e,s=e.next;if(En(t,n,s)>=0)return!1;const a=t.x,l=n.x,c=s.x,h=t.y,d=n.y,f=s.y,g=Math.min(a,l,c),v=Math.min(h,d,f),y=Math.max(a,l,c),_=Math.max(h,d,f);let M=s.next;for(;M!==t;){if(M.x>=g&&M.x<=y&&M.y>=v&&M.y<=_&&zu(a,h,l,d,c,f,M.x,M.y)&&En(M.prev,M,M.next)>=0)return!1;M=M.next}return!0}function QP(e,t,n,s){const a=e.prev,l=e,c=e.next;if(En(a,l,c)>=0)return!1;const h=a.x,d=l.x,f=c.x,g=a.y,v=l.y,y=c.y,_=Math.min(h,d,f),M=Math.min(g,v,y),T=Math.max(h,d,f),S=Math.max(g,v,y),b=Kv(_,M,t,n,s),C=Kv(T,S,t,n,s);let R=e.prevZ,w=e.nextZ;for(;R&&R.z>=b&&w&&w.z<=C;){if(R.x>=_&&R.x<=T&&R.y>=M&&R.y<=S&&R!==a&&R!==c&&zu(h,g,d,v,f,y,R.x,R.y)&&En(R.prev,R,R.next)>=0||(R=R.prevZ,w.x>=_&&w.x<=T&&w.y>=M&&w.y<=S&&w!==a&&w!==c&&zu(h,g,d,v,f,y,w.x,w.y)&&En(w.prev,w,w.next)>=0))return!1;w=w.nextZ}for(;R&&R.z>=b;){if(R.x>=_&&R.x<=T&&R.y>=M&&R.y<=S&&R!==a&&R!==c&&zu(h,g,d,v,f,y,R.x,R.y)&&En(R.prev,R,R.next)>=0)return!1;R=R.prevZ}for(;w&&w.z<=C;){if(w.x>=_&&w.x<=T&&w.y>=M&&w.y<=S&&w!==a&&w!==c&&zu(h,g,d,v,f,y,w.x,w.y)&&En(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function e3(e,t){let n=e;do{const s=n.prev,a=n.next.next;!vc(s,a)&&wT(s,n,n.next,a)&&sh(s,a)&&sh(a,s)&&(t.push(s.i,n.i,a.i),ah(n),ah(n.next),n=e=a),n=n.next}while(n!==e);return Xo(n)}function t3(e,t,n,s,a,l){let c=e;do{let h=c.next.next;for(;h!==c.prev;){if(c.i!==h.i&&u3(c,h)){let d=TT(c,h);c=Xo(c,c.next),d=Xo(d,d.next),rh(c,t,n,s,a,l,0),rh(d,t,n,s,a,l,0);return}h=h.next}c=c.next}while(c!==e)}function n3(e,t,n,s){const a=[];for(let l=0,c=t.length;l=n.next.y&&n.next.y!==n.y){const v=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(v<=s&&v>l&&(l=v,c=n.x=n.x&&n.x>=d&&s!==n.x&&MT(ac.x||n.x===c.x&&a3(c,n)))&&(c=n,g=v)}n=n.next}while(n!==h);return c}function a3(e,t){return En(e.prev,e,t.prev)<0&&En(t.next,e,e.next)<0}function o3(e,t,n,s){let a=e;do a.z===0&&(a.z=Kv(a.x,a.y,t,n,s)),a.prevZ=a.prev,a.nextZ=a.next,a=a.next;while(a!==e);a.prevZ.nextZ=null,a.prevZ=null,l3(a)}function l3(e){let t,n=1;do{let s=e,a;e=null;let l=null;for(t=0;s;){t++;let c=s,h=0;for(let f=0;f0||d>0&&c;)h!==0&&(d===0||!c||s.z<=c.z)?(a=s,s=s.nextZ,h--):(a=c,c=c.nextZ,d--),l?l.nextZ=a:e=a,a.prevZ=l,l=a;s=c}l.nextZ=null,n*=2}while(t>1);return e}function Kv(e,t,n,s,a){return e=(e-n)*a|0,t=(t-s)*a|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function c3(e){let t=e,n=e;do(t.x=(e-c)*(l-h)&&(e-c)*(s-h)>=(n-c)*(t-h)&&(n-c)*(l-h)>=(a-c)*(s-h)}function zu(e,t,n,s,a,l,c,h){return!(e===c&&t===h)&&MT(e,t,n,s,a,l,c,h)}function u3(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!h3(e,t)&&(sh(e,t)&&sh(t,e)&&d3(e,t)&&(En(e.prev,e,t.prev)||En(e,t.prev,t))||vc(e,t)&&En(e.prev,e,e.next)>0&&En(t.prev,t,t.next)>0)}function En(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function vc(e,t){return e.x===t.x&&e.y===t.y}function wT(e,t,n,s){const a=Rf(En(e,t,n)),l=Rf(En(e,t,s)),c=Rf(En(n,s,e)),h=Rf(En(n,s,t));return!!(a!==l&&c!==h||a===0&&Cf(e,n,t)||l===0&&Cf(e,s,t)||c===0&&Cf(n,e,s)||h===0&&Cf(n,t,s))}function Cf(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function Rf(e){return e>0?1:e<0?-1:0}function h3(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&wT(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function sh(e,t){return En(e.prev,e,e.next)<0?En(e,t,e.next)>=0&&En(e,e.prev,t)>=0:En(e,t,e.prev)<0||En(e,e.next,t)<0}function d3(e,t){let n=e,s=!1;const a=(e.x+t.x)/2,l=(e.y+t.y)/2;do n.y>l!=n.next.y>l&&n.next.y!==n.y&&a<(n.next.x-n.x)*(l-n.y)/(n.next.y-n.y)+n.x&&(s=!s),n=n.next;while(n!==e);return s}function TT(e,t){const n=Qv(e.i,e.x,e.y),s=Qv(t.i,t.x,t.y),a=e.next,l=t.prev;return e.next=t,t.prev=e,n.next=a,a.prev=n,s.next=n,n.prev=s,l.next=s,s.prev=l,s}function T1(e,t,n,s){const a=Qv(e,t,n);return s?(a.next=s.next,a.prev=s,s.next.prev=a,s.next=a):(a.prev=a,a.next=a),a}function ah(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function Qv(e,t,n){return{i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function f3(e,t,n,s){let a=0;for(let l=t,c=n-s;l2&&e[t-1].equals(e[0])&&e.pop()}function A1(e,t){for(let n=0;nNumber.EPSILON){const Ut=Math.sqrt(un),U=Math.sqrt(bt*bt+V*V),I=Ee.x-vt/Ut,W=Ee.y+tt/Ut,re=Ae.x-V/U,ve=Ae.y+bt/U,Pe=((re-I)*V-(ve-W)*bt)/(tt*V-vt*bt);Ve=I+tt*Pe-pe.x,Oe=W+vt*Pe-pe.y;const Ue=Ve*Ve+Oe*Oe;if(Ue<=2)return new ye(Ve,Oe);qe=Math.sqrt(Ue/2)}else{let Ut=!1;tt>Number.EPSILON?bt>Number.EPSILON&&(Ut=!0):tt<-Number.EPSILON?bt<-Number.EPSILON&&(Ut=!0):Math.sign(vt)===Math.sign(V)&&(Ut=!0),Ut?(Ve=-vt,Oe=tt,qe=Math.sqrt(un)):(Ve=tt,Oe=vt,qe=Math.sqrt(un/2))}return new ye(Ve/qe,Oe/qe)}const me=[];for(let pe=0,Ee=K.length,Ae=Ee-1,Ve=pe+1;pe=0;pe--){const Ee=pe/S,Ae=_*Math.cos(Ee*Math.PI/2),Ve=M*Math.sin(Ee*Math.PI/2)+T;for(let Oe=0,qe=K.length;Oe=0;){const Ve=Ae;let Oe=Ae-1;Oe<0&&(Oe=pe.length-1);for(let qe=0,tt=g+S*2;qe0)&&_.push(R,w,D),(b!==s-1||d0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const n={};for(const s in this.extensions)this.extensions[s]===!0&&(n[s]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}fromJSON(e,t){if(super.fromJSON(e,t),e.uniforms!==void 0)for(const n in e.uniforms){const s=e.uniforms[n];switch(this.uniforms[n]={},s.type){case"t":this.uniforms[n].value=t[s.value]||null;break;case"c":this.uniforms[n].value=new Xe().setHex(s.value);break;case"v2":this.uniforms[n].value=new ye().fromArray(s.value);break;case"v3":this.uniforms[n].value=new z().fromArray(s.value);break;case"v4":this.uniforms[n].value=new cn().fromArray(s.value);break;case"m3":this.uniforms[n].value=new Et().fromArray(s.value);break;case"m4":this.uniforms[n].value=new St().fromArray(s.value);break;default:this.uniforms[n].value=s.value}}if(e.defines!==void 0&&(this.defines=e.defines),e.vertexShader!==void 0&&(this.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(this.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(this.glslVersion=e.glslVersion),e.extensions!==void 0)for(const n in e.extensions)this.extensions[n]=e.extensions[n];return e.lights!==void 0&&(this.lights=e.lights),e.clipping!==void 0&&(this.clipping=e.clipping),this}},Y0=class extends cr{constructor(e){super(e),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}},j0=class extends ci{constructor(e){super(),this.isMeshStandardMaterial=!0,this.type="MeshStandardMaterial",this.defines={STANDARD:""},this.color=new Xe(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Xe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new ea,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.envMapIntensity=e.envMapIntensity,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},KT=class extends j0{constructor(e){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new ye(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return gt(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Xe(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new Xe(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Xe(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._dispersion=0,this._iridescence=0,this._sheen=0,this._transmission=0,this.setValues(e)}get anisotropy(){return this._anisotropy}set anisotropy(e){this._anisotropy>0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}},QT=class extends ci{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Xe(16777215),this.specular=new Xe(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Xe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new ea,this.combine=0,this.reflectivity=1,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},eE=class extends ci{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Xe(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Xe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},tE=class extends ci{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}},nE=class extends ci{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Xe(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Xe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new ea,this.combine=0,this.reflectivity=1,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},Z0=class extends ci{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Cw,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},$0=class extends ci{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},iE=class extends ci{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Xe(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this.fog=e.fog,this}},rE=class extends zi{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}};function ko(e,t){return!e||e.constructor===t?e:typeof t.BYTES_PER_ELEMENT=="number"?new t(e):Array.prototype.slice.call(e)}function sE(e){function t(a,l){return e[a]-e[l]}const n=e.length,s=new Array(n);for(let a=0;a!==n;++a)s[a]=a;return s.sort(t),s}function e0(e,t,n){const s=e.length,a=new e.constructor(s);for(let l=0,c=0;c!==s;++l){const h=n[l]*t;for(let d=0;d!==t;++d)a[c++]=e[h+d]}return a}function aE(e,t,n,s){let a=1,l=e[0];for(;l!==void 0&&l[s]===void 0;)l=e[a++];if(l===void 0)return;let c=l[s];if(c!==void 0)if(Array.isArray(c))do c=l[s],c!==void 0&&(t.push(l.time),n.push(...c)),l=e[a++];while(l!==void 0);else if(c.toArray!==void 0)do c=l[s],c!==void 0&&(t.push(l.time),c.toArray(n,n.length)),l=e[a++];while(l!==void 0);else do c=l[s],c!==void 0&&(t.push(l.time),n.push(c)),l=e[a++];while(l!==void 0)}function x3(e,t,n,s,a=30){const l=e.clone();l.name=t;const c=[];for(let d=0;d=s)){v.push(f.times[_]);for(let T=0;Tl.tracks[d].times[0]&&(h=l.tracks[d].times[0]);for(let d=0;d=h.times[M]){const b=M*v+g,C=b+v-g;T=h.values.slice(b,C)}else{const b=h.createInterpolant(),C=g,R=v-g;b.evaluate(l),T=b.resultBuffer.slice(C,R)}d==="quaternion"&&new Bi().fromArray(T).normalize().conjugate().toArray(T);const S=f.times.length;for(let b=0;b=a)){const c=t[1];e=a)break t}l=n,n=0;break n}break e}for(;n>>1;et;)--l;if(++l,a!==0||l!==s){a>=l&&(l=Math.max(l,1),a=l-1);const c=this.getValueSize();this.times=n.slice(a,l),this.values=this.values.slice(a*c,l*c)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(rt("KeyframeTrack: Invalid value size in track.",this),e=!1);const n=this.times,s=this.values,a=n.length;a===0&&(rt("KeyframeTrack: Track is empty.",this),e=!1);let l=null;for(let c=0;c!==a;c++){const h=n[c];if(typeof h=="number"&&isNaN(h)){rt("KeyframeTrack: Time is not a valid number.",this,c,h),e=!1;break}if(l!==null&&l>h){rt("KeyframeTrack: Out of order keys.",this,c,h,l),e=!1;break}l=h}if(s!==void 0&&Rw(s))for(let c=0,h=s.length;c!==h;++c){const d=s[c];if(isNaN(d)){rt("KeyframeTrack: Value is not a valid number.",this,c,d),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),n=this.getValueSize(),s=this.getInterpolation()===Hf,a=e.length-1;let l=1;for(let c=1;c0){e[l]=e[a];for(let c=a*n,h=l*n,d=0;d!==n;++d)t[h+d]=t[c+d];++l}return l!==e.length?(this.times=e.slice(0,l),this.values=t.slice(0,l*n)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),n=this.constructor,s=new n(this.name,e,t);return s.createInterpolant=this.createInterpolant,s}};Mr.prototype.ValueTypeName="";Mr.prototype.TimeBufferType=Float32Array;Mr.prototype.ValueBufferType=Float32Array;Mr.prototype.DefaultInterpolation=Zf;var Yo=class extends Mr{constructor(e,t,n){super(e,t,n)}};Yo.prototype.ValueTypeName="bool";Yo.prototype.ValueBufferType=Array;Yo.prototype.DefaultInterpolation=Zu;Yo.prototype.InterpolantFactoryMethodLinear=void 0;Yo.prototype.InterpolantFactoryMethodSmooth=void 0;var K0=class extends Mr{constructor(e,t,n,s){super(e,t,n,s)}};K0.prototype.ValueTypeName="color";var pp=class extends Mr{constructor(e,t,n,s){super(e,t,n,s)}};pp.prototype.ValueTypeName="number";var uE=class extends Mc{constructor(e,t,n,s){super(e,t,n,s)}interpolate_(e,t,n,s){const a=this.resultBuffer,l=this.sampleValues,c=this.valueSize,h=(n-t)/(s-t);let d=e*c;for(let f=d+c;d!==f;d+=4)Bi.slerpFlat(a,0,l,d-c,l,d,h);return a}},mp=class extends Mr{constructor(e,t,n,s){super(e,t,n,s)}InterpolantFactoryMethodLinear(e){return new uE(this.times,this.values,this.getValueSize(),e)}};mp.prototype.ValueTypeName="quaternion";mp.prototype.InterpolantFactoryMethodSmooth=void 0;var jo=class extends Mr{constructor(e,t,n){super(e,t,n)}};jo.prototype.ValueTypeName="string";jo.prototype.ValueBufferType=Array;jo.prototype.DefaultInterpolation=Zu;jo.prototype.InterpolantFactoryMethodLinear=void 0;jo.prototype.InterpolantFactoryMethodSmooth=void 0;var Q0=class extends Mr{constructor(e,t,n,s){super(e,t,n,s)}};Q0.prototype.ValueTypeName="vector";var oh=class{constructor(e="",t=-1,n=[],s=ap){this.name=e,this.tracks=n,this.duration=t,this.blendMode=s,this.uuid=or(),this.userData={},this.duration<0&&this.resetDuration()}static parse(e){const t=[],n=e.tracks,s=1/(e.fps||1);for(let l=0,c=n.length;l!==c;++l)t.push(T3(n[l]).scale(s));const a=new this(e.name,e.duration,t,e.blendMode);return a.uuid=e.uuid,a.userData=JSON.parse(e.userData||"{}"),a}static toJSON(e){const t=[],n=e.tracks,s={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode,userData:JSON.stringify(e.userData)};for(let a=0,l=n.length;a!==l;++a)t.push(Mr.toJSON(n[a]));return s}static CreateFromMorphTargetSequence(e,t,n,s){const a=t.length,l=[];for(let c=0;c1){const g=f[1];let v=s[g];v||(s[g]=v=[]),v.push(d)}}const l=[];for(const c in s)l.push(this.CreateFromMorphTargetSequence(c,s[c],t,n));return l}resetDuration(){const e=this.tracks;let t=0;for(let n=0,s=e.length;n!==s;++n){const a=this.tracks[n];t=Math.max(t,a.times[a.times.length-1])}return this.duration=t,this}trim(){for(let e=0;e{t&&t(a),this.manager.itemEnd(e)},0);return}if(Xs[e]!==void 0){Xs[e].push({onLoad:t,onProgress:n,onError:s});return}Xs[e]=[],Xs[e].push({onLoad:t,onProgress:n,onError:s});const l=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal}),c=this.mimeType,h=this.responseType;fetch(l).then(d=>{if(d.status===200||d.status===0){if(d.status===0&&Ne("FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||d.body===void 0||d.body.getReader===void 0)return d;const f=Xs[e],g=d.body.getReader(),v=d.headers.get("X-File-Size")||d.headers.get("Content-Length"),y=v?parseInt(v):0,_=y!==0;let M=0;const T=new ReadableStream({start(S){b();function b(){g.read().then(({done:C,value:R})=>{if(C)S.close();else{M+=R.byteLength;const w=new ProgressEvent("progress",{lengthComputable:_,loaded:M,total:y});for(let L=0,D=f.length;L{S.error(C)})}}});return new Response(T)}else throw new E3(`fetch for "${d.url}" responded with ${d.status}: ${d.statusText}`,d)}).then(d=>{switch(h){case"arraybuffer":return d.arrayBuffer();case"blob":return d.blob();case"document":return d.text().then(f=>new DOMParser().parseFromString(f,c));case"json":return d.json();default:if(c==="")return d.text();{const f=/charset="?([^;"\s]*)"?/i.exec(c),g=f&&f[1]?f[1].toLowerCase():void 0,v=new TextDecoder(g);return d.arrayBuffer().then(y=>v.decode(y))}}}).then(d=>{fs.add(`file:${e}`,d);const f=Xs[e];delete Xs[e];for(let g=0,v=f.length;g{const f=Xs[e];if(f===void 0)throw this.manager.itemError(e),d;delete Xs[e];for(let g=0,v=f.length;g{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}},A3=class extends Zi{constructor(e){super(e)}load(e,t,n,s){const a=this,l=new ta(this.manager);l.setPath(this.path),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(c){try{t(a.parse(JSON.parse(c)))}catch(h){s?s(h):rt(h),a.manager.itemError(e)}},n,s)}parse(e){const t=[];for(let n=0;n0){const h=new ey(t);a=new lh(h),a.setCrossOrigin(this.crossOrigin);for(let d=0,f=e.length;d0){s=new lh(this.manager),s.setCrossOrigin(this.crossOrigin);for(let l=0,c=e.length;l{let S=null,b=null;return T.boundingBox!==void 0&&(S=new Si().fromJSON(T.boundingBox)),T.boundingSphere!==void 0&&(b=new li().fromJSON(T.boundingSphere)),{...T,boundingBox:S,boundingSphere:b}}),l._instanceInfo=e.instanceInfo,l._availableInstanceIds=e._availableInstanceIds,l._availableGeometryIds=e._availableGeometryIds,l._nextIndexStart=e.nextIndexStart,l._nextVertexStart=e.nextVertexStart,l._geometryCount=e.geometryCount,l._maxInstanceCount=e.maxInstanceCount,l._maxVertexCount=e.maxVertexCount,l._maxIndexCount=e.maxIndexCount,l._geometryInitialized=e.geometryInitialized,l._matricesTexture=d(e.matricesTexture.uuid),l._indirectTexture=d(e.indirectTexture.uuid),e.colorsTexture!==void 0&&(l._colorsTexture=d(e.colorsTexture.uuid)),e.boundingSphere!==void 0&&(l.boundingSphere=new li().fromJSON(e.boundingSphere)),e.boundingBox!==void 0&&(l.boundingBox=new Si().fromJSON(e.boundingBox));break;case"LOD":l=new Yw;break;case"Line":l=new Xa(c(e.geometry),h(e.material));break;case"LineLoop":l=new tT(c(e.geometry),h(e.material));break;case"LineSegments":l=new ps(c(e.geometry),h(e.material));break;case"PointCloud":case"Points":l=new nT(c(e.geometry),h(e.material));break;case"Sprite":l=new qw(h(e.material));break;case"Group":l=new uc;break;case"Bone":l=new D0;break;default:l=new tn}if(l.uuid=e.uuid,e.name!==void 0&&(l.name=e.name),e.matrix!==void 0?(l.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(l.matrixAutoUpdate=e.matrixAutoUpdate),l.matrixAutoUpdate&&l.matrix.decompose(l.position,l.quaternion,l.scale)):(e.position!==void 0&&l.position.fromArray(e.position),e.rotation!==void 0&&l.rotation.fromArray(e.rotation),e.quaternion!==void 0&&l.quaternion.fromArray(e.quaternion),e.scale!==void 0&&l.scale.fromArray(e.scale)),e.up!==void 0&&l.up.fromArray(e.up),e.pivot!==void 0&&(l.pivot=new z().fromArray(e.pivot)),e.morphTargetDictionary!==void 0&&(l.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),e.morphTargetInfluences!==void 0&&(l.morphTargetInfluences=e.morphTargetInfluences.slice()),e.castShadow!==void 0&&(l.castShadow=e.castShadow),e.receiveShadow!==void 0&&(l.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.intensity!==void 0&&(l.shadow.intensity=e.shadow.intensity),e.shadow.bias!==void 0&&(l.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(l.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(l.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&l.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(l.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(l.visible=e.visible),e.frustumCulled!==void 0&&(l.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(l.renderOrder=e.renderOrder),e.static!==void 0&&(l.static=e.static),e.userData!==void 0&&(l.userData=e.userData),e.layers!==void 0&&(l.layers.mask=e.layers),e.children!==void 0){const v=e.children;for(let y=0;y"u"&&Ne("ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&Ne("ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"},this._abortController=new AbortController}setOptions(e){return this.options=e,this}load(e,t,n,s){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const a=this,l=fs.get(`image-bitmap:${e}`);if(l!==void 0){if(a.manager.itemStart(e),l.then){l.then(d=>{Pv.has(l)===!0?(s&&s(Pv.get(l)),a.manager.itemError(e),a.manager.itemEnd(e)):(t&&t(d),a.manager.itemEnd(e))});return}setTimeout(function(){t&&t(l),a.manager.itemEnd(e)},0);return}const c={};c.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",c.headers=this.requestHeader,c.signal=typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;const h=fetch(e,c).then(function(d){return d.blob()}).then(function(d){return createImageBitmap(d,Object.assign(a.options,{colorSpaceConversion:"none"}))}).then(function(d){fs.add(`image-bitmap:${e}`,d),t&&t(d),a.manager.itemEnd(e)}).catch(function(d){s&&s(d),Pv.set(h,d),fs.remove(`image-bitmap:${e}`),a.manager.itemError(e),a.manager.itemEnd(e)});fs.add(`image-bitmap:${e}`,h),a.manager.itemStart(e)}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}},Lf,iy=class{static getContext(){return Lf===void 0&&(Lf=new(window.AudioContext||window.webkitAudioContext)),Lf}static setContext(e){Lf=e}},B3=class extends Zi{constructor(e){super(e)}load(e,t,n,s){const a=this,l=new ta(this.manager);l.setResponseType("arraybuffer"),l.setPath(this.path),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(h){try{const d=h.slice(0),f=iy.getContext(),g=e+"#decode";a.manager.itemStart(g),f.decodeAudioData(d,function(v){t(v),a.manager.itemEnd(g)}).catch(function(v){c(v),a.manager.itemEnd(g)})}catch(d){c(d)}},n,s);function c(h){s?s(h):rt(h),a.manager.itemError(e)}}},z1=new St,k1=new St,Lo=new St,z3=class{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new ni,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new ni,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,Lo.copy(e.projectionMatrix);const n=t.eyeSep/2,s=n*t.near/t.focus,a=t.near*Math.tan(Ho*t.fov*.5)/t.zoom;let l,c;k1.elements[12]=-n,z1.elements[12]=n,l=-a*t.aspect+s,c=a*t.aspect+s,Lo.elements[0]=2*t.near/(c-l),Lo.elements[8]=(c+l)/(c-l),this.cameraL.projectionMatrix.copy(Lo),l=-a*t.aspect-s,c=a*t.aspect-s,Lo.elements[0]=2*t.near/(c-l),Lo.elements[8]=(c+l)/(c-l),this.cameraR.projectionMatrix.copy(Lo)}this.cameraL.matrix.copy(e.matrixWorld).multiply(k1),this.cameraL.matrixWorldNeedsUpdate=!0,this.cameraR.matrix.copy(e.matrixWorld).multiply(z1),this.cameraR.matrixWorldNeedsUpdate=!0}},Ql=-90,ec=1,ME=class extends tn{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const s=new ni(Ql,ec,e,t);s.layers=this.layers,this.add(s);const a=new ni(Ql,ec,e,t);a.layers=this.layers,this.add(a);const l=new ni(Ql,ec,e,t);l.layers=this.layers,this.add(l);const c=new ni(Ql,ec,e,t);c.layers=this.layers,this.add(c);const h=new ni(Ql,ec,e,t);h.layers=this.layers,this.add(h);const d=new ni(Ql,ec,e,t);d.layers=this.layers,this.add(d)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[n,s,a,l,c,h]=t;for(const d of t)this.remove(d);if(e===2e3)n.up.set(0,1,0),n.lookAt(1,0,0),s.up.set(0,1,0),s.lookAt(-1,0,0),a.up.set(0,0,-1),a.lookAt(0,1,0),l.up.set(0,0,1),l.lookAt(0,-1,0),c.up.set(0,1,0),c.lookAt(0,0,1),h.up.set(0,1,0),h.lookAt(0,0,-1);else if(e===2001)n.up.set(0,-1,0),n.lookAt(-1,0,0),s.up.set(0,-1,0),s.lookAt(1,0,0),a.up.set(0,0,1),a.lookAt(0,1,0),l.up.set(0,0,-1),l.lookAt(0,-1,0),c.up.set(0,-1,0),c.lookAt(0,0,1),h.up.set(0,-1,0),h.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const d of t)this.add(d),d.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:s}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[a,l,c,h,d,f]=this.children,g=e.getRenderTarget(),v=e.getActiveCubeFace(),y=e.getActiveMipmapLevel(),_=e.xr.enabled;e.xr.enabled=!1;const M=n.texture.generateMipmaps;n.texture.generateMipmaps=!1;let T=!1;e.isWebGLRenderer===!0?T=e.state.buffers.depth.getReversed():T=e.reversedDepthBuffer,e.setRenderTarget(n,0,s),T&&e.autoClear===!1&&e.clearDepth(),e.render(t,a),e.setRenderTarget(n,1,s),T&&e.autoClear===!1&&e.clearDepth(),e.render(t,l),e.setRenderTarget(n,2,s),T&&e.autoClear===!1&&e.clearDepth(),e.render(t,c),e.setRenderTarget(n,3,s),T&&e.autoClear===!1&&e.clearDepth(),e.render(t,h),e.setRenderTarget(n,4,s),T&&e.autoClear===!1&&e.clearDepth(),e.render(t,d),n.texture.generateMipmaps=M,e.setRenderTarget(n,5,s),T&&e.autoClear===!1&&e.clearDepth(),e.render(t,f),e.setRenderTarget(g,v,y),e.xr.enabled=_,n.texture.needsPMREMUpdate=!0}},wE=class extends ni{constructor(e=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=e}},TE=class{constructor(){this._previousTime=0,this._currentTime=0,this._startTime=performance.now(),this._delta=0,this._elapsed=0,this._timescale=1,this._document=null,this._pageVisibilityHandler=null}connect(e){this._document=e,e.hidden!==void 0&&(this._pageVisibilityHandler=k3.bind(this),e.addEventListener("visibilitychange",this._pageVisibilityHandler,!1))}disconnect(){this._pageVisibilityHandler!==null&&(this._document.removeEventListener("visibilitychange",this._pageVisibilityHandler),this._pageVisibilityHandler=null),this._document=null}getDelta(){return this._delta/1e3}getElapsed(){return this._elapsed/1e3}getTimescale(){return this._timescale}setTimescale(e){return this._timescale=e,this}reset(){return this._currentTime=performance.now()-this._startTime,this}dispose(){this.disconnect()}update(e){return this._pageVisibilityHandler!==null&&this._document.hidden===!0?this._delta=0:(this._previousTime=this._currentTime,this._currentTime=(e!==void 0?e:performance.now())-this._startTime,this._delta=(this._currentTime-this._previousTime)*this._timescale,this._elapsed+=this._delta),this}};function k3(){this._document.hidden===!1&&this.reset()}var No=new z,Iv=new Bi,V3=new z,Do=new z,Uo=new z,H3=class extends tn{constructor(){super(),this.type="AudioListener",this.context=iy.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._timer=new TE}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this._timer.update();const t=this.context.listener;if(this.timeDelta=this._timer.getDelta(),this.matrixWorld.decompose(No,Iv,V3),Do.set(0,0,-1).applyQuaternion(Iv),Uo.set(0,1,0).applyQuaternion(Iv),t.positionX){const n=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(No.x,n),t.positionY.linearRampToValueAtTime(No.y,n),t.positionZ.linearRampToValueAtTime(No.z,n),t.forwardX.linearRampToValueAtTime(Do.x,n),t.forwardY.linearRampToValueAtTime(Do.y,n),t.forwardZ.linearRampToValueAtTime(Do.z,n),t.upX.linearRampToValueAtTime(Uo.x,n),t.upY.linearRampToValueAtTime(Uo.y,n),t.upZ.linearRampToValueAtTime(Uo.z,n)}else t.setPosition(No.x,No.y,No.z),t.setOrientation(Do.x,Do.y,Do.z,Uo.x,Uo.y,Uo.z)}},EE=class extends tn{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){Ne("Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){Ne("Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){Ne("Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(e=0){if(this.hasPlaybackControl===!1){Ne("Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(this.context.currentTime+e),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(n,s,this._addIndex*t,1,t);for(let h=t,d=t+t;h!==d;++h)if(n[h]!==n[h+t]){c.setValue(n,s);break}}saveOriginalState(){const e=this.binding,t=this.buffer,n=this.valueSize,s=n*this._origIndex;e.getValue(t,s);for(let a=n,l=s;a!==l;++a)t[a]=t[s+a%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n=.5)for(let l=0;l!==a;++l)e[t+l]=e[n+l]}_slerp(e,t,n,s){Bi.slerpFlat(e,t,e,t,e,n,s)}_slerpAdditive(e,t,n,s,a){const l=this._workIndex*a;Bi.multiplyQuaternionsFlat(e,l,e,t,e,n),Bi.slerpFlat(e,t,e,t,e,l,s)}_lerp(e,t,n,s,a){const l=1-s;for(let c=0;c!==a;++c){const h=t+c;e[h]=e[h]*l+e[n+c]*s}}_lerpAdditive(e,t,n,s,a){for(let l=0;l!==a;++l){const c=t+l;e[c]=e[c]+e[n+l]*s}}},q3="\\[\\]\\.:\\/",Y3=new RegExp("[\\[\\]\\.:\\/]","g"),ry="[^\\[\\]\\.:\\/]",j3="[^"+q3.replace("\\.","")+"]",Z3=/((?:WC+[\/:])*)/.source.replace("WC",ry),$3=/(WCOD+)?/.source.replace("WCOD",j3),J3=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",ry),K3=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",ry),Q3=new RegExp("^"+Z3+$3+J3+K3+"$"),eI=["material","materials","bones","map"],tI=class{constructor(e,t,n){const s=n||ln.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,s)}getValue(e,t){this.bind();const n=this._targetGroup.nCachedObjects_,s=this._bindings[n];s!==void 0&&s.getValue(e,t)}setValue(e,t){const n=this._bindings;for(let s=this._targetGroup.nCachedObjects_,a=n.length;s!==a;++s)n[s].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}},ln=class lc{constructor(t,n,s){this.path=n,this.parsedPath=s||lc.parseTrackName(n),this.node=lc.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,n,s){return t&&t.isAnimationObjectGroup?new lc.Composite(t,n,s):new lc(t,n,s)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Y3,"")}static parseTrackName(t){const n=Q3.exec(t);if(n===null)throw new Error("THREE.PropertyBinding: Cannot parse trackName: "+t);const s={nodeName:n[2],objectName:n[3],objectIndex:n[4],propertyName:n[5],propertyIndex:n[6]},a=s.nodeName&&s.nodeName.lastIndexOf(".");if(a!==void 0&&a!==-1){const l=s.nodeName.substring(a+1);eI.indexOf(l)!==-1&&(s.nodeName=s.nodeName.substring(0,a),s.objectName=l)}if(s.propertyName===null||s.propertyName.length===0)throw new Error("THREE.PropertyBinding: can not parse propertyName from trackName: "+t);return s}static findNode(t,n){if(n===void 0||n===""||n==="."||n===-1||n===t.name||n===t.uuid)return t;if(t.skeleton){const s=t.skeleton.getBoneByName(n);if(s!==void 0)return s}if(t.children){const s=function(l){for(let c=0;c=a){const g=a++,v=e[g];t[v.uuid]=f,e[f]=v,t[d]=g,e[g]=h;for(let y=0,_=s;y!==_;++y){const M=n[y],T=M[g],S=M[f];M[f]=T,M[g]=S}}}this.nCachedObjects_=a}uncache(){const e=this._objects,t=this._indicesByUUID,n=this._bindings,s=n.length;let a=this.nCachedObjects_,l=e.length;for(let c=0,h=arguments.length;c!==h;++c){const d=arguments[c].uuid,f=t[d];if(f!==void 0)if(delete t[d],f0&&(t[v.uuid]=f),e[f]=v,e.pop();for(let y=0,_=s;y!==_;++y){const M=n[y];M[f]=M[g],M.pop()}}}this.nCachedObjects_=a}subscribe_(e,t){const n=this._bindingsIndicesByPath;let s=n[e];const a=this._bindings;if(s!==void 0)return a[s];const l=this._paths,c=this._parsedPaths,h=this._objects,d=h.length,f=this.nCachedObjects_,g=new Array(d);s=a.length,n[e]=s,l.push(e),c.push(t),a.push(g);for(let v=f,y=h.length;v!==y;++v){const _=h[v];g[v]=new ln(_,e,t)}return g}unsubscribe_(e){const t=this._bindingsIndicesByPath,n=t[e];if(n!==void 0){const s=this._paths,a=this._parsedPaths,l=this._bindings,c=l.length-1,h=l[c],d=e[c];t[d]=n,l[n]=h,l.pop(),a[n]=a[c],a.pop(),s[n]=s[c],s.pop()}}},CE=class{constructor(e,t,n=null,s=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=s;const a=t.tracks,l=a.length,c=new Array(l),h={endingStart:Bo,endingEnd:Bo};for(let d=0;d!==l;++d){const f=a[d].createInterpolant(null);c[d]=f,f.settings=h}this._interpolantSettings=h,this._interpolants=c,this._propertyBindings=new Array(l),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._restoreTimeScale=null,this._weightInterpolant=null,this.loop=Ew,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n=!1){if(e.fadeOut(t),this.fadeIn(t),n===!0){const s=this._clip.duration,a=e._clip.duration,l=a/s,c=s/a;e._restoreTimeScale=e.timeScale,this._restoreTimeScale=this.timeScale,e.warp(1,l,t),this.warp(c,1,t)}return this}crossFadeTo(e,t,n=!1){return e.crossFadeFrom(this,t,n)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){const s=this._mixer,a=s.time,l=this.timeScale;let c=this._timeScaleInterpolant;c===null&&(c=s._lendControlInterpolant(),this._timeScaleInterpolant=c);const h=c.parameterPositions,d=c.sampleValues;return h[0]=a,h[1]=a+n,d[0]=e/l,d[1]=t/l,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this._restoreTimeScale=null,this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,s){if(!this.enabled){this._updateWeight(e);return}const a=this._startTime;if(a!==null){const h=(e-a)*n;h<0||n===0?t=0:(this._startTime=null,t=n*h)}t*=this._updateTimeScale(e);const l=this._updateTime(t),c=this._updateWeight(e);if(c>0){const h=this._interpolants,d=this._propertyBindings;switch(this.blendMode){case A0:for(let f=0,g=h.length;f!==g;++f)h[f].evaluate(l),d[f].accumulateAdditive(c);break;case ap:default:for(let f=0,g=h.length;f!==g;++f)h[f].evaluate(l),d[f].accumulate(s,c)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const n=this._weightInterpolant;if(n!==null){const s=n.evaluate(e)[0];t*=s,e>n.parameterPositions[1]&&(this.stopFading(),s===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const n=this._timeScaleInterpolant;if(n!==null){const s=n.evaluate(e)[0];t*=s,e>n.parameterPositions[1]&&(t===0?this.paused=!0:(this._restoreTimeScale!==null&&(t=this._restoreTimeScale),this.timeScale=t),this.stopWarping())}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,n=this.loop;let s=this.time+e,a=this._loopCount;const l=n===Aw;if(e===0)return a===-1?s:l&&(a&1)===1?t-s:s;if(n===2200){a===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(s>=t)s=t;else if(s<0)s=0;else{this.time=s;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=s,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(a===-1&&(e>=0?(a=0,this._setEndings(!0,this.repetitions===0,l)):this._setEndings(this.repetitions===0,!0,l)),s>=t||s<0){const c=Math.floor(s/t);s-=t*c,a+=Math.abs(c);const h=this.repetitions-a;if(h<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,s=e>0?t:0,this.time=s,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(h===1){const d=e<0;this._setEndings(d,!d,l)}else this._setEndings(!1,!1,l);this._loopCount=a,this.time=s,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:c})}}else this._loopCount=a,this.time=s;if(l&&(a&1)===1)return t-s}return s}_setEndings(e,t,n){const s=this._interpolantSettings;n?(s.endingStart=zo,s.endingEnd=zo):(e?s.endingStart=this.zeroSlopeAtStart?zo:Bo:s.endingStart=$u,t?s.endingEnd=this.zeroSlopeAtEnd?zo:Bo:s.endingEnd=$u)}_scheduleFading(e,t,n){const s=this._mixer,a=s.time;let l=this._weightInterpolant;l===null&&(l=s._lendControlInterpolant(),this._weightInterpolant=l);const c=l.parameterPositions,h=l.sampleValues;return c[0]=a,h[0]=t,c[1]=a+e,h[1]=n,this}},iI=new Float32Array(1),rI=class extends Wr{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}_bindAction(e,t){const n=e._localRoot||this._root,s=e._clip.tracks,a=s.length,l=e._propertyBindings,c=e._interpolants,h=n.uuid,d=this._bindingsByRootAndName;let f=d[h];f===void 0&&(f={},d[h]=f);for(let g=0;g!==a;++g){const v=s[g],y=v.name;let _=f[y];if(_!==void 0)++_.referenceCount,l[g]=_;else{if(_=l[g],_!==void 0){_._cacheIndex===null&&(++_.referenceCount,this._addInactiveBinding(_,h,y));continue}const M=t&&t._propertyBindings[g].binding.parsedPath;_=new AE(ln.create(n,y,M),v.ValueTypeName,v.getValueSize()),++_.referenceCount,this._addInactiveBinding(_,h,y),l[g]=_}c[g].resultBuffer=_.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const n=(e._localRoot||this._root).uuid,s=e._clip.uuid,a=this._actionsByClip[s];this._bindAction(e,a&&a.knownActions[0]),this._addInactiveAction(e,s,n)}const t=e._propertyBindings;for(let n=0,s=t.length;n!==s;++n){const a=t[n];a.useCount++===0&&(this._lendBinding(a),a.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let n=0,s=t.length;n!==s;++n){const a=t[n];--a.useCount===0&&(a.restoreOriginalState(),this._takeBackBinding(a))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;const t=this._actions,n=this._nActiveActions,s=this.time+=e,a=Math.sign(e),l=this._accuIndex^=1;for(let d=0;d!==n;++d)t[d]._update(s,e,a,l);const c=this._bindings,h=this._nActiveBindings;for(let d=0;d!==h;++d)c[d].apply(l);return this}setTime(e){this.time=0;for(let t=0;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,W1).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},X1=new z,Nf=new z,tc=new z,nc=new z,Lv=new z,pI=new z,mI=new z,gI=class{constructor(e=new z,t=new z){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){X1.subVectors(e,this.start),Nf.subVectors(this.end,this.start);const n=Nf.dot(Nf);if(n===0)return 0;let s=Nf.dot(X1)/n;return t&&(s=gt(s,0,1)),s}closestPointToPoint(e,t,n){const s=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(s).add(this.start)}distanceSqToLine3(e,t=pI,n=mI){const s=10000000000000001e-32;let a,l;const c=this.start,h=e.start,d=this.end,f=e.end;tc.subVectors(d,c),nc.subVectors(f,h),Lv.subVectors(c,h);const g=tc.dot(tc),v=nc.dot(nc),y=nc.dot(Lv);if(g<=s&&v<=s)return t.copy(c),n.copy(h),t.sub(n),t.dot(t);if(g<=s)a=0,l=y/v,l=gt(l,0,1);else{const _=tc.dot(Lv);if(v<=s)l=0,a=gt(-_/g,0,1);else{const M=tc.dot(nc),T=g*v-M*M;T!==0?a=gt((M*y-_*v)/T,0,1):a=0,l=(M*a+y)/v,l<0?(l=0,a=gt(-_/g,0,1)):l>1&&(l=1,a=gt((M-_)/g,0,1))}}return t.copy(c).addScaledVector(tc,a),n.copy(h).addScaledVector(nc,l),t.distanceToSquared(n)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}},q1=new z,vI=class extends tn{constructor(e,t){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const n=new Lt,s=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let l=0,c=1,h=32;l1)for(let g=0;g.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{J1.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(J1,t)}}setLength(e,t=e*.2,n=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},PI=class extends ps{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],n=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],s=new Lt;s.setAttribute("position",new Ke(t,3)),s.setAttribute("color",new Ke(n,3));const a=new zi({vertexColors:!0,toneMapped:!1});super(s,a),this.type="AxesHelper"}setColors(e,t,n){const s=new Xe,a=this.geometry.attributes.color.array;return s.set(e),s.toArray(a,0),s.toArray(a,3),s.set(t),s.toArray(a,6),s.toArray(a,9),s.set(n),s.toArray(a,12),s.toArray(a,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}},II=class{constructor(){this.type="ShapePath",this.color=new Xe,this.subPaths=[],this.currentPath=null,this.userData={}}moveTo(e,t){return this.currentPath=new ih,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,n,s){return this.currentPath.quadraticCurveTo(e,t,n,s),this}bezierCurveTo(e,t,n,s,a,l){return this.currentPath.bezierCurveTo(e,t,n,s,a,l),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(){function e(h,d){let f=!1;const g=d.length;for(let v=0,y=g-1;vh.y!=M.y>h.y&&h.x<(M.x-_.x)*(h.y-_.y)/(M.y-_.y)+_.x&&(f=!f)}return f}function t(h,d){const f=d.getCenter(new ye);if(e(f,h))return f;const g=f.y,v=[],y=h.length;for(let _=0;_g!=T.y>g){const S=M.x+(g-M.y)*(T.x-M.x)/(T.y-M.y);v.push(S)}}return v.length>1&&(v.sort((_,M)=>_-M),f.x=(v[0]+v[1])/2),f}let n=this.userData.style&&this.userData.style.fillRule||"nonzero";n!=="nonzero"&&n!=="evenodd"&&(Ne('Fill-rule "'+n+'" is not supported, falling back to "nonzero".'),n="nonzero");const s=n==="nonzero"?(h=>h!==0):(h=>(h&1)!==0),a=[];for(const h of this.subPaths){const d=h.getPoints();if(d.length<3)continue;const f=js.area(d);if(f===0)continue;const g=new NE;for(let v=0;vd.absArea-h.absArea);for(let h=0;h=0;g--){const v=a[g];if(v.boundingBox.containsBox(d.boundingBox)&&e(d.interiorPoint,v.points)){d.container=v.exclude?v.container:v,f=v.winding,d.winding+=f;break}}s(d.winding)===s(f)&&(d.exclude=!0)}for(const h of a)h.exclude||(h.role=h.container===null||h.container.role==="hole"?"outer":"hole");const l=[],c=new Map;for(const h of a){if(h.exclude||h.role!=="outer")continue;const d=new fh;d.curves=h.subPath.curves,l.push(d),c.set(h,d)}for(const h of a){if(h.exclude||h.role!=="hole")continue;const d=c.get(h.container);if(!d)continue;const f=new ih;f.curves=h.subPath.curves,d.holes.push(f)}return l}},LI=class extends Wr{constructor(e,t=null){super(),this.object=e,this.domElement=t,this.enabled=!0,this.state=-1,this.keys={},this.mouseButtons={LEFT:null,MIDDLE:null,RIGHT:null},this.touches={ONE:null,TWO:null}}connect(e){if(e===void 0){Ne("Controls: connect() now requires an element.");return}this.domElement!==null&&this.disconnect(),this.domElement=e}disconnect(){}dispose(){}update(){}};function NI(e,t){const n=e.image&&e.image.width?e.image.width/e.image.height:1;return n>t?(e.repeat.x=1,e.repeat.y=n/t,e.offset.x=0,e.offset.y=(1-e.repeat.y)/2):(e.repeat.x=t/n,e.repeat.y=1,e.offset.x=(1-e.repeat.x)/2,e.offset.y=0),e}function DI(e,t){const n=e.image&&e.image.width?e.image.width/e.image.height:1;return n>t?(e.repeat.x=t/n,e.repeat.y=1,e.offset.x=(1-e.repeat.x)/2,e.offset.y=0):(e.repeat.x=1,e.repeat.y=n/t,e.offset.x=0,e.offset.y=(1-e.repeat.y)/2),e}function UI(e){return e.repeat.x=1,e.repeat.y=1,e.offset.x=0,e.offset.y=0,e}function i0(e,t,n,s){const a=OI(s);switch(n){case HM:return e*t;case w0:return e*t/a.components*a.byteLength;case sp:return e*t/a.components*a.byteLength;case ju:return e*t*2/a.components*a.byteLength;case T0:return e*t*2/a.components*a.byteLength;case GM:return e*t*3/a.components*a.byteLength;case Qs:return e*t*4/a.components*a.byteLength;case E0:return e*t*4/a.components*a.byteLength;case WM:case XM:return Math.floor((e+3)/4)*Math.floor((t+3)/4)*8;case qM:case YM:return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16;case ZM:case JM:return Math.max(e,16)*Math.max(t,8)/4;case jM:case $M:return Math.max(e,8)*Math.max(t,8)/2;case KM:case QM:case tw:case nw:return Math.floor((e+3)/4)*Math.floor((t+3)/4)*8;case ew:case iw:case rw:return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16;case sw:return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16;case aw:return Math.floor((e+4)/5)*Math.floor((t+3)/4)*16;case ow:return Math.floor((e+4)/5)*Math.floor((t+4)/5)*16;case lw:return Math.floor((e+5)/6)*Math.floor((t+4)/5)*16;case cw:return Math.floor((e+5)/6)*Math.floor((t+5)/6)*16;case uw:return Math.floor((e+7)/8)*Math.floor((t+4)/5)*16;case hw:return Math.floor((e+7)/8)*Math.floor((t+5)/6)*16;case dw:return Math.floor((e+7)/8)*Math.floor((t+7)/8)*16;case fw:return Math.floor((e+9)/10)*Math.floor((t+4)/5)*16;case pw:return Math.floor((e+9)/10)*Math.floor((t+5)/6)*16;case mw:return Math.floor((e+9)/10)*Math.floor((t+7)/8)*16;case gw:return Math.floor((e+9)/10)*Math.floor((t+9)/10)*16;case vw:return Math.floor((e+11)/12)*Math.floor((t+9)/10)*16;case yw:return Math.floor((e+11)/12)*Math.floor((t+11)/12)*16;case _w:case bw:case xw:return Math.ceil(e/4)*Math.ceil(t/4)*16;case Sw:case Mw:return Math.ceil(e/4)*Math.ceil(t/4)*8;case ww:case Tw:return Math.ceil(e/4)*Math.ceil(t/4)*16}throw new Error(`Unable to determine texture byte length for ${n} format.`)}function OI(e){switch(e){case Zs:case FM:return{byteLength:1,components:1};case _0:case BM:case Ha:return{byteLength:2,components:1};case b0:case x0:return{byteLength:2,components:4};case Js:case zM:case Ks:return{byteLength:4,components:1};case kM:case VM:return{byteLength:4,components:3}}throw new Error(`THREE.TextureUtils: Unknown texture type ${e}.`)}var FI=class{static contain(e,t){return NI(e,t)}static cover(e,t){return DI(e,t)}static fill(e){return UI(e)}static getByteLength(e,t,n,s){return i0(e,t,n,s)}};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"185"}}));typeof window<"u"&&(window.__THREE__?Ne("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="185");var BI=JR({ACESFilmicToneMapping:()=>4,AddEquation:()=>100,AddOperation:()=>2,AdditiveAnimationBlendMode:()=>A0,AdditiveBlending:()=>2,AgXToneMapping:()=>6,AlphaFormat:()=>HM,AlwaysCompare:()=>519,AlwaysDepth:()=>1,AlwaysStencilFunc:()=>519,AmbientLight:()=>gE,AnimationAction:()=>CE,AnimationClip:()=>oh,AnimationLoader:()=>A3,AnimationMixer:()=>rI,AnimationObjectGroup:()=>nI,AnimationUtils:()=>M3,ArcCurve:()=>vT,ArrayCamera:()=>wE,ArrowHelper:()=>RI,AttachedBindMode:()=>OM,Audio:()=>EE,AudioAnalyser:()=>X3,AudioContext:()=>iy,AudioListener:()=>H3,AudioLoader:()=>B3,AxesHelper:()=>PI,BackSide:()=>1,BasicDepthPacking:()=>Cw,BasicShadowMap:()=>0,BatchedMesh:()=>eT,BezierInterpolant:()=>cE,Bone:()=>D0,BooleanKeyframeTrack:()=>Yo,Box2:()=>NE,Box3:()=>Si,Box3Helper:()=>AI,BoxGeometry:()=>dh,BoxHelper:()=>EI,BufferAttribute:()=>an,BufferGeometry:()=>Lt,BufferGeometryLoader:()=>SE,ByteType:()=>FM,Cache:()=>fs,Camera:()=>gp,CameraHelper:()=>TI,CanvasTexture:()=>rT,CapsuleGeometry:()=>oT,CatmullRomCurve3:()=>yT,CineonToneMapping:()=>3,CircleGeometry:()=>cT,ClampToEdgeWrapping:()=>ji,Clock:()=>IE,Color:()=>Xe,ColorKeyframeTrack:()=>K0,ColorManagement:()=>Ht,Compatibility:()=>P2,CompressedArrayTexture:()=>VP,CompressedCubeTexture:()=>HP,CompressedTexture:()=>hp,CompressedTextureLoader:()=>C3,ConeGeometry:()=>B0,ConstantAlphaFactor:()=>213,ConstantColorFactor:()=>211,Controls:()=>LI,CubeCamera:()=>ME,CubeDepthTexture:()=>sT,CubeReflectionMapping:()=>301,CubeRefractionMapping:()=>302,CubeTexture:()=>hh,CubeTextureLoader:()=>R3,CubeUVReflectionMapping:()=>306,CubicBezierCurve:()=>k0,CubicBezierCurve3:()=>_T,CubicInterpolant:()=>oE,CullFaceBack:()=>1,CullFaceFront:()=>2,CullFaceFrontBack:()=>3,CullFaceNone:()=>0,Curve:()=>Xr,CurvePath:()=>xT,CustomBlending:()=>5,CustomToneMapping:()=>5,CylinderGeometry:()=>F0,Cylindrical:()=>dI,Data3DTexture:()=>cp,DataArrayTexture:()=>lp,DataTexture:()=>Sr,DataTextureLoader:()=>P3,DataUtils:()=>fP,DecrementStencilOp:()=>f2,DecrementWrapStencilOp:()=>m2,DefaultLoadingManager:()=>hE,DepthFormat:()=>fc,DepthStencilFormat:()=>M0,DepthTexture:()=>Wo,DetachedBindMode:()=>t2,DirectionalLight:()=>mE,DirectionalLightHelper:()=>wI,DiscreteInterpolant:()=>lE,DodecahedronGeometry:()=>pT,DoubleSide:()=>2,DstAlphaFactor:()=>206,DstColorFactor:()=>208,DynamicCopyUsage:()=>M2,DynamicDrawUsage:()=>v2,DynamicReadUsage:()=>b2,EdgesGeometry:()=>gT,EllipseCurve:()=>dp,EqualCompare:()=>514,EqualDepth:()=>4,EqualStencilFunc:()=>514,EquirectangularReflectionMapping:()=>303,EquirectangularRefractionMapping:()=>304,Euler:()=>ea,EventDispatcher:()=>Wr,ExternalTexture:()=>O0,ExtrudeGeometry:()=>AT,FileLoader:()=>ta,Float16BufferAttribute:()=>bP,Float32BufferAttribute:()=>Ke,FloatType:()=>Ks,Fog:()=>Vw,FogExp2:()=>zw,FramebufferTexture:()=>kP,FrontSide:()=>0,Frustum:()=>Go,FrustumArray:()=>Kw,GLBufferAttribute:()=>uI,GLSL1:()=>"100",GLSL3:()=>T2,GreaterCompare:()=>516,GreaterDepth:()=>6,GreaterEqualCompare:()=>518,GreaterEqualDepth:()=>5,GreaterEqualStencilFunc:()=>518,GreaterStencilFunc:()=>516,GridHelper:()=>SI,Group:()=>uc,HTMLTexture:()=>GP,HalfFloatType:()=>Ha,HemisphereLight:()=>dE,HemisphereLightHelper:()=>xI,IcosahedronGeometry:()=>RT,ImageBitmapLoader:()=>F3,ImageLoader:()=>lh,ImageUtils:()=>Uw,IncrementStencilOp:()=>d2,IncrementWrapStencilOp:()=>p2,InstancedBufferAttribute:()=>gc,InstancedBufferGeometry:()=>xE,InstancedInterleavedBuffer:()=>cI,InstancedMesh:()=>Jw,Int16BufferAttribute:()=>yP,Int32BufferAttribute:()=>_P,Int8BufferAttribute:()=>mP,IntType:()=>zM,InterleavedBuffer:()=>up,InterleavedBufferAttribute:()=>nh,Interpolant:()=>Mc,InterpolateBezier:()=>Zv,InterpolateDiscrete:()=>Zu,InterpolateLinear:()=>Zf,InterpolateSmooth:()=>Hf,InterpolationSamplingMode:()=>R2,InterpolationSamplingType:()=>C2,InvertStencilOp:()=>g2,KeepStencilOp:()=>Gf,KeyframeTrack:()=>Mr,LOD:()=>Yw,LatheGeometry:()=>IT,Layers:()=>mc,LessCompare:()=>513,LessDepth:()=>2,LessEqualCompare:()=>515,LessEqualDepth:()=>3,LessEqualStencilFunc:()=>515,LessStencilFunc:()=>513,Light:()=>Ya,LightProbe:()=>yE,Line:()=>Xa,Line3:()=>gI,LineBasicMaterial:()=>zi,LineCurve:()=>V0,LineCurve3:()=>bT,LineDashedMaterial:()=>rE,LineLoop:()=>tT,LineSegments:()=>ps,LinearFilter:()=>xn,LinearInterpolant:()=>J0,LinearMipMapLinearFilter:()=>s2,LinearMipMapNearestFilter:()=>r2,LinearMipmapLinearFilter:()=>bc,LinearMipmapNearestFilter:()=>y0,LinearSRGBColorSpace:()=>Ju,LinearToneMapping:()=>1,LinearTransfer:()=>Ku,Loader:()=>Zi,LoaderUtils:()=>t0,LoadingManager:()=>ey,LoopOnce:()=>o2,LoopPingPong:()=>Aw,LoopRepeat:()=>Ew,MOUSE:()=>QR,Material:()=>ci,MaterialBlending:()=>6,MaterialLoader:()=>_E,MathUtils:()=>Q2,Matrix2:()=>fI,Matrix3:()=>Et,Matrix4:()=>St,MaxEquation:()=>104,Mesh:()=>Hn,MeshBasicMaterial:()=>qa,MeshDepthMaterial:()=>Z0,MeshDistanceMaterial:()=>$0,MeshLambertMaterial:()=>nE,MeshMatcapMaterial:()=>iE,MeshNormalMaterial:()=>tE,MeshPhongMaterial:()=>QT,MeshPhysicalMaterial:()=>KT,MeshStandardMaterial:()=>j0,MeshToonMaterial:()=>eE,MinEquation:()=>103,MirroredRepeatWrapping:()=>Yu,MixOperation:()=>1,MultiplyBlending:()=>4,MultiplyOperation:()=>0,NearestFilter:()=>qn,NearestMipMapLinearFilter:()=>i2,NearestMipMapNearestFilter:()=>n2,NearestMipmapLinearFilter:()=>v0,NearestMipmapNearestFilter:()=>g0,NeutralToneMapping:()=>7,NeverCompare:()=>512,NeverDepth:()=>0,NeverStencilFunc:()=>512,NoBlending:()=>0,NoColorSpace:()=>"",NoNormalPacking:()=>"",NoToneMapping:()=>0,NormalAnimationBlendMode:()=>ap,NormalBlending:()=>1,NormalGAPacking:()=>"ga",NormalRGPacking:()=>"rg",NotEqualCompare:()=>517,NotEqualDepth:()=>7,NotEqualStencilFunc:()=>517,NumberKeyframeTrack:()=>pp,Object3D:()=>tn,ObjectLoader:()=>U3,ObjectSpaceNormalMap:()=>1,OctahedronGeometry:()=>X0,OneFactor:()=>201,OneMinusConstantAlphaFactor:()=>214,OneMinusConstantColorFactor:()=>212,OneMinusDstAlphaFactor:()=>207,OneMinusDstColorFactor:()=>209,OneMinusSrcAlphaFactor:()=>205,OneMinusSrcColorFactor:()=>203,OrthographicCamera:()=>wc,PCFShadowMap:()=>1,PCFSoftShadowMap:()=>2,PMREMGenerator:()=>r0,Path:()=>ih,PerspectiveCamera:()=>ni,Plane:()=>Oa,PlaneGeometry:()=>fp,PlaneHelper:()=>CI,PointLight:()=>pE,PointLightHelper:()=>_I,Points:()=>nT,PointsMaterial:()=>U0,PolarGridHelper:()=>MI,PolyhedronGeometry:()=>Sc,PositionalAudio:()=>W3,PropertyBinding:()=>ln,PropertyMixer:()=>AE,QuadraticBezierCurve:()=>H0,QuadraticBezierCurve3:()=>G0,Quaternion:()=>Bi,QuaternionKeyframeTrack:()=>mp,QuaternionLinearInterpolant:()=>uE,R11_EAC_Format:()=>tw,RED_GREEN_RGTC2_Format:()=>ww,RED_RGTC1_Format:()=>Sw,REVISION:()=>"185",RG11_EAC_Format:()=>iw,RGBADepthPacking:()=>l2,RGBAFormat:()=>Qs,RGBAIntegerFormat:()=>E0,RGBA_ASTC_10x10_Format:()=>gw,RGBA_ASTC_10x5_Format:()=>fw,RGBA_ASTC_10x6_Format:()=>pw,RGBA_ASTC_10x8_Format:()=>mw,RGBA_ASTC_12x10_Format:()=>vw,RGBA_ASTC_12x12_Format:()=>yw,RGBA_ASTC_4x4_Format:()=>sw,RGBA_ASTC_5x4_Format:()=>aw,RGBA_ASTC_5x5_Format:()=>ow,RGBA_ASTC_6x5_Format:()=>lw,RGBA_ASTC_6x6_Format:()=>cw,RGBA_ASTC_8x5_Format:()=>uw,RGBA_ASTC_8x6_Format:()=>hw,RGBA_ASTC_8x8_Format:()=>dw,RGBA_BPTC_Format:()=>_w,RGBA_ETC2_EAC_Format:()=>ew,RGBA_PVRTC_2BPPV1_Format:()=>JM,RGBA_PVRTC_4BPPV1_Format:()=>$M,RGBA_S3TC_DXT1_Format:()=>XM,RGBA_S3TC_DXT3_Format:()=>qM,RGBA_S3TC_DXT5_Format:()=>YM,RGBDepthPacking:()=>c2,RGBFormat:()=>GM,RGBIntegerFormat:()=>a2,RGB_BPTC_SIGNED_Format:()=>bw,RGB_BPTC_UNSIGNED_Format:()=>xw,RGB_ETC1_Format:()=>KM,RGB_ETC2_Format:()=>QM,RGB_PVRTC_2BPPV1_Format:()=>ZM,RGB_PVRTC_4BPPV1_Format:()=>jM,RGB_S3TC_DXT1_Format:()=>WM,RGDepthPacking:()=>u2,RGFormat:()=>ju,RGIntegerFormat:()=>T0,RawShaderMaterial:()=>Y0,Ray:()=>xc,Raycaster:()=>PE,RectAreaLight:()=>vE,RedFormat:()=>w0,RedIntegerFormat:()=>sp,ReinhardToneMapping:()=>2,RenderTarget:()=>R0,RenderTarget3D:()=>sI,RepeatWrapping:()=>qu,ReplaceStencilOp:()=>h2,ReverseSubtractEquation:()=>102,RingGeometry:()=>UT,SIGNED_R11_EAC_Format:()=>nw,SIGNED_RED_GREEN_RGTC2_Format:()=>Tw,SIGNED_RED_RGTC1_Format:()=>Mw,SIGNED_RG11_EAC_Format:()=>rw,SRGBColorSpace:()=>xi,SRGBTransfer:()=>Qu,Scene:()=>P0,ShaderChunk:()=>Dt,ShaderLib:()=>Gr,ShaderMaterial:()=>cr,ShadowMaterial:()=>ZT,Shape:()=>fh,ShapeGeometry:()=>FT,ShapePath:()=>II,ShapeUtils:()=>js,ShortType:()=>BM,Skeleton:()=>Zw,SkeletonHelper:()=>yI,SkinnedMesh:()=>jw,Source:()=>za,Sphere:()=>li,SphereGeometry:()=>q0,Spherical:()=>hI,SphericalHarmonics3:()=>ny,SplineCurve:()=>W0,SpotLight:()=>fE,SpotLightHelper:()=>vI,Sprite:()=>qw,SpriteMaterial:()=>N0,SrcAlphaFactor:()=>204,SrcAlphaSaturateFactor:()=>210,SrcColorFactor:()=>202,StaticCopyUsage:()=>S2,StaticDrawUsage:()=>op,StaticReadUsage:()=>_2,StereoCamera:()=>z3,StreamCopyUsage:()=>w2,StreamDrawUsage:()=>y2,StreamReadUsage:()=>x2,StringKeyframeTrack:()=>jo,SubtractEquation:()=>101,SubtractiveBlending:()=>3,TOUCH:()=>e2,TangentSpaceNormalMap:()=>0,TetrahedronGeometry:()=>kT,Texture:()=>Zn,TextureLoader:()=>I3,TextureUtils:()=>FI,Timer:()=>TE,TimestampQuery:()=>A2,TorusGeometry:()=>HT,TorusKnotGeometry:()=>WT,Triangle:()=>Fa,TriangleFanDrawMode:()=>2,TriangleStripDrawMode:()=>1,TrianglesDrawMode:()=>0,TubeGeometry:()=>qT,UVMapping:()=>300,Uint16BufferAttribute:()=>I0,Uint32BufferAttribute:()=>L0,Uint8BufferAttribute:()=>gP,Uint8ClampedBufferAttribute:()=>vP,Uniform:()=>aI,UniformsGroup:()=>lI,UniformsLib:()=>Be,UniformsUtils:()=>JT,UnsignedByteType:()=>Zs,UnsignedInt101111Type:()=>VM,UnsignedInt248Type:()=>S0,UnsignedInt5999Type:()=>kM,UnsignedIntType:()=>Js,UnsignedShort4444Type:()=>b0,UnsignedShort5551Type:()=>x0,UnsignedShortType:()=>_0,VSMShadowMap:()=>3,Vector2:()=>ye,Vector3:()=>z,Vector4:()=>cn,VectorKeyframeTrack:()=>Q0,VideoFrameTexture:()=>zP,VideoTexture:()=>iT,WebGL3DRenderTarget:()=>rP,WebGLArrayRenderTarget:()=>iP,WebGLCoordinateSystem:()=>Ga,WebGLCubeRenderTarget:()=>sy,WebGLRenderTarget:()=>lr,WebGLRenderer:()=>GE,WebGLUtils:()=>VE,WebGPUCoordinateSystem:()=>E2,WebXRController:()=>qf,WireframeGeometry:()=>jT,WrapAroundEnding:()=>$u,ZeroCurvatureEnding:()=>Bo,ZeroFactor:()=>200,ZeroSlopeEnding:()=>zo,ZeroStencilOp:()=>0,createCanvasElement:()=>Pw,error:()=>rt,getConsoleFunction:()=>D2,log:()=>th,setConsoleFunction:()=>N2,warn:()=>Ne,warnOnce:()=>Va});function UE(){let e=null,t=!1,n=null,s=null;function a(l,c){n(l,c),s=e.requestAnimationFrame(a)}return{start:function(){t!==!0&&n!==null&&e!==null&&(s=e.requestAnimationFrame(a),t=!0)},stop:function(){e!==null&&e.cancelAnimationFrame(s),t=!1},setAnimationLoop:function(l){n=l},setContext:function(l){e=l}}}function zI(e){const t=new WeakMap;function n(h,d){const f=h.array,g=h.usage,v=f.byteLength,y=e.createBuffer();e.bindBuffer(d,y),e.bufferData(d,f,g),h.onUploadCallback();let _;if(f instanceof Float32Array)_=e.FLOAT;else if(typeof Float16Array<"u"&&f instanceof Float16Array)_=e.HALF_FLOAT;else if(f instanceof Uint16Array)h.isFloat16BufferAttribute?_=e.HALF_FLOAT:_=e.UNSIGNED_SHORT;else if(f instanceof Int16Array)_=e.SHORT;else if(f instanceof Uint32Array)_=e.UNSIGNED_INT;else if(f instanceof Int32Array)_=e.INT;else if(f instanceof Int8Array)_=e.BYTE;else if(f instanceof Uint8Array)_=e.UNSIGNED_BYTE;else if(f instanceof Uint8ClampedArray)_=e.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:y,type:_,bytesPerElement:f.BYTES_PER_ELEMENT,version:h.version,size:v}}function s(h,d,f){const g=d.array,v=d.updateRanges;if(e.bindBuffer(f,h),v.length===0)e.bufferSubData(f,0,g);else{v.sort((_,M)=>_.start-M.start);let y=0;for(let _=1;_ 0 + vec4 plane; + #ifdef ALPHA_TO_COVERAGE + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + if ( clipOpacity == 0.0 ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + float unionClipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + } + #pragma unroll_loop_end + clipOpacity *= 1.0 - unionClipOpacity; + #endif + diffuseColor.a *= clipOpacity; + if ( diffuseColor.a == 0.0 ) discard; + #else + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif + #endif +#endif`,clipping_planes_pars_fragment:`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,clipping_planes_pars_vertex:`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,clipping_planes_vertex:`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,color_fragment:`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#endif`,color_pars_fragment:`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#endif`,color_pars_vertex:`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + varying vec4 vColor; +#endif`,color_vertex:`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + vColor = vec4( 1.0 ); +#endif +#ifdef USE_COLOR_ALPHA + vColor *= color; +#elif defined( USE_COLOR ) + vColor.rgb *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.rgb *= instanceColor.rgb; +#endif +#ifdef USE_BATCHING_COLOR + vColor *= getBatchingColor( getIndirectIndex( gl_DrawID ) ); +#endif`,common:`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +#ifdef USE_ALPHAHASH + varying vec3 vPosition; +#endif +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +#define inverseTransformDirection transformDirectionByInverseViewMatrix +vec3 transformNormalByInverseViewMatrix( in vec3 normal, in mat4 viewMatrix ) { + return normalize( ( vec4( normal, 0.0 ) * viewMatrix ).xyz ); +} +vec3 transformDirectionByInverseViewMatrix( in vec3 dir, in mat4 viewMatrix ) { + return normalize( ( vec4( dir, 0.0 ) * viewMatrix ).xyz ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +} +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} // validated`,cube_uv_reflection_fragment:`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,defaultnormal_vertex:`vec3 transformedNormal = objectNormal; +#ifdef USE_TANGENT + vec3 transformedTangent = objectTangent; +#endif +#ifdef USE_BATCHING + mat3 bm = mat3( batchingMatrix ); + transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); + transformedNormal = bm * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = bm * transformedTangent; + #endif +#endif +#ifdef USE_INSTANCING + mat3 im = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); + transformedNormal = im * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = im * transformedTangent; + #endif +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; +#endif`,displacementmap_pars_vertex:`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,displacementmap_vertex:`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,emissivemap_fragment:`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE + emissiveColor = sRGBTransferEOTF( emissiveColor ); + #endif + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,emissivemap_pars_fragment:`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:`vec4 LinearTransferOETF( in vec4 value ) { + return value; +} +vec4 sRGBTransferEOTF( in vec4 value ) { + return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a ); +} +vec4 sRGBTransferOETF( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +}`,envmap_fragment:`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, envMapRotation * reflectVec ); + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif + #endif +#endif`,envmap_common_pars_fragment:`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform mat3 envMapRotation; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif +#endif`,envmap_pars_fragment:`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,envmap_pars_vertex:`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,envmap_physical_pars_fragment:`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, pow4( roughness ) ) ); + reflectVec = transformDirectionByInverseViewMatrix( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #ifdef USE_ANISOTROPY + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); + return getIBLRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif +#endif`,envmap_vertex:`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = transformNormalByInverseViewMatrix( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,fog_vertex:`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,fog_pars_vertex:`#ifdef USE_FOG + varying float vFogDepth; +#endif`,fog_fragment:`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,fog_pars_fragment:`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,gradientmap_pars_fragment:`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,lightmap_pars_fragment:`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,lights_lambert_fragment:`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,lights_lambert_pars_fragment:`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,lights_pars_begin:`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +#if defined( USE_LIGHT_PROBES ) + uniform vec3 lightProbe[ 9 ]; +#endif +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometryPosition; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometryPosition; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif +#include `,lights_toon_fragment:`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,lights_toon_pars_fragment:`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,lights_phong_fragment:`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,lights_phong_pars_fragment:`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,lights_physical_fragment:`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.diffuseContribution = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +material.metalness = metalnessFactor; +vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef USE_SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULAR_COLORMAP + specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor; + material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = vec3( 0.04 ); + material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_DISPERSION + material.dispersion = dispersion; +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEEN_COLORMAP + material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.0001, 1.0 ); + #ifdef USE_SHEEN_ROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; + #endif +#endif +#ifdef USE_ANISOTROPY + #ifdef USE_ANISOTROPYMAP + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; + #else + vec2 anisotropyV = anisotropyVector; + #endif + material.anisotropy = length( anisotropyV ); + if( material.anisotropy == 0.0 ) { + anisotropyV = vec2( 1.0, 0.0 ); + } else { + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + } + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; + material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; +#endif`,lights_physical_pars_fragment:`uniform sampler2D dfgLUT; +struct PhysicalMaterial { + vec3 diffuseColor; + vec3 diffuseContribution; + vec3 specularColor; + vec3 specularColorBlended; + float roughness; + float metalness; + float specularF90; + float dispersion; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + vec3 iridescenceFresnelDielectric; + vec3 iridescenceFresnelMetallic; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaT; + vec3 anisotropyT; + vec3 anisotropyB; + #endif +}; +vec3 clearcoatSpecularDirect = vec3( 0.0 ); +vec3 clearcoatSpecularIndirect = vec3( 0.0 ); +vec3 sheenSpecularDirect = vec3( 0.0 ); +vec3 sheenSpecularIndirect = vec3(0.0 ); +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +#ifdef USE_ANISOTROPY + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); + } + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + return RECIPROCAL_PI * a2 * pow2 ( w2 ); + } +#endif +#ifdef USE_CLEARCOAT + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); + } +#endif +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 f0 = material.specularColorBlended; + float f90 = material.specularF90; + float roughness = material.roughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + #ifdef USE_IRIDESCENCE + F = mix( F, material.iridescenceFresnel, material.iridescence ); + #endif + #ifdef USE_ANISOTROPY + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); + #else + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + #endif + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transpose( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float rInv = 1.0 / ( roughness + 0.1 ); + float a = -1.9362 + 1.0678 * roughness + 0.4573 * r2 - 0.8469 * rInv; + float b = -0.6014 + 0.5538 * roughness - 0.4670 * r2 - 0.1255 * rInv; + float DG = exp( a * dotNV + b ); + return saturate( DG ); +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg; + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + float dotNV = saturate( dot( normal, viewDir ) ); + vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg; + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +vec3 BRDF_GGX_Multiscatter( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 singleScatter = BRDF_GGX( lightDir, viewDir, normal, material ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + vec2 dfgV = texture2D( dfgLUT, vec2( material.roughness, dotNV ) ).rg; + vec2 dfgL = texture2D( dfgLUT, vec2( material.roughness, dotNL ) ).rg; + vec3 FssEss_V = material.specularColorBlended * dfgV.x + material.specularF90 * dfgV.y; + vec3 FssEss_L = material.specularColorBlended * dfgL.x + material.specularF90 * dfgL.y; + float Ess_V = dfgV.x + dfgV.y; + float Ess_L = dfgL.x + dfgL.y; + float Ems_V = 1.0 - Ess_V; + float Ems_L = 1.0 - Ess_L; + vec3 Favg = material.specularColorBlended + ( 1.0 - material.specularColorBlended ) * 0.047619; + vec3 Fms = FssEss_V * FssEss_L * Favg / ( 1.0 - Ems_V * Ems_L * Favg + EPSILON ); + float compensationFactor = Ems_V * Ems_L; + vec3 multiScatter = Fms * compensationFactor; + return singleScatter + multiScatter; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometryNormal; + vec3 viewDir = geometryViewDir; + vec3 position = geometryPosition; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColorBlended * t2.x + ( material.specularF90 - material.specularColorBlended ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseContribution * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + #ifdef USE_CLEARCOAT + vec3 Ncc = geometryClearcoatNormal; + vec2 uvClearcoat = LTC_Uv( Ncc, viewDir, material.clearcoatRoughness ); + vec4 t1Clearcoat = texture2D( ltc_1, uvClearcoat ); + vec4 t2Clearcoat = texture2D( ltc_2, uvClearcoat ); + mat3 mInvClearcoat = mat3( + vec3( t1Clearcoat.x, 0, t1Clearcoat.y ), + vec3( 0, 1, 0 ), + vec3( t1Clearcoat.z, 0, t1Clearcoat.w ) + ); + vec3 fresnelClearcoat = material.clearcoatF0 * t2Clearcoat.x + ( material.clearcoatF90 - material.clearcoatF0 ) * t2Clearcoat.y; + clearcoatSpecularDirect += lightColor * fresnelClearcoat * LTC_Evaluate( Ncc, viewDir, position, mInvClearcoat, rectCoords ); + #endif + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); + #endif + #ifdef USE_SHEEN + + sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + + float sheenAlbedoV = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + float sheenAlbedoL = IBLSheenBRDF( geometryNormal, directLight.direction, material.sheenRoughness ); + + float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * max( sheenAlbedoV, sheenAlbedoL ); + + irradiance *= sheenEnergyComp; + + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX_Multiscatter( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseContribution ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 diffuse = irradiance * BRDF_Lambert( material.diffuseContribution ); + #ifdef USE_SHEEN + float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo; + diffuse *= sheenEnergyComp; + #endif + reflectedLight.indirectDiffuse += diffuse; +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ) * RECIPROCAL_PI; + #endif + vec3 singleScatteringDielectric = vec3( 0.0 ); + vec3 multiScatteringDielectric = vec3( 0.0 ); + vec3 singleScatteringMetallic = vec3( 0.0 ); + vec3 multiScatteringMetallic = vec3( 0.0 ); + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnelDielectric, material.roughness, singleScatteringDielectric, multiScatteringDielectric ); + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.diffuseColor, material.specularF90, material.iridescence, material.iridescenceFresnelMetallic, material.roughness, singleScatteringMetallic, multiScatteringMetallic ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScatteringDielectric, multiScatteringDielectric ); + computeMultiscattering( geometryNormal, geometryViewDir, material.diffuseColor, material.specularF90, material.roughness, singleScatteringMetallic, multiScatteringMetallic ); + #endif + vec3 singleScattering = mix( singleScatteringDielectric, singleScatteringMetallic, material.metalness ); + vec3 multiScattering = mix( multiScatteringDielectric, multiScatteringMetallic, material.metalness ); + vec3 totalScatteringDielectric = singleScatteringDielectric + multiScatteringDielectric; + vec3 diffuse = material.diffuseContribution * ( 1.0 - totalScatteringDielectric ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + vec3 indirectSpecular = radiance * singleScattering; + indirectSpecular += multiScattering * cosineWeightedIrradiance; + vec3 indirectDiffuse = diffuse * cosineWeightedIrradiance; + #ifdef USE_SHEEN + float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo; + indirectSpecular *= sheenEnergyComp; + indirectDiffuse *= sheenEnergyComp; + #endif + reflectedLight.indirectSpecular += indirectSpecular; + reflectedLight.indirectDiffuse += indirectDiffuse; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,lights_fragment_begin:` +vec3 geometryPosition = - vViewPosition; +vec3 geometryNormal = normal; +vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +vec3 geometryClearcoatNormal = vec3( 0.0 ); +#ifdef USE_CLEARCOAT + geometryClearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometryViewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnelDielectric = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceFresnelMetallic = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.diffuseColor ); + material.iridescenceFresnel = mix( material.iridescenceFresnelDielectric, material.iridescenceFresnelMetallic, material.metalness ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometryPosition, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometryPosition, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + #if defined( USE_LIGHT_PROBES ) + irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); + #endif + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); + } + #pragma unroll_loop_end + #endif + #ifdef USE_LIGHT_PROBES_GRID + vec3 probeWorldPos = ( ( vec4( geometryPosition, 1.0 ) - viewMatrix[ 3 ] ) * viewMatrix ).xyz; + vec3 probeWorldNormal = transformNormalByInverseViewMatrix( geometryNormal, viewMatrix ); + irradiance += getLightProbeGridIrradiance( probeWorldPos, probeWorldNormal ); + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,lights_fragment_maps:`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( ENVMAP_TYPE_CUBE_UV ) + #if defined( STANDARD ) || defined( LAMBERT ) || defined( PHONG ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,lights_fragment_end:`#if defined( RE_IndirectDiffuse ) + #if defined( LAMBERT ) || defined( PHONG ) + irradiance += iblIrradiance; + #endif + RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif`,lightprobes_pars_fragment:`#ifdef USE_LIGHT_PROBES_GRID +uniform highp sampler3D probesSH; +uniform vec3 probesMin; +uniform vec3 probesMax; +uniform vec3 probesResolution; +vec3 getLightProbeGridIrradiance( vec3 worldPos, vec3 worldNormal ) { + vec3 res = probesResolution; + vec3 gridRange = probesMax - probesMin; + vec3 resMinusOne = res - 1.0; + vec3 probeSpacing = gridRange / resMinusOne; + vec3 samplePos = worldPos + worldNormal * probeSpacing * 0.5; + vec3 uvw = clamp( ( samplePos - probesMin ) / gridRange, 0.0, 1.0 ); + uvw = uvw * resMinusOne / res + 0.5 / res; + float nz = res.z; + float paddedSlices = nz + 2.0; + float atlasDepth = 7.0 * paddedSlices; + float uvZBase = uvw.z * nz + 1.0; + vec4 s0 = texture( probesSH, vec3( uvw.xy, ( uvZBase ) / atlasDepth ) ); + vec4 s1 = texture( probesSH, vec3( uvw.xy, ( uvZBase + paddedSlices ) / atlasDepth ) ); + vec4 s2 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 2.0 * paddedSlices ) / atlasDepth ) ); + vec4 s3 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 3.0 * paddedSlices ) / atlasDepth ) ); + vec4 s4 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 4.0 * paddedSlices ) / atlasDepth ) ); + vec4 s5 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 5.0 * paddedSlices ) / atlasDepth ) ); + vec4 s6 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 6.0 * paddedSlices ) / atlasDepth ) ); + vec3 c0 = s0.xyz; + vec3 c1 = vec3( s0.w, s1.xy ); + vec3 c2 = vec3( s1.zw, s2.x ); + vec3 c3 = s2.yzw; + vec3 c4 = s3.xyz; + vec3 c5 = vec3( s3.w, s4.xy ); + vec3 c6 = vec3( s4.zw, s5.x ); + vec3 c7 = s5.yzw; + vec3 c8 = s6.xyz; + float x = worldNormal.x, y = worldNormal.y, z = worldNormal.z; + vec3 result = c0 * 0.886227; + result += c1 * 2.0 * 0.511664 * y; + result += c2 * 2.0 * 0.511664 * z; + result += c3 * 2.0 * 0.511664 * x; + result += c4 * 2.0 * 0.429043 * x * y; + result += c5 * 2.0 * 0.429043 * y * z; + result += c6 * ( 0.743125 * z * z - 0.247708 ); + result += c7 * 2.0 * 0.429043 * x * z; + result += c8 * 0.429043 * ( x * x - y * y ); + return max( result, vec3( 0.0 ) ); +} +#endif`,logdepthbuf_fragment:`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) + gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,logdepthbuf_pars_fragment:`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,logdepthbuf_pars_vertex:`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER + varying float vFragDepth; + varying float vIsPerspective; +#endif`,logdepthbuf_vertex:`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); +#endif`,map_fragment:`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,map_pars_fragment:`#ifdef USE_MAP + uniform sampler2D map; +#endif`,map_particle_fragment:`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + #if defined( USE_POINTS_UV ) + vec2 uv = vUv; + #else + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; + #endif +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,map_particle_pars_fragment:`#if defined( USE_POINTS_UV ) + varying vec2 vUv; +#else + #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; + #endif +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,metalnessmap_fragment:`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,metalnessmap_pars_fragment:`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,morphinstance_vertex:`#ifdef USE_INSTANCING_MORPH + float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r; + } +#endif`,morphcolor_vertex:`#if defined( USE_MORPHCOLORS ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,morphnormal_vertex:`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } +#endif`,morphtarget_pars_vertex:`#ifdef USE_MORPHTARGETS + #ifndef USE_INSTANCING_MORPH + uniform float morphTargetBaseInfluence; + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + #endif + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } +#endif`,morphtarget_vertex:`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } +#endif`,normal_fragment_begin:`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal *= faceDirection; + #endif +#endif +#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #ifdef USE_TANGENT + mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn = getTangentFrame( - vViewPosition, normal, + #if defined( USE_NORMALMAP ) + vNormalMapUv + #elif defined( USE_CLEARCOAT_NORMALMAP ) + vClearcoatNormalMapUv + #else + vUv + #endif + ); + #endif + #ifdef DOUBLE_SIDED + tbn[0] *= faceDirection; + tbn[1] *= faceDirection; + #endif +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + #ifdef USE_TANGENT + mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); + #endif + #ifdef DOUBLE_SIDED + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,normal_fragment_maps:`#ifdef USE_NORMALMAP_OBJECTSPACE + normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( USE_NORMALMAP_TANGENTSPACE ) + vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #if defined( USE_PACKED_NORMALMAP ) + mapN = vec3( mapN.xy, sqrt( saturate( 1.0 - dot( mapN.xy, mapN.xy ) ) ) ); + #endif + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,normal_pars_fragment:`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,normal_pars_vertex:`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,normal_vertex:`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #ifdef FLIP_SIDED + vBitangent = - vBitangent; + #endif + #endif +#endif`,normalmap_pars_fragment:`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef USE_NORMALMAP_OBJECTSPACE + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) + mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( uv.st ); + vec2 st1 = dFdy( uv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); + return mat3( T * scale, B * scale, N ); + } +#endif`,clearcoat_normal_fragment_begin:`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,clearcoat_normal_fragment_maps:`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,clearcoat_pars_fragment:`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif`,iridescence_pars_fragment:`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,opaque_fragment:`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,packing:`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.; +const float Inv255 = 1. / 255.; +const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 ); +const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g ); +const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b ); +const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a ); +vec4 packDepthToRGBA( const in float v ) { + if( v <= 0.0 ) + return vec4( 0., 0., 0., 0. ); + if( v >= 1.0 ) + return vec4( 1., 1., 1., 1. ); + float vuf; + float af = modf( v * PackFactors.a, vuf ); + float bf = modf( vuf * ShiftRight8, vuf ); + float gf = modf( vuf * ShiftRight8, vuf ); + return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af ); +} +vec3 packDepthToRGB( const in float v ) { + if( v <= 0.0 ) + return vec3( 0., 0., 0. ); + if( v >= 1.0 ) + return vec3( 1., 1., 1. ); + float vuf; + float bf = modf( v * PackFactors.b, vuf ); + float gf = modf( vuf * ShiftRight8, vuf ); + return vec3( vuf * Inv255, gf * PackUpscale, bf ); +} +vec2 packDepthToRG( const in float v ) { + if( v <= 0.0 ) + return vec2( 0., 0. ); + if( v >= 1.0 ) + return vec2( 1., 1. ); + float vuf; + float gf = modf( v * 256., vuf ); + return vec2( vuf * Inv255, gf ); +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors4 ); +} +float unpackRGBToDepth( const in vec3 v ) { + return dot( v, UnpackFactors3 ); +} +float unpackRGToDepth( const in vec2 v ) { + return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g; +} +vec4 pack2HalfToRGBA( const in vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( const in vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { + #ifdef USE_REVERSED_DEPTH_BUFFER + + return depth * ( far - near ) - far; + #else + return depth * ( near - far ) - near; + #endif +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { + + #ifdef USE_REVERSED_DEPTH_BUFFER + return ( near * far ) / ( ( near - far ) * depth - near ); + #else + return ( near * far ) / ( ( far - near ) * depth - far ); + #endif +}`,premultiplied_alpha_fragment:`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,project_vertex:`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_BATCHING + mvPosition = batchingMatrix * mvPosition; +#endif +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,dithering_fragment:`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,dithering_pars_fragment:`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,roughnessmap_fragment:`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,roughnessmap_pars_fragment:`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,shadowmap_pars_fragment:`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + #if defined( SHADOWMAP_TYPE_PCF ) + uniform sampler2DShadow directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + #else + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + #if defined( SHADOWMAP_TYPE_PCF ) + uniform sampler2DShadow spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + #else + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + struct SpotLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #if defined( SHADOWMAP_TYPE_PCF ) + uniform samplerCubeShadow pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + #elif defined( SHADOWMAP_TYPE_BASIC ) + uniform samplerCube pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + #if defined( SHADOWMAP_TYPE_PCF ) + float interleavedGradientNoise( vec2 position ) { + return fract( 52.9829189 * fract( dot( position, vec2( 0.06711056, 0.00583715 ) ) ) ); + } + vec2 vogelDiskSample( int sampleIndex, int samplesCount, float phi ) { + const float goldenAngle = 2.399963229728653; + float r = sqrt( ( float( sampleIndex ) + 0.5 ) / float( samplesCount ) ); + float theta = float( sampleIndex ) * goldenAngle + phi; + return vec2( cos( theta ), sin( theta ) ) * r; + } + #endif + #if defined( SHADOWMAP_TYPE_PCF ) + float getShadow( sampler2DShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float radius = shadowRadius * texelSize.x; + float phi = interleavedGradientNoise( gl_FragCoord.xy ) * PI2; + shadow = ( + texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 0, 5, phi ) * radius, shadowCoord.z ) ) + + texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 1, 5, phi ) * radius, shadowCoord.z ) ) + + texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 2, 5, phi ) * radius, shadowCoord.z ) ) + + texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 3, 5, phi ) * radius, shadowCoord.z ) ) + + texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 4, 5, phi ) * radius, shadowCoord.z ) ) + ) * 0.2; + } + return mix( 1.0, shadow, shadowIntensity ); + } + #elif defined( SHADOWMAP_TYPE_VSM ) + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + #ifdef USE_REVERSED_DEPTH_BUFFER + shadowCoord.z -= shadowBias; + #else + shadowCoord.z += shadowBias; + #endif + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + vec2 distribution = texture2D( shadowMap, shadowCoord.xy ).rg; + float mean = distribution.x; + float variance = distribution.y * distribution.y; + #ifdef USE_REVERSED_DEPTH_BUFFER + float hard_shadow = step( mean, shadowCoord.z ); + #else + float hard_shadow = step( shadowCoord.z, mean ); + #endif + + if ( hard_shadow == 1.0 ) { + shadow = 1.0; + } else { + variance = max( variance, 0.0000001 ); + float d = shadowCoord.z - mean; + float p_max = variance / ( variance + d * d ); + p_max = clamp( ( p_max - 0.3 ) / 0.65, 0.0, 1.0 ); + shadow = max( hard_shadow, p_max ); + } + } + return mix( 1.0, shadow, shadowIntensity ); + } + #else + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + #ifdef USE_REVERSED_DEPTH_BUFFER + shadowCoord.z -= shadowBias; + #else + shadowCoord.z += shadowBias; + #endif + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + float depth = texture2D( shadowMap, shadowCoord.xy ).r; + #ifdef USE_REVERSED_DEPTH_BUFFER + shadow = step( depth, shadowCoord.z ); + #else + shadow = step( shadowCoord.z, depth ); + #endif + } + return mix( 1.0, shadow, shadowIntensity ); + } + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #if defined( SHADOWMAP_TYPE_PCF ) + float getPointShadow( samplerCubeShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + float shadow = 1.0; + vec3 lightToPosition = shadowCoord.xyz; + vec3 bd3D = normalize( lightToPosition ); + vec3 absVec = abs( lightToPosition ); + float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z ); + if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) { + #ifdef USE_REVERSED_DEPTH_BUFFER + float dp = ( shadowCameraNear * ( shadowCameraFar - viewSpaceZ ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); + dp -= shadowBias; + #else + float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); + dp += shadowBias; + #endif + float texelSize = shadowRadius / shadowMapSize.x; + vec3 absDir = abs( bd3D ); + vec3 tangent = absDir.x > absDir.z ? vec3( 0.0, 1.0, 0.0 ) : vec3( 1.0, 0.0, 0.0 ); + tangent = normalize( cross( bd3D, tangent ) ); + vec3 bitangent = cross( bd3D, tangent ); + float phi = interleavedGradientNoise( gl_FragCoord.xy ) * PI2; + vec2 sample0 = vogelDiskSample( 0, 5, phi ); + vec2 sample1 = vogelDiskSample( 1, 5, phi ); + vec2 sample2 = vogelDiskSample( 2, 5, phi ); + vec2 sample3 = vogelDiskSample( 3, 5, phi ); + vec2 sample4 = vogelDiskSample( 4, 5, phi ); + shadow = ( + texture( shadowMap, vec4( bd3D + ( tangent * sample0.x + bitangent * sample0.y ) * texelSize, dp ) ) + + texture( shadowMap, vec4( bd3D + ( tangent * sample1.x + bitangent * sample1.y ) * texelSize, dp ) ) + + texture( shadowMap, vec4( bd3D + ( tangent * sample2.x + bitangent * sample2.y ) * texelSize, dp ) ) + + texture( shadowMap, vec4( bd3D + ( tangent * sample3.x + bitangent * sample3.y ) * texelSize, dp ) ) + + texture( shadowMap, vec4( bd3D + ( tangent * sample4.x + bitangent * sample4.y ) * texelSize, dp ) ) + ) * 0.2; + } + return mix( 1.0, shadow, shadowIntensity ); + } + #elif defined( SHADOWMAP_TYPE_BASIC ) + float getPointShadow( samplerCube shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + float shadow = 1.0; + vec3 lightToPosition = shadowCoord.xyz; + vec3 absVec = abs( lightToPosition ); + float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z ); + if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) { + float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); + dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + float depth = textureCube( shadowMap, bd3D ).r; + #ifdef USE_REVERSED_DEPTH_BUFFER + depth = 1.0 - depth; + #endif + shadow = step( dp, depth ); + } + return mix( 1.0, shadow, shadowIntensity ); + } + #endif + #endif +#endif`,shadowmap_pars_vertex:`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,shadowmap_vertex:`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + #ifdef HAS_NORMAL + vec3 shadowWorldNormal = transformNormalByInverseViewMatrix( transformedNormal, viewMatrix ); + #else + vec3 shadowWorldNormal = vec3( 0.0 ); + #endif + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,shadowmask_pars_fragment:`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) ) + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,skinbase_vertex:`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,skinning_pars_vertex:`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + mat4 getBoneMatrix( const in float i ) { + int size = textureSize( boneTexture, 0 ).x; + int j = int( i ) * 4; + int x = j % size; + int y = j / size; + vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); + vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); + vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); + vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); + return mat4( v1, v2, v3, v4 ); + } +#endif`,skinning_vertex:`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,skinnormal_vertex:`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,specularmap_fragment:`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,specularmap_pars_fragment:`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,tonemapping_fragment:`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,tonemapping_pars_fragment:`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return saturate( toneMappingExposure * color ); +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 CineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( + vec3( 1.6605, - 0.1246, - 0.0182 ), + vec3( - 0.5876, 1.1329, - 0.1006 ), + vec3( - 0.0728, - 0.0083, 1.1187 ) +); +const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( + vec3( 0.6274, 0.0691, 0.0164 ), + vec3( 0.3293, 0.9195, 0.0880 ), + vec3( 0.0433, 0.0113, 0.8956 ) +); +vec3 agxDefaultContrastApprox( vec3 x ) { + vec3 x2 = x * x; + vec3 x4 = x2 * x2; + return + 15.5 * x4 * x2 + - 40.14 * x4 * x + + 31.96 * x4 + - 6.868 * x2 * x + + 0.4298 * x2 + + 0.1191 * x + - 0.00232; +} +vec3 AgXToneMapping( vec3 color ) { + const mat3 AgXInsetMatrix = mat3( + vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), + vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), + vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) + ); + const mat3 AgXOutsetMatrix = mat3( + vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), + vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), + vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) + ); + const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; + color *= toneMappingExposure; + color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; + color = AgXInsetMatrix * color; + color = max( color, 1e-10 ); color = log2( color ); + color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); + color = clamp( color, 0.0, 1.0 ); + color = agxDefaultContrastApprox( color ); + color = AgXOutsetMatrix * color; + color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); + color = LINEAR_REC2020_TO_LINEAR_SRGB * color; + color = clamp( color, 0.0, 1.0 ); + return color; +} +vec3 NeutralToneMapping( vec3 color ) { + const float StartCompression = 0.8 - 0.04; + const float Desaturation = 0.15; + color *= toneMappingExposure; + float x = min( color.r, min( color.g, color.b ) ); + float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; + color -= offset; + float peak = max( color.r, max( color.g, color.b ) ); + if ( peak < StartCompression ) return color; + float d = 1. - StartCompression; + float newPeak = 1. - d * d / ( peak + d - StartCompression ); + color *= newPeak / peak; + float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. ); + return mix( color, vec3( newPeak ), g ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,transmission_fragment:`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = transformNormalByInverseViewMatrix( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseContribution, material.specularColorBlended, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); +#endif`,transmission_pars_fragment:`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + float w0( float a ) { + return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); + } + float w1( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); + } + float w2( float a ){ + return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); + } + float w3( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * a ); + } + float g0( float a ) { + return w0( a ) + w1( a ); + } + float g1( float a ) { + return w2( a ) + w3( a ); + } + float h0( float a ) { + return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); + } + float h1( float a ) { + return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); + } + vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { + uv = uv * texelSize.zw + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + float g0x = g0( fuv.x ); + float g1x = g1( fuv.x ); + float h0x = h0( fuv.x ); + float h1x = h1( fuv.x ); + float h0y = h0( fuv.y ); + float h1y = h1( fuv.y ); + vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); + } + vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { + vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); + vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); + vec2 fLodSizeInv = 1.0 / fLodSize; + vec2 cLodSizeInv = 1.0 / cLodSize; + vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); + vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); + return mix( fSample, cSample, fract( lod ) ); + } + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); + } + vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return vec3( 1.0 ); + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec4 transmittedLight; + vec3 transmittance; + #ifdef USE_DISPERSION + float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion; + vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread ); + for ( int i = 0; i < 3; i ++ ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] ); + transmittedLight[ i ] = transmissionSample[ i ]; + transmittedLight.a += transmissionSample.a; + transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ]; + } + transmittedLight.a /= 3.0; + #else + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); + #endif + vec3 attenuatedColor = transmittance * transmittedLight.rgb; + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; + return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); + } +#endif`,uv_pars_fragment:`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + varying vec2 vNormalMapUv; +#endif +#ifdef USE_EMISSIVEMAP + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_SPECULARMAP + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,uv_pars_vertex:`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + uniform mat3 mapTransform; + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + uniform mat3 alphaMapTransform; + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + uniform mat3 lightMapTransform; + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + uniform mat3 aoMapTransform; + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + uniform mat3 bumpMapTransform; + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + uniform mat3 normalMapTransform; + varying vec2 vNormalMapUv; +#endif +#ifdef USE_DISPLACEMENTMAP + uniform mat3 displacementMapTransform; + varying vec2 vDisplacementMapUv; +#endif +#ifdef USE_EMISSIVEMAP + uniform mat3 emissiveMapTransform; + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + uniform mat3 metalnessMapTransform; + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + uniform mat3 roughnessMapTransform; + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + uniform mat3 anisotropyMapTransform; + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + uniform mat3 clearcoatMapTransform; + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform mat3 clearcoatNormalMapTransform; + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform mat3 clearcoatRoughnessMapTransform; + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + uniform mat3 sheenColorMapTransform; + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + uniform mat3 sheenRoughnessMapTransform; + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + uniform mat3 iridescenceMapTransform; + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform mat3 iridescenceThicknessMapTransform; + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SPECULARMAP + uniform mat3 specularMapTransform; + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + uniform mat3 specularColorMapTransform; + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + uniform mat3 specularIntensityMapTransform; + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,uv_vertex:`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + vUv = vec3( uv, 1 ).xy; +#endif +#ifdef USE_MAP + vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ALPHAMAP + vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_LIGHTMAP + vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_AOMAP + vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_BUMPMAP + vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_NORMALMAP + vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_DISPLACEMENTMAP + vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_EMISSIVEMAP + vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_METALNESSMAP + vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ROUGHNESSMAP + vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ANISOTROPYMAP + vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOATMAP + vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCEMAP + vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_COLORMAP + vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULARMAP + vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_COLORMAP + vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_TRANSMISSIONMAP + vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_THICKNESSMAP + vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; +#endif`,worldpos_vertex:`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_BATCHING + worldPosition = batchingMatrix * worldPosition; + #endif + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`,background_vert:`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,background_frag:`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,backgroundCube_vert:`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,backgroundCube_frag:`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +uniform mat3 backgroundRotation; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, backgroundRotation * vWorldDirection ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,cube_vert:`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,cube_frag:`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,depth_vert:`#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,depth_frag:`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + #include + #ifdef USE_REVERSED_DEPTH_BUFFER + float fragCoordZ = vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ]; + #else + float fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ] + 0.5; + #endif + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #elif DEPTH_PACKING == 3202 + gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 ); + #elif DEPTH_PACKING == 3203 + gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 ); + #endif +}`,distance_vert:`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,distance_frag:`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = vec4( dist, 0.0, 0.0, 1.0 ); +}`,equirect_vert:`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,equirect_frag:`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,linedashed_vert:`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,linedashed_frag:`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,meshbasic_vert:`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,meshbasic_frag:`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,meshlambert_vert:`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,meshlambert_frag:`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,meshmatcap_vert:`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,meshmatcap_frag:`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,meshnormal_vert:`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + vViewPosition = - mvPosition.xyz; +#endif +}`,meshnormal_frag:`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( normalize( normal ) * 0.5 + 0.5, diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,meshphong_vert:`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,meshphong_frag:`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,meshphysical_vert:`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,meshphysical_frag:`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define USE_SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef USE_SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULAR_COLORMAP + uniform sampler2D specularColorMap; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_DISPERSION + uniform float dispersion; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEEN_COLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEEN_ROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropyVector; + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + + outgoingLight = outgoingLight + sheenSpecularDirect + sheenSpecularIndirect; + + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,meshtoon_vert:`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,meshtoon_frag:`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,points_vert:`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +#ifdef USE_POINTS_UV + varying vec2 vUv; + uniform mat3 uvTransform; +#endif +void main() { + #ifdef USE_POINTS_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + #endif + #include + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,points_frag:`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,shadow_vert:`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,shadow_frag:`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include + #include +}`,sprite_vert:`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix[ 3 ]; + vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,sprite_frag:`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`},Be={common:{diffuse:{value:new Xe(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Et},alphaMap:{value:null},alphaMapTransform:{value:new Et},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Et}},envmap:{envMap:{value:null},envMapRotation:{value:new Et},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},dfgLUT:{value:null}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Et}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Et}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Et},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Et},normalScale:{value:new ye(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Et},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Et}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Et}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Et}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Xe(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null},probesSH:{value:null},probesMin:{value:new z},probesMax:{value:new z},probesResolution:{value:new z}},points:{diffuse:{value:new Xe(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Et},alphaTest:{value:0},uvTransform:{value:new Et}},sprite:{diffuse:{value:new Xe(16777215)},opacity:{value:1},center:{value:new ye(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Et},alphaMap:{value:null},alphaMapTransform:{value:new Et},alphaTest:{value:0}}},Gr={basic:{uniforms:Ui([Be.common,Be.specularmap,Be.envmap,Be.aomap,Be.lightmap,Be.fog]),vertexShader:Dt.meshbasic_vert,fragmentShader:Dt.meshbasic_frag},lambert:{uniforms:Ui([Be.common,Be.specularmap,Be.envmap,Be.aomap,Be.lightmap,Be.emissivemap,Be.bumpmap,Be.normalmap,Be.displacementmap,Be.fog,Be.lights,{emissive:{value:new Xe(0)},envMapIntensity:{value:1}}]),vertexShader:Dt.meshlambert_vert,fragmentShader:Dt.meshlambert_frag},phong:{uniforms:Ui([Be.common,Be.specularmap,Be.envmap,Be.aomap,Be.lightmap,Be.emissivemap,Be.bumpmap,Be.normalmap,Be.displacementmap,Be.fog,Be.lights,{emissive:{value:new Xe(0)},specular:{value:new Xe(1118481)},shininess:{value:30},envMapIntensity:{value:1}}]),vertexShader:Dt.meshphong_vert,fragmentShader:Dt.meshphong_frag},standard:{uniforms:Ui([Be.common,Be.envmap,Be.aomap,Be.lightmap,Be.emissivemap,Be.bumpmap,Be.normalmap,Be.displacementmap,Be.roughnessmap,Be.metalnessmap,Be.fog,Be.lights,{emissive:{value:new Xe(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Dt.meshphysical_vert,fragmentShader:Dt.meshphysical_frag},toon:{uniforms:Ui([Be.common,Be.aomap,Be.lightmap,Be.emissivemap,Be.bumpmap,Be.normalmap,Be.displacementmap,Be.gradientmap,Be.fog,Be.lights,{emissive:{value:new Xe(0)}}]),vertexShader:Dt.meshtoon_vert,fragmentShader:Dt.meshtoon_frag},matcap:{uniforms:Ui([Be.common,Be.bumpmap,Be.normalmap,Be.displacementmap,Be.fog,{matcap:{value:null}}]),vertexShader:Dt.meshmatcap_vert,fragmentShader:Dt.meshmatcap_frag},points:{uniforms:Ui([Be.points,Be.fog]),vertexShader:Dt.points_vert,fragmentShader:Dt.points_frag},dashed:{uniforms:Ui([Be.common,Be.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Dt.linedashed_vert,fragmentShader:Dt.linedashed_frag},depth:{uniforms:Ui([Be.common,Be.displacementmap]),vertexShader:Dt.depth_vert,fragmentShader:Dt.depth_frag},normal:{uniforms:Ui([Be.common,Be.bumpmap,Be.normalmap,Be.displacementmap,{opacity:{value:1}}]),vertexShader:Dt.meshnormal_vert,fragmentShader:Dt.meshnormal_frag},sprite:{uniforms:Ui([Be.sprite,Be.fog]),vertexShader:Dt.sprite_vert,fragmentShader:Dt.sprite_frag},background:{uniforms:{uvTransform:{value:new Et},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Dt.background_vert,fragmentShader:Dt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Et}},vertexShader:Dt.backgroundCube_vert,fragmentShader:Dt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Dt.cube_vert,fragmentShader:Dt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Dt.equirect_vert,fragmentShader:Dt.equirect_frag},distance:{uniforms:Ui([Be.common,Be.displacementmap,{referencePosition:{value:new z},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Dt.distance_vert,fragmentShader:Dt.distance_frag},shadow:{uniforms:Ui([Be.lights,Be.fog,{color:{value:new Xe(0)},opacity:{value:1}}]),vertexShader:Dt.shadow_vert,fragmentShader:Dt.shadow_frag}};Gr.physical={uniforms:Ui([Gr.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Et},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Et},clearcoatNormalScale:{value:new ye(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Et},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Et},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Et},sheen:{value:0},sheenColor:{value:new Xe(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Et},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Et},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Et},transmissionSamplerSize:{value:new ye},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Et},attenuationDistance:{value:0},attenuationColor:{value:new Xe(0)},specularColor:{value:new Xe(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Et},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Et},anisotropyVector:{value:new ye},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Et}}]),vertexShader:Dt.meshphysical_vert,fragmentShader:Dt.meshphysical_frag};var zf={r:0,b:0,g:0},kI=new St,OE=new Et;OE.set(-1,0,0,0,1,0,0,0,1);function VI(e,t,n,s,a,l){const c=new Xe(0);let h=a===!0?0:1,d,f,g=null,v=0,y=null;function _(C){let R=C.isScene===!0?C.background:null;if(R&&R.isTexture){const w=C.backgroundBlurriness>0;R=t.get(R,w)}return R}function M(C){let R=!1;const w=_(C);w===null?S(c,h):w&&w.isColor&&(S(w,1),R=!0);const L=e.xr.getEnvironmentBlendMode();L==="additive"?n.buffers.color.setClear(0,0,0,1,l):L==="alpha-blend"&&n.buffers.color.setClear(0,0,0,0,l),(e.autoClear||R)&&(n.buffers.depth.setTest(!0),n.buffers.depth.setMask(!0),n.buffers.color.setMask(!0),e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil))}function T(C,R){const w=_(R);w&&(w.isCubeTexture||w.mapping===306)?(f===void 0&&(f=new Hn(new dh(1,1,1),new cr({name:"BackgroundCubeMaterial",uniforms:yc(Gr.backgroundCube.uniforms),vertexShader:Gr.backgroundCube.vertexShader,fragmentShader:Gr.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),f.geometry.deleteAttribute("normal"),f.geometry.deleteAttribute("uv"),f.onBeforeRender=function(L,D,O){this.matrixWorld.copyPosition(O.matrixWorld)},Object.defineProperty(f.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),s.update(f)),f.material.uniforms.envMap.value=w,f.material.uniforms.backgroundBlurriness.value=R.backgroundBlurriness,f.material.uniforms.backgroundIntensity.value=R.backgroundIntensity,f.material.uniforms.backgroundRotation.value.setFromMatrix4(kI.makeRotationFromEuler(R.backgroundRotation)).transpose(),w.isCubeTexture&&w.isRenderTargetTexture===!1&&f.material.uniforms.backgroundRotation.value.premultiply(OE),f.material.toneMapped=Ht.getTransfer(w.colorSpace)!==Qu,(g!==w||v!==w.version||y!==e.toneMapping)&&(f.material.needsUpdate=!0,g=w,v=w.version,y=e.toneMapping),f.layers.enableAll(),C.unshift(f,f.geometry,f.material,0,0,null)):w&&w.isTexture&&(d===void 0&&(d=new Hn(new fp(2,2),new cr({name:"BackgroundMaterial",uniforms:yc(Gr.background.uniforms),vertexShader:Gr.background.vertexShader,fragmentShader:Gr.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),d.geometry.deleteAttribute("normal"),Object.defineProperty(d.material,"map",{get:function(){return this.uniforms.t2D.value}}),s.update(d)),d.material.uniforms.t2D.value=w,d.material.uniforms.backgroundIntensity.value=R.backgroundIntensity,d.material.toneMapped=Ht.getTransfer(w.colorSpace)!==Qu,w.matrixAutoUpdate===!0&&w.updateMatrix(),d.material.uniforms.uvTransform.value.copy(w.matrix),(g!==w||v!==w.version||y!==e.toneMapping)&&(d.material.needsUpdate=!0,g=w,v=w.version,y=e.toneMapping),d.layers.enableAll(),C.unshift(d,d.geometry,d.material,0,0,null))}function S(C,R){C.getRGB(zf,$T(e)),n.buffers.color.setClear(zf.r,zf.g,zf.b,R,l)}function b(){f!==void 0&&(f.geometry.dispose(),f.material.dispose(),f=void 0),d!==void 0&&(d.geometry.dispose(),d.material.dispose(),d=void 0)}return{getClearColor:function(){return c},setClearColor:function(C,R=1){c.set(C),h=R,S(c,h)},getClearAlpha:function(){return h},setClearAlpha:function(C){h=C,S(c,h)},render:M,addToRenderList:T,dispose:b}}function HI(e,t){const n=e.getParameter(e.MAX_VERTEX_ATTRIBS),s={},a=y(null);let l=a,c=!1;function h(F,q,X,K,ee){let ae=!1;const Q=v(F,K,X,q);l!==Q&&(l=Q,f(l.object)),ae=_(F,K,X,ee),ae&&M(F,K,X,ee),ee!==null&&t.update(ee,e.ELEMENT_ARRAY_BUFFER),(ae||c)&&(c=!1,w(F,q,X,K),ee!==null&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.get(ee).buffer))}function d(){return e.createVertexArray()}function f(F){return e.bindVertexArray(F)}function g(F){return e.deleteVertexArray(F)}function v(F,q,X,K){const ee=K.wireframe===!0;let ae=s[q.id];ae===void 0&&(ae={},s[q.id]=ae);const Q=F.isInstancedMesh===!0?F.id:0;let me=ae[Q];me===void 0&&(me={},ae[Q]=me);let _e=me[X.id];_e===void 0&&(_e={},me[X.id]=_e);let ge=_e[ee];return ge===void 0&&(ge=y(d()),_e[ee]=ge),ge}function y(F){const q=[],X=[],K=[];for(let ee=0;ee=0){const ge=ee[_e];let be=ae[_e];if(be===void 0&&(_e==="instanceMatrix"&&F.instanceMatrix&&(be=F.instanceMatrix),_e==="instanceColor"&&F.instanceColor&&(be=F.instanceColor)),ge===void 0||ge.attribute!==be||be&&ge.data!==be.data)return!0;Q++}return l.attributesNum!==Q||l.index!==K}function M(F,q,X,K){const ee={},ae=q.attributes;let Q=0;const me=X.getAttributes();for(const _e in me)if(me[_e].location>=0){let ge=ae[_e];ge===void 0&&(_e==="instanceMatrix"&&F.instanceMatrix&&(ge=F.instanceMatrix),_e==="instanceColor"&&F.instanceColor&&(ge=F.instanceColor));const be={};be.attribute=ge,ge&&ge.data&&(be.data=ge.data),ee[_e]=be,Q++}l.attributes=ee,l.attributesNum=Q,l.index=K}function T(){const F=l.newAttributes;for(let q=0,X=F.length;q=0){let ge=ee[me];if(ge===void 0&&(me==="instanceMatrix"&&F.instanceMatrix&&(ge=F.instanceMatrix),me==="instanceColor"&&F.instanceColor&&(ge=F.instanceColor)),ge!==void 0){const be=ge.normalized,Ie=ge.itemSize,Ft=t.get(ge);if(Ft===void 0)continue;const pt=Ft.buffer,ue=Ft.type,Ce=Ft.bytesPerElement,ke=ue===e.INT||ue===e.UNSIGNED_INT||ge.gpuType===1013;if(ge.isInterleavedBufferAttribute){const De=ge.data,st=De.stride,ht=ge.offset;if(De.isInstancedInterleavedBuffer){for(let Le=0;Le<_e.locationSize;Le++)b(_e.location+Le,De.meshPerAttribute);F.isInstancedMesh!==!0&&K._maxInstanceCount===void 0&&(K._maxInstanceCount=De.meshPerAttribute*De.count)}else for(let Le=0;Le<_e.locationSize;Le++)S(_e.location+Le);e.bindBuffer(e.ARRAY_BUFFER,pt);for(let Le=0;Le<_e.locationSize;Le++)R(_e.location+Le,Ie/_e.locationSize,ue,be,st*Ce,(ht+Ie/_e.locationSize*Le)*Ce,ke)}else{if(ge.isInstancedBufferAttribute){for(let De=0;De<_e.locationSize;De++)b(_e.location+De,ge.meshPerAttribute);F.isInstancedMesh!==!0&&K._maxInstanceCount===void 0&&(K._maxInstanceCount=ge.meshPerAttribute*ge.count)}else for(let De=0;De<_e.locationSize;De++)S(_e.location+De);e.bindBuffer(e.ARRAY_BUFFER,pt);for(let De=0;De<_e.locationSize;De++)R(_e.location+De,Ie/_e.locationSize,ue,be,Ie*Ce,Ie/_e.locationSize*De*Ce,ke)}}else if(Q!==void 0){const be=Q[me];if(be!==void 0)switch(be.length){case 2:e.vertexAttrib2fv(_e.location,be);break;case 3:e.vertexAttrib3fv(_e.location,be);break;case 4:e.vertexAttrib4fv(_e.location,be);break;default:e.vertexAttrib1fv(_e.location,be)}}}}C()}function L(){P();for(const F in s){const q=s[F];for(const X in q){const K=q[X];for(const ee in K){const ae=K[ee];for(const Q in ae)g(ae[Q].object),delete ae[Q];delete K[ee]}}delete s[F]}}function D(F){if(s[F.id]===void 0)return;const q=s[F.id];for(const X in q){const K=q[X];for(const ee in K){const ae=K[ee];for(const Q in ae)g(ae[Q].object),delete ae[Q];delete K[ee]}}delete s[F.id]}function O(F){for(const q in s){const X=s[q];for(const K in X){const ee=X[K];if(ee[F.id]===void 0)continue;const ae=ee[F.id];for(const Q in ae)g(ae[Q].object),delete ae[Q];delete ee[F.id]}}}function A(F){for(const q in s){const X=s[q],K=F.isInstancedMesh===!0?F.id:0,ee=X[K];if(ee!==void 0){for(const ae in ee){const Q=ee[ae];for(const me in Q)g(Q[me].object),delete Q[me];delete ee[ae]}delete X[K],Object.keys(X).length===0&&delete s[q]}}}function P(){k(),c=!0,l!==a&&(l=a,f(l.object))}function k(){a.geometry=null,a.program=null,a.wireframe=!1}return{setup:h,reset:P,resetDefaultState:k,dispose:L,releaseStatesOfGeometry:D,releaseStatesOfObject:A,releaseStatesOfProgram:O,initAttributes:T,enableAttribute:S,disableUnusedAttributes:C}}function GI(e,t,n){let s;function a(d){s=d}function l(d,f){e.drawArrays(s,d,f),n.update(f,s,1)}function c(d,f,g){g!==0&&(e.drawArraysInstanced(s,d,f,g),n.update(f,s,g))}function h(d,f,g){if(g===0)return;t.get("WEBGL_multi_draw").multiDrawArraysWEBGL(s,d,0,f,0,g);let v=0;for(let y=0;y0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";O="mediump"}return O==="mediump"&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let f=n.precision!==void 0?n.precision:"highp";const g=d(f);g!==f&&(Ne("WebGLRenderer:",f,"not supported, using",g,"instead."),f=g);const v=n.logarithmicDepthBuffer===!0,y=n.reversedDepthBuffer===!0&&t.has("EXT_clip_control");n.reversedDepthBuffer===!0&&y===!1&&Ne("WebGLRenderer: Unable to use reversed depth buffer due to missing EXT_clip_control extension. Fallback to default depth buffer.");const _=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),M=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),T=e.getParameter(e.MAX_TEXTURE_SIZE),S=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),b=e.getParameter(e.MAX_VERTEX_ATTRIBS),C=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),R=e.getParameter(e.MAX_VARYING_VECTORS),w=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),L=e.getParameter(e.MAX_SAMPLES),D=e.getParameter(e.SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:l,getMaxPrecision:d,textureFormatReadable:c,textureTypeReadable:h,precision:f,logarithmicDepthBuffer:v,reversedDepthBuffer:y,maxTextures:_,maxVertexTextures:M,maxTextureSize:T,maxCubemapSize:S,maxAttributes:b,maxVertexUniforms:C,maxVaryings:R,maxFragmentUniforms:w,maxSamples:L,samples:D}}function XI(e){const t=this;let n=null,s=0,a=!1,l=!1;const c=new Oa,h=new Et,d={value:null,needsUpdate:!1};this.uniform=d,this.numPlanes=0,this.numIntersection=0,this.init=function(v,y){const _=v.length!==0||y||s!==0||a;return a=y,s=v.length,_},this.beginShadows=function(){l=!0,g(null)},this.endShadows=function(){l=!1},this.setGlobalState=function(v,y){n=g(v,y,0)},this.setState=function(v,y,_){const M=v.clippingPlanes,T=v.clipIntersection,S=v.clipShadows,b=e.get(v);if(!a||M===null||M.length===0||l&&!S)l?g(null):f();else{const C=l?0:s,R=C*4;let w=b.clippingState||null;d.value=w,w=g(M,y,R,_);for(let L=0;L!==R;++L)w[L]=n[L];b.clippingState=w,this.numIntersection=T?this.numPlanes:0,this.numPlanes+=C}};function f(){d.value!==n&&(d.value=n,d.needsUpdate=s>0),t.numPlanes=s,t.numIntersection=0}function g(v,y,_,M){const T=v!==null?v.length:0;let S=null;if(T!==0){if(S=d.value,M!==!0||S===null){const b=_+T*4,C=y.matrixWorldInverse;h.getNormalMatrix(C),(S===null||S.length0&&this._blur(h,0,0,t),this._applyPMREM(h),this._cleanup(h),h}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=nM(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=tM(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._ggxMaterial!==null&&this._ggxMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?b:0,b,b),d.setRenderTarget(s),_&&d.render(v,l),d.render(e,l)}d.toneMapping=g,d.autoClear=f,e.background=M}_textureToCubeUV(e,t){const n=this._renderer,s=e.mapping===301||e.mapping===302;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=nM()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=tM());const a=s?this._cubemapMaterial:this._equirectMaterial,l=this._lodMeshes[0];l.material=a;const c=a.uniforms;c.envMap.value=e;const h=this._cubeSize;ic(t,0,0,3*h,2*h),n.setRenderTarget(t),n.render(l,Ou)}_applyPMREM(e){const t=this._renderer,n=t.autoClear;t.autoClear=!1;const s=this._lodMeshes.length;for(let a=1;av-ka?n-v+ka:0),M=4*(this._cubeSize-y);h.envMap.value=e.texture,h.roughness.value=g,h.mipInt.value=v-t,ic(a,_,M,3*y,2*y),s.setRenderTarget(a),s.render(c,Ou),h.envMap.value=a.texture,h.roughness.value=0,h.mipInt.value=v-n,ic(e,_,M,3*y,2*y),s.setRenderTarget(e),s.render(c,Ou)}_blur(e,t,n,s,a){const l=this._pingPongRenderTarget;this._halfBlur(e,l,t,n,s,"latitudinal",a),this._halfBlur(l,e,n,n,s,"longitudinal",a)}_halfBlur(e,t,n,s,a,l,c){const h=this._renderer,d=this._blurMaterial;l!=="latitudinal"&&l!=="longitudinal"&&rt("blur direction must be either latitudinal or longitudinal!");const f=3,g=this._lodMeshes[s];g.material=d;const v=d.uniforms,y=this._sizeLods[n]-1,_=isFinite(a)?Math.PI/(2*y):2*Math.PI/39,M=a/_,T=isFinite(a)?1+Math.floor(f*M):hc;T>hc&&Ne(`sigmaRadians, ${a}, is too large and will clip, as it requested ${T} samples when the maximum is set to ${hc}`);const S=[];let b=0;for(let w=0;wC-ka?s-C+ka:0),4*(this._cubeSize-R),3*R,2*R),h.setRenderTarget(t),h.render(g,Ou)}};function jI(e){const t=[],n=[],s=[];let a=e;const l=e-ka+1+K1.length;for(let c=0;ce-ka?d=K1[c-e+ka-1]:c===0&&(d=0),n.push(d);const f=1/(h-2),g=-f,v=1+f,y=[g,g,v,g,v,v,g,g,v,v,g,v],_=6,M=3,T=2,S=1,b=new Float32Array(108),C=new Float32Array(72),R=new Float32Array(36);for(let L=0;L<_;L++){const D=L%3*2/3-1,O=L>2?0:-1,A=[D,O,0,D+2/3,O,0,D+2/3,O+1,0,D,O,0,D+2/3,O+1,0,D,O+1,0];b.set(A,18*L),C.set(y,12*L);const P=[L,L,L,L,L,L];R.set(P,6*L)}const w=new Lt;w.setAttribute("position",new an(b,M)),w.setAttribute("uv",new an(C,T)),w.setAttribute("faceIndex",new an(R,S)),s.push(new Hn(w,null)),a>ka&&a--}return{lodMeshes:s,sizeLods:t,sigmas:n}}function eM(e,t,n){const s=new lr(e,t,n);return s.texture.mapping=306,s.texture.name="PMREM.cubeUv",s.scissorTest=!0,s}function ic(e,t,n,s,a){e.viewport.set(t,n,s,a),e.scissor.set(t,n,s,a)}function ZI(e,t,n){return new cr({name:"PMREMGGXConvolution",defines:{GGX_SAMPLES:qI,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},roughness:{value:0},mipInt:{value:0}},vertexShader:vp(),fragmentShader:` + + precision highp float; + precision highp int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform float roughness; + uniform float mipInt; + + #define ENVMAP_TYPE_CUBE_UV + #include + + #define PI 3.14159265359 + + // Van der Corput radical inverse + float radicalInverse_VdC(uint bits) { + bits = (bits << 16u) | (bits >> 16u); + bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); + bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); + bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); + bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); + return float(bits) * 2.3283064365386963e-10; // / 0x100000000 + } + + // Hammersley sequence + vec2 hammersley(uint i, uint N) { + return vec2(float(i) / float(N), radicalInverse_VdC(i)); + } + + // GGX VNDF importance sampling (Eric Heitz 2018) + // "Sampling the GGX Distribution of Visible Normals" + // https://jcgt.org/published/0007/04/01/ + vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { + float alpha = roughness * roughness; + + // Section 4.1: Orthonormal basis + vec3 T1 = vec3(1.0, 0.0, 0.0); + vec3 T2 = cross(V, T1); + + // Section 4.2: Parameterization of projected area + float r = sqrt(Xi.x); + float phi = 2.0 * PI * Xi.y; + float t1 = r * cos(phi); + float t2 = r * sin(phi); + float s = 0.5 * (1.0 + V.z); + t2 = (1.0 - s) * sqrt(1.0 - t1 * t1) + s * t2; + + // Section 4.3: Reprojection onto hemisphere + vec3 Nh = t1 * T1 + t2 * T2 + sqrt(max(0.0, 1.0 - t1 * t1 - t2 * t2)) * V; + + // Section 3.4: Transform back to ellipsoid configuration + return normalize(vec3(alpha * Nh.x, alpha * Nh.y, max(0.0, Nh.z))); + } + + void main() { + vec3 N = normalize(vOutputDirection); + vec3 V = N; // Assume view direction equals normal for pre-filtering + + vec3 prefilteredColor = vec3(0.0); + float totalWeight = 0.0; + + // For very low roughness, just sample the environment directly + if (roughness < 0.001) { + gl_FragColor = vec4(bilinearCubeUV(envMap, N, mipInt), 1.0); + return; + } + + // Tangent space basis for VNDF sampling + vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangent = normalize(cross(up, N)); + vec3 bitangent = cross(N, tangent); + + for(uint i = 0u; i < uint(GGX_SAMPLES); i++) { + vec2 Xi = hammersley(i, uint(GGX_SAMPLES)); + + // For PMREM, V = N, so in tangent space V is always (0, 0, 1) + vec3 H_tangent = importanceSampleGGX_VNDF(Xi, vec3(0.0, 0.0, 1.0), roughness); + + // Transform H back to world space + vec3 H = normalize(tangent * H_tangent.x + bitangent * H_tangent.y + N * H_tangent.z); + vec3 L = normalize(2.0 * dot(V, H) * H - V); + + float NdotL = max(dot(N, L), 0.0); + + if(NdotL > 0.0) { + // Sample environment at fixed mip level + // VNDF importance sampling handles the distribution filtering + vec3 sampleColor = bilinearCubeUV(envMap, L, mipInt); + + // Weight by NdotL for the split-sum approximation + // VNDF PDF naturally accounts for the visible microfacet distribution + prefilteredColor += sampleColor * NdotL; + totalWeight += NdotL; + } + } + + if (totalWeight > 0.0) { + prefilteredColor = prefilteredColor / totalWeight; + } + + gl_FragColor = vec4(prefilteredColor, 1.0); + } + `,blending:0,depthTest:!1,depthWrite:!1})}function $I(e,t,n){const s=new Float32Array(hc),a=new z(0,1,0);return new cr({name:"SphericalGaussianBlur",defines:{n:hc,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:s},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:a}},vertexShader:vp(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function tM(){return new cr({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:vp(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function nM(){return new cr({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:vp(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:0,depthTest:!1,depthWrite:!1})}function vp(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}var sy=class extends lr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const n={width:e,height:e,depth:1},s=[n,n,n,n,n,n];this.texture=new hh(s),this._setTextureOptions(t),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},s=new dh(5,5,5),a=new cr({name:"CubemapFromEquirect",uniforms:yc(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});a.uniforms.tEquirect.value=t;const l=new Hn(s,a),c=t.minFilter;return t.minFilter===1008&&(t.minFilter=xn),new ME(1,10,this).update(e,l),t.minFilter=c,l.geometry.dispose(),l.material.dispose(),this}clear(e,t=!0,n=!0,s=!0){const a=e.getRenderTarget();for(let l=0;l<6;l++)e.setRenderTarget(this,l),e.clear(t,n,s);e.setRenderTarget(a)}};function JI(e){let t=new WeakMap,n=new WeakMap,s=null;function a(y,_=!1){return y==null?null:_?c(y):l(y)}function l(y){if(y&&y.isTexture){const _=y.mapping;if(_===303||_===304)if(t.has(y)){const M=t.get(y).texture;return h(M,y.mapping)}else{const M=y.image;if(M&&M.height>0){const T=new sy(M.height);return T.fromEquirectangularTexture(e,y),t.set(y,T),y.addEventListener("dispose",f),h(T.texture,y.mapping)}else return null}}return y}function c(y){if(y&&y.isTexture){const _=y.mapping,M=_===303||_===304,T=_===301||_===302;if(M||T){let S=n.get(y);const b=S!==void 0?S.texture.pmremVersion:0;if(y.isRenderTargetTexture&&y.pmremVersion!==b)return s===null&&(s=new r0(e)),S=M?s.fromEquirectangular(y,S):s.fromCubemap(y,S),S.texture.pmremVersion=y.pmremVersion,n.set(y,S),S.texture;if(S!==void 0)return S.texture;{const C=y.image;return M&&C&&C.height>0||T&&C&&d(C)?(s===null&&(s=new r0(e)),S=M?s.fromEquirectangular(y):s.fromCubemap(y),S.texture.pmremVersion=y.pmremVersion,n.set(y,S),y.addEventListener("dispose",g),S.texture):null}}}return y}function h(y,_){return _===303?y.mapping=301:_===304&&(y.mapping=302),y}function d(y){let _=0;const M=6;for(let T=0;T=65535?L0:I0)(y,1);S.version=T;const b=l.get(v);b&&t.remove(b),l.set(v,S)}function g(v){const y=l.get(v);if(y){const _=v.index;_!==null&&y.version<_.version&&f(v)}else f(v);return l.get(v)}return{get:h,update:d,getWireframeAttribute:g}}function eL(e,t,n){let s;function a(v){s=v}let l,c;function h(v){l=v.type,c=v.bytesPerElement}function d(v,y){e.drawElements(s,y,l,v*c),n.update(y,s,1)}function f(v,y,_){_!==0&&(e.drawElementsInstanced(s,y,l,v*c,_),n.update(y,s,_))}function g(v,y,_){if(_===0)return;t.get("WEBGL_multi_draw").multiDrawElementsWEBGL(s,y,0,l,v,0,_);let M=0;for(let T=0;T<_;T++)M+=y[T];n.update(M,s,1)}this.setMode=a,this.setIndex=h,this.render=d,this.renderInstances=f,this.renderMultiDraw=g}function tL(e){const t={geometries:0,textures:0},n={frame:0,calls:0,triangles:0,points:0,lines:0};function s(l,c,h){switch(n.calls++,c){case e.TRIANGLES:n.triangles+=h*(l/3);break;case e.LINES:n.lines+=h*(l/2);break;case e.LINE_STRIP:n.lines+=h*(l-1);break;case e.LINE_LOOP:n.lines+=h*l;break;case e.POINTS:n.points+=h*l;break;default:rt("WebGLInfo: Unknown draw mode:",c)}}function a(){n.calls=0,n.triangles=0,n.points=0,n.lines=0}return{memory:t,render:n,programs:null,autoReset:!0,reset:a,update:s}}function nL(e,t,n){const s=new WeakMap,a=new cn;function l(c,h,d){const f=c.morphTargetInfluences,g=h.morphAttributes.position||h.morphAttributes.normal||h.morphAttributes.color,v=g!==void 0?g.length:0;let y=s.get(h);if(y===void 0||y.count!==v){let P=function(){O.dispose(),s.delete(h),h.removeEventListener("dispose",P)};y!==void 0&&y.texture.dispose();const _=h.morphAttributes.position!==void 0,M=h.morphAttributes.normal!==void 0,T=h.morphAttributes.color!==void 0,S=h.morphAttributes.position||[],b=h.morphAttributes.normal||[],C=h.morphAttributes.color||[];let R=0;_===!0&&(R=1),M===!0&&(R=2),T===!0&&(R=3);let w=h.attributes.position.count*R,L=1;w>t.maxTextureSize&&(L=Math.ceil(w/t.maxTextureSize),w=t.maxTextureSize);const D=new Float32Array(w*L*4*v),O=new lp(D,w,L,v);O.type=Ks,O.needsUpdate=!0;const A=R*4;for(let k=0;k + #include + + void main() { + gl_FragColor = texture2D( tDiffuse, vUv ); + + #ifdef LINEAR_TONE_MAPPING + gl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb ); + #elif defined( REINHARD_TONE_MAPPING ) + gl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb ); + #elif defined( CINEON_TONE_MAPPING ) + gl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb ); + #elif defined( ACES_FILMIC_TONE_MAPPING ) + gl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb ); + #elif defined( AGX_TONE_MAPPING ) + gl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb ); + #elif defined( NEUTRAL_TONE_MAPPING ) + gl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb ); + #elif defined( CUSTOM_TONE_MAPPING ) + gl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb ); + #endif + + #ifdef SRGB_TRANSFER + gl_FragColor = sRGBTransferOETF( gl_FragColor ); + #endif + }`,depthTest:!1,depthWrite:!1}),g=new Hn(d,f),v=new wc(-1,1,1,-1,0,1);let y=null,_=null,M=!1,T,S=null,b=[],C=!1;this.setSize=function(R,w){c.setSize(R,w),h.setSize(R,w);for(let L=0;L0&&b[0].isRenderPass===!0;const w=c.width,L=c.height;for(let D=0;D0)return e;const a=t*n;let l=iM[a];if(l===void 0&&(l=new Float32Array(a),iM[a]=l),t!==0){s.toArray(l,0);for(let c=1,h=0;c!==t;++c)h+=n,e[c].toArray(l,h)}return l}function Yn(e,t){if(e.length!==t.length)return!1;for(let n=0,s=e.length;n0&&(this.seq=s.concat(a))}setValue(e,t,n,s){const a=this.map[t];a!==void 0&&a.setValue(e,n,s)}setOptional(e,t,n){const s=t[n];s!==void 0&&this.setValue(e,n,s)}static upload(e,t,n,s){for(let a=0,l=t.length;a!==l;++a){const c=t[a],h=n[c.id];h.needsUpdate!==!1&&c.setValue(e,h.value,s)}}static seqWithValue(e,t){const n=[];for(let s=0,a=e.length;s!==a;++s){const l=e[s];l.id in t&&n.push(l)}return n}};function cM(e,t,n){const s=e.createShader(t);return e.shaderSource(s,n),e.compileShader(s),s}var $L=37297,JL=0;function KL(e,t){const n=e.split(` +`),s=[],a=Math.max(t-6,0),l=Math.min(t+6,n.length);for(let c=a;c":" "} ${h}: ${n[c]}`)}return s.join(` +`)}var uM=new Et;function QL(e){Ht._getMatrix(uM,Ht.workingColorSpace,e);const t=`mat3( ${uM.elements.map(n=>n.toFixed(4))} )`;switch(Ht.getTransfer(e)){case Ku:return[t,"LinearTransferOETF"];case Qu:return[t,"sRGBTransferOETF"];default:return Ne("WebGLProgram: Unsupported color space: ",e),[t,"LinearTransferOETF"]}}function hM(e,t,n){const s=e.getShaderParameter(t,e.COMPILE_STATUS),a=(e.getShaderInfoLog(t)||"").trim();if(s&&a==="")return"";const l=/ERROR: 0:(\d+)/.exec(a);if(l){const c=parseInt(l[1]);return n.toUpperCase()+` + +`+a+` + +`+KL(e.getShaderSource(t),c)}else return a}function eN(e,t){const n=QL(t);return[`vec4 ${e}( vec4 value ) {`,` return ${n[1]}( vec4( value.rgb * ${n[0]}, value.a ) );`,"}"].join(` +`)}var tN={1:"Linear",2:"Reinhard",3:"Cineon",4:"ACESFilmic",6:"AgX",7:"Neutral",5:"Custom"};function nN(e,t){const n=tN[t];return n===void 0?(Ne("WebGLProgram: Unsupported toneMapping:",t),"vec3 "+e+"( vec3 color ) { return LinearToneMapping( color ); }"):"vec3 "+e+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}var kf=new z;function iN(){return Ht.getLuminanceCoefficients(kf),["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${kf.x.toFixed(4)}, ${kf.y.toFixed(4)}, ${kf.z.toFixed(4)} );`," return dot( weights, rgb );","}"].join(` +`)}function rN(e){return[e.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",e.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(ku).join(` +`)}function sN(e){const t=[];for(const n in e){const s=e[n];s!==!1&&t.push("#define "+n+" "+s)}return t.join(` +`)}function aN(e,t){const n={},s=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let a=0;a/gm;function a0(e){return e.replace(oN,cN)}var lN=new Map;function cN(e,t){let n=Dt[t];if(n===void 0){const s=lN.get(t);if(s!==void 0)n=Dt[s],Ne('WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,s);else throw new Error("THREE.WebGLProgram: Can not resolve #include <"+t+">")}return a0(n)}var uN=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function pM(e){return e.replace(uN,hN)}function hN(e,t,n,s){let a="";for(let l=parseInt(t);l0&&(S+=` +`),b=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,M].filter(ku).join(` +`),b.length>0&&(b+=` +`)):(S=[mM(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,M,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+g:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexNormals?"#define HAS_NORMAL":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&n.flatShading===!1?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",n.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(ku).join(` +`),b=[mM(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,M,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+f:"",n.envMap?"#define "+g:"",n.envMap?"#define "+v:"",y?"#define CUBEUV_TEXEL_WIDTH "+y.texelWidth:"",y?"#define CUBEUV_TEXEL_HEIGHT "+y.texelHeight:"",y?"#define CUBEUV_MAX_MIP "+y.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.packedNormalMap?"#define USE_PACKED_NORMALMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas||n.batchingColor?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.numLightProbeGrids>0?"#define USE_LIGHT_PROBES_GRID":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",n.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",n.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==0?"#define TONE_MAPPING":"",n.toneMapping!==0?Dt.tonemapping_pars_fragment:"",n.toneMapping!==0?nN("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Dt.colorspace_pars_fragment,eN("linearToOutputTexel",n.outputColorSpace),iN(),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"",` +`].filter(ku).join(` +`)),c=a0(c),c=dM(c,n),c=fM(c,n),h=a0(h),h=dM(h,n),h=fM(h,n),c=pM(c),h=pM(h),n.isRawShaderMaterial!==!0&&(C=`#version 300 es +`,S=[_,"#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+S,b=["#define varying in",n.glslVersion==="300 es"?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion==="300 es"?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+b);const R=C+S+c,w=C+b+h,L=cM(a,a.VERTEX_SHADER,R),D=cM(a,a.FRAGMENT_SHADER,w);a.attachShader(T,L),a.attachShader(T,D),n.index0AttributeName!==void 0?a.bindAttribLocation(T,0,n.index0AttributeName):n.hasPositionAttribute===!0&&a.bindAttribLocation(T,0,"position"),a.linkProgram(T);function O(F){if(e.debug.checkShaderErrors){const q=a.getProgramInfoLog(T)||"",X=a.getShaderInfoLog(L)||"",K=a.getShaderInfoLog(D)||"",ee=q.trim(),ae=X.trim(),Q=K.trim();let me=!0,_e=!0;if(a.getProgramParameter(T,a.LINK_STATUS)===!1)if(me=!1,typeof e.debug.onShaderError=="function")e.debug.onShaderError(a,T,L,D);else{const ge=hM(a,L,"vertex"),be=hM(a,D,"fragment");rt("WebGLProgram: Shader Error "+a.getError()+" - VALIDATE_STATUS "+a.getProgramParameter(T,a.VALIDATE_STATUS)+` + +Material Name: `+F.name+` +Material Type: `+F.type+` + +Program Info Log: `+ee+` +`+ge+` +`+be)}else ee!==""?Ne("WebGLProgram: Program Info Log:",ee):(ae===""||Q==="")&&(_e=!1);_e&&(F.diagnostics={runnable:me,programLog:ee,vertexShader:{log:ae,prefix:S},fragmentShader:{log:Q,prefix:b}})}a.deleteShader(L),a.deleteShader(D),A=new Yf(a,T),P=aN(a,T)}let A;this.getUniforms=function(){return A===void 0&&O(this),A};let P;this.getAttributes=function(){return P===void 0&&O(this),P};let k=n.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return k===!1&&(k=a.getProgramParameter(T,$L)),k},this.destroy=function(){s.releaseStatesOfProgram(this),a.deleteProgram(T),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=JL++,this.cacheKey=t,this.usedTimes=1,this.program=T,this.vertexShader=L,this.fragmentShader=D,this}var SN=0,MN=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e,t,n){const s=this._getShaderCacheForMaterial(e);return s.has(t)===!1&&(s.add(t),t.usedTimes++),s.has(n)===!1&&(s.add(n),n.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const n of t)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(e),this}getVertexShaderStage(e){return this._getShaderStage(e.vertexShader)}getFragmentShaderStage(e){return this._getShaderStage(e.fragmentShader)}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let n=t.get(e);return n===void 0&&(n=new Set,t.set(e,n)),n}_getShaderStage(e){const t=this.shaderCache;let n=t.get(e);return n===void 0&&(n=new wN(e),t.set(e,n)),n}},wN=class{constructor(e){this.id=SN++,this.code=e,this.usedTimes=0}};function TN(e){return e===1030||e===37490||e===36285}function EN(e,t,n,s,a,l){const c=new mc,h=new MN,d=new Set,f=[],g=new Map,v=s.logarithmicDepthBuffer;let y=s.precision;const _={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distance",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function M(A){return d.add(A),A===0?"uv":`uv${A}`}function T(A,P,k,F,q,X){const K=F.fog,ee=q.geometry,ae=A.isMeshStandardMaterial||A.isMeshLambertMaterial||A.isMeshPhongMaterial?F.environment:null,Q=A.isMeshStandardMaterial||A.isMeshLambertMaterial&&!A.envMap||A.isMeshPhongMaterial&&!A.envMap,me=t.get(A.envMap||ae,Q),_e=me&&me.mapping===306?me.image.height:null,ge=_[A.type];A.precision!==null&&(y=s.getMaxPrecision(A.precision),y!==A.precision&&Ne("WebGLProgram.getParameters:",A.precision,"not supported, using",y,"instead."));const be=ee.morphAttributes.position||ee.morphAttributes.normal||ee.morphAttributes.color,Ie=be!==void 0?be.length:0;let Ft=0;ee.morphAttributes.position!==void 0&&(Ft=1),ee.morphAttributes.normal!==void 0&&(Ft=2),ee.morphAttributes.color!==void 0&&(Ft=3);let pt,ue,Ce,ke;if(ge){const ot=Gr[ge];pt=ot.vertexShader,ue=ot.fragmentShader}else{pt=A.vertexShader,ue=A.fragmentShader;const ot=h.getVertexShaderStage(A),hn=h.getFragmentShaderStage(A);h.update(A,ot,hn),Ce=ot.id,ke=hn.id}const De=e.getRenderTarget(),st=e.state.buffers.depth.getReversed(),ht=q.isInstancedMesh===!0,Le=q.isBatchedMesh===!0,At=!!A.map,pe=!!A.matcap,Ee=!!me,Ae=!!A.aoMap,Ve=!!A.lightMap,Oe=!!A.bumpMap&&A.wireframe===!1,qe=!!A.normalMap,tt=!!A.displacementMap,vt=!!A.emissiveMap,bt=!!A.metalnessMap,V=!!A.roughnessMap,un=A.anisotropy>0,Gt=A.clearcoat>0,Ut=A.dispersion>0,U=A.iridescence>0,I=A.sheen>0,W=A.transmission>0,re=un&&!!A.anisotropyMap,ve=Gt&&!!A.clearcoatMap,Pe=Gt&&!!A.clearcoatNormalMap,Ue=Gt&&!!A.clearcoatRoughnessMap,Z=U&&!!A.iridescenceMap,Se=U&&!!A.iridescenceThicknessMap,Ge=I&&!!A.sheenColorMap,Qe=I&&!!A.sheenRoughnessMap,Te=!!A.specularMap,nt=!!A.specularColorMap,$e=!!A.specularIntensityMap,ct=W&&!!A.transmissionMap,jt=W&&!!A.thicknessMap,j=!!A.gradientMap,de=!!A.alphaMap,xe=A.alphaTest>0,We=!!A.alphaHash,et=!!A.extensions;let we=0;A.toneMapped&&(De===null||De.isXRRenderTarget===!0)&&(we=e.toneMapping);const Fe={shaderID:ge,shaderType:A.type,shaderName:A.name,vertexShader:pt,fragmentShader:ue,defines:A.defines,customVertexShaderID:Ce,customFragmentShaderID:ke,isRawShaderMaterial:A.isRawShaderMaterial===!0,glslVersion:A.glslVersion,precision:y,batching:Le,batchingColor:Le&&q._colorsTexture!==null,instancing:ht,instancingColor:ht&&q.instanceColor!==null,instancingMorph:ht&&q.morphTexture!==null,outputColorSpace:De===null?e.outputColorSpace:De.isXRRenderTarget===!0?De.texture.colorSpace:Ht.workingColorSpace,alphaToCoverage:!!A.alphaToCoverage,map:At,matcap:pe,envMap:Ee,envMapMode:Ee&&me.mapping,envMapCubeUVHeight:_e,aoMap:Ae,lightMap:Ve,bumpMap:Oe,normalMap:qe,displacementMap:tt,emissiveMap:vt,normalMapObjectSpace:qe&&A.normalMapType===1,normalMapTangentSpace:qe&&A.normalMapType===0,packedNormalMap:qe&&A.normalMapType===0&&TN(A.normalMap.format),metalnessMap:bt,roughnessMap:V,anisotropy:un,anisotropyMap:re,clearcoat:Gt,clearcoatMap:ve,clearcoatNormalMap:Pe,clearcoatRoughnessMap:Ue,dispersion:Ut,iridescence:U,iridescenceMap:Z,iridescenceThicknessMap:Se,sheen:I,sheenColorMap:Ge,sheenRoughnessMap:Qe,specularMap:Te,specularColorMap:nt,specularIntensityMap:$e,transmission:W,transmissionMap:ct,thicknessMap:jt,gradientMap:j,opaque:A.transparent===!1&&A.blending===1&&A.alphaToCoverage===!1,alphaMap:de,alphaTest:xe,alphaHash:We,combine:A.combine,mapUv:At&&M(A.map.channel),aoMapUv:Ae&&M(A.aoMap.channel),lightMapUv:Ve&&M(A.lightMap.channel),bumpMapUv:Oe&&M(A.bumpMap.channel),normalMapUv:qe&&M(A.normalMap.channel),displacementMapUv:tt&&M(A.displacementMap.channel),emissiveMapUv:vt&&M(A.emissiveMap.channel),metalnessMapUv:bt&&M(A.metalnessMap.channel),roughnessMapUv:V&&M(A.roughnessMap.channel),anisotropyMapUv:re&&M(A.anisotropyMap.channel),clearcoatMapUv:ve&&M(A.clearcoatMap.channel),clearcoatNormalMapUv:Pe&&M(A.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Ue&&M(A.clearcoatRoughnessMap.channel),iridescenceMapUv:Z&&M(A.iridescenceMap.channel),iridescenceThicknessMapUv:Se&&M(A.iridescenceThicknessMap.channel),sheenColorMapUv:Ge&&M(A.sheenColorMap.channel),sheenRoughnessMapUv:Qe&&M(A.sheenRoughnessMap.channel),specularMapUv:Te&&M(A.specularMap.channel),specularColorMapUv:nt&&M(A.specularColorMap.channel),specularIntensityMapUv:$e&&M(A.specularIntensityMap.channel),transmissionMapUv:ct&&M(A.transmissionMap.channel),thicknessMapUv:jt&&M(A.thicknessMap.channel),alphaMapUv:de&&M(A.alphaMap.channel),vertexTangents:!!ee.attributes.tangent&&(qe||un),vertexNormals:!!ee.attributes.normal,vertexColors:A.vertexColors,vertexAlphas:A.vertexColors===!0&&!!ee.attributes.color&&ee.attributes.color.itemSize===4,pointsUvs:q.isPoints===!0&&!!ee.attributes.uv&&(At||de),fog:!!K,useFog:A.fog===!0,fogExp2:!!K&&K.isFogExp2,flatShading:A.wireframe===!1&&(A.flatShading===!0||ee.attributes.normal===void 0&&qe===!1&&(A.isMeshLambertMaterial||A.isMeshPhongMaterial||A.isMeshStandardMaterial||A.isMeshPhysicalMaterial)),sizeAttenuation:A.sizeAttenuation===!0,logarithmicDepthBuffer:v,reversedDepthBuffer:st,skinning:q.isSkinnedMesh===!0,hasPositionAttribute:ee.attributes.position!==void 0,morphTargets:ee.morphAttributes.position!==void 0,morphNormals:ee.morphAttributes.normal!==void 0,morphColors:ee.morphAttributes.color!==void 0,morphTargetsCount:Ie,morphTextureStride:Ft,numDirLights:P.directional.length,numPointLights:P.point.length,numSpotLights:P.spot.length,numSpotLightMaps:P.spotLightMap.length,numRectAreaLights:P.rectArea.length,numHemiLights:P.hemi.length,numDirLightShadows:P.directionalShadowMap.length,numPointLightShadows:P.pointShadowMap.length,numSpotLightShadows:P.spotShadowMap.length,numSpotLightShadowsWithMaps:P.numSpotLightShadowsWithMaps,numLightProbes:P.numLightProbes,numLightProbeGrids:X.length,numClippingPlanes:l.numPlanes,numClipIntersection:l.numIntersection,dithering:A.dithering,shadowMapEnabled:e.shadowMap.enabled&&k.length>0,shadowMapType:e.shadowMap.type,toneMapping:we,decodeVideoTexture:At&&A.map.isVideoTexture===!0&&Ht.getTransfer(A.map.colorSpace)==="srgb",decodeVideoTextureEmissive:vt&&A.emissiveMap.isVideoTexture===!0&&Ht.getTransfer(A.emissiveMap.colorSpace)==="srgb",premultipliedAlpha:A.premultipliedAlpha,doubleSided:A.side===2,flipSided:A.side===1,useDepthPacking:A.depthPacking>=0,depthPacking:A.depthPacking||0,index0AttributeName:A.index0AttributeName,extensionClipCullDistance:et&&A.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(et&&A.extensions.multiDraw===!0||Le)&&n.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:A.customProgramCacheKey()};return Fe.vertexUv1s=d.has(1),Fe.vertexUv2s=d.has(2),Fe.vertexUv3s=d.has(3),d.clear(),Fe}function S(A){const P=[];if(A.shaderID?P.push(A.shaderID):(P.push(A.customVertexShaderID),P.push(A.customFragmentShaderID)),A.defines!==void 0)for(const k in A.defines)P.push(k),P.push(A.defines[k]);return A.isRawShaderMaterial===!1&&(b(P,A),C(P,A),P.push(e.outputColorSpace)),P.push(A.customProgramCacheKey),P.join()}function b(A,P){A.push(P.precision),A.push(P.outputColorSpace),A.push(P.envMapMode),A.push(P.envMapCubeUVHeight),A.push(P.mapUv),A.push(P.alphaMapUv),A.push(P.lightMapUv),A.push(P.aoMapUv),A.push(P.bumpMapUv),A.push(P.normalMapUv),A.push(P.displacementMapUv),A.push(P.emissiveMapUv),A.push(P.metalnessMapUv),A.push(P.roughnessMapUv),A.push(P.anisotropyMapUv),A.push(P.clearcoatMapUv),A.push(P.clearcoatNormalMapUv),A.push(P.clearcoatRoughnessMapUv),A.push(P.iridescenceMapUv),A.push(P.iridescenceThicknessMapUv),A.push(P.sheenColorMapUv),A.push(P.sheenRoughnessMapUv),A.push(P.specularMapUv),A.push(P.specularColorMapUv),A.push(P.specularIntensityMapUv),A.push(P.transmissionMapUv),A.push(P.thicknessMapUv),A.push(P.combine),A.push(P.fogExp2),A.push(P.sizeAttenuation),A.push(P.morphTargetsCount),A.push(P.morphAttributeCount),A.push(P.numDirLights),A.push(P.numPointLights),A.push(P.numSpotLights),A.push(P.numSpotLightMaps),A.push(P.numHemiLights),A.push(P.numRectAreaLights),A.push(P.numDirLightShadows),A.push(P.numPointLightShadows),A.push(P.numSpotLightShadows),A.push(P.numSpotLightShadowsWithMaps),A.push(P.numLightProbes),A.push(P.shadowMapType),A.push(P.toneMapping),A.push(P.numClippingPlanes),A.push(P.numClipIntersection),A.push(P.depthPacking)}function C(A,P){c.disableAll(),P.instancing&&c.enable(0),P.instancingColor&&c.enable(1),P.instancingMorph&&c.enable(2),P.matcap&&c.enable(3),P.envMap&&c.enable(4),P.normalMapObjectSpace&&c.enable(5),P.normalMapTangentSpace&&c.enable(6),P.clearcoat&&c.enable(7),P.iridescence&&c.enable(8),P.alphaTest&&c.enable(9),P.vertexColors&&c.enable(10),P.vertexAlphas&&c.enable(11),P.vertexUv1s&&c.enable(12),P.vertexUv2s&&c.enable(13),P.vertexUv3s&&c.enable(14),P.vertexTangents&&c.enable(15),P.anisotropy&&c.enable(16),P.alphaHash&&c.enable(17),P.batching&&c.enable(18),P.dispersion&&c.enable(19),P.batchingColor&&c.enable(20),P.gradientMap&&c.enable(21),P.packedNormalMap&&c.enable(22),P.vertexNormals&&c.enable(23),A.push(c.mask),c.disableAll(),P.fog&&c.enable(0),P.useFog&&c.enable(1),P.flatShading&&c.enable(2),P.logarithmicDepthBuffer&&c.enable(3),P.reversedDepthBuffer&&c.enable(4),P.skinning&&c.enable(5),P.morphTargets&&c.enable(6),P.morphNormals&&c.enable(7),P.morphColors&&c.enable(8),P.premultipliedAlpha&&c.enable(9),P.shadowMapEnabled&&c.enable(10),P.doubleSided&&c.enable(11),P.flipSided&&c.enable(12),P.useDepthPacking&&c.enable(13),P.dithering&&c.enable(14),P.transmission&&c.enable(15),P.sheen&&c.enable(16),P.opaque&&c.enable(17),P.pointsUvs&&c.enable(18),P.decodeVideoTexture&&c.enable(19),P.decodeVideoTextureEmissive&&c.enable(20),P.alphaToCoverage&&c.enable(21),P.numLightProbeGrids>0&&c.enable(22),P.hasPositionAttribute&&c.enable(23),A.push(c.mask)}function R(A){const P=_[A.type];let k;if(P){const F=Gr[P];k=JT.clone(F.uniforms)}else k=A.uniforms;return k}function w(A,P){let k=g.get(P);return k!==void 0?++k.usedTimes:(k=new xN(e,P,A,a),f.push(k),g.set(P,k)),k}function L(A){if(--A.usedTimes===0){const P=f.indexOf(A);f[P]=f[f.length-1],f.pop(),g.delete(A.cacheKey),A.destroy()}}function D(A){h.remove(A)}function O(){h.dispose()}return{getParameters:T,getProgramCacheKey:S,getUniforms:R,acquireProgram:w,releaseProgram:L,releaseShaderCache:D,programs:f,dispose:O}}function AN(){let e=new WeakMap;function t(c){return e.has(c)}function n(c){let h=e.get(c);return h===void 0&&(h={},e.set(c,h)),h}function s(c){e.delete(c)}function a(c,h,d){e.get(c)[h]=d}function l(){e=new WeakMap}return{has:t,get:n,remove:s,update:a,dispose:l}}function CN(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.material.id!==t.material.id?e.material.id-t.material.id:e.materialVariant!==t.materialVariant?e.materialVariant-t.materialVariant:e.z!==t.z?e.z-t.z:e.id-t.id}function gM(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id-t.id}function vM(){const e=[];let t=0;const n=[],s=[],a=[];function l(){t=0,n.length=0,s.length=0,a.length=0}function c(y){let _=0;return y.isInstancedMesh&&(_+=2),y.isSkinnedMesh&&(_+=1),_}function h(y,_,M,T,S,b){let C=e[t];return C===void 0?(C={id:y.id,object:y,geometry:_,material:M,materialVariant:c(y),groupOrder:T,renderOrder:y.renderOrder,z:S,group:b},e[t]=C):(C.id=y.id,C.object=y,C.geometry=_,C.material=M,C.materialVariant=c(y),C.groupOrder=T,C.renderOrder=y.renderOrder,C.z=S,C.group=b),t++,C}function d(y,_,M,T,S,b){const C=h(y,_,M,T,S,b);M.transmission>0?s.push(C):M.transparent===!0?a.push(C):n.push(C)}function f(y,_,M,T,S,b){const C=h(y,_,M,T,S,b);M.transmission>0?s.unshift(C):M.transparent===!0?a.unshift(C):n.unshift(C)}function g(y,_,M){n.length>1&&n.sort(y||CN),s.length>1&&s.sort(_||gM),a.length>1&&a.sort(_||gM),M&&(n.reverse(),s.reverse(),a.reverse())}function v(){for(let y=t,_=e.length;y<_;y++){const M=e[y];if(M.id===null)break;M.id=null,M.object=null,M.geometry=null,M.material=null,M.group=null}}return{opaque:n,transmissive:s,transparent:a,init:l,push:d,unshift:f,finish:v,sort:g}}function RN(){let e=new WeakMap;function t(s,a){const l=e.get(s);let c;return l===void 0?(c=new vM,e.set(s,[c])):a>=l.length?(c=new vM,l.push(c)):c=l[a],c}function n(){e=new WeakMap}return{get:t,dispose:n}}function PN(){const e={};return{get:function(t){if(e[t.id]!==void 0)return e[t.id];let n;switch(t.type){case"DirectionalLight":n={direction:new z,color:new Xe};break;case"SpotLight":n={position:new z,direction:new z,color:new Xe,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new z,color:new Xe,distance:0,decay:0};break;case"HemisphereLight":n={direction:new z,skyColor:new Xe,groundColor:new Xe};break;case"RectAreaLight":n={color:new Xe,position:new z,halfWidth:new z,halfHeight:new z}}return e[t.id]=n,n}}}function IN(){const e={};return{get:function(t){if(e[t.id]!==void 0)return e[t.id];let n;switch(t.type){case"DirectionalLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ye};break;case"SpotLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ye};break;case"PointLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ye,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=n,n}}}var LN=0;function NN(e,t){return(t.castShadow?2:0)-(e.castShadow?2:0)+(t.map?1:0)-(e.map?1:0)}function DN(e){const t=new PN,n=IN(),s={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let f=0;f<9;f++)s.probe.push(new z);const a=new z,l=new St,c=new St;function h(f){let g=0,v=0,y=0;for(let P=0;P<9;P++)s.probe[P].set(0,0,0);let _=0,M=0,T=0,S=0,b=0,C=0,R=0,w=0,L=0,D=0,O=0;f.sort(NN);for(let P=0,k=f.length;P0&&(e.has("OES_texture_float_linear")===!0?(s.rectAreaLTC1=Be.LTC_FLOAT_1,s.rectAreaLTC2=Be.LTC_FLOAT_2):(s.rectAreaLTC1=Be.LTC_HALF_1,s.rectAreaLTC2=Be.LTC_HALF_2)),s.ambient[0]=g,s.ambient[1]=v,s.ambient[2]=y;const A=s.hash;(A.directionalLength!==_||A.pointLength!==M||A.spotLength!==T||A.rectAreaLength!==S||A.hemiLength!==b||A.numDirectionalShadows!==C||A.numPointShadows!==R||A.numSpotShadows!==w||A.numSpotMaps!==L||A.numLightProbes!==O)&&(s.directional.length=_,s.spot.length=T,s.rectArea.length=S,s.point.length=M,s.hemi.length=b,s.directionalShadow.length=C,s.directionalShadowMap.length=C,s.pointShadow.length=R,s.pointShadowMap.length=R,s.spotShadow.length=w,s.spotShadowMap.length=w,s.directionalShadowMatrix.length=C,s.pointShadowMatrix.length=R,s.spotLightMatrix.length=w+L-D,s.spotLightMap.length=L,s.numSpotLightShadowsWithMaps=D,s.numLightProbes=O,A.directionalLength=_,A.pointLength=M,A.spotLength=T,A.rectAreaLength=S,A.hemiLength=b,A.numDirectionalShadows=C,A.numPointShadows=R,A.numSpotShadows=w,A.numSpotMaps=L,A.numLightProbes=O,s.version=LN++)}function d(f,g){let v=0,y=0,_=0,M=0,T=0;const S=g.matrixWorldInverse;for(let b=0,C=f.length;b=c.length?(h=new yM(e),c.push(h)):h=c[l],h}function s(){t=new WeakMap}return{get:n,dispose:s}}var ON=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,FN=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ).rg; + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ).r; + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( max( 0.0, squared_mean - mean * mean ) ); + gl_FragColor = vec4( mean, std_dev, 0.0, 1.0 ); +}`,BN=[new z(1,0,0),new z(-1,0,0),new z(0,1,0),new z(0,-1,0),new z(0,0,1),new z(0,0,-1)],zN=[new z(0,-1,0),new z(0,-1,0),new z(0,0,1),new z(0,0,-1),new z(0,-1,0),new z(0,-1,0)],_M=new St,Fu=new z,kv=new z;function kN(e,t,n){let s=new Go;const a=new ye,l=new ye,c=new cn,h=new Z0,d=new $0,f={},g=n.maxTextureSize,v={0:1,1:0,2:2},y=new cr({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new ye},radius:{value:4}},vertexShader:ON,fragmentShader:FN}),_=y.clone();_.defines.HORIZONTAL_PASS=1;const M=new Lt;M.setAttribute("position",new an(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const T=new Hn(M,y),S=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1;let b=this.type;this.render=function(D,O,A){if(S.enabled===!1||S.autoUpdate===!1&&S.needsUpdate===!1||D.length===0)return;this.type===2&&(Ne("WebGLShadowMap: PCFSoftShadowMap has been deprecated. Using PCFShadowMap instead."),this.type=1);const P=e.getRenderTarget(),k=e.getActiveCubeFace(),F=e.getActiveMipmapLevel(),q=e.state;q.setBlending(0),q.buffers.depth.getReversed()===!0?q.buffers.color.setClear(0,0,0,0):q.buffers.color.setClear(1,1,1,1),q.buffers.depth.setTest(!0),q.setScissorTest(!1);const X=b!==this.type;X&&O.traverse(function(K){K.material&&(Array.isArray(K.material)?K.material.forEach(ee=>ee.needsUpdate=!0):K.material.needsUpdate=!0)});for(let K=0,ee=D.length;Kg||a.y>g)&&(a.x>g&&(l.x=Math.floor(g/me.x),a.x=l.x*me.x,Q.mapSize.x=l.x),a.y>g&&(l.y=Math.floor(g/me.y),a.y=l.y*me.y,Q.mapSize.y=l.y));const _e=e.state.buffers.depth.getReversed();if(Q.camera._reversedDepth=_e,Q.map===null||X===!0){if(Q.map!==null&&(Q.map.depthTexture!==null&&(Q.map.depthTexture.dispose(),Q.map.depthTexture=null),Q.map.dispose()),this.type===3){if(ae.isPointLight){Ne("WebGLShadowMap: VSM shadow maps are not supported for PointLights. Use PCF or BasicShadowMap instead.");continue}Q.map=new lr(a.x,a.y,{format:ju,type:Ha,minFilter:xn,magFilter:xn,generateMipmaps:!1}),Q.map.texture.name=ae.name+".shadowMap",Q.map.depthTexture=new Wo(a.x,a.y,Ks),Q.map.depthTexture.name=ae.name+".shadowMapDepth",Q.map.depthTexture.format=fc,Q.map.depthTexture.compareFunction=null,Q.map.depthTexture.minFilter=qn,Q.map.depthTexture.magFilter=qn}else ae.isPointLight?(Q.map=new sy(a.x),Q.map.depthTexture=new sT(a.x,Js)):(Q.map=new lr(a.x,a.y),Q.map.depthTexture=new Wo(a.x,a.y,Js)),Q.map.depthTexture.name=ae.name+".shadowMap",Q.map.depthTexture.format=fc,this.type===1?(Q.map.depthTexture.compareFunction=_e?518:515,Q.map.depthTexture.minFilter=xn,Q.map.depthTexture.magFilter=xn):(Q.map.depthTexture.compareFunction=null,Q.map.depthTexture.minFilter=qn,Q.map.depthTexture.magFilter=qn);Q.camera.updateProjectionMatrix()}const ge=Q.map.isWebGLCubeRenderTarget?6:1;for(let be=0;be0||O.map&&O.alphaTest>0||O.alphaToCoverage===!0){const q=k.uuid,X=O.uuid;let K=f[q];K===void 0&&(K={},f[q]=K);let ee=K[X];ee===void 0&&(ee=k.clone(),K[X]=ee,O.addEventListener("dispose",L)),k=ee}if(k.visible=O.visible,k.wireframe=O.wireframe,P===3?k.side=O.shadowSide!==null?O.shadowSide:O.side:k.side=O.shadowSide!==null?O.shadowSide:v[O.side],k.alphaMap=O.alphaMap,k.alphaTest=O.alphaToCoverage===!0?.5:O.alphaTest,k.map=O.map,k.clipShadows=O.clipShadows,k.clippingPlanes=O.clippingPlanes,k.clipIntersection=O.clipIntersection,k.displacementMap=O.displacementMap,k.displacementScale=O.displacementScale,k.displacementBias=O.displacementBias,k.wireframeLinewidth=O.wireframeLinewidth,k.linewidth=O.linewidth,A.isPointLight===!0&&k.isMeshDistanceMaterial===!0){const q=e.properties.get(k);q.light=A}return k}function w(D,O,A,P,k){if(D.visible===!1)return;if(D.layers.test(O.layers)&&(D.isMesh||D.isLine||D.isPoints)&&(D.castShadow||D.receiveShadow&&k===3)&&(!D.frustumCulled||s.intersectsObject(D))){D.modelViewMatrix.multiplyMatrices(A.matrixWorldInverse,D.matrixWorld);const q=t.update(D),X=D.material;if(Array.isArray(X)){const K=q.groups;for(let ee=0,ae=K.length;ee=1):_e.indexOf("OpenGL ES")!==-1&&(me=parseFloat(/^OpenGL ES (\d)/.exec(_e)[1]),Q=me>=2);let ge=null,be={};const Ie=e.getParameter(e.SCISSOR_BOX),Ft=e.getParameter(e.VIEWPORT),pt=new cn().fromArray(Ie),ue=new cn().fromArray(Ft);function Ce(j,de,xe,We){const et=new Uint8Array(4),we=e.createTexture();e.bindTexture(j,we),e.texParameteri(j,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(j,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let Fe=0;Fe"u"?!1:/OculusBrowser/g.test(navigator.userAgent),f=new ye,g=new WeakMap,v=new Set;let y;const _=new WeakMap;let M=!1;try{M=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function T(U,I){return M?new OffscreenCanvas(U,I):eh("canvas")}function S(U,I,W){let re=1;const ve=Ut(U);if((ve.width>W||ve.height>W)&&(re=W/Math.max(ve.width,ve.height)),re<1)if(typeof HTMLImageElement<"u"&&U instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&U instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&U instanceof ImageBitmap||typeof VideoFrame<"u"&&U instanceof VideoFrame){const Pe=Math.floor(re*ve.width),Ue=Math.floor(re*ve.height);y===void 0&&(y=T(Pe,Ue));const Z=I?T(Pe,Ue):y;return Z.width=Pe,Z.height=Ue,Z.getContext("2d").drawImage(U,0,0,Pe,Ue),Ne("WebGLRenderer: Texture has been resized from ("+ve.width+"x"+ve.height+") to ("+Pe+"x"+Ue+")."),Z}else return"data"in U&&Ne("WebGLRenderer: Image in DataTexture is too big ("+ve.width+"x"+ve.height+")."),U;return U}function b(U){return U.generateMipmaps}function C(U){e.generateMipmap(U)}function R(U){return U.isWebGLCubeRenderTarget?e.TEXTURE_CUBE_MAP:U.isWebGL3DRenderTarget?e.TEXTURE_3D:U.isWebGLArrayRenderTarget||U.isCompressedArrayTexture?e.TEXTURE_2D_ARRAY:e.TEXTURE_2D}function w(U,I,W,re,ve,Pe=!1){if(U!==null){if(e[U]!==void 0)return e[U];Ne("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+U+"'")}let Ue;re&&(Ue=t.get("EXT_texture_norm16"),Ue||Ne("WebGLRenderer: Unable to use normalized textures without EXT_texture_norm16 extension"));let Z=I;if(I===e.RED&&(W===e.FLOAT&&(Z=e.R32F),W===e.HALF_FLOAT&&(Z=e.R16F),W===e.UNSIGNED_BYTE&&(Z=e.R8),W===e.UNSIGNED_SHORT&&Ue&&(Z=Ue.R16_EXT),W===e.SHORT&&Ue&&(Z=Ue.R16_SNORM_EXT)),I===e.RED_INTEGER&&(W===e.UNSIGNED_BYTE&&(Z=e.R8UI),W===e.UNSIGNED_SHORT&&(Z=e.R16UI),W===e.UNSIGNED_INT&&(Z=e.R32UI),W===e.BYTE&&(Z=e.R8I),W===e.SHORT&&(Z=e.R16I),W===e.INT&&(Z=e.R32I)),I===e.RG&&(W===e.FLOAT&&(Z=e.RG32F),W===e.HALF_FLOAT&&(Z=e.RG16F),W===e.UNSIGNED_BYTE&&(Z=e.RG8),W===e.UNSIGNED_SHORT&&Ue&&(Z=Ue.RG16_EXT),W===e.SHORT&&Ue&&(Z=Ue.RG16_SNORM_EXT)),I===e.RG_INTEGER&&(W===e.UNSIGNED_BYTE&&(Z=e.RG8UI),W===e.UNSIGNED_SHORT&&(Z=e.RG16UI),W===e.UNSIGNED_INT&&(Z=e.RG32UI),W===e.BYTE&&(Z=e.RG8I),W===e.SHORT&&(Z=e.RG16I),W===e.INT&&(Z=e.RG32I)),I===e.RGB_INTEGER&&(W===e.UNSIGNED_BYTE&&(Z=e.RGB8UI),W===e.UNSIGNED_SHORT&&(Z=e.RGB16UI),W===e.UNSIGNED_INT&&(Z=e.RGB32UI),W===e.BYTE&&(Z=e.RGB8I),W===e.SHORT&&(Z=e.RGB16I),W===e.INT&&(Z=e.RGB32I)),I===e.RGBA_INTEGER&&(W===e.UNSIGNED_BYTE&&(Z=e.RGBA8UI),W===e.UNSIGNED_SHORT&&(Z=e.RGBA16UI),W===e.UNSIGNED_INT&&(Z=e.RGBA32UI),W===e.BYTE&&(Z=e.RGBA8I),W===e.SHORT&&(Z=e.RGBA16I),W===e.INT&&(Z=e.RGBA32I)),I===e.RGB&&(W===e.UNSIGNED_SHORT&&Ue&&(Z=Ue.RGB16_EXT),W===e.SHORT&&Ue&&(Z=Ue.RGB16_SNORM_EXT),W===e.UNSIGNED_INT_5_9_9_9_REV&&(Z=e.RGB9_E5),W===e.UNSIGNED_INT_10F_11F_11F_REV&&(Z=e.R11F_G11F_B10F)),I===e.RGBA){const Se=Pe?Ku:Ht.getTransfer(ve);W===e.FLOAT&&(Z=e.RGBA32F),W===e.HALF_FLOAT&&(Z=e.RGBA16F),W===e.UNSIGNED_BYTE&&(Z=Se==="srgb"?e.SRGB8_ALPHA8:e.RGBA8),W===e.UNSIGNED_SHORT&&Ue&&(Z=Ue.RGBA16_EXT),W===e.SHORT&&Ue&&(Z=Ue.RGBA16_SNORM_EXT),W===e.UNSIGNED_SHORT_4_4_4_4&&(Z=e.RGBA4),W===e.UNSIGNED_SHORT_5_5_5_1&&(Z=e.RGB5_A1)}return(Z===e.R16F||Z===e.R32F||Z===e.RG16F||Z===e.RG32F||Z===e.RGBA16F||Z===e.RGBA32F)&&t.get("EXT_color_buffer_float"),Z}function L(U,I){let W;return U?I===null||I===1014||I===1020?W=e.DEPTH24_STENCIL8:I===1015?W=e.DEPTH32F_STENCIL8:I===1012&&(W=e.DEPTH24_STENCIL8,Ne("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):I===null||I===1014||I===1020?W=e.DEPTH_COMPONENT24:I===1015?W=e.DEPTH_COMPONENT32F:I===1012&&(W=e.DEPTH_COMPONENT16),W}function D(U,I){return b(U)===!0||U.isFramebufferTexture&&U.minFilter!==1003&&U.minFilter!==1006?Math.log2(Math.max(I.width,I.height))+1:U.mipmaps!==void 0&&U.mipmaps.length>0?U.mipmaps.length:U.isCompressedTexture&&Array.isArray(U.image)?I.mipmaps.length:1}function O(U){const I=U.target;I.removeEventListener("dispose",O),P(I),I.isVideoTexture&&g.delete(I),I.isHTMLTexture&&v.delete(I)}function A(U){const I=U.target;I.removeEventListener("dispose",A),F(I)}function P(U){const I=s.get(U);if(I.__webglInit===void 0)return;const W=U.source,re=_.get(W);if(re){const ve=re[I.__cacheKey];ve.usedTimes--,ve.usedTimes===0&&k(U),Object.keys(re).length===0&&_.delete(W)}s.remove(U)}function k(U){const I=s.get(U);e.deleteTexture(I.__webglTexture);const W=U.source,re=_.get(W);delete re[I.__cacheKey],c.memory.textures--}function F(U){const I=s.get(U);if(U.depthTexture&&(U.depthTexture.dispose(),s.remove(U.depthTexture)),U.isWebGLCubeRenderTarget)for(let re=0;re<6;re++){if(Array.isArray(I.__webglFramebuffer[re]))for(let ve=0;ve=a.maxTextures&&Ne("WebGLTextures: Trying to use "+U+" texture units while this GPU supports only "+a.maxTextures),q+=1,U}function Q(U){const I=[];return I.push(U.wrapS),I.push(U.wrapT),I.push(U.wrapR||0),I.push(U.magFilter),I.push(U.minFilter),I.push(U.anisotropy),I.push(U.internalFormat),I.push(U.format),I.push(U.type),I.push(U.generateMipmaps),I.push(U.premultiplyAlpha),I.push(U.flipY),I.push(U.unpackAlignment),I.push(U.colorSpace),I.join()}function me(U,I){const W=s.get(U);if(U.isVideoTexture&&un(U),U.isRenderTargetTexture===!1&&U.isExternalTexture!==!0&&U.version>0&&W.__version!==U.version){const re=U.image;if(re===null)Ne("WebGLRenderer: Texture marked for update but no image data found.");else if(re.complete===!1)Ne("WebGLRenderer: Texture marked for update but image is incomplete");else{st(W,U,I);return}}else U.isExternalTexture&&(W.__webglTexture=U.sourceTexture?U.sourceTexture:null);n.bindTexture(e.TEXTURE_2D,W.__webglTexture,e.TEXTURE0+I)}function _e(U,I){const W=s.get(U);if(U.isRenderTargetTexture===!1&&U.version>0&&W.__version!==U.version){st(W,U,I);return}else U.isExternalTexture&&(W.__webglTexture=U.sourceTexture?U.sourceTexture:null);n.bindTexture(e.TEXTURE_2D_ARRAY,W.__webglTexture,e.TEXTURE0+I)}function ge(U,I){const W=s.get(U);if(U.isRenderTargetTexture===!1&&U.version>0&&W.__version!==U.version){st(W,U,I);return}n.bindTexture(e.TEXTURE_3D,W.__webglTexture,e.TEXTURE0+I)}function be(U,I){const W=s.get(U);if(U.isCubeDepthTexture!==!0&&U.version>0&&W.__version!==U.version){ht(W,U,I);return}n.bindTexture(e.TEXTURE_CUBE_MAP,W.__webglTexture,e.TEXTURE0+I)}const Ie={[qu]:e.REPEAT,[ji]:e.CLAMP_TO_EDGE,[Yu]:e.MIRRORED_REPEAT},Ft={[qn]:e.NEAREST,[g0]:e.NEAREST_MIPMAP_NEAREST,[v0]:e.NEAREST_MIPMAP_LINEAR,[xn]:e.LINEAR,[y0]:e.LINEAR_MIPMAP_NEAREST,[bc]:e.LINEAR_MIPMAP_LINEAR},pt={512:e.NEVER,519:e.ALWAYS,513:e.LESS,515:e.LEQUAL,514:e.EQUAL,518:e.GEQUAL,516:e.GREATER,517:e.NOTEQUAL};function ue(U,I){if(I.type===1015&&t.has("OES_texture_float_linear")===!1&&(I.magFilter===1006||I.magFilter===1007||I.magFilter===1005||I.magFilter===1008||I.minFilter===1006||I.minFilter===1007||I.minFilter===1005||I.minFilter===1008)&&Ne("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),e.texParameteri(U,e.TEXTURE_WRAP_S,Ie[I.wrapS]),e.texParameteri(U,e.TEXTURE_WRAP_T,Ie[I.wrapT]),(U===e.TEXTURE_3D||U===e.TEXTURE_2D_ARRAY)&&e.texParameteri(U,e.TEXTURE_WRAP_R,Ie[I.wrapR]),e.texParameteri(U,e.TEXTURE_MAG_FILTER,Ft[I.magFilter]),e.texParameteri(U,e.TEXTURE_MIN_FILTER,Ft[I.minFilter]),I.compareFunction&&(e.texParameteri(U,e.TEXTURE_COMPARE_MODE,e.COMPARE_REF_TO_TEXTURE),e.texParameteri(U,e.TEXTURE_COMPARE_FUNC,pt[I.compareFunction])),t.has("EXT_texture_filter_anisotropic")===!0){if(I.magFilter===1003||I.minFilter!==1005&&I.minFilter!==1008||I.type===1015&&t.has("OES_texture_float_linear")===!1)return;if(I.anisotropy>1||s.get(I).__currentAnisotropy){const W=t.get("EXT_texture_filter_anisotropic");e.texParameterf(U,W.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(I.anisotropy,a.getMaxAnisotropy())),s.get(I).__currentAnisotropy=I.anisotropy}}}function Ce(U,I){let W=!1;U.__webglInit===void 0&&(U.__webglInit=!0,I.addEventListener("dispose",O));const re=I.source;let ve=_.get(re);ve===void 0&&(ve={},_.set(re,ve));const Pe=Q(I);if(Pe!==U.__cacheKey){ve[Pe]===void 0&&(ve[Pe]={texture:e.createTexture(),usedTimes:0},c.memory.textures++,W=!0),ve[Pe].usedTimes++;const Ue=ve[U.__cacheKey];Ue!==void 0&&(ve[U.__cacheKey].usedTimes--,Ue.usedTimes===0&&k(I)),U.__cacheKey=Pe,U.__webglTexture=ve[Pe].texture}return W}function ke(U,I,W){return Math.floor(Math.floor(U/W)/I)}function De(U,I,W,re){const Pe=U.updateRanges;if(Pe.length===0)n.texSubImage2D(e.TEXTURE_2D,0,0,0,I.width,I.height,W,re,I.data);else{Pe.sort((Qe,Te)=>Qe.start-Te.start);let Ue=0;for(let Qe=1;Qe0){$e&&ct&&n.texStorage2D(e.TEXTURE_2D,j,Qe,nt[0].width,nt[0].height);for(let de=0,xe=nt.length;de0){const We=i0(Te.width,Te.height,I.format,I.type);for(const et of I.layerUpdates){const we=Te.data.subarray(et*We/Te.data.BYTES_PER_ELEMENT,(et+1)*We/Te.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(e.TEXTURE_2D_ARRAY,de,0,0,et,Te.width,Te.height,1,Se,we)}I.clearLayerUpdates()}else n.compressedTexSubImage3D(e.TEXTURE_2D_ARRAY,de,0,0,0,Te.width,Te.height,Z.depth,Se,Te.data)}else n.compressedTexImage3D(e.TEXTURE_2D_ARRAY,de,Qe,Te.width,Te.height,Z.depth,0,Te.data,0,0);else Ne("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else $e?jt&&n.texSubImage3D(e.TEXTURE_2D_ARRAY,de,0,0,0,Te.width,Te.height,Z.depth,Se,Ge,Te.data):n.texImage3D(e.TEXTURE_2D_ARRAY,de,Qe,Te.width,Te.height,Z.depth,0,Se,Ge,Te.data)}else{$e&&ct&&n.texStorage2D(e.TEXTURE_2D,j,Qe,nt[0].width,nt[0].height);for(let de=0,xe=nt.length;de0){const de=i0(Z.width,Z.height,I.format,I.type);for(const xe of I.layerUpdates){const We=Z.data.subarray(xe*de/Z.data.BYTES_PER_ELEMENT,(xe+1)*de/Z.data.BYTES_PER_ELEMENT);n.texSubImage3D(e.TEXTURE_2D_ARRAY,0,0,0,xe,Z.width,Z.height,1,Se,Ge,We)}I.clearLayerUpdates()}else n.texSubImage3D(e.TEXTURE_2D_ARRAY,0,0,0,0,Z.width,Z.height,Z.depth,Se,Ge,Z.data)}else n.texImage3D(e.TEXTURE_2D_ARRAY,0,Qe,Z.width,Z.height,Z.depth,0,Se,Ge,Z.data);else if(I.isData3DTexture)$e?(ct&&n.texStorage3D(e.TEXTURE_3D,j,Qe,Z.width,Z.height,Z.depth),jt&&n.texSubImage3D(e.TEXTURE_3D,0,0,0,0,Z.width,Z.height,Z.depth,Se,Ge,Z.data)):n.texImage3D(e.TEXTURE_3D,0,Qe,Z.width,Z.height,Z.depth,0,Se,Ge,Z.data);else if(I.isFramebufferTexture){if(ct)if($e)n.texStorage2D(e.TEXTURE_2D,j,Qe,Z.width,Z.height);else{let de=Z.width,xe=Z.height;for(let We=0;We>=1,xe>>=1}}else if(I.isHTMLTexture){if("texElementImage2D"in e){const de=e.canvas;if(de.hasAttribute("layoutsubtree")||de.setAttribute("layoutsubtree","true"),Z.parentNode!==de){de.appendChild(Z),v.add(I),de.onpaint=xe=>{const We=xe.changedElements;for(const et of v)We.includes(et.image)&&(et.needsUpdate=!0)},de.requestPaint();return}if(e.texElementImage2D.length===3)e.texElementImage2D(e.TEXTURE_2D,e.RGBA8,Z);else{const We=e.RGBA,et=e.RGBA,we=e.UNSIGNED_BYTE;e.texElementImage2D(e.TEXTURE_2D,0,We,et,we,Z)}e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}}else if(nt.length>0){if($e&&ct){const de=Ut(nt[0]);n.texStorage2D(e.TEXTURE_2D,j,Qe,de.width,de.height)}for(let de=0,xe=nt.length;de0&&We++;const we=Ut(Te[0]);n.texStorage2D(e.TEXTURE_CUBE_MAP,We,jt,we.width,we.height)}for(let we=0;we<6;we++)if(Qe){j?xe&&n.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+we,0,0,0,Te[we].width,Te[we].height,$e,ct,Te[we].data):n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+we,0,jt,Te[we].width,Te[we].height,0,$e,ct,Te[we].data);for(let Fe=0;Fe>Pe),nt=Math.max(1,I.height>>Pe);ve===e.TEXTURE_3D||ve===e.TEXTURE_2D_ARRAY?n.texImage3D(ve,Pe,Se,Te,nt,I.depth,0,Ue,Z,null):n.texImage2D(ve,Pe,Se,Te,nt,0,Ue,Z,null)}n.bindFramebuffer(e.FRAMEBUFFER,U),V(I)?h.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,re,ve,Qe.__webglTexture,0,bt(I)):(ve===e.TEXTURE_2D||ve>=e.TEXTURE_CUBE_MAP_POSITIVE_X&&ve<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,re,ve,Qe.__webglTexture,Pe),n.bindFramebuffer(e.FRAMEBUFFER,null)}function At(U,I,W){if(e.bindRenderbuffer(e.RENDERBUFFER,U),I.depthBuffer){const re=I.depthTexture,ve=re&&re.isDepthTexture?re.type:null,Pe=L(I.stencilBuffer,ve),Ue=I.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT;V(I)?h.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,bt(I),Pe,I.width,I.height):W?e.renderbufferStorageMultisample(e.RENDERBUFFER,bt(I),Pe,I.width,I.height):e.renderbufferStorage(e.RENDERBUFFER,Pe,I.width,I.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,Ue,e.RENDERBUFFER,U)}else{const re=I.textures;for(let ve=0;ve{delete I.__boundDepthTexture,delete I.__depthDisposeCallback,re.removeEventListener("dispose",ve)};re.addEventListener("dispose",ve),I.__depthDisposeCallback=ve}I.__boundDepthTexture=re}if(U.depthTexture&&!I.__autoAllocateDepthBuffer)if(W)for(let re=0;re<6;re++)pe(I.__webglFramebuffer[re],U,re);else{const re=U.texture.mipmaps;re&&re.length>0?pe(I.__webglFramebuffer[0],U,0):pe(I.__webglFramebuffer,U,0)}else if(W){I.__webglDepthbuffer=[];for(let re=0;re<6;re++)if(n.bindFramebuffer(e.FRAMEBUFFER,I.__webglFramebuffer[re]),I.__webglDepthbuffer[re]===void 0)I.__webglDepthbuffer[re]=e.createRenderbuffer(),At(I.__webglDepthbuffer[re],U,!1);else{const ve=U.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,Pe=I.__webglDepthbuffer[re];e.bindRenderbuffer(e.RENDERBUFFER,Pe),e.framebufferRenderbuffer(e.FRAMEBUFFER,ve,e.RENDERBUFFER,Pe)}}else{const re=U.texture.mipmaps;if(re&&re.length>0?n.bindFramebuffer(e.FRAMEBUFFER,I.__webglFramebuffer[0]):n.bindFramebuffer(e.FRAMEBUFFER,I.__webglFramebuffer),I.__webglDepthbuffer===void 0)I.__webglDepthbuffer=e.createRenderbuffer(),At(I.__webglDepthbuffer,U,!1);else{const ve=U.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,Pe=I.__webglDepthbuffer;e.bindRenderbuffer(e.RENDERBUFFER,Pe),e.framebufferRenderbuffer(e.FRAMEBUFFER,ve,e.RENDERBUFFER,Pe)}}n.bindFramebuffer(e.FRAMEBUFFER,null)}function Ae(U,I,W){const re=s.get(U);I!==void 0&&Le(re.__webglFramebuffer,U,U.texture,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,0),W!==void 0&&Ee(U)}function Ve(U){const I=U.texture,W=s.get(U),re=s.get(I);U.addEventListener("dispose",A);const ve=U.textures,Pe=U.isWebGLCubeRenderTarget===!0,Ue=ve.length>1;if(Ue||(re.__webglTexture===void 0&&(re.__webglTexture=e.createTexture()),re.__version=I.version,c.memory.textures++),Pe){W.__webglFramebuffer=[];for(let Z=0;Z<6;Z++)if(I.mipmaps&&I.mipmaps.length>0){W.__webglFramebuffer[Z]=[];for(let Se=0;Se0){W.__webglFramebuffer=[];for(let Z=0;Z0&&V(U)===!1){W.__webglMultisampledFramebuffer=e.createFramebuffer(),W.__webglColorRenderbuffer=[],n.bindFramebuffer(e.FRAMEBUFFER,W.__webglMultisampledFramebuffer);for(let Z=0;Z0)for(let Se=0;Se0)for(let Se=0;Se0){if(V(U)===!1){const I=U.textures,W=U.width,re=U.height;let ve=e.COLOR_BUFFER_BIT;const Pe=U.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,Ue=s.get(U),Z=I.length>1;if(Z)for(let Ge=0;Ge0?n.bindFramebuffer(e.DRAW_FRAMEBUFFER,Ue.__webglFramebuffer[0]):n.bindFramebuffer(e.DRAW_FRAMEBUFFER,Ue.__webglFramebuffer);for(let Ge=0;Ge0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&I.__useRenderToTexture!==!1}function un(U){const I=c.render.frame;g.get(U)!==I&&(g.set(U,I),U.update())}function Gt(U,I){const W=U.colorSpace,re=U.format,ve=U.type;return U.isCompressedTexture===!0||U.isVideoTexture===!0||W!=="srgb-linear"&&W!==""&&(Ht.getTransfer(W)==="srgb"?(re!==1023||ve!==1009)&&Ne("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):rt("WebGLTextures: Unsupported texture color space:",W)),I}function Ut(U){return typeof HTMLImageElement<"u"&&U instanceof HTMLImageElement?(f.width=U.naturalWidth||U.width,f.height=U.naturalHeight||U.height):typeof VideoFrame<"u"&&U instanceof VideoFrame?(f.width=U.displayWidth,f.height=U.displayHeight):(f.width=U.width,f.height=U.height),f}this.allocateTextureUnit=ae,this.resetTextureUnits=X,this.getTextureUnits=K,this.setTextureUnits=ee,this.setTexture2D=me,this.setTexture2DArray=_e,this.setTexture3D=ge,this.setTextureCube=be,this.rebindTextures=Ae,this.setupRenderTarget=Ve,this.updateRenderTargetMipmap=Oe,this.updateMultisampleRenderTarget=vt,this.setupDepthRenderbuffer=Ee,this.setupFrameBufferTexture=Le,this.useMultisampledRTT=V,this.isReversedDepthBuffer=function(){return n.buffers.depth.getReversed()}}function VE(e,t){function n(s,a=""){let l;const c=Ht.getTransfer(a);if(s===1009)return e.UNSIGNED_BYTE;if(s===1017)return e.UNSIGNED_SHORT_4_4_4_4;if(s===1018)return e.UNSIGNED_SHORT_5_5_5_1;if(s===35902)return e.UNSIGNED_INT_5_9_9_9_REV;if(s===35899)return e.UNSIGNED_INT_10F_11F_11F_REV;if(s===1010)return e.BYTE;if(s===1011)return e.SHORT;if(s===1012)return e.UNSIGNED_SHORT;if(s===1013)return e.INT;if(s===1014)return e.UNSIGNED_INT;if(s===1015)return e.FLOAT;if(s===1016)return e.HALF_FLOAT;if(s===1021)return e.ALPHA;if(s===1022)return e.RGB;if(s===1023)return e.RGBA;if(s===1026)return e.DEPTH_COMPONENT;if(s===1027)return e.DEPTH_STENCIL;if(s===1028)return e.RED;if(s===1029)return e.RED_INTEGER;if(s===1030)return e.RG;if(s===1031)return e.RG_INTEGER;if(s===1033)return e.RGBA_INTEGER;if(s===33776||s===33777||s===33778||s===33779)if(c==="srgb")if(l=t.get("WEBGL_compressed_texture_s3tc_srgb"),l!==null){if(s===33776)return l.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===33777)return l.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===33778)return l.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===33779)return l.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(l=t.get("WEBGL_compressed_texture_s3tc"),l!==null){if(s===33776)return l.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===33777)return l.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===33778)return l.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===33779)return l.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===35840||s===35841||s===35842||s===35843)if(l=t.get("WEBGL_compressed_texture_pvrtc"),l!==null){if(s===35840)return l.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===35841)return l.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===35842)return l.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===35843)return l.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===36196||s===37492||s===37496||s===37488||s===37489||s===37490||s===37491)if(l=t.get("WEBGL_compressed_texture_etc"),l!==null){if(s===36196||s===37492)return c==="srgb"?l.COMPRESSED_SRGB8_ETC2:l.COMPRESSED_RGB8_ETC2;if(s===37496)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:l.COMPRESSED_RGBA8_ETC2_EAC;if(s===37488)return l.COMPRESSED_R11_EAC;if(s===37489)return l.COMPRESSED_SIGNED_R11_EAC;if(s===37490)return l.COMPRESSED_RG11_EAC;if(s===37491)return l.COMPRESSED_SIGNED_RG11_EAC}else return null;if(s===37808||s===37809||s===37810||s===37811||s===37812||s===37813||s===37814||s===37815||s===37816||s===37817||s===37818||s===37819||s===37820||s===37821)if(l=t.get("WEBGL_compressed_texture_astc"),l!==null){if(s===37808)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:l.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===37809)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:l.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===37810)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:l.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===37811)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:l.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===37812)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:l.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===37813)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:l.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===37814)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:l.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===37815)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:l.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===37816)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:l.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===37817)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:l.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===37818)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:l.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===37819)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:l.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===37820)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:l.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===37821)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:l.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===36492||s===36494||s===36495)if(l=t.get("EXT_texture_compression_bptc"),l!==null){if(s===36492)return c==="srgb"?l.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:l.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===36494)return l.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===36495)return l.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===36283||s===36284||s===36285||s===36286)if(l=t.get("EXT_texture_compression_rgtc"),l!==null){if(s===36283)return l.COMPRESSED_RED_RGTC1_EXT;if(s===36284)return l.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===36285)return l.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===36286)return l.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===1020?e.UNSIGNED_INT_24_8:e[s]!==void 0?e[s]:null}return{convert:n}}var GN=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,WN=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`,XN=class{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t){if(this.texture===null){const n=new O0(e.texture);(e.depthNear!==t.depthNear||e.depthFar!==t.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=n}}getMesh(e){if(this.texture!==null&&this.mesh===null){const t=e.cameras[0].viewport,n=new cr({vertexShader:GN,fragmentShader:WN,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new Hn(new fp(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}},qN=class extends Wr{constructor(e,t){super();const n=this;let s=null,a=1,l=null,c="local-floor",h=1,d=null,f=null,g=null,v=null,y=null,_=null;const M=typeof XRWebGLBinding<"u",T=new XN,S={},b=t.getContextAttributes();let C=null,R=null;const w=[],L=[],D=new ye;let O=null;const A=new ni;A.viewport=new cn;const P=new ni;P.viewport=new cn;const k=[A,P],F=new wE;let q=null,X=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(ue){let Ce=w[ue];return Ce===void 0&&(Ce=new qf,w[ue]=Ce),Ce.getTargetRaySpace()},this.getControllerGrip=function(ue){let Ce=w[ue];return Ce===void 0&&(Ce=new qf,w[ue]=Ce),Ce.getGripSpace()},this.getHand=function(ue){let Ce=w[ue];return Ce===void 0&&(Ce=new qf,w[ue]=Ce),Ce.getHandSpace()};function K(ue){const Ce=L.indexOf(ue.inputSource);if(Ce===-1)return;const ke=w[Ce];ke!==void 0&&(ke.update(ue.inputSource,ue.frame,d||l),ke.dispatchEvent({type:ue.type,data:ue.inputSource}))}function ee(){s.removeEventListener("select",K),s.removeEventListener("selectstart",K),s.removeEventListener("selectend",K),s.removeEventListener("squeeze",K),s.removeEventListener("squeezestart",K),s.removeEventListener("squeezeend",K),s.removeEventListener("end",ee),s.removeEventListener("inputsourceschange",ae);for(let ue=0;ue=0&&(L[De]=null,w[De].disconnect(ke))}for(let Ce=0;Ce=L.length){L.push(ke),De=ht;break}else if(L[ht]===null){L[ht]=ke,De=ht;break}if(De===-1)break}const st=w[De];st&&st.connect(ke)}}const Q=new z,me=new z;function _e(ue,Ce,ke){Q.setFromMatrixPosition(Ce.matrixWorld),me.setFromMatrixPosition(ke.matrixWorld);const De=Q.distanceTo(me),st=Ce.projectionMatrix.elements,ht=ke.projectionMatrix.elements,Le=st[14]/(st[10]-1),At=st[14]/(st[10]+1),pe=(st[9]+1)/st[5],Ee=(st[9]-1)/st[5],Ae=(st[8]-1)/st[0],Ve=(ht[8]+1)/ht[0],Oe=Le*Ae,qe=Le*Ve,tt=De/(-Ae+Ve),vt=tt*-Ae;if(Ce.matrixWorld.decompose(ue.position,ue.quaternion,ue.scale),ue.translateX(vt),ue.translateZ(tt),ue.matrixWorld.compose(ue.position,ue.quaternion,ue.scale),ue.matrixWorldInverse.copy(ue.matrixWorld).invert(),st[10]===-1)ue.projectionMatrix.copy(Ce.projectionMatrix),ue.projectionMatrixInverse.copy(Ce.projectionMatrixInverse);else{const bt=Le+tt,V=At+tt,un=Oe-vt,Gt=qe+(De-vt),Ut=pe*At/V*bt,U=Ee*At/V*bt;ue.projectionMatrix.makePerspective(un,Gt,Ut,U,bt,V),ue.projectionMatrixInverse.copy(ue.projectionMatrix).invert()}}function ge(ue,Ce){Ce===null?ue.matrixWorld.copy(ue.matrix):ue.matrixWorld.multiplyMatrices(Ce.matrixWorld,ue.matrix),ue.matrixWorldInverse.copy(ue.matrixWorld).invert()}this.updateCamera=function(ue){if(s===null)return;let Ce=ue.near,ke=ue.far;T.texture!==null&&(T.depthNear>0&&(Ce=T.depthNear),T.depthFar>0&&(ke=T.depthFar)),F.near=P.near=A.near=Ce,F.far=P.far=A.far=ke,(q!==F.near||X!==F.far)&&(s.updateRenderState({depthNear:F.near,depthFar:F.far}),q=F.near,X=F.far),F.layers.mask=ue.layers.mask|6,A.layers.mask=F.layers.mask&-5,P.layers.mask=F.layers.mask&-3;const De=ue.parent,st=F.cameras;ge(F,De);for(let ht=0;ht0&&(S.alphaTest.value=b.alphaTest);const C=t.get(b),R=C.envMap,w=C.envMapRotation;R&&(S.envMap.value=R,S.envMapRotation.value.setFromMatrix4(YN.makeRotationFromEuler(w)).transpose(),R.isCubeTexture&&R.isRenderTargetTexture===!1&&S.envMapRotation.value.premultiply(HE),S.reflectivity.value=b.reflectivity,S.ior.value=b.ior,S.refractionRatio.value=b.refractionRatio),b.lightMap&&(S.lightMap.value=b.lightMap,S.lightMapIntensity.value=b.lightMapIntensity,n(b.lightMap,S.lightMapTransform)),b.aoMap&&(S.aoMap.value=b.aoMap,S.aoMapIntensity.value=b.aoMapIntensity,n(b.aoMap,S.aoMapTransform))}function c(S,b){S.diffuse.value.copy(b.color),S.opacity.value=b.opacity,b.map&&(S.map.value=b.map,n(b.map,S.mapTransform))}function h(S,b){S.dashSize.value=b.dashSize,S.totalSize.value=b.dashSize+b.gapSize,S.scale.value=b.scale}function d(S,b,C,R){S.diffuse.value.copy(b.color),S.opacity.value=b.opacity,S.size.value=b.size*C,S.scale.value=R*.5,b.map&&(S.map.value=b.map,n(b.map,S.uvTransform)),b.alphaMap&&(S.alphaMap.value=b.alphaMap,n(b.alphaMap,S.alphaMapTransform)),b.alphaTest>0&&(S.alphaTest.value=b.alphaTest)}function f(S,b){S.diffuse.value.copy(b.color),S.opacity.value=b.opacity,S.rotation.value=b.rotation,b.map&&(S.map.value=b.map,n(b.map,S.mapTransform)),b.alphaMap&&(S.alphaMap.value=b.alphaMap,n(b.alphaMap,S.alphaMapTransform)),b.alphaTest>0&&(S.alphaTest.value=b.alphaTest)}function g(S,b){S.specular.value.copy(b.specular),S.shininess.value=Math.max(b.shininess,1e-4)}function v(S,b){b.gradientMap&&(S.gradientMap.value=b.gradientMap)}function y(S,b){S.metalness.value=b.metalness,b.metalnessMap&&(S.metalnessMap.value=b.metalnessMap,n(b.metalnessMap,S.metalnessMapTransform)),S.roughness.value=b.roughness,b.roughnessMap&&(S.roughnessMap.value=b.roughnessMap,n(b.roughnessMap,S.roughnessMapTransform)),b.envMap&&(S.envMapIntensity.value=b.envMapIntensity)}function _(S,b,C){S.ior.value=b.ior,b.sheen>0&&(S.sheenColor.value.copy(b.sheenColor).multiplyScalar(b.sheen),S.sheenRoughness.value=b.sheenRoughness,b.sheenColorMap&&(S.sheenColorMap.value=b.sheenColorMap,n(b.sheenColorMap,S.sheenColorMapTransform)),b.sheenRoughnessMap&&(S.sheenRoughnessMap.value=b.sheenRoughnessMap,n(b.sheenRoughnessMap,S.sheenRoughnessMapTransform))),b.clearcoat>0&&(S.clearcoat.value=b.clearcoat,S.clearcoatRoughness.value=b.clearcoatRoughness,b.clearcoatMap&&(S.clearcoatMap.value=b.clearcoatMap,n(b.clearcoatMap,S.clearcoatMapTransform)),b.clearcoatRoughnessMap&&(S.clearcoatRoughnessMap.value=b.clearcoatRoughnessMap,n(b.clearcoatRoughnessMap,S.clearcoatRoughnessMapTransform)),b.clearcoatNormalMap&&(S.clearcoatNormalMap.value=b.clearcoatNormalMap,n(b.clearcoatNormalMap,S.clearcoatNormalMapTransform),S.clearcoatNormalScale.value.copy(b.clearcoatNormalScale),b.side===1&&S.clearcoatNormalScale.value.negate())),b.dispersion>0&&(S.dispersion.value=b.dispersion),b.iridescence>0&&(S.iridescence.value=b.iridescence,S.iridescenceIOR.value=b.iridescenceIOR,S.iridescenceThicknessMinimum.value=b.iridescenceThicknessRange[0],S.iridescenceThicknessMaximum.value=b.iridescenceThicknessRange[1],b.iridescenceMap&&(S.iridescenceMap.value=b.iridescenceMap,n(b.iridescenceMap,S.iridescenceMapTransform)),b.iridescenceThicknessMap&&(S.iridescenceThicknessMap.value=b.iridescenceThicknessMap,n(b.iridescenceThicknessMap,S.iridescenceThicknessMapTransform))),b.transmission>0&&(S.transmission.value=b.transmission,S.transmissionSamplerMap.value=C.texture,S.transmissionSamplerSize.value.set(C.width,C.height),b.transmissionMap&&(S.transmissionMap.value=b.transmissionMap,n(b.transmissionMap,S.transmissionMapTransform)),S.thickness.value=b.thickness,b.thicknessMap&&(S.thicknessMap.value=b.thicknessMap,n(b.thicknessMap,S.thicknessMapTransform)),S.attenuationDistance.value=b.attenuationDistance,S.attenuationColor.value.copy(b.attenuationColor)),b.anisotropy>0&&(S.anisotropyVector.value.set(b.anisotropy*Math.cos(b.anisotropyRotation),b.anisotropy*Math.sin(b.anisotropyRotation)),b.anisotropyMap&&(S.anisotropyMap.value=b.anisotropyMap,n(b.anisotropyMap,S.anisotropyMapTransform))),S.specularIntensity.value=b.specularIntensity,S.specularColor.value.copy(b.specularColor),b.specularColorMap&&(S.specularColorMap.value=b.specularColorMap,n(b.specularColorMap,S.specularColorMapTransform)),b.specularIntensityMap&&(S.specularIntensityMap.value=b.specularIntensityMap,n(b.specularIntensityMap,S.specularIntensityMapTransform))}function M(S,b){b.matcap&&(S.matcap.value=b.matcap)}function T(S,b){const C=t.get(b).light;S.referencePosition.value.setFromMatrixPosition(C.matrixWorld),S.nearDistance.value=C.shadow.camera.near,S.farDistance.value=C.shadow.camera.far}return{refreshFogUniforms:s,refreshMaterialUniforms:a}}function ZN(e,t,n,s){let a={},l={},c=[];const h=e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS);function d(w,L){const D=L.program;s.uniformBlockBinding(w,D)}function f(w,L){let D=a[w.id];D===void 0&&(S(w),D=g(w),a[w.id]=D,w.addEventListener("dispose",C));const O=L.program;s.updateUBOMapping(w,O);const A=t.render.frame;l[w.id]!==A&&(y(w),l[w.id]=A)}function g(w){const L=v();w.__bindingPointIndex=L;const D=e.createBuffer(),O=w.__size,A=w.usage;return e.bindBuffer(e.UNIFORM_BUFFER,D),e.bufferData(e.UNIFORM_BUFFER,O,A),e.bindBuffer(e.UNIFORM_BUFFER,null),e.bindBufferBase(e.UNIFORM_BUFFER,L,D),D}function v(){for(let w=0;w0&&(D+=O-A),w.__size=D,w.__cache={},this}function b(w){const L={boundary:0,storage:0};return typeof w=="number"||typeof w=="boolean"?(L.boundary=4,L.storage=4):w.isVector2?(L.boundary=8,L.storage=8):w.isVector3||w.isColor?(L.boundary=16,L.storage=12):w.isVector4?(L.boundary=16,L.storage=16):w.isMatrix3?(L.boundary=48,L.storage=48):w.isMatrix4?(L.boundary=64,L.storage=64):w.isTexture?Ne("WebGLRenderer: Texture samplers can not be part of an uniforms group."):ArrayBuffer.isView(w)?(L.boundary=16,L.storage=w.byteLength):Ne("WebGLRenderer: Unsupported uniform value type.",w),L}function C(w){const L=w.target;L.removeEventListener("dispose",C);const D=c.indexOf(L.__bindingPointIndex);c.splice(D,1),e.deleteBuffer(a[L.id]),delete a[L.id],delete l[L.id]}function R(){for(const w in a)e.deleteBuffer(a[w]);c=[],a={},l={}}return{bind:d,update:f,dispose:R}}var $N=new Uint16Array([12469,15057,12620,14925,13266,14620,13807,14376,14323,13990,14545,13625,14713,13328,14840,12882,14931,12528,14996,12233,15039,11829,15066,11525,15080,11295,15085,10976,15082,10705,15073,10495,13880,14564,13898,14542,13977,14430,14158,14124,14393,13732,14556,13410,14702,12996,14814,12596,14891,12291,14937,11834,14957,11489,14958,11194,14943,10803,14921,10506,14893,10278,14858,9960,14484,14039,14487,14025,14499,13941,14524,13740,14574,13468,14654,13106,14743,12678,14818,12344,14867,11893,14889,11509,14893,11180,14881,10751,14852,10428,14812,10128,14765,9754,14712,9466,14764,13480,14764,13475,14766,13440,14766,13347,14769,13070,14786,12713,14816,12387,14844,11957,14860,11549,14868,11215,14855,10751,14825,10403,14782,10044,14729,9651,14666,9352,14599,9029,14967,12835,14966,12831,14963,12804,14954,12723,14936,12564,14917,12347,14900,11958,14886,11569,14878,11247,14859,10765,14828,10401,14784,10011,14727,9600,14660,9289,14586,8893,14508,8533,15111,12234,15110,12234,15104,12216,15092,12156,15067,12010,15028,11776,14981,11500,14942,11205,14902,10752,14861,10393,14812,9991,14752,9570,14682,9252,14603,8808,14519,8445,14431,8145,15209,11449,15208,11451,15202,11451,15190,11438,15163,11384,15117,11274,15055,10979,14994,10648,14932,10343,14871,9936,14803,9532,14729,9218,14645,8742,14556,8381,14461,8020,14365,7603,15273,10603,15272,10607,15267,10619,15256,10631,15231,10614,15182,10535,15118,10389,15042,10167,14963,9787,14883,9447,14800,9115,14710,8665,14615,8318,14514,7911,14411,7507,14279,7198,15314,9675,15313,9683,15309,9712,15298,9759,15277,9797,15229,9773,15166,9668,15084,9487,14995,9274,14898,8910,14800,8539,14697,8234,14590,7790,14479,7409,14367,7067,14178,6621,15337,8619,15337,8631,15333,8677,15325,8769,15305,8871,15264,8940,15202,8909,15119,8775,15022,8565,14916,8328,14804,8009,14688,7614,14569,7287,14448,6888,14321,6483,14088,6171,15350,7402,15350,7419,15347,7480,15340,7613,15322,7804,15287,7973,15229,8057,15148,8012,15046,7846,14933,7611,14810,7357,14682,7069,14552,6656,14421,6316,14251,5948,14007,5528,15356,5942,15356,5977,15353,6119,15348,6294,15332,6551,15302,6824,15249,7044,15171,7122,15070,7050,14949,6861,14818,6611,14679,6349,14538,6067,14398,5651,14189,5311,13935,4958,15359,4123,15359,4153,15356,4296,15353,4646,15338,5160,15311,5508,15263,5829,15188,6042,15088,6094,14966,6001,14826,5796,14678,5543,14527,5287,14377,4985,14133,4586,13869,4257,15360,1563,15360,1642,15358,2076,15354,2636,15341,3350,15317,4019,15273,4429,15203,4732,15105,4911,14981,4932,14836,4818,14679,4621,14517,4386,14359,4156,14083,3795,13808,3437,15360,122,15360,137,15358,285,15355,636,15344,1274,15322,2177,15281,2765,15215,3223,15120,3451,14995,3569,14846,3567,14681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]),ds=null;function JN(){return ds===null&&(ds=new Sr($N,16,16,ju,Ha),ds.name="DFG_LUT",ds.minFilter=xn,ds.magFilter=xn,ds.wrapS=ji,ds.wrapT=ji,ds.generateMipmaps=!1,ds.needsUpdate=!0),ds}var GE=class{constructor(e={}){const{canvas:t=Pw(),context:n=null,depth:s=!0,stencil:a=!1,alpha:l=!1,antialias:c=!1,premultipliedAlpha:h=!0,preserveDrawingBuffer:d=!1,powerPreference:f="default",failIfMajorPerformanceCaveat:g=!1,reversedDepthBuffer:v=!1,outputBufferType:y=Zs}=e;this.isWebGLRenderer=!0;let _;if(n!==null){if(typeof WebGLRenderingContext<"u"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");_=n.getContextAttributes().alpha}else _=l;const M=y,T=new Set([E0,T0,sp]),S=new Set([Zs,Js,_0,S0,b0,x0]),b=new Uint32Array(4),C=new Int32Array(4),R=new z;let w=null,L=null;const D=[],O=[];let A=null;this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=0,this.toneMappingExposure=1,this.transmissionResolutionScale=1;const P=this;let k=!1,F=null,q=null,X=null,K=null;this._outputColorSpace=xi;let ee=0,ae=0,Q=null,me=-1,_e=null;const ge=new cn,be=new cn;let Ie=null;const Ft=new Xe(0);let pt=0,ue=t.width,Ce=t.height,ke=1,De=null,st=null;const ht=new cn(0,0,ue,Ce),Le=new cn(0,0,ue,Ce);let At=!1;const pe=new Go;let Ee=!1,Ae=!1;const Ve=new St,Oe=new z,qe=new cn,tt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let vt=!1;function bt(){return Q===null?ke:1}let V=n;function un(N,$){return t.getContext(N,$)}try{const N={alpha:!0,depth:s,stencil:a,antialias:c,premultipliedAlpha:h,preserveDrawingBuffer:d,powerPreference:f,failIfMajorPerformanceCaveat:g};if("setAttribute"in t&&t.setAttribute("data-engine","three.js r185"),t.addEventListener("webglcontextlost",ot,!1),t.addEventListener("webglcontextrestored",hn,!1),t.addEventListener("webglcontextcreationerror",Kt,!1),V===null){const $="webgl2";if(V=un($,N),V===null)throw un($)?new Error("THREE.WebGLRenderer: Error creating WebGL context with your selected attributes."):new Error("THREE.WebGLRenderer: Error creating WebGL context.")}}catch(N){throw rt("WebGLRenderer: "+N.message),N}let Gt,Ut,U,I,W,re,ve,Pe,Ue,Z,Se,Ge,Qe,Te,nt,$e,ct,jt,j,de,xe,We,et;function we(){Gt=new KI(V),Gt.init(),xe=new VE(V,Gt),Ut=new WI(V,Gt,e,xe),U=new VN(V,Gt),Ut.reversedDepthBuffer&&v&&U.buffers.depth.setReversed(!0),q=V.createFramebuffer(),X=V.createFramebuffer(),K=V.createFramebuffer(),I=new tL(V),W=new AN,re=new HN(V,Gt,U,W,Ut,xe,I),ve=new JI(P),Pe=new zI(V),We=new HI(V,Pe),Ue=new QI(V,Pe,I,We),Z=new iL(V,Ue,Pe,We,I),jt=new nL(V,Ut,re),nt=new XI(W),Se=new EN(P,ve,Gt,Ut,We,nt),Ge=new jN(P,W),Qe=new RN,Te=new UN(Gt),ct=new VI(P,ve,U,Z,_,h),$e=new kN(P,Z,Ut),et=new ZN(V,I,Ut,U),j=new GI(V,Gt,I),de=new eL(V,Gt,I),I.programs=Se.programs,P.capabilities=Ut,P.extensions=Gt,P.properties=W,P.renderLists=Qe,P.shadowMap=$e,P.state=U,P.info=I}we(),M!==1009&&(A=new sL(M,t.width,t.height,c,s,a));const Fe=new qN(P,V);this.xr=Fe,this.getContext=function(){return V},this.getContextAttributes=function(){return V.getContextAttributes()},this.forceContextLoss=function(){const N=Gt.get("WEBGL_lose_context");N&&N.loseContext()},this.forceContextRestore=function(){const N=Gt.get("WEBGL_lose_context");N&&N.restoreContext()},this.getPixelRatio=function(){return ke},this.setPixelRatio=function(N){N!==void 0&&(ke=N,this.setSize(ue,Ce,!1))},this.getSize=function(N){return N.set(ue,Ce)},this.setSize=function(N,$,ie=!0){if(Fe.isPresenting){Ne("WebGLRenderer: Can't change size while VR device is presenting.");return}ue=N,Ce=$,t.width=Math.floor(N*ke),t.height=Math.floor($*ke),ie===!0&&(t.style.width=N+"px",t.style.height=$+"px"),A!==null&&A.setSize(t.width,t.height),this.setViewport(0,0,N,$)},this.getDrawingBufferSize=function(N){return N.set(ue*ke,Ce*ke).floor()},this.setDrawingBufferSize=function(N,$,ie){ue=N,Ce=$,ke=ie,t.width=Math.floor(N*ie),t.height=Math.floor($*ie),this.setViewport(0,0,N,$)},this.setEffects=function(N){if(M===1009){rt("WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(N){for(let $=0;${function Re(){if(ne.forEach(function(ze){W.get(ze).currentProgram.isReady()&&ne.delete(ze)}),ne.size===0){te(N);return}setTimeout(Re,10)}Gt.get("KHR_parallel_shader_compile")!==null?Re():setTimeout(Re,10)})};let wr=null;function mh(N){wr&&wr(N)}function na(){Tr.stop()}function ja(){Tr.start()}const Tr=new UE;Tr.setAnimationLoop(mh),typeof self<"u"&&Tr.setContext(self),this.setAnimationLoop=function(N){wr=N,Fe.setAnimationLoop(N),N===null?Tr.stop():Tr.start()},Fe.addEventListener("sessionstart",na),Fe.addEventListener("sessionend",ja),this.render=function(N,$){if($!==void 0&&$.isCamera!==!0){rt("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(k===!0)return;F!==null&&F.renderStart(N,$);const ie=Fe.enabled===!0&&Fe.isPresenting===!0,ne=A!==null&&(Q===null||ie)&&A.begin(P,Q);if(N.matrixWorldAutoUpdate===!0&&N.updateMatrixWorld(),$.parent===null&&$.matrixWorldAutoUpdate===!0&&$.updateMatrixWorld(),Fe.enabled===!0&&Fe.isPresenting===!0&&(A===null||A.isCompositing()===!1)&&(Fe.cameraAutoUpdate===!0&&Fe.updateCamera($),$=Fe.getCamera()),N.isScene===!0&&N.onBeforeRender(P,N,$,Q),L=Te.get(N,O.length),L.init($),L.state.textureUnits=re.getTextureUnits(),O.push(L),Ve.multiplyMatrices($.projectionMatrix,$.matrixWorldInverse),pe.setFromProjectionMatrix(Ve,Ga,$.reversedDepth),Ae=this.localClippingEnabled,Ee=nt.init(this.clippingPlanes,Ae),w=Qe.get(N,D.length),w.init(),D.push(w),Fe.enabled===!0&&Fe.isPresenting===!0){const Re=P.xr.getDepthSensingMesh();Re!==null&&gs(Re,$,-1/0,P.sortObjects)}gs(N,$,0,P.sortObjects),w.finish(),P.sortObjects===!0&&w.sort(De,st,$.reversedDepth),vt=Fe.enabled===!1||Fe.isPresenting===!1||Fe.hasDepthSensing()===!1,vt&&ct.addToRenderList(w,N),this.info.render.frame++,this.info.autoReset===!0&&this.info.reset(),Ee===!0&&nt.beginShadows();const te=L.state.shadowsArray;if($e.render(te,N,$),Ee===!0&&nt.endShadows(),(ne&&A.hasRenderPass())===!1){const Re=w.opaque,ze=w.transmissive;if(L.setupLights(),$.isArrayCamera){const He=$.cameras;if(ze.length>0)for(let Ze=0,ut=He.length;Ze0&&Zo(Re,ze,N,$),vt&&ct.render(N),vs(w,N,$)}Q!==null&&ae===0&&(re.updateMultisampleRenderTarget(Q),re.updateRenderTargetMipmap(Q)),ne&&A.end(P),N.isScene===!0&&N.onAfterRender(P,N,$),We.resetDefaultState(),me=-1,_e=null,O.pop(),O.length>0?(L=O[O.length-1],re.setTextureUnits(L.state.textureUnits),Ee===!0&&nt.setGlobalState(P.clippingPlanes,L.state.camera)):L=null,D.pop(),D.length>0?w=D[D.length-1]:w=null,F!==null&&F.renderEnd()};function gs(N,$,ie,ne){if(N.visible===!1)return;if(N.layers.test($.layers)){if(N.isGroup)ie=N.renderOrder;else if(N.isLOD)N.autoUpdate===!0&&N.update($);else if(N.isLightProbeGrid)L.pushLightProbeGrid(N);else if(N.isLight)L.pushLight(N),N.castShadow&&L.pushShadow(N);else if(N.isSprite){if(!N.frustumCulled||pe.intersectsSprite(N)){ne&&qe.setFromMatrixPosition(N.matrixWorld).applyMatrix4(Ve);const Re=Z.update(N),ze=N.material;ze.visible&&w.push(N,Re,ze,ie,qe.z,null)}}else if((N.isMesh||N.isLine||N.isPoints)&&(!N.frustumCulled||pe.intersectsObject(N))){const Re=Z.update(N),ze=N.material;if(ne&&(N.boundingSphere!==void 0?(N.boundingSphere===null&&N.computeBoundingSphere(),qe.copy(N.boundingSphere.center)):(Re.boundingSphere===null&&Re.computeBoundingSphere(),qe.copy(Re.boundingSphere.center)),qe.applyMatrix4(N.matrixWorld).applyMatrix4(Ve)),Array.isArray(ze)){const He=Re.groups;for(let Ze=0,ut=He.length;Ze0&&$o(te,$,ie),Re.length>0&&$o(Re,$,ie),ze.length>0&&$o(ze,$,ie),U.buffers.depth.setTest(!0),U.buffers.depth.setMask(!0),U.buffers.color.setMask(!0),U.setPolygonOffset(!1)}function Zo(N,$,ie,ne){if((ie.isScene===!0?ie.overrideMaterial:null)!==null)return;if(L.state.transmissionRenderTarget[ne.id]===void 0){const Ct=Gt.has("EXT_color_buffer_half_float")||Gt.has("EXT_color_buffer_float");L.state.transmissionRenderTarget[ne.id]=new lr(1,1,{generateMipmaps:!0,type:Ct?Ha:Zs,minFilter:bc,samples:Math.max(4,Ut.samples),stencilBuffer:a,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Ht.workingColorSpace})}const te=L.state.transmissionRenderTarget[ne.id],Re=ne.viewport||ge;te.setSize(Re.z*P.transmissionResolutionScale,Re.w*P.transmissionResolutionScale);const ze=P.getRenderTarget(),He=P.getActiveCubeFace(),Ze=P.getActiveMipmapLevel();P.setRenderTarget(te),P.getClearColor(Ft),pt=P.getClearAlpha(),pt<1&&P.setClearColor(16777215,.5),P.clear(),vt&&ct.render(ie);const ut=P.toneMapping;P.toneMapping=0;const wt=ne.viewport;if(ne.viewport!==void 0&&(ne.viewport=void 0),L.setupLightsView(ne),Ee===!0&&nt.setGlobalState(P.clippingPlanes,ne),$o(N,ie,ne),re.updateMultisampleRenderTarget(te),re.updateRenderTargetMipmap(te),Gt.has("WEBGL_multisampled_render_to_texture")===!1){let Ct=!1;for(let it=0,qt=$.length;it0,ne.currentProgram=Ct,ne.uniformsList=null,Ct}function Jo(N){if(N.uniformsList===null){const $=N.currentProgram.getUniforms();N.uniformsList=Yf.seqWithValue($.seq,N.uniforms)}return N.uniformsList}function Ac(N,$){const ie=W.get(N);ie.outputColorSpace=$.outputColorSpace,ie.batching=$.batching,ie.batchingColor=$.batchingColor,ie.instancing=$.instancing,ie.instancingColor=$.instancingColor,ie.instancingMorph=$.instancingMorph,ie.skinning=$.skinning,ie.morphTargets=$.morphTargets,ie.morphNormals=$.morphNormals,ie.morphColors=$.morphColors,ie.morphTargetsCount=$.morphTargetsCount,ie.numClippingPlanes=$.numClippingPlanes,ie.numIntersection=$.numClipIntersection,ie.vertexAlphas=$.vertexAlphas,ie.vertexTangents=$.vertexTangents,ie.toneMapping=$.toneMapping}function bp(N,$){if(N.length===0)return null;if(N.length===1)return N[0].texture!==null?N[0]:null;R.setFromMatrixPosition($.matrixWorld);for(let ie=0,ne=N.length;ie0),it=!!ie.morphAttributes.position,qt=!!ie.morphAttributes.normal,dn=!!ie.morphAttributes.color;let fn=0;ne.toneMapped&&(Q===null||Q.isXRRenderTarget===!0)&&(fn=P.toneMapping);const Bt=ie.morphAttributes.position||ie.morphAttributes.normal||ie.morphAttributes.color,Pn=Bt!==void 0?Bt.length:0,Ye=W.get(ne),Wt=L.state.lights;if(Ee===!0&&(Ae===!0||N!==_e)){const $t=N===_e&&ne.id===me;nt.setState(ne,N,$t)}let Yt=!1;ne.version===Ye.__version?(Ye.needsLights&&Ye.lightsStateVersion!==Wt.state.version||Ye.outputColorSpace!==He||te.isBatchedMesh&&Ye.batching===!1||!te.isBatchedMesh&&Ye.batching===!0||te.isBatchedMesh&&Ye.batchingColor===!0&&te.colorTexture===null||te.isBatchedMesh&&Ye.batchingColor===!1&&te.colorTexture!==null||te.isInstancedMesh&&Ye.instancing===!1||!te.isInstancedMesh&&Ye.instancing===!0||te.isSkinnedMesh&&Ye.skinning===!1||!te.isSkinnedMesh&&Ye.skinning===!0||te.isInstancedMesh&&Ye.instancingColor===!0&&te.instanceColor===null||te.isInstancedMesh&&Ye.instancingColor===!1&&te.instanceColor!==null||te.isInstancedMesh&&Ye.instancingMorph===!0&&te.morphTexture===null||te.isInstancedMesh&&Ye.instancingMorph===!1&&te.morphTexture!==null||Ye.envMap!==ut||ne.fog===!0&&Ye.fog!==Re||Ye.numClippingPlanes!==void 0&&(Ye.numClippingPlanes!==nt.numPlanes||Ye.numIntersection!==nt.numIntersection)||Ye.vertexAlphas!==wt||Ye.vertexTangents!==Ct||Ye.morphTargets!==it||Ye.morphNormals!==qt||Ye.morphColors!==dn||Ye.toneMapping!==fn||Ye.morphTargetsCount!==Pn||!!Ye.lightProbeGrid!=L.state.lightProbeGridArray.length>0)&&(Yt=!0):(Yt=!0,Ye.__version=ne.version);let Ti=Ye.currentProgram;Yt===!0&&(Ti=Za(ne,$,te),F&&ne.isNodeMaterial&&F.onUpdateProgram(ne,Ti,Ye));let ki=!1,ui=!1,hr=!1;const zt=Ti.getUniforms(),Sn=Ye.uniforms;if(U.useProgram(Ti.program)&&(ki=!0,ui=!0,hr=!0),ne.id!==me&&(me=ne.id,ui=!0),Ye.needsLights){const $t=bp(L.state.lightProbeGridArray,te);Ye.lightProbeGrid!==$t&&(Ye.lightProbeGrid=$t,ui=!0)}if(ki||_e!==N){U.buffers.depth.getReversed()&&N.reversedDepth!==!0&&(N._reversedDepth=!0,N.updateProjectionMatrix()),zt.setValue(V,"projectionMatrix",N.projectionMatrix),zt.setValue(V,"viewMatrix",N.matrixWorldInverse);const $t=zt.map.cameraPosition;$t!==void 0&&$t.setValue(V,Oe.setFromMatrixPosition(N.matrixWorld)),Ut.logarithmicDepthBuffer&&zt.setValue(V,"logDepthBufFC",2/(Math.log(N.far+1)/Math.LN2)),(ne.isMeshPhongMaterial||ne.isMeshToonMaterial||ne.isMeshLambertMaterial||ne.isMeshBasicMaterial||ne.isMeshStandardMaterial||ne.isShaderMaterial)&&zt.setValue(V,"isOrthographic",N.isOrthographicCamera===!0),_e!==N&&(_e=N,ui=!0,hr=!0)}if(Ye.needsLights&&(Wt.state.directionalShadowMap.length>0&&zt.setValue(V,"directionalShadowMap",Wt.state.directionalShadowMap,re),Wt.state.spotShadowMap.length>0&&zt.setValue(V,"spotShadowMap",Wt.state.spotShadowMap,re),Wt.state.pointShadowMap.length>0&&zt.setValue(V,"pointShadowMap",Wt.state.pointShadowMap,re)),te.isSkinnedMesh){zt.setOptional(V,te,"bindMatrix"),zt.setOptional(V,te,"bindMatrixInverse");const $t=te.skeleton;$t&&($t.boneTexture===null&&$t.computeBoneTexture(),zt.setValue(V,"boneTexture",$t.boneTexture,re))}te.isBatchedMesh&&(zt.setOptional(V,te,"batchingTexture"),zt.setValue(V,"batchingTexture",te._matricesTexture,re),zt.setOptional(V,te,"batchingIdTexture"),zt.setValue(V,"batchingIdTexture",te._indirectTexture,re),zt.setOptional(V,te,"batchingColorTexture"),te._colorsTexture!==null&&zt.setValue(V,"batchingColorTexture",te._colorsTexture,re));const $n=ie.morphAttributes;if(($n.position!==void 0||$n.normal!==void 0||$n.color!==void 0)&&jt.update(te,ie,Ti),(ui||Ye.receiveShadow!==te.receiveShadow)&&(Ye.receiveShadow=te.receiveShadow,zt.setValue(V,"receiveShadow",te.receiveShadow)),(ne.isMeshStandardMaterial||ne.isMeshLambertMaterial||ne.isMeshPhongMaterial)&&ne.envMap===null&&$.environment!==null&&(Sn.envMapIntensity.value=$.environmentIntensity),Sn.dfgLUT!==void 0&&(Sn.dfgLUT.value=JN()),ui){if(zt.setValue(V,"toneMappingExposure",P.toneMappingExposure),Ye.needsLights&&Cc(Sn,hr),Re&&ne.fog===!0&&Ge.refreshFogUniforms(Sn,Re),Ge.refreshMaterialUniforms(Sn,ne,ke,Ce,L.state.transmissionRenderTarget[N.id]),Ye.needsLights&&Ye.lightProbeGrid){const $t=Ye.lightProbeGrid;Sn.probesSH.value=$t.texture,Sn.probesMin.value.copy($t.boundingBox.min),Sn.probesMax.value.copy($t.boundingBox.max),Sn.probesResolution.value.copy($t.resolution)}Yf.upload(V,Jo(Ye),Sn,re)}if(ne.isShaderMaterial&&ne.uniformsNeedUpdate===!0&&(Yf.upload(V,Jo(Ye),Sn,re),ne.uniformsNeedUpdate=!1),ne.isSpriteMaterial&&zt.setValue(V,"center",te.center),zt.setValue(V,"modelViewMatrix",te.modelViewMatrix),zt.setValue(V,"normalMatrix",te.normalMatrix),zt.setValue(V,"modelMatrix",te.matrixWorld),ne.uniformsGroups!==void 0){const $t=ne.uniformsGroups;for(let Er=0,Ar=$t.length;Er0&&re.useMultisampledRTT(N)===!1?ne=W.get(N).__webglMultisampledFramebuffer:Array.isArray(Ze)?ne=Ze[ie]:ne=Ze,ge.copy(N.viewport),be.copy(N.scissor),Ie=N.scissorTest}else ge.copy(ht).multiplyScalar(ke).floor(),be.copy(Le).multiplyScalar(ke).floor(),Ie=At;if(ie!==0&&(ne=q),U.bindFramebuffer(V.FRAMEBUFFER,ne)&&U.drawBuffers(N,ne),U.viewport(ge),U.scissor(be),U.setScissorTest(Ie),te){const ze=W.get(N.texture);V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_CUBE_MAP_POSITIVE_X+$,ze.__webglTexture,ie)}else if(Re){const ze=$;for(let He=0;He1&&V.readBuffer(V.COLOR_ATTACHMENT0+He),!Ut.textureFormatReadable(wt)){rt("WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!Ut.textureTypeReadable(Ct)){rt("WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}$>=0&&$<=N.width-ne&&ie>=0&&ie<=N.height-te&&V.readPixels($,ie,ne,te,xe.convert(wt),xe.convert(Ct),Re)}finally{const ut=Q!==null?W.get(Q).__webglFramebuffer:null;U.bindFramebuffer(V.FRAMEBUFFER,ut)}}},this.readRenderTargetPixelsAsync=async function(N,$,ie,ne,te,Re,ze,He=0){if(!(N&&N.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Ze=W.get(N).__webglFramebuffer;if(N.isWebGLCubeRenderTarget&&ze!==void 0&&(Ze=Ze[ze]),Ze)if($>=0&&$<=N.width-ne&&ie>=0&&ie<=N.height-te){U.bindFramebuffer(V.FRAMEBUFFER,Ze);const ut=N.textures[He],wt=ut.format,Ct=ut.type;if(N.textures.length>1&&V.readBuffer(V.COLOR_ATTACHMENT0+He),!Ut.textureFormatReadable(wt))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Ut.textureTypeReadable(Ct))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");const it=V.createBuffer();V.bindBuffer(V.PIXEL_PACK_BUFFER,it),V.bufferData(V.PIXEL_PACK_BUFFER,Re.byteLength,V.STREAM_READ),V.readPixels($,ie,ne,te,xe.convert(wt),xe.convert(Ct),0);const qt=Q!==null?W.get(Q).__webglFramebuffer:null;U.bindFramebuffer(V.FRAMEBUFFER,qt);const dn=V.fenceSync(V.SYNC_GPU_COMMANDS_COMPLETE,0);return V.flush(),await U2(V,dn,4),V.bindBuffer(V.PIXEL_PACK_BUFFER,it),V.getBufferSubData(V.PIXEL_PACK_BUFFER,0,Re),V.deleteBuffer(it),V.deleteSync(dn),Re}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(N,$=null,ie=0){const ne=Math.pow(2,-ie),te=Math.floor(N.image.width*ne),Re=Math.floor(N.image.height*ne),ze=$!==null?$.x:0,He=$!==null?$.y:0;re.setTexture2D(N,0),V.copyTexSubImage2D(V.TEXTURE_2D,ie,0,0,ze,He,te,Re),U.unbindTexture()},this.copyTextureToTexture=function(N,$,ie=null,ne=null,te=0,Re=0){let ze,He,Ze,ut,wt,Ct,it,qt,dn;const fn=N.isCompressedTexture?N.mipmaps[Re]:N.image;if(ie!==null)ze=ie.max.x-ie.min.x,He=ie.max.y-ie.min.y,Ze=ie.isBox3?ie.max.z-ie.min.z:1,ut=ie.min.x,wt=ie.min.y,Ct=ie.isBox3?ie.min.z:0;else{const Sn=Math.pow(2,-te);ze=Math.floor(fn.width*Sn),He=Math.floor(fn.height*Sn),N.isDataArrayTexture?Ze=fn.depth:N.isData3DTexture?Ze=Math.floor(fn.depth*Sn):Ze=1,ut=0,wt=0,Ct=0}ne!==null?(it=ne.x,qt=ne.y,dn=ne.z):(it=0,qt=0,dn=0);const Bt=xe.convert($.format),Pn=xe.convert($.type);let Ye;$.isData3DTexture?(re.setTexture3D($,0),Ye=V.TEXTURE_3D):$.isDataArrayTexture||$.isCompressedArrayTexture?(re.setTexture2DArray($,0),Ye=V.TEXTURE_2D_ARRAY):(re.setTexture2D($,0),Ye=V.TEXTURE_2D),U.activeTexture(V.TEXTURE0),U.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,$.flipY),U.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,$.premultiplyAlpha),U.pixelStorei(V.UNPACK_ALIGNMENT,$.unpackAlignment);const Wt=U.getParameter(V.UNPACK_ROW_LENGTH),Yt=U.getParameter(V.UNPACK_IMAGE_HEIGHT),Ti=U.getParameter(V.UNPACK_SKIP_PIXELS),ki=U.getParameter(V.UNPACK_SKIP_ROWS),ui=U.getParameter(V.UNPACK_SKIP_IMAGES);U.pixelStorei(V.UNPACK_ROW_LENGTH,fn.width),U.pixelStorei(V.UNPACK_IMAGE_HEIGHT,fn.height),U.pixelStorei(V.UNPACK_SKIP_PIXELS,ut),U.pixelStorei(V.UNPACK_SKIP_ROWS,wt),U.pixelStorei(V.UNPACK_SKIP_IMAGES,Ct);const hr=N.isDataArrayTexture||N.isData3DTexture,zt=$.isDataArrayTexture||$.isData3DTexture;if(N.isDepthTexture){const Sn=W.get(N),$n=W.get($),$t=W.get(Sn.__renderTarget),Er=W.get($n.__renderTarget);U.bindFramebuffer(V.READ_FRAMEBUFFER,$t.__webglFramebuffer),U.bindFramebuffer(V.DRAW_FRAMEBUFFER,Er.__webglFramebuffer);for(let Ar=0;Ar{(function(){function t(M,T){return M===T&&(M!==0||1/M===1/T)||M!==M&&T!==T}function n(M,T){v||l.startTransition===void 0||(v=!0);var S=T();if(!y){var b=T();c(S,b)||(y=!0)}b=h({inst:{value:S,getSnapshot:T}});var C=b[0].inst,R=b[1];return f(function(){C.value=S,C.getSnapshot=T,s(C)&&R({inst:C})},[M,S,T]),d(function(){return s(C)&&R({inst:C}),M(function(){s(C)&&R({inst:C})})},[M]),g(S),S}function s(M){var T=M.getSnapshot;M=M.value;try{var S=T();return!c(M,S)}catch{return!0}}function a(M,T){return T()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var l=m0(),c=typeof Object.is=="function"?Object.is:t,h=l.useState,d=l.useEffect,f=l.useLayoutEffect,g=l.useDebugValue,v=!1,y=!1,_=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?a:n;e.useSyncExternalStore=l.useSyncExternalStore!==void 0?l.useSyncExternalStore:_,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),QN=ip(((e,t)=>{t.exports=KN()})),eD=ip((e=>{(function(){function t(g,v){return g===v&&(g!==0||1/g===1/v)||g!==g&&v!==v}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=m0(),s=QN(),a=typeof Object.is=="function"?Object.is:t,l=s.useSyncExternalStore,c=n.useRef,h=n.useEffect,d=n.useMemo,f=n.useDebugValue;e.useSyncExternalStoreWithSelector=function(g,v,y,_,M){var T=c(null);if(T.current===null){var S={hasValue:!1,value:null};T.current=S}else S=T.current;T=d(function(){function C(O){if(!R){if(R=!0,w=O,O=_(O),M!==void 0&&S.hasValue){var A=S.value;if(M(A,O))return L=A}return L=O}if(A=L,a(w,O))return A;var P=_(O);return M!==void 0&&M(A,P)?(w=O,A):(w=O,L=P)}var R=!1,w,L,D=y===void 0?null:y;return[function(){return C(v())},D===null?void 0:function(){return C(D())}]},[v,y,_,M]);var b=l(g,T[0],T[1]);return h(function(){S.hasValue=!0,S.value=b},[b]),f(b),b},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),tD=ip(((e,t)=>{t.exports=eD()})),nD=rp(tD(),1),bM=e=>{let t;const n=new Set,s=(f,g)=>{const v=typeof f=="function"?f(t):f;if(!Object.is(v,t)){const y=t;t=g??(typeof v!="object"||v===null)?v:Object.assign({},t,v),n.forEach(_=>_(t,y))}},a=()=>t,h={setState:s,getState:a,getInitialState:()=>d,subscribe:f=>(n.add(f),()=>n.delete(f))},d=t=e(s,a,h);return h},iD=(e=>e?bM(e):bM),{useSyncExternalStoreWithSelector:rD}=nD.default,sD=e=>e;function aD(e,t=sD,n){const s=rD(e.subscribe,e.getState,e.getInitialState,t,n);return xt.useDebugValue(s),s}var xM=(e,t)=>{const n=iD(e),s=(a,l=t)=>aD(n,a,l);return Object.assign(s,n),s},oD=((e,t)=>e?xM(e,t):xM),lD=e=>typeof e=="object"&&typeof e.then=="function",Vo=[];function WE(e,t,n=(s,a)=>s===a){if(e===t)return!0;if(!e||!t)return!1;const s=e.length;if(t.length!==s)return!1;for(let a=0;a0&&(l.timeout&&clearTimeout(l.timeout),l.timeout=setTimeout(l.remove,s.lifespan)),l.response;if(!n)throw l.promise}const a={keys:t,equal:s.equal,remove:()=>{const l=Vo.indexOf(a);l!==-1&&Vo.splice(l,1)},promise:(lD(e)?e:e(...t)).then(l=>{a.response=l,s.lifespan&&s.lifespan>0&&(a.timeout=setTimeout(a.remove,s.lifespan))}).catch(l=>a.error=l)};if(Vo.push(a),!n)throw a.promise}var cD=(e,t,n)=>XE(e,t,!1,n),uD=(e,t,n)=>{XE(e,t,!0,n)},hD=e=>{if(e===void 0||e.length===0)Vo.splice(0,Vo.length);else{const t=Vo.find(n=>WE(e,n.keys,n.equal));t&&t.remove()}},qs=rp($R()),ar=rp(KR()),pU=(()=>{var e,t;return typeof window<"u"&&(((e=window.document)==null?void 0:e.createElement)||((t=window.navigator)==null?void 0:t.product)==="ReactNative")})()?xt.useLayoutEffect:xt.useEffect;function ay(e,t,n){if(!e)return;if(n(e)===!0)return e;let s=t?e.return:e.child;for(;s;){const a=ay(s,t,n);if(a)return a;s=t?null:s.sibling}}function qE(e){try{return Object.defineProperties(e,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return e}}var oy=qE(xt.createContext(null)),YE=class extends xt.Component{render(){return xt.createElement(oy.Provider,{value:this._reactInternals},this.props.children)}};function jE(){const e=xt.useContext(oy);if(e===null)throw new Error("its-fine: useFiber must be called within a !");const t=xt.useId();return xt.useMemo(()=>{for(const n of[e,e?.alternate]){if(!n)continue;const s=ay(n,!1,a=>{let l=a.memoizedState;for(;l;){if(l.memoizedState===t)return!0;l=l.next}});if(s)return s}},[e,t])}var dD=Symbol.for("react.context"),fD=e=>e!==null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===dD;function pD(){const e=jE(),[t]=xt.useState(()=>new Map);t.clear();let n=e;for(;n;){const s=n.type;fD(s)&&s!==oy&&!t.has(s)&&t.set(s,xt.use(qE(s))),n=n.return}return t}function mD(){const e=pD();return xt.useMemo(()=>Array.from(e.keys()).reduce((t,n)=>s=>xt.createElement(t,null,xt.createElement(n.Provider,{...s,value:e.get(n)})),t=>xt.createElement(YE,{...t})),[e])}function ly(e){let t=e.root;for(;t.getState().previousRoot;)t=t.getState().previousRoot;return t}var ZE=e=>e&&e.isOrthographicCamera,gD=e=>e&&e.hasOwnProperty("current"),vD=e=>e!=null&&(typeof e=="string"||typeof e=="number"||e.isColor),ph=((e,t)=>typeof window<"u"&&(((e=window.document)==null?void 0:e.createElement)||((t=window.navigator)==null?void 0:t.product)==="ReactNative"))()?xt.useLayoutEffect:xt.useEffect;function $E(e){const t=xt.useRef(e);return ph(()=>{t.current=e},[e]),t}function yD(){const e=jE(),t=mD();return xt.useMemo(()=>({children:n})=>{const s=ay(e,!0,a=>a.type===xt.StrictMode)?xt.StrictMode:xt.Fragment;return(0,ar.jsx)(s,{children:(0,ar.jsx)(t,{children:n})})},[e,t])}function _D({set:e}){return ph(()=>(e(new Promise(()=>null)),()=>e(!1)),[e]),null}var bD=(e=>(e=class extends xt.Component{constructor(...n){super(...n),this.state={error:!1}}componentDidCatch(n){this.props.set(n)}render(){return this.state.error?null:this.props.children}},e.getDerivedStateFromError=()=>({error:!0}),e))();function JE(e){var t;const n=typeof window<"u"?(t=window.devicePixelRatio)!=null?t:2:1;return Array.isArray(e)?Math.min(Math.max(e[0],n),e[1]):e}function rc(e){var t;return(t=e.__r3f)==null?void 0:t.root.getState()}var gn={obj:e=>e===Object(e)&&!gn.arr(e)&&typeof e!="function",fun:e=>typeof e=="function",str:e=>typeof e=="string",num:e=>typeof e=="number",boo:e=>typeof e=="boolean",und:e=>e===void 0,nul:e=>e===null,arr:e=>Array.isArray(e),equ(e,t,{arrays:n="shallow",objects:s="reference",strict:a=!0}={}){if(typeof e!=typeof t||!!e!=!!t)return!1;if(gn.str(e)||gn.num(e)||gn.boo(e))return e===t;const l=gn.obj(e);if(l&&s==="reference")return e===t;const c=gn.arr(e);if(c&&n==="reference")return e===t;if((c||l)&&e===t)return!0;let h;for(h in e)if(!(h in t))return!1;if(l&&n==="shallow"&&s==="shallow"){for(h in a?t:e)if(!gn.equ(e[h],t[h],{strict:a,objects:"reference"}))return!1}else for(h in a?t:e)if(e[h]!==t[h])return!1;if(gn.und(h)){if(c&&e.length===0&&t.length===0||l&&Object.keys(e).length===0&&Object.keys(t).length===0)return!0;if(e!==t)return!1}return!0}};function xD(e){const t={nodes:{},materials:{},meshes:{}};return e&&e.traverse(n=>{n.name&&(t.nodes[n.name]=n),n.material&&!t.materials[n.material.name]&&(t.materials[n.material.name]=n.material),n.isMesh&&!t.meshes[n.name]&&(t.meshes[n.name]=n)}),t}function SD(e){e.type!=="Scene"&&(e.dispose==null||e.dispose());for(const t in e){const n=e[t];n?.type!=="Scene"&&(n==null||n.dispose==null||n.dispose())}}var KE=["children","key","ref"];function o0(e){const t={};for(const n in e)KE.includes(n)||(t[n]=e[n]);return t}function Qf(e,t,n,s){const a=e;let l=a?.__r3f;return l||(l={root:t,type:n,parent:null,children:[],props:o0(s),object:a,eventCount:0,handlers:{},isHidden:!1},a&&(a.__r3f=l)),l}function ch(e,t){if(!t.includes("-"))return{root:e,key:t,target:e[t]};if(t in e)return{root:e,key:t,target:e[t]};let n=e;const s=t.split("-");for(const a of s){if(typeof n!="object"||n===null){if(n!==void 0){const l=s.slice(s.indexOf(a)).join("-");return{root:n,key:l,target:void 0}}return{root:e,key:t,target:void 0}}t=a,e=n,n=n[t]}return{root:e,key:t,target:n}}var SM=/-\d+$/;function ep(e,t){if(gn.str(t.props.attach)){if(SM.test(t.props.attach)){const a=t.props.attach.replace(SM,""),{root:l,key:c}=ch(e.object,a);Array.isArray(l[c])||(l[c]=[])}const{root:n,key:s}=ch(e.object,t.props.attach);t.previousAttach=n[s],n[s]=t.object}else gn.fun(t.props.attach)&&(t.previousAttach=t.props.attach(e.object,t.object))}function tp(e,t){if(gn.str(t.props.attach)){const{root:n,key:s}=ch(e.object,t.props.attach),a=t.previousAttach;a===void 0?delete n[s]:n[s]=a}else t.previousAttach==null||t.previousAttach(e.object,t.object);delete t.previousAttach}var l0=[...KE,"args","dispose","attach","object","onUpdate","dispose"],MM=new Map;function MD(e){let t=MM.get(e.constructor);try{t||(t=new e.constructor,MM.set(e.constructor,t))}catch{}return t}function wD(e,t){const n={};for(const s in t)if(!l0.includes(s)&&!gn.equ(t[s],e.props[s])){n[s]=t[s];for(const a in t)a.startsWith(`${s}-`)&&(n[a]=t[a])}for(const s in e.props){if(l0.includes(s)||t.hasOwnProperty(s))continue;const{root:a,key:l}=ch(e.object,s);if(a.constructor&&a.constructor.length===0){const c=MD(a);gn.und(c)||(n[s]=c[l])}else n[s]=0}return n}var TD=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],ED=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function Ba(e,t){var n;const s=e.__r3f,a=s&&ly(s).getState(),l=s?.eventCount;for(const h in t){let d=t[h];if(l0.includes(h))continue;if(s&&ED.test(h)){typeof d=="function"?s.handlers[h]=d:delete s.handlers[h],s.eventCount=Object.keys(s.handlers).length;continue}if(d===void 0)continue;let{root:f,key:g,target:v}=ch(e,h);if(v===void 0&&(typeof f!="object"||f===null))throw Error(`R3F: Cannot set "${h}". Ensure it is an object before setting "${g}".`);if(v instanceof mc&&d instanceof mc)v.mask=d.mask;else if(v instanceof Xe&&vD(d))v.set(d);else if(v!==null&&typeof v=="object"&&typeof v.set=="function"&&typeof v.copy=="function"&&d!=null&&d.constructor&&v.constructor===d.constructor)v.copy(d);else if(v!==null&&typeof v=="object"&&typeof v.set=="function"&&Array.isArray(d))typeof v.fromArray=="function"?v.fromArray(d):v.set(...d);else if(v!==null&&typeof v=="object"&&typeof v.set=="function"&&typeof d=="number")typeof v.setScalar=="function"?v.setScalar(d):v.set(d);else if(f instanceof cr&&g==="uniforms"&&gn.obj(d)){gn.obj(f.uniforms)||(f.uniforms={});const y=f.uniforms,_=d;for(const M in _){const T=_[M],S=y[M];S?Object.assign(S,T):y[M]={...T}}}else{var c;f[g]=d,a&&!a.linear&&TD.includes(g)&&(c=f[g])!=null&&c.isTexture&&f[g].format===1023&&f[g].type===1009&&(f[g].colorSpace=xi)}}if(s!=null&&s.parent&&a!=null&&a.internal&&(n=s.object)!=null&&n.isObject3D&&l!==s.eventCount){const h=s.object,d=a.internal.interaction.indexOf(h);d>-1&&a.internal.interaction.splice(d,1),s.eventCount&&h.raycast!==null&&a.internal.interaction.push(h)}return s&&s.props.attach===void 0&&(s.object.isBufferGeometry?s.props.attach="geometry":s.object.isMaterial&&(s.props.attach="material")),s&&Ec(s),e}function Ec(e){var t;if(!e.parent)return;e.props.onUpdate==null||e.props.onUpdate(e.object);const n=(t=e.root)==null||t.getState==null?void 0:t.getState();n&&n.internal.frames===0&&n.invalidate()}function AD(e,t){e.manual||(ZE(e)?(e.left=t.width/-2,e.right=t.width/2,e.top=t.height/2,e.bottom=t.height/-2):e.aspect=t.width/t.height,e.updateProjectionMatrix())}var Oi=e=>e?.isObject3D;function Vu(e){return(e.eventObject||e.object).uuid+"/"+e.index+e.instanceId}function QE(e,t,n,s){const a=n.get(t);a&&(n.delete(t),n.size===0&&(e.delete(s),a.target.releasePointerCapture(s)))}function CD(e,t,n){const{internal:s}=e.getState();for(let a=0;a{if(a.eventObject===t||a.object===t){s.hovered.delete(l);const c={...a,eventObject:a.eventObject===t?n:a.eventObject,object:a.object===t?n:a.object};s.hovered.set(Vu(c),c)}}),s.capturedMap.forEach(a=>{const l=a.get(t);l&&(a.delete(t),a.set(n,l))})}function RD(e,t){const{internal:n}=e.getState();n.interaction=n.interaction.filter(s=>s!==t),n.initialHits=n.initialHits.filter(s=>s!==t),n.hovered.forEach((s,a)=>{(s.eventObject===t||s.object===t)&&n.hovered.delete(a)}),n.capturedMap.forEach((s,a)=>{QE(n.capturedMap,t,s,a)})}function PD(e){function t(d){const{internal:f}=e.getState(),g=d.offsetX-f.initialClick[0],v=d.offsetY-f.initialClick[1];return Math.round(Math.sqrt(g*g+v*v))}function n(d){return d.filter(f=>["Move","Over","Enter","Out","Leave"].some(g=>{var v;return(v=f.__r3f)==null?void 0:v.handlers["onPointer"+g]}))}function s(d,f){const g=e.getState(),v=new Set,y=[],_=f?f(g.internal.interaction):g.internal.interaction;for(let b=0;b<_.length;b++){const C=rc(_[b]);C&&(C.raycaster.camera=void 0)}g.previousRoot||g.events.compute==null||g.events.compute(d,g);function M(b){const C=rc(b);if(!C||!C.events.enabled||C.raycaster.camera===null)return[];if(C.raycaster.camera===void 0){var R;C.events.compute==null||C.events.compute(d,C,(R=C.previousRoot)==null?void 0:R.getState()),C.raycaster.camera===void 0&&(C.raycaster.camera=null)}return C.raycaster.camera?C.raycaster.intersectObject(b,!0):[]}let T=_.flatMap(M).sort((b,C)=>{const R=rc(b.object),w=rc(C.object);return!R||!w?b.distance-C.distance:w.events.priority-R.events.priority||b.distance-C.distance}).filter(b=>{const C=Vu(b);return v.has(C)?!1:(v.add(C),!0)});g.events.filter&&(T=g.events.filter(T,g));for(const b of T){let C=b.object;for(;C;){var S;(S=C.__r3f)!=null&&S.eventCount&&y.push({...b,eventObject:C}),C=C.parent}}if("pointerId"in d&&g.internal.capturedMap.has(d.pointerId))for(let b of g.internal.capturedMap.get(d.pointerId).values())v.has(Vu(b.intersection))||y.push(b.intersection);return y}function a(d,f,g,v){if(d.length){const y={stopped:!1};for(const _ of d){let M=rc(_.object);if(M||_.object.traverseAncestors(T=>{const S=rc(T);if(S)return M=S,!1}),M){const{raycaster:T,pointer:S,camera:b,internal:C}=M,R=new z(S.x,S.y,0).unproject(b),w=P=>{var k,F;return(k=(F=C.capturedMap.get(P))==null?void 0:F.has(_.eventObject))!=null?k:!1},L=P=>{const k={intersection:_,target:f.target};C.capturedMap.has(P)?C.capturedMap.get(P).set(_.eventObject,k):C.capturedMap.set(P,new Map([[_.eventObject,k]])),f.target.setPointerCapture(P)},D=P=>{const k=C.capturedMap.get(P);k&&QE(C.capturedMap,_.eventObject,k,P)};let O={};for(let P in f){let k=f[P];typeof k!="function"&&(O[P]=k)}let A={..._,...O,pointer:S,intersections:d,stopped:y.stopped,delta:g,unprojectedPoint:R,ray:T.ray,camera:b,stopPropagation(){const P="pointerId"in f&&C.capturedMap.get(f.pointerId);(!P||P.has(_.eventObject))&&(A.stopped=y.stopped=!0,C.hovered.size&&Array.from(C.hovered.values()).find(k=>k.eventObject===_.eventObject)&&l([...d.slice(0,d.indexOf(_)),_]))},target:{hasPointerCapture:w,setPointerCapture:L,releasePointerCapture:D},currentTarget:{hasPointerCapture:w,setPointerCapture:L,releasePointerCapture:D},nativeEvent:f};if(v(A),y.stopped===!0)break}}}return d}function l(d){const{internal:f}=e.getState();for(const g of f.hovered.values())if(!d.length||!d.find(v=>v.object===g.object&&v.index===g.index&&v.instanceId===g.instanceId)){const v=g.eventObject.__r3f;if(f.hovered.delete(Vu(g)),v!=null&&v.eventCount){const y=v.handlers,_={...g,intersections:d};y.onPointerOut==null||y.onPointerOut(_),y.onPointerLeave==null||y.onPointerLeave(_)}}}function c(d,f){for(let g=0;gl([]);case"onLostPointerCapture":return f=>{const{internal:g}=e.getState();"pointerId"in f&&g.capturedMap.has(f.pointerId)&&requestAnimationFrame(()=>{g.capturedMap.has(f.pointerId)&&(g.capturedMap.delete(f.pointerId),l([]))})}}return function(g){const{onPointerMissed:v,internal:y}=e.getState();y.lastEvent.current=g;const _=d==="onPointerMove",M=d==="onClick"||d==="onContextMenu"||d==="onDoubleClick",T=s(g,_?n:void 0),S=M?t(g):0;d==="onPointerDown"&&(y.initialClick=[g.offsetX,g.offsetY],y.initialHits=T.map(C=>C.eventObject)),M&&!T.length&&S<=2&&(c(g,y.interaction),v&&v(g)),_&&l(T);function b(C){const R=C.eventObject,w=R.__r3f;if(!(w!=null&&w.eventCount))return;const L=w.handlers;if(_){if(L.onPointerOver||L.onPointerEnter||L.onPointerOut||L.onPointerLeave){const D=Vu(C),O=y.hovered.get(D);O?O.stopped&&C.stopPropagation():(y.hovered.set(D,C),L.onPointerOver==null||L.onPointerOver(C),L.onPointerEnter==null||L.onPointerEnter(C))}L.onPointerMove==null||L.onPointerMove(C)}else{const D=L[d];D?(!M||y.initialHits.includes(R))&&(c(g,y.interaction.filter(O=>!y.initialHits.includes(O))),D(C)):M&&y.initialHits.includes(R)&&c(g,y.interaction.filter(O=>!y.initialHits.includes(O)))}}a(T,g,S,b)}}return{handlePointer:h}}var wM=e=>!!(e!=null&&e.render),eA=xt.createContext(null),ID=(e,t)=>{const n=oD((h,d)=>{const f=new z,g=new z,v=new z;function y(S=d().camera,b=g,C=d().size){const{width:R,height:w,top:L,left:D}=C,O=R/w;b.isVector3?v.copy(b):v.set(...b);const A=S.getWorldPosition(f).distanceTo(v);if(ZE(S))return{width:R/S.zoom,height:w/S.zoom,top:L,left:D,factor:1,distance:A,aspect:O};{const P=S.fov*Math.PI/180,k=2*Math.tan(P/2)*A,F=k*(R/w);return{width:F,height:k,top:L,left:D,factor:R/F,distance:A,aspect:O}}}let _;const M=S=>h(b=>({performance:{...b.performance,current:S}})),T=new ye;return{set:h,get:d,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(S=1)=>e(d(),S),advance:(S,b)=>t(S,b,d()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new IE,pointer:T,mouse:T,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const S=d();_&&clearTimeout(_),S.performance.current!==S.performance.min&&M(S.performance.min),_=setTimeout(()=>M(d().performance.max),S.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:y},setEvents:S=>h(b=>({...b,events:{...b.events,...S}})),setSize:(S,b,C=0,R=0)=>{const w=d().camera,L={width:S,height:b,top:C,left:R};h(D=>({size:L,viewport:{...D.viewport,...y(w,g,L)}}))},setDpr:S=>h(b=>{const C=JE(S);return{viewport:{...b.viewport,dpr:C,initialDpr:b.viewport.initialDpr||C}}}),setFrameloop:(S="always")=>{const b=d().clock;b.stop(),b.elapsedTime=0,S!=="never"&&(b.start(),b.elapsedTime=0),h(()=>({frameloop:S}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:xt.createRef(),active:!1,frames:0,priority:0,subscribe:(S,b,C)=>{const R=d().internal;return R.priority=R.priority+(b>0?1:0),R.subscribers.push({ref:S,priority:b,store:C}),R.subscribers=R.subscribers.sort((w,L)=>w.priority-L.priority),()=>{const w=d().internal;w!=null&&w.subscribers&&(w.priority=w.priority-(b>0?1:0),w.subscribers=w.subscribers.filter(L=>L.ref!==S))}}}}}),s=n.getState();let a=s.size,l=s.viewport.dpr,c=s.camera;return n.subscribe(()=>{const{camera:h,size:d,viewport:f,gl:g,set:v}=n.getState();if(d.width!==a.width||d.height!==a.height||f.dpr!==l){a=d,l=f.dpr,AD(h,d),f.dpr>0&&g.setPixelRatio(f.dpr);const y=typeof HTMLCanvasElement<"u"&&g.domElement instanceof HTMLCanvasElement;g.setSize(d.width,d.height,y)}h!==c&&(c=h,v(y=>({viewport:{...y.viewport,...y.viewport.getCurrentViewport(h)}})))}),n.subscribe(h=>e(h)),n};function tA(){const e=xt.useContext(eA);if(!e)throw new Error("R3F: Hooks can only be used within the Canvas component!");return e}function gU(e=n=>n,t){return tA()(e,t)}function vU(e,t=0){const n=tA(),s=n.getState().internal.subscribe,a=$E(e);return ph(()=>s(a,t,n),[t,s,n]),null}var TM=new WeakMap,LD=e=>{var t;return typeof e=="function"&&(e==null||(t=e.prototype)==null?void 0:t.constructor)===e};function nA(e,t){return function(n,...s){let a;return LD(n)?(a=TM.get(n),a||(a=new n,TM.set(n,a))):a=n,e&&e(a),Promise.all(s.map(l=>new Promise((c,h)=>a.load(l,d=>{Oi(d?.scene)&&Object.assign(d,xD(d.scene)),c(d)},t,d=>h(new Error(`Could not load ${l}: ${d?.message}`))))))}}function iA(e,t,n,s){const a=Array.isArray(t)?t:[t],l=cD(nA(n,s),[e,...a],{equal:gn.equ});return Array.isArray(t)?l:l[0]}iA.preload=function(e,t,n){const s=Array.isArray(t)?t:[t];return uD(nA(n),[e,...s])};iA.clear=function(e,t){return hD([e,...Array.isArray(t)?t:[t]])};var ND=1,EM=8,jf=32,AM=2,DD=268435456,UD={name:"@react-three/fiber",version:"9.7.0",description:"A React renderer for Threejs",keywords:["react","renderer","fiber","three","threejs"],author:"Paul Henschel (https://github.com/drcmda)",license:"MIT",maintainers:["Josh Ellis (https://github.com/joshuaellis)","Cody Bennett (https://github.com/codyjasonbennett)","Kris Baumgarter (https://github.com/krispya)"],bugs:{url:"https://github.com/pmndrs/react-three-fiber/issues"},homepage:"https://github.com/pmndrs/react-three-fiber#readme",repository:{type:"git",url:"git+https://github.com/pmndrs/react-three-fiber.git"},collective:{type:"opencollective",url:"https://opencollective.com/react-three-fiber"},main:"dist/react-three-fiber.cjs.js",module:"dist/react-three-fiber.esm.js",types:"dist/react-three-fiber.cjs.d.ts","react-native":"native/dist/react-three-fiber-native.cjs.js",sideEffects:!1,preconstruct:{entrypoints:["index.tsx","native.tsx"]},scripts:{prebuild:"cp ../../readme.md readme.md"},devDependencies:{"@types/react-reconciler":"^0.32.3","react-reconciler":"^0.33.0"},dependencies:{"@babel/runtime":"^7.17.8","@types/webxr":"*","base64-js":"^1.5.1",buffer:"^6.0.3","its-fine":"^2.0.0","react-use-measure":"^2.1.7",scheduler:"^0.27.0","suspend-react":"^0.1.3","use-sync-external-store":"^1.4.0",zustand:"^5.0.3"},peerDependencies:{expo:">=43.0","expo-asset":">=8.4","expo-file-system":">=11.0","expo-gl":">=11.0",react:">=19 <19.3","react-dom":">=19 <19.3","react-native":">=0.78",three:">=0.156"},peerDependenciesMeta:{"react-dom":{optional:!0},"react-native":{optional:!0},expo:{optional:!0},"expo-asset":{optional:!0},"expo-file-system":{optional:!0},"expo-gl":{optional:!0}}};function OD(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var CM={exports:{}},c0={exports:{}};c0.exports;var RM;function FD(){return RM||(RM=1,(function(e){e.exports=function(t){function n(i,r){for(i=i.memoizedState;i!==null&&0=r.length)return u;var p=r[o],m=ai(i)?i.slice():si({},i);return m[p]=s(i[p],r,o+1,u),m}function a(i,r,o){if(r.length===o.length){for(var u=0;uTs||(rg[Ts],i.current=ig[Ts],ig[Ts]=null,rg[Ts]=null,Ts--)}function X(i,r,o){Ts++,ig[Ts]=i.current,rg[Ts]=o,i.current=r}function K(i){return i>>>=0,i===0?32:31-(wR(i)/TR|0)|0}function ee(i){var r=i&42;if(r!==0)return r;switch(i&-i){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 i&261888;case 262144:case 524288:case 1048576:case 2097152:return i&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return i&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return i}}function ae(i,r,o){var u=i.pendingLanes;if(u===0)return 0;var p=0,m=i.suspendedLanes,x=i.pingedLanes;i=i.warmLanes;var E=u&134217727;return E!==0?(u=E&~m,u!==0?p=ee(u):(x&=E,x!==0?p=ee(x):o||(o=E&~i,o!==0&&(p=ee(o))))):(E=u&~m,E!==0?p=ee(E):x!==0?p=ee(x):o||(o=u&~i,o!==0&&(p=ee(o)))),p===0?0:r!==0&&r!==p&&(r&m)===0&&(m=p&-p,o=r&-r,m>=o||m===32&&(o&4194048)!==0)?r:p}function Q(i,r){return(i.pendingLanes&~(i.suspendedLanes&~i.pingedLanes)&r)===0}function me(i,r){switch(i){case 1:case 2:case 4:case 8:case 64:return r+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 r+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 _e(){var i=ld;return ld<<=1,!(ld&62914560)&&(ld=4194304),i}function ge(i){for(var r=[],o=0;31>o;o++)r.push(i);return r}function be(i,r){i.pendingLanes|=r,r!==268435456&&(i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0)}function Ie(i,r,o,u,p,m){var x=i.pendingLanes;i.pendingLanes=o,i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0,i.expiredLanes&=o,i.entangledLanes&=o,i.errorRecoveryDisabledLanes&=o,i.shellSuspendCounter=0;var E=i.entanglements,B=i.expirationTimes,Y=i.hiddenUpdates;for(o=x&~o;0"u")return!1;var r=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(r.isDisabled||!r.supportsFiber)return!0;try{fl=r.inject(i),gi=r}catch{}return!!r.checkDCE}function Le(i){if(typeof RR=="function"&&PR(i),gi&&typeof gi.setStrictMode=="function")try{gi.setStrictMode(fl,i)}catch{rs||(rs=!0)}}function At(i,r){return i===r&&(i!==0||1/i===1/r)||i!==i&&r!==r}function pe(i){for(var r=0,o=0;o";break}if(3>u||B===1&&E[0]==="children"&&x==null){r="<"+m+" … />";break}o.push([p+"  ".repeat(u)+i,"<"+m]),x!==null&&Ae("key",x,o,u+1,p),i=!1;for(var Y in r)Y==="children"?r.children!=null&&(!ai(r.children)||0":"/>"]);return}if(m=Object.prototype.toString.call(r),m=m.slice(8,m.length-1),m==="Array"){if(Y=pe(r),Y===2||Y===0){r=JSON.stringify(r);break}else if(Y===3){for(o.push([p+"  ".repeat(u)+i,""]),i=0;im){o=o[m],o[1]="Promise<"+(o[1]||"Object")+">";return}}else if(r.status==="rejected"&&(m=o.length,Ae(i,r.reason,o,u,p),o.length>m)){o=o[m],o[1]="Rejected Promise<"+o[1]+">";return}o.push(["  ".repeat(u)+i,"Promise"]);return}m==="Object"&&(Y=Object.getPrototypeOf(r))&&typeof Y.constructor=="function"&&(m=Y.constructor.name),o.push([p+"  ".repeat(u)+i,m==="Object"?3>u?"":"…":m]),3>u&&Ee(r,o,u+1,p);return}case"function":r=r.name===""?"() => {}":r.name+"() {}";break;case"string":r=r==="This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects."?"…":JSON.stringify(r);break;case"undefined":r="undefined";break;case"boolean":r=r?"true":"false";break;default:r=String(r)}o.push([p+"  ".repeat(u)+i,r])}function Ve(i,r,o,u){var p=!0;for(x in i)x in r||(o.push(["– "+"  ".repeat(u)+x,"…"]),p=!1);for(var m in r)if(m in i){var x=i[m],E=r[m];if(x!==E){if(u===0&&m==="children")p="  ".repeat(u)+m,o.push(["– "+p,"…"],["+ "+p,"…"]);else{if(!(3<=u)){if(typeof x=="object"&&typeof E=="object"&&x!==null&&E!==null&&x.$$typeof===E.$$typeof)if(E.$$typeof===xs){if(x.type===E.type&&x.key===E.key){x=P(E.type)||"…",p="  ".repeat(u)+m,x="<"+x+" … />",o.push(["– "+p,x],["+ "+p,x]),p=!1;continue}}else{var B=Object.prototype.toString.call(x),Y=Object.prototype.toString.call(E);if(B===Y&&(Y==="[object Object]"||Y==="[object Array]")){B=["  "+"  ".repeat(u)+m,Y==="[object Array]"?"Array":""],o.push(B),Y=o.length,Ve(x,E,o,u+1)?Y===o.length&&(B[1]="Referentially unequal but deeply equal objects. Consider memoization."):p=!1;continue}}else if(typeof x=="function"&&typeof E=="function"&&x.name===E.name&&x.length===E.length&&(B=Function.prototype.toString.call(x),Y=Function.prototype.toString.call(E),B===Y)){x=E.name===""?"() => {}":E.name+"() {}",o.push(["  "+"  ".repeat(u)+m,x+" Referentially unequal function closure. Consider memoization."]);continue}}Ae(m,x,o,u,"– "),Ae(m,E,o,u,"+ ")}p=!1}}else o.push(["+ "+"  ".repeat(u)+m,"…"]),p=!1;return p}function Oe(i){In=i&63?"Blocking":i&64?"Gesture":i&4194176?"Transition":i&62914560?"Suspense":i&2080374784?"Idle":"Other"}function qe(i,r,o,u){pn&&(da.start=r,da.end=o,Es.color="warning",Es.tooltipText=u,Es.properties=null,(i=i._debugTask)?i.run(performance.measure.bind(performance,u,da)):performance.measure(u,da))}function tt(i,r,o){qe(i,r,o,"Reconnect")}function vt(i,r,o,u,p){var m=k(i);if(m!==null&&pn){var x=i.alternate,E=i.actualDuration;if(x===null||x.child!==i.child)for(var B=i.child;B!==null;B=B.sibling)E-=B.actualDuration;u=.5>E?u?"tertiary-light":"primary-light":10>E?u?"tertiary":"primary":100>E?u?"tertiary-dark":"primary-dark":"error";var Y=i.memoizedProps;E=i._debugTask,Y!==null&&x!==null&&x.memoizedProps!==Y?(B=[NR],Y=Ve(x.memoizedProps,Y,B,0),1{}).bind(console,m,r,o,"Components ⚛",void 0,u))}}function bt(i,r,o,u){if(pn){var p=k(i);if(p!==null){for(var m=null,x=[],E=0;Eu?"secondary-light":100>u?"secondary":500>u?"secondary-dark":"error",(i=i._debugTask)&&i.run((()=>{}).bind(console,m,r,o,"Components ⚛",void 0,p)))}function un(i,r,o,u){if(pn&&!(r<=i)){var p=(o&738197653)===o?"tertiary-dark":"primary-dark";o=(o&536870912)===o?"Prepared":(o&201326741)===o?"Hydrated":"Render",u&&u.run((()=>{}).bind(console,o,i,r,In,"Scheduler ⚛",p))}}function Gt(i,r,o,u){!pn||r<=i||(o=(o&738197653)===o?"tertiary-dark":"primary-dark",u&&u.run((()=>{}).bind(console,"Prewarm",i,r,In,"Scheduler ⚛",o)))}function Ut(i,r,o,u){!pn||r<=i||(o=(o&738197653)===o?"tertiary-dark":"primary-dark",u&&u.run((()=>{}).bind(console,"Suspended",i,r,In,"Scheduler ⚛",o)))}function U(i,r,o,u,p,m){if(pn&&!(r<=i)){o=[];for(var x=0;x{}).bind(console,"Errored",i,r,In,"Scheduler ⚛","error"))}function W(i,r,o,u){!pn||r<=i||u&&u.run((()=>{}).bind(console,o,i,r,In,"Scheduler ⚛","secondary-light"))}function re(i,r,o,u,p){if(pn&&!(r<=i)){for(var m=[],x=0;xZc}function Z(i){var r=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,i=i.stack,Error.prepareStackTrace=r,i.startsWith(`Error: react-stack-top-frame +`)&&(i=i.slice(29)),r=i.indexOf(` +`),r!==-1&&(i=i.slice(r+1)),r=i.indexOf("react_stack_bottom_frame"),r!==-1&&(r=i.lastIndexOf(` +`,r)),r!==-1)i=i.slice(0,r);else return"";return i}function Se(i){if(og===void 0)try{throw Error()}catch(o){var r=o.stack.trim().match(/\n( *(at )?)/);og=r&&r[1]||"",gx=-1)":-1x||Y[m]!==se[x]){var ce=` +`+Y[m].replace(" at new "," at ");return i.displayName&&ce.includes("")&&(ce=ce.replace("",i.displayName)),typeof i=="function"&&cg.set(i,ce),ce}while(1<=m&&0<=x);break}}}finally{lg=!1,oe.H=u,Ue(),Error.prepareStackTrace=o}return Y=(Y=i?i.displayName||i.name:"")?Se(Y):"",typeof i=="function"&&cg.set(i,Y),Y}function Qe(i,r){switch(i.tag){case 26:case 27:case 5:return Se(i.type);case 16:return Se("Lazy");case 13:return i.child!==r&&r!==null?Se("Suspense Fallback"):Se("Suspense");case 19:return Se("SuspenseList");case 0:case 15:return Ge(i.type,!1);case 11:return Ge(i.type.render,!1);case 1:return Ge(i.type,!0);case 31:return Se("Activity");default:return""}}function Te(i){try{var r="",o=null;do{r+=Qe(i,o);var u=i._debugInfo;if(u)for(var p=u.length-1;0<=p;p--){var m=u[p];if(typeof m.name=="string"){var x=r;e:{var E=m.name,B=m.env,Y=m.debugLocation;if(Y!=null){var se=Z(Y),ce=se.lastIndexOf(` +`),fe=ce===-1?se:se.slice(ce+1);if(fe.indexOf(E)!==-1){var at=` +`+fe;break e}}at=Se(E+(B?" ["+B+"]":""))}r=x+at}}o=i,i=i.return}while(i);return r}catch(mt){return` +Error generating stack: `+mt.message+` +`+mt.stack}}function nt(i){return(i=i?i.displayName||i.name:"")?Se(i):""}function $e(i,r){if(typeof i=="object"&&i!==null){var o=ug.get(i);return o!==void 0?o:(r={value:i,source:r,stack:Te(r)},ug.set(i,r),r)}return{value:i,source:r,stack:Te(r)}}function ct(i,r){pl[ml++]=$c,pl[ml++]=ud,ud=i,$c=r}function jt(i,r,o){dr[fr++]=As,dr[fr++]=Cs,dr[fr++]=lo,lo=i;var u=As;i=Cs;var p=32-Ci(u)-1;u&=~(1<>=x,p-=x,As=1<<32-Ci(r)+p|o<15-r?ur(i.children[0],r):i}function wi(i){return" "+" ".repeat(i)}function ms(i){return"+ "+" ".repeat(i)}function wr(i){return"- "+" ".repeat(i)}function mh(i){switch(i.tag){case 26:case 27:case 5:return i.type;case 16:return"Lazy";case 31:return"Activity";case 13:return"Suspense";case 19:return"SuspenseList";case 0:case 15:return i=i.type,i.displayName||i.name||null;case 11:return i=i.type.render,i.displayName||i.name||null;case 1:return i=i.type,i.displayName||i.name||null;default:return null}}function na(i,r){return vx.test(i)?(i=JSON.stringify(i),i.length>r-2?8>r?'{"..."}':"{"+i.slice(0,r-7)+'..."}':"{"+i+"}"):i.length>r?5>r?'{"..."}':i.slice(0,r-3)+"...":i}function ja(i,r,o){var u=120-2*o;if(r===null)return ms(o)+na(i,u)+` +`;if(typeof r=="string"){for(var p=0;pu-8&&10r?5>r?'"..."':i.slice(0,r-4)+'..."':i;case"object":if(i===null)return"null";if(ai(i))return"[...]";if(i.$$typeof===xs)return(r=P(i.type))?"<"+r+">":"<...>";var o=Tr(i);if(o==="Object"){o="",r-=2;for(var u in i)if(i.hasOwnProperty(u)){var p=JSON.stringify(u);if(p!=='"'+u+'"'&&(u=p),r-=u.length-2,p=gs(i[u],15>r?r:15),r-=p.length,0>r){o+=o===""?"...":", ...";break}o+=(o===""?"":",")+u+":"+p}return"{"+o+"}"}return o;case"function":return(r=i.displayName||i.name)?"function "+r:"function";default:return String(i)}}function vs(i,r){return typeof i!="string"||vx.test(i)?"{"+gs(i,r-2)+"}":i.length>r-2?5>r?'"..."':'"'+i.slice(0,r-5)+'..."':'"'+i+'"'}function Zo(i,r,o){var u=120-o.length-i.length,p=[],m;for(m in r)if(r.hasOwnProperty(m)&&m!=="children"){var x=vs(r[m],120-o.length-m.length-1);u-=m.length+x.length+2,p.push(m+"="+x)}return p.length===0?o+"<"+i+`> +`:0 +`:o+"<"+i+` +`+o+" "+p.join(` +`+o+" ")+` +`+o+`> +`}function $o(i,r,o){var u="",p=si({},r),m;for(m in i)if(i.hasOwnProperty(m)){delete p[m];var x=120-2*o-m.length-2,E=gs(i[m],x);r.hasOwnProperty(m)?(x=gs(r[m],x),u+=ms(o)+m+": "+E+` +`,u+=wr(o)+m+": "+x+` +`):u+=ms(o)+m+": "+E+` +`}for(var B in p)p.hasOwnProperty(B)&&(i=gs(p[B],120-2*o-B.length-2),u+=wr(o)+B+": "+i+` +`);return u}function gh(i,r,o,u){var p="",m=new Map;for(Y in o)o.hasOwnProperty(Y)&&m.set(Y.toLowerCase(),Y);if(m.size===1&&m.has("children"))p+=Zo(i,r,wi(u));else{for(var x in r)if(r.hasOwnProperty(x)&&x!=="children"){var E=120-2*(u+1)-x.length-1,B=m.get(x.toLowerCase());if(B!==void 0){m.delete(x.toLowerCase());var Y=r[x];B=o[B];var se=vs(Y,E);E=vs(B,E),typeof Y=="object"&&Y!==null&&typeof B=="object"&&B!==null&&Tr(Y)==="Object"&&Tr(B)==="Object"&&(2 +`:wi(u)+"<"+i+` +`+p+wi(u)+`> +`}return i=o.children,r=r.children,typeof i=="string"||typeof i=="number"||typeof i=="bigint"?(m="",(typeof r=="string"||typeof r=="number"||typeof r=="bigint")&&(m=""+r),p+=ja(m,""+i,u+1)):(typeof r=="string"||typeof r=="number"||typeof r=="bigint")&&(p=i==null?p+ja(""+r,null,u+1):p+ja(""+r,void 0,u+1)),p}function Za(i,r){var o=mh(i);if(o===null){for(o="",i=i.child;i;)o+=Za(i,r),i=i.sibling;return o}return wi(r)+"<"+o+`> +`}function Jo(i,r){var o=ur(i,r);if(o!==i&&(i.children.length!==1||i.children[0]!==o))return wi(r)+`... +`+Jo(o,r+1);o="";var u=i.fiber._debugInfo;if(u)for(var p=0;p +`,r++)}if(u="",p=i.fiber.pendingProps,i.fiber.tag===6)u=ja(p,i.serverProps,r),r++;else if(m=mh(i.fiber),m!==null)if(i.serverProps===void 0){u=r;var x=120-2*u-m.length-2,E="";for(Y in p)if(p.hasOwnProperty(Y)&&Y!=="children"){var B=vs(p[Y],15);if(x-=Y.length+B.length+2,0>x){E+=" ...";break}E+=" "+Y+"="+B}u=wi(u)+"<"+m+E+`> +`,r++}else i.serverProps===null?(u=Zo(m,p,ms(r)),r++):typeof i.serverProps=="string"||(u=gh(m,p,i.serverProps,r),r++);var Y="";for(p=i.fiber.child,m=0;p&&mr&&(er.distanceFromLeaf=r)}return er}var o=ys(i.return,r+1).children;return 0r&&(o.distanceFromLeaf=r),o):(r={fiber:i,children:[],serverProps:void 0,serverTail:[],distanceFromLeaf:r},o.push(r),r)}function N(){}function $(i,r){os||(i=ys(i,0),i.serverProps=null,r!==null&&(r=Yb(r),i.serverTail.push(r)))}function ie(i){var r=1i.refCount,i.refCount===0&&OR(FR,function(){i.controller.abort()})}function zt(i,r,o){(i&127)!==0?0>ls&&(ls=Un(),Kc=md(r),pg=r,o!=null&&(mg=k(o)),Nm()&&(Tn=!0,ya=1),i=qc(),r=Xc(),i!==yl||r!==Qc?yl=-1.1:r!==null&&(ya=1),ho=i,Qc=r):i&4194048&&0>mr&&(mr=Un(),eu=md(r),yx=r,o!=null&&(_x=k(o)),0>Ls)&&(i=qc(),r=Xc(),(i!==ba||r!==fo)&&(ba=-1.1),_a=i,fo=r)}function Sn(i){if(0>ls){ls=Un(),Kc=i._debugTask!=null?i._debugTask:null,Nm()&&(ya=1);var r=qc(),o=Xc();r!==yl||o!==Qc?yl=-1.1:o!==null&&(ya=1),ho=r,Qc=o}0>mr&&(mr=Un(),eu=i._debugTask!=null?i._debugTask:null,0>Ls)&&(i=qc(),r=Xc(),(i!==ba||r!==fo)&&(ba=-1.1),_a=i,fo=r)}function $n(){var i=co;return co=0,i}function $t(i){var r=co;return co=i,r}function Er(i){var r=co;return co+=i,r}function Ar(){dt=lt=-1.1}function hi(){var i=lt;return lt=-1.1,i}function $i(i){0<=i&&(lt=i)}function qr(){var i=_n;return _n=-0,i}function Yr(i){0<=i&&(_n=i)}function jr(){var i=vn;return vn=null,i}function Zr(){var i=Tn;return Tn=!1,i}function xp(i){Pi=Un(),0>i.actualStartTime&&(i.actualStartTime=Pi)}function Sp(i){if(0<=Pi){var r=Un()-Pi;i.actualDuration+=r,i.selfBaseDuration=r,Pi=-1}}function uy(i){if(0<=Pi){var r=Un()-Pi;i.actualDuration+=r,Pi=-1}}function $r(){if(0<=Pi){var i=Un(),r=i-Pi;Pi=-1,co+=r,_n+=r,dt=i}}function hy(i){vn===null&&(vn=[]),vn.push(i),Ps===null&&(Ps=[]),Ps.push(i)}function Jr(){Pi=Un(),0>lt&&(lt=Pi)}function Rc(i){for(var r=i.child;r;)i.actualDuration+=r.actualDuration,r=r.sibling}function vh(){}function Kr(i){i!==_l&&i.next===null&&(_l===null?xd=_l=i:_l=_l.next=i),Sd=!0,oe.actQueue!==null?yg||(yg=!0,gy()):vg||(vg=!0,gy())}function Ko(i,r){if(!_g&&Sd){_g=!0;do for(var o=!1,u=xd;u!==null;){if(!r)if(i!==0){var p=u.pendingLanes;if(p===0)var m=0;else{var x=u.suspendedLanes,E=u.pingedLanes;m=(1<<31-Ci(42|i)+1)-1,m&=p&~(x&~E),m=m&201326741?m&201326741|1:m?m|2:0}m!==0&&(o=!0,my(u,m))}else m=Pt,m=ae(u,u===rn?m:0,u.cancelPendingCommit!==null||u.timeoutHandle!==ao),!(m&3)||Q(u,m)||(o=!0,my(u,m));u=u.next}while(o);_g=!1}}function dy(){Jm(),Mp()}function Mp(){Sd=yg=vg=!1;var i=0;po!==0&&lC()&&(i=po);for(var r=Wn(),o=null,u=xd;u!==null;){var p=u.next,m=fy(u,r);m===0?(u.next=null,o===null?xd=p:o.next=p,p===null&&(_l=o)):(o=u,(i!==0||m&3)&&(Sd=!0)),u=p}kn!==Aa&&kn!==qd||Ko(i,!1),po!==0&&(po=0)}function fy(i,r){for(var o=i.suspendedLanes,u=i.pingedLanes,p=i.expirationTimes,m=i.pendingLanes&-62914561;0Tt?(mn=Mt,Mt=null):mn=Mt.sibling;var Nn=fe(H,Mt,J[Tt],he);if(Nn===null){Mt===null&&(Mt=mn);break}je=mt(H,Nn,J[Tt],je),i&&Mt&&Nn.alternate===null&&r(H,Mt),G=m(Nn,G,Tt),_t===null?Zt=Nn:_t.sibling=Nn,_t=Nn,Mt=mn}if(Tt===J.length)return o(H,Mt),kt&&ct(H,Tt),Zt;if(Mt===null){for(;TtMt?(Tt=_t,_t=null):Tt=_t.sibling;var zs=fe(H,_t,Nn.value,he);if(zs===null){_t===null&&(_t=Tt);break}mn=mt(H,zs,Nn.value,mn),i&&_t&&zs.alternate===null&&r(H,_t),G=m(zs,G,Mt),Zt===null?je=zs:Zt.sibling=zs,Zt=zs,_t=Tt}if(Nn.done)return o(H,_t),kt&&ct(H,Mt),je;if(_t===null){for(;!Nn.done;Mt++,Nn=J.next())_t=ce(H,Nn.value,he),_t!==null&&(mn=mt(H,_t,Nn.value,mn),G=m(_t,G,Mt),Zt===null?je=_t:Zt.sibling=_t,Zt=_t);return kt&&ct(H,Mt),je}for(_t=u(_t);!Nn.done;Mt++,Nn=J.next())Tt=at(_t,H,Mt,Nn.value,he),Tt!==null&&(mn=mt(H,Tt,Nn.value,mn),i&&Tt.alternate!==null&&_t.delete(Tt.key===null?Mt:Tt.key),G=m(Tt,G,Mt),Zt===null?je=Tt:Zt.sibling=Tt,Zt=Tt);return i&&_t.forEach(function(ZR){return r(H,ZR)}),kt&&ct(H,Mt),je}function zr(H,G,J,he){if(typeof J=="object"&&J!==null&&J.type===ll&&J.key===null&&(bh(J,null,H),J=J.props.children),typeof J=="object"&&J!==null){switch(J.$$typeof){case xs:var je=ii(J._debugInfo);e:{for(var Zt=J.key;G!==null;){if(G.key===Zt){if(Zt=J.type,Zt===ll){if(G.tag===7){o(H,G.sibling),he=p(G,J.props.children),he.return=H,he._debugOwner=J._owner,he._debugInfo=Rt,bh(J,he,H),H=he;break e}}else if(G.elementType===Zt||bb(G,J)||typeof Zt=="object"&&Zt!==null&&Zt.$$typeof===Qi&&ia(Zt)===G.type){o(H,G.sibling),he=p(G,J.props),Pc(he,J),he.return=H,he._debugOwner=J._owner,he._debugInfo=Rt,H=he;break e}o(H,G);break}else r(H,G);G=G.sibling}J.type===ll?(he=ro(J.props.children,H.mode,he,J.key),he.return=H,he._debugOwner=H,he._debugTask=H._debugTask,he._debugInfo=Rt,bh(J,he,H),H=he):(he=nd(J,H.mode,he),Pc(he,J),he.return=H,he._debugInfo=Rt,H=he)}return H=x(H),Rt=je,H;case so:e:{for(je=J,J=je.key;G!==null;){if(G.key===J)if(G.tag===4&&G.stateNode.containerInfo===je.containerInfo&&G.stateNode.implementation===je.implementation){o(H,G.sibling),he=p(G,je.children||[]),he.return=H,H=he;break e}else{o(H,G);break}else r(H,G);G=G.sibling}he=Gm(je,H.mode,he),he.return=H,H=he}return x(H);case Qi:return je=ii(J._debugInfo),J=ia(J),H=zr(H,G,J,he),Rt=je,H}if(ai(J))return je=ii(J._debugInfo),H=sn(H,G,J,he),Rt=je,H;if(A(J)){if(je=ii(J._debugInfo),Zt=A(J),typeof Zt!="function")throw Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.");var _t=Zt.call(J);return _t===J?(H.tag!==0||Object.prototype.toString.call(H.type)!=="[object GeneratorFunction]"||Object.prototype.toString.call(_t)!=="[object Generator]")&&(Ox=!0):J.entries!==Zt||Tg||(Tg=!0),H=Ol(H,G,_t,he),Rt=je,H}if(typeof J.then=="function")return je=ii(J._debugInfo),H=zr(H,G,xh(J),he),Rt=je,H;if(J.$$typeof===Ss)return zr(H,G,Yt(H,J),he);Sh(H,J)}return typeof J=="string"&&J!==""||typeof J=="number"||typeof J=="bigint"?(je=""+J,G!==null&&G.tag===6?(o(H,G.sibling),he=p(G,je),he.return=H,H=he):(o(H,G),he=Hm(je,H.mode,he),he.return=H,he._debugOwner=H,he._debugTask=H._debugTask,he._debugInfo=Rt,H=he),x(H)):(typeof J=="function"&&Mh(H,J),typeof J=="symbol"&&wh(H,J),o(H,G))}return function(H,G,J,he){var je=Rt;Rt=null;try{cu=0;var Zt=zr(H,G,J,he);return Sl=null,Zt}catch(mn){if(mn===xl||mn===wd)throw mn;var _t=f(29,mn,null,H.mode);_t.lanes=he,_t.return=H;var Mt=_t._debugInfo=Rt;if(_t._debugOwner=H._debugOwner,_t._debugTask=H._debugTask,Mt!=null){for(var Tt=Mt.length-1;0<=Tt;Tt--)if(typeof Mt[Tt].stack=="string"){_t._debugOwner=Mt[Tt],_t._debugTask=Mt[Tt].debugTask;break}}return _t}finally{Rt=je}}}function Cy(i,r){var o=ai(i);return i=!o&&typeof A(i)=="function",o||i?(o=o?"array":"iterable",!1):!0}function Th(){for(var i=Ml,r=Eg=Ml=0;rqR)throw To=Su=0,Mu=jg=null,Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");To>YR&&(To=0,Mu=null),i.alternate===null&&i.flags&4098&&_b(i);for(var r=i,o=r.return;o!==null;)r.alternate===null&&r.flags&4098&&_b(i),r=o,o=r.return;return r.tag===3?r.stateNode:null}function Rp(i){i.updateQueue={baseState:i.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Pp(i,r){i=i.updateQueue,r.updateQueue===i&&(r.updateQueue={baseState:i.baseState,firstBaseUpdate:i.firstBaseUpdate,lastBaseUpdate:i.lastBaseUpdate,shared:i.shared,callbacks:null})}function ra(i){return{lane:i,tag:Vx,payload:null,callback:null,next:null}}function sa(i,r,o){var u=i.updateQueue;if(u===null)return null;if(u=u.shared,Cg===u&&!Wx){var p=k(i);Wx=!0}return(Vt&ei)!==Qn?(p=u.pending,p===null?r.next=r:(r.next=p.next,p.next=r),u.pending=r,r=Ah(i),Ry(i,null,o),r):(Eh(i,u,r,o),Ah(i))}function Ic(i,r,o){if(r=r.updateQueue,r!==null&&(r=r.shared,(o&4194048)!==0)){var u=r.lanes;u&=i.pendingLanes,o|=u,r.lanes=o,pt(i,o)}}function Ch(i,r){var o=i.updateQueue,u=i.alternate;if(u!==null&&(u=u.updateQueue,o===u)){var p=null,m=null;if(o=o.firstBaseUpdate,o!==null){do{var x={lane:o.lane,tag:o.tag,payload:o.payload,callback:null,next:null};m===null?p=m=x:m=m.next=x,o=o.next}while(o!==null);m===null?p=m=r:m=m.next=r}else p=m=r;o={baseState:u.baseState,firstBaseUpdate:p,lastBaseUpdate:m,shared:u.shared,callbacks:u.callbacks},i.updateQueue=o;return}i=o.lastBaseUpdate,i===null?o.firstBaseUpdate=r:i.next=r,o.lastBaseUpdate=r}function Lc(){if(Rg){var i=bl;if(i!==null)throw i}}function Nc(i,r,o,u){Rg=!1;var p=i.updateQueue;xa=!1,Cg=p.shared;var m=p.firstBaseUpdate,x=p.lastBaseUpdate,E=p.shared.pending;if(E!==null){p.shared.pending=null;var B=E,Y=B.next;B.next=null,x===null?m=Y:x.next=Y,x=B;var se=i.alternate;se!==null&&(se=se.updateQueue,E=se.lastBaseUpdate,E!==x&&(E===null?se.firstBaseUpdate=Y:E.next=Y,se.lastBaseUpdate=B))}if(m!==null){var ce=p.baseState;x=0,se=Y=B=null,E=m;do{var fe=E.lane&-536870913,at=fe!==E.lane;if(at?(Pt&fe)===fe:(u&fe)===fe){fe!==0&&fe===mo&&(Rg=!0),se!==null&&(se=se.next={lane:0,tag:E.tag,payload:E.payload,callback:null,next:null});e:{fe=i;var mt=E,sn=r,Ol=o;switch(mt.tag){case Hx:if(mt=mt.payload,typeof mt=="function"){vl=!0;var zr=mt.call(Ol,ce,sn);if(fe.mode&8){Le(!0);try{mt.call(Ol,ce,sn)}finally{Le(!1)}}vl=!1,ce=zr;break e}ce=mt;break e;case Ag:fe.flags=fe.flags&-65537|128;case Vx:if(zr=mt.payload,typeof zr=="function"){if(vl=!0,mt=zr.call(Ol,ce,sn),fe.mode&8){Le(!0);try{zr.call(Ol,ce,sn)}finally{Le(!1)}}vl=!1}else mt=zr;if(mt==null)break e;ce=si({},ce,mt);break e;case Gx:xa=!0}}fe=E.callback,fe!==null&&(i.flags|=64,at&&(i.flags|=8192),at=p.callbacks,at===null?p.callbacks=[fe]:at.push(fe))}else at={lane:fe,tag:E.tag,payload:E.payload,callback:E.callback,next:null},se===null?(Y=se=at,B=ce):se=se.next=at,x|=fe;if(E=E.next,E===null){if(E=p.shared.pending,E===null)break;at=E,E=at.next,at.next=null,p.lastBaseUpdate=at,p.shared.pending=null}}while(!0);se===null&&(B=ce),p.baseState=B,p.firstBaseUpdate=Y,p.lastBaseUpdate=se,m===null&&(p.shared.lanes=0),wa|=x,i.lanes=x,i.memoizedState=ce}Cg=null}function Py(i,r){if(typeof i!="function")throw Error("Invalid argument passed as callback. Expected a function. Instead received: "+i);i.call(r)}function fA(i,r){var o=i.shared.hiddenCallbacks;if(o!==null)for(i.shared.hiddenCallbacks=null,i=0;ip.length;)p+=" ";p+=m+` +`,o+=p}}}function Qo(i){i==null||ai(i)}function Ph(){var i=k(yt);Yx.has(i)||Yx.add(i)}function An(){throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: +1. You might have mismatching versions of React and the renderer (such as React DOM) +2. You might be breaking the Rules of Hooks +3. You might have more than one copy of React in the same app +See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`)}function Dp(i,r){if(fu||r===null)return!1;i.length,r.length;for(var o=0;o=GR)throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");if(p+=1,fu=!1,On=nn=null,i.updateQueue!=null){var m=i.updateQueue;m.lastEffect=null,m.events=null,m.stores=null,m.memoCache!=null&&(m.memoCache.index=0)}Os=-1,oe.H=Zx,m=Sg(r,o,u)}while(Al);return m}function pA(){var i=oe.H,r=i.useState()[0];return r=typeof r.then=="function"?Dc(r):r,i=i.useState()[0],(nn!==null?nn.memoizedState:null)!==i&&(yt.flags|=1024),r}function Fp(){var i=Rd!==0;return Rd=0,i}function Bp(i,r,o){r.updateQueue=i.updateQueue,r.flags=(r.mode&16)!==ft?r.flags&-402655237:r.flags&-2053,i.lanes&=~o}function zp(i){if(Cd){for(i=i.memoizedState;i!==null;){var r=i.queue;r!==null&&(r.pending=null),i=i.next}Cd=!1}Ds=0,yr=On=nn=yt=null,Os=-1,le=null,Al=!1,du=Rd=0,Us=null}function Ei(){var i={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return On===null?yt.memoizedState=On=i:On=On.next=i,On}function Qt(){if(nn===null){var i=yt.alternate;i=i!==null?i.memoizedState:null}else i=nn.next;var r=On===null?yt.memoizedState:On.next;if(r!==null)On=r,nn=i;else{if(i===null)throw yt.alternate===null?Error("Update hook called on initial render. This is likely a bug in React. Please file an issue."):Error("Rendered more hooks than during the previous render.");nn=i,i={memoizedState:nn.memoizedState,baseState:nn.baseState,baseQueue:nn.baseQueue,queue:nn.queue,next:null},On===null?yt.memoizedState=On=i:On=On.next=i}return On}function Ih(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Dc(i){var r=du;return du+=1,Us===null&&(Us=_y()),i=xy(Us,i,r),r=yt,(On===null?r.memoizedState:On.next)===null&&(r=r.alternate,oe.H=r!==null&&r.memoizedState!==null?Lg:Ig),i}function la(i){if(i!==null&&typeof i=="object"){if(typeof i.then=="function")return Dc(i);if(i.$$typeof===Ss)return Wt(i)}throw Error("An unsupported type was passed to use(): "+String(i))}function $a(i){var r=null,o=yt.updateQueue;if(o!==null&&(r=o.memoCache),r==null){var u=yt.alternate;u!==null&&(u=u.updateQueue,u!==null&&(u=u.memoCache,u!=null&&(r={data:u.data.map(function(p){return p.slice()}),index:0})))}if(r??={data:[],index:0},o===null&&(o=Ih(),yt.updateQueue=o),o.memoCache=r,o=r.data[r.index],o===void 0||fu)for(o=r.data[r.index]=Array(i),u=0;um?m:8);var x=oe.T,E={};E._updatedFibers=new Set,oe.T=E,rm(i,!1,r,o);try{var B=p(),Y=oe.S;if(Y!==null&&Y(E,B),B!==null&&typeof B=="object"&&typeof B.then=="function"){oe.asyncTransitions++,B.then(kh,kh);var se=dA(B,u);Oc(i,r,se,Ki(i))}else Oc(i,r,u,Ki(i))}catch(ce){Oc(i,r,{then:function(){},status:"rejected",reason:ce},Ki(i))}finally{Jn(m),x!==null&&E.types!==null&&(x.types!==null&&(x.types,E.types),x.types=E.types),oe.T=x,x===null&&E._updatedFibers&&(i=E._updatedFibers.size,E._updatedFibers.clear(),10bu&&(r.flags|=128,p=!0,Bc(u,!1),r.lanes=4194304)}else{if(!p)if(i=Rh(m),i!==null){if(r.flags|=128,p=!0,i=i.updateQueue,r.updateQueue=i,Yh(r,i),Bc(u,!0),u.tail===null&&u.tailMode==="hidden"&&!m.alternate&&!kt)return on(r),null}else 2*Wn()-u.renderingStartTime>bu&&o!==536870912&&(r.flags|=128,p=!0,Bc(u,!1),r.lanes=4194304);u.isBackwards?(m.sibling=r.child,r.child=m):(i=u.last,i!==null?i.sibling=m:r.child=m,u.last=m)}return u.tail!==null?(i=u.tail,u.rendering=i,u.tail=i.sibling,u.renderingStartTime=Wn(),i.sibling=null,o=Ln.current,o=p?o&Tl|hu:o&Tl,X(Ln,o,r),kt&&ct(r,u.treeForkCount),i):(on(r),null);case 22:case 23:return Ji(r),Lp(r),u=r.memoizedState!==null,i!==null?i.memoizedState!==null!==u&&(r.flags|=8192):u&&(r.flags|=8192),u?o&536870912&&!(r.flags&128)&&(on(r),r.subtreeFlags&6&&(r.flags|=8192)):on(r),o=r.updateQueue,o!==null&&Yh(r,o.retryQueue),o=null,i!==null&&i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(o=i.memoizedState.cachePool.pool),u=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(u=r.memoizedState.cachePool.pool),u!==o&&(r.flags|=2048),i!==null&&q(go,r),null;case 24:return o=null,i!==null&&(o=i.memoizedState.cache),r.memoizedState.cache!==o&&(r.flags|=2048),qt(wn,r),on(r),null;case 25:return null;case 30:return null}throw Error("Unknown unit of work tag ("+r.tag+"). This error is likely caused by a bug in React. Please file an issue.")}function wA(i,r){switch(de(r),r.tag){case 1:return i=r.flags,i&65536?(r.flags=i&-65537|128,(r.mode&2)!==ft&&Rc(r),r):null;case 3:return qt(wn,r),ot(r),i=r.flags,(i&65536)!==0&&(i&128)===0?(r.flags=i&-65537|128,r):null;case 26:case 27:case 5:return Mi(r),null;case 31:if(r.memoizedState!==null){if(Ji(r),r.alternate===null)throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");He()}return i=r.flags,i&65536?(r.flags=i&-65537|128,(r.mode&2)!==ft&&Rc(r),r):null;case 13:if(Ji(r),i=r.memoizedState,i!==null&&i.dehydrated!==null){if(r.alternate===null)throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");He()}return i=r.flags,i&65536?(r.flags=i&-65537|128,(r.mode&2)!==ft&&Rc(r),r):null;case 19:return q(Ln,r),null;case 4:return ot(r),null;case 10:return qt(r.type,r),null;case 22:case 23:return Ji(r),Lp(r),i!==null&&q(go,r),i=r.flags,i&65536?(r.flags=i&-65537|128,(r.mode&2)!==ft&&Rc(r),r):null;case 24:return qt(wn,r),null;case 25:return null;default:return null}}function T_(i,r){switch(de(r),r.tag){case 3:qt(wn,r),ot(r);break;case 26:case 27:case 5:Mi(r);break;case 4:ot(r);break;case 31:r.memoizedState!==null&&Ji(r);break;case 13:Ji(r);break;case 19:q(Ln,r);break;case 10:qt(r.type,r);break;case 22:case 23:Ji(r),Lp(r),i!==null&&q(go,r);break;case 24:qt(wn,r)}}function Qr(i){return(i.mode&2)!==ft}function E_(i,r){Qr(i)?(Jr(),zc(r,i),$r()):zc(r,i)}function Sm(i,r,o){Qr(i)?(Jr(),il(o,i,r),$r()):il(o,i,r)}function zc(i,r){try{var o=r.updateQueue,u=o!==null?o.lastEffect:null;if(u!==null){var p=u.next;o=p;do{if((o.tag&i)===i&&(u=void 0,(i&Ii)!==Ad&&(Dl=!0),u=Je(r,zR,o),(i&Ii)!==Ad&&(Dl=!1),u!==void 0&&typeof u!="function")){var m=void 0;m=(o.tag&nr)!==0?"useLayoutEffect":(o.tag&Ii)!==0?"useInsertionEffect":"useEffect";var x=void 0;x=u===null?" You returned null. If your effect does not require clean up, return undefined (or nothing).":typeof u.then=="function"?` + +It looks like you wrote `+m+`(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately: + +`+m+`(() => { + async function fetchData() { + // You can await here + const response = await MyAPI.getData(someId); + // ... + } + fetchData(); +}, [someId]); // Or [] if effect doesn't need props or state + +Learn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching`:" You returned: "+u,Je(r,function(E,B){},m,x)}o=o.next}while(o!==p)}}catch(E){Jt(r,r.return,E)}}function il(i,r,o){try{var u=r.updateQueue,p=u!==null?u.lastEffect:null;if(p!==null){var m=p.next;u=m;do{if((u.tag&i)===i){var x=u.inst,E=x.destroy;E!==void 0&&(x.destroy=void 0,(i&Ii)!==Ad&&(Dl=!0),p=r,Je(p,kR,p,o,E),(i&Ii)!==Ad&&(Dl=!1))}u=u.next}while(u!==m)}}catch(B){Jt(r,r.return,B)}}function A_(i,r){Qr(i)?(Jr(),zc(r,i),$r()):zc(r,i)}function Mm(i,r,o){Qr(i)?(Jr(),il(o,i,r),$r()):il(o,i,r)}function C_(i){var r=i.updateQueue;if(r!==null){var o=i.stateNode;i.type.defaultProps||"ref"in i.memoizedProps||Cl||(o.props,i.memoizedProps,o.state,i.memoizedState);try{Je(i,Iy,r,o)}catch(u){Jt(i,i.return,u)}}}function TA(i,r,o){return i.getSnapshotBeforeUpdate(r,o)}function EA(i,r){var o=r.memoizedProps,u=r.memoizedState;r=i.stateNode,i.type.defaultProps||"ref"in i.memoizedProps||Cl||(r.props,i.memoizedProps,r.state,i.memoizedState);try{var p=Qa(i.type,o),m=Je(i,TA,r,p,u);o=fS,m!==void 0||o.has(i.type)||(o.add(i.type),Je(i,function(){})),r.__reactInternalSnapshotBeforeUpdate=m}catch(x){Jt(i,i.return,x)}}function R_(i,r,o){o.props=Qa(i.type,i.memoizedProps),o.state=i.memoizedState,Qr(i)?(Jr(),Je(i,Lx,i,r,o),$r()):Je(i,Lx,i,r,o)}function AA(i){var r=i.ref;if(r!==null){switch(i.tag){case 26:case 27:case 5:var o=cl(i.stateNode);break;case 30:o=i.stateNode;break;default:o=i.stateNode}if(typeof r=="function")if(Qr(i))try{Jr(),i.refCleanup=r(o)}finally{$r()}else i.refCleanup=r(o);else typeof r=="string"||r.hasOwnProperty("current"),r.current=o}}function kc(i,r){try{Je(i,AA,i)}catch(o){Jt(i,r,o)}}function es(i,r){var o=i.ref,u=i.refCleanup;if(o!==null)if(typeof u=="function")try{if(Qr(i))try{Jr(),Je(i,u)}finally{$r(i)}else Je(i,u)}catch(p){Jt(i,r,p)}finally{i.refCleanup=null,i=i.alternate,i!=null&&(i.refCleanup=null)}else if(typeof o=="function")try{if(Qr(i))try{Jr(),Je(i,o,null)}finally{$r(i)}else Je(i,o,null)}catch(p){Jt(i,r,p)}else o.current=null}function P_(i,r,o,u){var p=i.memoizedProps,m=p.id,x=p.onCommit;p=p.onRender,r=r===null?"mount":"update",_d&&(r="nested-update"),typeof p=="function"&&p(m,r,i.actualDuration,i.treeBaseDuration,i.actualStartTime,o),typeof x=="function"&&x(m,r,u,o)}function CA(i,r,o,u){var p=i.memoizedProps;i=p.id,p=p.onPostCommit,r=r===null?"mount":"update",_d&&(r="nested-update"),typeof p=="function"&&p(i,r,u,o)}function I_(i){var r=i.type,o=i.memoizedProps,u=i.stateNode;try{Je(i,CC,u,r,o,i)}catch(p){Jt(i,i.return,p)}}function wm(i,r,o){try{Je(i,RC,i.stateNode,i.type,o,r,i)}catch(u){Jt(i,i.return,u)}}function L_(i){return i.tag===5||i.tag===3||(Lr?i.tag===26:!1)||(Gn?i.tag===27&&dl(i.type):!1)||i.tag===4}function Tm(i){e:for(;;){for(;i.sibling===null;){if(i.return===null||L_(i.return))return null;i=i.return}for(i.sibling.return=i.return,i=i.sibling;i.tag!==5&&i.tag!==6&&i.tag!==18;){if(Gn&&i.tag===27&&dl(i.type)||i.flags&2||i.child===null||i.tag===4)continue e;i.child.return=i,i=i.child}if(!(i.flags&2))return i.stateNode}}function Em(i,r,o){var u=i.tag;if(u===5||u===6)i=i.stateNode,r?IC(o,i,r):EC(o,i);else if(u!==4&&(Gn&&u===27&&dl(i.type)&&(o=i.stateNode,r=null),i=i.child,i!==null))for(Em(i,r,o),i=i.sibling;i!==null;)Em(i,r,o),i=i.sibling}function jh(i,r,o){var u=i.tag;if(u===5||u===6)i=i.stateNode,r?PC(o,i,r):TC(o,i);else if(u!==4&&(Gn&&u===27&&dl(i.type)&&(o=i.stateNode),i=i.child,i!==null))for(jh(i,r,o),i=i.sibling;i!==null;)jh(i,r,o),i=i.sibling}function RA(i){for(var r,o=i.return;o!==null;){if(L_(o)){r=o;break}o=o.return}if(pi){if(r==null)throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");switch(r.tag){case 27:if(Gn){r=r.stateNode,o=Tm(i),jh(i,o,r);break}case 5:o=r.stateNode,r.flags&32&&(Fb(o),r.flags&=-33),r=Tm(i),jh(i,r,o);break;case 3:case 4:r=r.stateNode.containerInfo,o=Tm(i),Em(i,o,r);break;default:throw Error("Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.")}}}function N_(i,r,o){i=i.containerInfo;try{Je(r,kb,i,o)}catch(u){Jt(r,r.return,u)}}function D_(i){var r=i.stateNode,o=i.memoizedProps;try{Je(i,MR,i.type,o,r,i)}catch(u){Jt(i,i.return,u)}}function U_(i,r){return r.tag===31?(r=r.memoizedState,i.memoizedState!==null&&r===null):r.tag===13?(i=i.memoizedState,r=r.memoizedState,i!==null&&i.dehydrated!==null&&(r===null||r.dehydrated===null)):r.tag===3?i.memoizedState.isDehydrated&&(r.flags&256)===0:!1}function PA(i,r){for(eC(i.containerInfo),Kn=r;Kn!==null;)if(i=Kn,r=i.child,(i.subtreeFlags&1028)!==0&&r!==null)r.return=i,Kn=r;else for(;Kn!==null;){r=i=Kn;var o=r.alternate,u=r.flags;switch(r.tag){case 0:if((u&4)!==0&&(r=r.updateQueue,r=r!==null?r.events:null,r!==null))for(o=0;o";case Dd:return":has("+(Lm(i)||"")+")";case Ud:return'[role="'+i.value+'"]';case Fd:return'"'+i.value+'"';case Od:return'[data-testname="'+i.value+'"]';default:throw Error("Invalid selector type specified.")}}function J_(i,r){var o=[];i=[i,0];for(var u=0;u{}).bind(console,"Suspended",m,p,"Components ⚛",void 0,"primary-light")));break;case Mo:m=yd,pn&&((u=u._debugTask)&&u.run((()=>{}).bind(console,"Action",m,p,"Components ⚛",void 0,"primary-light")));break;default:pn&&(u=p-yd,3>u)}}m=(o=!o&&(r&127)===0&&(r&i.expiredLanes)===0||Q(i,r))?DA(i,r):Um(i,r,!0);var x=o;do{if(m===Bs){Ll&&!o&&ca(i,r,0,!1),r=en,yd=Un(),xx=r;break}else{if(u=Wn(),p=i.current.alternate,x&&!NA(p)){Oe(r),p=vi,m=u,!pn||m<=p||Cn&&Cn.run((()=>{}).bind(console,"Teared Render",p,m,In,"Scheduler ⚛","error")),no(r,u),m=Um(i,r,!1),x=!1;continue}if(m===xo){if(x=r,i.errorRecoveryDisabledLanes&x)var E=0;else E=i.pendingLanes&-536870913,E=E!==0?E:E&536870912?536870912:0;if(E!==0){Oe(r),I(vi,u,r,Cn),no(r,u),r=E;e:{u=i,m=x,x=_u;var B=mi&&u.current.memoizedState.isDehydrated;if(B&&(sl(u,E).flags|=256),E=Um(u,E,!1),E!==xo){if(kg&&!B){u.errorRecoveryDisabledLanes|=m,Ta|=m,m=Sa;break e}u=Ni,Ni=x,u!==null&&(Ni===null?Ni=u:Ni.push.apply(Ni,u))}m=E}if(x=!1,m!==xo)continue;u=Wn()}}if(m===gu){Oe(r),I(vi,u,r,Cn),no(r,u),sl(i,0),ca(i,r,0,!0);break}e:{switch(o=i,m){case Bs:case gu:throw Error("Root did not complete. This is a bug in React.");case Sa:if((r&4194048)!==r)break;case kd:Oe(r),Gt(vi,u,r,Cn),no(r,u),p=r,(p&127)!==0?gd=u:p&4194048&&(vd=u),ca(o,r,Xi,!Ma);break e;case xo:Ni=null;break;case zd:case mS:break;default:throw Error("Unknown root exit status.")}if(oe.actQueue!==null)Om(o,p,r,Ni,xu,Gd,Xi,Ta,wo,m,null,null,vi,u);else{if((r&62914560)===r&&(x=Wd+yS-Wn(),10{}).bind(console,x,o,u,In,"Scheduler ⚛",m))}}no(Pt,vi)}if(o=Cn,Cn=null,(r&127)!==0){Cn=Kc,p=0<=ls&&lsp&&(o=p):o=p,0o&&(E=o):E=o,B!==null&&o>E){var fe=Y?"secondary-light":"warning";u&&u.run((()=>{}).bind(console,Y?"Consecutive":"Event: "+B,E,o,In,"Scheduler ⚛",fe))}p>o&&(E=se?"error":(r&738197653)===r?"tertiary-light":"primary-light",se=ce?"Promise Resolved":se?"Cascading Update":5m&&(o=m):o=m,0o&&(p=o):p=o,0p&&(ce=p):ce=p,p>ce&&E!==null&&(fe=B?"secondary-light":"warning",u&&u.run((()=>{}).bind(console,B?"Consecutive":"Event: "+E,ce,p,In,"Scheduler ⚛",fe))),o>p&&(u&&u.run((()=>{}).bind(console,"Action",p,o,In,"Scheduler ⚛","primary-dark"))),m>o&&(p=Y?"Promise Resolved":5{}).bind(console,o?"Commit Interrupted View Transition":"Commit",i,r,In,"Scheduler ⚛",o?"error":"secondary-dark")),kn=SS}}function db(){if(kn===MS||kn===SS){if(kn===MS){var i=Rs;Rs=Un();var r=Rs,o=Br===Gg;!pn||r<=i,Br!==Gg&&(Br=_S)}kn=Aa,CR(),i=Ca;var u=Nl;r=Fr,o=wS;var p=u.actualDuration!==0||(u.subtreeFlags&10256)!==0||(u.flags&10256)!==0;p?kn=qd:(kn=Aa,Nl=Ca=null,fb(i,i.pendingLanes),To=0,Mu=null);var m=i.pendingLanes;if(m===0&&(Ea=null),p||yb(i),m=st(r),u=u.stateNode,gi&&typeof gi.onCommitFiberRoot=="function")try{var x=(u.current.flags&128)===128;switch(m){case 2:var E=sg;break;case 8:E=rx;break;case 32:E=jc;break;case 268435456:E=sx;break;default:E=jc}gi.onCommitFiberRoot(fl,u,E,x)}catch{rs||(rs=!0)}if(ss&&i.memoizedUpdaters.clear(),LA(),o!==null){x=oe.T,E=ws(),Jn(2),oe.T=null;try{var B=i.onRecoverableError;for(u=0;uo?32:o;o=oe.T;var p=ws();try{Jn(u),oe.T=null;var m=Yg;Yg=null,u=Ca;var x=Fr;if(kn=Aa,Nl=Ca=null,Fr=0,(Vt&(ei|_r))!==Qn)throw Error("Cannot flush passive effects while already rendering.");Oe(x),Zg=!0,Yd=!1;var E=0;if(Ps=null,E=Wn(),Br===_S){var B=Rs,Y=E;!pn||Y<=B||bx&&bx.run((()=>{}).bind(console,"Animating",B,Y,In,"Scheduler ⚛","secondary-dark"))}else{B=Rs,Y=E;var se=Br===Wg;!pn||Y<=B||Cn&&Cn.run((()=>{}).bind(console,se?"Waiting for Paint":"Waiting",B,Y,In,"Scheduler ⚛","secondary-light"))}B=Vt,Vt|=_r;var ce=u.current;Ar(),j_(ce);var fe=u.current;ce=qg,Ar(),W_(u,fe,x,m,ce),yb(u),Vt=B;var at=Wn();if(fe=E,ce=Cn,Ps!==null?re(fe,at,Ps,!0,ce):!pn||at<=fe||ce&&ce.run((()=>{}).bind(console,"Remaining Effects",fe,at,In,"Scheduler ⚛","secondary-dark")),no(x,at),Ko(0,!1),Yd?u===Mu?To++:(To=0,Mu=u):To=0,Yd=Zg=!1,gi&&typeof gi.onPostCommitFiberRoot=="function")try{gi.onPostCommitFiberRoot(fl,u)}catch{rs||(rs=!0)}var mt=u.current.stateNode;return mt.effectDuration=0,mt.passiveEffectDuration=0,!0}finally{Jn(p),oe.T=o,fb(i,r)}}function mb(i,r,o){r=$e(o,r),hy(r),r=om(i.stateNode,r,2),i=sa(i,r,2),i!==null&&(be(i,2),Kr(i))}function Jt(i,r,o){if(Dl=!1,i.tag===3)mb(i,i,o);else for(;r!==null;){if(r.tag===3){mb(r,i,o);return}if(r.tag===1){var u=r.stateNode;if(typeof r.type.getDerivedStateFromError=="function"||typeof u.componentDidCatch=="function"&&(Ea===null||!Ea.has(u))){i=$e(o,i),hy(i),o=lm(2),u=sa(r,o,2),u!==null&&(cm(o,u,r,i),be(u,2),Kr(u));return}}r=r.return}}function Fm(i,r,o){var u=i.pingCache;if(u===null){u=i.pingCache=new XR;var p=new Set;u.set(r,p)}else p=u.get(r),p===void 0&&(p=new Set,u.set(r,p));p.has(o)||(kg=!0,p.add(o),u=BA.bind(null,i,r,o),ss&&Gc(i,o),r.then(u,u))}function BA(i,r,o){var u=i.pingCache;u!==null&&u.delete(r),i.pingedLanes|=i.suspendedLanes&o,i.warmLanes&=~o,(o&127)!==0?0>ls&&(uo=ls=Un(),Kc=md("Promise Resolved"),ya=2):o&4194048&&0>mr&&(Is=mr=Un(),eu=md("Promise Resolved"),gg=2),K_()&&oe.actQueue,rn===i&&(Pt&o)===o&&(bn===Sa||bn===zd&&(Pt&62914560)===Pt&&Wn()-Wd",E=" Did you accidentally export a JSX literal instead of a component?"):o=typeof i,x=u?typeof u.tag=="number"?k(u):typeof u.name=="string"?u.name:null:null,x&&(E+=` + +Check the render method of \``+x+"`."),x=29,o=Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: "+(o+"."+E)),E=null}return r=f(x,o,r,p),r.elementType=i,r.type=E,r.lanes=m,r._debugOwner=u,r}function nd(i,r,o){return r=Vm(i.type,i.key,i.props,i._owner,r,o),r._debugOwner=i._owner,r._debugStack=i._debugStack,r._debugTask=i._debugTask,r}function ro(i,r,o,u){return i=f(7,i,u,r),i.lanes=o,i}function Hm(i,r,o){return i=f(6,i,null,r),i.lanes=o,i}function wb(i){var r=f(18,null,null,ft);return r.stateNode=i,r}function Gm(i,r,o){return r=f(4,i.children!==null?i.children:[],i.key,r),r.lanes=o,r.stateNode={containerInfo:i.containerInfo,pendingChildren:null,implementation:i.implementation},r}function WA(i,r,o,u,p,m,x,E,B){for(this.tag=1,this.containerInfo=i,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=ao,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=ge(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ge(0),this.hiddenUpdates=ge(null),this.identifierPrefix=u,this.onUncaughtError=p,this.onCaughtError=m,this.onRecoverableError=x,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=B,this.incompleteTransitions=new Map,this.passiveEffectDuration=this.effectDuration=-0,this.memoizedUpdaters=new Set,i=this.pendingUpdatersLaneMap=[],r=0;31>r;r++)i.push(new Set);this._debugRootType=o?"hydrateRoot()":"createRoot()"}function Tb(i,r,o,u,p,m,x,E,B,Y,se,ce){return i=new WA(i,r,o,x,B,Y,se,ce,E),r=1,m===!0&&(r|=24),m=f(3,null,null,r|2),i.current=m,m.stateNode=i,r=ki(),ui(r),i.pooledCache=r,ui(r),m.memoizedState={element:u,isDehydrated:o,cache:r},Rp(m),i}function Eb(i){return""+i}function Ab(i){return i?(i=ua,i):ua}function Cb(i,r,o,u){return Rb(r.current,2,i,r,o,u),2}function Rb(i,r,o,u,p,m){if(gi&&typeof gi.onScheduleFiberRoot=="function")try{gi.onScheduleFiberRoot(fl,u,o)}catch{rs||(rs=!0)}p=Ab(p),u.context===null?u.context=p:u.pendingContext=p,as&&ma!==null&&!PS&&(PS=!0),u=ra(r),u.payload={element:o},m=m===void 0?null:m,m!==null&&(u.callback=m),o=sa(i,u,r),o!==null&&(zt(r,"root.render()",null),Mn(o,i,r),Ic(o,i,r))}function Pb(i,r){if(i=i.memoizedState,i!==null&&i.dehydrated!==null){var o=i.retryLane;i.retryLane=o!==0&&o\n\t]|^\s|\s$/,ma=null,as=!1,oi=null,yn=null,kt=!1,os=!1,er=null,ga=null,pr=!1,hg=Error("Hydration Mismatch Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."),ft=0,dd=F(null),dg=F(null),fg=F(null),fd={},pd=null,gl=null,vl=!1,UR=typeof AbortController<"u"?AbortController:function(){var i=[],r=this.signal={aborted:!1,addEventListener:function(o,u){i.push(u)}};this.abort=function(){r.aborted=!0,i.forEach(function(o){return o()})}},OR=Hi.unstable_scheduleCallback,FR=Hi.unstable_NormalPriority,wn={$$typeof:Ss,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0,_currentRenderer:null,_currentRenderer2:null},Un=Hi.unstable_now,md=console.createTask?console.createTask:function(){return null},vi=-0,va=-0,Rs=-0,Ps=null,Pi=-1.1,co=-0,_n=-0,lt=-1.1,dt=-1.1,vn=null,Tn=!1,uo=-0,ls=-1.1,Kc=null,ya=0,pg=null,mg=null,ho=-1.1,Qc=null,yl=-1.1,gd=-1.1,Is=-0,Ls=-1.1,mr=-1.1,gg=0,eu=null,yx=null,_x=null,_a=-1.1,fo=null,ba=-1.1,vd=-1.1,bx=null,xx=0,yd=-1.1,_d=!1,bd=!1,xd=null,_l=null,vg=!1,yg=!1,Sd=!1,_g=!1,po=0,bg={},tu=null,xg=0,mo=0,bl=null,Sx=oe.S;oe.S=function(i,r){if(vS=Wn(),typeof r=="object"&&r!==null&&typeof r.then=="function"){if(0>Ls&&0>mr){Ls=Un();var o=qc(),u=Xc();(o!==ba||u!==fo)&&(ba=-1.1),_a=o,fo=u}hA(i,r)}Sx!==null&&Sx(i,r)};var go=F(null),Nr={recordUnsafeLifecycleWarnings:function(){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}},nu=[],iu=[],ru=[],su=[],au=[],ou=[],vo=new Set;Nr.recordUnsafeLifecycleWarnings=function(i,r){vo.has(i.type)||(typeof r.componentWillMount=="function"&&r.componentWillMount.__suppressDeprecationWarning!==!0&&nu.push(i),i.mode&8&&typeof r.UNSAFE_componentWillMount=="function"&&iu.push(i),typeof r.componentWillReceiveProps=="function"&&r.componentWillReceiveProps.__suppressDeprecationWarning!==!0&&ru.push(i),i.mode&8&&typeof r.UNSAFE_componentWillReceiveProps=="function"&&su.push(i),typeof r.componentWillUpdate=="function"&&r.componentWillUpdate.__suppressDeprecationWarning!==!0&&au.push(i),i.mode&8&&typeof r.UNSAFE_componentWillUpdate=="function"&&ou.push(i))},Nr.flushPendingUnsafeLifecycleWarnings=function(){var i=new Set;0.");var x="";o!=null&&i!==o&&(u=null,typeof o.tag=="number"?u=k(o):typeof o.name=="string"&&(u=o.name),u&&(x=" It was passed a child from "+u+".")),Je(r,function(){})}}};var _o=Ay(!0),kx=Ay(!1),uu=1,Ns=2,gr=[],Ml=0,Eg=0,Vx=0,Hx=1,Gx=2,Ag=3,xa=!1,Wx=!1,Cg=null,Rg=!1,wl=F(null),Ed=F(0),tr=F(null),Dr=null,Tl=1,hu=2,Ln=F(0),Ad=0,vr=1,Ii=2,nr=4,Li=8,El,Xx=new Set,qx=new Set,Pg=new Set,Yx=new Set,Ds=0,yt=null,nn=null,On=null,Cd=!1,Al=!1,bo=!1,Rd=0,du=0,Us=null,HR=0,GR=25,le=null,yr=null,Os=-1,fu=!1,pu={readContext:Wt,use:la,useCallback:An,useContext:An,useEffect:An,useImperativeHandle:An,useLayoutEffect:An,useInsertionEffect:An,useMemo:An,useReducer:An,useRef:An,useState:An,useDebugValue:An,useDeferredValue:An,useTransition:An,useSyncExternalStore:An,useId:An,useHostTransitionStatus:An,useFormState:An,useActionState:An,useOptimistic:An,useMemoCache:An,useCacheRefresh:An};pu.useEffectEvent=An;var Ig=null,jx=null,Lg=null,Zx=null,cs=null,Ur=null,Pd=null;Ig={readContext:function(i){return Wt(i)},use:la,useCallback:function(i,r){return le="useCallback",Ot(),Qo(r),Jp(i,r)},useContext:function(i){return le="useContext",Ot(),Wt(i)},useEffect:function(i,r){return le="useEffect",Ot(),Qo(r),Uh(i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Ot(),Qo(o),$p(i,r,o)},useInsertionEffect:function(i,r){le="useInsertionEffect",Ot(),Qo(r),Ja(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Ot(),Qo(r),Zp(i,r)},useMemo:function(i,r){le="useMemo",Ot(),Qo(r);var o=oe.H;oe.H=cs;try{return Kp(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Ot();var u=oe.H;oe.H=cs;try{return kp(i,r,o)}finally{oe.H=u}},useRef:function(i){return le="useRef",Ot(),Yp(i)},useState:function(i){le="useState",Ot();var r=oe.H;oe.H=cs;try{return Wp(i)}finally{oe.H=r}},useDebugValue:function(){le="useDebugValue",Ot()},useDeferredValue:function(i,r){return le="useDeferredValue",Ot(),Qp(i,r)},useTransition:function(){return le="useTransition",Ot(),tm()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Ot(),Hp(i,r,o)},useId:function(){return le="useId",Ot(),nm()},useFormState:function(i,r){return le="useFormState",Ot(),Ph(),tl(i,r)},useActionState:function(i,r){return le="useActionState",Ot(),tl(i,r)},useOptimistic:function(i){return le="useOptimistic",Ot(),Xp(i)},useHostTransitionStatus:Ka,useMemoCache:$a,useCacheRefresh:function(){return le="useCacheRefresh",Ot(),im()},useEffectEvent:function(i){return le="useEffectEvent",Ot(),jp(i)}},jx={readContext:function(i){return Wt(i)},use:la,useCallback:function(i,r){return le="useCallback",Me(),Jp(i,r)},useContext:function(i){return le="useContext",Me(),Wt(i)},useEffect:function(i,r){return le="useEffect",Me(),Uh(i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Me(),$p(i,r,o)},useInsertionEffect:function(i,r){le="useInsertionEffect",Me(),Ja(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Me(),Zp(i,r)},useMemo:function(i,r){le="useMemo",Me();var o=oe.H;oe.H=cs;try{return Kp(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Me();var u=oe.H;oe.H=cs;try{return kp(i,r,o)}finally{oe.H=u}},useRef:function(i){return le="useRef",Me(),Yp(i)},useState:function(i){le="useState",Me();var r=oe.H;oe.H=cs;try{return Wp(i)}finally{oe.H=r}},useDebugValue:function(){le="useDebugValue",Me()},useDeferredValue:function(i,r){return le="useDeferredValue",Me(),Qp(i,r)},useTransition:function(){return le="useTransition",Me(),tm()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Me(),Hp(i,r,o)},useId:function(){return le="useId",Me(),nm()},useActionState:function(i,r){return le="useActionState",Me(),tl(i,r)},useFormState:function(i,r){return le="useFormState",Me(),Ph(),tl(i,r)},useOptimistic:function(i){return le="useOptimistic",Me(),Xp(i)},useHostTransitionStatus:Ka,useMemoCache:$a,useCacheRefresh:function(){return le="useCacheRefresh",Me(),im()},useEffectEvent:function(i){return le="useEffectEvent",Me(),jp(i)}},Lg={readContext:function(i){return Wt(i)},use:la,useCallback:function(i,r){return le="useCallback",Me(),Bh(i,r)},useContext:function(i){return le="useContext",Me(),Wt(i)},useEffect:function(i,r){le="useEffect",Me(),Vi(2048,Li,i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Me(),Fh(i,r,o)},useInsertionEffect:function(i,r){return le="useInsertionEffect",Me(),Vi(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Me(),Vi(4,nr,i,r)},useMemo:function(i,r){le="useMemo",Me();var o=oe.H;oe.H=Ur;try{return zh(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Me();var u=oe.H;oe.H=Ur;try{return el(i,r,o)}finally{oe.H=u}},useRef:function(){return le="useRef",Me(),Qt().memoizedState},useState:function(){le="useState",Me();var i=oe.H;oe.H=Ur;try{return el(Cr)}finally{oe.H=i}},useDebugValue:function(){le="useDebugValue",Me()},useDeferredValue:function(i,r){return le="useDeferredValue",Me(),$y(i,r)},useTransition:function(){return le="useTransition",Me(),t_()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Me(),Lh(i,r,o)},useId:function(){return le="useId",Me(),Qt().memoizedState},useFormState:function(i){return le="useFormState",Me(),Ph(),Nh(i)},useActionState:function(i){return le="useActionState",Me(),Nh(i)},useOptimistic:function(i,r){return le="useOptimistic",Me(),ky(i,r)},useHostTransitionStatus:Ka,useMemoCache:$a,useCacheRefresh:function(){return le="useCacheRefresh",Me(),Qt().memoizedState},useEffectEvent:function(i){return le="useEffectEvent",Me(),Oh(i)}},Zx={readContext:function(i){return Wt(i)},use:la,useCallback:function(i,r){return le="useCallback",Me(),Bh(i,r)},useContext:function(i){return le="useContext",Me(),Wt(i)},useEffect:function(i,r){le="useEffect",Me(),Vi(2048,Li,i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Me(),Fh(i,r,o)},useInsertionEffect:function(i,r){return le="useInsertionEffect",Me(),Vi(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Me(),Vi(4,nr,i,r)},useMemo:function(i,r){le="useMemo",Me();var o=oe.H;oe.H=Pd;try{return zh(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Me();var u=oe.H;oe.H=Pd;try{return Uc(i,r,o)}finally{oe.H=u}},useRef:function(){return le="useRef",Me(),Qt().memoizedState},useState:function(){le="useState",Me();var i=oe.H;oe.H=Pd;try{return Uc(Cr)}finally{oe.H=i}},useDebugValue:function(){le="useDebugValue",Me()},useDeferredValue:function(i,r){return le="useDeferredValue",Me(),Jy(i,r)},useTransition:function(){return le="useTransition",Me(),n_()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Me(),Lh(i,r,o)},useId:function(){return le="useId",Me(),Qt().memoizedState},useFormState:function(i){return le="useFormState",Me(),Ph(),Dh(i)},useActionState:function(i){return le="useActionState",Me(),Dh(i)},useOptimistic:function(i,r){return le="useOptimistic",Me(),Hy(i,r)},useHostTransitionStatus:Ka,useMemoCache:$a,useCacheRefresh:function(){return le="useCacheRefresh",Me(),Qt().memoizedState},useEffectEvent:function(i){return le="useEffectEvent",Me(),Oh(i)}},cs={readContext:function(i){return Wt(i)},use:function(i){return la(i)},useCallback:function(i,r){return le="useCallback",Ot(),Jp(i,r)},useContext:function(i){return le="useContext",Ot(),Wt(i)},useEffect:function(i,r){return le="useEffect",Ot(),Uh(i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Ot(),$p(i,r,o)},useInsertionEffect:function(i,r){le="useInsertionEffect",Ot(),Ja(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Ot(),Zp(i,r)},useMemo:function(i,r){le="useMemo",Ot();var o=oe.H;oe.H=cs;try{return Kp(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Ot();var u=oe.H;oe.H=cs;try{return kp(i,r,o)}finally{oe.H=u}},useRef:function(i){return le="useRef",Ot(),Yp(i)},useState:function(i){le="useState",Ot();var r=oe.H;oe.H=cs;try{return Wp(i)}finally{oe.H=r}},useDebugValue:function(){le="useDebugValue",Ot()},useDeferredValue:function(i,r){return le="useDeferredValue",Ot(),Qp(i,r)},useTransition:function(){return le="useTransition",Ot(),tm()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Ot(),Hp(i,r,o)},useId:function(){return le="useId",Ot(),nm()},useFormState:function(i,r){return le="useFormState",Ot(),tl(i,r)},useActionState:function(i,r){return le="useActionState",Ot(),tl(i,r)},useOptimistic:function(i){return le="useOptimistic",Ot(),Xp(i)},useMemoCache:function(i){return $a(i)},useHostTransitionStatus:Ka,useCacheRefresh:function(){return le="useCacheRefresh",Ot(),im()},useEffectEvent:function(i){return le="useEffectEvent",Ot(),jp(i)}},Ur={readContext:function(i){return Wt(i)},use:function(i){return la(i)},useCallback:function(i,r){return le="useCallback",Me(),Bh(i,r)},useContext:function(i){return le="useContext",Me(),Wt(i)},useEffect:function(i,r){le="useEffect",Me(),Vi(2048,Li,i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Me(),Fh(i,r,o)},useInsertionEffect:function(i,r){return le="useInsertionEffect",Me(),Vi(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Me(),Vi(4,nr,i,r)},useMemo:function(i,r){le="useMemo",Me();var o=oe.H;oe.H=Ur;try{return zh(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Me();var u=oe.H;oe.H=Ur;try{return el(i,r,o)}finally{oe.H=u}},useRef:function(){return le="useRef",Me(),Qt().memoizedState},useState:function(){le="useState",Me();var i=oe.H;oe.H=Ur;try{return el(Cr)}finally{oe.H=i}},useDebugValue:function(){le="useDebugValue",Me()},useDeferredValue:function(i,r){return le="useDeferredValue",Me(),$y(i,r)},useTransition:function(){return le="useTransition",Me(),t_()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Me(),Lh(i,r,o)},useId:function(){return le="useId",Me(),Qt().memoizedState},useFormState:function(i){return le="useFormState",Me(),Nh(i)},useActionState:function(i){return le="useActionState",Me(),Nh(i)},useOptimistic:function(i,r){return le="useOptimistic",Me(),ky(i,r)},useMemoCache:function(i){return $a(i)},useHostTransitionStatus:Ka,useCacheRefresh:function(){return le="useCacheRefresh",Me(),Qt().memoizedState},useEffectEvent:function(i){return le="useEffectEvent",Me(),Oh(i)}},Pd={readContext:function(i){return Wt(i)},use:function(i){return la(i)},useCallback:function(i,r){return le="useCallback",Me(),Bh(i,r)},useContext:function(i){return le="useContext",Me(),Wt(i)},useEffect:function(i,r){le="useEffect",Me(),Vi(2048,Li,i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Me(),Fh(i,r,o)},useInsertionEffect:function(i,r){return le="useInsertionEffect",Me(),Vi(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Me(),Vi(4,nr,i,r)},useMemo:function(i,r){le="useMemo",Me();var o=oe.H;oe.H=Ur;try{return zh(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Me();var u=oe.H;oe.H=Ur;try{return Uc(i,r,o)}finally{oe.H=u}},useRef:function(){return le="useRef",Me(),Qt().memoizedState},useState:function(){le="useState",Me();var i=oe.H;oe.H=Ur;try{return Uc(Cr)}finally{oe.H=i}},useDebugValue:function(){le="useDebugValue",Me()},useDeferredValue:function(i,r){return le="useDeferredValue",Me(),Jy(i,r)},useTransition:function(){return le="useTransition",Me(),n_()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Me(),Lh(i,r,o)},useId:function(){return le="useId",Me(),Qt().memoizedState},useFormState:function(i){return le="useFormState",Me(),Dh(i)},useActionState:function(i){return le="useActionState",Me(),Dh(i)},useOptimistic:function(i,r){return le="useOptimistic",Me(),Hy(i,r)},useMemoCache:function(i){return $a(i)},useHostTransitionStatus:Ka,useCacheRefresh:function(){return le="useCacheRefresh",Me(),Qt().memoizedState},useEffectEvent:function(i){return le="useEffectEvent",Me(),Oh(i)}};var $x={},Jx=new Set,Kx=new Set,Qx=new Set,eS=new Set,tS=new Set,nS=new Set,iS=new Set,rS=new Set,sS=new Set,aS=new Set;Object.freeze($x);var Ng={enqueueSetState:function(i,r,o){i=i._reactInternals;var u=Ki(i),p=ra(u);p.payload=r,o!=null&&(sm(o),p.callback=o),r=sa(i,p,u),r!==null&&(zt(u,"this.setState()",i),Mn(r,i,u),Ic(r,i,u))},enqueueReplaceState:function(i,r,o){i=i._reactInternals;var u=Ki(i),p=ra(u);p.tag=Hx,p.payload=r,o!=null&&(sm(o),p.callback=o),r=sa(i,p,u),r!==null&&(zt(u,"this.replaceState()",i),Mn(r,i,u),Ic(r,i,u))},enqueueForceUpdate:function(i,r){i=i._reactInternals;var o=Ki(i),u=ra(o);u.tag=Gx,r!=null&&(sm(r),u.callback=r),r=sa(i,u,o),r!==null&&(zt(o,"this.forceUpdate()",i),Mn(r,i,o),Ic(r,i,o))}},Id=null,Dg=null,Ug=Error("This is not a real error. It's an implementation detail of React's selective hydration feature. If this leaks into userspace, it's a bug in React. Please file an issue."),Fn=!1,oS={},lS={},cS={},uS={},Cl=!1,hS={},Ld={},Og={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null},dS=!1,fS=null;fS=new Set;var Fs=!1,Bn=!1,Fg=!1,pS=typeof WeakSet=="function"?WeakSet:Set,Kn=null,Rl=null,Pl=null,zn=null,Gi=!1,Or=null,Xn=!1,Il=8192,WR={getCacheForType:function(i){var r=Wt(wn),o=r.data.get(i);return o===void 0&&(o=i(),r.data.set(i,o)),o},cacheSignal:function(){return Wt(wn).controller.signal},getOwner:function(){return ma}},Nd=0,Dd=1,Ud=2,Od=3,Fd=4;if(typeof Symbol=="function"&&Symbol.for){var mu=Symbol.for;Nd=mu("selector.component"),Dd=mu("selector.has_pseudo_class"),Ud=mu("selector.role"),Od=mu("selector.test_id"),Fd=mu("selector.text")}var Bd=[],XR=typeof WeakMap=="function"?WeakMap:Map,Qn=0,ei=2,_r=4,Bs=0,gu=1,xo=2,zd=3,Sa=4,kd=6,mS=5,Vt=Qn,rn=null,Nt=null,Pt=0,Wi=0,Vd=1,So=2,vu=3,gS=4,Bg=5,yu=6,Hd=7,zg=8,Mo=9,en=Wi,ir=null,Ma=!1,Ll=!1,kg=!1,us=0,bn=Bs,wa=0,Ta=0,Vg=0,Xi=0,wo=0,_u=null,Ni=null,Gd=!1,Wd=0,vS=0,yS=300,bu=1/0,Hg=500,xu=null,Cn=null,Ea=null,Xd=0,Gg=1,Wg=2,_S=3,Aa=0,bS=1,xS=2,SS=3,MS=4,qd=5,kn=0,Ca=null,Nl=null,Fr=0,Xg=0,qg=-0,Yg=null,wS=null,TS=null,Br=Xd,ES=null,qR=50,Su=0,jg=null,Zg=!1,Yd=!1,YR=50,To=0,Mu=null,Dl=!1,jd=null,AS=!1,CS=new Set,jR={},br=null,Ul=null,RS=!1;try{Object.preventExtensions({})}catch{RS=!0}var PS=!1,IS={},LS=null,NS=null,DS=null,US=null,OS=null,FS=null,BS=null,zS=null,kS=null,VS=null;return LS=function(i,r,o,u){r=n(i,r),r!==null&&(o=s(r.memoizedState,o,0,u),r.memoizedState=o,r.baseState=o,i.memoizedProps=si({},i.memoizedProps),o=di(i,2),o!==null&&Mn(o,i,2))},NS=function(i,r,o){r=n(i,r),r!==null&&(o=c(r.memoizedState,o,0),r.memoizedState=o,r.baseState=o,i.memoizedProps=si({},i.memoizedProps),o=di(i,2),o!==null&&Mn(o,i,2))},DS=function(i,r,o,u){r=n(i,r),r!==null&&(o=a(r.memoizedState,o,u),r.memoizedState=o,r.baseState=o,i.memoizedProps=si({},i.memoizedProps),o=di(i,2),o!==null&&Mn(o,i,2))},US=function(i,r,o){i.pendingProps=s(i.memoizedProps,r,0,o),i.alternate&&(i.alternate.pendingProps=i.pendingProps),r=di(i,2),r!==null&&Mn(r,i,2)},OS=function(i,r){i.pendingProps=c(i.memoizedProps,r,0),i.alternate&&(i.alternate.pendingProps=i.pendingProps),r=di(i,2),r!==null&&Mn(r,i,2)},FS=function(i,r,o){i.pendingProps=a(i.memoizedProps,r,o),i.alternate&&(i.alternate.pendingProps=i.pendingProps),r=di(i,2),r!==null&&Mn(r,i,2)},BS=function(i){var r=di(i,2);r!==null&&Mn(r,i,2)},zS=function(i){var r=_e(),o=di(i,r);o!==null&&Mn(o,i,r)},kS=function(i){d=i},VS=function(i){h=i},Xt.attemptContinuousHydration=function(i){if(i.tag===13||i.tag===31){var r=di(i,67108864);r!==null&&Mn(r,i,67108864),Wm(i,67108864)}},Xt.attemptHydrationAtCurrentPriority=function(i){if(i.tag===13||i.tag===31){var r=Ki(i);r=Ce(r);var o=di(i,r);o!==null&&Mn(o,i,r),Wm(i,r)}},Xt.attemptSynchronousHydration=function(i){switch(i.tag){case 3:if(i=i.stateNode,i.current.memoizedState.isDehydrated){var r=ee(i.pendingLanes);if(r!==0){for(i.pendingLanes|=2,i.entangledLanes|=2;r;){var o=1<<31-Ci(r);i.entanglements[1]|=o,r&=~o}Kr(i),(Vt&(ei|_r))===Qn&&(bu=Wn()+Hg,Ko(0,!1))}}break;case 31:case 13:r=di(i,2),r!==null&&Mn(r,i,2),Kh(),Wm(i,2)}},Xt.batchedUpdates=function(i,r){return i(r)},Xt.createComponentSelector=function(i){return{$$typeof:Nd,value:i}},Xt.createContainer=function(i,r,o,u,p,m,x,E,B,Y){return Tb(i,r,!1,null,o,u,m,null,x,E,B,Y)},Xt.createHasPseudoClassSelector=function(i){return{$$typeof:Dd,value:i}},Xt.createHydrationContainer=function(i,r,o,u,p,m,x,E,B,Y,se,ce,fe,at){var mt;return i=Tb(o,u,!0,i,p,m,E,at,B,Y,se,ce),i.context=Ab(null),o=i.current,u=Ki(o),u=Ce(u),p=ra(u),p.callback=(mt=r)!=null?mt:null,sa(o,p,u),zt(u,"hydrateRoot()",null),r=u,i.current.lanes=r,be(i,r),Kr(i),i},Xt.createPortal=function(i,r,o){var u=3 component.":"The above error occurred in one of your React components.",o="React will try to recreate this component tree from scratch using the error boundary you provided, "+((Dg||"Anonymous")+".");typeof i=="object"&&i!==null&&typeof i.environmentName=="string"&&gC("error",[`%o + +%s + +%s +`,i,r,o],i.environmentName)()},Xt.defaultOnRecoverableError=function(i){lx(i)},Xt.defaultOnUncaughtError=function(i){lx(i)},Xt.deferredUpdates=function(i){var r=oe.T,o=ws();try{return Jn(32),oe.T=null,i()}finally{Jn(o),oe.T=r}},Xt.discreteUpdates=function(i,r,o,u,p){var m=oe.T,x=ws();try{return Jn(2),oe.T=null,i(r,o,u,p)}finally{Jn(x),oe.T=m,Vt===Qn&&(bu=Wn()+Hg)}},Xt.findAllNodes=Jh,Xt.findBoundingRects=function(i,r){if(!hl)throw Error("Test selector API is not supported by this renderer.");r=Jh(i,r),i=[];for(var o=0;o=Y&&m>=ce&&p<=se&&x<=fe){i.splice(r,1);break}else if(u!==Y||o.width!==B.width||fex){if(!(m!==ce||o.height!==B.height||sep)){Y>u&&(B.width+=Y-u,B.x=u),sem&&(B.height+=ce-m,B.y=m),feo&&(o=E)),E ")+` + +No matching component was found for: + `)+i.join(" > ")}return null},Xt.getPublicRootInstance=function(i){if(i=i.current,!i.child)return null;switch(i.child.tag){case 27:case 5:return cl(i.child.stateNode);default:return i.child.stateNode}},Xt.injectIntoDevTools=function(){var i={bundleType:1,version:$A,rendererPackageName:JA,currentDispatcherRef:oe,reconcilerVersion:"19.2.0"};return Lb!==null&&(i.rendererConfig=Lb),i.overrideHookState=LS,i.overrideHookStateDeletePath=NS,i.overrideHookStateRenamePath=DS,i.overrideProps=US,i.overridePropsDeletePath=OS,i.overridePropsRenamePath=FS,i.scheduleUpdate=BS,i.scheduleRetry=zS,i.setErrorHandler=kS,i.setSuspenseHandler=VS,i.scheduleRefresh=v,i.scheduleRoot=g,i.setRefreshHandler=y,i.getCurrentFiber=XA,ht(i)},Xt.isAlreadyRendering=Nm,Xt.observeVisibleRects=function(i,r,o,u){function p(){var Y=Jh(i,r);m.forEach(function(se){0>Y.indexOf(se)&&B(se)}),Y.forEach(function(se){0>m.indexOf(se)&&E(se)})}if(!hl)throw Error("Test selector API is not supported by this renderer.");var m=Jh(i,r);o=wC(m,o,u);var x=o.disconnect,E=o.observe,B=o.unobserve;return Bd.push(p),{disconnect:function(){var Y=Bd.indexOf(p);0<=Y&&Bd.splice(Y,1),x()}}},Xt.shouldError=function(i){return d(i)},Xt.shouldSuspend=function(i){return h(i)},Xt.startHostTransition=function(i,r,o,u){if(i.tag!==5)throw Error("Expected the form instance to be a HostComponent. This is a bug in React.");var p=e_(i).queue;Sn(i),Qy(i,p,r,ul,o===null?T:function(){oe.T;var m=e_(i);return m.next===null&&(m=i.alternate.memoizedState),Oc(i,m.next.queue,{},Ki(i)),o(u)})},Xt.updateContainer=function(i,r,o,u){var p=r.current,m=Ki(p);return Rb(p,m,i,r,o,u),m},Xt.updateContainerSync=Cb,Xt},e.exports.default=e.exports,Object.defineProperty(e.exports,"__esModule",{value:!0})})(c0)),c0.exports}var PM;function BD(){return PM||(PM=1,CM.exports=FD()),CM.exports}var zD=OD(BD());function kD(e){const t=zD(e);return t.injectIntoDevTools(),t}var rA=0,_c={},VD=/^three(?=[A-Z])/,_p=e=>`${e[0].toUpperCase()}${e.slice(1)}`,HD=0,GD=e=>typeof e=="function";function WD(e){if(GD(e)){const t=`${HD++}`;return _c[t]=e,t}else Object.assign(_c,e)}function sA(e,t){const n=_p(e),s=_c[n];if(e!=="primitive"&&!s)throw new Error(`R3F: ${n} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(e==="primitive"&&!t.object)throw new Error("R3F: Primitives without 'object' are invalid!");if(t.args!==void 0&&!Array.isArray(t.args))throw new Error("R3F: The args prop must be an array!")}function XD(e,t,n){var s;return e=_p(e)in _c?e:e.replace(VD,""),sA(e,t),e==="primitive"&&(s=t.object)!=null&&s.__r3f&&delete t.object.__r3f,Qf(t.object,n,e,t)}function qD(e){if(!e.isHidden){var t;e.props.attach&&(t=e.parent)!=null&&t.object?tp(e.parent,e):Oi(e.object)&&(e.object.visible=!1),e.isHidden=!0,Ec(e)}}function aA(e){if(e.isHidden){var t;e.props.attach&&(t=e.parent)!=null&&t.object?ep(e.parent,e):Oi(e.object)&&e.props.visible!==!1&&(e.object.visible=!0),e.isHidden=!1,Ec(e)}}function cy(e,t,n){const s=t.root.getState();if(!(!e.parent&&e.object!==s.scene)){if(!t.object){var a,l;const c=_c[_p(t.type)];t.object=(a=t.props.object)!=null?a:new c(...(l=t.props.args)!=null?l:[]),t.object.__r3f=t}if(Ba(t.object,t.props),t.props.attach)ep(e,t);else if(Oi(t.object)&&Oi(e.object)){const c=e.object.children.indexOf(n?.object);if(n&&c!==-1){const h=e.object.children.indexOf(t.object);if(h!==-1){e.object.children.splice(h,1);const d=h{try{e.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT<"u"?t():(0,qs.unstable_scheduleCallback)(qs.unstable_IdlePriority,t)}}function u0(e,t,n){if(!t)return;t.parent=null;const s=e.children.indexOf(t);s!==-1&&e.children.splice(s,1),t.props.attach?tp(e,t):Oi(t.object)&&Oi(e.object)&&(e.object.remove(t.object),RD(ly(t),t.object));const a=t.props.dispose!==null&&n!==!1;for(let l=t.children.length-1;l>=0;l--){const c=t.children[l];u0(t,c,a)}t.children.length=0,delete t.object.__r3f,a&&t.type!=="primitive"&&t.object.type!=="Scene"&&oA(t.object),n===void 0&&Ec(t)}function YD(e,t){for(const n of[e,e.alternate])if(n!==null)if(typeof n.ref=="function"){n.refCleanup==null||n.refCleanup();const s=n.ref(t);typeof s=="function"&&(n.refCleanup=s)}else n.ref&&(n.ref.current=t)}var uh=[];function jD(){if(uh.length!==0)try{ZD()}finally{uh.length=0}}function ZD(){for(const[n]of uh){const s=n.parent;if(s){n.props.attach?tp(s,n):Oi(n.object)&&Oi(s.object)&&s.object.remove(n.object);for(const a of n.children)a.props.attach?tp(n,a):Oi(a.object)&&Oi(n.object)&&n.object.remove(a.object)}n.isHidden&&aA(n),n.object.__r3f&&delete n.object.__r3f,n.type!=="primitive"&&oA(n.object)}for(const[n,s,a]of uh){n.props=s;const l=n.parent;if(l){var e,t;const c=_c[_p(n.type)],h=n.object;n.object=(e=n.props.object)!=null?e:new c(...(t=n.props.args)!=null?t:[]),n.object.__r3f=n,YD(a,n.object),CD(ly(n),h,n.object),Ba(n.object,n.props),n.props.attach?ep(l,n):Oi(n.object)&&Oi(l.object)&&l.object.add(n.object);for(const d of n.children)d.props.attach?ep(n,d):Oi(d.object)&&Oi(n.object)&&n.object.add(d.object);Ec(n)}}}var Hv=()=>{},LM={},Vf=rA;function $D(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return AM;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return EM;case"message":switch((0,qs.unstable_getCurrentPriorityLevel)()){case qs.unstable_ImmediatePriority:return AM;case qs.unstable_UserBlockingPriority:return EM;case qs.unstable_NormalPriority:case qs.unstable_LowPriority:return jf;case qs.unstable_IdlePriority:return DD;default:return jf}default:return jf}}function JD(e){typeof queueMicrotask=="function"?queueMicrotask(e):typeof Promise<"u"?Promise.resolve().then(e).catch(t=>{setTimeout(()=>{throw t})}):setTimeout(e)}var h0=kD({isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:XD,removeChild:u0,appendChild:Vv,appendInitialChild:Vv,insertBefore:IM,appendChildToContainer(e,t){const n=e.getState().scene.__r3f;!t||!n||Vv(n,t)},removeChildFromContainer(e,t){const n=e.getState().scene.__r3f;!t||!n||u0(n,t)},insertInContainerBefore(e,t,n){const s=e.getState().scene.__r3f;!t||!n||!s||IM(s,t,n)},getRootHostContext:()=>LM,getChildHostContext:()=>LM,commitUpdate(e,t,n,s,a){var l,c,h;sA(t,s);let d=!1;if((e.type==="primitive"&&n.object!==s.object||((l=s.args)==null?void 0:l.length)!==((c=n.args)==null?void 0:c.length)||(h=s.args)!=null&&h.some((f,g)=>{var v;return f!==((v=n.args)==null?void 0:v[g])}))&&(d=!0),d)uh.push([e,o0(s),a]);else{const f=wD(e,s),g=e.props.attach;e.props=o0(s),g!==void 0?e.props.attach=g:delete e.props.attach,Object.keys(f).length&&Ba(e.object,f)}},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:e=>e?.object,prepareForCommit:()=>null,preparePortalMount:e=>Qf(e.getState().scene,e,"",{}),resetAfterCommit:jD,shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:qD,unhideInstance:aA,createTextInstance:Hv,hideTextInstance:Hv,unhideTextInstance:Hv,supportsMicrotasks:!0,scheduleMicrotask:JD,scheduleTimeout:typeof setTimeout=="function"?setTimeout:void 0,cancelTimeout:typeof clearTimeout=="function"?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:xt.createContext(null),setCurrentUpdatePriority(e){Vf=e},getCurrentUpdatePriority(){return Vf},resolveUpdatePriority(){var e;if(Vf!==rA)return Vf;const t=typeof window<"u"?(e=window.event)==null?void 0:e.type:void 0;return t===void 0?jf:$D(t)},resetFormInstance(){},rendererPackageName:"@react-three/fiber",rendererVersion:UD.version,applyViewTransitionName(e,t,n){},restoreViewTransitionName(e,t){},cancelViewTransitionName(e,t,n){},cancelRootViewTransitionName(e){},restoreRootViewTransitionName(e){},InstanceMeasurement:null,measureInstance:e=>null,wasInstanceInViewport:e=>!0,hasInstanceChanged:(e,t)=>!1,hasInstanceAffectedParent:(e,t)=>!1,suspendOnActiveViewTransition(e,t){},startGestureTransition:()=>null,startViewTransition:()=>null,stopViewTransition(e){},createViewTransitionInstance:e=>null,getCurrentGestureOffset(e){throw new Error("startGestureTransition is not yet supported in react-three-fiber.")},cloneMutableInstance(e,t){return e},cloneMutableTextInstance(e){return e},cloneRootViewTransitionContainer(e){throw new Error("Not implemented.")},removeRootViewTransitionClone(e,t){throw new Error("Not implemented.")},createFragmentInstance:e=>null,updateFragmentInstanceFiber(e,t){},commitNewChildToFragmentInstance(e,t){},deleteChildFromFragmentInstance(e,t){},measureClonedInstance:e=>null,maySuspendCommitOnUpdate:(e,t,n)=>!1,maySuspendCommitInSyncRender:(e,t)=>!1,startSuspendingCommit:()=>null,getSuspendedCommitReason:(e,t)=>null}),qo=new Map,sc={objects:"shallow",strict:!1};function KD(e,t){if(!t&&typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement&&e.parentElement){const{width:n,height:s,top:a,left:l}=e.parentElement.getBoundingClientRect();return{width:n,height:s,top:a,left:l}}else if(!t&&typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)return{width:e.width,height:e.height,top:0,left:0};return{width:0,height:0,top:0,left:0,...t}}function QD(e){const t=qo.get(e),n=t?.fiber,s=t?.store,a=typeof reportError=="function"?reportError:console.error,l=s||ID(p0,DM),c=n||h0.createContainer(l,ND,null,!1,null,"",a,a,a,null);t||qo.set(e,{fiber:c,store:l});let h,d,f=!1,g=null;return{async configure(v={}){let y;g=new Promise(be=>y=be);let{gl:_,size:M,scene:T,events:S,onCreated:b,shadows:C=!1,linear:R=!1,flat:w=!1,legacy:L=!1,orthographic:D=!1,frameloop:O="always",dpr:A=[1,2],performance:P,raycaster:k,camera:F,onPointerMissed:q}=v,X=l.getState(),K=X.gl;if(!X.gl){const be={canvas:e,powerPreference:"high-performance",antialias:!0,alpha:!0},Ie=typeof _=="function"?await _(be):_;wM(Ie)?K=Ie:K=new GE({...be,..._}),X.set({gl:K})}let ee=X.raycaster;ee||X.set({raycaster:ee=new PE});const{params:ae,...Q}=k||{};if(gn.equ(Q,ee,sc)||Ba(ee,{...Q}),gn.equ(ae,ee.params,sc)||Ba(ee,{params:{...ee.params,...ae}}),!X.camera||X.camera===d&&!gn.equ(d,F,sc)){d=F;const be=F?.isCamera,Ie=be?F:D?new wc(0,0,0,0,.1,1e3):new ni(75,0,.1,1e3);be||(Ie.position.z=5,F&&(Ba(Ie,F),Ie.manual||("aspect"in F||"left"in F||"right"in F||"bottom"in F||"top"in F)&&(Ie.manual=!0,Ie.updateProjectionMatrix())),!X.camera&&!(F!=null&&F.rotation)&&Ie.lookAt(0,0,0)),X.set({camera:Ie}),ee.camera=Ie}if(!X.scene){let be;T!=null&&T.isScene?(be=T,Qf(be,l,"",{})):(be=new P0,Qf(be,l,"",{}),T&&Ba(be,T)),X.set({scene:be})}S&&!X.events.handlers&&X.set({events:S(l)});const me=KD(e,M);if(gn.equ(me,X.size,sc)||X.setSize(me.width,me.height,me.top,me.left),A&&X.viewport.dpr!==JE(A)&&X.setDpr(A),X.frameloop!==O&&X.setFrameloop(O),X.onPointerMissed||X.set({onPointerMissed:q}),P&&!gn.equ(P,X.performance,sc)&&X.set(be=>({performance:{...be.performance,...P}})),!X.xr){var _e;const be=(pt,ue)=>{const Ce=l.getState();Ce.frameloop!=="never"&&DM(pt,!0,Ce,ue)},Ie=()=>{const pt=l.getState();pt.gl.xr.enabled=pt.gl.xr.isPresenting,pt.gl.xr.setAnimationLoop(pt.gl.xr.isPresenting?be:null),pt.gl.xr.isPresenting||p0(pt)},Ft={connect(){const pt=l.getState().gl;pt.xr.addEventListener("sessionstart",Ie),pt.xr.addEventListener("sessionend",Ie)},disconnect(){const pt=l.getState().gl;pt.xr.removeEventListener("sessionstart",Ie),pt.xr.removeEventListener("sessionend",Ie)}};typeof((_e=K.xr)==null?void 0:_e.addEventListener)=="function"&&Ft.connect(),X.set({xr:Ft})}if(K.shadowMap){const be=K.shadowMap.enabled,Ie=K.shadowMap.type;if(K.shadowMap.enabled=!!C,gn.boo(C))K.shadowMap.type=2;else if(gn.str(C)){var ge;const Ft={basic:0,percentage:1,soft:2,variance:3};K.shadowMap.type=(ge=Ft[C])!=null?ge:2}else gn.obj(C)&&Object.assign(K.shadowMap,C);(be!==K.shadowMap.enabled||Ie!==K.shadowMap.type)&&(K.shadowMap.needsUpdate=!0)}return Ht.enabled=!L,f||(K.outputColorSpace=R?Ju:xi,K.toneMapping=w?0:4),X.legacy!==L&&X.set(()=>({legacy:L})),X.linear!==R&&X.set(()=>({linear:R})),X.flat!==w&&X.set(()=>({flat:w})),_&&!gn.fun(_)&&!wM(_)&&!gn.equ(_,K,sc)&&Ba(K,_),h=b,f=!0,y(),this},render(v){return!f&&!g&&this.configure(),g.then(()=>{h0.updateContainer((0,ar.jsx)(eU,{store:l,children:v,onCreated:h,rootElement:e}),c,null,()=>{})}),l},unmount(){lA(e)}}}function eU({store:e,children:t,onCreated:n,rootElement:s}){return ph(()=>{const a=e.getState();a.set(l=>({internal:{...l.internal,active:!0}})),n&&n(a),e.getState().events.connected||a.events.connect==null||a.events.connect(s)},[]),(0,ar.jsx)(eA.Provider,{value:e,children:t})}function lA(e,t){const n=qo.get(e),s=n?.fiber;if(s){const a=n?.store.getState();a&&(a.internal.active=!1),h0.updateContainer(null,s,null,()=>{a&&setTimeout(()=>{try{var l,c,h,d;a.events.disconnect==null||a.events.disconnect(),(l=a.gl)==null||(c=l.renderLists)==null||c.dispose==null||c.dispose(),(h=a.gl)==null||h.forceContextLoss==null||h.forceContextLoss(),(d=a.gl)!=null&&d.xr&&a.xr.disconnect(),SD(a.scene),qo.delete(e),t&&t(e)}catch{}},500)})}}var tU=new Set,nU=new Set,iU=new Set;function Gv(e,t){if(e.size)for(const{callback:n}of e.values())n(t)}function Xu(e,t){switch(e){case"before":return Gv(tU,t);case"after":return Gv(nU,t);case"tail":return Gv(iU,t)}}var Wv,Xv;function d0(e,t,n){let s=t.clock.getDelta();t.frameloop==="never"&&typeof e=="number"&&(s=e-t.clock.elapsedTime,t.clock.oldTime=t.clock.elapsedTime,t.clock.elapsedTime=e),Wv=t.internal.subscribers;for(let a=0;a0)&&!((t=ac.gl.xr)!=null&&t.isPresenting)&&(qv+=d0(e,ac))}if(f0=!1,Xu("after",e),qv===0)return Xu("tail",e),np=!1,cancelAnimationFrame(NM)}function p0(e,t=1){var n;if(!e)return qo.forEach(s=>p0(s.store.getState(),t));(n=e.gl.xr)!=null&&n.isPresenting||!e.internal.active||e.frameloop==="never"||(t>1?e.internal.frames=Math.min(60,e.internal.frames+t):f0?e.internal.frames=2:e.internal.frames=1,np||(np=!0,requestAnimationFrame(cA)))}function DM(e,t=!0,n,s){if(t&&Xu("before",e),n)d0(e,n,s);else for(const a of qo.values())d0(e,a.store.getState());t&&Xu("after",e)}var Yv={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function rU(e){const{handlePointer:t}=PD(e);return{priority:1,enabled:!0,compute(n,s,a){s.pointer.set(n.offsetX/s.size.width*2-1,-(n.offsetY/s.size.height)*2+1),s.raycaster.setFromCamera(s.pointer,s.camera)},connected:void 0,handlers:Object.keys(Yv).reduce((n,s)=>({...n,[s]:t(s)}),{}),update:()=>{var n;const{events:s,internal:a}=e.getState();(n=a.lastEvent)!=null&&n.current&&s.handlers&&s.handlers.onPointerMove(a.lastEvent.current)},connect:n=>{const{set:s,events:a}=e.getState();if(a.disconnect==null||a.disconnect(),s(l=>({events:{...l.events,connected:n}})),a.handlers)for(const l in a.handlers){const c=a.handlers[l],[h,d]=Yv[l];n.addEventListener(h,c,{passive:d})}},disconnect:()=>{const{set:n,events:s}=e.getState();if(s.connected){if(s.handlers)for(const a in s.handlers){const l=s.handlers[a],[c]=Yv[a];s.connected.removeEventListener(c,l)}n(a=>({events:{...a.events,connected:void 0}}))}}}}function UM(e,t){let n;return(...s)=>{window.clearTimeout(n),n=window.setTimeout(()=>e(...s),t)}}function sU({debounce:e,scroll:t,polyfill:n,offsetSize:s}={debounce:0,scroll:!1,offsetSize:!1}){const a=n||(typeof window>"u"?class{}:window.ResizeObserver);if(!a)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[l,c]=(0,xt.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),h=(0,xt.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:l,orientationHandler:null}),d=e?typeof e=="number"?e:e.scroll:null,f=e?typeof e=="number"?e:e.resize:null,g=(0,xt.useRef)(!1);(0,xt.useEffect)(()=>(g.current=!0,()=>{g.current=!1}));const[v,y,_]=(0,xt.useMemo)(()=>{const b=()=>{if(!h.current.element)return;const{left:C,top:R,width:w,height:L,bottom:D,right:O,x:A,y:P}=h.current.element.getBoundingClientRect(),k={left:C,top:R,width:w,height:L,bottom:D,right:O,x:A,y:P};h.current.element instanceof HTMLElement&&s&&(k.height=h.current.element.offsetHeight,k.width=h.current.element.offsetWidth),Object.freeze(k),g.current&&!cU(h.current.lastBounds,k)&&c(h.current.lastBounds=k)};return[b,f?UM(b,f):b,d?UM(b,d):b]},[c,s,d,f]);function M(){h.current.scrollContainers&&(h.current.scrollContainers.forEach(b=>b.removeEventListener("scroll",_,!0)),h.current.scrollContainers=null),h.current.resizeObserver&&(h.current.resizeObserver.disconnect(),h.current.resizeObserver=null),h.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",h.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",h.current.orientationHandler))}function T(){h.current.element&&(h.current.resizeObserver=new a(_),h.current.resizeObserver.observe(h.current.element),t&&h.current.scrollContainers&&h.current.scrollContainers.forEach(b=>b.addEventListener("scroll",_,{capture:!0,passive:!0})),h.current.orientationHandler=()=>{_()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",h.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",h.current.orientationHandler))}const S=b=>{!b||b===h.current.element||(M(),h.current.element=b,h.current.scrollContainers=uA(b),T())};return oU(_,!!t),aU(y),(0,xt.useEffect)(()=>{M(),T()},[t,_,y]),(0,xt.useEffect)(()=>M,[]),[S,l,v]}function aU(e){(0,xt.useEffect)(()=>{const t=e;return window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e])}function oU(e,t){(0,xt.useEffect)(()=>{if(t){const n=e;return window.addEventListener("scroll",n,{capture:!0,passive:!0}),()=>{window.removeEventListener("scroll",n,!0)}}},[e,t])}function uA(e){const t=[];if(!e||e===document.body)return t;const{overflow:n,overflowX:s,overflowY:a}=window.getComputedStyle(e);return[n,s,a].some(l=>l==="auto"||l==="scroll")&&t.push(e),[...t,...uA(e.parentElement)]}var lU=["x","y","top","bottom","left","right","width","height"],cU=(e,t)=>lU.every(n=>e[n]===t[n]);function uU({ref:e,children:t,fallback:n,resize:s,style:a,gl:l,events:c=rU,eventSource:h,eventPrefix:d,shadows:f,linear:g,flat:v,legacy:y,orthographic:_,frameloop:M,dpr:T,performance:S,raycaster:b,camera:C,scene:R,onPointerMissed:w,onCreated:L,...D}){xt.useMemo(()=>WD(BI),[]);const O=yD(),[A,P]=sU({scroll:!0,debounce:{scroll:50,resize:0},...s}),k=xt.useRef(null),F=xt.useRef(null);xt.useImperativeHandle(e,()=>k.current);const q=$E(w),[X,K]=xt.useState(!1),[ee,ae]=xt.useState(!1);if(X)throw X;if(ee)throw ee;const Q=xt.useRef(null);return ph(()=>{const me=k.current;if(P.width>0&&P.height>0&&me){Q.current||(Q.current=QD(me));async function _e(){await Q.current.configure({gl:l,scene:R,events:c,shadows:f,linear:g,flat:v,legacy:y,orthographic:_,frameloop:M,dpr:T,performance:S,raycaster:b,camera:C,size:P,onPointerMissed:(...ge)=>q.current==null?void 0:q.current(...ge),onCreated:ge=>{ge.events.connect==null||ge.events.connect(h?gD(h)?h.current:h:F.current),d&&ge.setEvents({compute:(be,Ie)=>{const Ft=be[d+"X"],pt=be[d+"Y"];Ie.pointer.set(Ft/Ie.size.width*2-1,-(pt/Ie.size.height)*2+1),Ie.raycaster.setFromCamera(Ie.pointer,Ie.camera)}}),L?.(ge)}}),Q.current.render((0,ar.jsx)(O,{children:(0,ar.jsx)(bD,{set:ae,children:(0,ar.jsx)(xt.Suspense,{fallback:(0,ar.jsx)(_D,{set:K}),children:t??null})})}))}_e()}}),xt.useEffect(()=>{const me=k.current;if(me)return()=>lA(me)},[]),(0,ar.jsx)("div",{ref:F,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:h?"none":"auto",...a},...D,children:(0,ar.jsx)("div",{ref:A,style:{width:"100%",height:"100%"},children:(0,ar.jsx)("canvas",{ref:k,style:{display:"block"},children:n})})})}function yU(e){return(0,ar.jsx)(YE,{children:(0,ar.jsx)(uU,{...e})})}var jv="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/CanvasText.tsx",hU='"JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace',_U=({text:e,position:t=[0,0,0],fontSize:n=.5,color:s="#000000",fontWeight:a="normal",anchorX:l="center",anchorY:c="middle",scale:h=1,letterSpacing:d=0})=>{const{texture:f,width:g,height:v,padUnitX:y,padUnitY:_}=(0,xt.useMemo)(()=>{const L=document.createElement("canvas"),D=L.getContext("2d");if(!D)return{texture:null,width:1,height:1,padUnitX:0,padUnitY:0};const O=160,A=`${a} ${O}px ${hU}`;D.font=A,"letterSpacing"in L.style&&(L.style.letterSpacing=`${d}em`);const P=D.measureText(e).width,k=O*.3,F=O*.3;L.width=Math.ceil(P+96),L.height=Math.ceil(288),D.font=A,D.fillStyle=s,D.textAlign="center",D.textBaseline="middle",D.fillText(e,L.width/2,L.height/2+O*.05);const q=new rT(L);return q.colorSpace=xi,q.minFilter=xn,q.magFilter=xn,q.generateMipmaps=!0,{texture:q,width:L.width/O*n,height:L.height/O*n,padUnitX:k/O*n,padUnitY:F/O*n}},[e,n,s,a,d]);if(!f)return null;const M=g-2*y,T=v-2*_,S=l==="left"?M/2:l==="right"?-M/2:0,b=c==="top"?-T/2:c==="bottom"?T/2:0,C=Array.isArray(h)?h[0]:h,R=Array.isArray(h)?h[1]:h,w=Array.isArray(h)?h[2]:h;return $g("mesh",{position:[t[0]+S*C,t[1]+b*R,t[2]],scale:[C,R,w],children:[$g("planeGeometry",{args:[g,v]},void 0,!1,{fileName:jv,lineNumber:86,columnNumber:7},void 0),$g("meshBasicMaterial",{map:f,transparent:!0,depthWrite:!1,toneMapped:!1},void 0,!1,{fileName:jv,lineNumber:87,columnNumber:7},void 0)]},void 0,!0,{fileName:jv,lineNumber:85,columnNumber:5},void 0)};export{nh as $,VM as $n,lw as $t,f2 as A,Tw as An,wc as At,Ks as B,q0 as Bn,Sw as Bt,P2 as C,w0 as Cn,j0 as Ct,F0 as D,h2 as Dn,v0 as Dt,hh as E,qu as En,qn as Et,mE as F,P0 as Fn,U0 as Ft,dE as G,I3 as Gn,fw as Gt,Go as H,N0 as Hn,Qs as Ht,v2 as I,cr as In,Bi as It,gc as J,I0 as Jn,vw as Jt,d2 as K,A2 as Kn,pw as Kt,Wr as L,ZT as Ln,tw as Lt,fc as M,rw as Mn,Oa as Mt,M0 as N,xi as Nn,fp as Nt,lp as O,O2 as On,g0 as Ot,Wo as P,Qu as Pn,pE as Pt,up as Q,Zs as Qn,ow as Qt,bP as R,BM as Rn,pc as Rt,Ht as S,vE as Sn,KT as St,sT as T,R0 as Tn,Yu as Tt,Kw as U,op as Un,E0 as Ut,kP as V,fE as Vn,iw as Vt,Ha as W,Zn as Wn,gw as Wt,cI as X,aI as Xn,sw as Xt,xE as Y,L0 as Yn,yw as Yt,zM as Z,JT as Zn,aw as Zt,FM as _,ZM as _n,Rw as _r,qa as _t,iA as a,ew as an,_0 as ar,rE as at,ji as b,ju as bn,Va as br,tE as bt,GE as c,XM as cn,cn as cr,y0 as ct,wE as d,GM as dn,E2 as dr,ci as dt,cw as en,S0 as er,g2 as et,Cw as f,a2 as fn,qf as fr,Q2 as ft,Lt as g,QM as gn,i0 as gr,Hn as gt,an as h,KM as hn,rt as hr,St as ht,vU as i,_w as in,x0 as ir,zi as it,m2 as j,Mw as jn,ni as jt,Sr as k,nw as kn,tn as kt,HM as l,qM as ln,Ga as lr,Ju as lt,dh as m,xw as mn,Pw as mr,Et as mt,yU as n,hw as nn,Js as nr,yE as nt,gU as o,JM as on,ye as or,xn as ot,Si as p,bw as pn,jT as pr,fI as pt,p2 as q,qT as qn,mw as qt,WD as r,dw as rn,b0 as rr,gI as rt,Be as s,$M as sn,z as sr,bc as st,_U as t,uw as tn,kM as tr,Gf as tt,gE as u,YM as un,lr as ur,Ku as ut,rT as v,jM as vn,th as vr,nE as vt,ME as w,sp as wn,eE as wt,Xe as x,T0 as xn,fU as xr,QT as xt,yT as y,WM as yn,Ne as yr,iE as yt,Ke as z,li as zn,ww as zt}; diff --git a/docs/assets/CanvasText-BY4b_hDf.js b/docs/assets/CanvasText-BY4b_hDf.js deleted file mode 100644 index 0393aa24..00000000 --- a/docs/assets/CanvasText-BY4b_hDf.js +++ /dev/null @@ -1,4201 +0,0 @@ -import{D as tp,E as qR,O as YR,T as f0,b as jR,k as np,v as jg}from"./index-BRSQXCQh.js";var xt=np(f0(),1);var ZR={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},$R={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};var LM="attached",JR="detached";var Xu=1e3,ji=1001,qu=1002,qn=1003,p0=1004,KR=1004,m0=1005,QR=1005,xn=1006,g0=1007,e2=1007,_c=1008,t2=1008,js=1009,NM=1010,DM=1011,v0=1012,UM=1013,$s=1014,Js=1015,Va=1016,y0=1017,_0=1018,b0=1020,OM=35902,FM=35899,BM=1021,zM=1022,Ks=1023,dc=1026,x0=1027,S0=1028,ip=1029,Yu=1030,M0=1031,n2=1032,w0=1033,kM=33776,VM=33777,HM=33778,GM=33779,WM=35840,XM=35841,qM=35842,YM=35843,jM=36196,ZM=37492,$M=37496,JM=37488,KM=37489,QM=37490,ew=37491,tw=37808,nw=37809,iw=37810,rw=37811,sw=37812,aw=37813,ow=37814,lw=37815,cw=37816,uw=37817,hw=37818,dw=37819,fw=37820,pw=37821,mw=36492,gw=36494,vw=36495,yw=36283,_w=36284,bw=36285,xw=36286,i2=2200,Sw=2201,Mw=2202,ju=2300,Yf=2301,kf=2302,Yv=2303,Bo=2400,zo=2401,Zu=2402,rp=2500,T0=2501,ww=3200,r2=3201,s2=3202,a2=3203;var xi="srgb",$u="srgb-linear",Ju="linear",Ku="srgb",Vf=7680,o2=7681,l2=7682,c2=7683,u2=34055,h2=34056,d2=5386;var sp=35044,f2=35048,p2=35040,m2=35045,g2=35049,v2=35041,y2=35046,_2=35050,b2=35042,x2="300 es",Ha=2e3,S2=2001,M2={COMPUTE:"compute",RENDER:"render"},w2={PERSPECTIVE:"perspective",LINEAR:"linear",FLAT:"flat"},T2={NORMAL:"normal",CENTROID:"centroid",SAMPLE:"sample",FIRST:"first",EITHER:"either"},E2={TEXTURE_COMPARE:"depthTextureCompare"};function A2(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}var C2={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function cc(e,t){return new C2[e](t)}function Tw(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Qu(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}function Ew(){const e=Qu("canvas");return e.style.display="block",e}var kS={},Ga=null;function R2(e){Ga=e}function P2(){return Ga}function eh(...e){const t="THREE."+e.shift();Ga&&Ga("log",t,...e)}function Aw(e){const t=e[0];if(typeof t=="string"&&t.startsWith("TSL:")){const n=e[1];n&&n.isStackTrace?e[0]+=" "+n.getLocation():e[1]='Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.'}return e}function Ne(...e){e=Aw(e);const t="THREE."+e.shift();if(Ga)Ga("warn",t,...e);else{const n=e[0];n&&n.isStackTrace}}function rt(...e){e=Aw(e);const t="THREE."+e.shift();if(Ga)Ga("error",t,...e);else{const n=e[0];n&&n.isStackTrace}}function ka(...e){const t=e.join(" ");t in kS||(kS[t]=!0,Ne(...e))}function hU(){return typeof self<"u"&&typeof self.scheduler<"u"&&typeof self.scheduler.yield<"u"?self.scheduler.yield():new Promise(e=>{requestAnimationFrame(e)})}function I2(e,t,n){return new Promise(function(s,a){function l(){switch(e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0)){case e.WAIT_FAILED:a();break;case e.TIMEOUT_EXPIRED:setTimeout(l,n);break;default:s()}}setTimeout(l,n)})}var L2={0:1,2:6,4:7,3:5,1:0,6:2,7:4,5:3},Wr=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){const n=this._listeners;return n===void 0?!1:n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){const n=this._listeners;if(n===void 0)return;const s=n[e];if(s!==void 0){const a=s.indexOf(t);a!==-1&&s.splice(a,1)}}dispatchEvent(e){const t=this._listeners;if(t===void 0)return;const n=t[e.type];if(n!==void 0){e.target=this;const s=n.slice(0);for(let a=0,l=s.length;a>8&255]+yi[e>>16&255]+yi[e>>24&255]+"-"+yi[t&255]+yi[t>>8&255]+"-"+yi[t>>16&15|64]+yi[t>>24&255]+"-"+yi[n&63|128]+yi[n>>8&255]+"-"+yi[n>>16&255]+yi[n>>24&255]+yi[s&255]+yi[s>>8&255]+yi[s>>16&255]+yi[s>>24&255]).toLowerCase()}function gt(e,t,n){return Math.max(t,Math.min(n,e))}function E0(e,t){return(e%t+t)%t}function N2(e,t,n,s,a){return s+(e-t)*(a-s)/(n-t)}function D2(e,t,n){return e!==t?(n-e)/(t-e):0}function Vu(e,t,n){return(1-n)*e+n*t}function U2(e,t,n,s){return Vu(e,t,1-Math.exp(-n*s))}function O2(e,t=1){return t-Math.abs(E0(e,t*2)-t)}function F2(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*(3-2*e))}function B2(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*e*(e*(e*6-15)+10))}function z2(e,t){return e+Math.floor(Math.random()*(t-e+1))}function k2(e,t){return e+Math.random()*(t-e)}function V2(e){return e*(.5-Math.random())}function H2(e){e!==void 0&&(VS=e);let t=VS+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function G2(e){return e*Ho}function W2(e){return e*fc}function X2(e){return(e&e-1)===0&&e!==0}function q2(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function Y2(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function j2(e,t,n,s,a){const l=Math.cos,c=Math.sin,h=l(n/2),d=c(n/2),f=l((t+s)/2),g=c((t+s)/2),v=l((t-s)/2),y=c((t-s)/2),_=l((s-t)/2),M=c((s-t)/2);switch(a){case"XYX":e.set(h*g,d*v,d*y,h*f);break;case"YZY":e.set(d*y,h*g,d*v,h*f);break;case"ZXZ":e.set(d*v,d*y,h*g,h*f);break;case"XZX":e.set(h*g,d*M,d*_,h*f);break;case"YXY":e.set(d*_,h*g,d*M,h*f);break;case"ZYZ":e.set(d*M,d*_,h*g,h*f);break;default:Ne("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+a)}}function Fi(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return e/4294967295;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int32Array:return Math.max(e/2147483647,-1);case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("THREE.MathUtils: Invalid component type.")}}function It(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return Math.round(e*4294967295);case Uint16Array:return Math.round(e*65535);case Uint8Array:return Math.round(e*255);case Int32Array:return Math.round(e*2147483647);case Int16Array:return Math.round(e*32767);case Int8Array:return Math.round(e*127);default:throw new Error("THREE.MathUtils: Invalid component type.")}}var Z2={DEG2RAD:Ho,RAD2DEG:fc,generateUUID:or,clamp:gt,euclideanModulo:E0,mapLinear:N2,inverseLerp:D2,lerp:Vu,damp:U2,pingpong:O2,smoothstep:F2,smootherstep:B2,randInt:z2,randFloat:k2,randFloatSpread:V2,seededRandom:H2,degToRad:G2,radToDeg:W2,isPowerOfTwo:X2,ceilPowerOfTwo:q2,floorPowerOfTwo:Y2,setQuaternionFromProperEuler:j2,normalize:It,denormalize:Fi},ye=class Cw{static{Cw.prototype.isVector2=!0}constructor(t=0,n=0){this.x=t,this.y=n}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,n){return this.x=t,this.y=n,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,n){switch(t){case 0:this.x=n;break;case 1:this.y=n;break;default:throw new Error("THREE.Vector2: index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("THREE.Vector2: index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,n){return this.x=t.x+n.x,this.y=t.y+n.y,this}addScaledVector(t,n){return this.x+=t.x*n,this.y+=t.y*n,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,n){return this.x=t.x-n.x,this.y=t.y-n.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const n=this.x,s=this.y,a=t.elements;return this.x=a[0]*n+a[3]*s+a[6],this.y=a[1]*n+a[4]*s+a[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,n){return this.x=gt(this.x,t.x,n.x),this.y=gt(this.y,t.y,n.y),this}clampScalar(t,n){return this.x=gt(this.x,t,n),this.y=gt(this.y,t,n),this}clampLength(t,n){const s=this.length();return this.divideScalar(s||1).multiplyScalar(gt(s,t,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const n=Math.sqrt(this.lengthSq()*t.lengthSq());if(n===0)return Math.PI/2;const s=this.dot(t)/n;return Math.acos(gt(s,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const n=this.x-t.x,s=this.y-t.y;return n*n+s*s}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,n){return this.x+=(t.x-this.x)*n,this.y+=(t.y-this.y)*n,this}lerpVectors(t,n,s){return this.x=t.x+(n.x-t.x)*s,this.y=t.y+(n.y-t.y)*s,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,n=0){return this.x=t[n],this.y=t[n+1],this}toArray(t=[],n=0){return t[n]=this.x,t[n+1]=this.y,t}fromBufferAttribute(t,n){return this.x=t.getX(n),this.y=t.getY(n),this}rotateAround(t,n){const s=Math.cos(n),a=Math.sin(n),l=this.x-t.x,c=this.y-t.y;return this.x=l*s-c*a+t.x,this.y=l*a+c*s+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Bi=class{constructor(e=0,t=0,n=0,s=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=n,this._w=s}static slerpFlat(e,t,n,s,a,l,c){let h=n[s+0],d=n[s+1],f=n[s+2],g=n[s+3],v=a[l+0],y=a[l+1],_=a[l+2],M=a[l+3];if(g!==M||h!==v||d!==y||f!==_){let w=h*v+d*y+f*_+g*M;w<0&&(v=-v,y=-y,_=-_,M=-M,w=-w);let x=1-c;if(w<.9995){const b=Math.acos(w),C=Math.sin(b);x=Math.sin(x*b)/C,c=Math.sin(c*b)/C,h=h*x+v*c,d=d*x+y*c,f=f*x+_*c,g=g*x+M*c}else{h=h*x+v*c,d=d*x+y*c,f=f*x+_*c,g=g*x+M*c;const b=1/Math.sqrt(h*h+d*d+f*f+g*g);h*=b,d*=b,f*=b,g*=b}}e[t]=h,e[t+1]=d,e[t+2]=f,e[t+3]=g}static multiplyQuaternionsFlat(e,t,n,s,a,l){const c=n[s],h=n[s+1],d=n[s+2],f=n[s+3],g=a[l],v=a[l+1],y=a[l+2],_=a[l+3];return e[t]=c*_+f*g+h*y-d*v,e[t+1]=h*_+f*v+d*g-c*y,e[t+2]=d*_+f*y+c*v-h*g,e[t+3]=f*_-c*g-h*v-d*y,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,s){return this._x=e,this._y=t,this._z=n,this._w=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const n=e._x,s=e._y,a=e._z,l=e._order,c=Math.cos,h=Math.sin,d=c(n/2),f=c(s/2),g=c(a/2),v=h(n/2),y=h(s/2),_=h(a/2);switch(l){case"XYZ":this._x=v*f*g+d*y*_,this._y=d*y*g-v*f*_,this._z=d*f*_+v*y*g,this._w=d*f*g-v*y*_;break;case"YXZ":this._x=v*f*g+d*y*_,this._y=d*y*g-v*f*_,this._z=d*f*_-v*y*g,this._w=d*f*g+v*y*_;break;case"ZXY":this._x=v*f*g-d*y*_,this._y=d*y*g+v*f*_,this._z=d*f*_+v*y*g,this._w=d*f*g-v*y*_;break;case"ZYX":this._x=v*f*g-d*y*_,this._y=d*y*g+v*f*_,this._z=d*f*_-v*y*g,this._w=d*f*g+v*y*_;break;case"YZX":this._x=v*f*g+d*y*_,this._y=d*y*g+v*f*_,this._z=d*f*_-v*y*g,this._w=d*f*g-v*y*_;break;case"XZY":this._x=v*f*g-d*y*_,this._y=d*y*g-v*f*_,this._z=d*f*_+v*y*g,this._w=d*f*g+v*y*_;break;default:Ne("Quaternion: .setFromEuler() encountered an unknown order: "+l)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const n=t/2,s=Math.sin(n);return this._x=e.x*s,this._y=e.y*s,this._z=e.z*s,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,n=t[0],s=t[4],a=t[8],l=t[1],c=t[5],h=t[9],d=t[2],f=t[6],g=t[10],v=n+c+g;if(v>0){const y=.5/Math.sqrt(v+1);this._w=.25/y,this._x=(f-h)*y,this._y=(a-d)*y,this._z=(l-s)*y}else if(n>c&&n>g){const y=2*Math.sqrt(1+n-c-g);this._w=(f-h)/y,this._x=.25*y,this._y=(s+l)/y,this._z=(a+d)/y}else if(c>g){const y=2*Math.sqrt(1+c-n-g);this._w=(a-d)/y,this._x=(s+l)/y,this._y=.25*y,this._z=(h+f)/y}else{const y=2*Math.sqrt(1+g-n-c);this._w=(l-s)/y,this._x=(a+d)/y,this._y=(h+f)/y,this._z=.25*y}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return n<1e-8?(n=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(gt(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(n===0)return this;const s=Math.min(1,t/n);return this.slerp(e,s),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,s=e._y,a=e._z,l=e._w,c=t._x,h=t._y,d=t._z,f=t._w;return this._x=n*f+l*c+s*d-a*h,this._y=s*f+l*h+a*c-n*d,this._z=a*f+l*d+n*h-s*c,this._w=l*f-n*c-s*h-a*d,this._onChangeCallback(),this}slerp(e,t){let n=e._x,s=e._y,a=e._z,l=e._w,c=this.dot(e);c<0&&(n=-n,s=-s,a=-a,l=-l,c=-c);let h=1-t;if(c<.9995){const d=Math.acos(c),f=Math.sin(d);h=Math.sin(h*d)/f,t=Math.sin(t*d)/f,this._x=this._x*h+n*t,this._y=this._y*h+s*t,this._z=this._z*h+a*t,this._w=this._w*h+l*t,this._onChangeCallback()}else this._x=this._x*h+n*t,this._y=this._y*h+s*t,this._z=this._z*h+a*t,this._w=this._w*h+l*t,this.normalize();return this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){const e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),s=Math.sqrt(1-n),a=Math.sqrt(n);return this.set(s*Math.sin(e),s*Math.cos(e),a*Math.sin(t),a*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},z=class Rw{static{Rw.prototype.isVector3=!0}constructor(t=0,n=0,s=0){this.x=t,this.y=n,this.z=s}set(t,n,s){return s===void 0&&(s=this.z),this.x=t,this.y=n,this.z=s,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,n){switch(t){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;default:throw new Error("THREE.Vector3: index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("THREE.Vector3: index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,n){return this.x=t.x+n.x,this.y=t.y+n.y,this.z=t.z+n.z,this}addScaledVector(t,n){return this.x+=t.x*n,this.y+=t.y*n,this.z+=t.z*n,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,n){return this.x=t.x-n.x,this.y=t.y-n.y,this.z=t.z-n.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,n){return this.x=t.x*n.x,this.y=t.y*n.y,this.z=t.z*n.z,this}applyEuler(t){return this.applyQuaternion(HS.setFromEuler(t))}applyAxisAngle(t,n){return this.applyQuaternion(HS.setFromAxisAngle(t,n))}applyMatrix3(t){const n=this.x,s=this.y,a=this.z,l=t.elements;return this.x=l[0]*n+l[3]*s+l[6]*a,this.y=l[1]*n+l[4]*s+l[7]*a,this.z=l[2]*n+l[5]*s+l[8]*a,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const n=this.x,s=this.y,a=this.z,l=t.elements,c=1/(l[3]*n+l[7]*s+l[11]*a+l[15]);return this.x=(l[0]*n+l[4]*s+l[8]*a+l[12])*c,this.y=(l[1]*n+l[5]*s+l[9]*a+l[13])*c,this.z=(l[2]*n+l[6]*s+l[10]*a+l[14])*c,this}applyQuaternion(t){const n=this.x,s=this.y,a=this.z,l=t.x,c=t.y,h=t.z,d=t.w,f=2*(c*a-h*s),g=2*(h*n-l*a),v=2*(l*s-c*n);return this.x=n+d*f+c*v-h*g,this.y=s+d*g+h*f-l*v,this.z=a+d*v+l*g-c*f,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const n=this.x,s=this.y,a=this.z,l=t.elements;return this.x=l[0]*n+l[4]*s+l[8]*a,this.y=l[1]*n+l[5]*s+l[9]*a,this.z=l[2]*n+l[6]*s+l[10]*a,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,n){return this.x=gt(this.x,t.x,n.x),this.y=gt(this.y,t.y,n.y),this.z=gt(this.z,t.z,n.z),this}clampScalar(t,n){return this.x=gt(this.x,t,n),this.y=gt(this.y,t,n),this.z=gt(this.z,t,n),this}clampLength(t,n){const s=this.length();return this.divideScalar(s||1).multiplyScalar(gt(s,t,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,n){return this.x+=(t.x-this.x)*n,this.y+=(t.y-this.y)*n,this.z+=(t.z-this.z)*n,this}lerpVectors(t,n,s){return this.x=t.x+(n.x-t.x)*s,this.y=t.y+(n.y-t.y)*s,this.z=t.z+(n.z-t.z)*s,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,n){const s=t.x,a=t.y,l=t.z,c=n.x,h=n.y,d=n.z;return this.x=a*d-l*h,this.y=l*c-s*d,this.z=s*h-a*c,this}projectOnVector(t){const n=t.lengthSq();if(n===0)return this.set(0,0,0);const s=t.dot(this)/n;return this.copy(t).multiplyScalar(s)}projectOnPlane(t){return Zg.copy(this).projectOnVector(t),this.sub(Zg)}reflect(t){return this.sub(Zg.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const n=Math.sqrt(this.lengthSq()*t.lengthSq());if(n===0)return Math.PI/2;const s=this.dot(t)/n;return Math.acos(gt(s,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const n=this.x-t.x,s=this.y-t.y,a=this.z-t.z;return n*n+s*s+a*a}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,n,s){const a=Math.sin(n)*t;return this.x=a*Math.sin(s),this.y=Math.cos(n)*t,this.z=a*Math.cos(s),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,n,s){return this.x=t*Math.sin(n),this.y=s,this.z=t*Math.cos(n),this}setFromMatrixPosition(t){const n=t.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this}setFromMatrixScale(t){const n=this.setFromMatrixColumn(t,0).length(),s=this.setFromMatrixColumn(t,1).length(),a=this.setFromMatrixColumn(t,2).length();return this.x=n,this.y=s,this.z=a,this}setFromMatrixColumn(t,n){return this.fromArray(t.elements,n*4)}setFromMatrix3Column(t,n){return this.fromArray(t.elements,n*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,n=0){return this.x=t[n],this.y=t[n+1],this.z=t[n+2],this}toArray(t=[],n=0){return t[n]=this.x,t[n+1]=this.y,t[n+2]=this.z,t}fromBufferAttribute(t,n){return this.x=t.getX(n),this.y=t.getY(n),this.z=t.getZ(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,n=Math.random()*2-1,s=Math.sqrt(1-n*n);return this.x=s*Math.cos(t),this.y=n,this.z=s*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},Zg=new z,HS=new Bi,Et=class Pw{static{Pw.prototype.isMatrix3=!0}constructor(t,n,s,a,l,c,h,d,f){this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,n,s,a,l,c,h,d,f)}set(t,n,s,a,l,c,h,d,f){const g=this.elements;return g[0]=t,g[1]=a,g[2]=h,g[3]=n,g[4]=l,g[5]=d,g[6]=s,g[7]=c,g[8]=f,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const n=this.elements,s=t.elements;return n[0]=s[0],n[1]=s[1],n[2]=s[2],n[3]=s[3],n[4]=s[4],n[5]=s[5],n[6]=s[6],n[7]=s[7],n[8]=s[8],this}extractBasis(t,n,s){return t.setFromMatrix3Column(this,0),n.setFromMatrix3Column(this,1),s.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const n=t.elements;return this.set(n[0],n[4],n[8],n[1],n[5],n[9],n[2],n[6],n[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,n){const s=t.elements,a=n.elements,l=this.elements,c=s[0],h=s[3],d=s[6],f=s[1],g=s[4],v=s[7],y=s[2],_=s[5],M=s[8],w=a[0],x=a[3],b=a[6],C=a[1],R=a[4],T=a[7],L=a[2],D=a[5],O=a[8];return l[0]=c*w+h*C+d*L,l[3]=c*x+h*R+d*D,l[6]=c*b+h*T+d*O,l[1]=f*w+g*C+v*L,l[4]=f*x+g*R+v*D,l[7]=f*b+g*T+v*O,l[2]=y*w+_*C+M*L,l[5]=y*x+_*R+M*D,l[8]=y*b+_*T+M*O,this}multiplyScalar(t){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=t,n[4]*=t,n[7]*=t,n[2]*=t,n[5]*=t,n[8]*=t,this}determinant(){const t=this.elements,n=t[0],s=t[1],a=t[2],l=t[3],c=t[4],h=t[5],d=t[6],f=t[7],g=t[8];return n*c*g-n*h*f-s*l*g+s*h*d+a*l*f-a*c*d}invert(){const t=this.elements,n=t[0],s=t[1],a=t[2],l=t[3],c=t[4],h=t[5],d=t[6],f=t[7],g=t[8],v=g*c-h*f,y=h*d-g*l,_=f*l-c*d,M=n*v+s*y+a*_;if(M===0)return this.set(0,0,0,0,0,0,0,0,0);const w=1/M;return t[0]=v*w,t[1]=(a*f-g*s)*w,t[2]=(h*s-a*c)*w,t[3]=y*w,t[4]=(g*n-a*d)*w,t[5]=(a*l-h*n)*w,t[6]=_*w,t[7]=(s*d-f*n)*w,t[8]=(c*n-s*l)*w,this}transpose(){let t;const n=this.elements;return t=n[1],n[1]=n[3],n[3]=t,t=n[2],n[2]=n[6],n[6]=t,t=n[5],n[5]=n[7],n[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const n=this.elements;return t[0]=n[0],t[1]=n[3],t[2]=n[6],t[3]=n[1],t[4]=n[4],t[5]=n[7],t[6]=n[2],t[7]=n[5],t[8]=n[8],this}setUvTransform(t,n,s,a,l,c,h){const d=Math.cos(l),f=Math.sin(l);return this.set(s*d,s*f,-s*(d*c+f*h)+c+t,-a*f,a*d,-a*(-f*c+d*h)+h+n,0,0,1),this}scale(t,n){return ka("Matrix3: .scale() is deprecated. Use .makeScale() instead."),this.premultiply($g.makeScale(t,n)),this}rotate(t){return ka("Matrix3: .rotate() is deprecated. Use .makeRotation() instead."),this.premultiply($g.makeRotation(-t)),this}translate(t,n){return ka("Matrix3: .translate() is deprecated. Use .makeTranslation() instead."),this.premultiply($g.makeTranslation(t,n)),this}makeTranslation(t,n){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,n,0,0,1),this}makeRotation(t){const n=Math.cos(t),s=Math.sin(t);return this.set(n,-s,0,s,n,0,0,0,1),this}makeScale(t,n){return this.set(t,0,0,0,n,0,0,0,1),this}equals(t){const n=this.elements,s=t.elements;for(let a=0;a<9;a++)if(n[a]!==s[a])return!1;return!0}fromArray(t,n=0){for(let s=0;s<9;s++)this.elements[s]=t[s+n];return this}toArray(t=[],n=0){const s=this.elements;return t[n]=s[0],t[n+1]=s[1],t[n+2]=s[2],t[n+3]=s[3],t[n+4]=s[4],t[n+5]=s[5],t[n+6]=s[6],t[n+7]=s[7],t[n+8]=s[8],t}clone(){return new this.constructor().fromArray(this.elements)}},$g=new Et,GS=new Et().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),WS=new Et().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function $2(){const e={enabled:!0,workingColorSpace:$u,spaces:{},convert:function(a,l,c){return this.enabled===!1||l===c||!l||!c||(this.spaces[l].transfer==="srgb"&&(a.r=Zs(a.r),a.g=Zs(a.g),a.b=Zs(a.b)),this.spaces[l].primaries!==this.spaces[c].primaries&&(a.applyMatrix3(this.spaces[l].toXYZ),a.applyMatrix3(this.spaces[c].fromXYZ)),this.spaces[c].transfer==="srgb"&&(a.r=hc(a.r),a.g=hc(a.g),a.b=hc(a.b))),a},workingToColorSpace:function(a,l){return this.convert(a,this.workingColorSpace,l)},colorSpaceToWorking:function(a,l){return this.convert(a,l,this.workingColorSpace)},getPrimaries:function(a){return this.spaces[a].primaries},getTransfer:function(a){return a===""?Ju:this.spaces[a].transfer},getToneMappingMode:function(a){return this.spaces[a].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(a,l=this.workingColorSpace){return a.fromArray(this.spaces[l].luminanceCoefficients)},define:function(a){Object.assign(this.spaces,a)},_getMatrix:function(a,l,c){return a.copy(this.spaces[l].toXYZ).multiply(this.spaces[c].fromXYZ)},_getDrawingBufferColorSpace:function(a){return this.spaces[a].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(a=this.workingColorSpace){return this.spaces[a].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(a,l){return ka("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),e.workingToColorSpace(a,l)},toWorkingColorSpace:function(a,l){return ka("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),e.colorSpaceToWorking(a,l)}},t=[.64,.33,.3,.6,.15,.06],n=[.2126,.7152,.0722],s=[.3127,.329];return e.define({[$u]:{primaries:t,whitePoint:s,transfer:Ju,toXYZ:GS,fromXYZ:WS,luminanceCoefficients:n,workingColorSpaceConfig:{unpackColorSpace:xi},outputColorSpaceConfig:{drawingBufferColorSpace:xi}},[xi]:{primaries:t,whitePoint:s,transfer:Ku,toXYZ:GS,fromXYZ:WS,luminanceCoefficients:n,outputColorSpaceConfig:{drawingBufferColorSpace:xi}}}),e}var Ht=$2();function Zs(e){return e<.04045?e*.0773993808:Math.pow(e*.9478672986+.0521327014,2.4)}function hc(e){return e<.0031308?e*12.92:1.055*Math.pow(e,.41666)-.055}var Fl,Iw=class{static getDataURL(e,t="image/png"){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let n;if(e instanceof HTMLCanvasElement)n=e;else{Fl===void 0&&(Fl=Qu("canvas")),Fl.width=e.width,Fl.height=e.height;const s=Fl.getContext("2d");e instanceof ImageData?s.putImageData(e,0,0):s.drawImage(e,0,0,e.width,e.height),n=Fl}return n.toDataURL(t)}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=Qu("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);const s=n.getImageData(0,0,e.width,e.height),a=s.data;for(let l=0;l1),this.pmremVersion=0,this.normalized=!1}get width(){return this.source.getSize(Kg).x}get height(){return this.source.getSize(Kg).y}get depth(){return this.source.getSize(Kg).z}get image(){return this.source.data}set image(t){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(t,n){this.updateRanges.push({start:t,count:n})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(t){return this.name=t.name,this.source=t.source,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.channel=t.channel,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.normalized=t.normalized,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.colorSpace=t.colorSpace,this.renderTarget=t.renderTarget,this.isRenderTargetTexture=t.isRenderTargetTexture,this.isArrayTexture=t.isArrayTexture,this.userData=JSON.parse(JSON.stringify(t.userData)),this.needsUpdate=!0,this}setValues(t){for(const n in t){const s=t[n];if(s===void 0){Ne(`Texture.setValues(): parameter '${n}' has value of undefined.`);continue}const a=this[n];if(a===void 0){Ne(`Texture.setValues(): property '${n}' does not exist.`);continue}a&&s&&a.isVector2&&s.isVector2||a&&s&&a.isVector3&&s.isVector3||a&&s&&a.isMatrix3&&s.isMatrix3?a.copy(s):this[n]=s}}toJSON(t){const n=t===void 0||typeof t=="string";if(!n&&t.textures[this.uuid]!==void 0)return t.textures[this.uuid];const s={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,normalized:this.normalized,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(s.userData=this.userData),n||(t.textures[this.uuid]=s),s}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==300)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Xu:t.x=t.x-Math.floor(t.x);break;case ji:t.x=t.x<0?0:1;break;case qu:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Xu:t.y=t.y-Math.floor(t.y);break;case ji:t.y=t.y<0?0:1;break;case qu:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(t){t===!0&&this.pmremVersion++}};Zn.DEFAULT_IMAGE=null;Zn.DEFAULT_MAPPING=300;Zn.DEFAULT_ANISOTROPY=1;var cn=class Lw{static{Lw.prototype.isVector4=!0}constructor(t=0,n=0,s=0,a=1){this.x=t,this.y=n,this.z=s,this.w=a}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,n,s,a){return this.x=t,this.y=n,this.z=s,this.w=a,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,n){switch(t){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;case 3:this.w=n;break;default:throw new Error("THREE.Vector4: index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("THREE.Vector4: index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,n){return this.x=t.x+n.x,this.y=t.y+n.y,this.z=t.z+n.z,this.w=t.w+n.w,this}addScaledVector(t,n){return this.x+=t.x*n,this.y+=t.y*n,this.z+=t.z*n,this.w+=t.w*n,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,n){return this.x=t.x-n.x,this.y=t.y-n.y,this.z=t.z-n.z,this.w=t.w-n.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const n=this.x,s=this.y,a=this.z,l=this.w,c=t.elements;return this.x=c[0]*n+c[4]*s+c[8]*a+c[12]*l,this.y=c[1]*n+c[5]*s+c[9]*a+c[13]*l,this.z=c[2]*n+c[6]*s+c[10]*a+c[14]*l,this.w=c[3]*n+c[7]*s+c[11]*a+c[15]*l,this}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this.w/=t.w,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const n=Math.sqrt(1-t.w*t.w);return n<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/n,this.y=t.y/n,this.z=t.z/n),this}setAxisAngleFromRotationMatrix(t){let n,s,a,l;const d=t.elements,f=d[0],g=d[4],v=d[8],y=d[1],_=d[5],M=d[9],w=d[2],x=d[6],b=d[10];if(Math.abs(g-y)<.01&&Math.abs(v-w)<.01&&Math.abs(M-x)<.01){if(Math.abs(g+y)<.1&&Math.abs(v+w)<.1&&Math.abs(M+x)<.1&&Math.abs(f+_+b-3)<.1)return this.set(1,0,0,0),this;n=Math.PI;const R=(f+1)/2,T=(_+1)/2,L=(b+1)/2,D=(g+y)/4,O=(v+w)/4,A=(M+x)/4;return R>T&&R>L?R<.01?(s=0,a=.707106781,l=.707106781):(s=Math.sqrt(R),a=D/s,l=O/s):T>L?T<.01?(s=.707106781,a=0,l=.707106781):(a=Math.sqrt(T),s=D/a,l=A/a):L<.01?(s=.707106781,a=.707106781,l=0):(l=Math.sqrt(L),s=O/l,a=A/l),this.set(s,a,l,n),this}let C=Math.sqrt((x-M)*(x-M)+(v-w)*(v-w)+(y-g)*(y-g));return Math.abs(C)<.001&&(C=1),this.x=(x-M)/C,this.y=(v-w)/C,this.z=(y-g)/C,this.w=Math.acos((f+_+b-1)/2),this}setFromMatrixPosition(t){const n=t.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this.w=n[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,n){return this.x=gt(this.x,t.x,n.x),this.y=gt(this.y,t.y,n.y),this.z=gt(this.z,t.z,n.z),this.w=gt(this.w,t.w,n.w),this}clampScalar(t,n){return this.x=gt(this.x,t,n),this.y=gt(this.y,t,n),this.z=gt(this.z,t,n),this.w=gt(this.w,t,n),this}clampLength(t,n){const s=this.length();return this.divideScalar(s||1).multiplyScalar(gt(s,t,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,n){return this.x+=(t.x-this.x)*n,this.y+=(t.y-this.y)*n,this.z+=(t.z-this.z)*n,this.w+=(t.w-this.w)*n,this}lerpVectors(t,n,s){return this.x=t.x+(n.x-t.x)*s,this.y=t.y+(n.y-t.y)*s,this.z=t.z+(n.z-t.z)*s,this.w=t.w+(n.w-t.w)*s,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,n=0){return this.x=t[n],this.y=t[n+1],this.z=t[n+2],this.w=t[n+3],this}toArray(t=[],n=0){return t[n]=this.x,t[n+1]=this.y,t[n+2]=this.z,t[n+3]=this.w,t}fromBufferAttribute(t,n){return this.x=t.getX(n),this.y=t.getY(n),this.z=t.getZ(n),this.w=t.getW(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},A0=class extends Wr{constructor(e=1,t=1,n={}){super(),n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:xn,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1,useArrayDepthTexture:!1},n),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=n.depth,this.scissor=new cn(0,0,e,t),this.scissorTest=!1,this.viewport=new cn(0,0,e,t),this.textures=[];const s={width:e,height:t,depth:n.depth},a=new Zn(s),l=n.count;for(let c=0;c1);this.dispose()}this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.textures.length=0;for(let t=0,n=e.textures.length;t>>0}enable(e){this.mask|=1<1){for(let n=0;n1){for(let s=0;s0&&(a.userData=this.userData),a.layers=this.layers.mask,a.matrix=this.matrix.toArray(),a.up=this.up.toArray(),this.pivot!==null&&(a.pivot=this.pivot.toArray()),this.matrixAutoUpdate===!1&&(a.matrixAutoUpdate=!1),this.morphTargetDictionary!==void 0&&(a.morphTargetDictionary=Object.assign({},this.morphTargetDictionary)),this.morphTargetInfluences!==void 0&&(a.morphTargetInfluences=this.morphTargetInfluences.slice()),this.isInstancedMesh&&(a.type="InstancedMesh",a.count=this.count,a.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(a.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(a.type="BatchedMesh",a.perObjectFrustumCulled=this.perObjectFrustumCulled,a.sortObjects=this.sortObjects,a.drawRanges=this._drawRanges,a.reservedRanges=this._reservedRanges,a.geometryInfo=this._geometryInfo.map(h=>({...h,boundingBox:h.boundingBox?h.boundingBox.toJSON():void 0,boundingSphere:h.boundingSphere?h.boundingSphere.toJSON():void 0})),a.instanceInfo=this._instanceInfo.map(h=>({...h})),a.availableInstanceIds=this._availableInstanceIds.slice(),a.availableGeometryIds=this._availableGeometryIds.slice(),a.nextIndexStart=this._nextIndexStart,a.nextVertexStart=this._nextVertexStart,a.geometryCount=this._geometryCount,a.maxInstanceCount=this._maxInstanceCount,a.maxVertexCount=this._maxVertexCount,a.maxIndexCount=this._maxIndexCount,a.geometryInitialized=this._geometryInitialized,a.matricesTexture=this._matricesTexture.toJSON(t),a.indirectTexture=this._indirectTexture.toJSON(t),this._colorsTexture!==null&&(a.colorsTexture=this._colorsTexture.toJSON(t)),this.boundingSphere!==null&&(a.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(a.boundingBox=this.boundingBox.toJSON()));function l(h,d){return h[d.uuid]===void 0&&(h[d.uuid]=d.toJSON(t)),d.uuid}if(this.isScene)this.background&&(this.background.isColor?a.background=this.background.toJSON():this.background.isTexture&&(a.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(a.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){a.geometry=l(t.geometries,this.geometry);const h=this.geometry.parameters;if(h!==void 0&&h.shapes!==void 0){const d=h.shapes;if(Array.isArray(d))for(let f=0,g=d.length;f0){a.children=[];for(let h=0;h0){a.animations=[];for(let h=0;h0&&(s.geometries=h),d.length>0&&(s.materials=d),f.length>0&&(s.textures=f),g.length>0&&(s.images=g),v.length>0&&(s.shapes=v),y.length>0&&(s.skeletons=y),_.length>0&&(s.animations=_),M.length>0&&(s.nodes=M)}return s.object=a,s;function c(h){const d=[];for(const f in h){const g=h[f];delete g.metadata,d.push(g)}return d}}clone(t){return new this.constructor().copy(this,t)}copy(t,n=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.pivot=t.pivot!==null?t.pivot.clone():null,this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.static=t.static,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),n===!0)for(let s=0;s.025?(d.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!d.inputState.pinching&&v<=.02-.005&&(d.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else h!==null&&e.gripSpace&&(a=t.getPose(e.gripSpace,n),a!==null&&(h.matrix.fromArray(a.transform.matrix),h.matrix.decompose(h.position,h.rotation,h.scale),h.matrixWorldNeedsUpdate=!0,a.linearVelocity?(h.hasLinearVelocity=!0,h.linearVelocity.copy(a.linearVelocity)):h.hasLinearVelocity=!1,a.angularVelocity?(h.hasAngularVelocity=!0,h.angularVelocity.copy(a.angularVelocity)):h.hasAngularVelocity=!1,h.eventsEnabled&&h.dispatchEvent({type:"gripUpdated",data:e,target:this})));c!==null&&(s=t.getPose(e.targetRaySpace,n),s===null&&a!==null&&(s=a),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1,this.dispatchEvent(oP)))}return c!==null&&(c.visible=s!==null),h!==null&&(h.visible=a!==null),d!==null&&(d.visible=l!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const n=new uc;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}},Dw={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ra={h:0,s:0,l:0},Zd={h:0,s:0,l:0};function ev(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*6*(2/3-n):e}var Xe=class{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){if(t===void 0&&n===void 0){const s=e;s&&s.isColor?this.copy(s):typeof s=="number"?this.setHex(s):typeof s=="string"&&this.setStyle(s)}else this.setRGB(e,t,n);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=xi){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,Ht.colorSpaceToWorking(this,t),this}setRGB(e,t,n,s=Ht.workingColorSpace){return this.r=e,this.g=t,this.b=n,Ht.colorSpaceToWorking(this,s),this}setHSL(e,t,n,s=Ht.workingColorSpace){if(e=E0(e,1),t=gt(t,0,1),n=gt(n,0,1),t===0)this.r=this.g=this.b=n;else{const a=n<=.5?n*(1+t):n+t-n*t,l=2*n-a;this.r=ev(l,a,e+1/3),this.g=ev(l,a,e),this.b=ev(l,a,e-1/3)}return Ht.colorSpaceToWorking(this,s),this}setStyle(e,t=xi){function n(a){a!==void 0&&parseFloat(a)<1&&Ne("Color: Alpha component of "+e+" will be ignored.")}let s;if(s=/^(\w+)\(([^\)]*)\)/.exec(e)){let a;const l=s[1],c=s[2];switch(l){case"rgb":case"rgba":if(a=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(c))return n(a[4]),this.setRGB(Math.min(255,parseInt(a[1],10))/255,Math.min(255,parseInt(a[2],10))/255,Math.min(255,parseInt(a[3],10))/255,t);if(a=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(c))return n(a[4]),this.setRGB(Math.min(100,parseInt(a[1],10))/100,Math.min(100,parseInt(a[2],10))/100,Math.min(100,parseInt(a[3],10))/100,t);break;case"hsl":case"hsla":if(a=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(c))return n(a[4]),this.setHSL(parseFloat(a[1])/360,parseFloat(a[2])/100,parseFloat(a[3])/100,t);break;default:Ne("Color: Unknown color model "+e)}}else if(s=/^\#([A-Fa-f\d]+)$/.exec(e)){const a=s[1],l=a.length;if(l===3)return this.setRGB(parseInt(a.charAt(0),16)/15,parseInt(a.charAt(1),16)/15,parseInt(a.charAt(2),16)/15,t);if(l===6)return this.setHex(parseInt(a,16),t);Ne("Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=xi){const n=Dw[e.toLowerCase()];return n!==void 0?this.setHex(n,t):Ne("Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=Zs(e.r),this.g=Zs(e.g),this.b=Zs(e.b),this}copyLinearToSRGB(e){return this.r=hc(e.r),this.g=hc(e.g),this.b=hc(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=xi){return Ht.workingToColorSpace(_i.copy(this),e),Math.round(gt(_i.r*255,0,255))*65536+Math.round(gt(_i.g*255,0,255))*256+Math.round(gt(_i.b*255,0,255))}getHexString(e=xi){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Ht.workingColorSpace){Ht.workingToColorSpace(_i.copy(this),t);const n=_i.r,s=_i.g,a=_i.b,l=Math.max(n,s,a),c=Math.min(n,s,a);let h,d;const f=(c+l)/2;if(c===l)h=0,d=0;else{const g=l-c;switch(d=f<=.5?g/(l+c):g/(2-l-c),l){case n:h=(s-a)/g+(s0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}},Vr=new z,Vs=new z,tv=new z,Hs=new z,Vl=new z,Hl=new z,KS=new z,nv=new z,iv=new z,rv=new z,sv=new cn,av=new cn,ov=new cn,Oa=class oc{constructor(t=new z,n=new z,s=new z){this.a=t,this.b=n,this.c=s}static getNormal(t,n,s,a){a.subVectors(s,n),Vr.subVectors(t,n),a.cross(Vr);const l=a.lengthSq();return l>0?a.multiplyScalar(1/Math.sqrt(l)):a.set(0,0,0)}static getBarycoord(t,n,s,a,l){Vr.subVectors(a,n),Vs.subVectors(s,n),tv.subVectors(t,n);const c=Vr.dot(Vr),h=Vr.dot(Vs),d=Vr.dot(tv),f=Vs.dot(Vs),g=Vs.dot(tv),v=c*f-h*h;if(v===0)return l.set(0,0,0),null;const y=1/v,_=(f*d-h*g)*y,M=(c*g-h*d)*y;return l.set(1-_-M,M,_)}static containsPoint(t,n,s,a){return this.getBarycoord(t,n,s,a,Hs)===null?!1:Hs.x>=0&&Hs.y>=0&&Hs.x+Hs.y<=1}static getInterpolation(t,n,s,a,l,c,h,d){return this.getBarycoord(t,n,s,a,Hs)===null?(d.x=0,d.y=0,"z"in d&&(d.z=0),"w"in d&&(d.w=0),null):(d.setScalar(0),d.addScaledVector(l,Hs.x),d.addScaledVector(c,Hs.y),d.addScaledVector(h,Hs.z),d)}static getInterpolatedAttribute(t,n,s,a,l,c){return sv.setScalar(0),av.setScalar(0),ov.setScalar(0),sv.fromBufferAttribute(t,n),av.fromBufferAttribute(t,s),ov.fromBufferAttribute(t,a),c.setScalar(0),c.addScaledVector(sv,l.x),c.addScaledVector(av,l.y),c.addScaledVector(ov,l.z),c}static isFrontFacing(t,n,s,a){return Vr.subVectors(s,n),Vs.subVectors(t,n),Vr.cross(Vs).dot(a)<0}set(t,n,s){return this.a.copy(t),this.b.copy(n),this.c.copy(s),this}setFromPointsAndIndices(t,n,s,a){return this.a.copy(t[n]),this.b.copy(t[s]),this.c.copy(t[a]),this}setFromAttributeAndIndices(t,n,s,a){return this.a.fromBufferAttribute(t,n),this.b.fromBufferAttribute(t,s),this.c.fromBufferAttribute(t,a),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Vr.subVectors(this.c,this.b),Vs.subVectors(this.a,this.b),Vr.cross(Vs).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return oc.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,n){return oc.getBarycoord(t,this.a,this.b,this.c,n)}getInterpolation(t,n,s,a,l){return oc.getInterpolation(t,this.a,this.b,this.c,n,s,a,l)}containsPoint(t){return oc.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return oc.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,n){const s=this.a,a=this.b,l=this.c;let c,h;Vl.subVectors(a,s),Hl.subVectors(l,s),nv.subVectors(t,s);const d=Vl.dot(nv),f=Hl.dot(nv);if(d<=0&&f<=0)return n.copy(s);iv.subVectors(t,a);const g=Vl.dot(iv),v=Hl.dot(iv);if(g>=0&&v<=g)return n.copy(a);const y=d*v-g*f;if(y<=0&&d>=0&&g<=0)return c=d/(d-g),n.copy(s).addScaledVector(Vl,c);rv.subVectors(t,l);const _=Vl.dot(rv),M=Hl.dot(rv);if(M>=0&&_<=M)return n.copy(l);const w=_*f-d*M;if(w<=0&&f>=0&&M<=0)return h=f/(f-M),n.copy(s).addScaledVector(Hl,h);const x=g*M-_*v;if(x<=0&&v-g>=0&&_-M>=0)return KS.subVectors(l,a),h=(v-g)/(v-g+(_-M)),n.copy(a).addScaledVector(KS,h);const b=1/(x+w+y);return c=w*b,h=y*b,n.copy(s).addScaledVector(Vl,c).addScaledVector(Hl,h)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}},Si=class{constructor(e=new z(1/0,1/0,1/0),t=new z(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,Hr),Hr.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(wu),Jd.subVectors(this.max,wu),Gl.subVectors(e.a,wu),Wl.subVectors(e.b,wu),Xl.subVectors(e.c,wu),Pa.subVectors(Wl,Gl),Ia.subVectors(Xl,Wl),To.subVectors(Gl,Xl);let t=[0,-Pa.z,Pa.y,0,-Ia.z,Ia.y,0,-To.z,To.y,Pa.z,0,-Pa.x,Ia.z,0,-Ia.x,To.z,0,-To.x,-Pa.y,Pa.x,0,-Ia.y,Ia.x,0,-To.y,To.x,0];return!lv(t,Gl,Wl,Xl,Jd)||(t=[1,0,0,0,1,0,0,0,1],!lv(t,Gl,Wl,Xl,Jd))?!1:(Kd.crossVectors(Pa,Ia),t=[Kd.x,Kd.y,Kd.z],lv(t,Gl,Wl,Xl,Jd))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Hr).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(Hr).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Gs[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Gs[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Gs[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Gs[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Gs[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Gs[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Gs[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Gs[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Gs),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(e){return this.min.fromArray(e.min),this.max.fromArray(e.max),this}},Gs=[new z,new z,new z,new z,new z,new z,new z,new z],Hr=new z,$d=new Si,Gl=new z,Wl=new z,Xl=new z,Pa=new z,Ia=new z,To=new z,wu=new z,Jd=new z,Kd=new z,Eo=new z;function lv(e,t,n,s,a){for(let l=0,c=e.length-3;l<=c;l+=3){Eo.fromArray(e,l);const h=a.x*Math.abs(Eo.x)+a.y*Math.abs(Eo.y)+a.z*Math.abs(Eo.z),d=t.dot(Eo),f=n.dot(Eo),g=s.dot(Eo);if(Math.max(-Math.max(d,f,g),Math.min(d,f,g))>h)return!1}return!0}var qs=lP();function lP(){const e=new ArrayBuffer(4),t=new Float32Array(e),n=new Uint32Array(e),s=new Uint32Array(512),a=new Uint32Array(512);for(let d=0;d<256;++d){const f=d-127;f<-27?(s[d]=0,s[d|256]=32768,a[d]=24,a[d|256]=24):f<-14?(s[d]=1024>>-f-14,s[d|256]=1024>>-f-14|32768,a[d]=-f-1,a[d|256]=-f-1):f<=15?(s[d]=f+15<<10,s[d|256]=f+15<<10|32768,a[d]=13,a[d|256]=13):f<128?(s[d]=31744,s[d|256]=64512,a[d]=24,a[d|256]=24):(s[d]=31744,s[d|256]=64512,a[d]=13,a[d|256]=13)}const l=new Uint32Array(2048),c=new Uint32Array(64),h=new Uint32Array(64);for(let d=1;d<1024;++d){let f=d<<13,g=0;for(;(f&8388608)===0;)f<<=1,g-=8388608;f&=-8388609,g+=947912704,l[d]=f|g}for(let d=1024;d<2048;++d)l[d]=939524096+(d-1024<<13);for(let d=1;d<31;++d)c[d]=d<<23;c[31]=1199570944,c[32]=2147483648;for(let d=33;d<63;++d)c[d]=2147483648+(d-32<<23);c[63]=3347054592;for(let d=1;d<64;++d)d!==32&&(h[d]=1024);return{floatView:t,uint32View:n,baseTable:s,shiftTable:a,mantissaTable:l,exponentTable:c,offsetTable:h}}function Yi(e){Math.abs(e)>65504&&Ne("DataUtils.toHalfFloat(): Value out of range."),e=gt(e,-65504,65504),qs.floatView[0]=e;const t=qs.uint32View[0],n=t>>23&511;return qs.baseTable[n]+((t&8388607)>>qs.shiftTable[n])}function Fu(e){const t=e>>10;return qs.uint32View[0]=qs.mantissaTable[qs.offsetTable[t]+(e&1023)]+qs.exponentTable[t],qs.floatView[0]}var cP=class{static toHalfFloat(e){return Yi(e)}static fromHalfFloat(e){return Fu(e)}},Vn=new z,Qd=new ye,uP=0,an=class extends Wr{constructor(e,t,n=!1){if(super(),Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:uP++}),this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=n,this.usage=sp,this.updateRanges=[],this.gpuType=Js,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let s=0,a=this.itemSize;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Tu.subVectors(e,this.center);const t=Tu.lengthSq();if(t>this.radius*this.radius){const n=Math.sqrt(t),s=(n-this.radius)*.5;this.center.addScaledVector(Tu,s/n),this.radius+=s}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(cv.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Tu.copy(e.center).add(cv)),this.expandByPoint(Tu.copy(e.center).sub(cv))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(e){return this.radius=e.radius,this.center.fromArray(e.center),this}},yP=0,xr=new St,uv=new tn,ql=new z,sr=new Si,Eu=new Si,ti=new z,Lt=class zw extends Wr{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:yP++}),this.uuid=or(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=null,this.indirectOffset=0,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={},this._transformed=!1}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(A2(t)?P0:R0)(t,1):this.index=t,this}setIndirect(t,n=0){return this.indirect=t,this.indirectOffset=n,this}getIndirect(){return this.indirect}getAttribute(t){return this.attributes[t]}setAttribute(t,n){return this.attributes[t]=n,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return this.attributes[t]!==void 0}addGroup(t,n,s=0){this.groups.push({start:t,count:n,materialIndex:s})}clearGroups(){this.groups=[]}setDrawRange(t,n){this.drawRange.start=t,this.drawRange.count=n}applyMatrix4(t){const n=this.attributes.position;n!==void 0&&(n.applyMatrix4(t),n.needsUpdate=!0);const s=this.attributes.normal;if(s!==void 0){const l=new Et().getNormalMatrix(t);s.applyNormalMatrix(l),s.needsUpdate=!0}const a=this.attributes.tangent;return a!==void 0&&(a.transformDirection(t),a.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this._transformed=!0,this}applyQuaternion(t){return xr.makeRotationFromQuaternion(t),this.applyMatrix4(xr),this}rotateX(t){return xr.makeRotationX(t),this.applyMatrix4(xr),this}rotateY(t){return xr.makeRotationY(t),this.applyMatrix4(xr),this}rotateZ(t){return xr.makeRotationZ(t),this.applyMatrix4(xr),this}translate(t,n,s){return xr.makeTranslation(t,n,s),this.applyMatrix4(xr),this}scale(t,n,s){return xr.makeScale(t,n,s),this.applyMatrix4(xr),this}lookAt(t){return uv.lookAt(t),uv.updateMatrix(),this.applyMatrix4(uv.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(ql).negate(),this.translate(ql.x,ql.y,ql.z),this}setFromPoints(t){const n=this.getAttribute("position");if(n===void 0){const s=[];for(let a=0,l=t.length;an.count&&Ne("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),n.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Si);const t=this.attributes.position,n=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){rt("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new z(-1/0,-1/0,-1/0),new z(1/0,1/0,1/0));return}if(t!==void 0){if(this.boundingBox.setFromBufferAttribute(t),n)for(let s=0,a=n.length;s0&&(t.userData=this.userData),this.parameters!==void 0&&this._transformed!==!0){const d=this.parameters;for(const f in d)d[f]!==void 0&&(t[f]=d[f]);return t}t.data={attributes:{}};const n=this.index;n!==null&&(t.data.index={type:n.array.constructor.name,array:Array.prototype.slice.call(n.array)});const s=this.attributes;for(const d in s){const f=s[d];t.data.attributes[d]=f.toJSON(t.data)}const a={};let l=!1;for(const d in this.morphAttributes){const f=this.morphAttributes[d],g=[];for(let v=0,y=f.length;v0&&(a[d]=g,l=!0)}l&&(t.data.morphAttributes=a,t.data.morphTargetsRelative=this.morphTargetsRelative);const c=this.groups;c.length>0&&(t.data.groups=JSON.parse(JSON.stringify(c)));const h=this.boundingSphere;return h!==null&&(t.data.boundingSphere=h.toJSON()),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const n={};this.name=t.name;const s=t.index;s!==null&&this.setIndex(s.clone());const a=t.attributes;for(const f in a){const g=a[f];this.setAttribute(f,g.clone(n))}const l=t.morphAttributes;for(const f in l){const g=[],v=l[f];for(let y=0,_=v.length;y<_;y++)g.push(v[y].clone(n));this.morphAttributes[f]=g}this.morphTargetsRelative=t.morphTargetsRelative;const c=t.groups;for(let f=0,g=c.length;f0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const n=e[t];if(n===void 0){Ne(`Material: parameter '${t}' has value of undefined.`);continue}const s=this[t];if(s===void 0){Ne(`Material: '${t}' is not a property of THREE.${this.type}.`);continue}s&&s.isColor?s.set(n):s&&s.isVector2&&n&&n.isVector2||s&&s.isEuler&&n&&n.isEuler||s&&s.isVector3&&n&&n.isVector3?s.copy(n):this[t]=n}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const n={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(n.sheenColorMap=this.sheenColorMap.toJSON(e).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(n.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid),this.dispersion!==void 0&&(n.dispersion=this.dispersion),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapRotation!==void 0&&(n.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==1&&(n.blending=this.blending),this.side!==0&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==204&&(n.blendSrc=this.blendSrc),this.blendDst!==205&&(n.blendDst=this.blendDst),this.blendEquation!==100&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==3&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==519&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==7680&&(n.stencilFail=this.stencilFail),this.stencilZFail!==7680&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==7680&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.allowOverride===!1&&(n.allowOverride=!1),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function s(a){const l=[];for(const c in a){const h=a[c];delete h.metadata,l.push(h)}return l}if(t){const a=s(e.textures),l=s(e.images);a.length>0&&(n.textures=a),l.length>0&&(n.images=l)}return n}fromJSON(e,t){if(e.uuid!==void 0&&(this.uuid=e.uuid),e.name!==void 0&&(this.name=e.name),e.color!==void 0&&this.color!==void 0&&this.color.setHex(e.color),e.roughness!==void 0&&(this.roughness=e.roughness),e.metalness!==void 0&&(this.metalness=e.metalness),e.sheen!==void 0&&(this.sheen=e.sheen),e.sheenColor!==void 0&&(this.sheenColor=new Xe().setHex(e.sheenColor)),e.sheenRoughness!==void 0&&(this.sheenRoughness=e.sheenRoughness),e.emissive!==void 0&&this.emissive!==void 0&&this.emissive.setHex(e.emissive),e.specular!==void 0&&this.specular!==void 0&&this.specular.setHex(e.specular),e.specularIntensity!==void 0&&(this.specularIntensity=e.specularIntensity),e.specularColor!==void 0&&this.specularColor!==void 0&&this.specularColor.setHex(e.specularColor),e.shininess!==void 0&&(this.shininess=e.shininess),e.clearcoat!==void 0&&(this.clearcoat=e.clearcoat),e.clearcoatRoughness!==void 0&&(this.clearcoatRoughness=e.clearcoatRoughness),e.dispersion!==void 0&&(this.dispersion=e.dispersion),e.iridescence!==void 0&&(this.iridescence=e.iridescence),e.iridescenceIOR!==void 0&&(this.iridescenceIOR=e.iridescenceIOR),e.iridescenceThicknessRange!==void 0&&(this.iridescenceThicknessRange=e.iridescenceThicknessRange),e.transmission!==void 0&&(this.transmission=e.transmission),e.thickness!==void 0&&(this.thickness=e.thickness),e.attenuationDistance!==void 0&&(this.attenuationDistance=e.attenuationDistance),e.attenuationColor!==void 0&&this.attenuationColor!==void 0&&this.attenuationColor.setHex(e.attenuationColor),e.anisotropy!==void 0&&(this.anisotropy=e.anisotropy),e.anisotropyRotation!==void 0&&(this.anisotropyRotation=e.anisotropyRotation),e.fog!==void 0&&(this.fog=e.fog),e.flatShading!==void 0&&(this.flatShading=e.flatShading),e.blending!==void 0&&(this.blending=e.blending),e.combine!==void 0&&(this.combine=e.combine),e.side!==void 0&&(this.side=e.side),e.shadowSide!==void 0&&(this.shadowSide=e.shadowSide),e.opacity!==void 0&&(this.opacity=e.opacity),e.transparent!==void 0&&(this.transparent=e.transparent),e.alphaTest!==void 0&&(this.alphaTest=e.alphaTest),e.alphaHash!==void 0&&(this.alphaHash=e.alphaHash),e.depthFunc!==void 0&&(this.depthFunc=e.depthFunc),e.depthTest!==void 0&&(this.depthTest=e.depthTest),e.depthWrite!==void 0&&(this.depthWrite=e.depthWrite),e.colorWrite!==void 0&&(this.colorWrite=e.colorWrite),e.blendSrc!==void 0&&(this.blendSrc=e.blendSrc),e.blendDst!==void 0&&(this.blendDst=e.blendDst),e.blendEquation!==void 0&&(this.blendEquation=e.blendEquation),e.blendSrcAlpha!==void 0&&(this.blendSrcAlpha=e.blendSrcAlpha),e.blendDstAlpha!==void 0&&(this.blendDstAlpha=e.blendDstAlpha),e.blendEquationAlpha!==void 0&&(this.blendEquationAlpha=e.blendEquationAlpha),e.blendColor!==void 0&&this.blendColor!==void 0&&this.blendColor.setHex(e.blendColor),e.blendAlpha!==void 0&&(this.blendAlpha=e.blendAlpha),e.stencilWriteMask!==void 0&&(this.stencilWriteMask=e.stencilWriteMask),e.stencilFunc!==void 0&&(this.stencilFunc=e.stencilFunc),e.stencilRef!==void 0&&(this.stencilRef=e.stencilRef),e.stencilFuncMask!==void 0&&(this.stencilFuncMask=e.stencilFuncMask),e.stencilFail!==void 0&&(this.stencilFail=e.stencilFail),e.stencilZFail!==void 0&&(this.stencilZFail=e.stencilZFail),e.stencilZPass!==void 0&&(this.stencilZPass=e.stencilZPass),e.stencilWrite!==void 0&&(this.stencilWrite=e.stencilWrite),e.wireframe!==void 0&&(this.wireframe=e.wireframe),e.wireframeLinewidth!==void 0&&(this.wireframeLinewidth=e.wireframeLinewidth),e.wireframeLinecap!==void 0&&(this.wireframeLinecap=e.wireframeLinecap),e.wireframeLinejoin!==void 0&&(this.wireframeLinejoin=e.wireframeLinejoin),e.rotation!==void 0&&(this.rotation=e.rotation),e.linewidth!==void 0&&(this.linewidth=e.linewidth),e.dashSize!==void 0&&(this.dashSize=e.dashSize),e.gapSize!==void 0&&(this.gapSize=e.gapSize),e.scale!==void 0&&(this.scale=e.scale),e.polygonOffset!==void 0&&(this.polygonOffset=e.polygonOffset),e.polygonOffsetFactor!==void 0&&(this.polygonOffsetFactor=e.polygonOffsetFactor),e.polygonOffsetUnits!==void 0&&(this.polygonOffsetUnits=e.polygonOffsetUnits),e.dithering!==void 0&&(this.dithering=e.dithering),e.alphaToCoverage!==void 0&&(this.alphaToCoverage=e.alphaToCoverage),e.premultipliedAlpha!==void 0&&(this.premultipliedAlpha=e.premultipliedAlpha),e.forceSinglePass!==void 0&&(this.forceSinglePass=e.forceSinglePass),e.allowOverride!==void 0&&(this.allowOverride=e.allowOverride),e.visible!==void 0&&(this.visible=e.visible),e.toneMapped!==void 0&&(this.toneMapped=e.toneMapped),e.userData!==void 0&&(this.userData=e.userData),e.vertexColors!==void 0&&(typeof e.vertexColors=="number"?this.vertexColors=e.vertexColors>0:this.vertexColors=e.vertexColors),e.size!==void 0&&(this.size=e.size),e.sizeAttenuation!==void 0&&(this.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(this.map=t[e.map]||null),e.matcap!==void 0&&(this.matcap=t[e.matcap]||null),e.alphaMap!==void 0&&(this.alphaMap=t[e.alphaMap]||null),e.bumpMap!==void 0&&(this.bumpMap=t[e.bumpMap]||null),e.bumpScale!==void 0&&(this.bumpScale=e.bumpScale),e.normalMap!==void 0&&(this.normalMap=t[e.normalMap]||null),e.normalMapType!==void 0&&(this.normalMapType=e.normalMapType),e.normalScale!==void 0){let n=e.normalScale;Array.isArray(n)===!1&&(n=[n,n]),this.normalScale=new ye().fromArray(n)}return e.displacementMap!==void 0&&(this.displacementMap=t[e.displacementMap]||null),e.displacementScale!==void 0&&(this.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(this.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(this.roughnessMap=t[e.roughnessMap]||null),e.metalnessMap!==void 0&&(this.metalnessMap=t[e.metalnessMap]||null),e.emissiveMap!==void 0&&(this.emissiveMap=t[e.emissiveMap]||null),e.emissiveIntensity!==void 0&&(this.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(this.specularMap=t[e.specularMap]||null),e.specularIntensityMap!==void 0&&(this.specularIntensityMap=t[e.specularIntensityMap]||null),e.specularColorMap!==void 0&&(this.specularColorMap=t[e.specularColorMap]||null),e.envMap!==void 0&&(this.envMap=t[e.envMap]||null),e.envMapRotation!==void 0&&this.envMapRotation.fromArray(e.envMapRotation),e.envMapIntensity!==void 0&&(this.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(this.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(this.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(this.lightMap=t[e.lightMap]||null),e.lightMapIntensity!==void 0&&(this.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(this.aoMap=t[e.aoMap]||null),e.aoMapIntensity!==void 0&&(this.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(this.gradientMap=t[e.gradientMap]||null),e.clearcoatMap!==void 0&&(this.clearcoatMap=t[e.clearcoatMap]||null),e.clearcoatRoughnessMap!==void 0&&(this.clearcoatRoughnessMap=t[e.clearcoatRoughnessMap]||null),e.clearcoatNormalMap!==void 0&&(this.clearcoatNormalMap=t[e.clearcoatNormalMap]||null),e.clearcoatNormalScale!==void 0&&(this.clearcoatNormalScale=new ye().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(this.iridescenceMap=t[e.iridescenceMap]||null),e.iridescenceThicknessMap!==void 0&&(this.iridescenceThicknessMap=t[e.iridescenceThicknessMap]||null),e.transmissionMap!==void 0&&(this.transmissionMap=t[e.transmissionMap]||null),e.thicknessMap!==void 0&&(this.thicknessMap=t[e.thicknessMap]||null),e.anisotropyMap!==void 0&&(this.anisotropyMap=t[e.anisotropyMap]||null),e.sheenColorMap!==void 0&&(this.sheenColorMap=t[e.sheenColorMap]||null),e.sheenRoughnessMap!==void 0&&(this.sheenRoughnessMap=t[e.sheenRoughnessMap]||null),this}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(t!==null){const s=t.length;n=new Array(s);for(let a=0;a!==s;++a)n[a]=t[a].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.allowOverride=e.allowOverride,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}},I0=class extends ci{constructor(e){super(),this.isSpriteMaterial=!0,this.type="SpriteMaterial",this.color=new Xe(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.rotation=e.rotation,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}},Yl,Au=new z,jl=new z,Zl=new z,$l=new ye,Cu=new ye,Vw=new St,ef=new z,Ru=new z,tf=new z,QS=new ye,hv=new ye,e1=new ye,Hw=class extends tn{constructor(e=new I0){if(super(),this.isSprite=!0,this.type="Sprite",Yl===void 0){Yl=new Lt;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),n=new lp(t,5);Yl.setIndex([0,1,2,0,2,3]),Yl.setAttribute("position",new th(n,3,0,!1)),Yl.setAttribute("uv",new th(n,2,3,!1))}this.geometry=Yl,this.material=e,this.center=new ye(.5,.5),this.count=1}raycast(e,t){e.camera===null&&rt('Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),jl.setFromMatrixScale(this.matrixWorld),Vw.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),Zl.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&jl.multiplyScalar(-Zl.z);const n=this.material.rotation;let s,a;n!==0&&(a=Math.cos(n),s=Math.sin(n));const l=this.center;nf(ef.set(-.5,-.5,0),Zl,l,jl,s,a),nf(Ru.set(.5,-.5,0),Zl,l,jl,s,a),nf(tf.set(.5,.5,0),Zl,l,jl,s,a),QS.set(0,0),hv.set(1,0),e1.set(1,1);let c=e.ray.intersectTriangle(ef,Ru,tf,!1,Au);if(c===null&&(nf(Ru.set(-.5,.5,0),Zl,l,jl,s,a),hv.set(0,1),c=e.ray.intersectTriangle(ef,tf,Ru,!1,Au),c===null))return;const h=e.ray.origin.distanceTo(Au);he.far||t.push({distance:h,point:Au.clone(),uv:Oa.getInterpolation(Au,ef,Ru,tf,QS,hv,e1,new ye),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}};function nf(e,t,n,s,a,l){$l.subVectors(e,n).addScalar(.5).multiply(s),a!==void 0?(Cu.x=l*$l.x-a*$l.y,Cu.y=a*$l.x+l*$l.y):Cu.copy($l),e.copy(t),e.x+=Cu.x,e.y+=Cu.y,e.applyMatrix4(Vw)}var rf=new z,t1=new z,Gw=class extends tn{constructor(){super(),this.isLOD=!0,this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let n=0,s=t.length;n0){let n,s;for(n=1,s=t.length;n0){rf.setFromMatrixPosition(this.matrixWorld);const n=e.ray.origin.distanceTo(rf);this.getObjectForDistance(n).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){rf.setFromMatrixPosition(e.matrixWorld),t1.setFromMatrixPosition(this.matrixWorld);const n=rf.distanceTo(t1)/e.zoom;t[0].object.visible=!0;let s,a;for(s=1,a=t.length;s=l)t[s-1].object.visible=!1,t[s].object.visible=!0;else break}for(this._currentLevel=s-1;s0)if(g=l*h-c,v=l*c-h,_=a*f,g>=0)if(v>=-_)if(v<=_){const M=1/f;g*=M,v*=M,y=g*(g+l*v+2*c)+v*(l*g+v+2*h)+d}else v=a,g=Math.max(0,-(l*v+c)),y=-g*g+v*(v+2*h)+d;else v=-a,g=Math.max(0,-(l*v+c)),y=-g*g+v*(v+2*h)+d;else v<=-_?(g=Math.max(0,-(-l*a+c)),v=g>0?-a:Math.min(Math.max(-a,-h),a),y=-g*g+v*(v+2*h)+d):v<=_?(g=0,v=Math.min(Math.max(-a,-h),a),y=v*(v+2*h)+d):(g=Math.max(0,-(l*a+c)),v=g>0?a:Math.min(Math.max(-a,-h),a),y=-g*g+v*(v+2*h)+d);else v=l>0?-a:a,g=Math.max(0,-(l*v+c)),y=-g*g+v*(v+2*h)+d;return n&&n.copy(this.origin).addScaledVector(this.direction,g),s&&s.copy(dv).addScaledVector(sf,v),y}intersectSphere(e,t){Ws.subVectors(e.center,this.origin);const n=Ws.dot(this.direction),s=Ws.dot(Ws)-n*n,a=e.radius*e.radius;if(s>a)return null;const l=Math.sqrt(a-s),c=n-l,h=n+l;return h<0?null:c<0?this.at(h,t):this.at(c,t)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){const n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,s,a,l,c,h;const d=1/this.direction.x,f=1/this.direction.y,g=1/this.direction.z,v=this.origin;return d>=0?(n=(e.min.x-v.x)*d,s=(e.max.x-v.x)*d):(n=(e.max.x-v.x)*d,s=(e.min.x-v.x)*d),f>=0?(a=(e.min.y-v.y)*f,l=(e.max.y-v.y)*f):(a=(e.max.y-v.y)*f,l=(e.min.y-v.y)*f),n>l||a>s||((a>n||isNaN(n))&&(n=a),(l=0?(c=(e.min.z-v.z)*g,h=(e.max.z-v.z)*g):(c=(e.max.z-v.z)*g,h=(e.min.z-v.z)*g),n>h||c>s)||((c>n||n!==n)&&(n=c),(h=0?n:s,t)}intersectsBox(e){return this.intersectBox(e,Ws)!==null}intersectTriangle(e,t,n,s,a){fv.subVectors(t,e),af.subVectors(n,e),pv.crossVectors(fv,af);let l=this.direction.dot(pv),c;if(l>0){if(s)return null;c=1}else if(l<0)c=-1,l=-l;else return null;La.subVectors(this.origin,e);const h=c*this.direction.dot(af.crossVectors(La,af));if(h<0)return null;const d=c*this.direction.dot(fv.cross(La));if(d<0||h+d>l)return null;const f=-c*La.dot(pv);return f<0?null:this.at(f/l,a)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Xa=class extends ci{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Xe(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Qs,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},n1=new St,Ao=new bc,of=new li,i1=new z,lf=new z,cf=new z,uf=new z,mv=new z,hf=new z,r1=new z,df=new z,Hn=class extends tn{constructor(e=new Lt,t=new Xa){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}updateMorphTargets(){const e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){const n=e[t[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=n.length;s(e.far-e.near)**2))&&(n1.copy(a).invert(),Ao.copy(e.ray).applyMatrix4(n1),!(n.boundingBox!==null&&Ao.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(e,t,Ao)))}_computeIntersections(e,t,n){let s;const a=this.geometry,l=this.material,c=a.index,h=a.attributes.position,d=a.attributes.uv,f=a.attributes.uv1,g=a.attributes.normal,v=a.groups,y=a.drawRange;if(c!==null)if(Array.isArray(l))for(let _=0,M=v.length;_n.far?null:{distance:f,point:df.clone(),object:e}}function ff(e,t,n,s,a,l,c,h,d,f){e.getVertexPosition(h,lf),e.getVertexPosition(d,cf),e.getVertexPosition(f,uf);const g=bP(e,t,n,s,lf,cf,uf,r1);if(g){const v=new z;Oa.getBarycoord(r1,lf,cf,uf,v),a&&(g.uv=Oa.getInterpolatedAttribute(a,h,d,f,v,new ye)),l&&(g.uv1=Oa.getInterpolatedAttribute(l,h,d,f,v,new ye)),c&&(g.normal=Oa.getInterpolatedAttribute(c,h,d,f,v,new z),g.normal.dot(s.direction)>0&&g.normal.multiplyScalar(-1));const y={a:h,b:d,c:f,normal:new z,materialIndex:0};Oa.getNormal(lf,cf,uf,y.normal),g.face=y,g.barycoord=v}return g}var Pu=new cn,s1=new cn,a1=new cn,xP=new cn,o1=new St,pf=new z,gv=new li,l1=new St,vv=new bc,Ww=class extends Hn{constructor(e,t){super(e,t),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=LM,this.bindMatrix=new St,this.bindMatrixInverse=new St,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const e=this.geometry;this.boundingBox===null&&(this.boundingBox=new Si),this.boundingBox.makeEmpty();const t=e.getAttribute("position");for(let n=0;n1)?null:t.copy(e.start).addScaledVector(s,l)}intersectsLine(e){const t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const n=t||TP.getNormalMatrix(e),s=this.coplanarPoint(yv).applyMatrix4(e),a=this.normal.applyMatrix3(n).normalize();return this.constant=-s.dot(a),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}},Co=new li,EP=new ye(.5,.5),gf=new z,Go=class{constructor(e=new Ua,t=new Ua,n=new Ua,s=new Ua,a=new Ua,l=new Ua){this.planes=[e,t,n,s,a,l]}set(e,t,n,s,a,l){const c=this.planes;return c[0].copy(e),c[1].copy(t),c[2].copy(n),c[3].copy(s),c[4].copy(a),c[5].copy(l),this}copy(e){const t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=Ha,n=!1){const s=this.planes,a=e.elements,l=a[0],c=a[1],h=a[2],d=a[3],f=a[4],g=a[5],v=a[6],y=a[7],_=a[8],M=a[9],w=a[10],x=a[11],b=a[12],C=a[13],R=a[14],T=a[15];if(s[0].setComponents(d-l,y-f,x-_,T-b).normalize(),s[1].setComponents(d+l,y+f,x+_,T+b).normalize(),s[2].setComponents(d+c,y+g,x+M,T+C).normalize(),s[3].setComponents(d-c,y-g,x-M,T-C).normalize(),n)s[4].setComponents(h,v,w,R).normalize(),s[5].setComponents(d-h,y-v,x-w,T-R).normalize();else if(s[4].setComponents(d-h,y-v,x-w,T-R).normalize(),t===2e3)s[5].setComponents(d+h,y+v,x+w,T+R).normalize();else if(t===2001)s[5].setComponents(h,v,w,R).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),Co.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),Co.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Co)}intersectsSprite(e){Co.center.set(0,0,0);const t=EP.distanceTo(e.center);return Co.radius=.7071067811865476+t,Co.applyMatrix4(e.matrixWorld),this.intersectsSphere(Co)}intersectsSphere(e){const t=this.planes,n=e.center,s=-e.radius;for(let a=0;a<6;a++)if(t[a].distanceToPoint(n)0?e.max.x:e.min.x,gf.y=s.normal.y>0?e.max.y:e.min.y,gf.z=s.normal.z>0?e.max.z:e.min.z,s.distanceToPoint(gf)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}},d1=new St,jw=class Zw{constructor(){this.coordinateSystem=Ha,this._frustums=[],this._count=0}setFromArrayCamera(t){const n=t.cameras,s=this._frustums;for(let a=0;a=a.length&&a.push({start:-1,count:-1,z:-1,index:-1});const c=a[this.index];l.push(c),this.index++,c.start=e,c.count=t,c.z=n,c.index=s}reset(){this.list.length=0,this.index=0}},qi=new St,PP=new Xe(1,1,1),IP=new Go,LP=new jw,vf=new Si,Ro=new li,Nu=new z,f1=new z,NP=new z,bv=new RP,bi=new Hn,yf=[];function DP(e,t,n=0){const s=t.itemSize;if(e.isInterleavedBufferAttribute||e.array.constructor!==t.array.constructor){const a=e.count;for(let l=0;l65535?new Uint32Array(s):new Uint16Array(s);t.setIndex(new an(a,1))}this._geometryInitialized=!0}}_validateGeometry(e){const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(const n in t.attributes){if(!e.hasAttribute(n))throw new Error(`THREE.BatchedMesh: Added geometry missing "${n}". All geometries must have consistent attributes.`);const s=e.getAttribute(n),a=t.getAttribute(n);if(s.itemSize!==a.itemSize||s.normalized!==a.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){const t=this._instanceInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${e}. Instance is either out of range or has been deleted.`)}validateGeometryId(e){const t=this._geometryInfo;if(e<0||e>=t.length||t[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${e}. Geometry is either out of range or has been deleted.`)}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Si);const e=this.boundingBox,t=this._instanceInfo;e.makeEmpty();for(let n=0,s=t.length;n=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");const t={visible:!0,active:!0,geometryIndex:e};let n=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(_v),n=this._availableInstanceIds.shift(),this._instanceInfo[n]=t):(n=this._instanceInfo.length,this._instanceInfo.push(t));const s=this._matricesTexture;qi.identity().toArray(s.image.data,n*16),s.needsUpdate=!0;const a=this._colorsTexture;return a&&(PP.toArray(a.image.data,n*4),a.needsUpdate=!0),this._visibilityChanged=!0,n}addGeometry(e,t=-1,n=-1){this._initializeGeometry(e),this._validateGeometry(e);const s={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},a=this._geometryInfo;s.vertexStart=this._nextVertexStart,s.reservedVertexCount=t===-1?e.getAttribute("position").count:t;const l=e.getIndex();if(l!==null&&(s.indexStart=this._nextIndexStart,s.reservedIndexCount=n===-1?l.count:n),s.indexStart!==-1&&s.indexStart+s.reservedIndexCount>this._maxIndexCount||s.vertexStart+s.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let c;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(_v),c=this._availableGeometryIds.shift(),a[c]=s):(c=this._geometryCount,this._geometryCount++,a.push(s)),this.setGeometryAt(c,e),this._nextIndexStart=s.indexStart+s.reservedIndexCount,this._nextVertexStart=s.vertexStart+s.reservedVertexCount,c}setGeometryAt(e,t){if(e>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const n=this.geometry,s=n.getIndex()!==null,a=n.getIndex(),l=t.getIndex(),c=this._geometryInfo[e];if(s&&l.count>c.reservedIndexCount||t.attributes.position.count>c.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");const h=c.vertexStart,d=c.reservedVertexCount;c.vertexCount=t.getAttribute("position").count;for(const f in n.attributes){const g=t.getAttribute(f),v=n.getAttribute(f);DP(g,v,h);const y=g.itemSize;for(let _=g.count,M=d;_=t.length||t[e].active===!1)return this;const n=this._instanceInfo;for(let s=0,a=n.length;sc).sort((l,c)=>n[l].vertexStart-n[c].vertexStart),a=this.geometry;for(let l=0,c=n.length;l=this._geometryCount)return null;const n=this.geometry,s=this._geometryInfo[e];if(s.boundingBox===null){const a=new Si,l=n.index,c=n.attributes.position;for(let h=s.start,d=s.start+s.count;h=this._geometryCount)return null;const n=this.geometry,s=this._geometryInfo[e];if(s.boundingSphere===null){const a=new li;this.getBoundingBoxAt(e,vf),vf.getCenter(a.center);const l=n.index,c=n.attributes.position;let h=0;for(let d=s.start,f=s.start+s.count;dl.active);if(Math.max(...n.map(l=>l.vertexStart+l.reservedVertexCount))>e)throw new Error(`THREE.BatchedMesh: Geometry vertex values are being used outside the range ${t}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...n.map(l=>l.indexStart+l.reservedIndexCount))>t)throw new Error(`THREE.BatchedMesh: Geometry index values are being used outside the range ${t}. Cannot shrink further.`);const s=this.geometry;s.dispose(),this._maxVertexCount=e,this._maxIndexCount=t,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new Lt,this._initializeGeometry(s));const a=this.geometry;s.index&&Po(s.index.array,a.index.array);for(const l in s.attributes)Po(s.attributes[l].array,a.attributes[l].array)}raycast(e,t){const n=this._instanceInfo,s=this._geometryInfo,a=this.matrixWorld,l=this.geometry;bi.material=this.material,bi.geometry.index=l.index,bi.geometry.attributes=l.attributes,bi.geometry.boundingBox===null&&(bi.geometry.boundingBox=new Si),bi.geometry.boundingSphere===null&&(bi.geometry.boundingSphere=new li);for(let c=0,h=n.length;c({...t,boundingBox:t.boundingBox!==null?t.boundingBox.clone():null,boundingSphere:t.boundingSphere!==null?t.boundingSphere.clone():null})),this._instanceInfo=e._instanceInfo.map(t=>({...t})),this._availableInstanceIds=e._availableInstanceIds.slice(),this._availableGeometryIds=e._availableGeometryIds.slice(),this._nextIndexStart=e._nextIndexStart,this._nextVertexStart=e._nextVertexStart,this._geometryCount=e._geometryCount,this._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._indirectTexture=e._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=e._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(e,t,n,s,a){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const l=s.getIndex();let c=l===null?1:l.array.BYTES_PER_ELEMENT,h=1;a.wireframe&&(h=2,c=s.attributes.position.count>65535?4:2);const d=this._instanceInfo,f=this._multiDrawStarts,g=this._multiDrawCounts,v=this._geometryInfo,y=this.perObjectFrustumCulled,_=this._indirectTexture,M=_.image.data,w=n.isArrayCamera?LP:IP;y&&(n.isArrayCamera?w.setFromArrayCamera(n):(qi.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse).multiply(this.matrixWorld),w.setFromProjectionMatrix(qi,n.coordinateSystem,n.reversedDepth)));let x=0;if(this.sortObjects){qi.copy(this.matrixWorld).invert(),Nu.setFromMatrixPosition(n.matrixWorld).applyMatrix4(qi),f1.set(0,0,-1).transformDirection(n.matrixWorld).transformDirection(qi);for(let R=0,T=d.length;R0){const n=e[t[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=n.length;ss)return;xv.applyMatrix4(e.matrixWorld);const d=t.ray.origin.distanceTo(xv);if(!(dt.far))return{distance:d,point:m1.clone().applyMatrix4(e.matrixWorld),index:c,face:null,faceIndex:null,barycoord:null,object:e}}var g1=new z,v1=new z,ps=class extends Wa{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.index===null){const t=e.attributes.position,n=[];for(let s=0,a=t.count;s0){const n=e[t[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=n.length;sa.far)return;l.push({distance:f,distanceToRay:Math.sqrt(h),point:d,index:t,face:null,faceIndex:null,barycoord:null,object:c})}}var Qw=class extends Zn{constructor(e,t,n,s,a=xn,l=xn,c,h,d){super(e,t,n,s,a,l,c,h,d),this.isVideoTexture=!0,this.generateMipmaps=!1,this._requestVideoFrameCallbackId=0;const f=this;function g(){f.needsUpdate=!0,f._requestVideoFrameCallbackId=e.requestVideoFrameCallback(g)}"requestVideoFrameCallback"in e&&(this._requestVideoFrameCallbackId=e.requestVideoFrameCallback(g))}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;!("requestVideoFrameCallback"in e)&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}dispose(){this._requestVideoFrameCallbackId!==0&&(this.source.data.cancelVideoFrameCallback(this._requestVideoFrameCallbackId),this._requestVideoFrameCallbackId=0),super.dispose()}},UP=class extends Qw{constructor(e,t,n,s,a,l,c,h){super({},e,t,n,s,a,l,c,h),this.isVideoFrameTexture=!0}update(){}clone(){return new this.constructor().copy(this)}setFrame(e){this.image=e,this.needsUpdate=!0}},OP=class extends Zn{constructor(e,t){super({width:e,height:t}),this.isFramebufferTexture=!0,this.magFilter=qn,this.minFilter=qn,this.generateMipmaps=!1,this.needsUpdate=!0}},cp=class extends Zn{constructor(e,t,n,s,a,l,c,h,d,f,g,v){super(null,l,c,h,d,f,s,a,g,v),this.isCompressedTexture=!0,this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}},FP=class extends cp{constructor(e,t,n,s,a,l){super(e,t,n,a,l),this.isCompressedArrayTexture=!0,this.image.depth=s,this.wrapR=ji,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}},BP=class extends cp{constructor(e,t,n){super(void 0,e[0].width,e[0].height,t,n,301),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}},ch=class extends Zn{constructor(e=[],t=301,n,s,a,l,c,h,d,f){super(e,t,n,s,a,l,c,h,d,f),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},eT=class extends Zn{constructor(e,t,n,s,a,l,c,h,d){super(e,t,n,s,a,l,c,h,d),this.isCanvasTexture=!0,this.needsUpdate=!0}},zP=class extends Zn{constructor(e,t,n,s,a,l,c,h,d){super(e,t,n,s,a,l,c,h,d),this.isHTMLTexture=!0,this.generateMipmaps=!1,this.needsUpdate=!0;const f=e?e.parentNode:null;f!==null&&"requestPaint"in f&&(f.onpaint=()=>{this.needsUpdate=!0},f.requestPaint())}dispose(){const e=this.image?this.image.parentNode:null;e!==null&&"onpaint"in e&&(e.onpaint=null),super.dispose()}},Wo=class extends Zn{constructor(e,t,n=$s,s,a,l,c=qn,h=qn,d,f=dc,g=1){if(f!==1026&&f!==1027)throw new Error("THREE.DepthTexture: format must be either THREE.DepthFormat or THREE.DepthStencilFormat");super({width:e,height:t,depth:g},s,a,l,c,h,f,n,d),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new Ba(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){const t=super.toJSON(e);return this.compareFunction!==null&&(t.compareFunction=this.compareFunction),t}},tT=class extends Wo{constructor(e,t=$s,n=301,s,a,l=qn,c=qn,h,d=dc){const f={width:e,height:e,depth:1},g=[f,f,f,f,f,f];super(e,e,t,n,s,a,l,c,h,d),this.image=g,this.isCubeDepthTexture=!0,this.isCubeTexture=!0}get images(){return this.image}set images(e){this.image=e}},D0=class extends Zn{constructor(e=null){super(),this.sourceTexture=e,this.isExternalTexture=!0}copy(e){return super.copy(e),this.sourceTexture=e.sourceTexture,this}},uh=class nT extends Lt{constructor(t=1,n=1,s=1,a=1,l=1,c=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:n,depth:s,widthSegments:a,heightSegments:l,depthSegments:c};const h=this;a=Math.floor(a),l=Math.floor(l),c=Math.floor(c);const d=[],f=[],g=[],v=[];let y=0,_=0;M("z","y","x",-1,-1,s,n,t,c,l,0),M("z","y","x",1,-1,s,n,-t,c,l,1),M("x","z","y",1,1,t,s,n,a,c,2),M("x","z","y",1,-1,t,s,-n,a,c,3),M("x","y","z",1,-1,t,n,s,a,l,4),M("x","y","z",-1,-1,t,n,-s,a,l,5),this.setIndex(d),this.setAttribute("position",new Ke(f,3)),this.setAttribute("normal",new Ke(g,3)),this.setAttribute("uv",new Ke(v,2));function M(w,x,b,C,R,T,L,D,O,A,P){const k=T/O,F=L/A,q=T/2,X=L/2,K=D/2,ee=O+1,ae=A+1;let Q=0,me=0;const _e=new z;for(let ge=0;ge0?1:-1,g.push(_e.x,_e.y,_e.z),v.push(Ie/O),v.push(1-ge/A),Q+=1}for(let ge=0;ge0){const P=(C-1)*w;for(let k=0;k0&&R(!0),n>0&&R(!1)),this.setIndex(g),this.setAttribute("position",new Ke(v,3)),this.setAttribute("normal",new Ke(y,3)),this.setAttribute("uv",new Ke(_,2));function C(){const T=new z,L=new z;let D=0;const O=(n-t)/s;for(let A=0;A<=l;A++){const P=[],k=A/l,F=k*(n-t)+t;for(let q=0;q<=a;q++){const X=q/a,K=X*d+h,ee=Math.sin(K),ae=Math.cos(K);L.x=F*ee,L.y=-k*s+x,L.z=F*ae,v.push(L.x,L.y,L.z),T.set(ee,O,ae).normalize(),y.push(T.x,T.y,T.z),_.push(X,1-k),P.push(M++)}w.push(P)}for(let A=0;A0||P!==0)&&(g.push(k,F,X),D+=3),(n>0||P!==l-1)&&(g.push(F,q,X),D+=3)}f.addGroup(b,D,0),b+=D}function R(T){const L=M,D=new ye,O=new z;let A=0;const P=T===!0?t:n,k=T===!0?1:-1;for(let q=1;q<=a;q++)v.push(0,x*k,0),y.push(0,k,0),_.push(.5,.5),M++;const F=M;for(let q=0;q<=a;q++){const X=q/a*d+h,K=Math.cos(X),ee=Math.sin(X);O.x=P*ee,O.y=x*k,O.z=P*K,v.push(O.x,O.y,O.z),y.push(0,k,0),D.x=K*.5+.5,D.y=ee*.5*k+.5,_.push(D.x,D.y),M++}for(let q=0;q.9&&Math.min(R,T,L)<.1&&(R<.2&&(c[C+0]+=1),T<.2&&(c[C+2]+=1),L<.2&&(c[C+4]+=1))}}function y(C){l.push(C.x,C.y,C.z)}function _(C,R){const T=C*3;R.x=t[T+0],R.y=t[T+1],R.z=t[T+2]}function M(){const C=new z,R=new z,T=new z,L=new z,D=new ye,O=new ye,A=new ye;for(let P=0,k=0;P0)h=s-1;else{h=s;break}if(s=h,n[s]===l)return s/(a-1);const f=n[s],g=n[s+1]-f,v=(l-f)/g;return(s+v)/(a-1)}getTangent(e,t){let s=e-1e-4,a=e+1e-4;s<0&&(s=0),a>1&&(a=1);const l=this.getPoint(s),c=this.getPoint(a),h=t||(l.isVector2?new ye:new z);return h.copy(c).sub(l).normalize(),h}getTangentAt(e,t){const n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t=!1){const n=new z,s=[],a=[],l=[],c=new z,h=new St;for(let y=0;y<=e;y++){const _=y/e;s[y]=this.getTangentAt(_,new z)}a[0]=new z,l[0]=new z;let d=Number.MAX_VALUE;const f=Math.abs(s[0].x),g=Math.abs(s[0].y),v=Math.abs(s[0].z);f<=d&&(d=f,n.set(1,0,0)),g<=d&&(d=g,n.set(0,1,0)),v<=d&&n.set(0,0,1),c.crossVectors(s[0],n).normalize(),a[0].crossVectors(s[0],c),l[0].crossVectors(s[0],a[0]);for(let y=1;y<=e;y++){if(a[y]=a[y-1].clone(),l[y]=l[y-1].clone(),c.crossVectors(s[y-1],s[y]),c.length()>Number.EPSILON){c.normalize();const _=Math.acos(gt(s[y-1].dot(s[y]),-1,1));a[y].applyMatrix4(h.makeRotationAxis(c,_))}l[y].crossVectors(s[y],a[y])}if(t===!0){let y=Math.acos(gt(a[0].dot(a[e]),-1,1));y/=e,s[0].dot(c.crossVectors(a[0],a[e]))>0&&(y=-y);for(let _=1;_<=e;_++)a[_].applyMatrix4(h.makeRotationAxis(s[_],y*_)),l[_].crossVectors(s[_],a[_])}return{tangents:s,normals:a,binormals:l}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.7,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},up=class extends Xr{constructor(e=0,t=0,n=1,s=1,a=0,l=Math.PI*2,c=!1,h=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=s,this.aStartAngle=a,this.aEndAngle=l,this.aClockwise=c,this.aRotation=h}getPoint(e,t=new ye){const n=t,s=Math.PI*2;let a=this.aEndAngle-this.aStartAngle;const l=Math.abs(a)s;)a-=s;a0?0:(Math.floor(Math.abs(c)/a)+1)*a:h===0&&c===a-1&&(c=a-2,h=1);let d,f;this.closed||c>0?d=s[(c-1)%a]:(x1.subVectors(s[0],s[1]).add(s[0]),d=x1);const g=s[c%a],v=s[(c+1)%a];if(this.closed||c+2s.length-2?s.length-1:l+1],g=s[l>s.length-3?s.length-1:l+2];return n.set(S1(c,h.x,d.x,f.x,g.x),S1(c,h.y,d.y,f.y,g.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){const l=s[a]-n,c=this.curves[a],h=c.getLength(),d=h===0?0:1-l/h;return c.getPointAt(d,t)}a++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let n=0,s=this.curves.length;n1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){const g=d.getPoint(0);g.equals(this.currentPoint)||this.lineTo(g.x,g.y)}this.curves.push(d);const f=d.getPoint(1);return this.currentPoint.copy(f),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}},hh=class extends nh{constructor(e){super(e),this.uuid=or(),this.type="Shape",this.holes=[]}getPointsHoles(e){const t=[];for(let n=0,s=this.holes.length;n80*n){h=e[0],d=e[1];let g=h,v=d;for(let y=n;yg&&(g=_),M>v&&(v=M)}f=Math.max(g-h,v-d),f=f!==0?32767/f:0}return ih(l,c,n,h,d,f,0),c}function yT(e,t,n,s,a){let l;if(a===c3(e,t,n,s)>0)for(let c=t;c=t;c-=s)l=M1(c/s|0,e[c],e[c+1],l);return l&&gc(l,l.next)&&(sh(l),l=l.next),l}function Xo(e,t){if(!e)return e;t||(t=e);let n=e,s;do if(s=!1,!n.steiner&&(gc(n,n.next)||En(n.prev,n,n.next)===0)){if(sh(n),n=t=n.prev,n===n.next)break;s=!0}else n=n.next;while(s||n!==t);return t}function ih(e,t,n,s,a,l,c){if(!e)return;!c&&l&&i3(e,s,a,l);let h=e;for(;e.prev!==e.next;){const d=e.prev,f=e.next;if(l?ZP(e,s,a,l):jP(e)){t.push(d.i,e.i,f.i),sh(e),e=f.next,h=f.next;continue}if(e=f,e===h){c?c===1?(e=$P(Xo(e),t),ih(e,t,n,s,a,l,2)):c===2&&JP(e,t,n,s,a,l):ih(Xo(e),t,n,s,a,l,1);break}}}function jP(e){const t=e.prev,n=e,s=e.next;if(En(t,n,s)>=0)return!1;const a=t.x,l=n.x,c=s.x,h=t.y,d=n.y,f=s.y,g=Math.min(a,l,c),v=Math.min(h,d,f),y=Math.max(a,l,c),_=Math.max(h,d,f);let M=s.next;for(;M!==t;){if(M.x>=g&&M.x<=y&&M.y>=v&&M.y<=_&&Bu(a,h,l,d,c,f,M.x,M.y)&&En(M.prev,M,M.next)>=0)return!1;M=M.next}return!0}function ZP(e,t,n,s){const a=e.prev,l=e,c=e.next;if(En(a,l,c)>=0)return!1;const h=a.x,d=l.x,f=c.x,g=a.y,v=l.y,y=c.y,_=Math.min(h,d,f),M=Math.min(g,v,y),w=Math.max(h,d,f),x=Math.max(g,v,y),b=$v(_,M,t,n,s),C=$v(w,x,t,n,s);let R=e.prevZ,T=e.nextZ;for(;R&&R.z>=b&&T&&T.z<=C;){if(R.x>=_&&R.x<=w&&R.y>=M&&R.y<=x&&R!==a&&R!==c&&Bu(h,g,d,v,f,y,R.x,R.y)&&En(R.prev,R,R.next)>=0||(R=R.prevZ,T.x>=_&&T.x<=w&&T.y>=M&&T.y<=x&&T!==a&&T!==c&&Bu(h,g,d,v,f,y,T.x,T.y)&&En(T.prev,T,T.next)>=0))return!1;T=T.nextZ}for(;R&&R.z>=b;){if(R.x>=_&&R.x<=w&&R.y>=M&&R.y<=x&&R!==a&&R!==c&&Bu(h,g,d,v,f,y,R.x,R.y)&&En(R.prev,R,R.next)>=0)return!1;R=R.prevZ}for(;T&&T.z<=C;){if(T.x>=_&&T.x<=w&&T.y>=M&&T.y<=x&&T!==a&&T!==c&&Bu(h,g,d,v,f,y,T.x,T.y)&&En(T.prev,T,T.next)>=0)return!1;T=T.nextZ}return!0}function $P(e,t){let n=e;do{const s=n.prev,a=n.next.next;!gc(s,a)&&bT(s,n,n.next,a)&&rh(s,a)&&rh(a,s)&&(t.push(s.i,n.i,a.i),sh(n),sh(n.next),n=e=a),n=n.next}while(n!==e);return Xo(n)}function JP(e,t,n,s,a,l){let c=e;do{let h=c.next.next;for(;h!==c.prev;){if(c.i!==h.i&&a3(c,h)){let d=xT(c,h);c=Xo(c,c.next),d=Xo(d,d.next),ih(c,t,n,s,a,l,0),ih(d,t,n,s,a,l,0);return}h=h.next}c=c.next}while(c!==e)}function KP(e,t,n,s){const a=[];for(let l=0,c=t.length;l=n.next.y&&n.next.y!==n.y){const v=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(v<=s&&v>l&&(l=v,c=n.x=n.x&&n.x>=d&&s!==n.x&&_T(ac.x||n.x===c.x&&n3(c,n)))&&(c=n,g=v)}n=n.next}while(n!==h);return c}function n3(e,t){return En(e.prev,e,t.prev)<0&&En(t.next,e,e.next)<0}function i3(e,t,n,s){let a=e;do a.z===0&&(a.z=$v(a.x,a.y,t,n,s)),a.prevZ=a.prev,a.nextZ=a.next,a=a.next;while(a!==e);a.prevZ.nextZ=null,a.prevZ=null,r3(a)}function r3(e){let t,n=1;do{let s=e,a;e=null;let l=null;for(t=0;s;){t++;let c=s,h=0;for(let f=0;f0||d>0&&c;)h!==0&&(d===0||!c||s.z<=c.z)?(a=s,s=s.nextZ,h--):(a=c,c=c.nextZ,d--),l?l.nextZ=a:e=a,a.prevZ=l,l=a;s=c}l.nextZ=null,n*=2}while(t>1);return e}function $v(e,t,n,s,a){return e=(e-n)*a|0,t=(t-s)*a|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function s3(e){let t=e,n=e;do(t.x=(e-c)*(l-h)&&(e-c)*(s-h)>=(n-c)*(t-h)&&(n-c)*(l-h)>=(a-c)*(s-h)}function Bu(e,t,n,s,a,l,c,h){return!(e===c&&t===h)&&_T(e,t,n,s,a,l,c,h)}function a3(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!o3(e,t)&&(rh(e,t)&&rh(t,e)&&l3(e,t)&&(En(e.prev,e,t.prev)||En(e,t.prev,t))||gc(e,t)&&En(e.prev,e,e.next)>0&&En(t.prev,t,t.next)>0)}function En(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function gc(e,t){return e.x===t.x&&e.y===t.y}function bT(e,t,n,s){const a=Af(En(e,t,n)),l=Af(En(e,t,s)),c=Af(En(n,s,e)),h=Af(En(n,s,t));return!!(a!==l&&c!==h||a===0&&Ef(e,n,t)||l===0&&Ef(e,s,t)||c===0&&Ef(n,e,s)||h===0&&Ef(n,t,s))}function Ef(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function Af(e){return e>0?1:e<0?-1:0}function o3(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&bT(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function rh(e,t){return En(e.prev,e,e.next)<0?En(e,t,e.next)>=0&&En(e,e.prev,t)>=0:En(e,t,e.prev)<0||En(e,e.next,t)<0}function l3(e,t){let n=e,s=!1;const a=(e.x+t.x)/2,l=(e.y+t.y)/2;do n.y>l!=n.next.y>l&&n.next.y!==n.y&&a<(n.next.x-n.x)*(l-n.y)/(n.next.y-n.y)+n.x&&(s=!s),n=n.next;while(n!==e);return s}function xT(e,t){const n=Jv(e.i,e.x,e.y),s=Jv(t.i,t.x,t.y),a=e.next,l=t.prev;return e.next=t,t.prev=e,n.next=a,a.prev=n,s.next=n,n.prev=s,l.next=s,s.prev=l,s}function M1(e,t,n,s){const a=Jv(e,t,n);return s?(a.next=s.next,a.prev=s,s.next.prev=a,s.next=a):(a.prev=a,a.next=a),a}function sh(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function Jv(e,t,n){return{i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function c3(e,t,n,s){let a=0;for(let l=t,c=n-s;l2&&e[t-1].equals(e[0])&&e.pop()}function T1(e,t){for(let n=0;nNumber.EPSILON){const Ut=Math.sqrt(un),U=Math.sqrt(bt*bt+V*V),I=Ee.x-vt/Ut,W=Ee.y+tt/Ut,re=Ae.x-V/U,ve=Ae.y+bt/U,Pe=((re-I)*V-(ve-W)*bt)/(tt*V-vt*bt);Ve=I+tt*Pe-pe.x,Oe=W+vt*Pe-pe.y;const Ue=Ve*Ve+Oe*Oe;if(Ue<=2)return new ye(Ve,Oe);qe=Math.sqrt(Ue/2)}else{let Ut=!1;tt>Number.EPSILON?bt>Number.EPSILON&&(Ut=!0):tt<-Number.EPSILON?bt<-Number.EPSILON&&(Ut=!0):Math.sign(vt)===Math.sign(V)&&(Ut=!0),Ut?(Ve=-vt,Oe=tt,qe=Math.sqrt(un)):(Ve=tt,Oe=vt,qe=Math.sqrt(un/2))}return new ye(Ve/qe,Oe/qe)}const me=[];for(let pe=0,Ee=K.length,Ae=Ee-1,Ve=pe+1;pe=0;pe--){const Ee=pe/x,Ae=_*Math.cos(Ee*Math.PI/2),Ve=M*Math.sin(Ee*Math.PI/2)+w;for(let Oe=0,qe=K.length;Oe=0;){const Ve=Ae;let Oe=Ae-1;Oe<0&&(Oe=pe.length-1);for(let qe=0,tt=g+x*2;qe0)&&_.push(R,T,D),(b!==s-1||d0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const n={};for(const s in this.extensions)this.extensions[s]===!0&&(n[s]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}fromJSON(e,t){if(super.fromJSON(e,t),e.uniforms!==void 0)for(const n in e.uniforms){const s=e.uniforms[n];switch(this.uniforms[n]={},s.type){case"t":this.uniforms[n].value=t[s.value]||null;break;case"c":this.uniforms[n].value=new Xe().setHex(s.value);break;case"v2":this.uniforms[n].value=new ye().fromArray(s.value);break;case"v3":this.uniforms[n].value=new z().fromArray(s.value);break;case"v4":this.uniforms[n].value=new cn().fromArray(s.value);break;case"m3":this.uniforms[n].value=new Et().fromArray(s.value);break;case"m4":this.uniforms[n].value=new St().fromArray(s.value);break;default:this.uniforms[n].value=s.value}}if(e.defines!==void 0&&(this.defines=e.defines),e.vertexShader!==void 0&&(this.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(this.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(this.glslVersion=e.glslVersion),e.extensions!==void 0)for(const n in e.extensions)this.extensions[n]=e.extensions[n];return e.lights!==void 0&&(this.lights=e.lights),e.clipping!==void 0&&(this.clipping=e.clipping),this}},X0=class extends cr{constructor(e){super(e),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}},q0=class extends ci{constructor(e){super(),this.isMeshStandardMaterial=!0,this.type="MeshStandardMaterial",this.defines={STANDARD:""},this.color=new Xe(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Xe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Qs,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.envMapIntensity=e.envMapIntensity,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},jT=class extends q0{constructor(e){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new ye(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return gt(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Xe(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new Xe(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Xe(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._dispersion=0,this._iridescence=0,this._sheen=0,this._transmission=0,this.setValues(e)}get anisotropy(){return this._anisotropy}set anisotropy(e){this._anisotropy>0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}},ZT=class extends ci{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Xe(16777215),this.specular=new Xe(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Xe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Qs,this.combine=0,this.reflectivity=1,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},$T=class extends ci{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Xe(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Xe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},JT=class extends ci{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}},KT=class extends ci{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Xe(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Xe(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Qs,this.combine=0,this.reflectivity=1,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.envMapIntensity=e.envMapIntensity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},Y0=class extends ci{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=ww,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},j0=class extends ci{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},QT=class extends ci{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Xe(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new ye(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this.fog=e.fog,this}},eE=class extends zi{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}};function ko(e,t){return!e||e.constructor===t?e:typeof t.BYTES_PER_ELEMENT=="number"?new t(e):Array.prototype.slice.call(e)}function tE(e){function t(a,l){return e[a]-e[l]}const n=e.length,s=new Array(n);for(let a=0;a!==n;++a)s[a]=a;return s.sort(t),s}function Kv(e,t,n){const s=e.length,a=new e.constructor(s);for(let l=0,c=0;c!==s;++l){const h=n[l]*t;for(let d=0;d!==t;++d)a[c++]=e[h+d]}return a}function nE(e,t,n,s){let a=1,l=e[0];for(;l!==void 0&&l[s]===void 0;)l=e[a++];if(l===void 0)return;let c=l[s];if(c!==void 0)if(Array.isArray(c))do c=l[s],c!==void 0&&(t.push(l.time),n.push(...c)),l=e[a++];while(l!==void 0);else if(c.toArray!==void 0)do c=l[s],c!==void 0&&(t.push(l.time),c.toArray(n,n.length)),l=e[a++];while(l!==void 0);else do c=l[s],c!==void 0&&(t.push(l.time),n.push(c)),l=e[a++];while(l!==void 0)}function v3(e,t,n,s,a=30){const l=e.clone();l.name=t;const c=[];for(let d=0;d=s)){v.push(f.times[_]);for(let w=0;wl.tracks[d].times[0]&&(h=l.tracks[d].times[0]);for(let d=0;d=h.times[M]){const b=M*v+g,C=b+v-g;w=h.values.slice(b,C)}else{const b=h.createInterpolant(),C=g,R=v-g;b.evaluate(l),w=b.resultBuffer.slice(C,R)}d==="quaternion"&&new Bi().fromArray(w).normalize().conjugate().toArray(w);const x=f.times.length;for(let b=0;b=a)){const c=t[1];e=a)break t}l=n,n=0;break n}break e}for(;n>>1;et;)--l;if(++l,a!==0||l!==s){a>=l&&(l=Math.max(l,1),a=l-1);const c=this.getValueSize();this.times=n.slice(a,l),this.values=this.values.slice(a*c,l*c)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(rt("KeyframeTrack: Invalid value size in track.",this),e=!1);const n=this.times,s=this.values,a=n.length;a===0&&(rt("KeyframeTrack: Track is empty.",this),e=!1);let l=null;for(let c=0;c!==a;c++){const h=n[c];if(typeof h=="number"&&isNaN(h)){rt("KeyframeTrack: Time is not a valid number.",this,c,h),e=!1;break}if(l!==null&&l>h){rt("KeyframeTrack: Out of order keys.",this,c,h,l),e=!1;break}l=h}if(s!==void 0&&Tw(s))for(let c=0,h=s.length;c!==h;++c){const d=s[c];if(isNaN(d)){rt("KeyframeTrack: Value is not a valid number.",this,c,d),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),n=this.getValueSize(),s=this.getInterpolation()===kf,a=e.length-1;let l=1;for(let c=1;c0){e[l]=e[a];for(let c=a*n,h=l*n,d=0;d!==n;++d)t[h+d]=t[c+d];++l}return l!==e.length?(this.times=e.slice(0,l),this.values=t.slice(0,l*n)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),n=this.constructor,s=new n(this.name,e,t);return s.createInterpolant=this.createInterpolant,s}};Mr.prototype.ValueTypeName="";Mr.prototype.TimeBufferType=Float32Array;Mr.prototype.ValueBufferType=Float32Array;Mr.prototype.DefaultInterpolation=Yf;var Yo=class extends Mr{constructor(e,t,n){super(e,t,n)}};Yo.prototype.ValueTypeName="bool";Yo.prototype.ValueBufferType=Array;Yo.prototype.DefaultInterpolation=ju;Yo.prototype.InterpolantFactoryMethodLinear=void 0;Yo.prototype.InterpolantFactoryMethodSmooth=void 0;var $0=class extends Mr{constructor(e,t,n,s){super(e,t,n,s)}};$0.prototype.ValueTypeName="color";var dp=class extends Mr{constructor(e,t,n,s){super(e,t,n,s)}};dp.prototype.ValueTypeName="number";var aE=class extends Sc{constructor(e,t,n,s){super(e,t,n,s)}interpolate_(e,t,n,s){const a=this.resultBuffer,l=this.sampleValues,c=this.valueSize,h=(n-t)/(s-t);let d=e*c;for(let f=d+c;d!==f;d+=4)Bi.slerpFlat(a,0,l,d-c,l,d,h);return a}},fp=class extends Mr{constructor(e,t,n,s){super(e,t,n,s)}InterpolantFactoryMethodLinear(e){return new aE(this.times,this.values,this.getValueSize(),e)}};fp.prototype.ValueTypeName="quaternion";fp.prototype.InterpolantFactoryMethodSmooth=void 0;var jo=class extends Mr{constructor(e,t,n){super(e,t,n)}};jo.prototype.ValueTypeName="string";jo.prototype.ValueBufferType=Array;jo.prototype.DefaultInterpolation=ju;jo.prototype.InterpolantFactoryMethodLinear=void 0;jo.prototype.InterpolantFactoryMethodSmooth=void 0;var J0=class extends Mr{constructor(e,t,n,s){super(e,t,n,s)}};J0.prototype.ValueTypeName="vector";var ah=class{constructor(e="",t=-1,n=[],s=rp){this.name=e,this.tracks=n,this.duration=t,this.blendMode=s,this.uuid=or(),this.userData={},this.duration<0&&this.resetDuration()}static parse(e){const t=[],n=e.tracks,s=1/(e.fps||1);for(let l=0,c=n.length;l!==c;++l)t.push(x3(n[l]).scale(s));const a=new this(e.name,e.duration,t,e.blendMode);return a.uuid=e.uuid,a.userData=JSON.parse(e.userData||"{}"),a}static toJSON(e){const t=[],n=e.tracks,s={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode,userData:JSON.stringify(e.userData)};for(let a=0,l=n.length;a!==l;++a)t.push(Mr.toJSON(n[a]));return s}static CreateFromMorphTargetSequence(e,t,n,s){const a=t.length,l=[];for(let c=0;c1){const g=f[1];let v=s[g];v||(s[g]=v=[]),v.push(d)}}const l=[];for(const c in s)l.push(this.CreateFromMorphTargetSequence(c,s[c],t,n));return l}resetDuration(){const e=this.tracks;let t=0;for(let n=0,s=e.length;n!==s;++n){const a=this.tracks[n];t=Math.max(t,a.times[a.times.length-1])}return this.duration=t,this}trim(){for(let e=0;e{t&&t(a),this.manager.itemEnd(e)},0);return}if(Xs[e]!==void 0){Xs[e].push({onLoad:t,onProgress:n,onError:s});return}Xs[e]=[],Xs[e].push({onLoad:t,onProgress:n,onError:s});const l=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal}),c=this.mimeType,h=this.responseType;fetch(l).then(d=>{if(d.status===200||d.status===0){if(d.status===0&&Ne("FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||d.body===void 0||d.body.getReader===void 0)return d;const f=Xs[e],g=d.body.getReader(),v=d.headers.get("X-File-Size")||d.headers.get("Content-Length"),y=v?parseInt(v):0,_=y!==0;let M=0;const w=new ReadableStream({start(x){b();function b(){g.read().then(({done:C,value:R})=>{if(C)x.close();else{M+=R.byteLength;const T=new ProgressEvent("progress",{lengthComputable:_,loaded:M,total:y});for(let L=0,D=f.length;L{x.error(C)})}}});return new Response(w)}else throw new S3(`fetch for "${d.url}" responded with ${d.status}: ${d.statusText}`,d)}).then(d=>{switch(h){case"arraybuffer":return d.arrayBuffer();case"blob":return d.blob();case"document":return d.text().then(f=>new DOMParser().parseFromString(f,c));case"json":return d.json();default:if(c==="")return d.text();{const f=/charset="?([^;"\s]*)"?/i.exec(c),g=f&&f[1]?f[1].toLowerCase():void 0,v=new TextDecoder(g);return d.arrayBuffer().then(y=>v.decode(y))}}}).then(d=>{fs.add(`file:${e}`,d);const f=Xs[e];delete Xs[e];for(let g=0,v=f.length;g{const f=Xs[e];if(f===void 0)throw this.manager.itemError(e),d;delete Xs[e];for(let g=0,v=f.length;g{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}},M3=class extends Zi{constructor(e){super(e)}load(e,t,n,s){const a=this,l=new ea(this.manager);l.setPath(this.path),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(c){try{t(a.parse(JSON.parse(c)))}catch(h){s?s(h):rt(h),a.manager.itemError(e)}},n,s)}parse(e){const t=[];for(let n=0;n0){const h=new K0(t);a=new oh(h),a.setCrossOrigin(this.crossOrigin);for(let d=0,f=e.length;d0){s=new oh(this.manager),s.setCrossOrigin(this.crossOrigin);for(let l=0,c=e.length;l{let x=null,b=null;return w.boundingBox!==void 0&&(x=new Si().fromJSON(w.boundingBox)),w.boundingSphere!==void 0&&(b=new li().fromJSON(w.boundingSphere)),{...w,boundingBox:x,boundingSphere:b}}),l._instanceInfo=e.instanceInfo,l._availableInstanceIds=e._availableInstanceIds,l._availableGeometryIds=e._availableGeometryIds,l._nextIndexStart=e.nextIndexStart,l._nextVertexStart=e.nextVertexStart,l._geometryCount=e.geometryCount,l._maxInstanceCount=e.maxInstanceCount,l._maxVertexCount=e.maxVertexCount,l._maxIndexCount=e.maxIndexCount,l._geometryInitialized=e.geometryInitialized,l._matricesTexture=d(e.matricesTexture.uuid),l._indirectTexture=d(e.indirectTexture.uuid),e.colorsTexture!==void 0&&(l._colorsTexture=d(e.colorsTexture.uuid)),e.boundingSphere!==void 0&&(l.boundingSphere=new li().fromJSON(e.boundingSphere)),e.boundingBox!==void 0&&(l.boundingBox=new Si().fromJSON(e.boundingBox));break;case"LOD":l=new Gw;break;case"Line":l=new Wa(c(e.geometry),h(e.material));break;case"LineLoop":l=new Jw(c(e.geometry),h(e.material));break;case"LineSegments":l=new ps(c(e.geometry),h(e.material));break;case"PointCloud":case"Points":l=new Kw(c(e.geometry),h(e.material));break;case"Sprite":l=new Hw(h(e.material));break;case"Group":l=new uc;break;case"Bone":l=new L0;break;default:l=new tn}if(l.uuid=e.uuid,e.name!==void 0&&(l.name=e.name),e.matrix!==void 0?(l.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(l.matrixAutoUpdate=e.matrixAutoUpdate),l.matrixAutoUpdate&&l.matrix.decompose(l.position,l.quaternion,l.scale)):(e.position!==void 0&&l.position.fromArray(e.position),e.rotation!==void 0&&l.rotation.fromArray(e.rotation),e.quaternion!==void 0&&l.quaternion.fromArray(e.quaternion),e.scale!==void 0&&l.scale.fromArray(e.scale)),e.up!==void 0&&l.up.fromArray(e.up),e.pivot!==void 0&&(l.pivot=new z().fromArray(e.pivot)),e.morphTargetDictionary!==void 0&&(l.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),e.morphTargetInfluences!==void 0&&(l.morphTargetInfluences=e.morphTargetInfluences.slice()),e.castShadow!==void 0&&(l.castShadow=e.castShadow),e.receiveShadow!==void 0&&(l.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.intensity!==void 0&&(l.shadow.intensity=e.shadow.intensity),e.shadow.bias!==void 0&&(l.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(l.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(l.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&l.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(l.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(l.visible=e.visible),e.frustumCulled!==void 0&&(l.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(l.renderOrder=e.renderOrder),e.static!==void 0&&(l.static=e.static),e.userData!==void 0&&(l.userData=e.userData),e.layers!==void 0&&(l.layers.mask=e.layers),e.children!==void 0){const v=e.children;for(let y=0;y"u"&&Ne("ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&Ne("ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"},this._abortController=new AbortController}setOptions(e){return this.options=e,this}load(e,t,n,s){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const a=this,l=fs.get(`image-bitmap:${e}`);if(l!==void 0){if(a.manager.itemStart(e),l.then){l.then(d=>{Cv.has(l)===!0?(s&&s(Cv.get(l)),a.manager.itemError(e),a.manager.itemEnd(e)):(t&&t(d),a.manager.itemEnd(e))});return}setTimeout(function(){t&&t(l),a.manager.itemEnd(e)},0);return}const c={};c.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",c.headers=this.requestHeader,c.signal=typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;const h=fetch(e,c).then(function(d){return d.blob()}).then(function(d){return createImageBitmap(d,Object.assign(a.options,{colorSpaceConversion:"none"}))}).then(function(d){fs.add(`image-bitmap:${e}`,d),t&&t(d),a.manager.itemEnd(e)}).catch(function(d){s&&s(d),Cv.set(h,d),fs.remove(`image-bitmap:${e}`),a.manager.itemError(e),a.manager.itemEnd(e)});fs.add(`image-bitmap:${e}`,h),a.manager.itemStart(e)}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}},Pf,ty=class{static getContext(){return Pf===void 0&&(Pf=new(window.AudioContext||window.webkitAudioContext)),Pf}static setContext(e){Pf=e}},D3=class extends Zi{constructor(e){super(e)}load(e,t,n,s){const a=this,l=new ea(this.manager);l.setResponseType("arraybuffer"),l.setPath(this.path),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(h){try{const d=h.slice(0),f=ty.getContext(),g=e+"#decode";a.manager.itemStart(g),f.decodeAudioData(d,function(v){t(v),a.manager.itemEnd(g)}).catch(function(v){c(v),a.manager.itemEnd(g)})}catch(d){c(d)}},n,s);function c(h){s?s(h):rt(h),a.manager.itemError(e)}}},F1=new St,B1=new St,Io=new St,U3=class{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new ni,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new ni,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,Io.copy(e.projectionMatrix);const n=t.eyeSep/2,s=n*t.near/t.focus,a=t.near*Math.tan(Ho*t.fov*.5)/t.zoom;let l,c;B1.elements[12]=-n,F1.elements[12]=n,l=-a*t.aspect+s,c=a*t.aspect+s,Io.elements[0]=2*t.near/(c-l),Io.elements[8]=(c+l)/(c-l),this.cameraL.projectionMatrix.copy(Io),l=-a*t.aspect-s,c=a*t.aspect-s,Io.elements[0]=2*t.near/(c-l),Io.elements[8]=(c+l)/(c-l),this.cameraR.projectionMatrix.copy(Io)}this.cameraL.matrix.copy(e.matrixWorld).multiply(B1),this.cameraL.matrixWorldNeedsUpdate=!0,this.cameraR.matrix.copy(e.matrixWorld).multiply(F1),this.cameraR.matrixWorldNeedsUpdate=!0}},Ql=-90,ec=1,_E=class extends tn{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const s=new ni(Ql,ec,e,t);s.layers=this.layers,this.add(s);const a=new ni(Ql,ec,e,t);a.layers=this.layers,this.add(a);const l=new ni(Ql,ec,e,t);l.layers=this.layers,this.add(l);const c=new ni(Ql,ec,e,t);c.layers=this.layers,this.add(c);const h=new ni(Ql,ec,e,t);h.layers=this.layers,this.add(h);const d=new ni(Ql,ec,e,t);d.layers=this.layers,this.add(d)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[n,s,a,l,c,h]=t;for(const d of t)this.remove(d);if(e===2e3)n.up.set(0,1,0),n.lookAt(1,0,0),s.up.set(0,1,0),s.lookAt(-1,0,0),a.up.set(0,0,-1),a.lookAt(0,1,0),l.up.set(0,0,1),l.lookAt(0,-1,0),c.up.set(0,1,0),c.lookAt(0,0,1),h.up.set(0,1,0),h.lookAt(0,0,-1);else if(e===2001)n.up.set(0,-1,0),n.lookAt(-1,0,0),s.up.set(0,-1,0),s.lookAt(1,0,0),a.up.set(0,0,1),a.lookAt(0,1,0),l.up.set(0,0,-1),l.lookAt(0,-1,0),c.up.set(0,-1,0),c.lookAt(0,0,1),h.up.set(0,-1,0),h.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const d of t)this.add(d),d.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:s}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[a,l,c,h,d,f]=this.children,g=e.getRenderTarget(),v=e.getActiveCubeFace(),y=e.getActiveMipmapLevel(),_=e.xr.enabled;e.xr.enabled=!1;const M=n.texture.generateMipmaps;n.texture.generateMipmaps=!1;let w=!1;e.isWebGLRenderer===!0?w=e.state.buffers.depth.getReversed():w=e.reversedDepthBuffer,e.setRenderTarget(n,0,s),w&&e.autoClear===!1&&e.clearDepth(),e.render(t,a),e.setRenderTarget(n,1,s),w&&e.autoClear===!1&&e.clearDepth(),e.render(t,l),e.setRenderTarget(n,2,s),w&&e.autoClear===!1&&e.clearDepth(),e.render(t,c),e.setRenderTarget(n,3,s),w&&e.autoClear===!1&&e.clearDepth(),e.render(t,h),e.setRenderTarget(n,4,s),w&&e.autoClear===!1&&e.clearDepth(),e.render(t,d),n.texture.generateMipmaps=M,e.setRenderTarget(n,5,s),w&&e.autoClear===!1&&e.clearDepth(),e.render(t,f),e.setRenderTarget(g,v,y),e.xr.enabled=_,n.texture.needsPMREMUpdate=!0}},bE=class extends ni{constructor(e=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=e}},xE=class{constructor(){this._previousTime=0,this._currentTime=0,this._startTime=performance.now(),this._delta=0,this._elapsed=0,this._timescale=1,this._document=null,this._pageVisibilityHandler=null}connect(e){this._document=e,e.hidden!==void 0&&(this._pageVisibilityHandler=O3.bind(this),e.addEventListener("visibilitychange",this._pageVisibilityHandler,!1))}disconnect(){this._pageVisibilityHandler!==null&&(this._document.removeEventListener("visibilitychange",this._pageVisibilityHandler),this._pageVisibilityHandler=null),this._document=null}getDelta(){return this._delta/1e3}getElapsed(){return this._elapsed/1e3}getTimescale(){return this._timescale}setTimescale(e){return this._timescale=e,this}reset(){return this._currentTime=performance.now()-this._startTime,this}dispose(){this.disconnect()}update(e){return this._pageVisibilityHandler!==null&&this._document.hidden===!0?this._delta=0:(this._previousTime=this._currentTime,this._currentTime=(e!==void 0?e:performance.now())-this._startTime,this._delta=(this._currentTime-this._previousTime)*this._timescale,this._elapsed+=this._delta),this}};function O3(){this._document.hidden===!1&&this.reset()}var Lo=new z,Rv=new Bi,F3=new z,No=new z,Do=new z,B3=class extends tn{constructor(){super(),this.type="AudioListener",this.context=ty.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._timer=new xE}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this._timer.update();const t=this.context.listener;if(this.timeDelta=this._timer.getDelta(),this.matrixWorld.decompose(Lo,Rv,F3),No.set(0,0,-1).applyQuaternion(Rv),Do.set(0,1,0).applyQuaternion(Rv),t.positionX){const n=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(Lo.x,n),t.positionY.linearRampToValueAtTime(Lo.y,n),t.positionZ.linearRampToValueAtTime(Lo.z,n),t.forwardX.linearRampToValueAtTime(No.x,n),t.forwardY.linearRampToValueAtTime(No.y,n),t.forwardZ.linearRampToValueAtTime(No.z,n),t.upX.linearRampToValueAtTime(Do.x,n),t.upY.linearRampToValueAtTime(Do.y,n),t.upZ.linearRampToValueAtTime(Do.z,n)}else t.setPosition(Lo.x,Lo.y,Lo.z),t.setOrientation(No.x,No.y,No.z,Do.x,Do.y,Do.z)}},SE=class extends tn{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){Ne("Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){Ne("Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){Ne("Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(e=0){if(this.hasPlaybackControl===!1){Ne("Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(this.context.currentTime+e),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e0&&this._mixBufferRegionAdditive(n,s,this._addIndex*t,1,t);for(let h=t,d=t+t;h!==d;++h)if(n[h]!==n[h+t]){c.setValue(n,s);break}}saveOriginalState(){const e=this.binding,t=this.buffer,n=this.valueSize,s=n*this._origIndex;e.getValue(t,s);for(let a=n,l=s;a!==l;++a)t[a]=t[s+a%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let n=e;n=.5)for(let l=0;l!==a;++l)e[t+l]=e[n+l]}_slerp(e,t,n,s){Bi.slerpFlat(e,t,e,t,e,n,s)}_slerpAdditive(e,t,n,s,a){const l=this._workIndex*a;Bi.multiplyQuaternionsFlat(e,l,e,t,e,n),Bi.slerpFlat(e,t,e,t,e,l,s)}_lerp(e,t,n,s,a){const l=1-s;for(let c=0;c!==a;++c){const h=t+c;e[h]=e[h]*l+e[n+c]*s}}_lerpAdditive(e,t,n,s,a){for(let l=0;l!==a;++l){const c=t+l;e[c]=e[c]+e[n+l]*s}}},H3="\\[\\]\\.:\\/",G3=new RegExp("[\\[\\]\\.:\\/]","g"),ny="[^\\[\\]\\.:\\/]",W3="[^"+H3.replace("\\.","")+"]",X3=/((?:WC+[\/:])*)/.source.replace("WC",ny),q3=/(WCOD+)?/.source.replace("WCOD",W3),Y3=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",ny),j3=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",ny),Z3=new RegExp("^"+X3+q3+Y3+j3+"$"),$3=["material","materials","bones","map"],J3=class{constructor(e,t,n){const s=n||ln.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,s)}getValue(e,t){this.bind();const n=this._targetGroup.nCachedObjects_,s=this._bindings[n];s!==void 0&&s.getValue(e,t)}setValue(e,t){const n=this._bindings;for(let s=this._targetGroup.nCachedObjects_,a=n.length;s!==a;++s)n[s].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}},ln=class lc{constructor(t,n,s){this.path=n,this.parsedPath=s||lc.parseTrackName(n),this.node=lc.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,n,s){return t&&t.isAnimationObjectGroup?new lc.Composite(t,n,s):new lc(t,n,s)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(G3,"")}static parseTrackName(t){const n=Z3.exec(t);if(n===null)throw new Error("THREE.PropertyBinding: Cannot parse trackName: "+t);const s={nodeName:n[2],objectName:n[3],objectIndex:n[4],propertyName:n[5],propertyIndex:n[6]},a=s.nodeName&&s.nodeName.lastIndexOf(".");if(a!==void 0&&a!==-1){const l=s.nodeName.substring(a+1);$3.indexOf(l)!==-1&&(s.nodeName=s.nodeName.substring(0,a),s.objectName=l)}if(s.propertyName===null||s.propertyName.length===0)throw new Error("THREE.PropertyBinding: can not parse propertyName from trackName: "+t);return s}static findNode(t,n){if(n===void 0||n===""||n==="."||n===-1||n===t.name||n===t.uuid)return t;if(t.skeleton){const s=t.skeleton.getBoneByName(n);if(s!==void 0)return s}if(t.children){const s=function(l){for(let c=0;c=a){const g=a++,v=e[g];t[v.uuid]=f,e[f]=v,t[d]=g,e[g]=h;for(let y=0,_=s;y!==_;++y){const M=n[y],w=M[g],x=M[f];M[f]=w,M[g]=x}}}this.nCachedObjects_=a}uncache(){const e=this._objects,t=this._indicesByUUID,n=this._bindings,s=n.length;let a=this.nCachedObjects_,l=e.length;for(let c=0,h=arguments.length;c!==h;++c){const d=arguments[c].uuid,f=t[d];if(f!==void 0)if(delete t[d],f0&&(t[v.uuid]=f),e[f]=v,e.pop();for(let y=0,_=s;y!==_;++y){const M=n[y];M[f]=M[g],M.pop()}}}this.nCachedObjects_=a}subscribe_(e,t){const n=this._bindingsIndicesByPath;let s=n[e];const a=this._bindings;if(s!==void 0)return a[s];const l=this._paths,c=this._parsedPaths,h=this._objects,d=h.length,f=this.nCachedObjects_,g=new Array(d);s=a.length,n[e]=s,l.push(e),c.push(t),a.push(g);for(let v=f,y=h.length;v!==y;++v){const _=h[v];g[v]=new ln(_,e,t)}return g}unsubscribe_(e){const t=this._bindingsIndicesByPath,n=t[e];if(n!==void 0){const s=this._paths,a=this._parsedPaths,l=this._bindings,c=l.length-1,h=l[c],d=e[c];t[d]=n,l[n]=h,l.pop(),a[n]=a[c],a.pop(),s[n]=s[c],s.pop()}}},wE=class{constructor(e,t,n=null,s=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=s;const a=t.tracks,l=a.length,c=new Array(l),h={endingStart:Bo,endingEnd:Bo};for(let d=0;d!==l;++d){const f=a[d].createInterpolant(null);c[d]=f,f.settings=h}this._interpolantSettings=h,this._interpolants=c,this._propertyBindings=new Array(l),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._restoreTimeScale=null,this._weightInterpolant=null,this.loop=Sw,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n=!1){if(e.fadeOut(t),this.fadeIn(t),n===!0){const s=this._clip.duration,a=e._clip.duration,l=a/s,c=s/a;e._restoreTimeScale=e.timeScale,this._restoreTimeScale=this.timeScale,e.warp(1,l,t),this.warp(c,1,t)}return this}crossFadeTo(e,t,n=!1){return e.crossFadeFrom(this,t,n)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){const s=this._mixer,a=s.time,l=this.timeScale;let c=this._timeScaleInterpolant;c===null&&(c=s._lendControlInterpolant(),this._timeScaleInterpolant=c);const h=c.parameterPositions,d=c.sampleValues;return h[0]=a,h[1]=a+n,d[0]=e/l,d[1]=t/l,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this._restoreTimeScale=null,this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,s){if(!this.enabled){this._updateWeight(e);return}const a=this._startTime;if(a!==null){const h=(e-a)*n;h<0||n===0?t=0:(this._startTime=null,t=n*h)}t*=this._updateTimeScale(e);const l=this._updateTime(t),c=this._updateWeight(e);if(c>0){const h=this._interpolants,d=this._propertyBindings;switch(this.blendMode){case T0:for(let f=0,g=h.length;f!==g;++f)h[f].evaluate(l),d[f].accumulateAdditive(c);break;case rp:default:for(let f=0,g=h.length;f!==g;++f)h[f].evaluate(l),d[f].accumulate(s,c)}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const n=this._weightInterpolant;if(n!==null){const s=n.evaluate(e)[0];t*=s,e>n.parameterPositions[1]&&(this.stopFading(),s===0&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const n=this._timeScaleInterpolant;if(n!==null){const s=n.evaluate(e)[0];t*=s,e>n.parameterPositions[1]&&(t===0?this.paused=!0:(this._restoreTimeScale!==null&&(t=this._restoreTimeScale),this.timeScale=t),this.stopWarping())}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,n=this.loop;let s=this.time+e,a=this._loopCount;const l=n===Mw;if(e===0)return a===-1?s:l&&(a&1)===1?t-s:s;if(n===2200){a===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(s>=t)s=t;else if(s<0)s=0;else{this.time=s;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=s,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(a===-1&&(e>=0?(a=0,this._setEndings(!0,this.repetitions===0,l)):this._setEndings(this.repetitions===0,!0,l)),s>=t||s<0){const c=Math.floor(s/t);s-=t*c,a+=Math.abs(c);const h=this.repetitions-a;if(h<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,s=e>0?t:0,this.time=s,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(h===1){const d=e<0;this._setEndings(d,!d,l)}else this._setEndings(!1,!1,l);this._loopCount=a,this.time=s,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:c})}}else this._loopCount=a,this.time=s;if(l&&(a&1)===1)return t-s}return s}_setEndings(e,t,n){const s=this._interpolantSettings;n?(s.endingStart=zo,s.endingEnd=zo):(e?s.endingStart=this.zeroSlopeAtStart?zo:Bo:s.endingStart=Zu,t?s.endingEnd=this.zeroSlopeAtEnd?zo:Bo:s.endingEnd=Zu)}_scheduleFading(e,t,n){const s=this._mixer,a=s.time;let l=this._weightInterpolant;l===null&&(l=s._lendControlInterpolant(),this._weightInterpolant=l);const c=l.parameterPositions,h=l.sampleValues;return c[0]=a,h[0]=t,c[1]=a+e,h[1]=n,this}},Q3=new Float32Array(1),eI=class extends Wr{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}_bindAction(e,t){const n=e._localRoot||this._root,s=e._clip.tracks,a=s.length,l=e._propertyBindings,c=e._interpolants,h=n.uuid,d=this._bindingsByRootAndName;let f=d[h];f===void 0&&(f={},d[h]=f);for(let g=0;g!==a;++g){const v=s[g],y=v.name;let _=f[y];if(_!==void 0)++_.referenceCount,l[g]=_;else{if(_=l[g],_!==void 0){_._cacheIndex===null&&(++_.referenceCount,this._addInactiveBinding(_,h,y));continue}const M=t&&t._propertyBindings[g].binding.parsedPath;_=new ME(ln.create(n,y,M),v.ValueTypeName,v.getValueSize()),++_.referenceCount,this._addInactiveBinding(_,h,y),l[g]=_}c[g].resultBuffer=_.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const n=(e._localRoot||this._root).uuid,s=e._clip.uuid,a=this._actionsByClip[s];this._bindAction(e,a&&a.knownActions[0]),this._addInactiveAction(e,s,n)}const t=e._propertyBindings;for(let n=0,s=t.length;n!==s;++n){const a=t[n];a.useCount++===0&&(this._lendBinding(a),a.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let n=0,s=t.length;n!==s;++n){const a=t[n];--a.useCount===0&&(a.restoreOriginalState(),this._takeBackBinding(a))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return t!==null&&t=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;const t=this._actions,n=this._nActiveActions,s=this.time+=e,a=Math.sign(e),l=this._accuIndex^=1;for(let d=0;d!==n;++d)t[d]._update(s,e,a,l);const c=this._bindings,h=this._nActiveBindings;for(let d=0;d!==h;++d)c[d].apply(l);return this}setTime(e){this.time=0;for(let t=0;t=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,H1).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},G1=new z,If=new z,tc=new z,nc=new z,Pv=new z,uI=new z,hI=new z,dI=class{constructor(e=new z,t=new z){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){G1.subVectors(e,this.start),If.subVectors(this.end,this.start);const n=If.dot(If);if(n===0)return 0;let s=If.dot(G1)/n;return t&&(s=gt(s,0,1)),s}closestPointToPoint(e,t,n){const s=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(s).add(this.start)}distanceSqToLine3(e,t=uI,n=hI){const s=10000000000000001e-32;let a,l;const c=this.start,h=e.start,d=this.end,f=e.end;tc.subVectors(d,c),nc.subVectors(f,h),Pv.subVectors(c,h);const g=tc.dot(tc),v=nc.dot(nc),y=nc.dot(Pv);if(g<=s&&v<=s)return t.copy(c),n.copy(h),t.sub(n),t.dot(t);if(g<=s)a=0,l=y/v,l=gt(l,0,1);else{const _=tc.dot(Pv);if(v<=s)l=0,a=gt(-_/g,0,1);else{const M=tc.dot(nc),w=g*v-M*M;w!==0?a=gt((M*y-_*v)/w,0,1):a=0,l=(M*a+y)/v,l<0?(l=0,a=gt(-_/g,0,1)):l>1&&(l=1,a=gt((M-_)/g,0,1))}}return t.copy(c).addScaledVector(tc,a),n.copy(h).addScaledVector(nc,l),t.distanceToSquared(n)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}},W1=new z,fI=class extends tn{constructor(e,t){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const n=new Lt,s=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let l=0,c=1,h=32;l1)for(let g=0;g.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{Z1.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(Z1,t)}}setLength(e,t=e*.2,n=t*.2){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},EI=class extends ps{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],n=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],s=new Lt;s.setAttribute("position",new Ke(t,3)),s.setAttribute("color",new Ke(n,3));const a=new zi({vertexColors:!0,toneMapped:!1});super(s,a),this.type="AxesHelper"}setColors(e,t,n){const s=new Xe,a=this.geometry.attributes.color.array;return s.set(e),s.toArray(a,0),s.toArray(a,3),s.set(t),s.toArray(a,6),s.toArray(a,9),s.set(n),s.toArray(a,12),s.toArray(a,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}},AI=class{constructor(){this.type="ShapePath",this.color=new Xe,this.subPaths=[],this.currentPath=null,this.userData={}}moveTo(e,t){return this.currentPath=new nh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,n,s){return this.currentPath.quadraticCurveTo(e,t,n,s),this}bezierCurveTo(e,t,n,s,a,l){return this.currentPath.bezierCurveTo(e,t,n,s,a,l),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(){function e(h,d){let f=!1;const g=d.length;for(let v=0,y=g-1;vh.y!=M.y>h.y&&h.x<(M.x-_.x)*(h.y-_.y)/(M.y-_.y)+_.x&&(f=!f)}return f}function t(h,d){const f=d.getCenter(new ye);if(e(f,h))return f;const g=f.y,v=[],y=h.length;for(let _=0;_g!=w.y>g){const x=M.x+(g-M.y)*(w.x-M.x)/(w.y-M.y);v.push(x)}}return v.length>1&&(v.sort((_,M)=>_-M),f.x=(v[0]+v[1])/2),f}let n=this.userData.style&&this.userData.style.fillRule||"nonzero";n!=="nonzero"&&n!=="evenodd"&&(Ne('Fill-rule "'+n+'" is not supported, falling back to "nonzero".'),n="nonzero");const s=n==="nonzero"?(h=>h!==0):(h=>(h&1)!==0),a=[];for(const h of this.subPaths){const d=h.getPoints();if(d.length<3)continue;const f=Ys.area(d);if(f===0)continue;const g=new RE;for(let v=0;vd.absArea-h.absArea);for(let h=0;h=0;g--){const v=a[g];if(v.boundingBox.containsBox(d.boundingBox)&&e(d.interiorPoint,v.points)){d.container=v.exclude?v.container:v,f=v.winding,d.winding+=f;break}}s(d.winding)===s(f)&&(d.exclude=!0)}for(const h of a)h.exclude||(h.role=h.container===null||h.container.role==="hole"?"outer":"hole");const l=[],c=new Map;for(const h of a){if(h.exclude||h.role!=="outer")continue;const d=new hh;d.curves=h.subPath.curves,l.push(d),c.set(h,d)}for(const h of a){if(h.exclude||h.role!=="hole")continue;const d=c.get(h.container);if(!d)continue;const f=new nh;f.curves=h.subPath.curves,d.holes.push(f)}return l}},CI=class extends Wr{constructor(e,t=null){super(),this.object=e,this.domElement=t,this.enabled=!0,this.state=-1,this.keys={},this.mouseButtons={LEFT:null,MIDDLE:null,RIGHT:null},this.touches={ONE:null,TWO:null}}connect(e){if(e===void 0){Ne("Controls: connect() now requires an element.");return}this.domElement!==null&&this.disconnect(),this.domElement=e}disconnect(){}dispose(){}update(){}};function RI(e,t){const n=e.image&&e.image.width?e.image.width/e.image.height:1;return n>t?(e.repeat.x=1,e.repeat.y=n/t,e.offset.x=0,e.offset.y=(1-e.repeat.y)/2):(e.repeat.x=t/n,e.repeat.y=1,e.offset.x=(1-e.repeat.x)/2,e.offset.y=0),e}function PI(e,t){const n=e.image&&e.image.width?e.image.width/e.image.height:1;return n>t?(e.repeat.x=t/n,e.repeat.y=1,e.offset.x=(1-e.repeat.x)/2,e.offset.y=0):(e.repeat.x=1,e.repeat.y=n/t,e.offset.x=0,e.offset.y=(1-e.repeat.y)/2),e}function II(e){return e.repeat.x=1,e.repeat.y=1,e.offset.x=0,e.offset.y=0,e}function t0(e,t,n,s){const a=LI(s);switch(n){case BM:return e*t;case S0:return e*t/a.components*a.byteLength;case ip:return e*t/a.components*a.byteLength;case Yu:return e*t*2/a.components*a.byteLength;case M0:return e*t*2/a.components*a.byteLength;case zM:return e*t*3/a.components*a.byteLength;case Ks:return e*t*4/a.components*a.byteLength;case w0:return e*t*4/a.components*a.byteLength;case kM:case VM:return Math.floor((e+3)/4)*Math.floor((t+3)/4)*8;case HM:case GM:return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16;case XM:case YM:return Math.max(e,16)*Math.max(t,8)/4;case WM:case qM:return Math.max(e,8)*Math.max(t,8)/2;case jM:case ZM:case JM:case KM:return Math.floor((e+3)/4)*Math.floor((t+3)/4)*8;case $M:case QM:case ew:return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16;case tw:return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16;case nw:return Math.floor((e+4)/5)*Math.floor((t+3)/4)*16;case iw:return Math.floor((e+4)/5)*Math.floor((t+4)/5)*16;case rw:return Math.floor((e+5)/6)*Math.floor((t+4)/5)*16;case sw:return Math.floor((e+5)/6)*Math.floor((t+5)/6)*16;case aw:return Math.floor((e+7)/8)*Math.floor((t+4)/5)*16;case ow:return Math.floor((e+7)/8)*Math.floor((t+5)/6)*16;case lw:return Math.floor((e+7)/8)*Math.floor((t+7)/8)*16;case cw:return Math.floor((e+9)/10)*Math.floor((t+4)/5)*16;case uw:return Math.floor((e+9)/10)*Math.floor((t+5)/6)*16;case hw:return Math.floor((e+9)/10)*Math.floor((t+7)/8)*16;case dw:return Math.floor((e+9)/10)*Math.floor((t+9)/10)*16;case fw:return Math.floor((e+11)/12)*Math.floor((t+9)/10)*16;case pw:return Math.floor((e+11)/12)*Math.floor((t+11)/12)*16;case mw:case gw:case vw:return Math.ceil(e/4)*Math.ceil(t/4)*16;case yw:case _w:return Math.ceil(e/4)*Math.ceil(t/4)*8;case bw:case xw:return Math.ceil(e/4)*Math.ceil(t/4)*16}throw new Error(`Unable to determine texture byte length for ${n} format.`)}function LI(e){switch(e){case js:case NM:return{byteLength:1,components:1};case v0:case DM:case Va:return{byteLength:2,components:1};case y0:case _0:return{byteLength:2,components:4};case $s:case UM:case Js:return{byteLength:4,components:1};case OM:case FM:return{byteLength:4,components:3}}throw new Error(`THREE.TextureUtils: Unknown texture type ${e}.`)}var NI=class{static contain(e,t){return RI(e,t)}static cover(e,t){return PI(e,t)}static fill(e){return II(e)}static getByteLength(e,t,n,s){return t0(e,t,n,s)}};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"185"}}));typeof window<"u"&&(window.__THREE__?Ne("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="185");var DI=YR({ACESFilmicToneMapping:()=>4,AddEquation:()=>100,AddOperation:()=>2,AdditiveAnimationBlendMode:()=>T0,AdditiveBlending:()=>2,AgXToneMapping:()=>6,AlphaFormat:()=>BM,AlwaysCompare:()=>519,AlwaysDepth:()=>1,AlwaysStencilFunc:()=>519,AmbientLight:()=>dE,AnimationAction:()=>wE,AnimationClip:()=>ah,AnimationLoader:()=>M3,AnimationMixer:()=>eI,AnimationObjectGroup:()=>K3,AnimationUtils:()=>_3,ArcCurve:()=>fT,ArrayCamera:()=>bE,ArrowHelper:()=>TI,AttachedBindMode:()=>LM,Audio:()=>SE,AudioAnalyser:()=>V3,AudioContext:()=>ty,AudioListener:()=>B3,AudioLoader:()=>D3,AxesHelper:()=>EI,BackSide:()=>1,BasicDepthPacking:()=>ww,BasicShadowMap:()=>0,BatchedMesh:()=>$w,BezierInterpolant:()=>sE,Bone:()=>L0,BooleanKeyframeTrack:()=>Yo,Box2:()=>RE,Box3:()=>Si,Box3Helper:()=>MI,BoxGeometry:()=>uh,BoxHelper:()=>SI,BufferAttribute:()=>an,BufferGeometry:()=>Lt,BufferGeometryLoader:()=>yE,ByteType:()=>NM,Cache:()=>fs,Camera:()=>pp,CameraHelper:()=>xI,CanvasTexture:()=>eT,CapsuleGeometry:()=>iT,CatmullRomCurve3:()=>pT,CineonToneMapping:()=>3,CircleGeometry:()=>sT,ClampToEdgeWrapping:()=>ji,Clock:()=>AE,Color:()=>Xe,ColorKeyframeTrack:()=>$0,ColorManagement:()=>Ht,Compatibility:()=>E2,CompressedArrayTexture:()=>FP,CompressedCubeTexture:()=>BP,CompressedTexture:()=>cp,CompressedTextureLoader:()=>w3,ConeGeometry:()=>O0,ConstantAlphaFactor:()=>213,ConstantColorFactor:()=>211,Controls:()=>CI,CubeCamera:()=>_E,CubeDepthTexture:()=>tT,CubeReflectionMapping:()=>301,CubeRefractionMapping:()=>302,CubeTexture:()=>ch,CubeTextureLoader:()=>T3,CubeUVReflectionMapping:()=>306,CubicBezierCurve:()=>B0,CubicBezierCurve3:()=>mT,CubicInterpolant:()=>iE,CullFaceBack:()=>1,CullFaceFront:()=>2,CullFaceFrontBack:()=>3,CullFaceNone:()=>0,Curve:()=>Xr,CurvePath:()=>vT,CustomBlending:()=>5,CustomToneMapping:()=>5,CylinderGeometry:()=>U0,Cylindrical:()=>lI,Data3DTexture:()=>op,DataArrayTexture:()=>ap,DataTexture:()=>Sr,DataTextureLoader:()=>E3,DataUtils:()=>cP,DecrementStencilOp:()=>c2,DecrementWrapStencilOp:()=>h2,DefaultLoadingManager:()=>oE,DepthFormat:()=>dc,DepthStencilFormat:()=>x0,DepthTexture:()=>Wo,DetachedBindMode:()=>JR,DirectionalLight:()=>hE,DirectionalLightHelper:()=>bI,DiscreteInterpolant:()=>rE,DodecahedronGeometry:()=>uT,DoubleSide:()=>2,DstAlphaFactor:()=>206,DstColorFactor:()=>208,DynamicCopyUsage:()=>_2,DynamicDrawUsage:()=>f2,DynamicReadUsage:()=>g2,EdgesGeometry:()=>dT,EllipseCurve:()=>up,EqualCompare:()=>514,EqualDepth:()=>4,EqualStencilFunc:()=>514,EquirectangularReflectionMapping:()=>303,EquirectangularRefractionMapping:()=>304,Euler:()=>Qs,EventDispatcher:()=>Wr,ExternalTexture:()=>D0,ExtrudeGeometry:()=>MT,FileLoader:()=>ea,Float16BufferAttribute:()=>gP,Float32BufferAttribute:()=>Ke,FloatType:()=>Js,Fog:()=>Fw,FogExp2:()=>Uw,FramebufferTexture:()=>OP,FrontSide:()=>0,Frustum:()=>Go,FrustumArray:()=>jw,GLBufferAttribute:()=>aI,GLSL1:()=>"100",GLSL3:()=>x2,GreaterCompare:()=>516,GreaterDepth:()=>6,GreaterEqualCompare:()=>518,GreaterEqualDepth:()=>5,GreaterEqualStencilFunc:()=>518,GreaterStencilFunc:()=>516,GridHelper:()=>yI,Group:()=>uc,HTMLTexture:()=>zP,HalfFloatType:()=>Va,HemisphereLight:()=>lE,HemisphereLightHelper:()=>vI,IcosahedronGeometry:()=>TT,ImageBitmapLoader:()=>N3,ImageLoader:()=>oh,ImageUtils:()=>Iw,IncrementStencilOp:()=>l2,IncrementWrapStencilOp:()=>u2,InstancedBufferAttribute:()=>mc,InstancedBufferGeometry:()=>vE,InstancedInterleavedBuffer:()=>sI,InstancedMesh:()=>Yw,Int16BufferAttribute:()=>pP,Int32BufferAttribute:()=>mP,Int8BufferAttribute:()=>hP,IntType:()=>UM,InterleavedBuffer:()=>lp,InterleavedBufferAttribute:()=>th,Interpolant:()=>Sc,InterpolateBezier:()=>Yv,InterpolateDiscrete:()=>ju,InterpolateLinear:()=>Yf,InterpolateSmooth:()=>kf,InterpolationSamplingMode:()=>T2,InterpolationSamplingType:()=>w2,InvertStencilOp:()=>d2,KeepStencilOp:()=>Vf,KeyframeTrack:()=>Mr,LOD:()=>Gw,LatheGeometry:()=>AT,Layers:()=>pc,LessCompare:()=>513,LessDepth:()=>2,LessEqualCompare:()=>515,LessEqualDepth:()=>3,LessEqualStencilFunc:()=>515,LessStencilFunc:()=>513,Light:()=>qa,LightProbe:()=>pE,Line:()=>Wa,Line3:()=>dI,LineBasicMaterial:()=>zi,LineCurve:()=>z0,LineCurve3:()=>gT,LineDashedMaterial:()=>eE,LineLoop:()=>Jw,LineSegments:()=>ps,LinearFilter:()=>xn,LinearInterpolant:()=>Z0,LinearMipMapLinearFilter:()=>t2,LinearMipMapNearestFilter:()=>e2,LinearMipmapLinearFilter:()=>_c,LinearMipmapNearestFilter:()=>g0,LinearSRGBColorSpace:()=>$u,LinearToneMapping:()=>1,LinearTransfer:()=>Ju,Loader:()=>Zi,LoaderUtils:()=>Qv,LoadingManager:()=>K0,LoopOnce:()=>i2,LoopPingPong:()=>Mw,LoopRepeat:()=>Sw,MOUSE:()=>ZR,Material:()=>ci,MaterialBlending:()=>6,MaterialLoader:()=>mE,MathUtils:()=>Z2,Matrix2:()=>cI,Matrix3:()=>Et,Matrix4:()=>St,MaxEquation:()=>104,Mesh:()=>Hn,MeshBasicMaterial:()=>Xa,MeshDepthMaterial:()=>Y0,MeshDistanceMaterial:()=>j0,MeshLambertMaterial:()=>KT,MeshMatcapMaterial:()=>QT,MeshNormalMaterial:()=>JT,MeshPhongMaterial:()=>ZT,MeshPhysicalMaterial:()=>jT,MeshStandardMaterial:()=>q0,MeshToonMaterial:()=>$T,MinEquation:()=>103,MirroredRepeatWrapping:()=>qu,MixOperation:()=>1,MultiplyBlending:()=>4,MultiplyOperation:()=>0,NearestFilter:()=>qn,NearestMipMapLinearFilter:()=>QR,NearestMipMapNearestFilter:()=>KR,NearestMipmapLinearFilter:()=>m0,NearestMipmapNearestFilter:()=>p0,NeutralToneMapping:()=>7,NeverCompare:()=>512,NeverDepth:()=>0,NeverStencilFunc:()=>512,NoBlending:()=>0,NoColorSpace:()=>"",NoNormalPacking:()=>"",NoToneMapping:()=>0,NormalAnimationBlendMode:()=>rp,NormalBlending:()=>1,NormalGAPacking:()=>"ga",NormalRGPacking:()=>"rg",NotEqualCompare:()=>517,NotEqualDepth:()=>7,NotEqualStencilFunc:()=>517,NumberKeyframeTrack:()=>dp,Object3D:()=>tn,ObjectLoader:()=>I3,ObjectSpaceNormalMap:()=>1,OctahedronGeometry:()=>G0,OneFactor:()=>201,OneMinusConstantAlphaFactor:()=>214,OneMinusConstantColorFactor:()=>212,OneMinusDstAlphaFactor:()=>207,OneMinusDstColorFactor:()=>209,OneMinusSrcAlphaFactor:()=>205,OneMinusSrcColorFactor:()=>203,OrthographicCamera:()=>Mc,PCFShadowMap:()=>1,PCFSoftShadowMap:()=>2,PMREMGenerator:()=>n0,Path:()=>nh,PerspectiveCamera:()=>ni,Plane:()=>Ua,PlaneGeometry:()=>hp,PlaneHelper:()=>wI,PointLight:()=>uE,PointLightHelper:()=>mI,Points:()=>Kw,PointsMaterial:()=>N0,PolarGridHelper:()=>_I,PolyhedronGeometry:()=>xc,PositionalAudio:()=>k3,PropertyBinding:()=>ln,PropertyMixer:()=>ME,QuadraticBezierCurve:()=>k0,QuadraticBezierCurve3:()=>V0,Quaternion:()=>Bi,QuaternionKeyframeTrack:()=>fp,QuaternionLinearInterpolant:()=>aE,R11_EAC_Format:()=>JM,RED_GREEN_RGTC2_Format:()=>bw,RED_RGTC1_Format:()=>yw,REVISION:()=>"185",RG11_EAC_Format:()=>QM,RGBADepthPacking:()=>r2,RGBAFormat:()=>Ks,RGBAIntegerFormat:()=>w0,RGBA_ASTC_10x10_Format:()=>dw,RGBA_ASTC_10x5_Format:()=>cw,RGBA_ASTC_10x6_Format:()=>uw,RGBA_ASTC_10x8_Format:()=>hw,RGBA_ASTC_12x10_Format:()=>fw,RGBA_ASTC_12x12_Format:()=>pw,RGBA_ASTC_4x4_Format:()=>tw,RGBA_ASTC_5x4_Format:()=>nw,RGBA_ASTC_5x5_Format:()=>iw,RGBA_ASTC_6x5_Format:()=>rw,RGBA_ASTC_6x6_Format:()=>sw,RGBA_ASTC_8x5_Format:()=>aw,RGBA_ASTC_8x6_Format:()=>ow,RGBA_ASTC_8x8_Format:()=>lw,RGBA_BPTC_Format:()=>mw,RGBA_ETC2_EAC_Format:()=>$M,RGBA_PVRTC_2BPPV1_Format:()=>YM,RGBA_PVRTC_4BPPV1_Format:()=>qM,RGBA_S3TC_DXT1_Format:()=>VM,RGBA_S3TC_DXT3_Format:()=>HM,RGBA_S3TC_DXT5_Format:()=>GM,RGBDepthPacking:()=>s2,RGBFormat:()=>zM,RGBIntegerFormat:()=>n2,RGB_BPTC_SIGNED_Format:()=>gw,RGB_BPTC_UNSIGNED_Format:()=>vw,RGB_ETC1_Format:()=>jM,RGB_ETC2_Format:()=>ZM,RGB_PVRTC_2BPPV1_Format:()=>XM,RGB_PVRTC_4BPPV1_Format:()=>WM,RGB_S3TC_DXT1_Format:()=>kM,RGDepthPacking:()=>a2,RGFormat:()=>Yu,RGIntegerFormat:()=>M0,RawShaderMaterial:()=>X0,Ray:()=>bc,Raycaster:()=>EE,RectAreaLight:()=>fE,RedFormat:()=>S0,RedIntegerFormat:()=>ip,ReinhardToneMapping:()=>2,RenderTarget:()=>A0,RenderTarget3D:()=>tI,RepeatWrapping:()=>Xu,ReplaceStencilOp:()=>o2,ReverseSubtractEquation:()=>102,RingGeometry:()=>IT,SIGNED_R11_EAC_Format:()=>KM,SIGNED_RED_GREEN_RGTC2_Format:()=>xw,SIGNED_RED_RGTC1_Format:()=>_w,SIGNED_RG11_EAC_Format:()=>ew,SRGBColorSpace:()=>xi,SRGBTransfer:()=>Ku,Scene:()=>C0,ShaderChunk:()=>Dt,ShaderLib:()=>Gr,ShaderMaterial:()=>cr,ShadowMaterial:()=>XT,Shape:()=>hh,ShapeGeometry:()=>NT,ShapePath:()=>AI,ShapeUtils:()=>Ys,ShortType:()=>DM,Skeleton:()=>Xw,SkeletonHelper:()=>pI,SkinnedMesh:()=>Ww,Source:()=>Ba,Sphere:()=>li,SphereGeometry:()=>W0,Spherical:()=>oI,SphericalHarmonics3:()=>ey,SplineCurve:()=>H0,SpotLight:()=>cE,SpotLightHelper:()=>fI,Sprite:()=>Hw,SpriteMaterial:()=>I0,SrcAlphaFactor:()=>204,SrcAlphaSaturateFactor:()=>210,SrcColorFactor:()=>202,StaticCopyUsage:()=>y2,StaticDrawUsage:()=>sp,StaticReadUsage:()=>m2,StereoCamera:()=>U3,StreamCopyUsage:()=>b2,StreamDrawUsage:()=>p2,StreamReadUsage:()=>v2,StringKeyframeTrack:()=>jo,SubtractEquation:()=>101,SubtractiveBlending:()=>3,TOUCH:()=>$R,TangentSpaceNormalMap:()=>0,TetrahedronGeometry:()=>OT,Texture:()=>Zn,TextureLoader:()=>A3,TextureUtils:()=>NI,Timer:()=>xE,TimestampQuery:()=>M2,TorusGeometry:()=>BT,TorusKnotGeometry:()=>kT,Triangle:()=>Oa,TriangleFanDrawMode:()=>2,TriangleStripDrawMode:()=>1,TrianglesDrawMode:()=>0,TubeGeometry:()=>HT,UVMapping:()=>300,Uint16BufferAttribute:()=>R0,Uint32BufferAttribute:()=>P0,Uint8BufferAttribute:()=>dP,Uint8ClampedBufferAttribute:()=>fP,Uniform:()=>nI,UniformsGroup:()=>rI,UniformsLib:()=>Be,UniformsUtils:()=>YT,UnsignedByteType:()=>js,UnsignedInt101111Type:()=>FM,UnsignedInt248Type:()=>b0,UnsignedInt5999Type:()=>OM,UnsignedIntType:()=>$s,UnsignedShort4444Type:()=>y0,UnsignedShort5551Type:()=>_0,UnsignedShortType:()=>v0,VSMShadowMap:()=>3,Vector2:()=>ye,Vector3:()=>z,Vector4:()=>cn,VectorKeyframeTrack:()=>J0,VideoFrameTexture:()=>UP,VideoTexture:()=>Qw,WebGL3DRenderTarget:()=>eP,WebGLArrayRenderTarget:()=>Q2,WebGLCoordinateSystem:()=>Ha,WebGLCubeRenderTarget:()=>iy,WebGLRenderTarget:()=>lr,WebGLRenderer:()=>zE,WebGLUtils:()=>FE,WebGPUCoordinateSystem:()=>S2,WebXRController:()=>Wf,WireframeGeometry:()=>WT,WrapAroundEnding:()=>Zu,ZeroCurvatureEnding:()=>Bo,ZeroFactor:()=>200,ZeroSlopeEnding:()=>zo,ZeroStencilOp:()=>0,createCanvasElement:()=>Ew,error:()=>rt,getConsoleFunction:()=>P2,log:()=>eh,setConsoleFunction:()=>R2,warn:()=>Ne,warnOnce:()=>ka});function IE(){let e=null,t=!1,n=null,s=null;function a(l,c){n(l,c),s=e.requestAnimationFrame(a)}return{start:function(){t!==!0&&n!==null&&e!==null&&(s=e.requestAnimationFrame(a),t=!0)},stop:function(){e!==null&&e.cancelAnimationFrame(s),t=!1},setAnimationLoop:function(l){n=l},setContext:function(l){e=l}}}function UI(e){const t=new WeakMap;function n(h,d){const f=h.array,g=h.usage,v=f.byteLength,y=e.createBuffer();e.bindBuffer(d,y),e.bufferData(d,f,g),h.onUploadCallback();let _;if(f instanceof Float32Array)_=e.FLOAT;else if(typeof Float16Array<"u"&&f instanceof Float16Array)_=e.HALF_FLOAT;else if(f instanceof Uint16Array)h.isFloat16BufferAttribute?_=e.HALF_FLOAT:_=e.UNSIGNED_SHORT;else if(f instanceof Int16Array)_=e.SHORT;else if(f instanceof Uint32Array)_=e.UNSIGNED_INT;else if(f instanceof Int32Array)_=e.INT;else if(f instanceof Int8Array)_=e.BYTE;else if(f instanceof Uint8Array)_=e.UNSIGNED_BYTE;else if(f instanceof Uint8ClampedArray)_=e.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:y,type:_,bytesPerElement:f.BYTES_PER_ELEMENT,version:h.version,size:v}}function s(h,d,f){const g=d.array,v=d.updateRanges;if(e.bindBuffer(f,h),v.length===0)e.bufferSubData(f,0,g);else{v.sort((_,M)=>_.start-M.start);let y=0;for(let _=1;_ 0 - vec4 plane; - #ifdef ALPHA_TO_COVERAGE - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - if ( clipOpacity == 0.0 ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - float unionClipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - } - #pragma unroll_loop_end - clipOpacity *= 1.0 - unionClipOpacity; - #endif - diffuseColor.a *= clipOpacity; - if ( diffuseColor.a == 0.0 ) discard; - #else - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - bool clipped = true; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; - } - #pragma unroll_loop_end - if ( clipped ) discard; - #endif - #endif -#endif`,clipping_planes_pars_fragment:`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; - uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,clipping_planes_pars_vertex:`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; -#endif`,clipping_planes_vertex:`#if NUM_CLIPPING_PLANES > 0 - vClipPosition = - mvPosition.xyz; -#endif`,color_fragment:`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) - diffuseColor *= vColor; -#endif`,color_pars_fragment:`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#endif`,color_pars_vertex:`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) - varying vec4 vColor; -#endif`,color_vertex:`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) - vColor = vec4( 1.0 ); -#endif -#ifdef USE_COLOR_ALPHA - vColor *= color; -#elif defined( USE_COLOR ) - vColor.rgb *= color; -#endif -#ifdef USE_INSTANCING_COLOR - vColor.rgb *= instanceColor.rgb; -#endif -#ifdef USE_BATCHING_COLOR - vColor *= getBatchingColor( getIndirectIndex( gl_DrawID ) ); -#endif`,common:`#define PI 3.141592653589793 -#define PI2 6.283185307179586 -#define PI_HALF 1.5707963267948966 -#define RECIPROCAL_PI 0.3183098861837907 -#define RECIPROCAL_PI2 0.15915494309189535 -#define EPSILON 1e-6 -#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -#define whiteComplement( a ) ( 1.0 - saturate( a ) ) -float pow2( const in float x ) { return x*x; } -vec3 pow2( const in vec3 x ) { return x*x; } -float pow3( const in float x ) { return x*x*x; } -float pow4( const in float x ) { float x2 = x*x; return x2*x2; } -float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } -float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } -highp float rand( const in vec2 uv ) { - const highp float a = 12.9898, b = 78.233, c = 43758.5453; - highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); - return fract( sin( sn ) * c ); -} -#ifdef HIGH_PRECISION - float precisionSafeLength( vec3 v ) { return length( v ); } -#else - float precisionSafeLength( vec3 v ) { - float maxComponent = max3( abs( v ) ); - return length( v / maxComponent ) * maxComponent; - } -#endif -struct IncidentLight { - vec3 color; - vec3 direction; - bool visible; -}; -struct ReflectedLight { - vec3 directDiffuse; - vec3 directSpecular; - vec3 indirectDiffuse; - vec3 indirectSpecular; -}; -#ifdef USE_ALPHAHASH - varying vec3 vPosition; -#endif -vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); -} -#define inverseTransformDirection transformDirectionByInverseViewMatrix -vec3 transformNormalByInverseViewMatrix( in vec3 normal, in mat4 viewMatrix ) { - return normalize( ( vec4( normal, 0.0 ) * viewMatrix ).xyz ); -} -vec3 transformDirectionByInverseViewMatrix( in vec3 dir, in mat4 viewMatrix ) { - return normalize( ( vec4( dir, 0.0 ) * viewMatrix ).xyz ); -} -bool isPerspectiveMatrix( mat4 m ) { - return m[ 2 ][ 3 ] == - 1.0; -} -vec2 equirectUv( in vec3 dir ) { - float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; - float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; - return vec2( u, v ); -} -vec3 BRDF_Lambert( const in vec3 diffuseColor ) { - return RECIPROCAL_PI * diffuseColor; -} -vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} -float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} // validated`,cube_uv_reflection_fragment:`#ifdef ENVMAP_TYPE_CUBE_UV - #define cubeUV_minMipLevel 4.0 - #define cubeUV_minTileSize 16.0 - float getFace( vec3 direction ) { - vec3 absDirection = abs( direction ); - float face = - 1.0; - if ( absDirection.x > absDirection.z ) { - if ( absDirection.x > absDirection.y ) - face = direction.x > 0.0 ? 0.0 : 3.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } else { - if ( absDirection.z > absDirection.y ) - face = direction.z > 0.0 ? 2.0 : 5.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } - return face; - } - vec2 getUV( vec3 direction, float face ) { - vec2 uv; - if ( face == 0.0 ) { - uv = vec2( direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 1.0 ) { - uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); - } else if ( face == 2.0 ) { - uv = vec2( - direction.x, direction.y ) / abs( direction.z ); - } else if ( face == 3.0 ) { - uv = vec2( - direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 4.0 ) { - uv = vec2( - direction.x, direction.z ) / abs( direction.y ); - } else { - uv = vec2( direction.x, direction.y ) / abs( direction.z ); - } - return 0.5 * ( uv + 1.0 ); - } - vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { - float face = getFace( direction ); - float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); - mipInt = max( mipInt, cubeUV_minMipLevel ); - float faceSize = exp2( mipInt ); - highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; - if ( face > 2.0 ) { - uv.y += faceSize; - face -= 3.0; - } - uv.x += face * faceSize; - uv.x += filterInt * 3.0 * cubeUV_minTileSize; - uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); - uv.x *= CUBEUV_TEXEL_WIDTH; - uv.y *= CUBEUV_TEXEL_HEIGHT; - #ifdef texture2DGradEXT - return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; - #else - return texture2D( envMap, uv ).rgb; - #endif - } - #define cubeUV_r0 1.0 - #define cubeUV_m0 - 2.0 - #define cubeUV_r1 0.8 - #define cubeUV_m1 - 1.0 - #define cubeUV_r4 0.4 - #define cubeUV_m4 2.0 - #define cubeUV_r5 0.305 - #define cubeUV_m5 3.0 - #define cubeUV_r6 0.21 - #define cubeUV_m6 4.0 - float roughnessToMip( float roughness ) { - float mip = 0.0; - if ( roughness >= cubeUV_r1 ) { - mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; - } else if ( roughness >= cubeUV_r4 ) { - mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; - } else if ( roughness >= cubeUV_r5 ) { - mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; - } else if ( roughness >= cubeUV_r6 ) { - mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; - } else { - mip = - 2.0 * log2( 1.16 * roughness ); } - return mip; - } - vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { - float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); - float mipF = fract( mip ); - float mipInt = floor( mip ); - vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); - if ( mipF == 0.0 ) { - return vec4( color0, 1.0 ); - } else { - vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); - return vec4( mix( color0, color1, mipF ), 1.0 ); - } - } -#endif`,defaultnormal_vertex:`vec3 transformedNormal = objectNormal; -#ifdef USE_TANGENT - vec3 transformedTangent = objectTangent; -#endif -#ifdef USE_BATCHING - mat3 bm = mat3( batchingMatrix ); - transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); - transformedNormal = bm * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = bm * transformedTangent; - #endif -#endif -#ifdef USE_INSTANCING - mat3 im = mat3( instanceMatrix ); - transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); - transformedNormal = im * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = im * transformedTangent; - #endif -#endif -transformedNormal = normalMatrix * transformedNormal; -#ifdef FLIP_SIDED - transformedNormal = - transformedNormal; -#endif -#ifdef USE_TANGENT - transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; -#endif`,displacementmap_pars_vertex:`#ifdef USE_DISPLACEMENTMAP - uniform sampler2D displacementMap; - uniform float displacementScale; - uniform float displacementBias; -#endif`,displacementmap_vertex:`#ifdef USE_DISPLACEMENTMAP - transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,emissivemap_fragment:`#ifdef USE_EMISSIVEMAP - vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); - #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE - emissiveColor = sRGBTransferEOTF( emissiveColor ); - #endif - totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,emissivemap_pars_fragment:`#ifdef USE_EMISSIVEMAP - uniform sampler2D emissiveMap; -#endif`,colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:`vec4 LinearTransferOETF( in vec4 value ) { - return value; -} -vec4 sRGBTransferEOTF( in vec4 value ) { - return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a ); -} -vec4 sRGBTransferOETF( in vec4 value ) { - return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); -}`,envmap_fragment:`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vec3 cameraToFrag; - if ( isOrthographic ) { - cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToFrag = normalize( vWorldPosition - cameraPosition ); - } - vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vec3 reflectVec = reflect( cameraToFrag, worldNormal ); - #else - vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); - #endif - #else - vec3 reflectVec = vReflect; - #endif - #ifdef ENVMAP_TYPE_CUBE - vec4 envColor = textureCube( envMap, envMapRotation * reflectVec ); - #ifdef ENVMAP_BLENDING_MULTIPLY - outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_MIX ) - outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_ADD ) - outgoingLight += envColor.xyz * specularStrength * reflectivity; - #endif - #endif -#endif`,envmap_common_pars_fragment:`#ifdef USE_ENVMAP - uniform float envMapIntensity; - uniform mat3 envMapRotation; - #ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; - #else - uniform sampler2D envMap; - #endif -#endif`,envmap_pars_fragment:`#ifdef USE_ENVMAP - uniform float reflectivity; - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - varying vec3 vWorldPosition; - uniform float refractionRatio; - #else - varying vec3 vReflect; - #endif -#endif`,envmap_pars_vertex:`#ifdef USE_ENVMAP - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - - varying vec3 vWorldPosition; - #else - varying vec3 vReflect; - uniform float refractionRatio; - #endif -#endif`,envmap_physical_pars_fragment:`#ifdef USE_ENVMAP - vec3 getIBLIrradiance( const in vec3 normal ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 ); - return PI * envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 reflectVec = reflect( - viewDir, normal ); - reflectVec = normalize( mix( reflectVec, normal, pow4( roughness ) ) ); - reflectVec = transformDirectionByInverseViewMatrix( reflectVec, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); - return envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = normalize( cross( bentNormal, bitangent ) ); - bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); - return getIBLRadiance( viewDir, bentNormal, roughness ); - #else - return vec3( 0.0 ); - #endif - } - #endif -#endif`,envmap_vertex:`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vWorldPosition = worldPosition.xyz; - #else - vec3 cameraToVertex; - if ( isOrthographic ) { - cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); - } - vec3 worldNormal = transformNormalByInverseViewMatrix( transformedNormal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vReflect = reflect( cameraToVertex, worldNormal ); - #else - vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); - #endif - #endif -#endif`,fog_vertex:`#ifdef USE_FOG - vFogDepth = - mvPosition.z; -#endif`,fog_pars_vertex:`#ifdef USE_FOG - varying float vFogDepth; -#endif`,fog_fragment:`#ifdef USE_FOG - #ifdef FOG_EXP2 - float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); - #else - float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); - #endif - gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); -#endif`,fog_pars_fragment:`#ifdef USE_FOG - uniform vec3 fogColor; - varying float vFogDepth; - #ifdef FOG_EXP2 - uniform float fogDensity; - #else - uniform float fogNear; - uniform float fogFar; - #endif -#endif`,gradientmap_pars_fragment:`#ifdef USE_GRADIENTMAP - uniform sampler2D gradientMap; -#endif -vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { - float dotNL = dot( normal, lightDirection ); - vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); - #ifdef USE_GRADIENTMAP - return vec3( texture2D( gradientMap, coord ).r ); - #else - vec2 fw = fwidth( coord ) * 0.5; - return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); - #endif -}`,lightmap_pars_fragment:`#ifdef USE_LIGHTMAP - uniform sampler2D lightMap; - uniform float lightMapIntensity; -#endif`,lights_lambert_fragment:`LambertMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,lights_lambert_pars_fragment:`varying vec3 vViewPosition; -struct LambertMaterial { - vec3 diffuseColor; - float specularStrength; -}; -void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Lambert -#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,lights_pars_begin:`uniform bool receiveShadow; -uniform vec3 ambientLightColor; -#if defined( USE_LIGHT_PROBES ) - uniform vec3 lightProbe[ 9 ]; -#endif -vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { - float x = normal.x, y = normal.y, z = normal.z; - vec3 result = shCoefficients[ 0 ] * 0.886227; - result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; - result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; - result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; - result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; - result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; - result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); - result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; - result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); - return result; -} -vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { - vec3 worldNormal = transformNormalByInverseViewMatrix( normal, viewMatrix ); - vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); - return irradiance; -} -vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { - vec3 irradiance = ambientLightColor; - return irradiance; -} -float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { - float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); - if ( cutoffDistance > 0.0 ) { - distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); - } - return distanceFalloff; -} -float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { - return smoothstep( coneCosine, penumbraCosine, angleCosine ); -} -#if NUM_DIR_LIGHTS > 0 - struct DirectionalLight { - vec3 direction; - vec3 color; - }; - uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; - void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { - light.color = directionalLight.color; - light.direction = directionalLight.direction; - light.visible = true; - } -#endif -#if NUM_POINT_LIGHTS > 0 - struct PointLight { - vec3 position; - vec3 color; - float distance; - float decay; - }; - uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; - void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = pointLight.position - geometryPosition; - light.direction = normalize( lVector ); - float lightDistance = length( lVector ); - light.color = pointLight.color; - light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } -#endif -#if NUM_SPOT_LIGHTS > 0 - struct SpotLight { - vec3 position; - vec3 direction; - vec3 color; - float distance; - float decay; - float coneCos; - float penumbraCos; - }; - uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; - void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = spotLight.position - geometryPosition; - light.direction = normalize( lVector ); - float angleCos = dot( light.direction, spotLight.direction ); - float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); - if ( spotAttenuation > 0.0 ) { - float lightDistance = length( lVector ); - light.color = spotLight.color * spotAttenuation; - light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } else { - light.color = vec3( 0.0 ); - light.visible = false; - } - } -#endif -#if NUM_RECT_AREA_LIGHTS > 0 - struct RectAreaLight { - vec3 color; - vec3 position; - vec3 halfWidth; - vec3 halfHeight; - }; - uniform sampler2D ltc_1; uniform sampler2D ltc_2; - uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; -#endif -#if NUM_HEMI_LIGHTS > 0 - struct HemisphereLight { - vec3 direction; - vec3 skyColor; - vec3 groundColor; - }; - uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; - vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { - float dotNL = dot( normal, hemiLight.direction ); - float hemiDiffuseWeight = 0.5 * dotNL + 0.5; - vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); - return irradiance; - } -#endif -#include `,lights_toon_fragment:`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,lights_toon_pars_fragment:`varying vec3 vViewPosition; -struct ToonMaterial { - vec3 diffuseColor; -}; -void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Toon -#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,lights_phong_fragment:`BlinnPhongMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularColor = specular; -material.specularShininess = shininess; -material.specularStrength = specularStrength;`,lights_phong_pars_fragment:`varying vec3 vViewPosition; -struct BlinnPhongMaterial { - vec3 diffuseColor; - vec3 specularColor; - float specularShininess; - float specularStrength; -}; -void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); - reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; -} -void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_BlinnPhong -#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,lights_physical_fragment:`PhysicalMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.diffuseContribution = diffuseColor.rgb * ( 1.0 - metalnessFactor ); -material.metalness = metalnessFactor; -vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); -float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); -material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; -material.roughness = min( material.roughness, 1.0 ); -#ifdef IOR - material.ior = ior; - #ifdef USE_SPECULAR - float specularIntensityFactor = specularIntensity; - vec3 specularColorFactor = specularColor; - #ifdef USE_SPECULAR_COLORMAP - specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; - #endif - material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); - #else - float specularIntensityFactor = 1.0; - vec3 specularColorFactor = vec3( 1.0 ); - material.specularF90 = 1.0; - #endif - material.specularColor = min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor; - material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor ); -#else - material.specularColor = vec3( 0.04 ); - material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor ); - material.specularF90 = 1.0; -#endif -#ifdef USE_CLEARCOAT - material.clearcoat = clearcoat; - material.clearcoatRoughness = clearcoatRoughness; - material.clearcoatF0 = vec3( 0.04 ); - material.clearcoatF90 = 1.0; - #ifdef USE_CLEARCOATMAP - material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; - #endif - #ifdef USE_CLEARCOAT_ROUGHNESSMAP - material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; - #endif - material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); - material.clearcoatRoughness += geometryRoughness; - material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); -#endif -#ifdef USE_DISPERSION - material.dispersion = dispersion; -#endif -#ifdef USE_IRIDESCENCE - material.iridescence = iridescence; - material.iridescenceIOR = iridescenceIOR; - #ifdef USE_IRIDESCENCEMAP - material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; - #endif - #ifdef USE_IRIDESCENCE_THICKNESSMAP - material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; - #else - material.iridescenceThickness = iridescenceThicknessMaximum; - #endif -#endif -#ifdef USE_SHEEN - material.sheenColor = sheenColor; - #ifdef USE_SHEEN_COLORMAP - material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; - #endif - material.sheenRoughness = clamp( sheenRoughness, 0.0001, 1.0 ); - #ifdef USE_SHEEN_ROUGHNESSMAP - material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; - #endif -#endif -#ifdef USE_ANISOTROPY - #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; - vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; - #else - vec2 anisotropyV = anisotropyVector; - #endif - material.anisotropy = length( anisotropyV ); - if( material.anisotropy == 0.0 ) { - anisotropyV = vec2( 1.0, 0.0 ); - } else { - anisotropyV /= material.anisotropy; - material.anisotropy = saturate( material.anisotropy ); - } - material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); - material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; - material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; -#endif`,lights_physical_pars_fragment:`uniform sampler2D dfgLUT; -struct PhysicalMaterial { - vec3 diffuseColor; - vec3 diffuseContribution; - vec3 specularColor; - vec3 specularColorBlended; - float roughness; - float metalness; - float specularF90; - float dispersion; - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - vec3 iridescenceFresnelDielectric; - vec3 iridescenceFresnelMetallic; - #endif - #ifdef USE_SHEEN - vec3 sheenColor; - float sheenRoughness; - #endif - #ifdef IOR - float ior; - #endif - #ifdef USE_TRANSMISSION - float transmission; - float transmissionAlpha; - float thickness; - float attenuationDistance; - vec3 attenuationColor; - #endif - #ifdef USE_ANISOTROPY - float anisotropy; - float alphaT; - vec3 anisotropyT; - vec3 anisotropyB; - #endif -}; -vec3 clearcoatSpecularDirect = vec3( 0.0 ); -vec3 clearcoatSpecularIndirect = vec3( 0.0 ); -vec3 sheenSpecularDirect = vec3( 0.0 ); -vec3 sheenSpecularIndirect = vec3(0.0 ); -vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { - float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); - float x2 = x * x; - float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); - return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); -} -float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { - float a2 = pow2( alpha ); - float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); - float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); - return 0.5 / max( gv + gl, EPSILON ); -} -float D_GGX( const in float alpha, const in float dotNH ) { - float a2 = pow2( alpha ); - float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; - return RECIPROCAL_PI * a2 / pow2( denom ); -} -#ifdef USE_ANISOTROPY - float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { - float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); - float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); - return 0.5 / max( gv + gl, EPSILON ); - } - float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { - float a2 = alphaT * alphaB; - highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); - highp float v2 = dot( v, v ); - float w2 = a2 / v2; - return RECIPROCAL_PI * a2 * pow2 ( w2 ); - } -#endif -#ifdef USE_CLEARCOAT - vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { - vec3 f0 = material.clearcoatF0; - float f90 = material.clearcoatF90; - float roughness = material.clearcoatRoughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - return F * ( V * D ); - } -#endif -vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 f0 = material.specularColorBlended; - float f90 = material.specularF90; - float roughness = material.roughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - #ifdef USE_IRIDESCENCE - F = mix( F, material.iridescenceFresnel, material.iridescence ); - #endif - #ifdef USE_ANISOTROPY - float dotTL = dot( material.anisotropyT, lightDir ); - float dotTV = dot( material.anisotropyT, viewDir ); - float dotTH = dot( material.anisotropyT, halfDir ); - float dotBL = dot( material.anisotropyB, lightDir ); - float dotBV = dot( material.anisotropyB, viewDir ); - float dotBH = dot( material.anisotropyB, halfDir ); - float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); - float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); - #else - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - #endif - return F * ( V * D ); -} -vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { - const float LUT_SIZE = 64.0; - const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; - const float LUT_BIAS = 0.5 / LUT_SIZE; - float dotNV = saturate( dot( N, V ) ); - vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); - uv = uv * LUT_SCALE + LUT_BIAS; - return uv; -} -float LTC_ClippedSphereFormFactor( const in vec3 f ) { - float l = length( f ); - return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); -} -vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { - float x = dot( v1, v2 ); - float y = abs( x ); - float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; - float b = 3.4175940 + ( 4.1616724 + y ) * y; - float v = a / b; - float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; - return cross( v1, v2 ) * theta_sintheta; -} -vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { - vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; - vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; - vec3 lightNormal = cross( v1, v2 ); - if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); - vec3 T1, T2; - T1 = normalize( V - N * dot( V, N ) ); - T2 = - cross( N, T1 ); - mat3 mat = mInv * transpose( mat3( T1, T2, N ) ); - vec3 coords[ 4 ]; - coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); - coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); - coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); - coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); - coords[ 0 ] = normalize( coords[ 0 ] ); - coords[ 1 ] = normalize( coords[ 1 ] ); - coords[ 2 ] = normalize( coords[ 2 ] ); - coords[ 3 ] = normalize( coords[ 3 ] ); - vec3 vectorFormFactor = vec3( 0.0 ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); - float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); - return vec3( result ); -} -#if defined( USE_SHEEN ) -float D_Charlie( float roughness, float dotNH ) { - float alpha = pow2( roughness ); - float invAlpha = 1.0 / alpha; - float cos2h = dotNH * dotNH; - float sin2h = max( 1.0 - cos2h, 0.0078125 ); - return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); -} -float V_Neubelt( float dotNV, float dotNL ) { - return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); -} -vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float D = D_Charlie( sheenRoughness, dotNH ); - float V = V_Neubelt( dotNV, dotNL ); - return sheenColor * ( D * V ); -} -#endif -float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - float r2 = roughness * roughness; - float rInv = 1.0 / ( roughness + 0.1 ); - float a = -1.9362 + 1.0678 * roughness + 0.4573 * r2 - 0.8469 * rInv; - float b = -0.6014 + 0.5538 * roughness - 0.4670 * r2 - 0.1255 * rInv; - float DG = exp( a * dotNV + b ); - return saturate( DG ); -} -vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg; - return specularColor * fab.x + specularF90 * fab.y; -} -#ifdef USE_IRIDESCENCE -void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#else -void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#endif - float dotNV = saturate( dot( normal, viewDir ) ); - vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg; - #ifdef USE_IRIDESCENCE - vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); - #else - vec3 Fr = specularColor; - #endif - vec3 FssEss = Fr * fab.x + specularF90 * fab.y; - float Ess = fab.x + fab.y; - float Ems = 1.0 - Ess; - vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); - singleScatter += FssEss; - multiScatter += Fms * Ems; -} -vec3 BRDF_GGX_Multiscatter( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 singleScatter = BRDF_GGX( lightDir, viewDir, normal, material ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - vec2 dfgV = texture2D( dfgLUT, vec2( material.roughness, dotNV ) ).rg; - vec2 dfgL = texture2D( dfgLUT, vec2( material.roughness, dotNL ) ).rg; - vec3 FssEss_V = material.specularColorBlended * dfgV.x + material.specularF90 * dfgV.y; - vec3 FssEss_L = material.specularColorBlended * dfgL.x + material.specularF90 * dfgL.y; - float Ess_V = dfgV.x + dfgV.y; - float Ess_L = dfgL.x + dfgL.y; - float Ems_V = 1.0 - Ess_V; - float Ems_L = 1.0 - Ess_L; - vec3 Favg = material.specularColorBlended + ( 1.0 - material.specularColorBlended ) * 0.047619; - vec3 Fms = FssEss_V * FssEss_L * Favg / ( 1.0 - Ems_V * Ems_L * Favg + EPSILON ); - float compensationFactor = Ems_V * Ems_L; - vec3 multiScatter = Fms * compensationFactor; - return singleScatter + multiScatter; -} -#if NUM_RECT_AREA_LIGHTS > 0 - void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - vec3 normal = geometryNormal; - vec3 viewDir = geometryViewDir; - vec3 position = geometryPosition; - vec3 lightPos = rectAreaLight.position; - vec3 halfWidth = rectAreaLight.halfWidth; - vec3 halfHeight = rectAreaLight.halfHeight; - vec3 lightColor = rectAreaLight.color; - float roughness = material.roughness; - vec3 rectCoords[ 4 ]; - rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; - rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; - rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; - vec2 uv = LTC_Uv( normal, viewDir, roughness ); - vec4 t1 = texture2D( ltc_1, uv ); - vec4 t2 = texture2D( ltc_2, uv ); - mat3 mInv = mat3( - vec3( t1.x, 0, t1.y ), - vec3( 0, 1, 0 ), - vec3( t1.z, 0, t1.w ) - ); - vec3 fresnel = ( material.specularColorBlended * t2.x + ( material.specularF90 - material.specularColorBlended ) * t2.y ); - reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); - reflectedLight.directDiffuse += lightColor * material.diffuseContribution * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); - #ifdef USE_CLEARCOAT - vec3 Ncc = geometryClearcoatNormal; - vec2 uvClearcoat = LTC_Uv( Ncc, viewDir, material.clearcoatRoughness ); - vec4 t1Clearcoat = texture2D( ltc_1, uvClearcoat ); - vec4 t2Clearcoat = texture2D( ltc_2, uvClearcoat ); - mat3 mInvClearcoat = mat3( - vec3( t1Clearcoat.x, 0, t1Clearcoat.y ), - vec3( 0, 1, 0 ), - vec3( t1Clearcoat.z, 0, t1Clearcoat.w ) - ); - vec3 fresnelClearcoat = material.clearcoatF0 * t2Clearcoat.x + ( material.clearcoatF90 - material.clearcoatF0 ) * t2Clearcoat.y; - clearcoatSpecularDirect += lightColor * fresnelClearcoat * LTC_Evaluate( Ncc, viewDir, position, mInvClearcoat, rectCoords ); - #endif - } -#endif -void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - #ifdef USE_CLEARCOAT - float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); - vec3 ccIrradiance = dotNLcc * directLight.color; - clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); - #endif - #ifdef USE_SHEEN - - sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); - - float sheenAlbedoV = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - float sheenAlbedoL = IBLSheenBRDF( geometryNormal, directLight.direction, material.sheenRoughness ); - - float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * max( sheenAlbedoV, sheenAlbedoL ); - - irradiance *= sheenEnergyComp; - - #endif - reflectedLight.directSpecular += irradiance * BRDF_GGX_Multiscatter( directLight.direction, geometryViewDir, geometryNormal, material ); - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseContribution ); -} -void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - vec3 diffuse = irradiance * BRDF_Lambert( material.diffuseContribution ); - #ifdef USE_SHEEN - float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo; - diffuse *= sheenEnergyComp; - #endif - reflectedLight.indirectDiffuse += diffuse; -} -void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { - #ifdef USE_CLEARCOAT - clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); - #endif - #ifdef USE_SHEEN - sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ) * RECIPROCAL_PI; - #endif - vec3 singleScatteringDielectric = vec3( 0.0 ); - vec3 multiScatteringDielectric = vec3( 0.0 ); - vec3 singleScatteringMetallic = vec3( 0.0 ); - vec3 multiScatteringMetallic = vec3( 0.0 ); - #ifdef USE_IRIDESCENCE - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnelDielectric, material.roughness, singleScatteringDielectric, multiScatteringDielectric ); - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.diffuseColor, material.specularF90, material.iridescence, material.iridescenceFresnelMetallic, material.roughness, singleScatteringMetallic, multiScatteringMetallic ); - #else - computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScatteringDielectric, multiScatteringDielectric ); - computeMultiscattering( geometryNormal, geometryViewDir, material.diffuseColor, material.specularF90, material.roughness, singleScatteringMetallic, multiScatteringMetallic ); - #endif - vec3 singleScattering = mix( singleScatteringDielectric, singleScatteringMetallic, material.metalness ); - vec3 multiScattering = mix( multiScatteringDielectric, multiScatteringMetallic, material.metalness ); - vec3 totalScatteringDielectric = singleScatteringDielectric + multiScatteringDielectric; - vec3 diffuse = material.diffuseContribution * ( 1.0 - totalScatteringDielectric ); - vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; - vec3 indirectSpecular = radiance * singleScattering; - indirectSpecular += multiScattering * cosineWeightedIrradiance; - vec3 indirectDiffuse = diffuse * cosineWeightedIrradiance; - #ifdef USE_SHEEN - float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo; - indirectSpecular *= sheenEnergyComp; - indirectDiffuse *= sheenEnergyComp; - #endif - reflectedLight.indirectSpecular += indirectSpecular; - reflectedLight.indirectDiffuse += indirectDiffuse; -} -#define RE_Direct RE_Direct_Physical -#define RE_Direct_RectArea RE_Direct_RectArea_Physical -#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical -#define RE_IndirectSpecular RE_IndirectSpecular_Physical -float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { - return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); -}`,lights_fragment_begin:` -vec3 geometryPosition = - vViewPosition; -vec3 geometryNormal = normal; -vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); -vec3 geometryClearcoatNormal = vec3( 0.0 ); -#ifdef USE_CLEARCOAT - geometryClearcoatNormal = clearcoatNormal; -#endif -#ifdef USE_IRIDESCENCE - float dotNVi = saturate( dot( normal, geometryViewDir ) ); - if ( material.iridescenceThickness == 0.0 ) { - material.iridescence = 0.0; - } else { - material.iridescence = saturate( material.iridescence ); - } - if ( material.iridescence > 0.0 ) { - material.iridescenceFresnelDielectric = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); - material.iridescenceFresnelMetallic = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.diffuseColor ); - material.iridescenceFresnel = mix( material.iridescenceFresnelDielectric, material.iridescenceFresnelMetallic, material.metalness ); - material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); - } -#endif -IncidentLight directLight; -#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) - PointLight pointLight; - #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { - pointLight = pointLights[ i ]; - getPointLightInfo( pointLight, geometryPosition, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) ) - pointLightShadow = pointLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) - SpotLight spotLight; - vec4 spotColor; - vec3 spotLightCoord; - bool inSpotLightMap; - #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { - spotLight = spotLights[ i ]; - getSpotLightInfo( spotLight, geometryPosition, directLight ); - #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX - #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS - #else - #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #endif - #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) - spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; - inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); - spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); - directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; - #endif - #undef SPOT_LIGHT_MAP_INDEX - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - spotLightShadow = spotLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) - DirectionalLight directionalLight; - #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { - directionalLight = directionalLights[ i ]; - getDirectionalLightInfo( directionalLight, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) - directionalLightShadow = directionalLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) - RectAreaLight rectAreaLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { - rectAreaLight = rectAreaLights[ i ]; - RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if defined( RE_IndirectDiffuse ) - vec3 iblIrradiance = vec3( 0.0 ); - vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); - #if defined( USE_LIGHT_PROBES ) - irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); - #endif - #if ( NUM_HEMI_LIGHTS > 0 ) - #pragma unroll_loop_start - for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { - irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); - } - #pragma unroll_loop_end - #endif - #ifdef USE_LIGHT_PROBES_GRID - vec3 probeWorldPos = ( ( vec4( geometryPosition, 1.0 ) - viewMatrix[ 3 ] ) * viewMatrix ).xyz; - vec3 probeWorldNormal = transformNormalByInverseViewMatrix( geometryNormal, viewMatrix ); - irradiance += getLightProbeGridIrradiance( probeWorldPos, probeWorldNormal ); - #endif -#endif -#if defined( RE_IndirectSpecular ) - vec3 radiance = vec3( 0.0 ); - vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,lights_fragment_maps:`#if defined( RE_IndirectDiffuse ) - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - irradiance += lightMapIrradiance; - #endif - #if defined( USE_ENVMAP ) && defined( ENVMAP_TYPE_CUBE_UV ) - #if defined( STANDARD ) || defined( LAMBERT ) || defined( PHONG ) - iblIrradiance += getIBLIrradiance( geometryNormal ); - #endif - #endif -#endif -#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); - #else - radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); - #endif - #ifdef USE_CLEARCOAT - clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); - #endif -#endif`,lights_fragment_end:`#if defined( RE_IndirectDiffuse ) - #if defined( LAMBERT ) || defined( PHONG ) - irradiance += iblIrradiance; - #endif - RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif -#if defined( RE_IndirectSpecular ) - RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif`,lightprobes_pars_fragment:`#ifdef USE_LIGHT_PROBES_GRID -uniform highp sampler3D probesSH; -uniform vec3 probesMin; -uniform vec3 probesMax; -uniform vec3 probesResolution; -vec3 getLightProbeGridIrradiance( vec3 worldPos, vec3 worldNormal ) { - vec3 res = probesResolution; - vec3 gridRange = probesMax - probesMin; - vec3 resMinusOne = res - 1.0; - vec3 probeSpacing = gridRange / resMinusOne; - vec3 samplePos = worldPos + worldNormal * probeSpacing * 0.5; - vec3 uvw = clamp( ( samplePos - probesMin ) / gridRange, 0.0, 1.0 ); - uvw = uvw * resMinusOne / res + 0.5 / res; - float nz = res.z; - float paddedSlices = nz + 2.0; - float atlasDepth = 7.0 * paddedSlices; - float uvZBase = uvw.z * nz + 1.0; - vec4 s0 = texture( probesSH, vec3( uvw.xy, ( uvZBase ) / atlasDepth ) ); - vec4 s1 = texture( probesSH, vec3( uvw.xy, ( uvZBase + paddedSlices ) / atlasDepth ) ); - vec4 s2 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 2.0 * paddedSlices ) / atlasDepth ) ); - vec4 s3 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 3.0 * paddedSlices ) / atlasDepth ) ); - vec4 s4 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 4.0 * paddedSlices ) / atlasDepth ) ); - vec4 s5 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 5.0 * paddedSlices ) / atlasDepth ) ); - vec4 s6 = texture( probesSH, vec3( uvw.xy, ( uvZBase + 6.0 * paddedSlices ) / atlasDepth ) ); - vec3 c0 = s0.xyz; - vec3 c1 = vec3( s0.w, s1.xy ); - vec3 c2 = vec3( s1.zw, s2.x ); - vec3 c3 = s2.yzw; - vec3 c4 = s3.xyz; - vec3 c5 = vec3( s3.w, s4.xy ); - vec3 c6 = vec3( s4.zw, s5.x ); - vec3 c7 = s5.yzw; - vec3 c8 = s6.xyz; - float x = worldNormal.x, y = worldNormal.y, z = worldNormal.z; - vec3 result = c0 * 0.886227; - result += c1 * 2.0 * 0.511664 * y; - result += c2 * 2.0 * 0.511664 * z; - result += c3 * 2.0 * 0.511664 * x; - result += c4 * 2.0 * 0.429043 * x * y; - result += c5 * 2.0 * 0.429043 * y * z; - result += c6 * ( 0.743125 * z * z - 0.247708 ); - result += c7 * 2.0 * 0.429043 * x * z; - result += c8 * 0.429043 * ( x * x - y * y ); - return max( result, vec3( 0.0 ) ); -} -#endif`,logdepthbuf_fragment:`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) - gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,logdepthbuf_pars_fragment:`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) - uniform float logDepthBufFC; - varying float vFragDepth; - varying float vIsPerspective; -#endif`,logdepthbuf_pars_vertex:`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER - varying float vFragDepth; - varying float vIsPerspective; -#endif`,logdepthbuf_vertex:`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER - vFragDepth = 1.0 + gl_Position.w; - vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); -#endif`,map_fragment:`#ifdef USE_MAP - vec4 sampledDiffuseColor = texture2D( map, vMapUv ); - #ifdef DECODE_VIDEO_TEXTURE - sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); - #endif - diffuseColor *= sampledDiffuseColor; -#endif`,map_pars_fragment:`#ifdef USE_MAP - uniform sampler2D map; -#endif`,map_particle_fragment:`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - #if defined( USE_POINTS_UV ) - vec2 uv = vUv; - #else - vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; - #endif -#endif -#ifdef USE_MAP - diffuseColor *= texture2D( map, uv ); -#endif -#ifdef USE_ALPHAMAP - diffuseColor.a *= texture2D( alphaMap, uv ).g; -#endif`,map_particle_pars_fragment:`#if defined( USE_POINTS_UV ) - varying vec2 vUv; -#else - #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - uniform mat3 uvTransform; - #endif -#endif -#ifdef USE_MAP - uniform sampler2D map; -#endif -#ifdef USE_ALPHAMAP - uniform sampler2D alphaMap; -#endif`,metalnessmap_fragment:`float metalnessFactor = metalness; -#ifdef USE_METALNESSMAP - vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); - metalnessFactor *= texelMetalness.b; -#endif`,metalnessmap_pars_fragment:`#ifdef USE_METALNESSMAP - uniform sampler2D metalnessMap; -#endif`,morphinstance_vertex:`#ifdef USE_INSTANCING_MORPH - float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r; - } -#endif`,morphcolor_vertex:`#if defined( USE_MORPHCOLORS ) - vColor *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - #if defined( USE_COLOR_ALPHA ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; - #elif defined( USE_COLOR ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; - #endif - } -#endif`,morphnormal_vertex:`#ifdef USE_MORPHNORMALS - objectNormal *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; - } -#endif`,morphtarget_pars_vertex:`#ifdef USE_MORPHTARGETS - #ifndef USE_INSTANCING_MORPH - uniform float morphTargetBaseInfluence; - uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - #endif - uniform sampler2DArray morphTargetsTexture; - uniform ivec2 morphTargetsTextureSize; - vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { - int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; - int y = texelIndex / morphTargetsTextureSize.x; - int x = texelIndex - y * morphTargetsTextureSize.x; - ivec3 morphUV = ivec3( x, y, morphTargetIndex ); - return texelFetch( morphTargetsTexture, morphUV, 0 ); - } -#endif`,morphtarget_vertex:`#ifdef USE_MORPHTARGETS - transformed *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; - } -#endif`,normal_fragment_begin:`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; -#ifdef FLAT_SHADED - vec3 fdx = dFdx( vViewPosition ); - vec3 fdy = dFdy( vViewPosition ); - vec3 normal = normalize( cross( fdx, fdy ) ); -#else - vec3 normal = normalize( vNormal ); - #ifdef DOUBLE_SIDED - normal *= faceDirection; - #endif -#endif -#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) - #ifdef USE_TANGENT - mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn = getTangentFrame( - vViewPosition, normal, - #if defined( USE_NORMALMAP ) - vNormalMapUv - #elif defined( USE_CLEARCOAT_NORMALMAP ) - vClearcoatNormalMapUv - #else - vUv - #endif - ); - #endif - #ifdef DOUBLE_SIDED - tbn[0] *= faceDirection; - tbn[1] *= faceDirection; - #endif -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - #ifdef USE_TANGENT - mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); - #endif - #ifdef DOUBLE_SIDED - tbn2[0] *= faceDirection; - tbn2[1] *= faceDirection; - #endif -#endif -vec3 nonPerturbedNormal = normal;`,normal_fragment_maps:`#ifdef USE_NORMALMAP_OBJECTSPACE - normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - #ifdef FLIP_SIDED - normal = - normal; - #endif - #ifdef DOUBLE_SIDED - normal = normal * faceDirection; - #endif - normal = normalize( normalMatrix * normal ); -#elif defined( USE_NORMALMAP_TANGENTSPACE ) - vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - #if defined( USE_PACKED_NORMALMAP ) - mapN = vec3( mapN.xy, sqrt( saturate( 1.0 - dot( mapN.xy, mapN.xy ) ) ) ); - #endif - mapN.xy *= normalScale; - normal = normalize( tbn * mapN ); -#elif defined( USE_BUMPMAP ) - normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,normal_pars_fragment:`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,normal_pars_vertex:`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,normal_vertex:`#ifndef FLAT_SHADED - vNormal = normalize( transformedNormal ); - #ifdef USE_TANGENT - vTangent = normalize( transformedTangent ); - vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); - #ifdef FLIP_SIDED - vBitangent = - vBitangent; - #endif - #endif -#endif`,normalmap_pars_fragment:`#ifdef USE_NORMALMAP - uniform sampler2D normalMap; - uniform vec2 normalScale; -#endif -#ifdef USE_NORMALMAP_OBJECTSPACE - uniform mat3 normalMatrix; -#endif -#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) - mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { - vec3 q0 = dFdx( eye_pos.xyz ); - vec3 q1 = dFdy( eye_pos.xyz ); - vec2 st0 = dFdx( uv.st ); - vec2 st1 = dFdy( uv.st ); - vec3 N = surf_norm; - vec3 q1perp = cross( q1, N ); - vec3 q0perp = cross( N, q0 ); - vec3 T = q1perp * st0.x + q0perp * st1.x; - vec3 B = q1perp * st0.y + q0perp * st1.y; - float det = max( dot( T, T ), dot( B, B ) ); - float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); - return mat3( T * scale, B * scale, N ); - } -#endif`,clearcoat_normal_fragment_begin:`#ifdef USE_CLEARCOAT - vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,clearcoat_normal_fragment_maps:`#ifdef USE_CLEARCOAT_NORMALMAP - vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; - clearcoatMapN.xy *= clearcoatNormalScale; - clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,clearcoat_pars_fragment:`#ifdef USE_CLEARCOATMAP - uniform sampler2D clearcoatMap; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform sampler2D clearcoatNormalMap; - uniform vec2 clearcoatNormalScale; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform sampler2D clearcoatRoughnessMap; -#endif`,iridescence_pars_fragment:`#ifdef USE_IRIDESCENCEMAP - uniform sampler2D iridescenceMap; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform sampler2D iridescenceThicknessMap; -#endif`,opaque_fragment:`#ifdef OPAQUE -diffuseColor.a = 1.0; -#endif -#ifdef USE_TRANSMISSION -diffuseColor.a *= material.transmissionAlpha; -#endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,packing:`vec3 packNormalToRGB( const in vec3 normal ) { - return normalize( normal ) * 0.5 + 0.5; -} -vec3 unpackRGBToNormal( const in vec3 rgb ) { - return 2.0 * rgb.xyz - 1.0; -} -const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.; -const float Inv255 = 1. / 255.; -const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 ); -const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g ); -const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b ); -const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a ); -vec4 packDepthToRGBA( const in float v ) { - if( v <= 0.0 ) - return vec4( 0., 0., 0., 0. ); - if( v >= 1.0 ) - return vec4( 1., 1., 1., 1. ); - float vuf; - float af = modf( v * PackFactors.a, vuf ); - float bf = modf( vuf * ShiftRight8, vuf ); - float gf = modf( vuf * ShiftRight8, vuf ); - return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af ); -} -vec3 packDepthToRGB( const in float v ) { - if( v <= 0.0 ) - return vec3( 0., 0., 0. ); - if( v >= 1.0 ) - return vec3( 1., 1., 1. ); - float vuf; - float bf = modf( v * PackFactors.b, vuf ); - float gf = modf( vuf * ShiftRight8, vuf ); - return vec3( vuf * Inv255, gf * PackUpscale, bf ); -} -vec2 packDepthToRG( const in float v ) { - if( v <= 0.0 ) - return vec2( 0., 0. ); - if( v >= 1.0 ) - return vec2( 1., 1. ); - float vuf; - float gf = modf( v * 256., vuf ); - return vec2( vuf * Inv255, gf ); -} -float unpackRGBAToDepth( const in vec4 v ) { - return dot( v, UnpackFactors4 ); -} -float unpackRGBToDepth( const in vec3 v ) { - return dot( v, UnpackFactors3 ); -} -float unpackRGToDepth( const in vec2 v ) { - return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g; -} -vec4 pack2HalfToRGBA( const in vec2 v ) { - vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); - return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); -} -vec2 unpackRGBATo2Half( const in vec4 v ) { - return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); -} -float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { - return ( viewZ + near ) / ( near - far ); -} -float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { - #ifdef USE_REVERSED_DEPTH_BUFFER - - return depth * ( far - near ) - far; - #else - return depth * ( near - far ) - near; - #endif -} -float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { - return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); -} -float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { - - #ifdef USE_REVERSED_DEPTH_BUFFER - return ( near * far ) / ( ( near - far ) * depth - near ); - #else - return ( near * far ) / ( ( far - near ) * depth - far ); - #endif -}`,premultiplied_alpha_fragment:`#ifdef PREMULTIPLIED_ALPHA - gl_FragColor.rgb *= gl_FragColor.a; -#endif`,project_vertex:`vec4 mvPosition = vec4( transformed, 1.0 ); -#ifdef USE_BATCHING - mvPosition = batchingMatrix * mvPosition; -#endif -#ifdef USE_INSTANCING - mvPosition = instanceMatrix * mvPosition; -#endif -mvPosition = modelViewMatrix * mvPosition; -gl_Position = projectionMatrix * mvPosition;`,dithering_fragment:`#ifdef DITHERING - gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,dithering_pars_fragment:`#ifdef DITHERING - vec3 dithering( vec3 color ) { - float grid_position = rand( gl_FragCoord.xy ); - vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); - dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); - return color + dither_shift_RGB; - } -#endif`,roughnessmap_fragment:`float roughnessFactor = roughness; -#ifdef USE_ROUGHNESSMAP - vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); - roughnessFactor *= texelRoughness.g; -#endif`,roughnessmap_pars_fragment:`#ifdef USE_ROUGHNESSMAP - uniform sampler2D roughnessMap; -#endif`,shadowmap_pars_fragment:`#if NUM_SPOT_LIGHT_COORDS > 0 - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#if NUM_SPOT_LIGHT_MAPS > 0 - uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - #if defined( SHADOWMAP_TYPE_PCF ) - uniform sampler2DShadow directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; - #else - uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - #if defined( SHADOWMAP_TYPE_PCF ) - uniform sampler2DShadow spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - #else - uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - struct SpotLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #if defined( SHADOWMAP_TYPE_PCF ) - uniform samplerCubeShadow pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; - #elif defined( SHADOWMAP_TYPE_BASIC ) - uniform samplerCube pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; - #endif - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif - #if defined( SHADOWMAP_TYPE_PCF ) - float interleavedGradientNoise( vec2 position ) { - return fract( 52.9829189 * fract( dot( position, vec2( 0.06711056, 0.00583715 ) ) ) ); - } - vec2 vogelDiskSample( int sampleIndex, int samplesCount, float phi ) { - const float goldenAngle = 2.399963229728653; - float r = sqrt( ( float( sampleIndex ) + 0.5 ) / float( samplesCount ) ); - float theta = float( sampleIndex ) * goldenAngle + phi; - return vec2( cos( theta ), sin( theta ) ) * r; - } - #endif - #if defined( SHADOWMAP_TYPE_PCF ) - float getShadow( sampler2DShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - shadowCoord.z += shadowBias; - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float radius = shadowRadius * texelSize.x; - float phi = interleavedGradientNoise( gl_FragCoord.xy ) * PI2; - shadow = ( - texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 0, 5, phi ) * radius, shadowCoord.z ) ) + - texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 1, 5, phi ) * radius, shadowCoord.z ) ) + - texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 2, 5, phi ) * radius, shadowCoord.z ) ) + - texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 3, 5, phi ) * radius, shadowCoord.z ) ) + - texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 4, 5, phi ) * radius, shadowCoord.z ) ) - ) * 0.2; - } - return mix( 1.0, shadow, shadowIntensity ); - } - #elif defined( SHADOWMAP_TYPE_VSM ) - float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - #ifdef USE_REVERSED_DEPTH_BUFFER - shadowCoord.z -= shadowBias; - #else - shadowCoord.z += shadowBias; - #endif - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - vec2 distribution = texture2D( shadowMap, shadowCoord.xy ).rg; - float mean = distribution.x; - float variance = distribution.y * distribution.y; - #ifdef USE_REVERSED_DEPTH_BUFFER - float hard_shadow = step( mean, shadowCoord.z ); - #else - float hard_shadow = step( shadowCoord.z, mean ); - #endif - - if ( hard_shadow == 1.0 ) { - shadow = 1.0; - } else { - variance = max( variance, 0.0000001 ); - float d = shadowCoord.z - mean; - float p_max = variance / ( variance + d * d ); - p_max = clamp( ( p_max - 0.3 ) / 0.65, 0.0, 1.0 ); - shadow = max( hard_shadow, p_max ); - } - } - return mix( 1.0, shadow, shadowIntensity ); - } - #else - float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - #ifdef USE_REVERSED_DEPTH_BUFFER - shadowCoord.z -= shadowBias; - #else - shadowCoord.z += shadowBias; - #endif - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - float depth = texture2D( shadowMap, shadowCoord.xy ).r; - #ifdef USE_REVERSED_DEPTH_BUFFER - shadow = step( depth, shadowCoord.z ); - #else - shadow = step( shadowCoord.z, depth ); - #endif - } - return mix( 1.0, shadow, shadowIntensity ); - } - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #if defined( SHADOWMAP_TYPE_PCF ) - float getPointShadow( samplerCubeShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - float shadow = 1.0; - vec3 lightToPosition = shadowCoord.xyz; - vec3 bd3D = normalize( lightToPosition ); - vec3 absVec = abs( lightToPosition ); - float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z ); - if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) { - #ifdef USE_REVERSED_DEPTH_BUFFER - float dp = ( shadowCameraNear * ( shadowCameraFar - viewSpaceZ ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); - dp -= shadowBias; - #else - float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); - dp += shadowBias; - #endif - float texelSize = shadowRadius / shadowMapSize.x; - vec3 absDir = abs( bd3D ); - vec3 tangent = absDir.x > absDir.z ? vec3( 0.0, 1.0, 0.0 ) : vec3( 1.0, 0.0, 0.0 ); - tangent = normalize( cross( bd3D, tangent ) ); - vec3 bitangent = cross( bd3D, tangent ); - float phi = interleavedGradientNoise( gl_FragCoord.xy ) * PI2; - vec2 sample0 = vogelDiskSample( 0, 5, phi ); - vec2 sample1 = vogelDiskSample( 1, 5, phi ); - vec2 sample2 = vogelDiskSample( 2, 5, phi ); - vec2 sample3 = vogelDiskSample( 3, 5, phi ); - vec2 sample4 = vogelDiskSample( 4, 5, phi ); - shadow = ( - texture( shadowMap, vec4( bd3D + ( tangent * sample0.x + bitangent * sample0.y ) * texelSize, dp ) ) + - texture( shadowMap, vec4( bd3D + ( tangent * sample1.x + bitangent * sample1.y ) * texelSize, dp ) ) + - texture( shadowMap, vec4( bd3D + ( tangent * sample2.x + bitangent * sample2.y ) * texelSize, dp ) ) + - texture( shadowMap, vec4( bd3D + ( tangent * sample3.x + bitangent * sample3.y ) * texelSize, dp ) ) + - texture( shadowMap, vec4( bd3D + ( tangent * sample4.x + bitangent * sample4.y ) * texelSize, dp ) ) - ) * 0.2; - } - return mix( 1.0, shadow, shadowIntensity ); - } - #elif defined( SHADOWMAP_TYPE_BASIC ) - float getPointShadow( samplerCube shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - float shadow = 1.0; - vec3 lightToPosition = shadowCoord.xyz; - vec3 absVec = abs( lightToPosition ); - float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z ); - if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) { - float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); - dp += shadowBias; - vec3 bd3D = normalize( lightToPosition ); - float depth = textureCube( shadowMap, bd3D ).r; - #ifdef USE_REVERSED_DEPTH_BUFFER - depth = 1.0 - depth; - #endif - shadow = step( dp, depth ); - } - return mix( 1.0, shadow, shadowIntensity ); - } - #endif - #endif -#endif`,shadowmap_pars_vertex:`#if NUM_SPOT_LIGHT_COORDS > 0 - uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - struct SpotLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif -#endif`,shadowmap_vertex:`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) - #ifdef HAS_NORMAL - vec3 shadowWorldNormal = transformNormalByInverseViewMatrix( transformedNormal, viewMatrix ); - #else - vec3 shadowWorldNormal = vec3( 0.0 ); - #endif - vec4 shadowWorldPosition; -#endif -#if defined( USE_SHADOWMAP ) - #if NUM_DIR_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); - vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); - vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif -#endif -#if NUM_SPOT_LIGHT_COORDS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { - shadowWorldPosition = worldPosition; - #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; - #endif - vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end -#endif`,shadowmask_pars_fragment:`float getShadowMask() { - float shadow = 1.0; - #ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - directionalLight = directionalLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { - spotLight = spotLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) ) - PointLightShadow pointLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - pointLight = pointLightShadows[ i ]; - shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; - } - #pragma unroll_loop_end - #endif - #endif - return shadow; -}`,skinbase_vertex:`#ifdef USE_SKINNING - mat4 boneMatX = getBoneMatrix( skinIndex.x ); - mat4 boneMatY = getBoneMatrix( skinIndex.y ); - mat4 boneMatZ = getBoneMatrix( skinIndex.z ); - mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,skinning_pars_vertex:`#ifdef USE_SKINNING - uniform mat4 bindMatrix; - uniform mat4 bindMatrixInverse; - uniform highp sampler2D boneTexture; - mat4 getBoneMatrix( const in float i ) { - int size = textureSize( boneTexture, 0 ).x; - int j = int( i ) * 4; - int x = j % size; - int y = j / size; - vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); - vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); - vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); - vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); - return mat4( v1, v2, v3, v4 ); - } -#endif`,skinning_vertex:`#ifdef USE_SKINNING - vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); - vec4 skinned = vec4( 0.0 ); - skinned += boneMatX * skinVertex * skinWeight.x; - skinned += boneMatY * skinVertex * skinWeight.y; - skinned += boneMatZ * skinVertex * skinWeight.z; - skinned += boneMatW * skinVertex * skinWeight.w; - transformed = ( bindMatrixInverse * skinned ).xyz; -#endif`,skinnormal_vertex:`#ifdef USE_SKINNING - mat4 skinMatrix = mat4( 0.0 ); - skinMatrix += skinWeight.x * boneMatX; - skinMatrix += skinWeight.y * boneMatY; - skinMatrix += skinWeight.z * boneMatZ; - skinMatrix += skinWeight.w * boneMatW; - skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; - objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; - #ifdef USE_TANGENT - objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; - #endif -#endif`,specularmap_fragment:`float specularStrength; -#ifdef USE_SPECULARMAP - vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); - specularStrength = texelSpecular.r; -#else - specularStrength = 1.0; -#endif`,specularmap_pars_fragment:`#ifdef USE_SPECULARMAP - uniform sampler2D specularMap; -#endif`,tonemapping_fragment:`#if defined( TONE_MAPPING ) - gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,tonemapping_pars_fragment:`#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -uniform float toneMappingExposure; -vec3 LinearToneMapping( vec3 color ) { - return saturate( toneMappingExposure * color ); -} -vec3 ReinhardToneMapping( vec3 color ) { - color *= toneMappingExposure; - return saturate( color / ( vec3( 1.0 ) + color ) ); -} -vec3 CineonToneMapping( vec3 color ) { - color *= toneMappingExposure; - color = max( vec3( 0.0 ), color - 0.004 ); - return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); -} -vec3 RRTAndODTFit( vec3 v ) { - vec3 a = v * ( v + 0.0245786 ) - 0.000090537; - vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; - return a / b; -} -vec3 ACESFilmicToneMapping( vec3 color ) { - const mat3 ACESInputMat = mat3( - vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), - vec3( 0.04823, 0.01566, 0.83777 ) - ); - const mat3 ACESOutputMat = mat3( - vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), - vec3( -0.07367, -0.00605, 1.07602 ) - ); - color *= toneMappingExposure / 0.6; - color = ACESInputMat * color; - color = RRTAndODTFit( color ); - color = ACESOutputMat * color; - return saturate( color ); -} -const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( - vec3( 1.6605, - 0.1246, - 0.0182 ), - vec3( - 0.5876, 1.1329, - 0.1006 ), - vec3( - 0.0728, - 0.0083, 1.1187 ) -); -const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( - vec3( 0.6274, 0.0691, 0.0164 ), - vec3( 0.3293, 0.9195, 0.0880 ), - vec3( 0.0433, 0.0113, 0.8956 ) -); -vec3 agxDefaultContrastApprox( vec3 x ) { - vec3 x2 = x * x; - vec3 x4 = x2 * x2; - return + 15.5 * x4 * x2 - - 40.14 * x4 * x - + 31.96 * x4 - - 6.868 * x2 * x - + 0.4298 * x2 - + 0.1191 * x - - 0.00232; -} -vec3 AgXToneMapping( vec3 color ) { - const mat3 AgXInsetMatrix = mat3( - vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), - vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), - vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) - ); - const mat3 AgXOutsetMatrix = mat3( - vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), - vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), - vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) - ); - const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; - color *= toneMappingExposure; - color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; - color = AgXInsetMatrix * color; - color = max( color, 1e-10 ); color = log2( color ); - color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); - color = clamp( color, 0.0, 1.0 ); - color = agxDefaultContrastApprox( color ); - color = AgXOutsetMatrix * color; - color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); - color = LINEAR_REC2020_TO_LINEAR_SRGB * color; - color = clamp( color, 0.0, 1.0 ); - return color; -} -vec3 NeutralToneMapping( vec3 color ) { - const float StartCompression = 0.8 - 0.04; - const float Desaturation = 0.15; - color *= toneMappingExposure; - float x = min( color.r, min( color.g, color.b ) ); - float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; - color -= offset; - float peak = max( color.r, max( color.g, color.b ) ); - if ( peak < StartCompression ) return color; - float d = 1. - StartCompression; - float newPeak = 1. - d * d / ( peak + d - StartCompression ); - color *= newPeak / peak; - float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. ); - return mix( color, vec3( newPeak ), g ); -} -vec3 CustomToneMapping( vec3 color ) { return color; }`,transmission_fragment:`#ifdef USE_TRANSMISSION - material.transmission = transmission; - material.transmissionAlpha = 1.0; - material.thickness = thickness; - material.attenuationDistance = attenuationDistance; - material.attenuationColor = attenuationColor; - #ifdef USE_TRANSMISSIONMAP - material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; - #endif - #ifdef USE_THICKNESSMAP - material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; - #endif - vec3 pos = vWorldPosition; - vec3 v = normalize( cameraPosition - pos ); - vec3 n = transformNormalByInverseViewMatrix( normal, viewMatrix ); - vec4 transmitted = getIBLVolumeRefraction( - n, v, material.roughness, material.diffuseContribution, material.specularColorBlended, material.specularF90, - pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness, - material.attenuationColor, material.attenuationDistance ); - material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); - totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); -#endif`,transmission_pars_fragment:`#ifdef USE_TRANSMISSION - uniform float transmission; - uniform float thickness; - uniform float attenuationDistance; - uniform vec3 attenuationColor; - #ifdef USE_TRANSMISSIONMAP - uniform sampler2D transmissionMap; - #endif - #ifdef USE_THICKNESSMAP - uniform sampler2D thicknessMap; - #endif - uniform vec2 transmissionSamplerSize; - uniform sampler2D transmissionSamplerMap; - uniform mat4 modelMatrix; - uniform mat4 projectionMatrix; - varying vec3 vWorldPosition; - float w0( float a ) { - return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); - } - float w1( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); - } - float w2( float a ){ - return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); - } - float w3( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * a ); - } - float g0( float a ) { - return w0( a ) + w1( a ); - } - float g1( float a ) { - return w2( a ) + w3( a ); - } - float h0( float a ) { - return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); - } - float h1( float a ) { - return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); - } - vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { - uv = uv * texelSize.zw + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - float g0x = g0( fuv.x ); - float g1x = g1( fuv.x ); - float h0x = h0( fuv.x ); - float h1x = h1( fuv.x ); - float h0y = h0( fuv.y ); - float h1y = h1( fuv.y ); - vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + - g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); - } - vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { - vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); - vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); - vec2 fLodSizeInv = 1.0 / fLodSize; - vec2 cLodSizeInv = 1.0 / cLodSize; - vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); - vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); - return mix( fSample, cSample, fract( lod ) ); - } - vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { - vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); - vec3 modelScale; - modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); - modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); - modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); - return normalize( refractionVector ) * thickness * modelScale; - } - float applyIorToRoughness( const in float roughness, const in float ior ) { - return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); - } - vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { - float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); - return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); - } - vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { - if ( isinf( attenuationDistance ) ) { - return vec3( 1.0 ); - } else { - vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; - vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; - } - } - vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, - const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, - const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness, - const in vec3 attenuationColor, const in float attenuationDistance ) { - vec4 transmittedLight; - vec3 transmittance; - #ifdef USE_DISPERSION - float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion; - vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread ); - for ( int i = 0; i < 3; i ++ ) { - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] ); - transmittedLight[ i ] = transmissionSample[ i ]; - transmittedLight.a += transmissionSample.a; - transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ]; - } - transmittedLight.a /= 3.0; - #else - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); - transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); - #endif - vec3 attenuatedColor = transmittance * transmittedLight.rgb; - vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); - float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; - return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); - } -#endif`,uv_pars_fragment:`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - varying vec2 vNormalMapUv; -#endif -#ifdef USE_EMISSIVEMAP - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_SPECULARMAP - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,uv_pars_vertex:`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - uniform mat3 mapTransform; - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - uniform mat3 alphaMapTransform; - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - uniform mat3 lightMapTransform; - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - uniform mat3 aoMapTransform; - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - uniform mat3 bumpMapTransform; - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - uniform mat3 normalMapTransform; - varying vec2 vNormalMapUv; -#endif -#ifdef USE_DISPLACEMENTMAP - uniform mat3 displacementMapTransform; - varying vec2 vDisplacementMapUv; -#endif -#ifdef USE_EMISSIVEMAP - uniform mat3 emissiveMapTransform; - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - uniform mat3 metalnessMapTransform; - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - uniform mat3 roughnessMapTransform; - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - uniform mat3 anisotropyMapTransform; - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - uniform mat3 clearcoatMapTransform; - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform mat3 clearcoatNormalMapTransform; - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform mat3 clearcoatRoughnessMapTransform; - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - uniform mat3 sheenColorMapTransform; - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - uniform mat3 sheenRoughnessMapTransform; - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - uniform mat3 iridescenceMapTransform; - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform mat3 iridescenceThicknessMapTransform; - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SPECULARMAP - uniform mat3 specularMapTransform; - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - uniform mat3 specularColorMapTransform; - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - uniform mat3 specularIntensityMapTransform; - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,uv_vertex:`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - vUv = vec3( uv, 1 ).xy; -#endif -#ifdef USE_MAP - vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ALPHAMAP - vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_LIGHTMAP - vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_AOMAP - vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_BUMPMAP - vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_NORMALMAP - vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_DISPLACEMENTMAP - vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_EMISSIVEMAP - vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_METALNESSMAP - vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ROUGHNESSMAP - vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ANISOTROPYMAP - vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOATMAP - vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCEMAP - vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_COLORMAP - vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULARMAP - vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_COLORMAP - vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_TRANSMISSIONMAP - vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_THICKNESSMAP - vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; -#endif`,worldpos_vertex:`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 - vec4 worldPosition = vec4( transformed, 1.0 ); - #ifdef USE_BATCHING - worldPosition = batchingMatrix * worldPosition; - #endif - #ifdef USE_INSTANCING - worldPosition = instanceMatrix * worldPosition; - #endif - worldPosition = modelMatrix * worldPosition; -#endif`,background_vert:`varying vec2 vUv; -uniform mat3 uvTransform; -void main() { - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,background_frag:`uniform sampler2D t2D; -uniform float backgroundIntensity; -varying vec2 vUv; -void main() { - vec4 texColor = texture2D( t2D, vUv ); - #ifdef DECODE_VIDEO_TEXTURE - texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,backgroundCube_vert:`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,backgroundCube_frag:`#ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; -#elif defined( ENVMAP_TYPE_CUBE_UV ) - uniform sampler2D envMap; -#endif -uniform float backgroundBlurriness; -uniform float backgroundIntensity; -uniform mat3 backgroundRotation; -varying vec3 vWorldDirection; -#include -void main() { - #ifdef ENVMAP_TYPE_CUBE - vec4 texColor = textureCube( envMap, backgroundRotation * vWorldDirection ); - #elif defined( ENVMAP_TYPE_CUBE_UV ) - vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness ); - #else - vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,cube_vert:`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,cube_frag:`uniform samplerCube tCube; -uniform float tFlip; -uniform float opacity; -varying vec3 vWorldDirection; -void main() { - vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); - gl_FragColor = texColor; - gl_FragColor.a *= opacity; - #include - #include -}`,depth_vert:`#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - #include - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vHighPrecisionZW = gl_Position.zw; -}`,depth_frag:`#if DEPTH_PACKING == 3200 - uniform float opacity; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - vec4 diffuseColor = vec4( 1.0 ); - #include - #if DEPTH_PACKING == 3200 - diffuseColor.a = opacity; - #endif - #include - #include - #include - #include - #include - #ifdef USE_REVERSED_DEPTH_BUFFER - float fragCoordZ = vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ]; - #else - float fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ] + 0.5; - #endif - #if DEPTH_PACKING == 3200 - gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); - #elif DEPTH_PACKING == 3201 - gl_FragColor = packDepthToRGBA( fragCoordZ ); - #elif DEPTH_PACKING == 3202 - gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 ); - #elif DEPTH_PACKING == 3203 - gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 ); - #endif -}`,distance_vert:`#define DISTANCE -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vWorldPosition = worldPosition.xyz; -}`,distance_frag:`#define DISTANCE -uniform vec3 referencePosition; -uniform float nearDistance; -uniform float farDistance; -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( 1.0 ); - #include - #include - #include - #include - #include - float dist = length( vWorldPosition - referencePosition ); - dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); - dist = saturate( dist ); - gl_FragColor = vec4( dist, 0.0, 0.0, 1.0 ); -}`,equirect_vert:`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include -}`,equirect_frag:`uniform sampler2D tEquirect; -varying vec3 vWorldDirection; -#include -void main() { - vec3 direction = normalize( vWorldDirection ); - vec2 sampleUV = equirectUv( direction ); - gl_FragColor = texture2D( tEquirect, sampleUV ); - #include - #include -}`,linedashed_vert:`uniform float scale; -attribute float lineDistance; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vLineDistance = scale * lineDistance; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,linedashed_frag:`uniform vec3 diffuse; -uniform float opacity; -uniform float dashSize; -uniform float totalSize; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - if ( mod( vLineDistance, totalSize ) > dashSize ) { - discard; - } - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,meshbasic_vert:`#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) - #include - #include - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,meshbasic_frag:`uniform vec3 diffuse; -uniform float opacity; -#ifndef FLAT_SHADED - varying vec3 vNormal; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; - #else - reflectedLight.indirectDiffuse += vec3( 1.0 ); - #endif - #include - reflectedLight.indirectDiffuse *= diffuseColor.rgb; - vec3 outgoingLight = reflectedLight.indirectDiffuse; - #include - #include - #include - #include - #include - #include - #include -}`,meshlambert_vert:`#define LAMBERT -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,meshlambert_frag:`#define LAMBERT -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,meshmatcap_vert:`#define MATCAP -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; -}`,meshmatcap_frag:`#define MATCAP -uniform vec3 diffuse; -uniform float opacity; -uniform sampler2D matcap; -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 viewDir = normalize( vViewPosition ); - vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); - vec3 y = cross( viewDir, x ); - vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; - #ifdef USE_MATCAP - vec4 matcapColor = texture2D( matcap, uv ); - #else - vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); - #endif - vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; - #include - #include - #include - #include - #include - #include -}`,meshnormal_vert:`#define NORMAL -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - vViewPosition = - mvPosition.xyz; -#endif -}`,meshnormal_frag:`#define NORMAL -uniform float opacity; -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); - #include - #include - #include - #include - gl_FragColor = vec4( normalize( normal ) * 0.5 + 0.5, diffuseColor.a ); - #ifdef OPAQUE - gl_FragColor.a = 1.0; - #endif -}`,meshphong_vert:`#define PHONG -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,meshphong_frag:`#define PHONG -uniform vec3 diffuse; -uniform vec3 emissive; -uniform vec3 specular; -uniform float shininess; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,meshphysical_vert:`#define STANDARD -varying vec3 vViewPosition; -#ifdef USE_TRANSMISSION - varying vec3 vWorldPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -#ifdef USE_TRANSMISSION - vWorldPosition = worldPosition.xyz; -#endif -}`,meshphysical_frag:`#define STANDARD -#ifdef PHYSICAL - #define IOR - #define USE_SPECULAR -#endif -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float roughness; -uniform float metalness; -uniform float opacity; -#ifdef IOR - uniform float ior; -#endif -#ifdef USE_SPECULAR - uniform float specularIntensity; - uniform vec3 specularColor; - #ifdef USE_SPECULAR_COLORMAP - uniform sampler2D specularColorMap; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - uniform sampler2D specularIntensityMap; - #endif -#endif -#ifdef USE_CLEARCOAT - uniform float clearcoat; - uniform float clearcoatRoughness; -#endif -#ifdef USE_DISPERSION - uniform float dispersion; -#endif -#ifdef USE_IRIDESCENCE - uniform float iridescence; - uniform float iridescenceIOR; - uniform float iridescenceThicknessMinimum; - uniform float iridescenceThicknessMaximum; -#endif -#ifdef USE_SHEEN - uniform vec3 sheenColor; - uniform float sheenRoughness; - #ifdef USE_SHEEN_COLORMAP - uniform sampler2D sheenColorMap; - #endif - #ifdef USE_SHEEN_ROUGHNESSMAP - uniform sampler2D sheenRoughnessMap; - #endif -#endif -#ifdef USE_ANISOTROPY - uniform vec2 anisotropyVector; - #ifdef USE_ANISOTROPYMAP - uniform sampler2D anisotropyMap; - #endif -#endif -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; - vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; - #include - vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; - #ifdef USE_SHEEN - - outgoingLight = outgoingLight + sheenSpecularDirect + sheenSpecularIndirect; - - #endif - #ifdef USE_CLEARCOAT - float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); - vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); - outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; - #endif - #include - #include - #include - #include - #include - #include -}`,meshtoon_vert:`#define TOON -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -}`,meshtoon_frag:`#define TOON -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include -}`,points_vert:`uniform float size; -uniform float scale; -#include -#include -#include -#include -#include -#include -#ifdef USE_POINTS_UV - varying vec2 vUv; - uniform mat3 uvTransform; -#endif -void main() { - #ifdef USE_POINTS_UV - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - #endif - #include - #include - #include - #include - #include - #include - gl_PointSize = size; - #ifdef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); - #endif - #include - #include - #include - #include -}`,points_frag:`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,shadow_vert:`#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,shadow_frag:`uniform vec3 color; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); - #include - #include - #include - #include -}`,sprite_vert:`uniform float rotation; -uniform vec2 center; -#include -#include -#include -#include -#include -void main() { - #include - vec4 mvPosition = modelViewMatrix[ 3 ]; - vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) ); - #ifndef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) scale *= - mvPosition.z; - #endif - vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; - vec2 rotatedPosition; - rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; - rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; - mvPosition.xy += rotatedPosition; - gl_Position = projectionMatrix * mvPosition; - #include - #include - #include -}`,sprite_frag:`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include -}`},Be={common:{diffuse:{value:new Xe(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Et},alphaMap:{value:null},alphaMapTransform:{value:new Et},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Et}},envmap:{envMap:{value:null},envMapRotation:{value:new Et},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},dfgLUT:{value:null}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Et}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Et}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Et},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Et},normalScale:{value:new ye(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Et},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Et}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Et}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Et}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Xe(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null},probesSH:{value:null},probesMin:{value:new z},probesMax:{value:new z},probesResolution:{value:new z}},points:{diffuse:{value:new Xe(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Et},alphaTest:{value:0},uvTransform:{value:new Et}},sprite:{diffuse:{value:new Xe(16777215)},opacity:{value:1},center:{value:new ye(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Et},alphaMap:{value:null},alphaMapTransform:{value:new Et},alphaTest:{value:0}}},Gr={basic:{uniforms:Ui([Be.common,Be.specularmap,Be.envmap,Be.aomap,Be.lightmap,Be.fog]),vertexShader:Dt.meshbasic_vert,fragmentShader:Dt.meshbasic_frag},lambert:{uniforms:Ui([Be.common,Be.specularmap,Be.envmap,Be.aomap,Be.lightmap,Be.emissivemap,Be.bumpmap,Be.normalmap,Be.displacementmap,Be.fog,Be.lights,{emissive:{value:new Xe(0)},envMapIntensity:{value:1}}]),vertexShader:Dt.meshlambert_vert,fragmentShader:Dt.meshlambert_frag},phong:{uniforms:Ui([Be.common,Be.specularmap,Be.envmap,Be.aomap,Be.lightmap,Be.emissivemap,Be.bumpmap,Be.normalmap,Be.displacementmap,Be.fog,Be.lights,{emissive:{value:new Xe(0)},specular:{value:new Xe(1118481)},shininess:{value:30},envMapIntensity:{value:1}}]),vertexShader:Dt.meshphong_vert,fragmentShader:Dt.meshphong_frag},standard:{uniforms:Ui([Be.common,Be.envmap,Be.aomap,Be.lightmap,Be.emissivemap,Be.bumpmap,Be.normalmap,Be.displacementmap,Be.roughnessmap,Be.metalnessmap,Be.fog,Be.lights,{emissive:{value:new Xe(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Dt.meshphysical_vert,fragmentShader:Dt.meshphysical_frag},toon:{uniforms:Ui([Be.common,Be.aomap,Be.lightmap,Be.emissivemap,Be.bumpmap,Be.normalmap,Be.displacementmap,Be.gradientmap,Be.fog,Be.lights,{emissive:{value:new Xe(0)}}]),vertexShader:Dt.meshtoon_vert,fragmentShader:Dt.meshtoon_frag},matcap:{uniforms:Ui([Be.common,Be.bumpmap,Be.normalmap,Be.displacementmap,Be.fog,{matcap:{value:null}}]),vertexShader:Dt.meshmatcap_vert,fragmentShader:Dt.meshmatcap_frag},points:{uniforms:Ui([Be.points,Be.fog]),vertexShader:Dt.points_vert,fragmentShader:Dt.points_frag},dashed:{uniforms:Ui([Be.common,Be.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Dt.linedashed_vert,fragmentShader:Dt.linedashed_frag},depth:{uniforms:Ui([Be.common,Be.displacementmap]),vertexShader:Dt.depth_vert,fragmentShader:Dt.depth_frag},normal:{uniforms:Ui([Be.common,Be.bumpmap,Be.normalmap,Be.displacementmap,{opacity:{value:1}}]),vertexShader:Dt.meshnormal_vert,fragmentShader:Dt.meshnormal_frag},sprite:{uniforms:Ui([Be.sprite,Be.fog]),vertexShader:Dt.sprite_vert,fragmentShader:Dt.sprite_frag},background:{uniforms:{uvTransform:{value:new Et},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Dt.background_vert,fragmentShader:Dt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Et}},vertexShader:Dt.backgroundCube_vert,fragmentShader:Dt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Dt.cube_vert,fragmentShader:Dt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Dt.equirect_vert,fragmentShader:Dt.equirect_frag},distance:{uniforms:Ui([Be.common,Be.displacementmap,{referencePosition:{value:new z},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Dt.distance_vert,fragmentShader:Dt.distance_frag},shadow:{uniforms:Ui([Be.lights,Be.fog,{color:{value:new Xe(0)},opacity:{value:1}}]),vertexShader:Dt.shadow_vert,fragmentShader:Dt.shadow_frag}};Gr.physical={uniforms:Ui([Gr.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Et},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Et},clearcoatNormalScale:{value:new ye(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Et},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Et},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Et},sheen:{value:0},sheenColor:{value:new Xe(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Et},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Et},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Et},transmissionSamplerSize:{value:new ye},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Et},attenuationDistance:{value:0},attenuationColor:{value:new Xe(0)},specularColor:{value:new Xe(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Et},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Et},anisotropyVector:{value:new ye},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Et}}]),vertexShader:Dt.meshphysical_vert,fragmentShader:Dt.meshphysical_frag};var Ff={r:0,b:0,g:0},OI=new St,LE=new Et;LE.set(-1,0,0,0,1,0,0,0,1);function FI(e,t,n,s,a,l){const c=new Xe(0);let h=a===!0?0:1,d,f,g=null,v=0,y=null;function _(C){let R=C.isScene===!0?C.background:null;if(R&&R.isTexture){const T=C.backgroundBlurriness>0;R=t.get(R,T)}return R}function M(C){let R=!1;const T=_(C);T===null?x(c,h):T&&T.isColor&&(x(T,1),R=!0);const L=e.xr.getEnvironmentBlendMode();L==="additive"?n.buffers.color.setClear(0,0,0,1,l):L==="alpha-blend"&&n.buffers.color.setClear(0,0,0,0,l),(e.autoClear||R)&&(n.buffers.depth.setTest(!0),n.buffers.depth.setMask(!0),n.buffers.color.setMask(!0),e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil))}function w(C,R){const T=_(R);T&&(T.isCubeTexture||T.mapping===306)?(f===void 0&&(f=new Hn(new uh(1,1,1),new cr({name:"BackgroundCubeMaterial",uniforms:vc(Gr.backgroundCube.uniforms),vertexShader:Gr.backgroundCube.vertexShader,fragmentShader:Gr.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),f.geometry.deleteAttribute("normal"),f.geometry.deleteAttribute("uv"),f.onBeforeRender=function(L,D,O){this.matrixWorld.copyPosition(O.matrixWorld)},Object.defineProperty(f.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),s.update(f)),f.material.uniforms.envMap.value=T,f.material.uniforms.backgroundBlurriness.value=R.backgroundBlurriness,f.material.uniforms.backgroundIntensity.value=R.backgroundIntensity,f.material.uniforms.backgroundRotation.value.setFromMatrix4(OI.makeRotationFromEuler(R.backgroundRotation)).transpose(),T.isCubeTexture&&T.isRenderTargetTexture===!1&&f.material.uniforms.backgroundRotation.value.premultiply(LE),f.material.toneMapped=Ht.getTransfer(T.colorSpace)!==Ku,(g!==T||v!==T.version||y!==e.toneMapping)&&(f.material.needsUpdate=!0,g=T,v=T.version,y=e.toneMapping),f.layers.enableAll(),C.unshift(f,f.geometry,f.material,0,0,null)):T&&T.isTexture&&(d===void 0&&(d=new Hn(new hp(2,2),new cr({name:"BackgroundMaterial",uniforms:vc(Gr.background.uniforms),vertexShader:Gr.background.vertexShader,fragmentShader:Gr.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),d.geometry.deleteAttribute("normal"),Object.defineProperty(d.material,"map",{get:function(){return this.uniforms.t2D.value}}),s.update(d)),d.material.uniforms.t2D.value=T,d.material.uniforms.backgroundIntensity.value=R.backgroundIntensity,d.material.toneMapped=Ht.getTransfer(T.colorSpace)!==Ku,T.matrixAutoUpdate===!0&&T.updateMatrix(),d.material.uniforms.uvTransform.value.copy(T.matrix),(g!==T||v!==T.version||y!==e.toneMapping)&&(d.material.needsUpdate=!0,g=T,v=T.version,y=e.toneMapping),d.layers.enableAll(),C.unshift(d,d.geometry,d.material,0,0,null))}function x(C,R){C.getRGB(Ff,qT(e)),n.buffers.color.setClear(Ff.r,Ff.g,Ff.b,R,l)}function b(){f!==void 0&&(f.geometry.dispose(),f.material.dispose(),f=void 0),d!==void 0&&(d.geometry.dispose(),d.material.dispose(),d=void 0)}return{getClearColor:function(){return c},setClearColor:function(C,R=1){c.set(C),h=R,x(c,h)},getClearAlpha:function(){return h},setClearAlpha:function(C){h=C,x(c,h)},render:M,addToRenderList:w,dispose:b}}function BI(e,t){const n=e.getParameter(e.MAX_VERTEX_ATTRIBS),s={},a=y(null);let l=a,c=!1;function h(F,q,X,K,ee){let ae=!1;const Q=v(F,K,X,q);l!==Q&&(l=Q,f(l.object)),ae=_(F,K,X,ee),ae&&M(F,K,X,ee),ee!==null&&t.update(ee,e.ELEMENT_ARRAY_BUFFER),(ae||c)&&(c=!1,T(F,q,X,K),ee!==null&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.get(ee).buffer))}function d(){return e.createVertexArray()}function f(F){return e.bindVertexArray(F)}function g(F){return e.deleteVertexArray(F)}function v(F,q,X,K){const ee=K.wireframe===!0;let ae=s[q.id];ae===void 0&&(ae={},s[q.id]=ae);const Q=F.isInstancedMesh===!0?F.id:0;let me=ae[Q];me===void 0&&(me={},ae[Q]=me);let _e=me[X.id];_e===void 0&&(_e={},me[X.id]=_e);let ge=_e[ee];return ge===void 0&&(ge=y(d()),_e[ee]=ge),ge}function y(F){const q=[],X=[],K=[];for(let ee=0;ee=0){const ge=ee[_e];let be=ae[_e];if(be===void 0&&(_e==="instanceMatrix"&&F.instanceMatrix&&(be=F.instanceMatrix),_e==="instanceColor"&&F.instanceColor&&(be=F.instanceColor)),ge===void 0||ge.attribute!==be||be&&ge.data!==be.data)return!0;Q++}return l.attributesNum!==Q||l.index!==K}function M(F,q,X,K){const ee={},ae=q.attributes;let Q=0;const me=X.getAttributes();for(const _e in me)if(me[_e].location>=0){let ge=ae[_e];ge===void 0&&(_e==="instanceMatrix"&&F.instanceMatrix&&(ge=F.instanceMatrix),_e==="instanceColor"&&F.instanceColor&&(ge=F.instanceColor));const be={};be.attribute=ge,ge&&ge.data&&(be.data=ge.data),ee[_e]=be,Q++}l.attributes=ee,l.attributesNum=Q,l.index=K}function w(){const F=l.newAttributes;for(let q=0,X=F.length;q=0){let ge=ee[me];if(ge===void 0&&(me==="instanceMatrix"&&F.instanceMatrix&&(ge=F.instanceMatrix),me==="instanceColor"&&F.instanceColor&&(ge=F.instanceColor)),ge!==void 0){const be=ge.normalized,Ie=ge.itemSize,Ft=t.get(ge);if(Ft===void 0)continue;const pt=Ft.buffer,ue=Ft.type,Ce=Ft.bytesPerElement,ke=ue===e.INT||ue===e.UNSIGNED_INT||ge.gpuType===1013;if(ge.isInterleavedBufferAttribute){const De=ge.data,st=De.stride,ht=ge.offset;if(De.isInstancedInterleavedBuffer){for(let Le=0;Le<_e.locationSize;Le++)b(_e.location+Le,De.meshPerAttribute);F.isInstancedMesh!==!0&&K._maxInstanceCount===void 0&&(K._maxInstanceCount=De.meshPerAttribute*De.count)}else for(let Le=0;Le<_e.locationSize;Le++)x(_e.location+Le);e.bindBuffer(e.ARRAY_BUFFER,pt);for(let Le=0;Le<_e.locationSize;Le++)R(_e.location+Le,Ie/_e.locationSize,ue,be,st*Ce,(ht+Ie/_e.locationSize*Le)*Ce,ke)}else{if(ge.isInstancedBufferAttribute){for(let De=0;De<_e.locationSize;De++)b(_e.location+De,ge.meshPerAttribute);F.isInstancedMesh!==!0&&K._maxInstanceCount===void 0&&(K._maxInstanceCount=ge.meshPerAttribute*ge.count)}else for(let De=0;De<_e.locationSize;De++)x(_e.location+De);e.bindBuffer(e.ARRAY_BUFFER,pt);for(let De=0;De<_e.locationSize;De++)R(_e.location+De,Ie/_e.locationSize,ue,be,Ie*Ce,Ie/_e.locationSize*De*Ce,ke)}}else if(Q!==void 0){const be=Q[me];if(be!==void 0)switch(be.length){case 2:e.vertexAttrib2fv(_e.location,be);break;case 3:e.vertexAttrib3fv(_e.location,be);break;case 4:e.vertexAttrib4fv(_e.location,be);break;default:e.vertexAttrib1fv(_e.location,be)}}}}C()}function L(){P();for(const F in s){const q=s[F];for(const X in q){const K=q[X];for(const ee in K){const ae=K[ee];for(const Q in ae)g(ae[Q].object),delete ae[Q];delete K[ee]}}delete s[F]}}function D(F){if(s[F.id]===void 0)return;const q=s[F.id];for(const X in q){const K=q[X];for(const ee in K){const ae=K[ee];for(const Q in ae)g(ae[Q].object),delete ae[Q];delete K[ee]}}delete s[F.id]}function O(F){for(const q in s){const X=s[q];for(const K in X){const ee=X[K];if(ee[F.id]===void 0)continue;const ae=ee[F.id];for(const Q in ae)g(ae[Q].object),delete ae[Q];delete ee[F.id]}}}function A(F){for(const q in s){const X=s[q],K=F.isInstancedMesh===!0?F.id:0,ee=X[K];if(ee!==void 0){for(const ae in ee){const Q=ee[ae];for(const me in Q)g(Q[me].object),delete Q[me];delete ee[ae]}delete X[K],Object.keys(X).length===0&&delete s[q]}}}function P(){k(),c=!0,l!==a&&(l=a,f(l.object))}function k(){a.geometry=null,a.program=null,a.wireframe=!1}return{setup:h,reset:P,resetDefaultState:k,dispose:L,releaseStatesOfGeometry:D,releaseStatesOfObject:A,releaseStatesOfProgram:O,initAttributes:w,enableAttribute:x,disableUnusedAttributes:C}}function zI(e,t,n){let s;function a(d){s=d}function l(d,f){e.drawArrays(s,d,f),n.update(f,s,1)}function c(d,f,g){g!==0&&(e.drawArraysInstanced(s,d,f,g),n.update(f,s,g))}function h(d,f,g){if(g===0)return;t.get("WEBGL_multi_draw").multiDrawArraysWEBGL(s,d,0,f,0,g);let v=0;for(let y=0;y0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";O="mediump"}return O==="mediump"&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let f=n.precision!==void 0?n.precision:"highp";const g=d(f);g!==f&&(Ne("WebGLRenderer:",f,"not supported, using",g,"instead."),f=g);const v=n.logarithmicDepthBuffer===!0,y=n.reversedDepthBuffer===!0&&t.has("EXT_clip_control");n.reversedDepthBuffer===!0&&y===!1&&Ne("WebGLRenderer: Unable to use reversed depth buffer due to missing EXT_clip_control extension. Fallback to default depth buffer.");const _=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),M=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),w=e.getParameter(e.MAX_TEXTURE_SIZE),x=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),b=e.getParameter(e.MAX_VERTEX_ATTRIBS),C=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),R=e.getParameter(e.MAX_VARYING_VECTORS),T=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),L=e.getParameter(e.MAX_SAMPLES),D=e.getParameter(e.SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:l,getMaxPrecision:d,textureFormatReadable:c,textureTypeReadable:h,precision:f,logarithmicDepthBuffer:v,reversedDepthBuffer:y,maxTextures:_,maxVertexTextures:M,maxTextureSize:w,maxCubemapSize:x,maxAttributes:b,maxVertexUniforms:C,maxVaryings:R,maxFragmentUniforms:T,maxSamples:L,samples:D}}function VI(e){const t=this;let n=null,s=0,a=!1,l=!1;const c=new Ua,h=new Et,d={value:null,needsUpdate:!1};this.uniform=d,this.numPlanes=0,this.numIntersection=0,this.init=function(v,y){const _=v.length!==0||y||s!==0||a;return a=y,s=v.length,_},this.beginShadows=function(){l=!0,g(null)},this.endShadows=function(){l=!1},this.setGlobalState=function(v,y){n=g(v,y,0)},this.setState=function(v,y,_){const M=v.clippingPlanes,w=v.clipIntersection,x=v.clipShadows,b=e.get(v);if(!a||M===null||M.length===0||l&&!x)l?g(null):f();else{const C=l?0:s,R=C*4;let T=b.clippingState||null;d.value=T,T=g(M,y,R,_);for(let L=0;L!==R;++L)T[L]=n[L];b.clippingState=T,this.numIntersection=w?this.numPlanes:0,this.numPlanes+=C}};function f(){d.value!==n&&(d.value=n,d.needsUpdate=s>0),t.numPlanes=s,t.numIntersection=0}function g(v,y,_,M){const w=v!==null?v.length:0;let x=null;if(w!==0){if(x=d.value,M!==!0||x===null){const b=_+w*4,C=y.matrixWorldInverse;h.getNormalMatrix(C),(x===null||x.length0&&this._blur(h,0,0,t),this._applyPMREM(h),this._cleanup(h),h}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=eM(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Q1(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._ggxMaterial!==null&&this._ggxMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?b:0,b,b),d.setRenderTarget(s),_&&d.render(v,l),d.render(e,l)}d.toneMapping=g,d.autoClear=f,e.background=M}_textureToCubeUV(e,t){const n=this._renderer,s=e.mapping===301||e.mapping===302;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=eM()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Q1());const a=s?this._cubemapMaterial:this._equirectMaterial,l=this._lodMeshes[0];l.material=a;const c=a.uniforms;c.envMap.value=e;const h=this._cubeSize;ic(t,0,0,3*h,2*h),n.setRenderTarget(t),n.render(l,Uu)}_applyPMREM(e){const t=this._renderer,n=t.autoClear;t.autoClear=!1;const s=this._lodMeshes.length;for(let a=1;av-za?n-v+za:0),M=4*(this._cubeSize-y);h.envMap.value=e.texture,h.roughness.value=g,h.mipInt.value=v-t,ic(a,_,M,3*y,2*y),s.setRenderTarget(a),s.render(c,Uu),h.envMap.value=a.texture,h.roughness.value=0,h.mipInt.value=v-n,ic(e,_,M,3*y,2*y),s.setRenderTarget(e),s.render(c,Uu)}_blur(e,t,n,s,a){const l=this._pingPongRenderTarget;this._halfBlur(e,l,t,n,s,"latitudinal",a),this._halfBlur(l,e,n,n,s,"longitudinal",a)}_halfBlur(e,t,n,s,a,l,c){const h=this._renderer,d=this._blurMaterial;l!=="latitudinal"&&l!=="longitudinal"&&rt("blur direction must be either latitudinal or longitudinal!");const f=3,g=this._lodMeshes[s];g.material=d;const v=d.uniforms,y=this._sizeLods[n]-1,_=isFinite(a)?Math.PI/(2*y):2*Math.PI/(2*Fo-1),M=a/_,w=isFinite(a)?1+Math.floor(f*M):Fo;w>Fo&&Ne(`sigmaRadians, ${a}, is too large and will clip, as it requested ${w} samples when the maximum is set to ${Fo}`);const x=[];let b=0;for(let T=0;TC-za?s-C+za:0),4*(this._cubeSize-R),3*R,2*R),h.setRenderTarget(t),h.render(g,Uu)}};function WI(e){const t=[],n=[],s=[];let a=e;const l=e-za+1+$1.length;for(let c=0;ce-za?d=$1[c-e+za-1]:c===0&&(d=0),n.push(d);const f=1/(h-2),g=-f,v=1+f,y=[g,g,v,g,v,v,g,g,v,v,g,v],_=6,M=6,w=3,x=2,b=1,C=new Float32Array(w*M*_),R=new Float32Array(x*M*_),T=new Float32Array(b*M*_);for(let D=0;D<_;D++){const O=D%3*2/3-1,A=D>2?0:-1,P=[O,A,0,O+2/3,A,0,O+2/3,A+1,0,O,A,0,O+2/3,A+1,0,O,A+1,0];C.set(P,w*M*D),R.set(y,x*M*D);const k=[D,D,D,D,D,D];T.set(k,b*M*D)}const L=new Lt;L.setAttribute("position",new an(C,w)),L.setAttribute("uv",new an(R,x)),L.setAttribute("faceIndex",new an(T,b)),s.push(new Hn(L,null)),a>za&&a--}return{lodMeshes:s,sizeLods:t,sigmas:n}}function K1(e,t,n){const s=new lr(e,t,n);return s.texture.mapping=306,s.texture.name="PMREM.cubeUv",s.scissorTest=!0,s}function ic(e,t,n,s,a){e.viewport.set(t,n,s,a),e.scissor.set(t,n,s,a)}function XI(e,t,n){return new cr({name:"PMREMGGXConvolution",defines:{GGX_SAMPLES:HI,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},roughness:{value:0},mipInt:{value:0}},vertexShader:mp(),fragmentShader:` - - precision highp float; - precision highp int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform float roughness; - uniform float mipInt; - - #define ENVMAP_TYPE_CUBE_UV - #include - - #define PI 3.14159265359 - - // Van der Corput radical inverse - float radicalInverse_VdC(uint bits) { - bits = (bits << 16u) | (bits >> 16u); - bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); - bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); - bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); - bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); - return float(bits) * 2.3283064365386963e-10; // / 0x100000000 - } - - // Hammersley sequence - vec2 hammersley(uint i, uint N) { - return vec2(float(i) / float(N), radicalInverse_VdC(i)); - } - - // GGX VNDF importance sampling (Eric Heitz 2018) - // "Sampling the GGX Distribution of Visible Normals" - // https://jcgt.org/published/0007/04/01/ - vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { - float alpha = roughness * roughness; - - // Section 4.1: Orthonormal basis - vec3 T1 = vec3(1.0, 0.0, 0.0); - vec3 T2 = cross(V, T1); - - // Section 4.2: Parameterization of projected area - float r = sqrt(Xi.x); - float phi = 2.0 * PI * Xi.y; - float t1 = r * cos(phi); - float t2 = r * sin(phi); - float s = 0.5 * (1.0 + V.z); - t2 = (1.0 - s) * sqrt(1.0 - t1 * t1) + s * t2; - - // Section 4.3: Reprojection onto hemisphere - vec3 Nh = t1 * T1 + t2 * T2 + sqrt(max(0.0, 1.0 - t1 * t1 - t2 * t2)) * V; - - // Section 3.4: Transform back to ellipsoid configuration - return normalize(vec3(alpha * Nh.x, alpha * Nh.y, max(0.0, Nh.z))); - } - - void main() { - vec3 N = normalize(vOutputDirection); - vec3 V = N; // Assume view direction equals normal for pre-filtering - - vec3 prefilteredColor = vec3(0.0); - float totalWeight = 0.0; - - // For very low roughness, just sample the environment directly - if (roughness < 0.001) { - gl_FragColor = vec4(bilinearCubeUV(envMap, N, mipInt), 1.0); - return; - } - - // Tangent space basis for VNDF sampling - vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); - vec3 tangent = normalize(cross(up, N)); - vec3 bitangent = cross(N, tangent); - - for(uint i = 0u; i < uint(GGX_SAMPLES); i++) { - vec2 Xi = hammersley(i, uint(GGX_SAMPLES)); - - // For PMREM, V = N, so in tangent space V is always (0, 0, 1) - vec3 H_tangent = importanceSampleGGX_VNDF(Xi, vec3(0.0, 0.0, 1.0), roughness); - - // Transform H back to world space - vec3 H = normalize(tangent * H_tangent.x + bitangent * H_tangent.y + N * H_tangent.z); - vec3 L = normalize(2.0 * dot(V, H) * H - V); - - float NdotL = max(dot(N, L), 0.0); - - if(NdotL > 0.0) { - // Sample environment at fixed mip level - // VNDF importance sampling handles the distribution filtering - vec3 sampleColor = bilinearCubeUV(envMap, L, mipInt); - - // Weight by NdotL for the split-sum approximation - // VNDF PDF naturally accounts for the visible microfacet distribution - prefilteredColor += sampleColor * NdotL; - totalWeight += NdotL; - } - } - - if (totalWeight > 0.0) { - prefilteredColor = prefilteredColor / totalWeight; - } - - gl_FragColor = vec4(prefilteredColor, 1.0); - } - `,blending:0,depthTest:!1,depthWrite:!1})}function qI(e,t,n){const s=new Float32Array(Fo),a=new z(0,1,0);return new cr({name:"SphericalGaussianBlur",defines:{n:Fo,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:s},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:a}},vertexShader:mp(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform int samples; - uniform float weights[ n ]; - uniform bool latitudinal; - uniform float dTheta; - uniform float mipInt; - uniform vec3 poleAxis; - - #define ENVMAP_TYPE_CUBE_UV - #include - - vec3 getSample( float theta, vec3 axis ) { - - float cosTheta = cos( theta ); - // Rodrigues' axis-angle rotation - vec3 sampleDirection = vOutputDirection * cosTheta - + cross( axis, vOutputDirection ) * sin( theta ) - + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); - - return bilinearCubeUV( envMap, sampleDirection, mipInt ); - - } - - void main() { - - vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); - - if ( all( equal( axis, vec3( 0.0 ) ) ) ) { - - axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); - - } - - axis = normalize( axis ); - - gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); - - for ( int i = 1; i < n; i++ ) { - - if ( i >= samples ) { - - break; - - } - - float theta = dTheta * float( i ); - gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); - gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); - - } - - } - `,blending:0,depthTest:!1,depthWrite:!1})}function Q1(){return new cr({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:mp(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - - #include - - void main() { - - vec3 outputDirection = normalize( vOutputDirection ); - vec2 uv = equirectUv( outputDirection ); - - gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); - - } - `,blending:0,depthTest:!1,depthWrite:!1})}function eM(){return new cr({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:mp(),fragmentShader:` - - precision mediump float; - precision mediump int; - - uniform float flipEnvMap; - - varying vec3 vOutputDirection; - - uniform samplerCube envMap; - - void main() { - - gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); - - } - `,blending:0,depthTest:!1,depthWrite:!1})}function mp(){return` - - precision mediump float; - precision mediump int; - - attribute float faceIndex; - - varying vec3 vOutputDirection; - - // RH coordinate system; PMREM face-indexing convention - vec3 getDirection( vec2 uv, float face ) { - - uv = 2.0 * uv - 1.0; - - vec3 direction = vec3( uv, 1.0 ); - - if ( face == 0.0 ) { - - direction = direction.zyx; // ( 1, v, u ) pos x - - } else if ( face == 1.0 ) { - - direction = direction.xzy; - direction.xz *= -1.0; // ( -u, 1, -v ) pos y - - } else if ( face == 2.0 ) { - - direction.x *= -1.0; // ( -u, v, 1 ) pos z - - } else if ( face == 3.0 ) { - - direction = direction.zyx; - direction.xz *= -1.0; // ( -1, v, -u ) neg x - - } else if ( face == 4.0 ) { - - direction = direction.xzy; - direction.xy *= -1.0; // ( -u, -1, v ) neg y - - } else if ( face == 5.0 ) { - - direction.z *= -1.0; // ( u, v, -1 ) neg z - - } - - return direction; - - } - - void main() { - - vOutputDirection = getDirection( uv, faceIndex ); - gl_Position = vec4( position, 1.0 ); - - } - `}var iy=class extends lr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const n={width:e,height:e,depth:1},s=[n,n,n,n,n,n];this.texture=new ch(s),this._setTextureOptions(t),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` - - varying vec3 vWorldDirection; - - vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); - - } - - void main() { - - vWorldDirection = transformDirection( position, modelMatrix ); - - #include - #include - - } - `,fragmentShader:` - - uniform sampler2D tEquirect; - - varying vec3 vWorldDirection; - - #include - - void main() { - - vec3 direction = normalize( vWorldDirection ); - - vec2 sampleUV = equirectUv( direction ); - - gl_FragColor = texture2D( tEquirect, sampleUV ); - - } - `},s=new uh(5,5,5),a=new cr({name:"CubemapFromEquirect",uniforms:vc(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});a.uniforms.tEquirect.value=t;const l=new Hn(s,a),c=t.minFilter;return t.minFilter===1008&&(t.minFilter=xn),new _E(1,10,this).update(e,l),t.minFilter=c,l.geometry.dispose(),l.material.dispose(),this}clear(e,t=!0,n=!0,s=!0){const a=e.getRenderTarget();for(let l=0;l<6;l++)e.setRenderTarget(this,l),e.clear(t,n,s);e.setRenderTarget(a)}};function YI(e){let t=new WeakMap,n=new WeakMap,s=null;function a(y,_=!1){return y==null?null:_?c(y):l(y)}function l(y){if(y&&y.isTexture){const _=y.mapping;if(_===303||_===304)if(t.has(y)){const M=t.get(y).texture;return h(M,y.mapping)}else{const M=y.image;if(M&&M.height>0){const w=new iy(M.height);return w.fromEquirectangularTexture(e,y),t.set(y,w),y.addEventListener("dispose",f),h(w.texture,y.mapping)}else return null}}return y}function c(y){if(y&&y.isTexture){const _=y.mapping,M=_===303||_===304,w=_===301||_===302;if(M||w){let x=n.get(y);const b=x!==void 0?x.texture.pmremVersion:0;if(y.isRenderTargetTexture&&y.pmremVersion!==b)return s===null&&(s=new n0(e)),x=M?s.fromEquirectangular(y,x):s.fromCubemap(y,x),x.texture.pmremVersion=y.pmremVersion,n.set(y,x),x.texture;if(x!==void 0)return x.texture;{const C=y.image;return M&&C&&C.height>0||w&&C&&d(C)?(s===null&&(s=new n0(e)),x=M?s.fromEquirectangular(y):s.fromCubemap(y),x.texture.pmremVersion=y.pmremVersion,n.set(y,x),y.addEventListener("dispose",g),x.texture):null}}}return y}function h(y,_){return _===303?y.mapping=301:_===304&&(y.mapping=302),y}function d(y){let _=0;const M=6;for(let w=0;w=65535?P0:R0)(y,1);x.version=w;const b=l.get(v);b&&t.remove(b),l.set(v,x)}function g(v){const y=l.get(v);if(y){const _=v.index;_!==null&&y.version<_.version&&f(v)}else f(v);return l.get(v)}return{get:h,update:d,getWireframeAttribute:g}}function $I(e,t,n){let s;function a(v){s=v}let l,c;function h(v){l=v.type,c=v.bytesPerElement}function d(v,y){e.drawElements(s,y,l,v*c),n.update(y,s,1)}function f(v,y,_){_!==0&&(e.drawElementsInstanced(s,y,l,v*c,_),n.update(y,s,_))}function g(v,y,_){if(_===0)return;t.get("WEBGL_multi_draw").multiDrawElementsWEBGL(s,y,0,l,v,0,_);let M=0;for(let w=0;w<_;w++)M+=y[w];n.update(M,s,1)}this.setMode=a,this.setIndex=h,this.render=d,this.renderInstances=f,this.renderMultiDraw=g}function JI(e){const t={geometries:0,textures:0},n={frame:0,calls:0,triangles:0,points:0,lines:0};function s(l,c,h){switch(n.calls++,c){case e.TRIANGLES:n.triangles+=h*(l/3);break;case e.LINES:n.lines+=h*(l/2);break;case e.LINE_STRIP:n.lines+=h*(l-1);break;case e.LINE_LOOP:n.lines+=h*l;break;case e.POINTS:n.points+=h*l;break;default:rt("WebGLInfo: Unknown draw mode:",c);break}}function a(){n.calls=0,n.triangles=0,n.points=0,n.lines=0}return{memory:t,render:n,programs:null,autoReset:!0,reset:a,update:s}}function KI(e,t,n){const s=new WeakMap,a=new cn;function l(c,h,d){const f=c.morphTargetInfluences,g=h.morphAttributes.position||h.morphAttributes.normal||h.morphAttributes.color,v=g!==void 0?g.length:0;let y=s.get(h);if(y===void 0||y.count!==v){let P=function(){O.dispose(),s.delete(h),h.removeEventListener("dispose",P)};y!==void 0&&y.texture.dispose();const _=h.morphAttributes.position!==void 0,M=h.morphAttributes.normal!==void 0,w=h.morphAttributes.color!==void 0,x=h.morphAttributes.position||[],b=h.morphAttributes.normal||[],C=h.morphAttributes.color||[];let R=0;_===!0&&(R=1),M===!0&&(R=2),w===!0&&(R=3);let T=h.attributes.position.count*R,L=1;T>t.maxTextureSize&&(L=Math.ceil(T/t.maxTextureSize),T=t.maxTextureSize);const D=new Float32Array(T*L*4*v),O=new ap(D,T,L,v);O.type=Js,O.needsUpdate=!0;const A=R*4;for(let k=0;k - #include - - void main() { - gl_FragColor = texture2D( tDiffuse, vUv ); - - #ifdef LINEAR_TONE_MAPPING - gl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb ); - #elif defined( REINHARD_TONE_MAPPING ) - gl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb ); - #elif defined( CINEON_TONE_MAPPING ) - gl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb ); - #elif defined( ACES_FILMIC_TONE_MAPPING ) - gl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb ); - #elif defined( AGX_TONE_MAPPING ) - gl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb ); - #elif defined( NEUTRAL_TONE_MAPPING ) - gl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb ); - #elif defined( CUSTOM_TONE_MAPPING ) - gl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb ); - #endif - - #ifdef SRGB_TRANSFER - gl_FragColor = sRGBTransferOETF( gl_FragColor ); - #endif - }`,depthTest:!1,depthWrite:!1}),g=new Hn(d,f),v=new Mc(-1,1,1,-1,0,1);let y=null,_=null,M=!1,w,x=null,b=[],C=!1;this.setSize=function(R,T){c.setSize(R,T),h.setSize(R,T);for(let L=0;L0&&b[0].isRenderPass===!0;const T=c.width,L=c.height;for(let D=0;D0)return e;const a=t*n;let l=tM[a];if(l===void 0&&(l=new Float32Array(a),tM[a]=l),t!==0){s.toArray(l,0);for(let c=1,h=0;c!==t;++c)h+=n,e[c].toArray(l,h)}return l}function Yn(e,t){if(e.length!==t.length)return!1;for(let n=0,s=e.length;n0&&(this.seq=s.concat(a))}setValue(e,t,n,s){const a=this.map[t];a!==void 0&&a.setValue(e,n,s)}setOptional(e,t,n){const s=t[n];s!==void 0&&this.setValue(e,n,s)}static upload(e,t,n,s){for(let a=0,l=t.length;a!==l;++a){const c=t[a],h=n[c.id];h.needsUpdate!==!1&&c.setValue(e,h.value,s)}}static seqWithValue(e,t){const n=[];for(let s=0,a=e.length;s!==a;++s){const l=e[s];l.id in t&&n.push(l)}return n}};function oM(e,t,n){const s=e.createShader(t);return e.shaderSource(s,n),e.compileShader(s),s}var qL=37297,YL=0;function jL(e,t){const n=e.split(` -`),s=[],a=Math.max(t-6,0),l=Math.min(t+6,n.length);for(let c=a;c":" "} ${h}: ${n[c]}`)}return s.join(` -`)}var lM=new Et;function ZL(e){Ht._getMatrix(lM,Ht.workingColorSpace,e);const t=`mat3( ${lM.elements.map(n=>n.toFixed(4))} )`;switch(Ht.getTransfer(e)){case Ju:return[t,"LinearTransferOETF"];case Ku:return[t,"sRGBTransferOETF"];default:return Ne("WebGLProgram: Unsupported color space: ",e),[t,"LinearTransferOETF"]}}function cM(e,t,n){const s=e.getShaderParameter(t,e.COMPILE_STATUS),a=(e.getShaderInfoLog(t)||"").trim();if(s&&a==="")return"";const l=/ERROR: 0:(\d+)/.exec(a);if(l){const c=parseInt(l[1]);return n.toUpperCase()+` - -`+a+` - -`+jL(e.getShaderSource(t),c)}else return a}function $L(e,t){const n=ZL(t);return[`vec4 ${e}( vec4 value ) {`,` return ${n[1]}( vec4( value.rgb * ${n[0]}, value.a ) );`,"}"].join(` -`)}var JL={1:"Linear",2:"Reinhard",3:"Cineon",4:"ACESFilmic",6:"AgX",7:"Neutral",5:"Custom"};function KL(e,t){const n=JL[t];return n===void 0?(Ne("WebGLProgram: Unsupported toneMapping:",t),"vec3 "+e+"( vec3 color ) { return LinearToneMapping( color ); }"):"vec3 "+e+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}var Bf=new z;function QL(){return Ht.getLuminanceCoefficients(Bf),["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${Bf.x.toFixed(4)}, ${Bf.y.toFixed(4)}, ${Bf.z.toFixed(4)} );`," return dot( weights, rgb );","}"].join(` -`)}function eN(e){return[e.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",e.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(zu).join(` -`)}function tN(e){const t=[];for(const n in e){const s=e[n];s!==!1&&t.push("#define "+n+" "+s)}return t.join(` -`)}function nN(e,t){const n={},s=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let a=0;a/gm;function r0(e){return e.replace(iN,sN)}var rN=new Map;function sN(e,t){let n=Dt[t];if(n===void 0){const s=rN.get(t);if(s!==void 0)n=Dt[s],Ne('WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,s);else throw new Error("THREE.WebGLProgram: Can not resolve #include <"+t+">")}return r0(n)}var aN=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function dM(e){return e.replace(aN,oN)}function oN(e,t,n,s){let a="";for(let l=parseInt(t);l0&&(x+=` -`),b=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,M].filter(zu).join(` -`),b.length>0&&(b+=` -`)):(x=[fM(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,M,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+g:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexNormals?"#define HAS_NORMAL":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&n.flatShading===!1?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",n.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` -`].filter(zu).join(` -`),b=[fM(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,M,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+f:"",n.envMap?"#define "+g:"",n.envMap?"#define "+v:"",y?"#define CUBEUV_TEXEL_WIDTH "+y.texelWidth:"",y?"#define CUBEUV_TEXEL_HEIGHT "+y.texelHeight:"",y?"#define CUBEUV_MAX_MIP "+y.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.packedNormalMap?"#define USE_PACKED_NORMALMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas||n.batchingColor?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.numLightProbeGrids>0?"#define USE_LIGHT_PROBES_GRID":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",n.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",n.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==0?"#define TONE_MAPPING":"",n.toneMapping!==0?Dt.tonemapping_pars_fragment:"",n.toneMapping!==0?KL("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Dt.colorspace_pars_fragment,$L("linearToOutputTexel",n.outputColorSpace),QL(),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"",` -`].filter(zu).join(` -`)),c=r0(c),c=uM(c,n),c=hM(c,n),h=r0(h),h=uM(h,n),h=hM(h,n),c=dM(c),h=dM(h),n.isRawShaderMaterial!==!0&&(C=`#version 300 es -`,x=[_,"#define attribute in","#define varying out","#define texture2D texture"].join(` -`)+` -`+x,b=["#define varying in",n.glslVersion==="300 es"?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion==="300 es"?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` -`)+` -`+b);const R=C+x+c,T=C+b+h,L=oM(a,a.VERTEX_SHADER,R),D=oM(a,a.FRAGMENT_SHADER,T);a.attachShader(w,L),a.attachShader(w,D),n.index0AttributeName!==void 0?a.bindAttribLocation(w,0,n.index0AttributeName):n.hasPositionAttribute===!0&&a.bindAttribLocation(w,0,"position"),a.linkProgram(w);function O(F){if(e.debug.checkShaderErrors){const q=a.getProgramInfoLog(w)||"",X=a.getShaderInfoLog(L)||"",K=a.getShaderInfoLog(D)||"",ee=q.trim(),ae=X.trim(),Q=K.trim();let me=!0,_e=!0;if(a.getProgramParameter(w,a.LINK_STATUS)===!1)if(me=!1,typeof e.debug.onShaderError=="function")e.debug.onShaderError(a,w,L,D);else{const ge=cM(a,L,"vertex"),be=cM(a,D,"fragment");rt("WebGLProgram: Shader Error "+a.getError()+" - VALIDATE_STATUS "+a.getProgramParameter(w,a.VALIDATE_STATUS)+` - -Material Name: `+F.name+` -Material Type: `+F.type+` - -Program Info Log: `+ee+` -`+ge+` -`+be)}else ee!==""?Ne("WebGLProgram: Program Info Log:",ee):(ae===""||Q==="")&&(_e=!1);_e&&(F.diagnostics={runnable:me,programLog:ee,vertexShader:{log:ae,prefix:x},fragmentShader:{log:Q,prefix:b}})}a.deleteShader(L),a.deleteShader(D),A=new Xf(a,w),P=nN(a,w)}let A;this.getUniforms=function(){return A===void 0&&O(this),A};let P;this.getAttributes=function(){return P===void 0&&O(this),P};let k=n.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return k===!1&&(k=a.getProgramParameter(w,qL)),k},this.destroy=function(){s.releaseStatesOfProgram(this),a.deleteProgram(w),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=YL++,this.cacheKey=t,this.usedTimes=1,this.program=w,this.vertexShader=L,this.fragmentShader=D,this}var yN=0,_N=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e,t,n){const s=this._getShaderCacheForMaterial(e);return s.has(t)===!1&&(s.add(t),t.usedTimes++),s.has(n)===!1&&(s.add(n),n.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const n of t)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(e),this}getVertexShaderStage(e){return this._getShaderStage(e.vertexShader)}getFragmentShaderStage(e){return this._getShaderStage(e.fragmentShader)}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let n=t.get(e);return n===void 0&&(n=new Set,t.set(e,n)),n}_getShaderStage(e){const t=this.shaderCache;let n=t.get(e);return n===void 0&&(n=new bN(e),t.set(e,n)),n}},bN=class{constructor(e){this.id=yN++,this.code=e,this.usedTimes=0}};function xN(e){return e===1030||e===37490||e===36285}function SN(e,t,n,s,a,l){const c=new pc,h=new _N,d=new Set,f=[],g=new Map,v=s.logarithmicDepthBuffer;let y=s.precision;const _={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distance",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function M(A){return d.add(A),A===0?"uv":`uv${A}`}function w(A,P,k,F,q,X){const K=F.fog,ee=q.geometry,ae=A.isMeshStandardMaterial||A.isMeshLambertMaterial||A.isMeshPhongMaterial?F.environment:null,Q=A.isMeshStandardMaterial||A.isMeshLambertMaterial&&!A.envMap||A.isMeshPhongMaterial&&!A.envMap,me=t.get(A.envMap||ae,Q),_e=me&&me.mapping===306?me.image.height:null,ge=_[A.type];A.precision!==null&&(y=s.getMaxPrecision(A.precision),y!==A.precision&&Ne("WebGLProgram.getParameters:",A.precision,"not supported, using",y,"instead."));const be=ee.morphAttributes.position||ee.morphAttributes.normal||ee.morphAttributes.color,Ie=be!==void 0?be.length:0;let Ft=0;ee.morphAttributes.position!==void 0&&(Ft=1),ee.morphAttributes.normal!==void 0&&(Ft=2),ee.morphAttributes.color!==void 0&&(Ft=3);let pt,ue,Ce,ke;if(ge){const ot=Gr[ge];pt=ot.vertexShader,ue=ot.fragmentShader}else{pt=A.vertexShader,ue=A.fragmentShader;const ot=h.getVertexShaderStage(A),hn=h.getFragmentShaderStage(A);h.update(A,ot,hn),Ce=ot.id,ke=hn.id}const De=e.getRenderTarget(),st=e.state.buffers.depth.getReversed(),ht=q.isInstancedMesh===!0,Le=q.isBatchedMesh===!0,At=!!A.map,pe=!!A.matcap,Ee=!!me,Ae=!!A.aoMap,Ve=!!A.lightMap,Oe=!!A.bumpMap&&A.wireframe===!1,qe=!!A.normalMap,tt=!!A.displacementMap,vt=!!A.emissiveMap,bt=!!A.metalnessMap,V=!!A.roughnessMap,un=A.anisotropy>0,Gt=A.clearcoat>0,Ut=A.dispersion>0,U=A.iridescence>0,I=A.sheen>0,W=A.transmission>0,re=un&&!!A.anisotropyMap,ve=Gt&&!!A.clearcoatMap,Pe=Gt&&!!A.clearcoatNormalMap,Ue=Gt&&!!A.clearcoatRoughnessMap,Z=U&&!!A.iridescenceMap,Se=U&&!!A.iridescenceThicknessMap,Ge=I&&!!A.sheenColorMap,Qe=I&&!!A.sheenRoughnessMap,Te=!!A.specularMap,nt=!!A.specularColorMap,$e=!!A.specularIntensityMap,ct=W&&!!A.transmissionMap,jt=W&&!!A.thicknessMap,j=!!A.gradientMap,de=!!A.alphaMap,xe=A.alphaTest>0,We=!!A.alphaHash,et=!!A.extensions;let we=0;A.toneMapped&&(De===null||De.isXRRenderTarget===!0)&&(we=e.toneMapping);const Fe={shaderID:ge,shaderType:A.type,shaderName:A.name,vertexShader:pt,fragmentShader:ue,defines:A.defines,customVertexShaderID:Ce,customFragmentShaderID:ke,isRawShaderMaterial:A.isRawShaderMaterial===!0,glslVersion:A.glslVersion,precision:y,batching:Le,batchingColor:Le&&q._colorsTexture!==null,instancing:ht,instancingColor:ht&&q.instanceColor!==null,instancingMorph:ht&&q.morphTexture!==null,outputColorSpace:De===null?e.outputColorSpace:De.isXRRenderTarget===!0?De.texture.colorSpace:Ht.workingColorSpace,alphaToCoverage:!!A.alphaToCoverage,map:At,matcap:pe,envMap:Ee,envMapMode:Ee&&me.mapping,envMapCubeUVHeight:_e,aoMap:Ae,lightMap:Ve,bumpMap:Oe,normalMap:qe,displacementMap:tt,emissiveMap:vt,normalMapObjectSpace:qe&&A.normalMapType===1,normalMapTangentSpace:qe&&A.normalMapType===0,packedNormalMap:qe&&A.normalMapType===0&&xN(A.normalMap.format),metalnessMap:bt,roughnessMap:V,anisotropy:un,anisotropyMap:re,clearcoat:Gt,clearcoatMap:ve,clearcoatNormalMap:Pe,clearcoatRoughnessMap:Ue,dispersion:Ut,iridescence:U,iridescenceMap:Z,iridescenceThicknessMap:Se,sheen:I,sheenColorMap:Ge,sheenRoughnessMap:Qe,specularMap:Te,specularColorMap:nt,specularIntensityMap:$e,transmission:W,transmissionMap:ct,thicknessMap:jt,gradientMap:j,opaque:A.transparent===!1&&A.blending===1&&A.alphaToCoverage===!1,alphaMap:de,alphaTest:xe,alphaHash:We,combine:A.combine,mapUv:At&&M(A.map.channel),aoMapUv:Ae&&M(A.aoMap.channel),lightMapUv:Ve&&M(A.lightMap.channel),bumpMapUv:Oe&&M(A.bumpMap.channel),normalMapUv:qe&&M(A.normalMap.channel),displacementMapUv:tt&&M(A.displacementMap.channel),emissiveMapUv:vt&&M(A.emissiveMap.channel),metalnessMapUv:bt&&M(A.metalnessMap.channel),roughnessMapUv:V&&M(A.roughnessMap.channel),anisotropyMapUv:re&&M(A.anisotropyMap.channel),clearcoatMapUv:ve&&M(A.clearcoatMap.channel),clearcoatNormalMapUv:Pe&&M(A.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Ue&&M(A.clearcoatRoughnessMap.channel),iridescenceMapUv:Z&&M(A.iridescenceMap.channel),iridescenceThicknessMapUv:Se&&M(A.iridescenceThicknessMap.channel),sheenColorMapUv:Ge&&M(A.sheenColorMap.channel),sheenRoughnessMapUv:Qe&&M(A.sheenRoughnessMap.channel),specularMapUv:Te&&M(A.specularMap.channel),specularColorMapUv:nt&&M(A.specularColorMap.channel),specularIntensityMapUv:$e&&M(A.specularIntensityMap.channel),transmissionMapUv:ct&&M(A.transmissionMap.channel),thicknessMapUv:jt&&M(A.thicknessMap.channel),alphaMapUv:de&&M(A.alphaMap.channel),vertexTangents:!!ee.attributes.tangent&&(qe||un),vertexNormals:!!ee.attributes.normal,vertexColors:A.vertexColors,vertexAlphas:A.vertexColors===!0&&!!ee.attributes.color&&ee.attributes.color.itemSize===4,pointsUvs:q.isPoints===!0&&!!ee.attributes.uv&&(At||de),fog:!!K,useFog:A.fog===!0,fogExp2:!!K&&K.isFogExp2,flatShading:A.wireframe===!1&&(A.flatShading===!0||ee.attributes.normal===void 0&&qe===!1&&(A.isMeshLambertMaterial||A.isMeshPhongMaterial||A.isMeshStandardMaterial||A.isMeshPhysicalMaterial)),sizeAttenuation:A.sizeAttenuation===!0,logarithmicDepthBuffer:v,reversedDepthBuffer:st,skinning:q.isSkinnedMesh===!0,hasPositionAttribute:ee.attributes.position!==void 0,morphTargets:ee.morphAttributes.position!==void 0,morphNormals:ee.morphAttributes.normal!==void 0,morphColors:ee.morphAttributes.color!==void 0,morphTargetsCount:Ie,morphTextureStride:Ft,numDirLights:P.directional.length,numPointLights:P.point.length,numSpotLights:P.spot.length,numSpotLightMaps:P.spotLightMap.length,numRectAreaLights:P.rectArea.length,numHemiLights:P.hemi.length,numDirLightShadows:P.directionalShadowMap.length,numPointLightShadows:P.pointShadowMap.length,numSpotLightShadows:P.spotShadowMap.length,numSpotLightShadowsWithMaps:P.numSpotLightShadowsWithMaps,numLightProbes:P.numLightProbes,numLightProbeGrids:X.length,numClippingPlanes:l.numPlanes,numClipIntersection:l.numIntersection,dithering:A.dithering,shadowMapEnabled:e.shadowMap.enabled&&k.length>0,shadowMapType:e.shadowMap.type,toneMapping:we,decodeVideoTexture:At&&A.map.isVideoTexture===!0&&Ht.getTransfer(A.map.colorSpace)==="srgb",decodeVideoTextureEmissive:vt&&A.emissiveMap.isVideoTexture===!0&&Ht.getTransfer(A.emissiveMap.colorSpace)==="srgb",premultipliedAlpha:A.premultipliedAlpha,doubleSided:A.side===2,flipSided:A.side===1,useDepthPacking:A.depthPacking>=0,depthPacking:A.depthPacking||0,index0AttributeName:A.index0AttributeName,extensionClipCullDistance:et&&A.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(et&&A.extensions.multiDraw===!0||Le)&&n.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:A.customProgramCacheKey()};return Fe.vertexUv1s=d.has(1),Fe.vertexUv2s=d.has(2),Fe.vertexUv3s=d.has(3),d.clear(),Fe}function x(A){const P=[];if(A.shaderID?P.push(A.shaderID):(P.push(A.customVertexShaderID),P.push(A.customFragmentShaderID)),A.defines!==void 0)for(const k in A.defines)P.push(k),P.push(A.defines[k]);return A.isRawShaderMaterial===!1&&(b(P,A),C(P,A),P.push(e.outputColorSpace)),P.push(A.customProgramCacheKey),P.join()}function b(A,P){A.push(P.precision),A.push(P.outputColorSpace),A.push(P.envMapMode),A.push(P.envMapCubeUVHeight),A.push(P.mapUv),A.push(P.alphaMapUv),A.push(P.lightMapUv),A.push(P.aoMapUv),A.push(P.bumpMapUv),A.push(P.normalMapUv),A.push(P.displacementMapUv),A.push(P.emissiveMapUv),A.push(P.metalnessMapUv),A.push(P.roughnessMapUv),A.push(P.anisotropyMapUv),A.push(P.clearcoatMapUv),A.push(P.clearcoatNormalMapUv),A.push(P.clearcoatRoughnessMapUv),A.push(P.iridescenceMapUv),A.push(P.iridescenceThicknessMapUv),A.push(P.sheenColorMapUv),A.push(P.sheenRoughnessMapUv),A.push(P.specularMapUv),A.push(P.specularColorMapUv),A.push(P.specularIntensityMapUv),A.push(P.transmissionMapUv),A.push(P.thicknessMapUv),A.push(P.combine),A.push(P.fogExp2),A.push(P.sizeAttenuation),A.push(P.morphTargetsCount),A.push(P.morphAttributeCount),A.push(P.numDirLights),A.push(P.numPointLights),A.push(P.numSpotLights),A.push(P.numSpotLightMaps),A.push(P.numHemiLights),A.push(P.numRectAreaLights),A.push(P.numDirLightShadows),A.push(P.numPointLightShadows),A.push(P.numSpotLightShadows),A.push(P.numSpotLightShadowsWithMaps),A.push(P.numLightProbes),A.push(P.shadowMapType),A.push(P.toneMapping),A.push(P.numClippingPlanes),A.push(P.numClipIntersection),A.push(P.depthPacking)}function C(A,P){c.disableAll(),P.instancing&&c.enable(0),P.instancingColor&&c.enable(1),P.instancingMorph&&c.enable(2),P.matcap&&c.enable(3),P.envMap&&c.enable(4),P.normalMapObjectSpace&&c.enable(5),P.normalMapTangentSpace&&c.enable(6),P.clearcoat&&c.enable(7),P.iridescence&&c.enable(8),P.alphaTest&&c.enable(9),P.vertexColors&&c.enable(10),P.vertexAlphas&&c.enable(11),P.vertexUv1s&&c.enable(12),P.vertexUv2s&&c.enable(13),P.vertexUv3s&&c.enable(14),P.vertexTangents&&c.enable(15),P.anisotropy&&c.enable(16),P.alphaHash&&c.enable(17),P.batching&&c.enable(18),P.dispersion&&c.enable(19),P.batchingColor&&c.enable(20),P.gradientMap&&c.enable(21),P.packedNormalMap&&c.enable(22),P.vertexNormals&&c.enable(23),A.push(c.mask),c.disableAll(),P.fog&&c.enable(0),P.useFog&&c.enable(1),P.flatShading&&c.enable(2),P.logarithmicDepthBuffer&&c.enable(3),P.reversedDepthBuffer&&c.enable(4),P.skinning&&c.enable(5),P.morphTargets&&c.enable(6),P.morphNormals&&c.enable(7),P.morphColors&&c.enable(8),P.premultipliedAlpha&&c.enable(9),P.shadowMapEnabled&&c.enable(10),P.doubleSided&&c.enable(11),P.flipSided&&c.enable(12),P.useDepthPacking&&c.enable(13),P.dithering&&c.enable(14),P.transmission&&c.enable(15),P.sheen&&c.enable(16),P.opaque&&c.enable(17),P.pointsUvs&&c.enable(18),P.decodeVideoTexture&&c.enable(19),P.decodeVideoTextureEmissive&&c.enable(20),P.alphaToCoverage&&c.enable(21),P.numLightProbeGrids>0&&c.enable(22),P.hasPositionAttribute&&c.enable(23),A.push(c.mask)}function R(A){const P=_[A.type];let k;if(P){const F=Gr[P];k=YT.clone(F.uniforms)}else k=A.uniforms;return k}function T(A,P){let k=g.get(P);return k!==void 0?++k.usedTimes:(k=new vN(e,P,A,a),f.push(k),g.set(P,k)),k}function L(A){if(--A.usedTimes===0){const P=f.indexOf(A);f[P]=f[f.length-1],f.pop(),g.delete(A.cacheKey),A.destroy()}}function D(A){h.remove(A)}function O(){h.dispose()}return{getParameters:w,getProgramCacheKey:x,getUniforms:R,acquireProgram:T,releaseProgram:L,releaseShaderCache:D,programs:f,dispose:O}}function MN(){let e=new WeakMap;function t(c){return e.has(c)}function n(c){let h=e.get(c);return h===void 0&&(h={},e.set(c,h)),h}function s(c){e.delete(c)}function a(c,h,d){e.get(c)[h]=d}function l(){e=new WeakMap}return{has:t,get:n,remove:s,update:a,dispose:l}}function wN(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.material.id!==t.material.id?e.material.id-t.material.id:e.materialVariant!==t.materialVariant?e.materialVariant-t.materialVariant:e.z!==t.z?e.z-t.z:e.id-t.id}function pM(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id-t.id}function mM(){const e=[];let t=0;const n=[],s=[],a=[];function l(){t=0,n.length=0,s.length=0,a.length=0}function c(y){let _=0;return y.isInstancedMesh&&(_+=2),y.isSkinnedMesh&&(_+=1),_}function h(y,_,M,w,x,b){let C=e[t];return C===void 0?(C={id:y.id,object:y,geometry:_,material:M,materialVariant:c(y),groupOrder:w,renderOrder:y.renderOrder,z:x,group:b},e[t]=C):(C.id=y.id,C.object=y,C.geometry=_,C.material=M,C.materialVariant=c(y),C.groupOrder=w,C.renderOrder=y.renderOrder,C.z=x,C.group=b),t++,C}function d(y,_,M,w,x,b){const C=h(y,_,M,w,x,b);M.transmission>0?s.push(C):M.transparent===!0?a.push(C):n.push(C)}function f(y,_,M,w,x,b){const C=h(y,_,M,w,x,b);M.transmission>0?s.unshift(C):M.transparent===!0?a.unshift(C):n.unshift(C)}function g(y,_,M){n.length>1&&n.sort(y||wN),s.length>1&&s.sort(_||pM),a.length>1&&a.sort(_||pM),M&&(n.reverse(),s.reverse(),a.reverse())}function v(){for(let y=t,_=e.length;y<_;y++){const M=e[y];if(M.id===null)break;M.id=null,M.object=null,M.geometry=null,M.material=null,M.group=null}}return{opaque:n,transmissive:s,transparent:a,init:l,push:d,unshift:f,finish:v,sort:g}}function TN(){let e=new WeakMap;function t(s,a){const l=e.get(s);let c;return l===void 0?(c=new mM,e.set(s,[c])):a>=l.length?(c=new mM,l.push(c)):c=l[a],c}function n(){e=new WeakMap}return{get:t,dispose:n}}function EN(){const e={};return{get:function(t){if(e[t.id]!==void 0)return e[t.id];let n;switch(t.type){case"DirectionalLight":n={direction:new z,color:new Xe};break;case"SpotLight":n={position:new z,direction:new z,color:new Xe,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new z,color:new Xe,distance:0,decay:0};break;case"HemisphereLight":n={direction:new z,skyColor:new Xe,groundColor:new Xe};break;case"RectAreaLight":n={color:new Xe,position:new z,halfWidth:new z,halfHeight:new z};break}return e[t.id]=n,n}}}function AN(){const e={};return{get:function(t){if(e[t.id]!==void 0)return e[t.id];let n;switch(t.type){case"DirectionalLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ye};break;case"SpotLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ye};break;case"PointLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ye,shadowCameraNear:1,shadowCameraFar:1e3};break}return e[t.id]=n,n}}}var CN=0;function RN(e,t){return(t.castShadow?2:0)-(e.castShadow?2:0)+(t.map?1:0)-(e.map?1:0)}function PN(e){const t=new EN,n=AN(),s={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let f=0;f<9;f++)s.probe.push(new z);const a=new z,l=new St,c=new St;function h(f){let g=0,v=0,y=0;for(let P=0;P<9;P++)s.probe[P].set(0,0,0);let _=0,M=0,w=0,x=0,b=0,C=0,R=0,T=0,L=0,D=0,O=0;f.sort(RN);for(let P=0,k=f.length;P0&&(e.has("OES_texture_float_linear")===!0?(s.rectAreaLTC1=Be.LTC_FLOAT_1,s.rectAreaLTC2=Be.LTC_FLOAT_2):(s.rectAreaLTC1=Be.LTC_HALF_1,s.rectAreaLTC2=Be.LTC_HALF_2)),s.ambient[0]=g,s.ambient[1]=v,s.ambient[2]=y;const A=s.hash;(A.directionalLength!==_||A.pointLength!==M||A.spotLength!==w||A.rectAreaLength!==x||A.hemiLength!==b||A.numDirectionalShadows!==C||A.numPointShadows!==R||A.numSpotShadows!==T||A.numSpotMaps!==L||A.numLightProbes!==O)&&(s.directional.length=_,s.spot.length=w,s.rectArea.length=x,s.point.length=M,s.hemi.length=b,s.directionalShadow.length=C,s.directionalShadowMap.length=C,s.pointShadow.length=R,s.pointShadowMap.length=R,s.spotShadow.length=T,s.spotShadowMap.length=T,s.directionalShadowMatrix.length=C,s.pointShadowMatrix.length=R,s.spotLightMatrix.length=T+L-D,s.spotLightMap.length=L,s.numSpotLightShadowsWithMaps=D,s.numLightProbes=O,A.directionalLength=_,A.pointLength=M,A.spotLength=w,A.rectAreaLength=x,A.hemiLength=b,A.numDirectionalShadows=C,A.numPointShadows=R,A.numSpotShadows=T,A.numSpotMaps=L,A.numLightProbes=O,s.version=CN++)}function d(f,g){let v=0,y=0,_=0,M=0,w=0;const x=g.matrixWorldInverse;for(let b=0,C=f.length;b=c.length?(h=new gM(e),c.push(h)):h=c[l],h}function s(){t=new WeakMap}return{get:n,dispose:s}}var LN=`void main() { - gl_Position = vec4( position, 1.0 ); -}`,NN=`uniform sampler2D shadow_pass; -uniform vec2 resolution; -uniform float radius; -void main() { - const float samples = float( VSM_SAMPLES ); - float mean = 0.0; - float squared_mean = 0.0; - float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); - float uvStart = samples <= 1.0 ? 0.0 : - 1.0; - for ( float i = 0.0; i < samples; i ++ ) { - float uvOffset = uvStart + i * uvStride; - #ifdef HORIZONTAL_PASS - vec2 distribution = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ).rg; - mean += distribution.x; - squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; - #else - float depth = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ).r; - mean += depth; - squared_mean += depth * depth; - #endif - } - mean = mean / samples; - squared_mean = squared_mean / samples; - float std_dev = sqrt( max( 0.0, squared_mean - mean * mean ) ); - gl_FragColor = vec4( mean, std_dev, 0.0, 1.0 ); -}`,DN=[new z(1,0,0),new z(-1,0,0),new z(0,1,0),new z(0,-1,0),new z(0,0,1),new z(0,0,-1)],UN=[new z(0,-1,0),new z(0,-1,0),new z(0,0,1),new z(0,0,-1),new z(0,-1,0),new z(0,-1,0)],vM=new St,Ou=new z,Bv=new z;function ON(e,t,n){let s=new Go;const a=new ye,l=new ye,c=new cn,h=new Y0,d=new j0,f={},g=n.maxTextureSize,v={0:1,1:0,2:2},y=new cr({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new ye},radius:{value:4}},vertexShader:LN,fragmentShader:NN}),_=y.clone();_.defines.HORIZONTAL_PASS=1;const M=new Lt;M.setAttribute("position",new an(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const w=new Hn(M,y),x=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1;let b=this.type;this.render=function(D,O,A){if(x.enabled===!1||x.autoUpdate===!1&&x.needsUpdate===!1||D.length===0)return;this.type===2&&(Ne("WebGLShadowMap: PCFSoftShadowMap has been deprecated. Using PCFShadowMap instead."),this.type=1);const P=e.getRenderTarget(),k=e.getActiveCubeFace(),F=e.getActiveMipmapLevel(),q=e.state;q.setBlending(0),q.buffers.depth.getReversed()===!0?q.buffers.color.setClear(0,0,0,0):q.buffers.color.setClear(1,1,1,1),q.buffers.depth.setTest(!0),q.setScissorTest(!1);const X=b!==this.type;X&&O.traverse(function(K){K.material&&(Array.isArray(K.material)?K.material.forEach(ee=>ee.needsUpdate=!0):K.material.needsUpdate=!0)});for(let K=0,ee=D.length;Kg||a.y>g)&&(a.x>g&&(l.x=Math.floor(g/me.x),a.x=l.x*me.x,Q.mapSize.x=l.x),a.y>g&&(l.y=Math.floor(g/me.y),a.y=l.y*me.y,Q.mapSize.y=l.y));const _e=e.state.buffers.depth.getReversed();if(Q.camera._reversedDepth=_e,Q.map===null||X===!0){if(Q.map!==null&&(Q.map.depthTexture!==null&&(Q.map.depthTexture.dispose(),Q.map.depthTexture=null),Q.map.dispose()),this.type===3){if(ae.isPointLight){Ne("WebGLShadowMap: VSM shadow maps are not supported for PointLights. Use PCF or BasicShadowMap instead.");continue}Q.map=new lr(a.x,a.y,{format:Yu,type:Va,minFilter:xn,magFilter:xn,generateMipmaps:!1}),Q.map.texture.name=ae.name+".shadowMap",Q.map.depthTexture=new Wo(a.x,a.y,Js),Q.map.depthTexture.name=ae.name+".shadowMapDepth",Q.map.depthTexture.format=dc,Q.map.depthTexture.compareFunction=null,Q.map.depthTexture.minFilter=qn,Q.map.depthTexture.magFilter=qn}else ae.isPointLight?(Q.map=new iy(a.x),Q.map.depthTexture=new tT(a.x,$s)):(Q.map=new lr(a.x,a.y),Q.map.depthTexture=new Wo(a.x,a.y,$s)),Q.map.depthTexture.name=ae.name+".shadowMap",Q.map.depthTexture.format=dc,this.type===1?(Q.map.depthTexture.compareFunction=_e?518:515,Q.map.depthTexture.minFilter=xn,Q.map.depthTexture.magFilter=xn):(Q.map.depthTexture.compareFunction=null,Q.map.depthTexture.minFilter=qn,Q.map.depthTexture.magFilter=qn);Q.camera.updateProjectionMatrix()}const ge=Q.map.isWebGLCubeRenderTarget?6:1;for(let be=0;be0||O.map&&O.alphaTest>0||O.alphaToCoverage===!0){const q=k.uuid,X=O.uuid;let K=f[q];K===void 0&&(K={},f[q]=K);let ee=K[X];ee===void 0&&(ee=k.clone(),K[X]=ee,O.addEventListener("dispose",L)),k=ee}if(k.visible=O.visible,k.wireframe=O.wireframe,P===3?k.side=O.shadowSide!==null?O.shadowSide:O.side:k.side=O.shadowSide!==null?O.shadowSide:v[O.side],k.alphaMap=O.alphaMap,k.alphaTest=O.alphaToCoverage===!0?.5:O.alphaTest,k.map=O.map,k.clipShadows=O.clipShadows,k.clippingPlanes=O.clippingPlanes,k.clipIntersection=O.clipIntersection,k.displacementMap=O.displacementMap,k.displacementScale=O.displacementScale,k.displacementBias=O.displacementBias,k.wireframeLinewidth=O.wireframeLinewidth,k.linewidth=O.linewidth,A.isPointLight===!0&&k.isMeshDistanceMaterial===!0){const q=e.properties.get(k);q.light=A}return k}function T(D,O,A,P,k){if(D.visible===!1)return;if(D.layers.test(O.layers)&&(D.isMesh||D.isLine||D.isPoints)&&(D.castShadow||D.receiveShadow&&k===3)&&(!D.frustumCulled||s.intersectsObject(D))){D.modelViewMatrix.multiplyMatrices(A.matrixWorldInverse,D.matrixWorld);const q=t.update(D),X=D.material;if(Array.isArray(X)){const K=q.groups;for(let ee=0,ae=K.length;ee=1):_e.indexOf("OpenGL ES")!==-1&&(me=parseFloat(/^OpenGL ES (\d)/.exec(_e)[1]),Q=me>=2);let ge=null,be={};const Ie=e.getParameter(e.SCISSOR_BOX),Ft=e.getParameter(e.VIEWPORT),pt=new cn().fromArray(Ie),ue=new cn().fromArray(Ft);function Ce(j,de,xe,We){const et=new Uint8Array(4),we=e.createTexture();e.bindTexture(j,we),e.texParameteri(j,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(j,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let Fe=0;Fe"u"?!1:/OculusBrowser/g.test(navigator.userAgent),f=new ye,g=new WeakMap,v=new Set;let y;const _=new WeakMap;let M=!1;try{M=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function w(U,I){return M?new OffscreenCanvas(U,I):Qu("canvas")}function x(U,I,W){let re=1;const ve=Ut(U);if((ve.width>W||ve.height>W)&&(re=W/Math.max(ve.width,ve.height)),re<1)if(typeof HTMLImageElement<"u"&&U instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&U instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&U instanceof ImageBitmap||typeof VideoFrame<"u"&&U instanceof VideoFrame){const Pe=Math.floor(re*ve.width),Ue=Math.floor(re*ve.height);y===void 0&&(y=w(Pe,Ue));const Z=I?w(Pe,Ue):y;return Z.width=Pe,Z.height=Ue,Z.getContext("2d").drawImage(U,0,0,Pe,Ue),Ne("WebGLRenderer: Texture has been resized from ("+ve.width+"x"+ve.height+") to ("+Pe+"x"+Ue+")."),Z}else return"data"in U&&Ne("WebGLRenderer: Image in DataTexture is too big ("+ve.width+"x"+ve.height+")."),U;return U}function b(U){return U.generateMipmaps}function C(U){e.generateMipmap(U)}function R(U){return U.isWebGLCubeRenderTarget?e.TEXTURE_CUBE_MAP:U.isWebGL3DRenderTarget?e.TEXTURE_3D:U.isWebGLArrayRenderTarget||U.isCompressedArrayTexture?e.TEXTURE_2D_ARRAY:e.TEXTURE_2D}function T(U,I,W,re,ve,Pe=!1){if(U!==null){if(e[U]!==void 0)return e[U];Ne("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+U+"'")}let Ue;re&&(Ue=t.get("EXT_texture_norm16"),Ue||Ne("WebGLRenderer: Unable to use normalized textures without EXT_texture_norm16 extension"));let Z=I;if(I===e.RED&&(W===e.FLOAT&&(Z=e.R32F),W===e.HALF_FLOAT&&(Z=e.R16F),W===e.UNSIGNED_BYTE&&(Z=e.R8),W===e.UNSIGNED_SHORT&&Ue&&(Z=Ue.R16_EXT),W===e.SHORT&&Ue&&(Z=Ue.R16_SNORM_EXT)),I===e.RED_INTEGER&&(W===e.UNSIGNED_BYTE&&(Z=e.R8UI),W===e.UNSIGNED_SHORT&&(Z=e.R16UI),W===e.UNSIGNED_INT&&(Z=e.R32UI),W===e.BYTE&&(Z=e.R8I),W===e.SHORT&&(Z=e.R16I),W===e.INT&&(Z=e.R32I)),I===e.RG&&(W===e.FLOAT&&(Z=e.RG32F),W===e.HALF_FLOAT&&(Z=e.RG16F),W===e.UNSIGNED_BYTE&&(Z=e.RG8),W===e.UNSIGNED_SHORT&&Ue&&(Z=Ue.RG16_EXT),W===e.SHORT&&Ue&&(Z=Ue.RG16_SNORM_EXT)),I===e.RG_INTEGER&&(W===e.UNSIGNED_BYTE&&(Z=e.RG8UI),W===e.UNSIGNED_SHORT&&(Z=e.RG16UI),W===e.UNSIGNED_INT&&(Z=e.RG32UI),W===e.BYTE&&(Z=e.RG8I),W===e.SHORT&&(Z=e.RG16I),W===e.INT&&(Z=e.RG32I)),I===e.RGB_INTEGER&&(W===e.UNSIGNED_BYTE&&(Z=e.RGB8UI),W===e.UNSIGNED_SHORT&&(Z=e.RGB16UI),W===e.UNSIGNED_INT&&(Z=e.RGB32UI),W===e.BYTE&&(Z=e.RGB8I),W===e.SHORT&&(Z=e.RGB16I),W===e.INT&&(Z=e.RGB32I)),I===e.RGBA_INTEGER&&(W===e.UNSIGNED_BYTE&&(Z=e.RGBA8UI),W===e.UNSIGNED_SHORT&&(Z=e.RGBA16UI),W===e.UNSIGNED_INT&&(Z=e.RGBA32UI),W===e.BYTE&&(Z=e.RGBA8I),W===e.SHORT&&(Z=e.RGBA16I),W===e.INT&&(Z=e.RGBA32I)),I===e.RGB&&(W===e.UNSIGNED_SHORT&&Ue&&(Z=Ue.RGB16_EXT),W===e.SHORT&&Ue&&(Z=Ue.RGB16_SNORM_EXT),W===e.UNSIGNED_INT_5_9_9_9_REV&&(Z=e.RGB9_E5),W===e.UNSIGNED_INT_10F_11F_11F_REV&&(Z=e.R11F_G11F_B10F)),I===e.RGBA){const Se=Pe?Ju:Ht.getTransfer(ve);W===e.FLOAT&&(Z=e.RGBA32F),W===e.HALF_FLOAT&&(Z=e.RGBA16F),W===e.UNSIGNED_BYTE&&(Z=Se==="srgb"?e.SRGB8_ALPHA8:e.RGBA8),W===e.UNSIGNED_SHORT&&Ue&&(Z=Ue.RGBA16_EXT),W===e.SHORT&&Ue&&(Z=Ue.RGBA16_SNORM_EXT),W===e.UNSIGNED_SHORT_4_4_4_4&&(Z=e.RGBA4),W===e.UNSIGNED_SHORT_5_5_5_1&&(Z=e.RGB5_A1)}return(Z===e.R16F||Z===e.R32F||Z===e.RG16F||Z===e.RG32F||Z===e.RGBA16F||Z===e.RGBA32F)&&t.get("EXT_color_buffer_float"),Z}function L(U,I){let W;return U?I===null||I===1014||I===1020?W=e.DEPTH24_STENCIL8:I===1015?W=e.DEPTH32F_STENCIL8:I===1012&&(W=e.DEPTH24_STENCIL8,Ne("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):I===null||I===1014||I===1020?W=e.DEPTH_COMPONENT24:I===1015?W=e.DEPTH_COMPONENT32F:I===1012&&(W=e.DEPTH_COMPONENT16),W}function D(U,I){return b(U)===!0||U.isFramebufferTexture&&U.minFilter!==1003&&U.minFilter!==1006?Math.log2(Math.max(I.width,I.height))+1:U.mipmaps!==void 0&&U.mipmaps.length>0?U.mipmaps.length:U.isCompressedTexture&&Array.isArray(U.image)?I.mipmaps.length:1}function O(U){const I=U.target;I.removeEventListener("dispose",O),P(I),I.isVideoTexture&&g.delete(I),I.isHTMLTexture&&v.delete(I)}function A(U){const I=U.target;I.removeEventListener("dispose",A),F(I)}function P(U){const I=s.get(U);if(I.__webglInit===void 0)return;const W=U.source,re=_.get(W);if(re){const ve=re[I.__cacheKey];ve.usedTimes--,ve.usedTimes===0&&k(U),Object.keys(re).length===0&&_.delete(W)}s.remove(U)}function k(U){const I=s.get(U);e.deleteTexture(I.__webglTexture);const W=U.source,re=_.get(W);delete re[I.__cacheKey],c.memory.textures--}function F(U){const I=s.get(U);if(U.depthTexture&&(U.depthTexture.dispose(),s.remove(U.depthTexture)),U.isWebGLCubeRenderTarget)for(let re=0;re<6;re++){if(Array.isArray(I.__webglFramebuffer[re]))for(let ve=0;ve=a.maxTextures&&Ne("WebGLTextures: Trying to use "+U+" texture units while this GPU supports only "+a.maxTextures),q+=1,U}function Q(U){const I=[];return I.push(U.wrapS),I.push(U.wrapT),I.push(U.wrapR||0),I.push(U.magFilter),I.push(U.minFilter),I.push(U.anisotropy),I.push(U.internalFormat),I.push(U.format),I.push(U.type),I.push(U.generateMipmaps),I.push(U.premultiplyAlpha),I.push(U.flipY),I.push(U.unpackAlignment),I.push(U.colorSpace),I.join()}function me(U,I){const W=s.get(U);if(U.isVideoTexture&&un(U),U.isRenderTargetTexture===!1&&U.isExternalTexture!==!0&&U.version>0&&W.__version!==U.version){const re=U.image;if(re===null)Ne("WebGLRenderer: Texture marked for update but no image data found.");else if(re.complete===!1)Ne("WebGLRenderer: Texture marked for update but image is incomplete");else{st(W,U,I);return}}else U.isExternalTexture&&(W.__webglTexture=U.sourceTexture?U.sourceTexture:null);n.bindTexture(e.TEXTURE_2D,W.__webglTexture,e.TEXTURE0+I)}function _e(U,I){const W=s.get(U);if(U.isRenderTargetTexture===!1&&U.version>0&&W.__version!==U.version){st(W,U,I);return}else U.isExternalTexture&&(W.__webglTexture=U.sourceTexture?U.sourceTexture:null);n.bindTexture(e.TEXTURE_2D_ARRAY,W.__webglTexture,e.TEXTURE0+I)}function ge(U,I){const W=s.get(U);if(U.isRenderTargetTexture===!1&&U.version>0&&W.__version!==U.version){st(W,U,I);return}n.bindTexture(e.TEXTURE_3D,W.__webglTexture,e.TEXTURE0+I)}function be(U,I){const W=s.get(U);if(U.isCubeDepthTexture!==!0&&U.version>0&&W.__version!==U.version){ht(W,U,I);return}n.bindTexture(e.TEXTURE_CUBE_MAP,W.__webglTexture,e.TEXTURE0+I)}const Ie={[Xu]:e.REPEAT,[ji]:e.CLAMP_TO_EDGE,[qu]:e.MIRRORED_REPEAT},Ft={[qn]:e.NEAREST,[p0]:e.NEAREST_MIPMAP_NEAREST,[m0]:e.NEAREST_MIPMAP_LINEAR,[xn]:e.LINEAR,[g0]:e.LINEAR_MIPMAP_NEAREST,[_c]:e.LINEAR_MIPMAP_LINEAR},pt={512:e.NEVER,519:e.ALWAYS,513:e.LESS,515:e.LEQUAL,514:e.EQUAL,518:e.GEQUAL,516:e.GREATER,517:e.NOTEQUAL};function ue(U,I){if(I.type===1015&&t.has("OES_texture_float_linear")===!1&&(I.magFilter===1006||I.magFilter===1007||I.magFilter===1005||I.magFilter===1008||I.minFilter===1006||I.minFilter===1007||I.minFilter===1005||I.minFilter===1008)&&Ne("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),e.texParameteri(U,e.TEXTURE_WRAP_S,Ie[I.wrapS]),e.texParameteri(U,e.TEXTURE_WRAP_T,Ie[I.wrapT]),(U===e.TEXTURE_3D||U===e.TEXTURE_2D_ARRAY)&&e.texParameteri(U,e.TEXTURE_WRAP_R,Ie[I.wrapR]),e.texParameteri(U,e.TEXTURE_MAG_FILTER,Ft[I.magFilter]),e.texParameteri(U,e.TEXTURE_MIN_FILTER,Ft[I.minFilter]),I.compareFunction&&(e.texParameteri(U,e.TEXTURE_COMPARE_MODE,e.COMPARE_REF_TO_TEXTURE),e.texParameteri(U,e.TEXTURE_COMPARE_FUNC,pt[I.compareFunction])),t.has("EXT_texture_filter_anisotropic")===!0){if(I.magFilter===1003||I.minFilter!==1005&&I.minFilter!==1008||I.type===1015&&t.has("OES_texture_float_linear")===!1)return;if(I.anisotropy>1||s.get(I).__currentAnisotropy){const W=t.get("EXT_texture_filter_anisotropic");e.texParameterf(U,W.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(I.anisotropy,a.getMaxAnisotropy())),s.get(I).__currentAnisotropy=I.anisotropy}}}function Ce(U,I){let W=!1;U.__webglInit===void 0&&(U.__webglInit=!0,I.addEventListener("dispose",O));const re=I.source;let ve=_.get(re);ve===void 0&&(ve={},_.set(re,ve));const Pe=Q(I);if(Pe!==U.__cacheKey){ve[Pe]===void 0&&(ve[Pe]={texture:e.createTexture(),usedTimes:0},c.memory.textures++,W=!0),ve[Pe].usedTimes++;const Ue=ve[U.__cacheKey];Ue!==void 0&&(ve[U.__cacheKey].usedTimes--,Ue.usedTimes===0&&k(I)),U.__cacheKey=Pe,U.__webglTexture=ve[Pe].texture}return W}function ke(U,I,W){return Math.floor(Math.floor(U/W)/I)}function De(U,I,W,re){const Pe=U.updateRanges;if(Pe.length===0)n.texSubImage2D(e.TEXTURE_2D,0,0,0,I.width,I.height,W,re,I.data);else{Pe.sort((Qe,Te)=>Qe.start-Te.start);let Ue=0;for(let Qe=1;Qe0){$e&&ct&&n.texStorage2D(e.TEXTURE_2D,j,Qe,nt[0].width,nt[0].height);for(let de=0,xe=nt.length;de0){const We=t0(Te.width,Te.height,I.format,I.type);for(const et of I.layerUpdates){const we=Te.data.subarray(et*We/Te.data.BYTES_PER_ELEMENT,(et+1)*We/Te.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(e.TEXTURE_2D_ARRAY,de,0,0,et,Te.width,Te.height,1,Se,we)}I.clearLayerUpdates()}else n.compressedTexSubImage3D(e.TEXTURE_2D_ARRAY,de,0,0,0,Te.width,Te.height,Z.depth,Se,Te.data)}else n.compressedTexImage3D(e.TEXTURE_2D_ARRAY,de,Qe,Te.width,Te.height,Z.depth,0,Te.data,0,0);else Ne("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else $e?jt&&n.texSubImage3D(e.TEXTURE_2D_ARRAY,de,0,0,0,Te.width,Te.height,Z.depth,Se,Ge,Te.data):n.texImage3D(e.TEXTURE_2D_ARRAY,de,Qe,Te.width,Te.height,Z.depth,0,Se,Ge,Te.data)}else{$e&&ct&&n.texStorage2D(e.TEXTURE_2D,j,Qe,nt[0].width,nt[0].height);for(let de=0,xe=nt.length;de0){const de=t0(Z.width,Z.height,I.format,I.type);for(const xe of I.layerUpdates){const We=Z.data.subarray(xe*de/Z.data.BYTES_PER_ELEMENT,(xe+1)*de/Z.data.BYTES_PER_ELEMENT);n.texSubImage3D(e.TEXTURE_2D_ARRAY,0,0,0,xe,Z.width,Z.height,1,Se,Ge,We)}I.clearLayerUpdates()}else n.texSubImage3D(e.TEXTURE_2D_ARRAY,0,0,0,0,Z.width,Z.height,Z.depth,Se,Ge,Z.data)}else n.texImage3D(e.TEXTURE_2D_ARRAY,0,Qe,Z.width,Z.height,Z.depth,0,Se,Ge,Z.data);else if(I.isData3DTexture)$e?(ct&&n.texStorage3D(e.TEXTURE_3D,j,Qe,Z.width,Z.height,Z.depth),jt&&n.texSubImage3D(e.TEXTURE_3D,0,0,0,0,Z.width,Z.height,Z.depth,Se,Ge,Z.data)):n.texImage3D(e.TEXTURE_3D,0,Qe,Z.width,Z.height,Z.depth,0,Se,Ge,Z.data);else if(I.isFramebufferTexture){if(ct)if($e)n.texStorage2D(e.TEXTURE_2D,j,Qe,Z.width,Z.height);else{let de=Z.width,xe=Z.height;for(let We=0;We>=1,xe>>=1}}else if(I.isHTMLTexture){if("texElementImage2D"in e){const de=e.canvas;if(de.hasAttribute("layoutsubtree")||de.setAttribute("layoutsubtree","true"),Z.parentNode!==de){de.appendChild(Z),v.add(I),de.onpaint=xe=>{const We=xe.changedElements;for(const et of v)We.includes(et.image)&&(et.needsUpdate=!0)},de.requestPaint();return}if(e.texElementImage2D.length===3)e.texElementImage2D(e.TEXTURE_2D,e.RGBA8,Z);else{const We=e.RGBA,et=e.RGBA,we=e.UNSIGNED_BYTE;e.texElementImage2D(e.TEXTURE_2D,0,We,et,we,Z)}e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}}else if(nt.length>0){if($e&&ct){const de=Ut(nt[0]);n.texStorage2D(e.TEXTURE_2D,j,Qe,de.width,de.height)}for(let de=0,xe=nt.length;de0&&We++;const we=Ut(Te[0]);n.texStorage2D(e.TEXTURE_CUBE_MAP,We,jt,we.width,we.height)}for(let we=0;we<6;we++)if(Qe){j?xe&&n.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+we,0,0,0,Te[we].width,Te[we].height,$e,ct,Te[we].data):n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+we,0,jt,Te[we].width,Te[we].height,0,$e,ct,Te[we].data);for(let Fe=0;Fe>Pe),nt=Math.max(1,I.height>>Pe);ve===e.TEXTURE_3D||ve===e.TEXTURE_2D_ARRAY?n.texImage3D(ve,Pe,Se,Te,nt,I.depth,0,Ue,Z,null):n.texImage2D(ve,Pe,Se,Te,nt,0,Ue,Z,null)}n.bindFramebuffer(e.FRAMEBUFFER,U),V(I)?h.framebufferTexture2DMultisampleEXT(e.FRAMEBUFFER,re,ve,Qe.__webglTexture,0,bt(I)):(ve===e.TEXTURE_2D||ve>=e.TEXTURE_CUBE_MAP_POSITIVE_X&&ve<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,re,ve,Qe.__webglTexture,Pe),n.bindFramebuffer(e.FRAMEBUFFER,null)}function At(U,I,W){if(e.bindRenderbuffer(e.RENDERBUFFER,U),I.depthBuffer){const re=I.depthTexture,ve=re&&re.isDepthTexture?re.type:null,Pe=L(I.stencilBuffer,ve),Ue=I.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT;V(I)?h.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,bt(I),Pe,I.width,I.height):W?e.renderbufferStorageMultisample(e.RENDERBUFFER,bt(I),Pe,I.width,I.height):e.renderbufferStorage(e.RENDERBUFFER,Pe,I.width,I.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,Ue,e.RENDERBUFFER,U)}else{const re=I.textures;for(let ve=0;ve{delete I.__boundDepthTexture,delete I.__depthDisposeCallback,re.removeEventListener("dispose",ve)};re.addEventListener("dispose",ve),I.__depthDisposeCallback=ve}I.__boundDepthTexture=re}if(U.depthTexture&&!I.__autoAllocateDepthBuffer)if(W)for(let re=0;re<6;re++)pe(I.__webglFramebuffer[re],U,re);else{const re=U.texture.mipmaps;re&&re.length>0?pe(I.__webglFramebuffer[0],U,0):pe(I.__webglFramebuffer,U,0)}else if(W){I.__webglDepthbuffer=[];for(let re=0;re<6;re++)if(n.bindFramebuffer(e.FRAMEBUFFER,I.__webglFramebuffer[re]),I.__webglDepthbuffer[re]===void 0)I.__webglDepthbuffer[re]=e.createRenderbuffer(),At(I.__webglDepthbuffer[re],U,!1);else{const ve=U.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,Pe=I.__webglDepthbuffer[re];e.bindRenderbuffer(e.RENDERBUFFER,Pe),e.framebufferRenderbuffer(e.FRAMEBUFFER,ve,e.RENDERBUFFER,Pe)}}else{const re=U.texture.mipmaps;if(re&&re.length>0?n.bindFramebuffer(e.FRAMEBUFFER,I.__webglFramebuffer[0]):n.bindFramebuffer(e.FRAMEBUFFER,I.__webglFramebuffer),I.__webglDepthbuffer===void 0)I.__webglDepthbuffer=e.createRenderbuffer(),At(I.__webglDepthbuffer,U,!1);else{const ve=U.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,Pe=I.__webglDepthbuffer;e.bindRenderbuffer(e.RENDERBUFFER,Pe),e.framebufferRenderbuffer(e.FRAMEBUFFER,ve,e.RENDERBUFFER,Pe)}}n.bindFramebuffer(e.FRAMEBUFFER,null)}function Ae(U,I,W){const re=s.get(U);I!==void 0&&Le(re.__webglFramebuffer,U,U.texture,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,0),W!==void 0&&Ee(U)}function Ve(U){const I=U.texture,W=s.get(U),re=s.get(I);U.addEventListener("dispose",A);const ve=U.textures,Pe=U.isWebGLCubeRenderTarget===!0,Ue=ve.length>1;if(Ue||(re.__webglTexture===void 0&&(re.__webglTexture=e.createTexture()),re.__version=I.version,c.memory.textures++),Pe){W.__webglFramebuffer=[];for(let Z=0;Z<6;Z++)if(I.mipmaps&&I.mipmaps.length>0){W.__webglFramebuffer[Z]=[];for(let Se=0;Se0){W.__webglFramebuffer=[];for(let Z=0;Z0&&V(U)===!1){W.__webglMultisampledFramebuffer=e.createFramebuffer(),W.__webglColorRenderbuffer=[],n.bindFramebuffer(e.FRAMEBUFFER,W.__webglMultisampledFramebuffer);for(let Z=0;Z0)for(let Se=0;Se0)for(let Se=0;Se0){if(V(U)===!1){const I=U.textures,W=U.width,re=U.height;let ve=e.COLOR_BUFFER_BIT;const Pe=U.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,Ue=s.get(U),Z=I.length>1;if(Z)for(let Ge=0;Ge0?n.bindFramebuffer(e.DRAW_FRAMEBUFFER,Ue.__webglFramebuffer[0]):n.bindFramebuffer(e.DRAW_FRAMEBUFFER,Ue.__webglFramebuffer);for(let Ge=0;Ge0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&I.__useRenderToTexture!==!1}function un(U){const I=c.render.frame;g.get(U)!==I&&(g.set(U,I),U.update())}function Gt(U,I){const W=U.colorSpace,re=U.format,ve=U.type;return U.isCompressedTexture===!0||U.isVideoTexture===!0||W!=="srgb-linear"&&W!==""&&(Ht.getTransfer(W)==="srgb"?(re!==1023||ve!==1009)&&Ne("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):rt("WebGLTextures: Unsupported texture color space:",W)),I}function Ut(U){return typeof HTMLImageElement<"u"&&U instanceof HTMLImageElement?(f.width=U.naturalWidth||U.width,f.height=U.naturalHeight||U.height):typeof VideoFrame<"u"&&U instanceof VideoFrame?(f.width=U.displayWidth,f.height=U.displayHeight):(f.width=U.width,f.height=U.height),f}this.allocateTextureUnit=ae,this.resetTextureUnits=X,this.getTextureUnits=K,this.setTextureUnits=ee,this.setTexture2D=me,this.setTexture2DArray=_e,this.setTexture3D=ge,this.setTextureCube=be,this.rebindTextures=Ae,this.setupRenderTarget=Ve,this.updateRenderTargetMipmap=Oe,this.updateMultisampleRenderTarget=vt,this.setupDepthRenderbuffer=Ee,this.setupFrameBufferTexture=Le,this.useMultisampledRTT=V,this.isReversedDepthBuffer=function(){return n.buffers.depth.getReversed()}}function FE(e,t){function n(s,a=""){let l;const c=Ht.getTransfer(a);if(s===1009)return e.UNSIGNED_BYTE;if(s===1017)return e.UNSIGNED_SHORT_4_4_4_4;if(s===1018)return e.UNSIGNED_SHORT_5_5_5_1;if(s===35902)return e.UNSIGNED_INT_5_9_9_9_REV;if(s===35899)return e.UNSIGNED_INT_10F_11F_11F_REV;if(s===1010)return e.BYTE;if(s===1011)return e.SHORT;if(s===1012)return e.UNSIGNED_SHORT;if(s===1013)return e.INT;if(s===1014)return e.UNSIGNED_INT;if(s===1015)return e.FLOAT;if(s===1016)return e.HALF_FLOAT;if(s===1021)return e.ALPHA;if(s===1022)return e.RGB;if(s===1023)return e.RGBA;if(s===1026)return e.DEPTH_COMPONENT;if(s===1027)return e.DEPTH_STENCIL;if(s===1028)return e.RED;if(s===1029)return e.RED_INTEGER;if(s===1030)return e.RG;if(s===1031)return e.RG_INTEGER;if(s===1033)return e.RGBA_INTEGER;if(s===33776||s===33777||s===33778||s===33779)if(c==="srgb")if(l=t.get("WEBGL_compressed_texture_s3tc_srgb"),l!==null){if(s===33776)return l.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===33777)return l.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===33778)return l.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===33779)return l.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(l=t.get("WEBGL_compressed_texture_s3tc"),l!==null){if(s===33776)return l.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===33777)return l.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===33778)return l.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===33779)return l.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(s===35840||s===35841||s===35842||s===35843)if(l=t.get("WEBGL_compressed_texture_pvrtc"),l!==null){if(s===35840)return l.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(s===35841)return l.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===35842)return l.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(s===35843)return l.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(s===36196||s===37492||s===37496||s===37488||s===37489||s===37490||s===37491)if(l=t.get("WEBGL_compressed_texture_etc"),l!==null){if(s===36196||s===37492)return c==="srgb"?l.COMPRESSED_SRGB8_ETC2:l.COMPRESSED_RGB8_ETC2;if(s===37496)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:l.COMPRESSED_RGBA8_ETC2_EAC;if(s===37488)return l.COMPRESSED_R11_EAC;if(s===37489)return l.COMPRESSED_SIGNED_R11_EAC;if(s===37490)return l.COMPRESSED_RG11_EAC;if(s===37491)return l.COMPRESSED_SIGNED_RG11_EAC}else return null;if(s===37808||s===37809||s===37810||s===37811||s===37812||s===37813||s===37814||s===37815||s===37816||s===37817||s===37818||s===37819||s===37820||s===37821)if(l=t.get("WEBGL_compressed_texture_astc"),l!==null){if(s===37808)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:l.COMPRESSED_RGBA_ASTC_4x4_KHR;if(s===37809)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:l.COMPRESSED_RGBA_ASTC_5x4_KHR;if(s===37810)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:l.COMPRESSED_RGBA_ASTC_5x5_KHR;if(s===37811)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:l.COMPRESSED_RGBA_ASTC_6x5_KHR;if(s===37812)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:l.COMPRESSED_RGBA_ASTC_6x6_KHR;if(s===37813)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:l.COMPRESSED_RGBA_ASTC_8x5_KHR;if(s===37814)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:l.COMPRESSED_RGBA_ASTC_8x6_KHR;if(s===37815)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:l.COMPRESSED_RGBA_ASTC_8x8_KHR;if(s===37816)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:l.COMPRESSED_RGBA_ASTC_10x5_KHR;if(s===37817)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:l.COMPRESSED_RGBA_ASTC_10x6_KHR;if(s===37818)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:l.COMPRESSED_RGBA_ASTC_10x8_KHR;if(s===37819)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:l.COMPRESSED_RGBA_ASTC_10x10_KHR;if(s===37820)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:l.COMPRESSED_RGBA_ASTC_12x10_KHR;if(s===37821)return c==="srgb"?l.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:l.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(s===36492||s===36494||s===36495)if(l=t.get("EXT_texture_compression_bptc"),l!==null){if(s===36492)return c==="srgb"?l.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:l.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(s===36494)return l.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(s===36495)return l.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(s===36283||s===36284||s===36285||s===36286)if(l=t.get("EXT_texture_compression_rgtc"),l!==null){if(s===36283)return l.COMPRESSED_RED_RGTC1_EXT;if(s===36284)return l.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(s===36285)return l.COMPRESSED_RED_GREEN_RGTC2_EXT;if(s===36286)return l.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return s===1020?e.UNSIGNED_INT_24_8:e[s]!==void 0?e[s]:null}return{convert:n}}var zN=` -void main() { - - gl_Position = vec4( position, 1.0 ); - -}`,kN=` -uniform sampler2DArray depthColor; -uniform float depthWidth; -uniform float depthHeight; - -void main() { - - vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); - - if ( coord.x >= 1.0 ) { - - gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; - - } else { - - gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; - - } - -}`,VN=class{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t){if(this.texture===null){const n=new D0(e.texture);(e.depthNear!==t.depthNear||e.depthFar!==t.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=n}}getMesh(e){if(this.texture!==null&&this.mesh===null){const t=e.cameras[0].viewport,n=new cr({vertexShader:zN,fragmentShader:kN,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new Hn(new hp(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}},HN=class extends Wr{constructor(e,t){super();const n=this;let s=null,a=1,l=null,c="local-floor",h=1,d=null,f=null,g=null,v=null,y=null,_=null;const M=typeof XRWebGLBinding<"u",w=new VN,x={},b=t.getContextAttributes();let C=null,R=null;const T=[],L=[],D=new ye;let O=null;const A=new ni;A.viewport=new cn;const P=new ni;P.viewport=new cn;const k=[A,P],F=new bE;let q=null,X=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(ue){let Ce=T[ue];return Ce===void 0&&(Ce=new Wf,T[ue]=Ce),Ce.getTargetRaySpace()},this.getControllerGrip=function(ue){let Ce=T[ue];return Ce===void 0&&(Ce=new Wf,T[ue]=Ce),Ce.getGripSpace()},this.getHand=function(ue){let Ce=T[ue];return Ce===void 0&&(Ce=new Wf,T[ue]=Ce),Ce.getHandSpace()};function K(ue){const Ce=L.indexOf(ue.inputSource);if(Ce===-1)return;const ke=T[Ce];ke!==void 0&&(ke.update(ue.inputSource,ue.frame,d||l),ke.dispatchEvent({type:ue.type,data:ue.inputSource}))}function ee(){s.removeEventListener("select",K),s.removeEventListener("selectstart",K),s.removeEventListener("selectend",K),s.removeEventListener("squeeze",K),s.removeEventListener("squeezestart",K),s.removeEventListener("squeezeend",K),s.removeEventListener("end",ee),s.removeEventListener("inputsourceschange",ae);for(let ue=0;ue=0&&(L[De]=null,T[De].disconnect(ke))}for(let Ce=0;Ce=L.length){L.push(ke),De=ht;break}else if(L[ht]===null){L[ht]=ke,De=ht;break}if(De===-1)break}const st=T[De];st&&st.connect(ke)}}const Q=new z,me=new z;function _e(ue,Ce,ke){Q.setFromMatrixPosition(Ce.matrixWorld),me.setFromMatrixPosition(ke.matrixWorld);const De=Q.distanceTo(me),st=Ce.projectionMatrix.elements,ht=ke.projectionMatrix.elements,Le=st[14]/(st[10]-1),At=st[14]/(st[10]+1),pe=(st[9]+1)/st[5],Ee=(st[9]-1)/st[5],Ae=(st[8]-1)/st[0],Ve=(ht[8]+1)/ht[0],Oe=Le*Ae,qe=Le*Ve,tt=De/(-Ae+Ve),vt=tt*-Ae;if(Ce.matrixWorld.decompose(ue.position,ue.quaternion,ue.scale),ue.translateX(vt),ue.translateZ(tt),ue.matrixWorld.compose(ue.position,ue.quaternion,ue.scale),ue.matrixWorldInverse.copy(ue.matrixWorld).invert(),st[10]===-1)ue.projectionMatrix.copy(Ce.projectionMatrix),ue.projectionMatrixInverse.copy(Ce.projectionMatrixInverse);else{const bt=Le+tt,V=At+tt,un=Oe-vt,Gt=qe+(De-vt),Ut=pe*At/V*bt,U=Ee*At/V*bt;ue.projectionMatrix.makePerspective(un,Gt,Ut,U,bt,V),ue.projectionMatrixInverse.copy(ue.projectionMatrix).invert()}}function ge(ue,Ce){Ce===null?ue.matrixWorld.copy(ue.matrix):ue.matrixWorld.multiplyMatrices(Ce.matrixWorld,ue.matrix),ue.matrixWorldInverse.copy(ue.matrixWorld).invert()}this.updateCamera=function(ue){if(s===null)return;let Ce=ue.near,ke=ue.far;w.texture!==null&&(w.depthNear>0&&(Ce=w.depthNear),w.depthFar>0&&(ke=w.depthFar)),F.near=P.near=A.near=Ce,F.far=P.far=A.far=ke,(q!==F.near||X!==F.far)&&(s.updateRenderState({depthNear:F.near,depthFar:F.far}),q=F.near,X=F.far),F.layers.mask=ue.layers.mask|6,A.layers.mask=F.layers.mask&-5,P.layers.mask=F.layers.mask&-3;const De=ue.parent,st=F.cameras;ge(F,De);for(let ht=0;ht0&&(x.alphaTest.value=b.alphaTest);const C=t.get(b),R=C.envMap,T=C.envMapRotation;R&&(x.envMap.value=R,x.envMapRotation.value.setFromMatrix4(GN.makeRotationFromEuler(T)).transpose(),R.isCubeTexture&&R.isRenderTargetTexture===!1&&x.envMapRotation.value.premultiply(BE),x.reflectivity.value=b.reflectivity,x.ior.value=b.ior,x.refractionRatio.value=b.refractionRatio),b.lightMap&&(x.lightMap.value=b.lightMap,x.lightMapIntensity.value=b.lightMapIntensity,n(b.lightMap,x.lightMapTransform)),b.aoMap&&(x.aoMap.value=b.aoMap,x.aoMapIntensity.value=b.aoMapIntensity,n(b.aoMap,x.aoMapTransform))}function c(x,b){x.diffuse.value.copy(b.color),x.opacity.value=b.opacity,b.map&&(x.map.value=b.map,n(b.map,x.mapTransform))}function h(x,b){x.dashSize.value=b.dashSize,x.totalSize.value=b.dashSize+b.gapSize,x.scale.value=b.scale}function d(x,b,C,R){x.diffuse.value.copy(b.color),x.opacity.value=b.opacity,x.size.value=b.size*C,x.scale.value=R*.5,b.map&&(x.map.value=b.map,n(b.map,x.uvTransform)),b.alphaMap&&(x.alphaMap.value=b.alphaMap,n(b.alphaMap,x.alphaMapTransform)),b.alphaTest>0&&(x.alphaTest.value=b.alphaTest)}function f(x,b){x.diffuse.value.copy(b.color),x.opacity.value=b.opacity,x.rotation.value=b.rotation,b.map&&(x.map.value=b.map,n(b.map,x.mapTransform)),b.alphaMap&&(x.alphaMap.value=b.alphaMap,n(b.alphaMap,x.alphaMapTransform)),b.alphaTest>0&&(x.alphaTest.value=b.alphaTest)}function g(x,b){x.specular.value.copy(b.specular),x.shininess.value=Math.max(b.shininess,1e-4)}function v(x,b){b.gradientMap&&(x.gradientMap.value=b.gradientMap)}function y(x,b){x.metalness.value=b.metalness,b.metalnessMap&&(x.metalnessMap.value=b.metalnessMap,n(b.metalnessMap,x.metalnessMapTransform)),x.roughness.value=b.roughness,b.roughnessMap&&(x.roughnessMap.value=b.roughnessMap,n(b.roughnessMap,x.roughnessMapTransform)),b.envMap&&(x.envMapIntensity.value=b.envMapIntensity)}function _(x,b,C){x.ior.value=b.ior,b.sheen>0&&(x.sheenColor.value.copy(b.sheenColor).multiplyScalar(b.sheen),x.sheenRoughness.value=b.sheenRoughness,b.sheenColorMap&&(x.sheenColorMap.value=b.sheenColorMap,n(b.sheenColorMap,x.sheenColorMapTransform)),b.sheenRoughnessMap&&(x.sheenRoughnessMap.value=b.sheenRoughnessMap,n(b.sheenRoughnessMap,x.sheenRoughnessMapTransform))),b.clearcoat>0&&(x.clearcoat.value=b.clearcoat,x.clearcoatRoughness.value=b.clearcoatRoughness,b.clearcoatMap&&(x.clearcoatMap.value=b.clearcoatMap,n(b.clearcoatMap,x.clearcoatMapTransform)),b.clearcoatRoughnessMap&&(x.clearcoatRoughnessMap.value=b.clearcoatRoughnessMap,n(b.clearcoatRoughnessMap,x.clearcoatRoughnessMapTransform)),b.clearcoatNormalMap&&(x.clearcoatNormalMap.value=b.clearcoatNormalMap,n(b.clearcoatNormalMap,x.clearcoatNormalMapTransform),x.clearcoatNormalScale.value.copy(b.clearcoatNormalScale),b.side===1&&x.clearcoatNormalScale.value.negate())),b.dispersion>0&&(x.dispersion.value=b.dispersion),b.iridescence>0&&(x.iridescence.value=b.iridescence,x.iridescenceIOR.value=b.iridescenceIOR,x.iridescenceThicknessMinimum.value=b.iridescenceThicknessRange[0],x.iridescenceThicknessMaximum.value=b.iridescenceThicknessRange[1],b.iridescenceMap&&(x.iridescenceMap.value=b.iridescenceMap,n(b.iridescenceMap,x.iridescenceMapTransform)),b.iridescenceThicknessMap&&(x.iridescenceThicknessMap.value=b.iridescenceThicknessMap,n(b.iridescenceThicknessMap,x.iridescenceThicknessMapTransform))),b.transmission>0&&(x.transmission.value=b.transmission,x.transmissionSamplerMap.value=C.texture,x.transmissionSamplerSize.value.set(C.width,C.height),b.transmissionMap&&(x.transmissionMap.value=b.transmissionMap,n(b.transmissionMap,x.transmissionMapTransform)),x.thickness.value=b.thickness,b.thicknessMap&&(x.thicknessMap.value=b.thicknessMap,n(b.thicknessMap,x.thicknessMapTransform)),x.attenuationDistance.value=b.attenuationDistance,x.attenuationColor.value.copy(b.attenuationColor)),b.anisotropy>0&&(x.anisotropyVector.value.set(b.anisotropy*Math.cos(b.anisotropyRotation),b.anisotropy*Math.sin(b.anisotropyRotation)),b.anisotropyMap&&(x.anisotropyMap.value=b.anisotropyMap,n(b.anisotropyMap,x.anisotropyMapTransform))),x.specularIntensity.value=b.specularIntensity,x.specularColor.value.copy(b.specularColor),b.specularColorMap&&(x.specularColorMap.value=b.specularColorMap,n(b.specularColorMap,x.specularColorMapTransform)),b.specularIntensityMap&&(x.specularIntensityMap.value=b.specularIntensityMap,n(b.specularIntensityMap,x.specularIntensityMapTransform))}function M(x,b){b.matcap&&(x.matcap.value=b.matcap)}function w(x,b){const C=t.get(b).light;x.referencePosition.value.setFromMatrixPosition(C.matrixWorld),x.nearDistance.value=C.shadow.camera.near,x.farDistance.value=C.shadow.camera.far}return{refreshFogUniforms:s,refreshMaterialUniforms:a}}function XN(e,t,n,s){let a={},l={},c=[];const h=e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS);function d(T,L){const D=L.program;s.uniformBlockBinding(T,D)}function f(T,L){let D=a[T.id];D===void 0&&(x(T),D=g(T),a[T.id]=D,T.addEventListener("dispose",C));const O=L.program;s.updateUBOMapping(T,O);const A=t.render.frame;l[T.id]!==A&&(y(T),l[T.id]=A)}function g(T){const L=v();T.__bindingPointIndex=L;const D=e.createBuffer(),O=T.__size,A=T.usage;return e.bindBuffer(e.UNIFORM_BUFFER,D),e.bufferData(e.UNIFORM_BUFFER,O,A),e.bindBuffer(e.UNIFORM_BUFFER,null),e.bindBufferBase(e.UNIFORM_BUFFER,L,D),D}function v(){for(let T=0;T0&&(D+=O-A),T.__size=D,T.__cache={},this}function b(T){const L={boundary:0,storage:0};return typeof T=="number"||typeof T=="boolean"?(L.boundary=4,L.storage=4):T.isVector2?(L.boundary=8,L.storage=8):T.isVector3||T.isColor?(L.boundary=16,L.storage=12):T.isVector4?(L.boundary=16,L.storage=16):T.isMatrix3?(L.boundary=48,L.storage=48):T.isMatrix4?(L.boundary=64,L.storage=64):T.isTexture?Ne("WebGLRenderer: Texture samplers can not be part of an uniforms group."):ArrayBuffer.isView(T)?(L.boundary=16,L.storage=T.byteLength):Ne("WebGLRenderer: Unsupported uniform value type.",T),L}function C(T){const L=T.target;L.removeEventListener("dispose",C);const D=c.indexOf(L.__bindingPointIndex);c.splice(D,1),e.deleteBuffer(a[L.id]),delete a[L.id],delete l[L.id]}function R(){for(const T in a)e.deleteBuffer(a[T]);c=[],a={},l={}}return{bind:d,update:f,dispose:R}}var qN=new Uint16Array([12469,15057,12620,14925,13266,14620,13807,14376,14323,13990,14545,13625,14713,13328,14840,12882,14931,12528,14996,12233,15039,11829,15066,11525,15080,11295,15085,10976,15082,10705,15073,10495,13880,14564,13898,14542,13977,14430,14158,14124,14393,13732,14556,13410,14702,12996,14814,12596,14891,12291,14937,11834,14957,11489,14958,11194,14943,10803,14921,10506,14893,10278,14858,9960,14484,14039,14487,14025,14499,13941,14524,13740,14574,13468,14654,13106,14743,12678,14818,12344,14867,11893,14889,11509,14893,11180,14881,10751,14852,10428,14812,10128,14765,9754,14712,9466,14764,13480,14764,13475,14766,13440,14766,13347,14769,13070,14786,12713,14816,12387,14844,11957,14860,11549,14868,11215,14855,10751,14825,10403,14782,10044,14729,9651,14666,9352,14599,9029,14967,12835,14966,12831,14963,12804,14954,12723,14936,12564,14917,12347,14900,11958,14886,11569,14878,11247,14859,10765,14828,10401,14784,10011,14727,9600,14660,9289,14586,8893,14508,8533,15111,12234,15110,12234,15104,12216,15092,12156,15067,12010,15028,11776,14981,11500,14942,11205,14902,10752,14861,10393,14812,9991,14752,9570,14682,9252,14603,8808,14519,8445,14431,8145,15209,11449,15208,11451,15202,11451,15190,11438,15163,11384,15117,11274,15055,10979,14994,10648,14932,10343,14871,9936,14803,9532,14729,9218,14645,8742,14556,8381,14461,8020,14365,7603,15273,10603,15272,10607,15267,10619,15256,10631,15231,10614,15182,10535,15118,10389,15042,10167,14963,9787,14883,9447,14800,9115,14710,8665,14615,8318,14514,7911,14411,7507,14279,7198,15314,9675,15313,9683,15309,9712,15298,9759,15277,9797,15229,9773,15166,9668,15084,9487,14995,9274,14898,8910,14800,8539,14697,8234,14590,7790,14479,7409,14367,7067,14178,6621,15337,8619,15337,8631,15333,8677,15325,8769,15305,8871,15264,8940,15202,8909,15119,8775,15022,8565,14916,8328,14804,8009,14688,7614,14569,7287,14448,6888,14321,6483,14088,6171,15350,7402,15350,7419,15347,7480,15340,7613,15322,7804,15287,7973,15229,8057,15148,8012,15046,7846,14933,7611,14810,7357,14682,7069,14552,6656,14421,6316,14251,5948,14007,5528,15356,5942,15356,5977,15353,6119,15348,6294,15332,6551,15302,6824,15249,7044,15171,7122,15070,7050,14949,6861,14818,6611,14679,6349,14538,6067,14398,5651,14189,5311,13935,4958,15359,4123,15359,4153,15356,4296,15353,4646,15338,5160,15311,5508,15263,5829,15188,6042,15088,6094,14966,6001,14826,5796,14678,5543,14527,5287,14377,4985,14133,4586,13869,4257,15360,1563,15360,1642,15358,2076,15354,2636,15341,3350,15317,4019,15273,4429,15203,4732,15105,4911,14981,4932,14836,4818,14679,4621,14517,4386,14359,4156,14083,3795,13808,3437,15360,122,15360,137,15358,285,15355,636,15344,1274,15322,2177,15281,2765,15215,3223,15120,3451,14995,3569,14846,3567,14681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]),ds=null;function YN(){return ds===null&&(ds=new Sr(qN,16,16,Yu,Va),ds.name="DFG_LUT",ds.minFilter=xn,ds.magFilter=xn,ds.wrapS=ji,ds.wrapT=ji,ds.generateMipmaps=!1,ds.needsUpdate=!0),ds}var zE=class{constructor(e={}){const{canvas:t=Ew(),context:n=null,depth:s=!0,stencil:a=!1,alpha:l=!1,antialias:c=!1,premultipliedAlpha:h=!0,preserveDrawingBuffer:d=!1,powerPreference:f="default",failIfMajorPerformanceCaveat:g=!1,reversedDepthBuffer:v=!1,outputBufferType:y=js}=e;this.isWebGLRenderer=!0;let _;if(n!==null){if(typeof WebGLRenderingContext<"u"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");_=n.getContextAttributes().alpha}else _=l;const M=y,w=new Set([w0,M0,ip]),x=new Set([js,$s,v0,b0,y0,_0]),b=new Uint32Array(4),C=new Int32Array(4),R=new z;let T=null,L=null;const D=[],O=[];let A=null;this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=0,this.toneMappingExposure=1,this.transmissionResolutionScale=1;const P=this;let k=!1,F=null,q=null,X=null,K=null;this._outputColorSpace=xi;let ee=0,ae=0,Q=null,me=-1,_e=null;const ge=new cn,be=new cn;let Ie=null;const Ft=new Xe(0);let pt=0,ue=t.width,Ce=t.height,ke=1,De=null,st=null;const ht=new cn(0,0,ue,Ce),Le=new cn(0,0,ue,Ce);let At=!1;const pe=new Go;let Ee=!1,Ae=!1;const Ve=new St,Oe=new z,qe=new cn,tt={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let vt=!1;function bt(){return Q===null?ke:1}let V=n;function un(N,$){return t.getContext(N,$)}try{const N={alpha:!0,depth:s,stencil:a,antialias:c,premultipliedAlpha:h,preserveDrawingBuffer:d,powerPreference:f,failIfMajorPerformanceCaveat:g};if("setAttribute"in t&&t.setAttribute("data-engine","three.js r185"),t.addEventListener("webglcontextlost",ot,!1),t.addEventListener("webglcontextrestored",hn,!1),t.addEventListener("webglcontextcreationerror",Kt,!1),V===null){const $="webgl2";if(V=un($,N),V===null)throw un($)?new Error("THREE.WebGLRenderer: Error creating WebGL context with your selected attributes."):new Error("THREE.WebGLRenderer: Error creating WebGL context.")}}catch(N){throw rt("WebGLRenderer: "+N.message),N}let Gt,Ut,U,I,W,re,ve,Pe,Ue,Z,Se,Ge,Qe,Te,nt,$e,ct,jt,j,de,xe,We,et;function we(){Gt=new jI(V),Gt.init(),xe=new FE(V,Gt),Ut=new kI(V,Gt,e,xe),U=new FN(V,Gt),Ut.reversedDepthBuffer&&v&&U.buffers.depth.setReversed(!0),q=V.createFramebuffer(),X=V.createFramebuffer(),K=V.createFramebuffer(),I=new JI(V),W=new MN,re=new BN(V,Gt,U,W,Ut,xe,I),ve=new YI(P),Pe=new UI(V),We=new BI(V,Pe),Ue=new ZI(V,Pe,I,We),Z=new QI(V,Ue,Pe,We,I),jt=new KI(V,Ut,re),nt=new VI(W),Se=new SN(P,ve,Gt,Ut,We,nt),Ge=new WN(P,W),Qe=new TN,Te=new IN(Gt),ct=new FI(P,ve,U,Z,_,h),$e=new ON(P,Z,Ut),et=new XN(V,I,Ut,U),j=new zI(V,Gt,I),de=new $I(V,Gt,I),I.programs=Se.programs,P.capabilities=Ut,P.extensions=Gt,P.properties=W,P.renderLists=Qe,P.shadowMap=$e,P.state=U,P.info=I}we(),M!==1009&&(A=new tL(M,t.width,t.height,c,s,a));const Fe=new HN(P,V);this.xr=Fe,this.getContext=function(){return V},this.getContextAttributes=function(){return V.getContextAttributes()},this.forceContextLoss=function(){const N=Gt.get("WEBGL_lose_context");N&&N.loseContext()},this.forceContextRestore=function(){const N=Gt.get("WEBGL_lose_context");N&&N.restoreContext()},this.getPixelRatio=function(){return ke},this.setPixelRatio=function(N){N!==void 0&&(ke=N,this.setSize(ue,Ce,!1))},this.getSize=function(N){return N.set(ue,Ce)},this.setSize=function(N,$,ie=!0){if(Fe.isPresenting){Ne("WebGLRenderer: Can't change size while VR device is presenting.");return}ue=N,Ce=$,t.width=Math.floor(N*ke),t.height=Math.floor($*ke),ie===!0&&(t.style.width=N+"px",t.style.height=$+"px"),A!==null&&A.setSize(t.width,t.height),this.setViewport(0,0,N,$)},this.getDrawingBufferSize=function(N){return N.set(ue*ke,Ce*ke).floor()},this.setDrawingBufferSize=function(N,$,ie){ue=N,Ce=$,ke=ie,t.width=Math.floor(N*ie),t.height=Math.floor($*ie),this.setViewport(0,0,N,$)},this.setEffects=function(N){if(M===1009){rt("WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(N){for(let $=0;${function Re(){if(ne.forEach(function(ze){W.get(ze).currentProgram.isReady()&&ne.delete(ze)}),ne.size===0){te(N);return}setTimeout(Re,10)}Gt.get("KHR_parallel_shader_compile")!==null?Re():setTimeout(Re,10)})};let wr=null;function fh(N){wr&&wr(N)}function ta(){Tr.stop()}function Ya(){Tr.start()}const Tr=new IE;Tr.setAnimationLoop(fh),typeof self<"u"&&Tr.setContext(self),this.setAnimationLoop=function(N){wr=N,Fe.setAnimationLoop(N),N===null?Tr.stop():Tr.start()},Fe.addEventListener("sessionstart",ta),Fe.addEventListener("sessionend",Ya),this.render=function(N,$){if($!==void 0&&$.isCamera!==!0){rt("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(k===!0)return;F!==null&&F.renderStart(N,$);const ie=Fe.enabled===!0&&Fe.isPresenting===!0,ne=A!==null&&(Q===null||ie)&&A.begin(P,Q);if(N.matrixWorldAutoUpdate===!0&&N.updateMatrixWorld(),$.parent===null&&$.matrixWorldAutoUpdate===!0&&$.updateMatrixWorld(),Fe.enabled===!0&&Fe.isPresenting===!0&&(A===null||A.isCompositing()===!1)&&(Fe.cameraAutoUpdate===!0&&Fe.updateCamera($),$=Fe.getCamera()),N.isScene===!0&&N.onBeforeRender(P,N,$,Q),L=Te.get(N,O.length),L.init($),L.state.textureUnits=re.getTextureUnits(),O.push(L),Ve.multiplyMatrices($.projectionMatrix,$.matrixWorldInverse),pe.setFromProjectionMatrix(Ve,Ha,$.reversedDepth),Ae=this.localClippingEnabled,Ee=nt.init(this.clippingPlanes,Ae),T=Qe.get(N,D.length),T.init(),D.push(T),Fe.enabled===!0&&Fe.isPresenting===!0){const Re=P.xr.getDepthSensingMesh();Re!==null&&gs(Re,$,-1/0,P.sortObjects)}gs(N,$,0,P.sortObjects),T.finish(),P.sortObjects===!0&&T.sort(De,st,$.reversedDepth),vt=Fe.enabled===!1||Fe.isPresenting===!1||Fe.hasDepthSensing()===!1,vt&&ct.addToRenderList(T,N),this.info.render.frame++,this.info.autoReset===!0&&this.info.reset(),Ee===!0&&nt.beginShadows();const te=L.state.shadowsArray;if($e.render(te,N,$),Ee===!0&&nt.endShadows(),(ne&&A.hasRenderPass())===!1){const Re=T.opaque,ze=T.transmissive;if(L.setupLights(),$.isArrayCamera){const He=$.cameras;if(ze.length>0)for(let Ze=0,ut=He.length;Ze0&&Zo(Re,ze,N,$),vt&&ct.render(N),vs(T,N,$)}Q!==null&&ae===0&&(re.updateMultisampleRenderTarget(Q),re.updateRenderTargetMipmap(Q)),ne&&A.end(P),N.isScene===!0&&N.onAfterRender(P,N,$),We.resetDefaultState(),me=-1,_e=null,O.pop(),O.length>0?(L=O[O.length-1],re.setTextureUnits(L.state.textureUnits),Ee===!0&&nt.setGlobalState(P.clippingPlanes,L.state.camera)):L=null,D.pop(),D.length>0?T=D[D.length-1]:T=null,F!==null&&F.renderEnd()};function gs(N,$,ie,ne){if(N.visible===!1)return;if(N.layers.test($.layers)){if(N.isGroup)ie=N.renderOrder;else if(N.isLOD)N.autoUpdate===!0&&N.update($);else if(N.isLightProbeGrid)L.pushLightProbeGrid(N);else if(N.isLight)L.pushLight(N),N.castShadow&&L.pushShadow(N);else if(N.isSprite){if(!N.frustumCulled||pe.intersectsSprite(N)){ne&&qe.setFromMatrixPosition(N.matrixWorld).applyMatrix4(Ve);const Re=Z.update(N),ze=N.material;ze.visible&&T.push(N,Re,ze,ie,qe.z,null)}}else if((N.isMesh||N.isLine||N.isPoints)&&(!N.frustumCulled||pe.intersectsObject(N))){const Re=Z.update(N),ze=N.material;if(ne&&(N.boundingSphere!==void 0?(N.boundingSphere===null&&N.computeBoundingSphere(),qe.copy(N.boundingSphere.center)):(Re.boundingSphere===null&&Re.computeBoundingSphere(),qe.copy(Re.boundingSphere.center)),qe.applyMatrix4(N.matrixWorld).applyMatrix4(Ve)),Array.isArray(ze)){const He=Re.groups;for(let Ze=0,ut=He.length;Ze0&&$o(te,$,ie),Re.length>0&&$o(Re,$,ie),ze.length>0&&$o(ze,$,ie),U.buffers.depth.setTest(!0),U.buffers.depth.setMask(!0),U.buffers.color.setMask(!0),U.setPolygonOffset(!1)}function Zo(N,$,ie,ne){if((ie.isScene===!0?ie.overrideMaterial:null)!==null)return;if(L.state.transmissionRenderTarget[ne.id]===void 0){const Ct=Gt.has("EXT_color_buffer_half_float")||Gt.has("EXT_color_buffer_float");L.state.transmissionRenderTarget[ne.id]=new lr(1,1,{generateMipmaps:!0,type:Ct?Va:js,minFilter:_c,samples:Math.max(4,Ut.samples),stencilBuffer:a,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Ht.workingColorSpace})}const te=L.state.transmissionRenderTarget[ne.id],Re=ne.viewport||ge;te.setSize(Re.z*P.transmissionResolutionScale,Re.w*P.transmissionResolutionScale);const ze=P.getRenderTarget(),He=P.getActiveCubeFace(),Ze=P.getActiveMipmapLevel();P.setRenderTarget(te),P.getClearColor(Ft),pt=P.getClearAlpha(),pt<1&&P.setClearColor(16777215,.5),P.clear(),vt&&ct.render(ie);const ut=P.toneMapping;P.toneMapping=0;const wt=ne.viewport;if(ne.viewport!==void 0&&(ne.viewport=void 0),L.setupLightsView(ne),Ee===!0&&nt.setGlobalState(P.clippingPlanes,ne),$o(N,ie,ne),re.updateMultisampleRenderTarget(te),re.updateRenderTargetMipmap(te),Gt.has("WEBGL_multisampled_render_to_texture")===!1){let Ct=!1;for(let it=0,qt=$.length;it0,ne.currentProgram=Ct,ne.uniformsList=null,Ct}function Jo(N){if(N.uniformsList===null){const $=N.currentProgram.getUniforms();N.uniformsList=Xf.seqWithValue($.seq,N.uniforms)}return N.uniformsList}function Ec(N,$){const ie=W.get(N);ie.outputColorSpace=$.outputColorSpace,ie.batching=$.batching,ie.batchingColor=$.batchingColor,ie.instancing=$.instancing,ie.instancingColor=$.instancingColor,ie.instancingMorph=$.instancingMorph,ie.skinning=$.skinning,ie.morphTargets=$.morphTargets,ie.morphNormals=$.morphNormals,ie.morphColors=$.morphColors,ie.morphTargetsCount=$.morphTargetsCount,ie.numClippingPlanes=$.numClippingPlanes,ie.numIntersection=$.numClipIntersection,ie.vertexAlphas=$.vertexAlphas,ie.vertexTangents=$.vertexTangents,ie.toneMapping=$.toneMapping}function yp(N,$){if(N.length===0)return null;if(N.length===1)return N[0].texture!==null?N[0]:null;R.setFromMatrixPosition($.matrixWorld);for(let ie=0,ne=N.length;ie0),it=!!ie.morphAttributes.position,qt=!!ie.morphAttributes.normal,dn=!!ie.morphAttributes.color;let fn=0;ne.toneMapped&&(Q===null||Q.isXRRenderTarget===!0)&&(fn=P.toneMapping);const Bt=ie.morphAttributes.position||ie.morphAttributes.normal||ie.morphAttributes.color,Pn=Bt!==void 0?Bt.length:0,Ye=W.get(ne),Wt=L.state.lights;if(Ee===!0&&(Ae===!0||N!==_e)){const $t=N===_e&&ne.id===me;nt.setState(ne,N,$t)}let Yt=!1;ne.version===Ye.__version?(Ye.needsLights&&Ye.lightsStateVersion!==Wt.state.version||Ye.outputColorSpace!==He||te.isBatchedMesh&&Ye.batching===!1||!te.isBatchedMesh&&Ye.batching===!0||te.isBatchedMesh&&Ye.batchingColor===!0&&te.colorTexture===null||te.isBatchedMesh&&Ye.batchingColor===!1&&te.colorTexture!==null||te.isInstancedMesh&&Ye.instancing===!1||!te.isInstancedMesh&&Ye.instancing===!0||te.isSkinnedMesh&&Ye.skinning===!1||!te.isSkinnedMesh&&Ye.skinning===!0||te.isInstancedMesh&&Ye.instancingColor===!0&&te.instanceColor===null||te.isInstancedMesh&&Ye.instancingColor===!1&&te.instanceColor!==null||te.isInstancedMesh&&Ye.instancingMorph===!0&&te.morphTexture===null||te.isInstancedMesh&&Ye.instancingMorph===!1&&te.morphTexture!==null||Ye.envMap!==ut||ne.fog===!0&&Ye.fog!==Re||Ye.numClippingPlanes!==void 0&&(Ye.numClippingPlanes!==nt.numPlanes||Ye.numIntersection!==nt.numIntersection)||Ye.vertexAlphas!==wt||Ye.vertexTangents!==Ct||Ye.morphTargets!==it||Ye.morphNormals!==qt||Ye.morphColors!==dn||Ye.toneMapping!==fn||Ye.morphTargetsCount!==Pn||!!Ye.lightProbeGrid!=L.state.lightProbeGridArray.length>0)&&(Yt=!0):(Yt=!0,Ye.__version=ne.version);let Ti=Ye.currentProgram;Yt===!0&&(Ti=ja(ne,$,te),F&&ne.isNodeMaterial&&F.onUpdateProgram(ne,Ti,Ye));let ki=!1,ui=!1,hr=!1;const zt=Ti.getUniforms(),Sn=Ye.uniforms;if(U.useProgram(Ti.program)&&(ki=!0,ui=!0,hr=!0),ne.id!==me&&(me=ne.id,ui=!0),Ye.needsLights){const $t=yp(L.state.lightProbeGridArray,te);Ye.lightProbeGrid!==$t&&(Ye.lightProbeGrid=$t,ui=!0)}if(ki||_e!==N){U.buffers.depth.getReversed()&&N.reversedDepth!==!0&&(N._reversedDepth=!0,N.updateProjectionMatrix()),zt.setValue(V,"projectionMatrix",N.projectionMatrix),zt.setValue(V,"viewMatrix",N.matrixWorldInverse);const $t=zt.map.cameraPosition;$t!==void 0&&$t.setValue(V,Oe.setFromMatrixPosition(N.matrixWorld)),Ut.logarithmicDepthBuffer&&zt.setValue(V,"logDepthBufFC",2/(Math.log(N.far+1)/Math.LN2)),(ne.isMeshPhongMaterial||ne.isMeshToonMaterial||ne.isMeshLambertMaterial||ne.isMeshBasicMaterial||ne.isMeshStandardMaterial||ne.isShaderMaterial)&&zt.setValue(V,"isOrthographic",N.isOrthographicCamera===!0),_e!==N&&(_e=N,ui=!0,hr=!0)}if(Ye.needsLights&&(Wt.state.directionalShadowMap.length>0&&zt.setValue(V,"directionalShadowMap",Wt.state.directionalShadowMap,re),Wt.state.spotShadowMap.length>0&&zt.setValue(V,"spotShadowMap",Wt.state.spotShadowMap,re),Wt.state.pointShadowMap.length>0&&zt.setValue(V,"pointShadowMap",Wt.state.pointShadowMap,re)),te.isSkinnedMesh){zt.setOptional(V,te,"bindMatrix"),zt.setOptional(V,te,"bindMatrixInverse");const $t=te.skeleton;$t&&($t.boneTexture===null&&$t.computeBoneTexture(),zt.setValue(V,"boneTexture",$t.boneTexture,re))}te.isBatchedMesh&&(zt.setOptional(V,te,"batchingTexture"),zt.setValue(V,"batchingTexture",te._matricesTexture,re),zt.setOptional(V,te,"batchingIdTexture"),zt.setValue(V,"batchingIdTexture",te._indirectTexture,re),zt.setOptional(V,te,"batchingColorTexture"),te._colorsTexture!==null&&zt.setValue(V,"batchingColorTexture",te._colorsTexture,re));const $n=ie.morphAttributes;if(($n.position!==void 0||$n.normal!==void 0||$n.color!==void 0)&&jt.update(te,ie,Ti),(ui||Ye.receiveShadow!==te.receiveShadow)&&(Ye.receiveShadow=te.receiveShadow,zt.setValue(V,"receiveShadow",te.receiveShadow)),(ne.isMeshStandardMaterial||ne.isMeshLambertMaterial||ne.isMeshPhongMaterial)&&ne.envMap===null&&$.environment!==null&&(Sn.envMapIntensity.value=$.environmentIntensity),Sn.dfgLUT!==void 0&&(Sn.dfgLUT.value=YN()),ui){if(zt.setValue(V,"toneMappingExposure",P.toneMappingExposure),Ye.needsLights&&Ac(Sn,hr),Re&&ne.fog===!0&&Ge.refreshFogUniforms(Sn,Re),Ge.refreshMaterialUniforms(Sn,ne,ke,Ce,L.state.transmissionRenderTarget[N.id]),Ye.needsLights&&Ye.lightProbeGrid){const $t=Ye.lightProbeGrid;Sn.probesSH.value=$t.texture,Sn.probesMin.value.copy($t.boundingBox.min),Sn.probesMax.value.copy($t.boundingBox.max),Sn.probesResolution.value.copy($t.resolution)}Xf.upload(V,Jo(Ye),Sn,re)}if(ne.isShaderMaterial&&ne.uniformsNeedUpdate===!0&&(Xf.upload(V,Jo(Ye),Sn,re),ne.uniformsNeedUpdate=!1),ne.isSpriteMaterial&&zt.setValue(V,"center",te.center),zt.setValue(V,"modelViewMatrix",te.modelViewMatrix),zt.setValue(V,"normalMatrix",te.normalMatrix),zt.setValue(V,"modelMatrix",te.matrixWorld),ne.uniformsGroups!==void 0){const $t=ne.uniformsGroups;for(let Er=0,Ar=$t.length;Er0&&re.useMultisampledRTT(N)===!1?ne=W.get(N).__webglMultisampledFramebuffer:Array.isArray(Ze)?ne=Ze[ie]:ne=Ze,ge.copy(N.viewport),be.copy(N.scissor),Ie=N.scissorTest}else ge.copy(ht).multiplyScalar(ke).floor(),be.copy(Le).multiplyScalar(ke).floor(),Ie=At;if(ie!==0&&(ne=q),U.bindFramebuffer(V.FRAMEBUFFER,ne)&&U.drawBuffers(N,ne),U.viewport(ge),U.scissor(be),U.setScissorTest(Ie),te){const ze=W.get(N.texture);V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_CUBE_MAP_POSITIVE_X+$,ze.__webglTexture,ie)}else if(Re){const ze=$;for(let He=0;He1&&V.readBuffer(V.COLOR_ATTACHMENT0+He),!Ut.textureFormatReadable(wt)){rt("WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!Ut.textureTypeReadable(Ct)){rt("WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}$>=0&&$<=N.width-ne&&ie>=0&&ie<=N.height-te&&V.readPixels($,ie,ne,te,xe.convert(wt),xe.convert(Ct),Re)}finally{const ut=Q!==null?W.get(Q).__webglFramebuffer:null;U.bindFramebuffer(V.FRAMEBUFFER,ut)}}},this.readRenderTargetPixelsAsync=async function(N,$,ie,ne,te,Re,ze,He=0){if(!(N&&N.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Ze=W.get(N).__webglFramebuffer;if(N.isWebGLCubeRenderTarget&&ze!==void 0&&(Ze=Ze[ze]),Ze)if($>=0&&$<=N.width-ne&&ie>=0&&ie<=N.height-te){U.bindFramebuffer(V.FRAMEBUFFER,Ze);const ut=N.textures[He],wt=ut.format,Ct=ut.type;if(N.textures.length>1&&V.readBuffer(V.COLOR_ATTACHMENT0+He),!Ut.textureFormatReadable(wt))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Ut.textureTypeReadable(Ct))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");const it=V.createBuffer();V.bindBuffer(V.PIXEL_PACK_BUFFER,it),V.bufferData(V.PIXEL_PACK_BUFFER,Re.byteLength,V.STREAM_READ),V.readPixels($,ie,ne,te,xe.convert(wt),xe.convert(Ct),0);const qt=Q!==null?W.get(Q).__webglFramebuffer:null;U.bindFramebuffer(V.FRAMEBUFFER,qt);const dn=V.fenceSync(V.SYNC_GPU_COMMANDS_COMPLETE,0);return V.flush(),await I2(V,dn,4),V.bindBuffer(V.PIXEL_PACK_BUFFER,it),V.getBufferSubData(V.PIXEL_PACK_BUFFER,0,Re),V.deleteBuffer(it),V.deleteSync(dn),Re}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(N,$=null,ie=0){const ne=Math.pow(2,-ie),te=Math.floor(N.image.width*ne),Re=Math.floor(N.image.height*ne),ze=$!==null?$.x:0,He=$!==null?$.y:0;re.setTexture2D(N,0),V.copyTexSubImage2D(V.TEXTURE_2D,ie,0,0,ze,He,te,Re),U.unbindTexture()},this.copyTextureToTexture=function(N,$,ie=null,ne=null,te=0,Re=0){let ze,He,Ze,ut,wt,Ct,it,qt,dn;const fn=N.isCompressedTexture?N.mipmaps[Re]:N.image;if(ie!==null)ze=ie.max.x-ie.min.x,He=ie.max.y-ie.min.y,Ze=ie.isBox3?ie.max.z-ie.min.z:1,ut=ie.min.x,wt=ie.min.y,Ct=ie.isBox3?ie.min.z:0;else{const Sn=Math.pow(2,-te);ze=Math.floor(fn.width*Sn),He=Math.floor(fn.height*Sn),N.isDataArrayTexture?Ze=fn.depth:N.isData3DTexture?Ze=Math.floor(fn.depth*Sn):Ze=1,ut=0,wt=0,Ct=0}ne!==null?(it=ne.x,qt=ne.y,dn=ne.z):(it=0,qt=0,dn=0);const Bt=xe.convert($.format),Pn=xe.convert($.type);let Ye;$.isData3DTexture?(re.setTexture3D($,0),Ye=V.TEXTURE_3D):$.isDataArrayTexture||$.isCompressedArrayTexture?(re.setTexture2DArray($,0),Ye=V.TEXTURE_2D_ARRAY):(re.setTexture2D($,0),Ye=V.TEXTURE_2D),U.activeTexture(V.TEXTURE0),U.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,$.flipY),U.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,$.premultiplyAlpha),U.pixelStorei(V.UNPACK_ALIGNMENT,$.unpackAlignment);const Wt=U.getParameter(V.UNPACK_ROW_LENGTH),Yt=U.getParameter(V.UNPACK_IMAGE_HEIGHT),Ti=U.getParameter(V.UNPACK_SKIP_PIXELS),ki=U.getParameter(V.UNPACK_SKIP_ROWS),ui=U.getParameter(V.UNPACK_SKIP_IMAGES);U.pixelStorei(V.UNPACK_ROW_LENGTH,fn.width),U.pixelStorei(V.UNPACK_IMAGE_HEIGHT,fn.height),U.pixelStorei(V.UNPACK_SKIP_PIXELS,ut),U.pixelStorei(V.UNPACK_SKIP_ROWS,wt),U.pixelStorei(V.UNPACK_SKIP_IMAGES,Ct);const hr=N.isDataArrayTexture||N.isData3DTexture,zt=$.isDataArrayTexture||$.isData3DTexture;if(N.isDepthTexture){const Sn=W.get(N),$n=W.get($),$t=W.get(Sn.__renderTarget),Er=W.get($n.__renderTarget);U.bindFramebuffer(V.READ_FRAMEBUFFER,$t.__webglFramebuffer),U.bindFramebuffer(V.DRAW_FRAMEBUFFER,Er.__webglFramebuffer);for(let Ar=0;Ar{(function(){function t(M,w){return M===w&&(M!==0||1/M===1/w)||M!==M&&w!==w}function n(M,w){v||l.startTransition===void 0||(v=!0);var x=w();if(!y){var b=w();c(x,b)||(y=!0)}b=h({inst:{value:x,getSnapshot:w}});var C=b[0].inst,R=b[1];return f(function(){C.value=x,C.getSnapshot=w,s(C)&&R({inst:C})},[M,x,w]),d(function(){return s(C)&&R({inst:C}),M(function(){s(C)&&R({inst:C})})},[M]),g(x),x}function s(M){var w=M.getSnapshot;M=M.value;try{var x=w();return!c(M,x)}catch{return!0}}function a(M,w){return w()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var l=f0(),c=typeof Object.is=="function"?Object.is:t,h=l.useState,d=l.useEffect,f=l.useLayoutEffect,g=l.useDebugValue,v=!1,y=!1,_=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?a:n;e.useSyncExternalStore=l.useSyncExternalStore!==void 0?l.useSyncExternalStore:_,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),ZN=tp(((e,t)=>{t.exports=jN()})),$N=tp((e=>{(function(){function t(g,v){return g===v&&(g!==0||1/g===1/v)||g!==g&&v!==v}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=f0(),s=ZN(),a=typeof Object.is=="function"?Object.is:t,l=s.useSyncExternalStore,c=n.useRef,h=n.useEffect,d=n.useMemo,f=n.useDebugValue;e.useSyncExternalStoreWithSelector=function(g,v,y,_,M){var w=c(null);if(w.current===null){var x={hasValue:!1,value:null};w.current=x}else x=w.current;w=d(function(){function C(O){if(!R){if(R=!0,T=O,O=_(O),M!==void 0&&x.hasValue){var A=x.value;if(M(A,O))return L=A}return L=O}if(A=L,a(T,O))return A;var P=_(O);return M!==void 0&&M(A,P)?(T=O,A):(T=O,L=P)}var R=!1,T,L,D=y===void 0?null:y;return[function(){return C(v())},D===null?void 0:function(){return C(D())}]},[v,y,_,M]);var b=l(g,w[0],w[1]);return h(function(){x.hasValue=!0,x.value=b},[b]),f(b),b},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),JN=tp(((e,t)=>{t.exports=$N()})),KN=np(JN(),1),yM=e=>{let t;const n=new Set,s=(f,g)=>{const v=typeof f=="function"?f(t):f;if(!Object.is(v,t)){const y=t;t=g??(typeof v!="object"||v===null)?v:Object.assign({},t,v),n.forEach(_=>_(t,y))}},a=()=>t,h={setState:s,getState:a,getInitialState:()=>d,subscribe:f=>(n.add(f),()=>n.delete(f))},d=t=e(s,a,h);return h},QN=(e=>e?yM(e):yM),{useSyncExternalStoreWithSelector:eD}=KN.default,tD=e=>e;function nD(e,t=tD,n){const s=eD(e.subscribe,e.getState,e.getInitialState,t,n);return xt.useDebugValue(s),s}var _M=(e,t)=>{const n=QN(e),s=(a,l=t)=>nD(n,a,l);return Object.assign(s,n),s},iD=((e,t)=>e?_M(e,t):_M),rD=e=>typeof e=="object"&&typeof e.then=="function",Vo=[];function kE(e,t,n=(s,a)=>s===a){if(e===t)return!0;if(!e||!t)return!1;const s=e.length;if(t.length!==s)return!1;for(let a=0;a0&&(l.timeout&&clearTimeout(l.timeout),l.timeout=setTimeout(l.remove,s.lifespan)),l.response;if(!n)throw l.promise}const a={keys:t,equal:s.equal,remove:()=>{const l=Vo.indexOf(a);l!==-1&&Vo.splice(l,1)},promise:(rD(e)?e:e(...t)).then(l=>{a.response=l,s.lifespan&&s.lifespan>0&&(a.timeout=setTimeout(a.remove,s.lifespan))}).catch(l=>a.error=l)};if(Vo.push(a),!n)throw a.promise}var sD=(e,t,n)=>VE(e,t,!1,n),aD=(e,t,n)=>{VE(e,t,!0,n)},oD=e=>{if(e===void 0||e.length===0)Vo.splice(0,Vo.length);else{const t=Vo.find(n=>kE(e,n.keys,n.equal));t&&t.remove()}},s0=np(qR()),ar=np(jR()),dU=(()=>{var e,t;return typeof window<"u"&&(((e=window.document)==null?void 0:e.createElement)||((t=window.navigator)==null?void 0:t.product)==="ReactNative")})()?xt.useLayoutEffect:xt.useEffect;function ry(e,t,n){if(!e)return;if(n(e)===!0)return e;let s=t?e.return:e.child;for(;s;){const a=ry(s,t,n);if(a)return a;s=t?null:s.sibling}}function HE(e){try{return Object.defineProperties(e,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return e}}var sy=HE(xt.createContext(null)),GE=class extends xt.Component{render(){return xt.createElement(sy.Provider,{value:this._reactInternals},this.props.children)}};function WE(){const e=xt.useContext(sy);if(e===null)throw new Error("its-fine: useFiber must be called within a !");const t=xt.useId();return xt.useMemo(()=>{for(const n of[e,e?.alternate]){if(!n)continue;const s=ry(n,!1,a=>{let l=a.memoizedState;for(;l;){if(l.memoizedState===t)return!0;l=l.next}});if(s)return s}},[e,t])}var lD=Symbol.for("react.context"),cD=e=>e!==null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===lD;function uD(){const e=WE(),[t]=xt.useState(()=>new Map);t.clear();let n=e;for(;n;){const s=n.type;cD(s)&&s!==sy&&!t.has(s)&&t.set(s,xt.use(HE(s))),n=n.return}return t}function hD(){const e=uD();return xt.useMemo(()=>Array.from(e.keys()).reduce((t,n)=>s=>xt.createElement(t,null,xt.createElement(n.Provider,{...s,value:e.get(n)})),t=>xt.createElement(GE,{...t})),[e])}function ay(e){let t=e.root;for(;t.getState().previousRoot;)t=t.getState().previousRoot;return t}var XE=e=>e&&e.isOrthographicCamera,dD=e=>e&&e.hasOwnProperty("current"),fD=e=>e!=null&&(typeof e=="string"||typeof e=="number"||e.isColor),dh=((e,t)=>typeof window<"u"&&(((e=window.document)==null?void 0:e.createElement)||((t=window.navigator)==null?void 0:t.product)==="ReactNative"))()?xt.useLayoutEffect:xt.useEffect;function qE(e){const t=xt.useRef(e);return dh(()=>{t.current=e},[e]),t}function pD(){const e=WE(),t=hD();return xt.useMemo(()=>({children:n})=>(0,ar.jsx)(ry(e,!0,s=>s.type===xt.StrictMode)?xt.StrictMode:xt.Fragment,{children:(0,ar.jsx)(t,{children:n})}),[e,t])}function mD({set:e}){return dh(()=>(e(new Promise(()=>null)),()=>e(!1)),[e]),null}var gD=(e=>(e=class extends xt.Component{constructor(...n){super(...n),this.state={error:!1}}componentDidCatch(n){this.props.set(n)}render(){return this.state.error?null:this.props.children}},e.getDerivedStateFromError=()=>({error:!0}),e))();function YE(e){var t;const n=typeof window<"u"?(t=window.devicePixelRatio)!=null?t:2:1;return Array.isArray(e)?Math.min(Math.max(e[0],n),e[1]):e}function rc(e){var t;return(t=e.__r3f)==null?void 0:t.root.getState()}var gn={obj:e=>e===Object(e)&&!gn.arr(e)&&typeof e!="function",fun:e=>typeof e=="function",str:e=>typeof e=="string",num:e=>typeof e=="number",boo:e=>typeof e=="boolean",und:e=>e===void 0,nul:e=>e===null,arr:e=>Array.isArray(e),equ(e,t,{arrays:n="shallow",objects:s="reference",strict:a=!0}={}){if(typeof e!=typeof t||!!e!=!!t)return!1;if(gn.str(e)||gn.num(e)||gn.boo(e))return e===t;const l=gn.obj(e);if(l&&s==="reference")return e===t;const c=gn.arr(e);if(c&&n==="reference")return e===t;if((c||l)&&e===t)return!0;let h;for(h in e)if(!(h in t))return!1;if(l&&n==="shallow"&&s==="shallow"){for(h in a?t:e)if(!gn.equ(e[h],t[h],{strict:a,objects:"reference"}))return!1}else for(h in a?t:e)if(e[h]!==t[h])return!1;if(gn.und(h)){if(c&&e.length===0&&t.length===0||l&&Object.keys(e).length===0&&Object.keys(t).length===0)return!0;if(e!==t)return!1}return!0}};function vD(e){const t={nodes:{},materials:{},meshes:{}};return e&&e.traverse(n=>{n.name&&(t.nodes[n.name]=n),n.material&&!t.materials[n.material.name]&&(t.materials[n.material.name]=n.material),n.isMesh&&!t.meshes[n.name]&&(t.meshes[n.name]=n)}),t}function yD(e){e.type!=="Scene"&&(e.dispose==null||e.dispose());for(const t in e){const n=e[t];n?.type!=="Scene"&&(n==null||n.dispose==null||n.dispose())}}var jE=["children","key","ref"];function _D(e){const t={};for(const n in e)jE.includes(n)||(t[n]=e[n]);return t}function Jf(e,t,n,s){const a=e;let l=a?.__r3f;return l||(l={root:t,type:n,parent:null,children:[],props:_D(s),object:a,eventCount:0,handlers:{},isHidden:!1},a&&(a.__r3f=l)),l}function lh(e,t){if(!t.includes("-"))return{root:e,key:t,target:e[t]};if(t in e)return{root:e,key:t,target:e[t]};let n=e;const s=t.split("-");for(const a of s){if(typeof n!="object"||n===null){if(n!==void 0){const l=s.slice(s.indexOf(a)).join("-");return{root:n,key:l,target:void 0}}return{root:e,key:t,target:void 0}}t=a,e=n,n=n[t]}return{root:e,key:t,target:n}}var bM=/-\d+$/;function Kf(e,t){if(gn.str(t.props.attach)){if(bM.test(t.props.attach)){const a=t.props.attach.replace(bM,""),{root:l,key:c}=lh(e.object,a);Array.isArray(l[c])||(l[c]=[])}const{root:n,key:s}=lh(e.object,t.props.attach);t.previousAttach=n[s],n[s]=t.object}else gn.fun(t.props.attach)&&(t.previousAttach=t.props.attach(e.object,t.object))}function Qf(e,t){if(gn.str(t.props.attach)){const{root:n,key:s}=lh(e.object,t.props.attach),a=t.previousAttach;a===void 0?delete n[s]:n[s]=a}else t.previousAttach==null||t.previousAttach(e.object,t.object);delete t.previousAttach}var a0=[...jE,"args","dispose","attach","object","onUpdate","dispose"],xM=new Map;function bD(e){let t=xM.get(e.constructor);try{t||(t=new e.constructor,xM.set(e.constructor,t))}catch{}return t}function xD(e,t){const n={};for(const s in t)if(!a0.includes(s)&&!gn.equ(t[s],e.props[s])){n[s]=t[s];for(const a in t)a.startsWith(`${s}-`)&&(n[a]=t[a])}for(const s in e.props){if(a0.includes(s)||t.hasOwnProperty(s))continue;const{root:a,key:l}=lh(e.object,s);if(a.constructor&&a.constructor.length===0){const c=bD(a);gn.und(c)||(n[l]=c[l])}else n[l]=0}return n}var SD=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],MD=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function Fa(e,t){var n;const s=e.__r3f,a=s&&ay(s).getState(),l=s?.eventCount;for(const h in t){let d=t[h];if(a0.includes(h))continue;if(s&&MD.test(h)){typeof d=="function"?s.handlers[h]=d:delete s.handlers[h],s.eventCount=Object.keys(s.handlers).length;continue}if(d===void 0)continue;let{root:f,key:g,target:v}=lh(e,h);if(v===void 0&&(typeof f!="object"||f===null))throw Error(`R3F: Cannot set "${h}". Ensure it is an object before setting "${g}".`);if(v instanceof pc&&d instanceof pc)v.mask=d.mask;else if(v instanceof Xe&&fD(d))v.set(d);else if(v!==null&&typeof v=="object"&&typeof v.set=="function"&&typeof v.copy=="function"&&d!=null&&d.constructor&&v.constructor===d.constructor)v.copy(d);else if(v!==null&&typeof v=="object"&&typeof v.set=="function"&&Array.isArray(d))typeof v.fromArray=="function"?v.fromArray(d):v.set(...d);else if(v!==null&&typeof v=="object"&&typeof v.set=="function"&&typeof d=="number")typeof v.setScalar=="function"?v.setScalar(d):v.set(d);else if(f instanceof cr&&g==="uniforms"&&gn.obj(d)){gn.obj(f.uniforms)||(f.uniforms={});const y=f.uniforms,_=d;for(const M in _){const w=_[M],x=y[M];x?Object.assign(x,w):y[M]={...w}}}else{var c;f[g]=d,a&&!a.linear&&SD.includes(g)&&(c=f[g])!=null&&c.isTexture&&f[g].format===1023&&f[g].type===1009&&(f[g].colorSpace=xi)}}if(s!=null&&s.parent&&a!=null&&a.internal&&(n=s.object)!=null&&n.isObject3D&&l!==s.eventCount){const h=s.object,d=a.internal.interaction.indexOf(h);d>-1&&a.internal.interaction.splice(d,1),s.eventCount&&h.raycast!==null&&a.internal.interaction.push(h)}return s&&s.props.attach===void 0&&(s.object.isBufferGeometry?s.props.attach="geometry":s.object.isMaterial&&(s.props.attach="material")),s&&Tc(s),e}function Tc(e){var t;if(!e.parent)return;e.props.onUpdate==null||e.props.onUpdate(e.object);const n=(t=e.root)==null||t.getState==null?void 0:t.getState();n&&n.internal.frames===0&&n.invalidate()}function wD(e,t){e.manual||(XE(e)?(e.left=t.width/-2,e.right=t.width/2,e.top=t.height/2,e.bottom=t.height/-2):e.aspect=t.width/t.height,e.updateProjectionMatrix())}var Oi=e=>e?.isObject3D;function ku(e){return(e.eventObject||e.object).uuid+"/"+e.index+e.instanceId}function ZE(e,t,n,s){const a=n.get(t);a&&(n.delete(t),n.size===0&&(e.delete(s),a.target.releasePointerCapture(s)))}function TD(e,t,n){const{internal:s}=e.getState();for(let a=0;a{if(a.eventObject===t||a.object===t){s.hovered.delete(l);const c={...a,eventObject:a.eventObject===t?n:a.eventObject,object:a.object===t?n:a.object};s.hovered.set(ku(c),c)}}),s.capturedMap.forEach(a=>{const l=a.get(t);l&&(a.delete(t),a.set(n,l))})}function ED(e,t){const{internal:n}=e.getState();n.interaction=n.interaction.filter(s=>s!==t),n.initialHits=n.initialHits.filter(s=>s!==t),n.hovered.forEach((s,a)=>{(s.eventObject===t||s.object===t)&&n.hovered.delete(a)}),n.capturedMap.forEach((s,a)=>{ZE(n.capturedMap,t,s,a)})}function AD(e){function t(d){const{internal:f}=e.getState(),g=d.offsetX-f.initialClick[0],v=d.offsetY-f.initialClick[1];return Math.round(Math.sqrt(g*g+v*v))}function n(d){return d.filter(f=>["Move","Over","Enter","Out","Leave"].some(g=>{var v;return(v=f.__r3f)==null?void 0:v.handlers["onPointer"+g]}))}function s(d,f){const g=e.getState(),v=new Set,y=[],_=f?f(g.internal.interaction):g.internal.interaction;for(let b=0;b<_.length;b++){const C=rc(_[b]);C&&(C.raycaster.camera=void 0)}g.previousRoot||g.events.compute==null||g.events.compute(d,g);function M(b){const C=rc(b);if(!C||!C.events.enabled||C.raycaster.camera===null)return[];if(C.raycaster.camera===void 0){var R;C.events.compute==null||C.events.compute(d,C,(R=C.previousRoot)==null?void 0:R.getState()),C.raycaster.camera===void 0&&(C.raycaster.camera=null)}return C.raycaster.camera?C.raycaster.intersectObject(b,!0):[]}let w=_.flatMap(M).sort((b,C)=>{const R=rc(b.object),T=rc(C.object);return!R||!T?b.distance-C.distance:T.events.priority-R.events.priority||b.distance-C.distance}).filter(b=>{const C=ku(b);return v.has(C)?!1:(v.add(C),!0)});g.events.filter&&(w=g.events.filter(w,g));for(const b of w){let C=b.object;for(;C;){var x;(x=C.__r3f)!=null&&x.eventCount&&y.push({...b,eventObject:C}),C=C.parent}}if("pointerId"in d&&g.internal.capturedMap.has(d.pointerId))for(let b of g.internal.capturedMap.get(d.pointerId).values())v.has(ku(b.intersection))||y.push(b.intersection);return y}function a(d,f,g,v){if(d.length){const y={stopped:!1};for(const _ of d){let M=rc(_.object);if(M||_.object.traverseAncestors(w=>{const x=rc(w);if(x)return M=x,!1}),M){const{raycaster:w,pointer:x,camera:b,internal:C}=M,R=new z(x.x,x.y,0).unproject(b),T=P=>{var k,F;return(k=(F=C.capturedMap.get(P))==null?void 0:F.has(_.eventObject))!=null?k:!1},L=P=>{const k={intersection:_,target:f.target};C.capturedMap.has(P)?C.capturedMap.get(P).set(_.eventObject,k):C.capturedMap.set(P,new Map([[_.eventObject,k]])),f.target.setPointerCapture(P)},D=P=>{const k=C.capturedMap.get(P);k&&ZE(C.capturedMap,_.eventObject,k,P)};let O={};for(let P in f){let k=f[P];typeof k!="function"&&(O[P]=k)}let A={..._,...O,pointer:x,intersections:d,stopped:y.stopped,delta:g,unprojectedPoint:R,ray:w.ray,camera:b,stopPropagation(){const P="pointerId"in f&&C.capturedMap.get(f.pointerId);(!P||P.has(_.eventObject))&&(A.stopped=y.stopped=!0,C.hovered.size&&Array.from(C.hovered.values()).find(k=>k.eventObject===_.eventObject)&&l([...d.slice(0,d.indexOf(_)),_]))},target:{hasPointerCapture:T,setPointerCapture:L,releasePointerCapture:D},currentTarget:{hasPointerCapture:T,setPointerCapture:L,releasePointerCapture:D},nativeEvent:f};if(v(A),y.stopped===!0)break}}}return d}function l(d){const{internal:f}=e.getState();for(const g of f.hovered.values())if(!d.length||!d.find(v=>v.object===g.object&&v.index===g.index&&v.instanceId===g.instanceId)){const v=g.eventObject.__r3f;if(f.hovered.delete(ku(g)),v!=null&&v.eventCount){const y=v.handlers,_={...g,intersections:d};y.onPointerOut==null||y.onPointerOut(_),y.onPointerLeave==null||y.onPointerLeave(_)}}}function c(d,f){for(let g=0;gl([]);case"onLostPointerCapture":return f=>{const{internal:g}=e.getState();"pointerId"in f&&g.capturedMap.has(f.pointerId)&&requestAnimationFrame(()=>{g.capturedMap.has(f.pointerId)&&(g.capturedMap.delete(f.pointerId),l([]))})}}return function(g){const{onPointerMissed:v,internal:y}=e.getState();y.lastEvent.current=g;const _=d==="onPointerMove",M=d==="onClick"||d==="onContextMenu"||d==="onDoubleClick",w=s(g,_?n:void 0),x=M?t(g):0;d==="onPointerDown"&&(y.initialClick=[g.offsetX,g.offsetY],y.initialHits=w.map(C=>C.eventObject)),M&&!w.length&&x<=2&&(c(g,y.interaction),v&&v(g)),_&&l(w);function b(C){const R=C.eventObject,T=R.__r3f;if(!(T!=null&&T.eventCount))return;const L=T.handlers;if(_){if(L.onPointerOver||L.onPointerEnter||L.onPointerOut||L.onPointerLeave){const D=ku(C),O=y.hovered.get(D);O?O.stopped&&C.stopPropagation():(y.hovered.set(D,C),L.onPointerOver==null||L.onPointerOver(C),L.onPointerEnter==null||L.onPointerEnter(C))}L.onPointerMove==null||L.onPointerMove(C)}else{const D=L[d];D?(!M||y.initialHits.includes(R))&&(c(g,y.interaction.filter(O=>!y.initialHits.includes(O))),D(C)):M&&y.initialHits.includes(R)&&c(g,y.interaction.filter(O=>!y.initialHits.includes(O)))}}a(w,g,x,b)}}return{handlePointer:h}}var SM=e=>!!(e!=null&&e.render),$E=xt.createContext(null),CD=(e,t)=>{const n=iD((h,d)=>{const f=new z,g=new z,v=new z;function y(x=d().camera,b=g,C=d().size){const{width:R,height:T,top:L,left:D}=C,O=R/T;b.isVector3?v.copy(b):v.set(...b);const A=x.getWorldPosition(f).distanceTo(v);if(XE(x))return{width:R/x.zoom,height:T/x.zoom,top:L,left:D,factor:1,distance:A,aspect:O};{const P=x.fov*Math.PI/180,k=2*Math.tan(P/2)*A,F=k*(R/T);return{width:F,height:k,top:L,left:D,factor:R/F,distance:A,aspect:O}}}let _;const M=x=>h(b=>({performance:{...b.performance,current:x}})),w=new ye;return{set:h,get:d,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(x=1)=>e(d(),x),advance:(x,b)=>t(x,b,d()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new AE,pointer:w,mouse:w,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const x=d();_&&clearTimeout(_),x.performance.current!==x.performance.min&&M(x.performance.min),_=setTimeout(()=>M(d().performance.max),x.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:y},setEvents:x=>h(b=>({...b,events:{...b.events,...x}})),setSize:(x,b,C=0,R=0)=>{const T=d().camera,L={width:x,height:b,top:C,left:R};h(D=>({size:L,viewport:{...D.viewport,...y(T,g,L)}}))},setDpr:x=>h(b=>{const C=YE(x);return{viewport:{...b.viewport,dpr:C,initialDpr:b.viewport.initialDpr||C}}}),setFrameloop:(x="always")=>{const b=d().clock;b.stop(),b.elapsedTime=0,x!=="never"&&(b.start(),b.elapsedTime=0),h(()=>({frameloop:x}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:xt.createRef(),active:!1,frames:0,priority:0,subscribe:(x,b,C)=>{const R=d().internal;return R.priority=R.priority+(b>0?1:0),R.subscribers.push({ref:x,priority:b,store:C}),R.subscribers=R.subscribers.sort((T,L)=>T.priority-L.priority),()=>{const T=d().internal;T!=null&&T.subscribers&&(T.priority=T.priority-(b>0?1:0),T.subscribers=T.subscribers.filter(L=>L.ref!==x))}}}}}),s=n.getState();let a=s.size,l=s.viewport.dpr,c=s.camera;return n.subscribe(()=>{const{camera:h,size:d,viewport:f,gl:g,set:v}=n.getState();if(d.width!==a.width||d.height!==a.height||f.dpr!==l){a=d,l=f.dpr,wD(h,d),f.dpr>0&&g.setPixelRatio(f.dpr);const y=typeof HTMLCanvasElement<"u"&&g.domElement instanceof HTMLCanvasElement;g.setSize(d.width,d.height,y)}h!==c&&(c=h,v(y=>({viewport:{...y.viewport,...y.viewport.getCurrentViewport(h)}})))}),n.subscribe(h=>e(h)),n};function JE(){const e=xt.useContext($E);if(!e)throw new Error("R3F: Hooks can only be used within the Canvas component!");return e}function pU(e=n=>n,t){return JE()(e,t)}function mU(e,t=0){const n=JE(),s=n.getState().internal.subscribe,a=qE(e);return dh(()=>s(a,t,n),[t,s,n]),null}var MM=new WeakMap,RD=e=>{var t;return typeof e=="function"&&(e==null||(t=e.prototype)==null?void 0:t.constructor)===e};function KE(e,t){return function(n,...s){let a;return RD(n)?(a=MM.get(n),a||(a=new n,MM.set(n,a))):a=n,e&&e(a),Promise.all(s.map(l=>new Promise((c,h)=>a.load(l,d=>{Oi(d?.scene)&&Object.assign(d,vD(d.scene)),c(d)},t,d=>h(new Error(`Could not load ${l}: ${d?.message}`))))))}}function QE(e,t,n,s){const a=Array.isArray(t)?t:[t],l=sD(KE(n,s),[e,...a],{equal:gn.equ});return Array.isArray(t)?l:l[0]}QE.preload=function(e,t,n){const s=Array.isArray(t)?t:[t];return aD(KE(n),[e,...s])};QE.clear=function(e,t){return oD([e,...Array.isArray(t)?t:[t]])};var PD=1,ID=8,LD=32,ND=2,DD={name:"@react-three/fiber",version:"9.6.1",description:"A React renderer for Threejs",keywords:["react","renderer","fiber","three","threejs"],author:"Paul Henschel (https://github.com/drcmda)",license:"MIT",maintainers:["Josh Ellis (https://github.com/joshuaellis)","Cody Bennett (https://github.com/codyjasonbennett)","Kris Baumgarter (https://github.com/krispya)"],bugs:{url:"https://github.com/pmndrs/react-three-fiber/issues"},homepage:"https://github.com/pmndrs/react-three-fiber#readme",repository:{type:"git",url:"git+https://github.com/pmndrs/react-three-fiber.git"},collective:{type:"opencollective",url:"https://opencollective.com/react-three-fiber"},main:"dist/react-three-fiber.cjs.js",module:"dist/react-three-fiber.esm.js",types:"dist/react-three-fiber.cjs.d.ts","react-native":"native/dist/react-three-fiber-native.cjs.js",sideEffects:!1,preconstruct:{entrypoints:["index.tsx","native.tsx"]},scripts:{prebuild:"cp ../../readme.md readme.md"},devDependencies:{"@types/react-reconciler":"^0.32.3","react-reconciler":"^0.33.0"},dependencies:{"@babel/runtime":"^7.17.8","@types/webxr":"*","base64-js":"^1.5.1",buffer:"^6.0.3","its-fine":"^2.0.0","react-use-measure":"^2.1.7",scheduler:"^0.27.0","suspend-react":"^0.1.3","use-sync-external-store":"^1.4.0",zustand:"^5.0.3"},peerDependencies:{expo:">=43.0","expo-asset":">=8.4","expo-file-system":">=11.0","expo-gl":">=11.0",react:">=19 <19.3","react-dom":">=19 <19.3","react-native":">=0.78",three:">=0.156"},peerDependenciesMeta:{"react-dom":{optional:!0},"react-native":{optional:!0},expo:{optional:!0},"expo-asset":{optional:!0},"expo-file-system":{optional:!0},"expo-gl":{optional:!0}}};function UD(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wM={exports:{}},o0={exports:{}};o0.exports;var TM;function OD(){return TM||(TM=1,(function(e){e.exports=function(t){function n(i,r){for(i=i.memoizedState;i!==null&&0=r.length)return u;var p=r[o],m=ai(i)?i.slice():si({},i);return m[p]=s(i[p],r,o+1,u),m}function a(i,r,o){if(r.length===o.length){for(var u=0;uTs||(ng[Ts],i.current=tg[Ts],tg[Ts]=null,ng[Ts]=null,Ts--)}function X(i,r,o){Ts++,tg[Ts]=i.current,ng[Ts]=o,i.current=r}function K(i){return i>>>=0,i===0?32:31-(bR(i)/xR|0)|0}function ee(i){var r=i&42;if(r!==0)return r;switch(i&-i){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 i&261888;case 262144:case 524288:case 1048576:case 2097152:return i&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return i&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return i}}function ae(i,r,o){var u=i.pendingLanes;if(u===0)return 0;var p=0,m=i.suspendedLanes,S=i.pingedLanes;i=i.warmLanes;var E=u&134217727;return E!==0?(u=E&~m,u!==0?p=ee(u):(S&=E,S!==0?p=ee(S):o||(o=E&~i,o!==0&&(p=ee(o))))):(E=u&~m,E!==0?p=ee(E):S!==0?p=ee(S):o||(o=u&~i,o!==0&&(p=ee(o)))),p===0?0:r!==0&&r!==p&&(r&m)===0&&(m=p&-p,o=r&-r,m>=o||m===32&&(o&4194048)!==0)?r:p}function Q(i,r){return(i.pendingLanes&~(i.suspendedLanes&~i.pingedLanes)&r)===0}function me(i,r){switch(i){case 1:case 2:case 4:case 8:case 64:return r+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 r+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 _e(){var i=ad;return ad<<=1,!(ad&62914560)&&(ad=4194304),i}function ge(i){for(var r=[],o=0;31>o;o++)r.push(i);return r}function be(i,r){i.pendingLanes|=r,r!==268435456&&(i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0)}function Ie(i,r,o,u,p,m){var S=i.pendingLanes;i.pendingLanes=o,i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0,i.expiredLanes&=o,i.entangledLanes&=o,i.errorRecoveryDisabledLanes&=o,i.shellSuspendCounter=0;var E=i.entanglements,B=i.expirationTimes,Y=i.hiddenUpdates;for(o=S&~o;0"u")return!1;var r=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(r.isDisabled||!r.supportsFiber)return!0;try{fl=r.inject(i),gi=r}catch{}return!!r.checkDCE}function Le(i){if(typeof TR=="function"&&ER(i),gi&&typeof gi.setStrictMode=="function")try{gi.setStrictMode(fl,i)}catch{rs||(rs=!0)}}function At(i,r){return i===r&&(i!==0||1/i===1/r)||i!==i&&r!==r}function pe(i){for(var r=0,o=0;o";break}if(3>u||B===1&&E[0]==="children"&&S==null){r="<"+m+" … />";break}o.push([p+"  ".repeat(u)+i,"<"+m]),S!==null&&Ae("key",S,o,u+1,p),i=!1;for(var Y in r)Y==="children"?r.children!=null&&(!ai(r.children)||0":"/>"]);return}if(m=Object.prototype.toString.call(r),m=m.slice(8,m.length-1),m==="Array"){if(Y=pe(r),Y===2||Y===0){r=JSON.stringify(r);break}else if(Y===3){for(o.push([p+"  ".repeat(u)+i,""]),i=0;im){o=o[m],o[1]="Promise<"+(o[1]||"Object")+">";return}}else if(r.status==="rejected"&&(m=o.length,Ae(i,r.reason,o,u,p),o.length>m)){o=o[m],o[1]="Rejected Promise<"+o[1]+">";return}o.push(["  ".repeat(u)+i,"Promise"]);return}m==="Object"&&(Y=Object.getPrototypeOf(r))&&typeof Y.constructor=="function"&&(m=Y.constructor.name),o.push([p+"  ".repeat(u)+i,m==="Object"?3>u?"":"…":m]),3>u&&Ee(r,o,u+1,p);return}case"function":r=r.name===""?"() => {}":r.name+"() {}";break;case"string":r=r==="This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects."?"…":JSON.stringify(r);break;case"undefined":r="undefined";break;case"boolean":r=r?"true":"false";break;default:r=String(r)}o.push([p+"  ".repeat(u)+i,r])}function Ve(i,r,o,u){var p=!0;for(S in i)S in r||(o.push(["– "+"  ".repeat(u)+S,"…"]),p=!1);for(var m in r)if(m in i){var S=i[m],E=r[m];if(S!==E){if(u===0&&m==="children")p="  ".repeat(u)+m,o.push(["– "+p,"…"],["+ "+p,"…"]);else{if(!(3<=u)){if(typeof S=="object"&&typeof E=="object"&&S!==null&&E!==null&&S.$$typeof===E.$$typeof)if(E.$$typeof===xs){if(S.type===E.type&&S.key===E.key){S=P(E.type)||"…",p="  ".repeat(u)+m,S="<"+S+" … />",o.push(["– "+p,S],["+ "+p,S]),p=!1;continue}}else{var B=Object.prototype.toString.call(S),Y=Object.prototype.toString.call(E);if(B===Y&&(Y==="[object Object]"||Y==="[object Array]")){B=["  "+"  ".repeat(u)+m,Y==="[object Array]"?"Array":""],o.push(B),Y=o.length,Ve(S,E,o,u+1)?Y===o.length&&(B[1]="Referentially unequal but deeply equal objects. Consider memoization."):p=!1;continue}}else if(typeof S=="function"&&typeof E=="function"&&S.name===E.name&&S.length===E.length&&(B=Function.prototype.toString.call(S),Y=Function.prototype.toString.call(E),B===Y)){S=E.name===""?"() => {}":E.name+"() {}",o.push(["  "+"  ".repeat(u)+m,S+" Referentially unequal function closure. Consider memoization."]);continue}}Ae(m,S,o,u,"– "),Ae(m,E,o,u,"+ ")}p=!1}}else o.push(["+ "+"  ".repeat(u)+m,"…"]),p=!1;return p}function Oe(i){In=i&63?"Blocking":i&64?"Gesture":i&4194176?"Transition":i&62914560?"Suspense":i&2080374784?"Idle":"Other"}function qe(i,r,o,u){pn&&(ha.start=r,ha.end=o,Es.color="warning",Es.tooltipText=u,Es.properties=null,(i=i._debugTask)?i.run(performance.measure.bind(performance,u,ha)):performance.measure(u,ha))}function tt(i,r,o){qe(i,r,o,"Reconnect")}function vt(i,r,o,u,p){var m=k(i);if(m!==null&&pn){var S=i.alternate,E=i.actualDuration;if(S===null||S.child!==i.child)for(var B=i.child;B!==null;B=B.sibling)E-=B.actualDuration;u=.5>E?u?"tertiary-light":"primary-light":10>E?u?"tertiary":"primary":100>E?u?"tertiary-dark":"primary-dark":"error";var Y=i.memoizedProps;E=i._debugTask,Y!==null&&S!==null&&S.memoizedProps!==Y?(B=[RR],Y=Ve(S.memoizedProps,Y,B,0),1{}).bind(console,m,r,o,"Components ⚛",void 0,u))}}function bt(i,r,o,u){if(pn){var p=k(i);if(p!==null){for(var m=null,S=[],E=0;Eu?"secondary-light":100>u?"secondary":500>u?"secondary-dark":"error",(i=i._debugTask)&&i.run((()=>{}).bind(console,m,r,o,"Components ⚛",void 0,p)))}function un(i,r,o,u){if(pn&&!(r<=i)){var p=(o&738197653)===o?"tertiary-dark":"primary-dark";o=(o&536870912)===o?"Prepared":(o&201326741)===o?"Hydrated":"Render",u&&u.run((()=>{}).bind(console,o,i,r,In,"Scheduler ⚛",p))}}function Gt(i,r,o,u){!pn||r<=i||(o=(o&738197653)===o?"tertiary-dark":"primary-dark",u&&u.run((()=>{}).bind(console,"Prewarm",i,r,In,"Scheduler ⚛",o)))}function Ut(i,r,o,u){!pn||r<=i||(o=(o&738197653)===o?"tertiary-dark":"primary-dark",u&&u.run((()=>{}).bind(console,"Suspended",i,r,In,"Scheduler ⚛",o)))}function U(i,r,o,u,p,m){if(pn&&!(r<=i)){o=[];for(var S=0;S{}).bind(console,"Errored",i,r,In,"Scheduler ⚛","error"))}function W(i,r,o,u){!pn||r<=i||u&&u.run((()=>{}).bind(console,o,i,r,In,"Scheduler ⚛","secondary-light"))}function re(i,r,o,u,p){if(pn&&!(r<=i)){for(var m=[],S=0;Sjc}function Z(i){var r=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,i=i.stack,Error.prepareStackTrace=r,i.startsWith(`Error: react-stack-top-frame -`)&&(i=i.slice(29)),r=i.indexOf(` -`),r!==-1&&(i=i.slice(r+1)),r=i.indexOf("react_stack_bottom_frame"),r!==-1&&(r=i.lastIndexOf(` -`,r)),r!==-1)i=i.slice(0,r);else return"";return i}function Se(i){if(sg===void 0)try{throw Error()}catch(o){var r=o.stack.trim().match(/\n( *(at )?)/);sg=r&&r[1]||"",px=-1)":-1S||Y[m]!==se[S]){var ce=` -`+Y[m].replace(" at new "," at ");return i.displayName&&ce.includes("")&&(ce=ce.replace("",i.displayName)),typeof i=="function"&&og.set(i,ce),ce}while(1<=m&&0<=S);break}}}finally{ag=!1,oe.H=u,Ue(),Error.prepareStackTrace=o}return Y=(Y=i?i.displayName||i.name:"")?Se(Y):"",typeof i=="function"&&og.set(i,Y),Y}function Qe(i,r){switch(i.tag){case 26:case 27:case 5:return Se(i.type);case 16:return Se("Lazy");case 13:return i.child!==r&&r!==null?Se("Suspense Fallback"):Se("Suspense");case 19:return Se("SuspenseList");case 0:case 15:return Ge(i.type,!1);case 11:return Ge(i.type.render,!1);case 1:return Ge(i.type,!0);case 31:return Se("Activity");default:return""}}function Te(i){try{var r="",o=null;do{r+=Qe(i,o);var u=i._debugInfo;if(u)for(var p=u.length-1;0<=p;p--){var m=u[p];if(typeof m.name=="string"){var S=r;e:{var E=m.name,B=m.env,Y=m.debugLocation;if(Y!=null){var se=Z(Y),ce=se.lastIndexOf(` -`),fe=ce===-1?se:se.slice(ce+1);if(fe.indexOf(E)!==-1){var at=` -`+fe;break e}}at=Se(E+(B?" ["+B+"]":""))}r=S+at}}o=i,i=i.return}while(i);return r}catch(mt){return` -Error generating stack: `+mt.message+` -`+mt.stack}}function nt(i){return(i=i?i.displayName||i.name:"")?Se(i):""}function $e(i,r){if(typeof i=="object"&&i!==null){var o=lg.get(i);return o!==void 0?o:(r={value:i,source:r,stack:Te(r)},lg.set(i,r),r)}return{value:i,source:r,stack:Te(r)}}function ct(i,r){pl[ml++]=Zc,pl[ml++]=ld,ld=i,Zc=r}function jt(i,r,o){dr[fr++]=As,dr[fr++]=Cs,dr[fr++]=oo,oo=i;var u=As;i=Cs;var p=32-Ci(u)-1;u&=~(1<>=S,p-=S,As=1<<32-Ci(r)+p|o<15-r?ur(i.children[0],r):i}function wi(i){return" "+" ".repeat(i)}function ms(i){return"+ "+" ".repeat(i)}function wr(i){return"- "+" ".repeat(i)}function fh(i){switch(i.tag){case 26:case 27:case 5:return i.type;case 16:return"Lazy";case 31:return"Activity";case 13:return"Suspense";case 19:return"SuspenseList";case 0:case 15:return i=i.type,i.displayName||i.name||null;case 11:return i=i.type.render,i.displayName||i.name||null;case 1:return i=i.type,i.displayName||i.name||null;default:return null}}function ta(i,r){return mx.test(i)?(i=JSON.stringify(i),i.length>r-2?8>r?'{"..."}':"{"+i.slice(0,r-7)+'..."}':"{"+i+"}"):i.length>r?5>r?'{"..."}':i.slice(0,r-3)+"...":i}function Ya(i,r,o){var u=120-2*o;if(r===null)return ms(o)+ta(i,u)+` -`;if(typeof r=="string"){for(var p=0;pu-8&&10r?5>r?'"..."':i.slice(0,r-4)+'..."':i;case"object":if(i===null)return"null";if(ai(i))return"[...]";if(i.$$typeof===xs)return(r=P(i.type))?"<"+r+">":"<...>";var o=Tr(i);if(o==="Object"){o="",r-=2;for(var u in i)if(i.hasOwnProperty(u)){var p=JSON.stringify(u);if(p!=='"'+u+'"'&&(u=p),r-=u.length-2,p=gs(i[u],15>r?r:15),r-=p.length,0>r){o+=o===""?"...":", ...";break}o+=(o===""?"":",")+u+":"+p}return"{"+o+"}"}return o;case"function":return(r=i.displayName||i.name)?"function "+r:"function";default:return String(i)}}function vs(i,r){return typeof i!="string"||mx.test(i)?"{"+gs(i,r-2)+"}":i.length>r-2?5>r?'"..."':'"'+i.slice(0,r-5)+'..."':'"'+i+'"'}function Zo(i,r,o){var u=120-o.length-i.length,p=[],m;for(m in r)if(r.hasOwnProperty(m)&&m!=="children"){var S=vs(r[m],120-o.length-m.length-1);u-=m.length+S.length+2,p.push(m+"="+S)}return p.length===0?o+"<"+i+`> -`:0 -`:o+"<"+i+` -`+o+" "+p.join(` -`+o+" ")+` -`+o+`> -`}function $o(i,r,o){var u="",p=si({},r),m;for(m in i)if(i.hasOwnProperty(m)){delete p[m];var S=120-2*o-m.length-2,E=gs(i[m],S);r.hasOwnProperty(m)?(S=gs(r[m],S),u+=ms(o)+m+": "+E+` -`,u+=wr(o)+m+": "+S+` -`):u+=ms(o)+m+": "+E+` -`}for(var B in p)p.hasOwnProperty(B)&&(i=gs(p[B],120-2*o-B.length-2),u+=wr(o)+B+": "+i+` -`);return u}function ph(i,r,o,u){var p="",m=new Map;for(Y in o)o.hasOwnProperty(Y)&&m.set(Y.toLowerCase(),Y);if(m.size===1&&m.has("children"))p+=Zo(i,r,wi(u));else{for(var S in r)if(r.hasOwnProperty(S)&&S!=="children"){var E=120-2*(u+1)-S.length-1,B=m.get(S.toLowerCase());if(B!==void 0){m.delete(S.toLowerCase());var Y=r[S];B=o[B];var se=vs(Y,E);E=vs(B,E),typeof Y=="object"&&Y!==null&&typeof B=="object"&&B!==null&&Tr(Y)==="Object"&&Tr(B)==="Object"&&(2 -`:wi(u)+"<"+i+` -`+p+wi(u)+`> -`}return i=o.children,r=r.children,typeof i=="string"||typeof i=="number"||typeof i=="bigint"?(m="",(typeof r=="string"||typeof r=="number"||typeof r=="bigint")&&(m=""+r),p+=Ya(m,""+i,u+1)):(typeof r=="string"||typeof r=="number"||typeof r=="bigint")&&(p=i==null?p+Ya(""+r,null,u+1):p+Ya(""+r,void 0,u+1)),p}function ja(i,r){var o=fh(i);if(o===null){for(o="",i=i.child;i;)o+=ja(i,r),i=i.sibling;return o}return wi(r)+"<"+o+`> -`}function Jo(i,r){var o=ur(i,r);if(o!==i&&(i.children.length!==1||i.children[0]!==o))return wi(r)+`... -`+Jo(o,r+1);o="";var u=i.fiber._debugInfo;if(u)for(var p=0;p -`,r++)}if(u="",p=i.fiber.pendingProps,i.fiber.tag===6)u=Ya(p,i.serverProps,r),r++;else if(m=fh(i.fiber),m!==null)if(i.serverProps===void 0){u=r;var S=120-2*u-m.length-2,E="";for(Y in p)if(p.hasOwnProperty(Y)&&Y!=="children"){var B=vs(p[Y],15);if(S-=Y.length+B.length+2,0>S){E+=" ...";break}E+=" "+Y+"="+B}u=wi(u)+"<"+m+E+`> -`,r++}else i.serverProps===null?(u=Zo(m,p,ms(r)),r++):typeof i.serverProps=="string"||(u=ph(m,p,i.serverProps,r),r++);var Y="";for(p=i.fiber.child,m=0;p&&mr&&(er.distanceFromLeaf=r)}return er}var o=ys(i.return,r+1).children;return 0r&&(o.distanceFromLeaf=r),o):(r={fiber:i,children:[],serverProps:void 0,serverTail:[],distanceFromLeaf:r},o.push(r),r)}function N(){}function $(i,r){os||(i=ys(i,0),i.serverProps=null,r!==null&&(r=Xb(r),i.serverTail.push(r)))}function ie(i){var r=1i.refCount,i.refCount===0&&LR(NR,function(){i.controller.abort()})}function zt(i,r,o){(i&127)!==0?0>ls&&(ls=Un(),Jc=fd(r),dg=r,o!=null&&(fg=k(o)),Im()&&(Tn=!0,va=1),i=Xc(),r=Wc(),i!==yl||r!==Kc?yl=-1.1:r!==null&&(va=1),uo=i,Kc=r):i&4194048&&0>mr&&(mr=Un(),Qc=fd(r),gx=r,o!=null&&(vx=k(o)),0>Ls)&&(i=Xc(),r=Wc(),(i!==_a||r!==ho)&&(_a=-1.1),ya=i,ho=r)}function Sn(i){if(0>ls){ls=Un(),Jc=i._debugTask!=null?i._debugTask:null,Im()&&(va=1);var r=Xc(),o=Wc();r!==yl||o!==Kc?yl=-1.1:o!==null&&(va=1),uo=r,Kc=o}0>mr&&(mr=Un(),Qc=i._debugTask!=null?i._debugTask:null,0>Ls)&&(i=Xc(),r=Wc(),(i!==_a||r!==ho)&&(_a=-1.1),ya=i,ho=r)}function $n(){var i=lo;return lo=0,i}function $t(i){var r=lo;return lo=i,r}function Er(i){var r=lo;return lo+=i,r}function Ar(){dt=lt=-1.1}function hi(){var i=lt;return lt=-1.1,i}function $i(i){0<=i&&(lt=i)}function qr(){var i=_n;return _n=-0,i}function Yr(i){0<=i&&(_n=i)}function jr(){var i=vn;return vn=null,i}function Zr(){var i=Tn;return Tn=!1,i}function _p(i){Pi=Un(),0>i.actualStartTime&&(i.actualStartTime=Pi)}function bp(i){if(0<=Pi){var r=Un()-Pi;i.actualDuration+=r,i.selfBaseDuration=r,Pi=-1}}function ly(i){if(0<=Pi){var r=Un()-Pi;i.actualDuration+=r,Pi=-1}}function $r(){if(0<=Pi){var i=Un(),r=i-Pi;Pi=-1,lo+=r,_n+=r,dt=i}}function cy(i){vn===null&&(vn=[]),vn.push(i),Ps===null&&(Ps=[]),Ps.push(i)}function Jr(){Pi=Un(),0>lt&&(lt=Pi)}function Cc(i){for(var r=i.child;r;)i.actualDuration+=r.actualDuration,r=r.sibling}function mh(){}function Kr(i){i!==_l&&i.next===null&&(_l===null?_d=_l=i:_l=_l.next=i),bd=!0,oe.actQueue!==null?gg||(gg=!0,py()):mg||(mg=!0,py())}function Ko(i,r){if(!vg&&bd){vg=!0;do for(var o=!1,u=_d;u!==null;){if(!r)if(i!==0){var p=u.pendingLanes;if(p===0)var m=0;else{var S=u.suspendedLanes,E=u.pingedLanes;m=(1<<31-Ci(42|i)+1)-1,m&=p&~(S&~E),m=m&201326741?m&201326741|1:m?m|2:0}m!==0&&(o=!0,fy(u,m))}else m=Pt,m=ae(u,u===rn?m:0,u.cancelPendingCommit!==null||u.timeoutHandle!==so),!(m&3)||Q(u,m)||(o=!0,fy(u,m));u=u.next}while(o);vg=!1}}function uy(){Zm(),xp()}function xp(){bd=gg=mg=!1;var i=0;fo!==0&&rC()&&(i=fo);for(var r=Wn(),o=null,u=_d;u!==null;){var p=u.next,m=hy(u,r);m===0?(u.next=null,o===null?_d=p:o.next=p,p===null&&(_l=o)):(o=u,(i!==0||m&3)&&(bd=!0)),u=p}kn!==Ea&&kn!==Wd||Ko(i,!1),fo!==0&&(fo=0)}function hy(i,r){for(var o=i.suspendedLanes,u=i.pingedLanes,p=i.expirationTimes,m=i.pendingLanes&-62914561;0Tt?(mn=Mt,Mt=null):mn=Mt.sibling;var Nn=fe(H,Mt,J[Tt],he);if(Nn===null){Mt===null&&(Mt=mn);break}je=mt(H,Nn,J[Tt],je),i&&Mt&&Nn.alternate===null&&r(H,Mt),G=m(Nn,G,Tt),_t===null?Zt=Nn:_t.sibling=Nn,_t=Nn,Mt=mn}if(Tt===J.length)return o(H,Mt),kt&&ct(H,Tt),Zt;if(Mt===null){for(;TtMt?(Tt=_t,_t=null):Tt=_t.sibling;var zs=fe(H,_t,Nn.value,he);if(zs===null){_t===null&&(_t=Tt);break}mn=mt(H,zs,Nn.value,mn),i&&_t&&zs.alternate===null&&r(H,_t),G=m(zs,G,Mt),Zt===null?je=zs:Zt.sibling=zs,Zt=zs,_t=Tt}if(Nn.done)return o(H,_t),kt&&ct(H,Mt),je;if(_t===null){for(;!Nn.done;Mt++,Nn=J.next())_t=ce(H,Nn.value,he),_t!==null&&(mn=mt(H,_t,Nn.value,mn),G=m(_t,G,Mt),Zt===null?je=_t:Zt.sibling=_t,Zt=_t);return kt&&ct(H,Mt),je}for(_t=u(_t);!Nn.done;Mt++,Nn=J.next())Tt=at(_t,H,Mt,Nn.value,he),Tt!==null&&(mn=mt(H,Tt,Nn.value,mn),i&&Tt.alternate!==null&&_t.delete(Tt.key===null?Mt:Tt.key),G=m(Tt,G,Mt),Zt===null?je=Tt:Zt.sibling=Tt,Zt=Tt);return i&&_t.forEach(function(XR){return r(H,XR)}),kt&&ct(H,Mt),je}function zr(H,G,J,he){if(typeof J=="object"&&J!==null&&J.type===ll&&J.key===null&&(yh(J,null,H),J=J.props.children),typeof J=="object"&&J!==null){switch(J.$$typeof){case xs:var je=ii(J._debugInfo);e:{for(var Zt=J.key;G!==null;){if(G.key===Zt){if(Zt=J.type,Zt===ll){if(G.tag===7){o(H,G.sibling),he=p(G,J.props.children),he.return=H,he._debugOwner=J._owner,he._debugInfo=Rt,yh(J,he,H),H=he;break e}}else if(G.elementType===Zt||yb(G,J)||typeof Zt=="object"&&Zt!==null&&Zt.$$typeof===Qi&&na(Zt)===G.type){o(H,G.sibling),he=p(G,J.props),Rc(he,J),he.return=H,he._debugOwner=J._owner,he._debugInfo=Rt,H=he;break e}o(H,G);break}else r(H,G);G=G.sibling}J.type===ll?(he=io(J.props.children,H.mode,he,J.key),he.return=H,he._debugOwner=H,he._debugTask=H._debugTask,he._debugInfo=Rt,yh(J,he,H),H=he):(he=ed(J,H.mode,he),Rc(he,J),he.return=H,he._debugInfo=Rt,H=he)}return H=S(H),Rt=je,H;case ro:e:{for(je=J,J=je.key;G!==null;){if(G.key===J)if(G.tag===4&&G.stateNode.containerInfo===je.containerInfo&&G.stateNode.implementation===je.implementation){o(H,G.sibling),he=p(G,je.children||[]),he.return=H,H=he;break e}else{o(H,G);break}else r(H,G);G=G.sibling}he=Vm(je,H.mode,he),he.return=H,H=he}return S(H);case Qi:return je=ii(J._debugInfo),J=na(J),H=zr(H,G,J,he),Rt=je,H}if(ai(J))return je=ii(J._debugInfo),H=sn(H,G,J,he),Rt=je,H;if(A(J)){if(je=ii(J._debugInfo),Zt=A(J),typeof Zt!="function")throw Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.");var _t=Zt.call(J);return _t===J?(H.tag!==0||Object.prototype.toString.call(H.type)!=="[object GeneratorFunction]"||Object.prototype.toString.call(_t)!=="[object Generator]")&&(Dx=!0):J.entries!==Zt||Mg||(Mg=!0),H=Ol(H,G,_t,he),Rt=je,H}if(typeof J.then=="function")return je=ii(J._debugInfo),H=zr(H,G,_h(J),he),Rt=je,H;if(J.$$typeof===Ss)return zr(H,G,Yt(H,J),he);bh(H,J)}return typeof J=="string"&&J!==""||typeof J=="number"||typeof J=="bigint"?(je=""+J,G!==null&&G.tag===6?(o(H,G.sibling),he=p(G,je),he.return=H,H=he):(o(H,G),he=km(je,H.mode,he),he.return=H,he._debugOwner=H,he._debugTask=H._debugTask,he._debugInfo=Rt,H=he),S(H)):(typeof J=="function"&&xh(H,J),typeof J=="symbol"&&Sh(H,J),o(H,G))}return function(H,G,J,he){var je=Rt;Rt=null;try{lu=0;var Zt=zr(H,G,J,he);return Sl=null,Zt}catch(mn){if(mn===xl||mn===Sd)throw mn;var _t=f(29,mn,null,H.mode);_t.lanes=he,_t.return=H;var Mt=_t._debugInfo=Rt;if(_t._debugOwner=H._debugOwner,_t._debugTask=H._debugTask,Mt!=null){for(var Tt=Mt.length-1;0<=Tt;Tt--)if(typeof Mt[Tt].stack=="string"){_t._debugOwner=Mt[Tt],_t._debugTask=Mt[Tt].debugTask;break}}return _t}finally{Rt=je}}}function Ey(i,r){var o=ai(i);return i=!o&&typeof A(i)=="function",o||i?(o=o?"array":"iterable",!1):!0}function Mh(){for(var i=Ml,r=wg=Ml=0;rHR)throw wo=xu=0,Su=qg=null,Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");wo>GR&&(wo=0,Su=null),i.alternate===null&&i.flags&4098&&vb(i);for(var r=i,o=r.return;o!==null;)r.alternate===null&&r.flags&4098&&vb(i),r=o,o=r.return;return r.tag===3?r.stateNode:null}function Ap(i){i.updateQueue={baseState:i.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Cp(i,r){i=i.updateQueue,r.updateQueue===i&&(r.updateQueue={baseState:i.baseState,firstBaseUpdate:i.firstBaseUpdate,lastBaseUpdate:i.lastBaseUpdate,shared:i.shared,callbacks:null})}function ia(i){return{lane:i,tag:zx,payload:null,callback:null,next:null}}function ra(i,r,o){var u=i.updateQueue;if(u===null)return null;if(u=u.shared,Eg===u&&!Hx){var p=k(i);Hx=!0}return(Vt&ei)!==Qn?(p=u.pending,p===null?r.next=r:(r.next=p.next,p.next=r),u.pending=r,r=Th(i),Ay(i,null,o),r):(wh(i,u,r,o),Th(i))}function Pc(i,r,o){if(r=r.updateQueue,r!==null&&(r=r.shared,(o&4194048)!==0)){var u=r.lanes;u&=i.pendingLanes,o|=u,r.lanes=o,pt(i,o)}}function Eh(i,r){var o=i.updateQueue,u=i.alternate;if(u!==null&&(u=u.updateQueue,o===u)){var p=null,m=null;if(o=o.firstBaseUpdate,o!==null){do{var S={lane:o.lane,tag:o.tag,payload:o.payload,callback:null,next:null};m===null?p=m=S:m=m.next=S,o=o.next}while(o!==null);m===null?p=m=r:m=m.next=r}else p=m=r;o={baseState:u.baseState,firstBaseUpdate:p,lastBaseUpdate:m,shared:u.shared,callbacks:u.callbacks},i.updateQueue=o;return}i=o.lastBaseUpdate,i===null?o.firstBaseUpdate=r:i.next=r,o.lastBaseUpdate=r}function Ic(){if(Ag){var i=bl;if(i!==null)throw i}}function Lc(i,r,o,u){Ag=!1;var p=i.updateQueue;ba=!1,Eg=p.shared;var m=p.firstBaseUpdate,S=p.lastBaseUpdate,E=p.shared.pending;if(E!==null){p.shared.pending=null;var B=E,Y=B.next;B.next=null,S===null?m=Y:S.next=Y,S=B;var se=i.alternate;se!==null&&(se=se.updateQueue,E=se.lastBaseUpdate,E!==S&&(E===null?se.firstBaseUpdate=Y:E.next=Y,se.lastBaseUpdate=B))}if(m!==null){var ce=p.baseState;S=0,se=Y=B=null,E=m;do{var fe=E.lane&-536870913,at=fe!==E.lane;if(at?(Pt&fe)===fe:(u&fe)===fe){fe!==0&&fe===po&&(Ag=!0),se!==null&&(se=se.next={lane:0,tag:E.tag,payload:E.payload,callback:null,next:null});e:{fe=i;var mt=E,sn=r,Ol=o;switch(mt.tag){case kx:if(mt=mt.payload,typeof mt=="function"){vl=!0;var zr=mt.call(Ol,ce,sn);if(fe.mode&8){Le(!0);try{mt.call(Ol,ce,sn)}finally{Le(!1)}}vl=!1,ce=zr;break e}ce=mt;break e;case Tg:fe.flags=fe.flags&-65537|128;case zx:if(zr=mt.payload,typeof zr=="function"){if(vl=!0,mt=zr.call(Ol,ce,sn),fe.mode&8){Le(!0);try{zr.call(Ol,ce,sn)}finally{Le(!1)}}vl=!1}else mt=zr;if(mt==null)break e;ce=si({},ce,mt);break e;case Vx:ba=!0}}fe=E.callback,fe!==null&&(i.flags|=64,at&&(i.flags|=8192),at=p.callbacks,at===null?p.callbacks=[fe]:at.push(fe))}else at={lane:fe,tag:E.tag,payload:E.payload,callback:E.callback,next:null},se===null?(Y=se=at,B=ce):se=se.next=at,S|=fe;if(E=E.next,E===null){if(E=p.shared.pending,E===null)break;at=E,E=at.next,at.next=null,p.lastBaseUpdate=at,p.shared.pending=null}}while(!0);se===null&&(B=ce),p.baseState=B,p.firstBaseUpdate=Y,p.lastBaseUpdate=se,m===null&&(p.shared.lanes=0),Ma|=S,i.lanes=S,i.memoizedState=ce}Eg=null}function Cy(i,r){if(typeof i!="function")throw Error("Invalid argument passed as callback. Expected a function. Instead received: "+i);i.call(r)}function cA(i,r){var o=i.shared.hiddenCallbacks;if(o!==null)for(i.shared.hiddenCallbacks=null,i=0;ip.length;)p+=" ";p+=m+` -`,o+=p}}}function Qo(i){i==null||ai(i)}function Ch(){var i=k(yt);Xx.has(i)||Xx.add(i)}function An(){throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: -1. You might have mismatching versions of React and the renderer (such as React DOM) -2. You might be breaking the Rules of Hooks -3. You might have more than one copy of React in the same app -See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`)}function Lp(i,r){if(du||r===null)return!1;i.length,r.length;for(var o=0;o=zR)throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");if(p+=1,du=!1,On=nn=null,i.updateQueue!=null){var m=i.updateQueue;m.lastEffect=null,m.events=null,m.stores=null,m.memoCache!=null&&(m.memoCache.index=0)}Os=-1,oe.H=Yx,m=bg(r,o,u)}while(Al);return m}function uA(){var i=oe.H,r=i.useState()[0];return r=typeof r.then=="function"?Nc(r):r,i=i.useState()[0],(nn!==null?nn.memoizedState:null)!==i&&(yt.flags|=1024),r}function Up(){var i=Ad!==0;return Ad=0,i}function Op(i,r,o){r.updateQueue=i.updateQueue,r.flags=(r.mode&16)!==ft?r.flags&-402655237:r.flags&-2053,i.lanes&=~o}function Fp(i){if(Ed){for(i=i.memoizedState;i!==null;){var r=i.queue;r!==null&&(r.pending=null),i=i.next}Ed=!1}Ds=0,yr=On=nn=yt=null,Os=-1,le=null,Al=!1,hu=Ad=0,Us=null}function Ei(){var i={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return On===null?yt.memoizedState=On=i:On=On.next=i,On}function Qt(){if(nn===null){var i=yt.alternate;i=i!==null?i.memoizedState:null}else i=nn.next;var r=On===null?yt.memoizedState:On.next;if(r!==null)On=r,nn=i;else{if(i===null)throw yt.alternate===null?Error("Update hook called on initial render. This is likely a bug in React. Please file an issue."):Error("Rendered more hooks than during the previous render.");nn=i,i={memoizedState:nn.memoizedState,baseState:nn.baseState,baseQueue:nn.baseQueue,queue:nn.queue,next:null},On===null?yt.memoizedState=On=i:On=On.next=i}return On}function Rh(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Nc(i){var r=hu;return hu+=1,Us===null&&(Us=vy()),i=_y(Us,i,r),r=yt,(On===null?r.memoizedState:On.next)===null&&(r=r.alternate,oe.H=r!==null&&r.memoizedState!==null?Pg:Rg),i}function oa(i){if(i!==null&&typeof i=="object"){if(typeof i.then=="function")return Nc(i);if(i.$$typeof===Ss)return Wt(i)}throw Error("An unsupported type was passed to use(): "+String(i))}function Za(i){var r=null,o=yt.updateQueue;if(o!==null&&(r=o.memoCache),r==null){var u=yt.alternate;u!==null&&(u=u.updateQueue,u!==null&&(u=u.memoCache,u!=null&&(r={data:u.data.map(function(p){return p.slice()}),index:0})))}if(r??={data:[],index:0},o===null&&(o=Rh(),yt.updateQueue=o),o.memoCache=r,o=r.data[r.index],o===void 0||du)for(o=r.data[r.index]=Array(i),u=0;um?m:8);var S=oe.T,E={};E._updatedFibers=new Set,oe.T=E,nm(i,!1,r,o);try{var B=p(),Y=oe.S;if(Y!==null&&Y(E,B),B!==null&&typeof B=="object"&&typeof B.then=="function"){oe.asyncTransitions++,B.then(Bh,Bh);var se=lA(B,u);Uc(i,r,se,Ki(i))}else Uc(i,r,u,Ki(i))}catch(ce){Uc(i,r,{then:function(){},status:"rejected",reason:ce},Ki(i))}finally{Jn(m),S!==null&&E.types!==null&&(S.types!==null&&(S.types,E.types),S.types=E.types),oe.T=S,S===null&&E._updatedFibers&&(i=E._updatedFibers.size,E._updatedFibers.clear(),10_u&&(r.flags|=128,p=!0,Fc(u,!1),r.lanes=4194304)}else{if(!p)if(i=Ah(m),i!==null){if(r.flags|=128,p=!0,i=i.updateQueue,r.updateQueue=i,Xh(r,i),Fc(u,!0),u.tail===null&&u.tailMode==="hidden"&&!m.alternate&&!kt)return on(r),null}else 2*Wn()-u.renderingStartTime>_u&&o!==536870912&&(r.flags|=128,p=!0,Fc(u,!1),r.lanes=4194304);u.isBackwards?(m.sibling=r.child,r.child=m):(i=u.last,i!==null?i.sibling=m:r.child=m,u.last=m)}return u.tail!==null?(i=u.tail,u.rendering=i,u.tail=i.sibling,u.renderingStartTime=Wn(),i.sibling=null,o=Ln.current,o=p?o&Tl|uu:o&Tl,X(Ln,o,r),kt&&ct(r,u.treeForkCount),i):(on(r),null);case 22:case 23:return Ji(r),Pp(r),u=r.memoizedState!==null,i!==null?i.memoizedState!==null!==u&&(r.flags|=8192):u&&(r.flags|=8192),u?o&536870912&&!(r.flags&128)&&(on(r),r.subtreeFlags&6&&(r.flags|=8192)):on(r),o=r.updateQueue,o!==null&&Xh(r,o.retryQueue),o=null,i!==null&&i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(o=i.memoizedState.cachePool.pool),u=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(u=r.memoizedState.cachePool.pool),u!==o&&(r.flags|=2048),i!==null&&q(mo,r),null;case 24:return o=null,i!==null&&(o=i.memoizedState.cache),r.memoizedState.cache!==o&&(r.flags|=2048),qt(wn,r),on(r),null;case 25:return null;case 30:return null}throw Error("Unknown unit of work tag ("+r.tag+"). This error is likely caused by a bug in React. Please file an issue.")}function bA(i,r){switch(de(r),r.tag){case 1:return i=r.flags,i&65536?(r.flags=i&-65537|128,(r.mode&2)!==ft&&Cc(r),r):null;case 3:return qt(wn,r),ot(r),i=r.flags,(i&65536)!==0&&(i&128)===0?(r.flags=i&-65537|128,r):null;case 26:case 27:case 5:return Mi(r),null;case 31:if(r.memoizedState!==null){if(Ji(r),r.alternate===null)throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");He()}return i=r.flags,i&65536?(r.flags=i&-65537|128,(r.mode&2)!==ft&&Cc(r),r):null;case 13:if(Ji(r),i=r.memoizedState,i!==null&&i.dehydrated!==null){if(r.alternate===null)throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");He()}return i=r.flags,i&65536?(r.flags=i&-65537|128,(r.mode&2)!==ft&&Cc(r),r):null;case 19:return q(Ln,r),null;case 4:return ot(r),null;case 10:return qt(r.type,r),null;case 22:case 23:return Ji(r),Pp(r),i!==null&&q(mo,r),i=r.flags,i&65536?(r.flags=i&-65537|128,(r.mode&2)!==ft&&Cc(r),r):null;case 24:return qt(wn,r),null;case 25:return null;default:return null}}function M_(i,r){switch(de(r),r.tag){case 3:qt(wn,r),ot(r);break;case 26:case 27:case 5:Mi(r);break;case 4:ot(r);break;case 31:r.memoizedState!==null&&Ji(r);break;case 13:Ji(r);break;case 19:q(Ln,r);break;case 10:qt(r.type,r);break;case 22:case 23:Ji(r),Pp(r),i!==null&&q(mo,r);break;case 24:qt(wn,r)}}function Qr(i){return(i.mode&2)!==ft}function w_(i,r){Qr(i)?(Jr(),Bc(r,i),$r()):Bc(r,i)}function bm(i,r,o){Qr(i)?(Jr(),il(o,i,r),$r()):il(o,i,r)}function Bc(i,r){try{var o=r.updateQueue,u=o!==null?o.lastEffect:null;if(u!==null){var p=u.next;o=p;do{if((o.tag&i)===i&&(u=void 0,(i&Ii)!==Td&&(Dl=!0),u=Je(r,UR,o),(i&Ii)!==Td&&(Dl=!1),u!==void 0&&typeof u!="function")){var m=void 0;m=(o.tag&nr)!==0?"useLayoutEffect":(o.tag&Ii)!==0?"useInsertionEffect":"useEffect";var S=void 0;S=u===null?" You returned null. If your effect does not require clean up, return undefined (or nothing).":typeof u.then=="function"?` - -It looks like you wrote `+m+`(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately: - -`+m+`(() => { - async function fetchData() { - // You can await here - const response = await MyAPI.getData(someId); - // ... - } - fetchData(); -}, [someId]); // Or [] if effect doesn't need props or state - -Learn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching`:" You returned: "+u,Je(r,function(E,B){},m,S)}o=o.next}while(o!==p)}}catch(E){Jt(r,r.return,E)}}function il(i,r,o){try{var u=r.updateQueue,p=u!==null?u.lastEffect:null;if(p!==null){var m=p.next;u=m;do{if((u.tag&i)===i){var S=u.inst,E=S.destroy;E!==void 0&&(S.destroy=void 0,(i&Ii)!==Td&&(Dl=!0),p=r,Je(p,OR,p,o,E),(i&Ii)!==Td&&(Dl=!1))}u=u.next}while(u!==m)}}catch(B){Jt(r,r.return,B)}}function T_(i,r){Qr(i)?(Jr(),Bc(r,i),$r()):Bc(r,i)}function xm(i,r,o){Qr(i)?(Jr(),il(o,i,r),$r()):il(o,i,r)}function E_(i){var r=i.updateQueue;if(r!==null){var o=i.stateNode;i.type.defaultProps||"ref"in i.memoizedProps||Cl||(o.props,i.memoizedProps,o.state,i.memoizedState);try{Je(i,Ry,r,o)}catch(u){Jt(i,i.return,u)}}}function xA(i,r,o){return i.getSnapshotBeforeUpdate(r,o)}function SA(i,r){var o=r.memoizedProps,u=r.memoizedState;r=i.stateNode,i.type.defaultProps||"ref"in i.memoizedProps||Cl||(r.props,i.memoizedProps,r.state,i.memoizedState);try{var p=Ka(i.type,o),m=Je(i,xA,r,p,u);o=hS,m!==void 0||o.has(i.type)||(o.add(i.type),Je(i,function(){})),r.__reactInternalSnapshotBeforeUpdate=m}catch(S){Jt(i,i.return,S)}}function A_(i,r,o){o.props=Ka(i.type,i.memoizedProps),o.state=i.memoizedState,Qr(i)?(Jr(),Je(i,Px,i,r,o),$r()):Je(i,Px,i,r,o)}function MA(i){var r=i.ref;if(r!==null){switch(i.tag){case 26:case 27:case 5:var o=cl(i.stateNode);break;case 30:o=i.stateNode;break;default:o=i.stateNode}if(typeof r=="function")if(Qr(i))try{Jr(),i.refCleanup=r(o)}finally{$r()}else i.refCleanup=r(o);else typeof r=="string"||r.hasOwnProperty("current"),r.current=o}}function zc(i,r){try{Je(i,MA,i)}catch(o){Jt(i,r,o)}}function es(i,r){var o=i.ref,u=i.refCleanup;if(o!==null)if(typeof u=="function")try{if(Qr(i))try{Jr(),Je(i,u)}finally{$r(i)}else Je(i,u)}catch(p){Jt(i,r,p)}finally{i.refCleanup=null,i=i.alternate,i!=null&&(i.refCleanup=null)}else if(typeof o=="function")try{if(Qr(i))try{Jr(),Je(i,o,null)}finally{$r(i)}else Je(i,o,null)}catch(p){Jt(i,r,p)}else o.current=null}function C_(i,r,o,u){var p=i.memoizedProps,m=p.id,S=p.onCommit;p=p.onRender,r=r===null?"mount":"update",vd&&(r="nested-update"),typeof p=="function"&&p(m,r,i.actualDuration,i.treeBaseDuration,i.actualStartTime,o),typeof S=="function"&&S(m,r,u,o)}function wA(i,r,o,u){var p=i.memoizedProps;i=p.id,p=p.onPostCommit,r=r===null?"mount":"update",vd&&(r="nested-update"),typeof p=="function"&&p(i,r,u,o)}function R_(i){var r=i.type,o=i.memoizedProps,u=i.stateNode;try{Je(i,wC,u,r,o,i)}catch(p){Jt(i,i.return,p)}}function Sm(i,r,o){try{Je(i,TC,i.stateNode,i.type,o,r,i)}catch(u){Jt(i,i.return,u)}}function P_(i){return i.tag===5||i.tag===3||(Lr?i.tag===26:!1)||(Gn?i.tag===27&&dl(i.type):!1)||i.tag===4}function Mm(i){e:for(;;){for(;i.sibling===null;){if(i.return===null||P_(i.return))return null;i=i.return}for(i.sibling.return=i.return,i=i.sibling;i.tag!==5&&i.tag!==6&&i.tag!==18;){if(Gn&&i.tag===27&&dl(i.type)||i.flags&2||i.child===null||i.tag===4)continue e;i.child.return=i,i=i.child}if(!(i.flags&2))return i.stateNode}}function wm(i,r,o){var u=i.tag;if(u===5||u===6)i=i.stateNode,r?AC(o,i,r):SC(o,i);else if(u!==4&&(Gn&&u===27&&dl(i.type)&&(o=i.stateNode,r=null),i=i.child,i!==null))for(wm(i,r,o),i=i.sibling;i!==null;)wm(i,r,o),i=i.sibling}function qh(i,r,o){var u=i.tag;if(u===5||u===6)i=i.stateNode,r?EC(o,i,r):xC(o,i);else if(u!==4&&(Gn&&u===27&&dl(i.type)&&(o=i.stateNode),i=i.child,i!==null))for(qh(i,r,o),i=i.sibling;i!==null;)qh(i,r,o),i=i.sibling}function TA(i){for(var r,o=i.return;o!==null;){if(P_(o)){r=o;break}o=o.return}if(pi){if(r==null)throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");switch(r.tag){case 27:if(Gn){r=r.stateNode,o=Mm(i),qh(i,o,r);break}case 5:o=r.stateNode,r.flags&32&&(Ub(o),r.flags&=-33),r=Mm(i),qh(i,r,o);break;case 3:case 4:r=r.stateNode.containerInfo,o=Mm(i),wm(i,o,r);break;default:throw Error("Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.")}}}function I_(i,r,o){i=i.containerInfo;try{Je(r,Bb,i,o)}catch(u){Jt(r,r.return,u)}}function L_(i){var r=i.stateNode,o=i.memoizedProps;try{Je(i,_R,i.type,o,r,i)}catch(u){Jt(i,i.return,u)}}function N_(i,r){return r.tag===31?(r=r.memoizedState,i.memoizedState!==null&&r===null):r.tag===13?(i=i.memoizedState,r=r.memoizedState,i!==null&&i.dehydrated!==null&&(r===null||r.dehydrated===null)):r.tag===3?i.memoizedState.isDehydrated&&(r.flags&256)===0:!1}function EA(i,r){for($A(i.containerInfo),Kn=r;Kn!==null;)if(i=Kn,r=i.child,(i.subtreeFlags&1028)!==0&&r!==null)r.return=i,Kn=r;else for(;Kn!==null;){r=i=Kn;var o=r.alternate,u=r.flags;switch(r.tag){case 0:if((u&4)!==0&&(r=r.updateQueue,r=r!==null?r.events:null,r!==null))for(o=0;o";case Ld:return":has("+(Pm(i)||"")+")";case Nd:return'[role="'+i.value+'"]';case Ud:return'"'+i.value+'"';case Dd:return'[data-testname="'+i.value+'"]';default:throw Error("Invalid selector type specified.")}}function Z_(i,r){var o=[];i=[i,0];for(var u=0;u{}).bind(console,"Suspended",m,p,"Components ⚛",void 0,"primary-light")));break;case So:m=gd,pn&&((u=u._debugTask)&&u.run((()=>{}).bind(console,"Action",m,p,"Components ⚛",void 0,"primary-light")));break;default:pn&&(u=p-gd,3>u)}}m=(o=!o&&(r&127)===0&&(r&i.expiredLanes)===0||Q(i,r))?PA(i,r):Nm(i,r,!0);var S=o;do{if(m===Bs){Ll&&!o&&la(i,r,0,!1),r=en,gd=Un(),_x=r;break}else{if(u=Wn(),p=i.current.alternate,S&&!RA(p)){Oe(r),p=vi,m=u,!pn||m<=p||Cn&&Cn.run((()=>{}).bind(console,"Teared Render",p,m,In,"Scheduler ⚛","error")),to(r,u),m=Nm(i,r,!1),S=!1;continue}if(m===bo){if(S=r,i.errorRecoveryDisabledLanes&S)var E=0;else E=i.pendingLanes&-536870913,E=E!==0?E:E&536870912?536870912:0;if(E!==0){Oe(r),I(vi,u,r,Cn),to(r,u),r=E;e:{u=i,m=S,S=yu;var B=mi&&u.current.memoizedState.isDehydrated;if(B&&(sl(u,E).flags|=256),E=Nm(u,E,!1),E!==bo){if(Bg&&!B){u.errorRecoveryDisabledLanes|=m,wa|=m,m=xa;break e}u=Ni,Ni=S,u!==null&&(Ni===null?Ni=u:Ni.push.apply(Ni,u))}m=E}if(S=!1,m!==bo)continue;u=Wn()}}if(m===mu){Oe(r),I(vi,u,r,Cn),to(r,u),sl(i,0),la(i,r,0,!0);break}e:{switch(o=i,m){case Bs:case mu:throw Error("Root did not complete. This is a bug in React.");case xa:if((r&4194048)!==r)break;case Bd:Oe(r),Gt(vi,u,r,Cn),to(r,u),p=r,(p&127)!==0?pd=u:p&4194048&&(md=u),la(o,r,Xi,!Sa);break e;case bo:Ni=null;break;case Fd:case fS:break;default:throw Error("Unknown root exit status.")}if(oe.actQueue!==null)Dm(o,p,r,Ni,bu,Vd,Xi,wa,Mo,m,null,null,vi,u);else{if((r&62914560)===r&&(S=Hd+gS-Wn(),10{}).bind(console,S,o,u,In,"Scheduler ⚛",m))}}to(Pt,vi)}if(o=Cn,Cn=null,(r&127)!==0){Cn=Jc,p=0<=ls&&lsp&&(o=p):o=p,0o&&(E=o):E=o,B!==null&&o>E){var fe=Y?"secondary-light":"warning";u&&u.run((()=>{}).bind(console,Y?"Consecutive":"Event: "+B,E,o,In,"Scheduler ⚛",fe))}p>o&&(E=se?"error":(r&738197653)===r?"tertiary-light":"primary-light",se=ce?"Promise Resolved":se?"Cascading Update":5m&&(o=m):o=m,0o&&(p=o):p=o,0p&&(ce=p):ce=p,p>ce&&E!==null&&(fe=B?"secondary-light":"warning",u&&u.run((()=>{}).bind(console,B?"Consecutive":"Event: "+E,ce,p,In,"Scheduler ⚛",fe))),o>p&&(u&&u.run((()=>{}).bind(console,"Action",p,o,In,"Scheduler ⚛","primary-dark"))),m>o&&(p=Y?"Promise Resolved":5{}).bind(console,o?"Commit Interrupted View Transition":"Commit",i,r,In,"Scheduler ⚛",o?"error":"secondary-dark")),kn=bS}}function ub(){if(kn===xS||kn===bS){if(kn===xS){var i=Rs;Rs=Un();var r=Rs,o=Br===Vg;!pn||r<=i,Br!==Vg&&(Br=vS)}kn=Ea,wR(),i=Aa;var u=Nl;r=Fr,o=SS;var p=u.actualDuration!==0||(u.subtreeFlags&10256)!==0||(u.flags&10256)!==0;p?kn=Wd:(kn=Ea,Nl=Aa=null,hb(i,i.pendingLanes),wo=0,Su=null);var m=i.pendingLanes;if(m===0&&(Ta=null),p||gb(i),m=st(r),u=u.stateNode,gi&&typeof gi.onCommitFiberRoot=="function")try{var S=(u.current.flags&128)===128;switch(m){case 2:var E=ig;break;case 8:E=nx;break;case 32:E=Yc;break;case 268435456:E=ix;break;default:E=Yc}gi.onCommitFiberRoot(fl,u,E,S)}catch{rs||(rs=!0)}if(ss&&i.memoizedUpdaters.clear(),CA(),o!==null){S=oe.T,E=ws(),Jn(2),oe.T=null;try{var B=i.onRecoverableError;for(u=0;uo?32:o;o=oe.T;var p=ws();try{Jn(u),oe.T=null;var m=Xg;Xg=null,u=Aa;var S=Fr;if(kn=Ea,Nl=Aa=null,Fr=0,(Vt&(ei|_r))!==Qn)throw Error("Cannot flush passive effects while already rendering.");Oe(S),Yg=!0,Xd=!1;var E=0;if(Ps=null,E=Wn(),Br===vS){var B=Rs,Y=E;!pn||Y<=B||yx&&yx.run((()=>{}).bind(console,"Animating",B,Y,In,"Scheduler ⚛","secondary-dark"))}else{B=Rs,Y=E;var se=Br===Hg;!pn||Y<=B||Cn&&Cn.run((()=>{}).bind(console,se?"Waiting for Paint":"Waiting",B,Y,In,"Scheduler ⚛","secondary-light"))}B=Vt,Vt|=_r;var ce=u.current;Ar(),q_(ce);var fe=u.current;ce=Wg,Ar(),H_(u,fe,S,m,ce),gb(u),Vt=B;var at=Wn();if(fe=E,ce=Cn,Ps!==null?re(fe,at,Ps,!0,ce):!pn||at<=fe||ce&&ce.run((()=>{}).bind(console,"Remaining Effects",fe,at,In,"Scheduler ⚛","secondary-dark")),to(S,at),Ko(0,!1),Xd?u===Su?wo++:(wo=0,Su=u):wo=0,Xd=Yg=!1,gi&&typeof gi.onPostCommitFiberRoot=="function")try{gi.onPostCommitFiberRoot(fl,u)}catch{rs||(rs=!0)}var mt=u.current.stateNode;return mt.effectDuration=0,mt.passiveEffectDuration=0,!0}finally{Jn(p),oe.T=o,hb(i,r)}}function fb(i,r,o){r=$e(o,r),cy(r),r=sm(i.stateNode,r,2),i=ra(i,r,2),i!==null&&(be(i,2),Kr(i))}function Jt(i,r,o){if(Dl=!1,i.tag===3)fb(i,i,o);else for(;r!==null;){if(r.tag===3){fb(r,i,o);return}if(r.tag===1){var u=r.stateNode;if(typeof r.type.getDerivedStateFromError=="function"||typeof u.componentDidCatch=="function"&&(Ta===null||!Ta.has(u))){i=$e(o,i),cy(i),o=am(2),u=ra(r,o,2),u!==null&&(om(o,u,r,i),be(u,2),Kr(u));return}}r=r.return}}function Um(i,r,o){var u=i.pingCache;if(u===null){u=i.pingCache=new VR;var p=new Set;u.set(r,p)}else p=u.get(r),p===void 0&&(p=new Set,u.set(r,p));p.has(o)||(Bg=!0,p.add(o),u=DA.bind(null,i,r,o),ss&&Hc(i,o),r.then(u,u))}function DA(i,r,o){var u=i.pingCache;u!==null&&u.delete(r),i.pingedLanes|=i.suspendedLanes&o,i.warmLanes&=~o,(o&127)!==0?0>ls&&(co=ls=Un(),Jc=fd("Promise Resolved"),va=2):o&4194048&&0>mr&&(Is=mr=Un(),Qc=fd("Promise Resolved"),pg=2),$_()&&oe.actQueue,rn===i&&(Pt&o)===o&&(bn===xa||bn===Fd&&(Pt&62914560)===Pt&&Wn()-Hd",E=" Did you accidentally export a JSX literal instead of a component?"):o=typeof i,S=u?typeof u.tag=="number"?k(u):typeof u.name=="string"?u.name:null:null,S&&(E+=` - -Check the render method of \``+S+"`."),S=29,o=Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: "+(o+"."+E)),E=null}return r=f(S,o,r,p),r.elementType=i,r.type=E,r.lanes=m,r._debugOwner=u,r}function ed(i,r,o){return r=zm(i.type,i.key,i.props,i._owner,r,o),r._debugOwner=i._owner,r._debugStack=i._debugStack,r._debugTask=i._debugTask,r}function io(i,r,o,u){return i=f(7,i,u,r),i.lanes=o,i}function km(i,r,o){return i=f(6,i,null,r),i.lanes=o,i}function Sb(i){var r=f(18,null,null,ft);return r.stateNode=i,r}function Vm(i,r,o){return r=f(4,i.children!==null?i.children:[],i.key,r),r.lanes=o,r.stateNode={containerInfo:i.containerInfo,pendingChildren:null,implementation:i.implementation},r}function kA(i,r,o,u,p,m,S,E,B){for(this.tag=1,this.containerInfo=i,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=so,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=ge(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ge(0),this.hiddenUpdates=ge(null),this.identifierPrefix=u,this.onUncaughtError=p,this.onCaughtError=m,this.onRecoverableError=S,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=B,this.incompleteTransitions=new Map,this.passiveEffectDuration=this.effectDuration=-0,this.memoizedUpdaters=new Set,i=this.pendingUpdatersLaneMap=[],r=0;31>r;r++)i.push(new Set);this._debugRootType=o?"hydrateRoot()":"createRoot()"}function Mb(i,r,o,u,p,m,S,E,B,Y,se,ce){return i=new kA(i,r,o,S,B,Y,se,ce,E),r=1,m===!0&&(r|=24),m=f(3,null,null,r|2),i.current=m,m.stateNode=i,r=ki(),ui(r),i.pooledCache=r,ui(r),m.memoizedState={element:u,isDehydrated:o,cache:r},Ap(m),i}function wb(i){return""+i}function Tb(i){return i?(i=ca,i):ca}function Eb(i,r,o,u){return Ab(r.current,2,i,r,o,u),2}function Ab(i,r,o,u,p,m){if(gi&&typeof gi.onScheduleFiberRoot=="function")try{gi.onScheduleFiberRoot(fl,u,o)}catch{rs||(rs=!0)}p=Tb(p),u.context===null?u.context=p:u.pendingContext=p,as&&pa!==null&&!CS&&(CS=!0),u=ia(r),u.payload={element:o},m=m===void 0?null:m,m!==null&&(u.callback=m),o=ra(i,u,r),o!==null&&(zt(r,"root.render()",null),Mn(o,i,r),Pc(o,i,r))}function Cb(i,r){if(i=i.memoizedState,i!==null&&i.dehydrated!==null){var o=i.retryLane;i.retryLane=o!==0&&o\n\t]|^\s|\s$/,pa=null,as=!1,oi=null,yn=null,kt=!1,os=!1,er=null,ma=null,pr=!1,cg=Error("Hydration Mismatch Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."),ft=0,ud=F(null),ug=F(null),hg=F(null),hd={},dd=null,gl=null,vl=!1,IR=typeof AbortController<"u"?AbortController:function(){var i=[],r=this.signal={aborted:!1,addEventListener:function(o,u){i.push(u)}};this.abort=function(){r.aborted=!0,i.forEach(function(o){return o()})}},LR=Hi.unstable_scheduleCallback,NR=Hi.unstable_NormalPriority,wn={$$typeof:Ss,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0,_currentRenderer:null,_currentRenderer2:null},Un=Hi.unstable_now,fd=console.createTask?console.createTask:function(){return null},vi=-0,ga=-0,Rs=-0,Ps=null,Pi=-1.1,lo=-0,_n=-0,lt=-1.1,dt=-1.1,vn=null,Tn=!1,co=-0,ls=-1.1,Jc=null,va=0,dg=null,fg=null,uo=-1.1,Kc=null,yl=-1.1,pd=-1.1,Is=-0,Ls=-1.1,mr=-1.1,pg=0,Qc=null,gx=null,vx=null,ya=-1.1,ho=null,_a=-1.1,md=-1.1,yx=null,_x=0,gd=-1.1,vd=!1,yd=!1,_d=null,_l=null,mg=!1,gg=!1,bd=!1,vg=!1,fo=0,yg={},eu=null,_g=0,po=0,bl=null,bx=oe.S;oe.S=function(i,r){if(mS=Wn(),typeof r=="object"&&r!==null&&typeof r.then=="function"){if(0>Ls&&0>mr){Ls=Un();var o=Xc(),u=Wc();(o!==_a||u!==ho)&&(_a=-1.1),ya=o,ho=u}oA(i,r)}bx!==null&&bx(i,r)};var mo=F(null),Nr={recordUnsafeLifecycleWarnings:function(){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}},tu=[],nu=[],iu=[],ru=[],su=[],au=[],go=new Set;Nr.recordUnsafeLifecycleWarnings=function(i,r){go.has(i.type)||(typeof r.componentWillMount=="function"&&r.componentWillMount.__suppressDeprecationWarning!==!0&&tu.push(i),i.mode&8&&typeof r.UNSAFE_componentWillMount=="function"&&nu.push(i),typeof r.componentWillReceiveProps=="function"&&r.componentWillReceiveProps.__suppressDeprecationWarning!==!0&&iu.push(i),i.mode&8&&typeof r.UNSAFE_componentWillReceiveProps=="function"&&ru.push(i),typeof r.componentWillUpdate=="function"&&r.componentWillUpdate.__suppressDeprecationWarning!==!0&&su.push(i),i.mode&8&&typeof r.UNSAFE_componentWillUpdate=="function"&&au.push(i))},Nr.flushPendingUnsafeLifecycleWarnings=function(){var i=new Set;0.");var S="";o!=null&&i!==o&&(u=null,typeof o.tag=="number"?u=k(o):typeof o.name=="string"&&(u=o.name),u&&(S=" It was passed a child from "+u+".")),Je(r,function(){})}}};var yo=Ty(!0),Bx=Ty(!1),cu=1,Ns=2,gr=[],Ml=0,wg=0,zx=0,kx=1,Vx=2,Tg=3,ba=!1,Hx=!1,Eg=null,Ag=!1,wl=F(null),wd=F(0),tr=F(null),Dr=null,Tl=1,uu=2,Ln=F(0),Td=0,vr=1,Ii=2,nr=4,Li=8,El,Gx=new Set,Wx=new Set,Cg=new Set,Xx=new Set,Ds=0,yt=null,nn=null,On=null,Ed=!1,Al=!1,_o=!1,Ad=0,hu=0,Us=null,BR=0,zR=25,le=null,yr=null,Os=-1,du=!1,fu={readContext:Wt,use:oa,useCallback:An,useContext:An,useEffect:An,useImperativeHandle:An,useLayoutEffect:An,useInsertionEffect:An,useMemo:An,useReducer:An,useRef:An,useState:An,useDebugValue:An,useDeferredValue:An,useTransition:An,useSyncExternalStore:An,useId:An,useHostTransitionStatus:An,useFormState:An,useActionState:An,useOptimistic:An,useMemoCache:An,useCacheRefresh:An};fu.useEffectEvent=An;var Rg=null,qx=null,Pg=null,Yx=null,cs=null,Ur=null,Cd=null;Rg={readContext:function(i){return Wt(i)},use:oa,useCallback:function(i,r){return le="useCallback",Ot(),Qo(r),Zp(i,r)},useContext:function(i){return le="useContext",Ot(),Wt(i)},useEffect:function(i,r){return le="useEffect",Ot(),Qo(r),Nh(i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Ot(),Qo(o),jp(i,r,o)},useInsertionEffect:function(i,r){le="useInsertionEffect",Ot(),Qo(r),$a(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Ot(),Qo(r),Yp(i,r)},useMemo:function(i,r){le="useMemo",Ot(),Qo(r);var o=oe.H;oe.H=cs;try{return $p(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Ot();var u=oe.H;oe.H=cs;try{return Bp(i,r,o)}finally{oe.H=u}},useRef:function(i){return le="useRef",Ot(),Xp(i)},useState:function(i){le="useState",Ot();var r=oe.H;oe.H=cs;try{return Hp(i)}finally{oe.H=r}},useDebugValue:function(){le="useDebugValue",Ot()},useDeferredValue:function(i,r){return le="useDeferredValue",Ot(),Jp(i,r)},useTransition:function(){return le="useTransition",Ot(),Qp()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Ot(),kp(i,r,o)},useId:function(){return le="useId",Ot(),em()},useFormState:function(i,r){return le="useFormState",Ot(),Ch(),tl(i,r)},useActionState:function(i,r){return le="useActionState",Ot(),tl(i,r)},useOptimistic:function(i){return le="useOptimistic",Ot(),Gp(i)},useHostTransitionStatus:Ja,useMemoCache:Za,useCacheRefresh:function(){return le="useCacheRefresh",Ot(),tm()},useEffectEvent:function(i){return le="useEffectEvent",Ot(),qp(i)}},qx={readContext:function(i){return Wt(i)},use:oa,useCallback:function(i,r){return le="useCallback",Me(),Zp(i,r)},useContext:function(i){return le="useContext",Me(),Wt(i)},useEffect:function(i,r){return le="useEffect",Me(),Nh(i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Me(),jp(i,r,o)},useInsertionEffect:function(i,r){le="useInsertionEffect",Me(),$a(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Me(),Yp(i,r)},useMemo:function(i,r){le="useMemo",Me();var o=oe.H;oe.H=cs;try{return $p(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Me();var u=oe.H;oe.H=cs;try{return Bp(i,r,o)}finally{oe.H=u}},useRef:function(i){return le="useRef",Me(),Xp(i)},useState:function(i){le="useState",Me();var r=oe.H;oe.H=cs;try{return Hp(i)}finally{oe.H=r}},useDebugValue:function(){le="useDebugValue",Me()},useDeferredValue:function(i,r){return le="useDeferredValue",Me(),Jp(i,r)},useTransition:function(){return le="useTransition",Me(),Qp()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Me(),kp(i,r,o)},useId:function(){return le="useId",Me(),em()},useActionState:function(i,r){return le="useActionState",Me(),tl(i,r)},useFormState:function(i,r){return le="useFormState",Me(),Ch(),tl(i,r)},useOptimistic:function(i){return le="useOptimistic",Me(),Gp(i)},useHostTransitionStatus:Ja,useMemoCache:Za,useCacheRefresh:function(){return le="useCacheRefresh",Me(),tm()},useEffectEvent:function(i){return le="useEffectEvent",Me(),qp(i)}},Pg={readContext:function(i){return Wt(i)},use:oa,useCallback:function(i,r){return le="useCallback",Me(),Oh(i,r)},useContext:function(i){return le="useContext",Me(),Wt(i)},useEffect:function(i,r){le="useEffect",Me(),Vi(2048,Li,i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Me(),Uh(i,r,o)},useInsertionEffect:function(i,r){return le="useInsertionEffect",Me(),Vi(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Me(),Vi(4,nr,i,r)},useMemo:function(i,r){le="useMemo",Me();var o=oe.H;oe.H=Ur;try{return Fh(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Me();var u=oe.H;oe.H=Ur;try{return el(i,r,o)}finally{oe.H=u}},useRef:function(){return le="useRef",Me(),Qt().memoizedState},useState:function(){le="useState",Me();var i=oe.H;oe.H=Ur;try{return el(Cr)}finally{oe.H=i}},useDebugValue:function(){le="useDebugValue",Me()},useDeferredValue:function(i,r){return le="useDeferredValue",Me(),jy(i,r)},useTransition:function(){return le="useTransition",Me(),Qy()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Me(),Ph(i,r,o)},useId:function(){return le="useId",Me(),Qt().memoizedState},useFormState:function(i){return le="useFormState",Me(),Ch(),Ih(i)},useActionState:function(i){return le="useActionState",Me(),Ih(i)},useOptimistic:function(i,r){return le="useOptimistic",Me(),By(i,r)},useHostTransitionStatus:Ja,useMemoCache:Za,useCacheRefresh:function(){return le="useCacheRefresh",Me(),Qt().memoizedState},useEffectEvent:function(i){return le="useEffectEvent",Me(),Dh(i)}},Yx={readContext:function(i){return Wt(i)},use:oa,useCallback:function(i,r){return le="useCallback",Me(),Oh(i,r)},useContext:function(i){return le="useContext",Me(),Wt(i)},useEffect:function(i,r){le="useEffect",Me(),Vi(2048,Li,i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Me(),Uh(i,r,o)},useInsertionEffect:function(i,r){return le="useInsertionEffect",Me(),Vi(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Me(),Vi(4,nr,i,r)},useMemo:function(i,r){le="useMemo",Me();var o=oe.H;oe.H=Cd;try{return Fh(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Me();var u=oe.H;oe.H=Cd;try{return Dc(i,r,o)}finally{oe.H=u}},useRef:function(){return le="useRef",Me(),Qt().memoizedState},useState:function(){le="useState",Me();var i=oe.H;oe.H=Cd;try{return Dc(Cr)}finally{oe.H=i}},useDebugValue:function(){le="useDebugValue",Me()},useDeferredValue:function(i,r){return le="useDeferredValue",Me(),Zy(i,r)},useTransition:function(){return le="useTransition",Me(),e_()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Me(),Ph(i,r,o)},useId:function(){return le="useId",Me(),Qt().memoizedState},useFormState:function(i){return le="useFormState",Me(),Ch(),Lh(i)},useActionState:function(i){return le="useActionState",Me(),Lh(i)},useOptimistic:function(i,r){return le="useOptimistic",Me(),ky(i,r)},useHostTransitionStatus:Ja,useMemoCache:Za,useCacheRefresh:function(){return le="useCacheRefresh",Me(),Qt().memoizedState},useEffectEvent:function(i){return le="useEffectEvent",Me(),Dh(i)}},cs={readContext:function(i){return Wt(i)},use:function(i){return oa(i)},useCallback:function(i,r){return le="useCallback",Ot(),Zp(i,r)},useContext:function(i){return le="useContext",Ot(),Wt(i)},useEffect:function(i,r){return le="useEffect",Ot(),Nh(i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Ot(),jp(i,r,o)},useInsertionEffect:function(i,r){le="useInsertionEffect",Ot(),$a(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Ot(),Yp(i,r)},useMemo:function(i,r){le="useMemo",Ot();var o=oe.H;oe.H=cs;try{return $p(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Ot();var u=oe.H;oe.H=cs;try{return Bp(i,r,o)}finally{oe.H=u}},useRef:function(i){return le="useRef",Ot(),Xp(i)},useState:function(i){le="useState",Ot();var r=oe.H;oe.H=cs;try{return Hp(i)}finally{oe.H=r}},useDebugValue:function(){le="useDebugValue",Ot()},useDeferredValue:function(i,r){return le="useDeferredValue",Ot(),Jp(i,r)},useTransition:function(){return le="useTransition",Ot(),Qp()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Ot(),kp(i,r,o)},useId:function(){return le="useId",Ot(),em()},useFormState:function(i,r){return le="useFormState",Ot(),tl(i,r)},useActionState:function(i,r){return le="useActionState",Ot(),tl(i,r)},useOptimistic:function(i){return le="useOptimistic",Ot(),Gp(i)},useMemoCache:function(i){return Za(i)},useHostTransitionStatus:Ja,useCacheRefresh:function(){return le="useCacheRefresh",Ot(),tm()},useEffectEvent:function(i){return le="useEffectEvent",Ot(),qp(i)}},Ur={readContext:function(i){return Wt(i)},use:function(i){return oa(i)},useCallback:function(i,r){return le="useCallback",Me(),Oh(i,r)},useContext:function(i){return le="useContext",Me(),Wt(i)},useEffect:function(i,r){le="useEffect",Me(),Vi(2048,Li,i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Me(),Uh(i,r,o)},useInsertionEffect:function(i,r){return le="useInsertionEffect",Me(),Vi(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Me(),Vi(4,nr,i,r)},useMemo:function(i,r){le="useMemo",Me();var o=oe.H;oe.H=Ur;try{return Fh(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Me();var u=oe.H;oe.H=Ur;try{return el(i,r,o)}finally{oe.H=u}},useRef:function(){return le="useRef",Me(),Qt().memoizedState},useState:function(){le="useState",Me();var i=oe.H;oe.H=Ur;try{return el(Cr)}finally{oe.H=i}},useDebugValue:function(){le="useDebugValue",Me()},useDeferredValue:function(i,r){return le="useDeferredValue",Me(),jy(i,r)},useTransition:function(){return le="useTransition",Me(),Qy()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Me(),Ph(i,r,o)},useId:function(){return le="useId",Me(),Qt().memoizedState},useFormState:function(i){return le="useFormState",Me(),Ih(i)},useActionState:function(i){return le="useActionState",Me(),Ih(i)},useOptimistic:function(i,r){return le="useOptimistic",Me(),By(i,r)},useMemoCache:function(i){return Za(i)},useHostTransitionStatus:Ja,useCacheRefresh:function(){return le="useCacheRefresh",Me(),Qt().memoizedState},useEffectEvent:function(i){return le="useEffectEvent",Me(),Dh(i)}},Cd={readContext:function(i){return Wt(i)},use:function(i){return oa(i)},useCallback:function(i,r){return le="useCallback",Me(),Oh(i,r)},useContext:function(i){return le="useContext",Me(),Wt(i)},useEffect:function(i,r){le="useEffect",Me(),Vi(2048,Li,i,r)},useImperativeHandle:function(i,r,o){return le="useImperativeHandle",Me(),Uh(i,r,o)},useInsertionEffect:function(i,r){return le="useInsertionEffect",Me(),Vi(4,Ii,i,r)},useLayoutEffect:function(i,r){return le="useLayoutEffect",Me(),Vi(4,nr,i,r)},useMemo:function(i,r){le="useMemo",Me();var o=oe.H;oe.H=Ur;try{return Fh(i,r)}finally{oe.H=o}},useReducer:function(i,r,o){le="useReducer",Me();var u=oe.H;oe.H=Ur;try{return Dc(i,r,o)}finally{oe.H=u}},useRef:function(){return le="useRef",Me(),Qt().memoizedState},useState:function(){le="useState",Me();var i=oe.H;oe.H=Ur;try{return Dc(Cr)}finally{oe.H=i}},useDebugValue:function(){le="useDebugValue",Me()},useDeferredValue:function(i,r){return le="useDeferredValue",Me(),Zy(i,r)},useTransition:function(){return le="useTransition",Me(),e_()},useSyncExternalStore:function(i,r,o){return le="useSyncExternalStore",Me(),Ph(i,r,o)},useId:function(){return le="useId",Me(),Qt().memoizedState},useFormState:function(i){return le="useFormState",Me(),Lh(i)},useActionState:function(i){return le="useActionState",Me(),Lh(i)},useOptimistic:function(i,r){return le="useOptimistic",Me(),ky(i,r)},useMemoCache:function(i){return Za(i)},useHostTransitionStatus:Ja,useCacheRefresh:function(){return le="useCacheRefresh",Me(),Qt().memoizedState},useEffectEvent:function(i){return le="useEffectEvent",Me(),Dh(i)}};var jx={},Zx=new Set,$x=new Set,Jx=new Set,Kx=new Set,Qx=new Set,eS=new Set,tS=new Set,nS=new Set,iS=new Set,rS=new Set;Object.freeze(jx);var Ig={enqueueSetState:function(i,r,o){i=i._reactInternals;var u=Ki(i),p=ia(u);p.payload=r,o!=null&&(im(o),p.callback=o),r=ra(i,p,u),r!==null&&(zt(u,"this.setState()",i),Mn(r,i,u),Pc(r,i,u))},enqueueReplaceState:function(i,r,o){i=i._reactInternals;var u=Ki(i),p=ia(u);p.tag=kx,p.payload=r,o!=null&&(im(o),p.callback=o),r=ra(i,p,u),r!==null&&(zt(u,"this.replaceState()",i),Mn(r,i,u),Pc(r,i,u))},enqueueForceUpdate:function(i,r){i=i._reactInternals;var o=Ki(i),u=ia(o);u.tag=Vx,r!=null&&(im(r),u.callback=r),r=ra(i,u,o),r!==null&&(zt(o,"this.forceUpdate()",i),Mn(r,i,o),Pc(r,i,o))}},Rd=null,Lg=null,Ng=Error("This is not a real error. It's an implementation detail of React's selective hydration feature. If this leaks into userspace, it's a bug in React. Please file an issue."),Fn=!1,sS={},aS={},oS={},lS={},Cl=!1,cS={},Pd={},Dg={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null},uS=!1,hS=null;hS=new Set;var Fs=!1,Bn=!1,Ug=!1,dS=typeof WeakSet=="function"?WeakSet:Set,Kn=null,Rl=null,Pl=null,zn=null,Gi=!1,Or=null,Xn=!1,Il=8192,kR={getCacheForType:function(i){var r=Wt(wn),o=r.data.get(i);return o===void 0&&(o=i(),r.data.set(i,o)),o},cacheSignal:function(){return Wt(wn).controller.signal},getOwner:function(){return pa}},Id=0,Ld=1,Nd=2,Dd=3,Ud=4;if(typeof Symbol=="function"&&Symbol.for){var pu=Symbol.for;Id=pu("selector.component"),Ld=pu("selector.has_pseudo_class"),Nd=pu("selector.role"),Dd=pu("selector.test_id"),Ud=pu("selector.text")}var Od=[],VR=typeof WeakMap=="function"?WeakMap:Map,Qn=0,ei=2,_r=4,Bs=0,mu=1,bo=2,Fd=3,xa=4,Bd=6,fS=5,Vt=Qn,rn=null,Nt=null,Pt=0,Wi=0,zd=1,xo=2,gu=3,pS=4,Og=5,vu=6,kd=7,Fg=8,So=9,en=Wi,ir=null,Sa=!1,Ll=!1,Bg=!1,us=0,bn=Bs,Ma=0,wa=0,zg=0,Xi=0,Mo=0,yu=null,Ni=null,Vd=!1,Hd=0,mS=0,gS=300,_u=1/0,kg=500,bu=null,Cn=null,Ta=null,Gd=0,Vg=1,Hg=2,vS=3,Ea=0,yS=1,_S=2,bS=3,xS=4,Wd=5,kn=0,Aa=null,Nl=null,Fr=0,Gg=0,Wg=-0,Xg=null,SS=null,MS=null,Br=Gd,wS=null,HR=50,xu=0,qg=null,Yg=!1,Xd=!1,GR=50,wo=0,Su=null,Dl=!1,qd=null,TS=!1,ES=new Set,WR={},br=null,Ul=null,AS=!1;try{Object.preventExtensions({})}catch{AS=!0}var CS=!1,RS={},PS=null,IS=null,LS=null,NS=null,DS=null,US=null,OS=null,FS=null,BS=null,zS=null;return PS=function(i,r,o,u){r=n(i,r),r!==null&&(o=s(r.memoizedState,o,0,u),r.memoizedState=o,r.baseState=o,i.memoizedProps=si({},i.memoizedProps),o=di(i,2),o!==null&&Mn(o,i,2))},IS=function(i,r,o){r=n(i,r),r!==null&&(o=c(r.memoizedState,o,0),r.memoizedState=o,r.baseState=o,i.memoizedProps=si({},i.memoizedProps),o=di(i,2),o!==null&&Mn(o,i,2))},LS=function(i,r,o,u){r=n(i,r),r!==null&&(o=a(r.memoizedState,o,u),r.memoizedState=o,r.baseState=o,i.memoizedProps=si({},i.memoizedProps),o=di(i,2),o!==null&&Mn(o,i,2))},NS=function(i,r,o){i.pendingProps=s(i.memoizedProps,r,0,o),i.alternate&&(i.alternate.pendingProps=i.pendingProps),r=di(i,2),r!==null&&Mn(r,i,2)},DS=function(i,r){i.pendingProps=c(i.memoizedProps,r,0),i.alternate&&(i.alternate.pendingProps=i.pendingProps),r=di(i,2),r!==null&&Mn(r,i,2)},US=function(i,r,o){i.pendingProps=a(i.memoizedProps,r,o),i.alternate&&(i.alternate.pendingProps=i.pendingProps),r=di(i,2),r!==null&&Mn(r,i,2)},OS=function(i){var r=di(i,2);r!==null&&Mn(r,i,2)},FS=function(i){var r=_e(),o=di(i,r);o!==null&&Mn(o,i,r)},BS=function(i){d=i},zS=function(i){h=i},Xt.attemptContinuousHydration=function(i){if(i.tag===13||i.tag===31){var r=di(i,67108864);r!==null&&Mn(r,i,67108864),Hm(i,67108864)}},Xt.attemptHydrationAtCurrentPriority=function(i){if(i.tag===13||i.tag===31){var r=Ki(i);r=Ce(r);var o=di(i,r);o!==null&&Mn(o,i,r),Hm(i,r)}},Xt.attemptSynchronousHydration=function(i){switch(i.tag){case 3:if(i=i.stateNode,i.current.memoizedState.isDehydrated){var r=ee(i.pendingLanes);if(r!==0){for(i.pendingLanes|=2,i.entangledLanes|=2;r;){var o=1<<31-Ci(r);i.entanglements[1]|=o,r&=~o}Kr(i),(Vt&(ei|_r))===Qn&&(_u=Wn()+kg,Ko(0,!1))}}break;case 31:case 13:r=di(i,2),r!==null&&Mn(r,i,2),$h(),Hm(i,2)}},Xt.batchedUpdates=function(i,r){return i(r)},Xt.createComponentSelector=function(i){return{$$typeof:Id,value:i}},Xt.createContainer=function(i,r,o,u,p,m,S,E,B,Y){return Mb(i,r,!1,null,o,u,m,null,S,E,B,Y)},Xt.createHasPseudoClassSelector=function(i){return{$$typeof:Ld,value:i}},Xt.createHydrationContainer=function(i,r,o,u,p,m,S,E,B,Y,se,ce,fe,at){var mt;return i=Mb(o,u,!0,i,p,m,E,at,B,Y,se,ce),i.context=Tb(null),o=i.current,u=Ki(o),u=Ce(u),p=ia(u),p.callback=(mt=r)!=null?mt:null,ra(o,p,u),zt(u,"hydrateRoot()",null),r=u,i.current.lanes=r,be(i,r),Kr(i),i},Xt.createPortal=function(i,r,o){var u=3 component.":"The above error occurred in one of your React components.",o="React will try to recreate this component tree from scratch using the error boundary you provided, "+((Lg||"Anonymous")+".");typeof i=="object"&&i!==null&&typeof i.environmentName=="string"&&dC("error",[`%o - -%s - -%s -`,i,r,o],i.environmentName)()},Xt.defaultOnRecoverableError=function(i){ax(i)},Xt.defaultOnUncaughtError=function(i){ax(i)},Xt.deferredUpdates=function(i){var r=oe.T,o=ws();try{return Jn(32),oe.T=null,i()}finally{Jn(o),oe.T=r}},Xt.discreteUpdates=function(i,r,o,u,p){var m=oe.T,S=ws();try{return Jn(2),oe.T=null,i(r,o,u,p)}finally{Jn(S),oe.T=m,Vt===Qn&&(_u=Wn()+kg)}},Xt.findAllNodes=Zh,Xt.findBoundingRects=function(i,r){if(!hl)throw Error("Test selector API is not supported by this renderer.");r=Zh(i,r),i=[];for(var o=0;o=Y&&m>=ce&&p<=se&&S<=fe){i.splice(r,1);break}else if(u!==Y||o.width!==B.width||feS){if(!(m!==ce||o.height!==B.height||sep)){Y>u&&(B.width+=Y-u,B.x=u),sem&&(B.height+=ce-m,B.y=m),feo&&(o=E)),E ")+` - -No matching component was found for: - `)+i.join(" > ")}return null},Xt.getPublicRootInstance=function(i){if(i=i.current,!i.child)return null;switch(i.child.tag){case 27:case 5:return cl(i.child.stateNode);default:return i.child.stateNode}},Xt.injectIntoDevTools=function(){var i={bundleType:1,version:qA,rendererPackageName:YA,currentDispatcherRef:oe,reconcilerVersion:"19.2.0"};return Pb!==null&&(i.rendererConfig=Pb),i.overrideHookState=PS,i.overrideHookStateDeletePath=IS,i.overrideHookStateRenamePath=LS,i.overrideProps=NS,i.overridePropsDeletePath=DS,i.overridePropsRenamePath=US,i.scheduleUpdate=OS,i.scheduleRetry=FS,i.setErrorHandler=BS,i.setSuspenseHandler=zS,i.scheduleRefresh=v,i.scheduleRoot=g,i.setRefreshHandler=y,i.getCurrentFiber=VA,ht(i)},Xt.isAlreadyRendering=Im,Xt.observeVisibleRects=function(i,r,o,u){function p(){var Y=Zh(i,r);m.forEach(function(se){0>Y.indexOf(se)&&B(se)}),Y.forEach(function(se){0>m.indexOf(se)&&E(se)})}if(!hl)throw Error("Test selector API is not supported by this renderer.");var m=Zh(i,r);o=bC(m,o,u);var S=o.disconnect,E=o.observe,B=o.unobserve;return Od.push(p),{disconnect:function(){var Y=Od.indexOf(p);0<=Y&&Od.splice(Y,1),S()}}},Xt.shouldError=function(i){return d(i)},Xt.shouldSuspend=function(i){return h(i)},Xt.startHostTransition=function(i,r,o,u){if(i.tag!==5)throw Error("Expected the form instance to be a HostComponent. This is a bug in React.");var p=Ky(i).queue;Sn(i),Jy(i,p,r,ul,o===null?w:function(){oe.T;var m=Ky(i);return m.next===null&&(m=i.alternate.memoizedState),Uc(i,m.next.queue,{},Ki(i)),o(u)})},Xt.updateContainer=function(i,r,o,u){var p=r.current,m=Ki(p);return Ab(p,m,i,r,o,u),m},Xt.updateContainerSync=Eb,Xt},e.exports.default=e.exports,Object.defineProperty(e.exports,"__esModule",{value:!0})})(o0)),o0.exports}var EM;function FD(){return EM||(EM=1,wM.exports=OD()),wM.exports}var BD=UD(FD());function zD(e){const t=BD(e);return t.injectIntoDevTools(),t}var eA=0,yc={},kD=/^three(?=[A-Z])/,vp=e=>`${e[0].toUpperCase()}${e.slice(1)}`,VD=0,HD=e=>typeof e=="function";function GD(e){if(HD(e)){const t=`${VD++}`;return yc[t]=e,t}else Object.assign(yc,e)}function tA(e,t){const n=vp(e),s=yc[n];if(e!=="primitive"&&!s)throw new Error(`R3F: ${n} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(e==="primitive"&&!t.object)throw new Error("R3F: Primitives without 'object' are invalid!");if(t.args!==void 0&&!Array.isArray(t.args))throw new Error("R3F: The args prop must be an array!")}function WD(e,t,n){var s;return e=vp(e)in yc?e:e.replace(kD,""),tA(e,t),e==="primitive"&&(s=t.object)!=null&&s.__r3f&&delete t.object.__r3f,Jf(t.object,n,e,t)}function XD(e){if(!e.isHidden){var t;e.props.attach&&(t=e.parent)!=null&&t.object?Qf(e.parent,e):Oi(e.object)&&(e.object.visible=!1),e.isHidden=!0,Tc(e)}}function nA(e){if(e.isHidden){var t;e.props.attach&&(t=e.parent)!=null&&t.object?Kf(e.parent,e):Oi(e.object)&&e.props.visible!==!1&&(e.object.visible=!0),e.isHidden=!1,Tc(e)}}function oy(e,t,n){const s=t.root.getState();if(!(!e.parent&&e.object!==s.scene)){if(!t.object){var a,l;const c=yc[vp(t.type)];t.object=(a=t.props.object)!=null?a:new c(...(l=t.props.args)!=null?l:[]),t.object.__r3f=t}if(Fa(t.object,t.props),t.props.attach)Kf(e,t);else if(Oi(t.object)&&Oi(e.object)){const c=e.object.children.indexOf(n?.object);if(n&&c!==-1){const h=e.object.children.indexOf(t.object);if(h!==-1){e.object.children.splice(h,1);const d=h{try{e.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT<"u"?t():(0,s0.unstable_scheduleCallback)(s0.unstable_IdlePriority,t)}}function l0(e,t,n){if(!t)return;t.parent=null;const s=e.children.indexOf(t);s!==-1&&e.children.splice(s,1),t.props.attach?Qf(e,t):Oi(t.object)&&Oi(e.object)&&(e.object.remove(t.object),ED(ay(t),t.object));const a=t.props.dispose!==null&&n!==!1;for(let l=t.children.length-1;l>=0;l--){const c=t.children[l];l0(t,c,a)}t.children.length=0,delete t.object.__r3f,a&&t.type!=="primitive"&&t.object.type!=="Scene"&&iA(t.object),n===void 0&&Tc(t)}function qD(e,t){for(const n of[e,e.alternate])if(n!==null)if(typeof n.ref=="function"){n.refCleanup==null||n.refCleanup();const s=n.ref(t);typeof s=="function"&&(n.refCleanup=s)}else n.ref&&(n.ref.current=t)}var qf=[];function YD(){for(const[n]of qf){const s=n.parent;if(s){n.props.attach?Qf(s,n):Oi(n.object)&&Oi(s.object)&&s.object.remove(n.object);for(const a of n.children)a.props.attach?Qf(n,a):Oi(a.object)&&Oi(n.object)&&n.object.remove(a.object)}n.isHidden&&nA(n),n.object.__r3f&&delete n.object.__r3f,n.type!=="primitive"&&iA(n.object)}for(const[n,s,a]of qf){n.props=s;const l=n.parent;if(l){var e,t;const c=yc[vp(n.type)],h=n.object;n.object=(e=n.props.object)!=null?e:new c(...(t=n.props.args)!=null?t:[]),n.object.__r3f=n,qD(a,n.object),TD(ay(n),h,n.object),Fa(n.object,n.props),n.props.attach?Kf(l,n):Oi(n.object)&&Oi(l.object)&&l.object.add(n.object);for(const d of n.children)d.props.attach?Kf(n,d):Oi(d.object)&&Oi(n.object)&&n.object.add(d.object);Tc(n)}}qf.length=0}var kv=()=>{},CM={},zf=eA,jD=0,ZD=4,c0=zD({isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:WD,removeChild:l0,appendChild:zv,appendInitialChild:zv,insertBefore:AM,appendChildToContainer(e,t){const n=e.getState().scene.__r3f;!t||!n||zv(n,t)},removeChildFromContainer(e,t){const n=e.getState().scene.__r3f;!t||!n||l0(n,t)},insertInContainerBefore(e,t,n){const s=e.getState().scene.__r3f;!t||!n||!s||AM(s,t,n)},getRootHostContext:()=>CM,getChildHostContext:()=>CM,commitUpdate(e,t,n,s,a){var l,c,h;tA(t,s);let d=!1;if((e.type==="primitive"&&n.object!==s.object||((l=s.args)==null?void 0:l.length)!==((c=n.args)==null?void 0:c.length)||(h=s.args)!=null&&h.some((f,g)=>{var v;return f!==((v=n.args)==null?void 0:v[g])}))&&(d=!0),d)qf.push([e,{...s},a]);else{const f=xD(e,s);Object.keys(f).length&&(Object.assign(e.props,f),Fa(e.object,f))}(a.sibling===null||(a.flags&ZD)===jD)&&YD()},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:e=>e?.object,prepareForCommit:()=>null,preparePortalMount:e=>Jf(e.getState().scene,e,"",{}),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:XD,unhideInstance:nA,createTextInstance:kv,hideTextInstance:kv,unhideTextInstance:kv,scheduleTimeout:typeof setTimeout=="function"?setTimeout:void 0,cancelTimeout:typeof clearTimeout=="function"?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:xt.createContext(null),setCurrentUpdatePriority(e){zf=e},getCurrentUpdatePriority(){return zf},resolveUpdatePriority(){var e;if(zf!==eA)return zf;switch(typeof window<"u"&&((e=window.event)==null?void 0:e.type)){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return ND;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return ID;default:return LD}},resetFormInstance(){},rendererPackageName:"@react-three/fiber",rendererVersion:DD.version,applyViewTransitionName(e,t,n){},restoreViewTransitionName(e,t){},cancelViewTransitionName(e,t,n){},cancelRootViewTransitionName(e){},restoreRootViewTransitionName(e){},InstanceMeasurement:null,measureInstance:e=>null,wasInstanceInViewport:e=>!0,hasInstanceChanged:(e,t)=>!1,hasInstanceAffectedParent:(e,t)=>!1,suspendOnActiveViewTransition(e,t){},startGestureTransition:()=>null,startViewTransition:()=>null,stopViewTransition(e){},createViewTransitionInstance:e=>null,getCurrentGestureOffset(e){throw new Error("startGestureTransition is not yet supported in react-three-fiber.")},cloneMutableInstance(e,t){return e},cloneMutableTextInstance(e){return e},cloneRootViewTransitionContainer(e){throw new Error("Not implemented.")},removeRootViewTransitionClone(e,t){throw new Error("Not implemented.")},createFragmentInstance:e=>null,updateFragmentInstanceFiber(e,t){},commitNewChildToFragmentInstance(e,t){},deleteChildFromFragmentInstance(e,t){},measureClonedInstance:e=>null,maySuspendCommitOnUpdate:(e,t,n)=>!1,maySuspendCommitInSyncRender:(e,t)=>!1,startSuspendingCommit:()=>null,getSuspendedCommitReason:(e,t)=>null}),qo=new Map,sc={objects:"shallow",strict:!1};function $D(e,t){if(!t&&typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement&&e.parentElement){const{width:n,height:s,top:a,left:l}=e.parentElement.getBoundingClientRect();return{width:n,height:s,top:a,left:l}}else if(!t&&typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)return{width:e.width,height:e.height,top:0,left:0};return{width:0,height:0,top:0,left:0,...t}}function JD(e){const t=qo.get(e),n=t?.fiber,s=t?.store,a=typeof reportError=="function"?reportError:console.error,l=s||CD(d0,PM),c=n||c0.createContainer(l,PD,null,!1,null,"",a,a,a,null);t||qo.set(e,{fiber:c,store:l});let h,d,f=!1,g=null;return{async configure(v={}){let y;g=new Promise(be=>y=be);let{gl:_,size:M,scene:w,events:x,onCreated:b,shadows:C=!1,linear:R=!1,flat:T=!1,legacy:L=!1,orthographic:D=!1,frameloop:O="always",dpr:A=[1,2],performance:P,raycaster:k,camera:F,onPointerMissed:q}=v,X=l.getState(),K=X.gl;if(!X.gl){const be={canvas:e,powerPreference:"high-performance",antialias:!0,alpha:!0},Ie=typeof _=="function"?await _(be):_;SM(Ie)?K=Ie:K=new zE({...be,..._}),X.set({gl:K})}let ee=X.raycaster;ee||X.set({raycaster:ee=new EE});const{params:ae,...Q}=k||{};if(gn.equ(Q,ee,sc)||Fa(ee,{...Q}),gn.equ(ae,ee.params,sc)||Fa(ee,{params:{...ee.params,...ae}}),!X.camera||X.camera===d&&!gn.equ(d,F,sc)){d=F;const be=F?.isCamera,Ie=be?F:D?new Mc(0,0,0,0,.1,1e3):new ni(75,0,.1,1e3);be||(Ie.position.z=5,F&&(Fa(Ie,F),Ie.manual||("aspect"in F||"left"in F||"right"in F||"bottom"in F||"top"in F)&&(Ie.manual=!0,Ie.updateProjectionMatrix())),!X.camera&&!(F!=null&&F.rotation)&&Ie.lookAt(0,0,0)),X.set({camera:Ie}),ee.camera=Ie}if(!X.scene){let be;w!=null&&w.isScene?(be=w,Jf(be,l,"",{})):(be=new C0,Jf(be,l,"",{}),w&&Fa(be,w)),X.set({scene:be})}x&&!X.events.handlers&&X.set({events:x(l)});const me=$D(e,M);if(gn.equ(me,X.size,sc)||X.setSize(me.width,me.height,me.top,me.left),A&&X.viewport.dpr!==YE(A)&&X.setDpr(A),X.frameloop!==O&&X.setFrameloop(O),X.onPointerMissed||X.set({onPointerMissed:q}),P&&!gn.equ(P,X.performance,sc)&&X.set(be=>({performance:{...be.performance,...P}})),!X.xr){var _e;const be=(pt,ue)=>{const Ce=l.getState();Ce.frameloop!=="never"&&PM(pt,!0,Ce,ue)},Ie=()=>{const pt=l.getState();pt.gl.xr.enabled=pt.gl.xr.isPresenting,pt.gl.xr.setAnimationLoop(pt.gl.xr.isPresenting?be:null),pt.gl.xr.isPresenting||d0(pt)},Ft={connect(){const pt=l.getState().gl;pt.xr.addEventListener("sessionstart",Ie),pt.xr.addEventListener("sessionend",Ie)},disconnect(){const pt=l.getState().gl;pt.xr.removeEventListener("sessionstart",Ie),pt.xr.removeEventListener("sessionend",Ie)}};typeof((_e=K.xr)==null?void 0:_e.addEventListener)=="function"&&Ft.connect(),X.set({xr:Ft})}if(K.shadowMap){const be=K.shadowMap.enabled,Ie=K.shadowMap.type;if(K.shadowMap.enabled=!!C,gn.boo(C))K.shadowMap.type=2;else if(gn.str(C)){var ge;const Ft={basic:0,percentage:1,soft:2,variance:3};K.shadowMap.type=(ge=Ft[C])!=null?ge:2}else gn.obj(C)&&Object.assign(K.shadowMap,C);(be!==K.shadowMap.enabled||Ie!==K.shadowMap.type)&&(K.shadowMap.needsUpdate=!0)}return Ht.enabled=!L,f||(K.outputColorSpace=R?$u:xi,K.toneMapping=T?0:4),X.legacy!==L&&X.set(()=>({legacy:L})),X.linear!==R&&X.set(()=>({linear:R})),X.flat!==T&&X.set(()=>({flat:T})),_&&!gn.fun(_)&&!SM(_)&&!gn.equ(_,K,sc)&&Fa(K,_),h=b,f=!0,y(),this},render(v){return!f&&!g&&this.configure(),g.then(()=>{c0.updateContainer((0,ar.jsx)(KD,{store:l,children:v,onCreated:h,rootElement:e}),c,null,()=>{})}),l},unmount(){rA(e)}}}function KD({store:e,children:t,onCreated:n,rootElement:s}){return dh(()=>{const a=e.getState();a.set(l=>({internal:{...l.internal,active:!0}})),n&&n(a),e.getState().events.connected||a.events.connect==null||a.events.connect(s)},[]),(0,ar.jsx)($E.Provider,{value:e,children:t})}function rA(e,t){const n=qo.get(e),s=n?.fiber;if(s){const a=n?.store.getState();a&&(a.internal.active=!1),c0.updateContainer(null,s,null,()=>{a&&setTimeout(()=>{try{var l,c,h,d;a.events.disconnect==null||a.events.disconnect(),(l=a.gl)==null||(c=l.renderLists)==null||c.dispose==null||c.dispose(),(h=a.gl)==null||h.forceContextLoss==null||h.forceContextLoss(),(d=a.gl)!=null&&d.xr&&a.xr.disconnect(),yD(a.scene),qo.delete(e),t&&t(e)}catch{}},500)})}}var QD=new Set,eU=new Set,tU=new Set;function Vv(e,t){if(e.size)for(const{callback:n}of e.values())n(t)}function Wu(e,t){switch(e){case"before":return Vv(QD,t);case"after":return Vv(eU,t);case"tail":return Vv(tU,t)}}var Hv,Gv;function u0(e,t,n){let s=t.clock.getDelta();t.frameloop==="never"&&typeof e=="number"&&(s=e-t.clock.elapsedTime,t.clock.oldTime=t.clock.elapsedTime,t.clock.elapsedTime=e),Hv=t.internal.subscribers;for(let a=0;a0)&&!((t=ac.gl.xr)!=null&&t.isPresenting)&&(Wv+=u0(e,ac))}if(h0=!1,Wu("after",e),Wv===0)return Wu("tail",e),ep=!1,cancelAnimationFrame(RM)}function d0(e,t=1){var n;if(!e)return qo.forEach(s=>d0(s.store.getState(),t));(n=e.gl.xr)!=null&&n.isPresenting||!e.internal.active||e.frameloop==="never"||(t>1?e.internal.frames=Math.min(60,e.internal.frames+t):h0?e.internal.frames=2:e.internal.frames=1,ep||(ep=!0,requestAnimationFrame(sA)))}function PM(e,t=!0,n,s){if(t&&Wu("before",e),n)u0(e,n,s);else for(const a of qo.values())u0(e,a.store.getState());t&&Wu("after",e)}var Xv={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function nU(e){const{handlePointer:t}=AD(e);return{priority:1,enabled:!0,compute(n,s,a){s.pointer.set(n.offsetX/s.size.width*2-1,-(n.offsetY/s.size.height)*2+1),s.raycaster.setFromCamera(s.pointer,s.camera)},connected:void 0,handlers:Object.keys(Xv).reduce((n,s)=>({...n,[s]:t(s)}),{}),update:()=>{var n;const{events:s,internal:a}=e.getState();(n=a.lastEvent)!=null&&n.current&&s.handlers&&s.handlers.onPointerMove(a.lastEvent.current)},connect:n=>{const{set:s,events:a}=e.getState();if(a.disconnect==null||a.disconnect(),s(l=>({events:{...l.events,connected:n}})),a.handlers)for(const l in a.handlers){const c=a.handlers[l],[h,d]=Xv[l];n.addEventListener(h,c,{passive:d})}},disconnect:()=>{const{set:n,events:s}=e.getState();if(s.connected){if(s.handlers)for(const a in s.handlers){const l=s.handlers[a],[c]=Xv[a];s.connected.removeEventListener(c,l)}n(a=>({events:{...a.events,connected:void 0}}))}}}}function IM(e,t){let n;return(...s)=>{window.clearTimeout(n),n=window.setTimeout(()=>e(...s),t)}}function iU({debounce:e,scroll:t,polyfill:n,offsetSize:s}={debounce:0,scroll:!1,offsetSize:!1}){const a=n||(typeof window>"u"?class{}:window.ResizeObserver);if(!a)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[l,c]=(0,xt.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),h=(0,xt.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:l,orientationHandler:null}),d=e?typeof e=="number"?e:e.scroll:null,f=e?typeof e=="number"?e:e.resize:null,g=(0,xt.useRef)(!1);(0,xt.useEffect)(()=>(g.current=!0,()=>{g.current=!1}));const[v,y,_]=(0,xt.useMemo)(()=>{const b=()=>{if(!h.current.element)return;const{left:C,top:R,width:T,height:L,bottom:D,right:O,x:A,y:P}=h.current.element.getBoundingClientRect(),k={left:C,top:R,width:T,height:L,bottom:D,right:O,x:A,y:P};h.current.element instanceof HTMLElement&&s&&(k.height=h.current.element.offsetHeight,k.width=h.current.element.offsetWidth),Object.freeze(k),g.current&&!oU(h.current.lastBounds,k)&&c(h.current.lastBounds=k)};return[b,f?IM(b,f):b,d?IM(b,d):b]},[c,s,d,f]);function M(){h.current.scrollContainers&&(h.current.scrollContainers.forEach(b=>b.removeEventListener("scroll",_,!0)),h.current.scrollContainers=null),h.current.resizeObserver&&(h.current.resizeObserver.disconnect(),h.current.resizeObserver=null),h.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",h.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",h.current.orientationHandler))}function w(){h.current.element&&(h.current.resizeObserver=new a(_),h.current.resizeObserver.observe(h.current.element),t&&h.current.scrollContainers&&h.current.scrollContainers.forEach(b=>b.addEventListener("scroll",_,{capture:!0,passive:!0})),h.current.orientationHandler=()=>{_()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",h.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",h.current.orientationHandler))}const x=b=>{!b||b===h.current.element||(M(),h.current.element=b,h.current.scrollContainers=aA(b),w())};return sU(_,!!t),rU(y),(0,xt.useEffect)(()=>{M(),w()},[t,_,y]),(0,xt.useEffect)(()=>M,[]),[x,l,v]}function rU(e){(0,xt.useEffect)(()=>{const t=e;return window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e])}function sU(e,t){(0,xt.useEffect)(()=>{if(t){const n=e;return window.addEventListener("scroll",n,{capture:!0,passive:!0}),()=>{window.removeEventListener("scroll",n,!0)}}},[e,t])}function aA(e){const t=[];if(!e||e===document.body)return t;const{overflow:n,overflowX:s,overflowY:a}=window.getComputedStyle(e);return[n,s,a].some(l=>l==="auto"||l==="scroll")&&t.push(e),[...t,...aA(e.parentElement)]}var aU=["x","y","top","bottom","left","right","width","height"],oU=(e,t)=>aU.every(n=>e[n]===t[n]);function lU({ref:e,children:t,fallback:n,resize:s,style:a,gl:l,events:c=nU,eventSource:h,eventPrefix:d,shadows:f,linear:g,flat:v,legacy:y,orthographic:_,frameloop:M,dpr:w,performance:x,raycaster:b,camera:C,scene:R,onPointerMissed:T,onCreated:L,...D}){xt.useMemo(()=>GD(DI),[]);const O=pD(),[A,P]=iU({scroll:!0,debounce:{scroll:50,resize:0},...s}),k=xt.useRef(null),F=xt.useRef(null);xt.useImperativeHandle(e,()=>k.current);const q=qE(T),[X,K]=xt.useState(!1),[ee,ae]=xt.useState(!1);if(X)throw X;if(ee)throw ee;const Q=xt.useRef(null);return dh(()=>{const me=k.current;if(P.width>0&&P.height>0&&me){Q.current||(Q.current=JD(me));async function _e(){await Q.current.configure({gl:l,scene:R,events:c,shadows:f,linear:g,flat:v,legacy:y,orthographic:_,frameloop:M,dpr:w,performance:x,raycaster:b,camera:C,size:P,onPointerMissed:(...ge)=>q.current==null?void 0:q.current(...ge),onCreated:ge=>{ge.events.connect==null||ge.events.connect(h?dD(h)?h.current:h:F.current),d&&ge.setEvents({compute:(be,Ie)=>{const Ft=be[d+"X"],pt=be[d+"Y"];Ie.pointer.set(Ft/Ie.size.width*2-1,-(pt/Ie.size.height)*2+1),Ie.raycaster.setFromCamera(Ie.pointer,Ie.camera)}}),L?.(ge)}}),Q.current.render((0,ar.jsx)(O,{children:(0,ar.jsx)(gD,{set:ae,children:(0,ar.jsx)(xt.Suspense,{fallback:(0,ar.jsx)(mD,{set:K}),children:t??null})})}))}_e()}}),xt.useEffect(()=>{const me=k.current;if(me)return()=>rA(me)},[]),(0,ar.jsx)("div",{ref:F,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:h?"none":"auto",...a},...D,children:(0,ar.jsx)("div",{ref:A,style:{width:"100%",height:"100%"},children:(0,ar.jsx)("canvas",{ref:k,style:{display:"block"},children:n})})})}function gU(e){return(0,ar.jsx)(GE,{children:(0,ar.jsx)(lU,{...e})})}var qv="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/CanvasText.tsx",cU='"JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace',vU=({text:e,position:t=[0,0,0],fontSize:n=.5,color:s="#000000",fontWeight:a="normal",anchorX:l="center",anchorY:c="middle",scale:h=1,letterSpacing:d=0})=>{const{texture:f,width:g,height:v,padUnitX:y,padUnitY:_}=(0,xt.useMemo)(()=>{const L=document.createElement("canvas"),D=L.getContext("2d");if(!D)return{texture:null,width:1,height:1,padUnitX:0,padUnitY:0};const O=160,A=`${a} ${O}px ${cU}`;D.font=A,"letterSpacing"in L.style&&(L.style.letterSpacing=`${d}em`);const P=D.measureText(e).width,k=O*.3,F=O*.3;L.width=Math.ceil(P+k*2),L.height=Math.ceil(288),D.font=A,D.fillStyle=s,D.textAlign="center",D.textBaseline="middle",D.fillText(e,L.width/2,L.height/2+O*.05);const q=new eT(L);return q.colorSpace=xi,q.minFilter=xn,q.magFilter=xn,q.generateMipmaps=!0,{texture:q,width:L.width/O*n,height:L.height/O*n,padUnitX:k/O*n,padUnitY:F/O*n}},[e,n,s,a,d]);if(!f)return null;const M=g-2*y,w=v-2*_,x=l==="left"?M/2:l==="right"?-M/2:0,b=c==="top"?-w/2:c==="bottom"?w/2:0,C=Array.isArray(h)?h[0]:h,R=Array.isArray(h)?h[1]:h,T=Array.isArray(h)?h[2]:h;return jg("mesh",{position:[t[0]+x*C,t[1]+b*R,t[2]],scale:[C,R,T],children:[jg("planeGeometry",{args:[g,v]},void 0,!1,{fileName:qv,lineNumber:86,columnNumber:7},void 0),jg("meshBasicMaterial",{map:f,transparent:!0,depthWrite:!1,toneMapped:!1},void 0,!1,{fileName:qv,lineNumber:87,columnNumber:7},void 0)]},void 0,!0,{fileName:qv,lineNumber:85,columnNumber:5},void 0)};export{th as $,FM as $n,rw as $t,c2 as A,xw as An,Mc as At,Js as B,W0 as Bn,yw as Bt,E2 as C,S0 as Cn,q0 as Ct,U0 as D,o2 as Dn,m0 as Dt,ch as E,Xu as En,qn as Et,hE as F,C0 as Fn,N0 as Ft,lE as G,A3 as Gn,cw as Gt,Go as H,I0 as Hn,Ks as Ht,f2 as I,cr as In,Bi as It,mc as J,R0 as Jn,fw as Jt,l2 as K,M2 as Kn,uw as Kt,Wr as L,XT as Ln,JM as Lt,dc as M,ew as Mn,Ua as Mt,x0 as N,xi as Nn,hp as Nt,ap as O,L2 as On,p0 as Ot,Wo as P,Ku as Pn,uE as Pt,lp as Q,js as Qn,iw as Qt,gP as R,DM as Rn,fc as Rt,Ht as S,fE as Sn,jT as St,tT as T,A0 as Tn,qu as Tt,jw as U,sp as Un,w0 as Ut,OP as V,cE as Vn,QM as Vt,Va as W,Zn as Wn,dw as Wt,sI as X,nI as Xn,tw as Xt,vE as Y,P0 as Yn,pw as Yt,UM as Z,YT as Zn,nw as Zt,NM as _,XM as _n,Tw as _r,Xa as _t,QE as a,$M as an,v0 as ar,eE as at,ji as b,Yu as bn,ka as br,JT as bt,zE as c,VM as cn,cn as cr,g0 as ct,bE as d,zM as dn,S2 as dr,ci as dt,sw as en,b0 as er,d2 as et,ww as f,n2 as fn,Wf as fr,Z2 as ft,Lt as g,ZM as gn,t0 as gr,Hn as gt,an as h,jM as hn,rt as hr,St as ht,mU as i,mw as in,_0 as ir,zi as it,h2 as j,_w as jn,ni as jt,Sr as k,KM as kn,tn as kt,BM as l,HM as ln,Ha as lr,$u as lt,uh as m,vw as mn,Ew as mr,Et as mt,gU as n,ow as nn,$s as nr,pE as nt,pU as o,YM as on,ye as or,xn as ot,Si as p,gw as pn,WT as pr,cI as pt,u2 as q,HT as qn,hw as qt,GD as r,lw as rn,y0 as rr,dI as rt,Be as s,qM as sn,z as sr,_c as st,vU as t,aw as tn,OM as tr,Vf as tt,dE as u,GM as un,lr as ur,Ju as ut,eT as v,WM as vn,eh as vr,KT as vt,_E as w,ip as wn,$T as wt,Xe as x,M0 as xn,hU as xr,ZT as xt,pT as y,kM as yn,Ne as yr,QT as yt,Ke as z,li as zn,bw as zt}; diff --git a/docs/assets/TriangulationCloseEnoughCanvas-DuTIU7cX.js b/docs/assets/TriangulationCloseEnoughCanvas-C-977Hw2.js similarity index 96% rename from docs/assets/TriangulationCloseEnoughCanvas-DuTIU7cX.js rename to docs/assets/TriangulationCloseEnoughCanvas-C-977Hw2.js index b736c2f6..01bf3dd0 100644 --- a/docs/assets/TriangulationCloseEnoughCanvas-DuTIU7cX.js +++ b/docs/assets/TriangulationCloseEnoughCanvas-C-977Hw2.js @@ -1,4 +1,4 @@ -import{T,_ as U,g as A,k as C,t as D,v as o}from"./index-BRSQXCQh.js";import{Gn as v,Nn as E,Wn as b,a as h,b as g,cr as R,i as W,n as O,o as y,ot as N,t as s}from"./CanvasText-BY4b_hDf.js";var l=C(T()),f=e=>e===Object(e)&&!Array.isArray(e)&&typeof e!="function";function p(e,i){const n=y(r=>r.gl),a=h(v,f(e)?Object.values(e):e);return(0,l.useLayoutEffect)(()=>{i?.(a)},[i]),(0,l.useEffect)(()=>{if("initTexture"in n){let r=[];Array.isArray(a)?r=a:a instanceof b?r=[a]:f(a)&&(r=Object.values(a)),r.forEach(c=>{c instanceof b&&n.initTexture(c)})}},[n,a]),(0,l.useMemo)(()=>{if(f(e)){const r={};let c=0;for(const u in e)r[u]=a[c++];return r}else return a},[e,a])}p.preload=e=>h.preload(v,e);p.clear=e=>h.clear(v,e);var t="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/TriangulationCloseEnoughCanvas.tsx",X=A("body-attenuation-character.png"),m={width:2.91,height:5.32},d={centerX:0,centerY:-.38,radiusX:1.08,radiusY:2.22},F=` +import{T,_ as U,g as A,k as C,t as D,v as o}from"./index-DFp1YEqS.js";import{Gn as v,Nn as E,Wn as b,a as h,b as g,cr as R,i as W,n as O,o as y,ot as N,t as s}from"./CanvasText-BD49uWGZ.js";var l=C(T()),f=e=>e===Object(e)&&!Array.isArray(e)&&typeof e!="function";function p(e,i){const n=y(r=>r.gl),a=h(v,f(e)?Object.values(e):e);return(0,l.useLayoutEffect)(()=>{i?.(a)},[i]),(0,l.useEffect)(()=>{if("initTexture"in n){let r=[];Array.isArray(a)?r=a:a instanceof b?r=[a]:f(a)&&(r=Object.values(a)),r.forEach(c=>{c instanceof b&&n.initTexture(c)})}},[n,a]),(0,l.useMemo)(()=>{if(f(e)){const r={};let c=0;for(const u in e)r[u]=a[c++];return r}else return a},[e,a])}p.preload=e=>h.preload(v,e);p.clear=e=>h.clear(v,e);var t="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/TriangulationCloseEnoughCanvas.tsx",X=A("body-attenuation-character.png"),m={width:2.91,height:5.32},d={centerX:0,centerY:-.38,radiusX:1.08,radiusY:2.22},F=` varying vec2 vUv; void main() { vUv = uv; diff --git a/docs/assets/TriangulationMapCanvas-DL7fnQQt.js b/docs/assets/TriangulationMapCanvas-DL7fnQQt.js new file mode 100644 index 00000000..a3c8fec0 --- /dev/null +++ b/docs/assets/TriangulationMapCanvas-DL7fnQQt.js @@ -0,0 +1 @@ +import{T as W,_ as T,k as D,t as z,v as e}from"./index-DFp1YEqS.js";import{ft as R,g as M,i as x,n as B,o as E,or as h,sr as y,t as b}from"./CanvasText-BD49uWGZ.js";var m=D(W(),1),i="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/TriangulationMapCanvas.tsx",N={left:-4.2,right:4.2,top:2.4,bottom:-2.4,width:8.4,height:4.8},g=[{x:-3.8,y:1.8,label:"A",color:"#00e5ff",id:0},{x:-3.8,y:-1.6,label:"B",color:"#ff00e5",id:1},{x:0,y:2.1,label:"C",color:"#e5ff00",id:2},{x:3.8,y:1.8,label:"D",color:"#00ff88",id:3},{x:3.8,y:-1.6,label:"E",color:"#ff8800",id:4},{x:0,y:-1.8,label:"F",color:"#8800ff",id:5},{x:-2.5,y:0,label:"G",color:"#ff3366",id:6},{x:2.5,y:0,label:"H",color:"#33ff66",id:7}],C=[{x:-1.8,y:-.8,w:1,h:.7},{x:1.3,y:.5,w:.8,h:.9},{x:-.8,y:1.4,w:.6,h:.5},{x:2.2,y:-1.2,w:.9,h:.7},{x:-2.8,y:.8,w:.5,h:.6},{x:.4,y:-1.6,w:.7,h:.5}],G=({x:a,y:r,w:l,h:o})=>e("mesh",{position:[a,r,.1],children:[e("planeGeometry",{args:[l,o]},void 0,!1,{fileName:i,lineNumber:43,columnNumber:7},void 0),e("meshBasicMaterial",{color:"#4a5568",transparent:!0,opacity:.6,depthWrite:!1},void 0,!1,{fileName:i,lineNumber:44,columnNumber:7},void 0)]},void 0,!0,{fileName:i,lineNumber:42,columnNumber:5},void 0),_=({position:a,velocity:r})=>{const l=(0,m.useRef)(null),o=(0,m.useRef)(null),t=(0,m.useRef)(null),u=(0,m.useRef)([]);x(({clock:s})=>{if(l.current){const f=.9+Math.sin(s.elapsedTime*4)*.12;l.current.scale.set(f,f,1)}if(o.current){const f=s.elapsedTime,v=1+Math.sin(f*3)*.4;o.current.scale.set(v,v,1);const n=o.current.material;n.opacity=.25+Math.sin(f*3)*.15}if(t.current){u.current.push(new y(a.x,a.y,.25)),u.current.length>20&&u.current.shift();const f=new M().setFromPoints(u.current);t.current.geometry.dispose(),t.current.geometry=f}});const c=Math.atan2(r.y,r.x);return e("group",{position:[a.x,a.y,.5],children:[e("line",{ref:t,children:e("lineBasicMaterial",{color:"#ef4444",transparent:!0,opacity:.3,depthWrite:!1},void 0,!1,{fileName:i,lineNumber:93,columnNumber:9},void 0)},void 0,!1,{fileName:i,lineNumber:92,columnNumber:7},void 0),e("mesh",{ref:o,position:[0,0,-.1],children:[e("ringGeometry",{args:[.2,.35,32]},void 0,!1,{fileName:i,lineNumber:98,columnNumber:9},void 0),e("meshBasicMaterial",{color:"#ef4444",transparent:!0,opacity:.3,depthWrite:!1},void 0,!1,{fileName:i,lineNumber:99,columnNumber:9},void 0)]},void 0,!0,{fileName:i,lineNumber:97,columnNumber:7},void 0),e("mesh",{rotation:[0,0,c],position:[.15,0,0],children:[e("coneGeometry",{args:[.08,.2,3]},void 0,!1,{fileName:i,lineNumber:104,columnNumber:9},void 0),e("meshBasicMaterial",{color:"#ff6666",depthWrite:!1},void 0,!1,{fileName:i,lineNumber:105,columnNumber:9},void 0)]},void 0,!0,{fileName:i,lineNumber:103,columnNumber:7},void 0),e("mesh",{ref:l,children:[e("circleGeometry",{args:[.15,32]},void 0,!1,{fileName:i,lineNumber:110,columnNumber:9},void 0),e("meshBasicMaterial",{color:"#ef4444",depthWrite:!1},void 0,!1,{fileName:i,lineNumber:111,columnNumber:9},void 0)]},void 0,!0,{fileName:i,lineNumber:109,columnNumber:7},void 0),e(b,{position:[0,-.38,0],fontSize:.18,color:"#ef4444",anchorX:"center",anchorY:"middle",fontWeight:700,text:"Target"},void 0,!1,{fileName:i,lineNumber:114,columnNumber:7},void 0)]},void 0,!0,{fileName:i,lineNumber:90,columnNumber:5},void 0)},U=({x:a,y:r,label:l,color:o,isActive:t,isWarmUp:u,devicePosition:c})=>{const s=(0,m.useRef)(null),f=(0,m.useRef)(null);x(({clock:p})=>{if(s.current){const w=p.elapsedTime;if(t){const S=1+Math.sin(w*4)*.15;s.current.scale.set(S,S,1)}}});const v=(0,m.useMemo)(()=>{const p=[new y(a,r,.2),new y(c.x,c.y,.2)];return new M().setFromPoints(p)},[a,r,c.x,c.y]);let n=.4,d=.12;return t?(n=1,d=.2):u&&(n=.8,d=.16),e("group",{children:[t&&e("line",{ref:f,children:[e("primitive",{object:v,attach:"geometry"},void 0,!1,{fileName:i,lineNumber:176,columnNumber:11},void 0),e("lineBasicMaterial",{color:o,transparent:!0,opacity:.3,depthWrite:!1,blending:2},void 0,!1,{fileName:i,lineNumber:177,columnNumber:11},void 0)]},void 0,!0,{fileName:i,lineNumber:175,columnNumber:9},void 0),e("group",{ref:s,position:[a,r,.3],children:[t&&e("mesh",{position:[0,0,-.05],children:[e("ringGeometry",{args:[d*1.5,d*2,32]},void 0,!1,{fileName:i,lineNumber:191,columnNumber:13},void 0),e("meshBasicMaterial",{color:o,transparent:!0,opacity:.2,depthWrite:!1,blending:2},void 0,!1,{fileName:i,lineNumber:192,columnNumber:13},void 0)]},void 0,!0,{fileName:i,lineNumber:190,columnNumber:11},void 0),e("mesh",{children:[e("octahedronGeometry",{args:[d,0]},void 0,!1,{fileName:i,lineNumber:204,columnNumber:11},void 0),e("meshBasicMaterial",{color:o,transparent:!0,opacity:n,depthWrite:!1,blending:t?2:1},void 0,!1,{fileName:i,lineNumber:205,columnNumber:11},void 0)]},void 0,!0,{fileName:i,lineNumber:203,columnNumber:9},void 0),e(b,{position:[0,-.4,0],fontSize:.16,color:o,anchorX:"center",anchorY:"middle",fontWeight:t?700:500,text:l},void 0,!1,{fileName:i,lineNumber:214,columnNumber:9},void 0)]},void 0,!0,{fileName:i,lineNumber:187,columnNumber:7},void 0)]},void 0,!0,{fileName:i,lineNumber:172,columnNumber:5},void 0)},F=({start:a,end:r,color:l,isActive:o})=>{const t=(0,m.useRef)(null),u=(0,m.useRef)(0),c=(0,m.useMemo)(()=>{const s=new M,f=[new y(a.x,a.y,.15),new y(r.x,r.y,.15)];return s.setFromPoints(f),s},[a,r]);return x(()=>{if(t.current&&o){u.current-=.02;const s=t.current.material;s.dashOffset=u.current}}),o?e("line",{ref:t,children:[e("primitive",{object:c,attach:"geometry"},void 0,!1,{fileName:i,lineNumber:260,columnNumber:7},void 0),e("lineDashedMaterial",{color:l,transparent:!0,opacity:.5,dashSize:.2,gapSize:.1,depthWrite:!1,blending:2},void 0,!1,{fileName:i,lineNumber:261,columnNumber:7},void 0)]},void 0,!0,{fileName:i,lineNumber:259,columnNumber:5},void 0):null},P=({onPositionChange:a})=>{const r=(0,m.useRef)(new h(0,0)),l=(0,m.useRef)(new h(.5,.3)),o=(0,m.useRef)(new h(.5,.3)),t=(0,m.useRef)(0);return x((u,c)=>{if(t.current+=c,t.current>2+Math.random()*3&&(t.current=0,o.current.set((Math.random()-.5)*2,(Math.random()-.5)*2)),l.current.lerp(o.current,.03),r.current.length()>3){const s=new h(0,0).sub(r.current).normalize().multiplyScalar(.3);l.current.add(s.multiplyScalar(c))}r.current.add(l.current.clone().multiplyScalar(c*1.5)),(r.current.xN.right-.5)&&(l.current.x*=-1,o.current.x*=-1),(r.current.yN.top-.5)&&(l.current.y*=-1,o.current.y*=-1),r.current.x=R.clamp(r.current.x,N.left+.5,N.right-.5),r.current.y=R.clamp(r.current.y,N.bottom+.5,N.top-.5),a(r.current.clone(),l.current.clone())}),e(_,{position:r.current,velocity:l.current},void 0,!1,{fileName:i,lineNumber:327,columnNumber:5},void 0)},X=(a,r,l=4)=>{const o=r.map(t=>({...t,distance:new h(t.x,t.y).distanceTo(a)}));return o.sort((t,u)=>t.distance-u.distance),{active:new Set(o.slice(0,l).map(t=>t.id)),warmUp:new Set(o.slice(l,l+2).map(t=>t.id))}},Y=()=>{const{camera:a}=E(),[r,l]=(0,m.useState)(new h(0,0)),[o,t]=(0,m.useState)(new h(.5,.3)),[u,c]=(0,m.useState)(new Set([0,1,2,3])),[s,f]=(0,m.useState)(new Set([4,5])),v=(n,d)=>{l(n),t(d);const{active:p,warmUp:w}=X(n,g,4);c(p),f(w)};return m.useEffect(()=>{if(a.type==="OrthographicCamera"){const n=a;n.zoom=1,n.updateProjectionMatrix()}},[a]),e(T,{children:[e("ambientLight",{intensity:.9},void 0,!1,{fileName:i,lineNumber:387,columnNumber:7},void 0),C.map((n,d)=>e(G,{x:n.x,y:n.y,w:n.w,h:n.h},d,!1,{fileName:i,lineNumber:391,columnNumber:9},void 0)),g.map(n=>e(U,{x:n.x,y:n.y,label:n.label,color:n.color,isActive:u.has(n.id),isWarmUp:s.has(n.id),devicePosition:r},n.label,!1,{fileName:i,lineNumber:396,columnNumber:9},void 0)),e(P,{onPositionChange:v},void 0,!1,{fileName:i,lineNumber:409,columnNumber:7},void 0),g.filter(n=>u.has(n.id)).map(n=>e(F,{start:new h(n.x,n.y),end:r,color:n.color,isActive:!0},`line-${n.label}`,!1,{fileName:i,lineNumber:413,columnNumber:9},void 0)),e(b,{position:[-4,2.65,.3],fontSize:.24,color:"#1a1a22",anchorX:"left",anchorY:"middle",fontWeight:700,text:"Triangulation"},void 0,!1,{fileName:i,lineNumber:423,columnNumber:7},void 0),e(b,{position:[-4,2.38,.3],fontSize:.13,color:"#3a3a42",anchorX:"left",anchorY:"middle",fontWeight:500,text:"Barycentric hysteresis / stable tracking"},void 0,!1,{fileName:i,lineNumber:432,columnNumber:7},void 0),e(b,{position:[4,2.65,.3],fontSize:.16,color:"#3a3a42",anchorX:"right",anchorY:"middle",fontWeight:600,text:`${u.size} active / ${g.length} towers`},void 0,!1,{fileName:i,lineNumber:443,columnNumber:7},void 0),e(b,{position:[4,2.42,.3],fontSize:.12,color:"#3a3a42",anchorX:"right",anchorY:"middle",fontWeight:500,text:"Nearest-neighbor handoff"},void 0,!1,{fileName:i,lineNumber:452,columnNumber:7},void 0),e(b,{position:[0,-2.6,.3],fontSize:.13,color:"#3a3a42",anchorX:"center",anchorY:"middle",fontWeight:500,text:"Device position determined by proximity to nearest cell towers"},void 0,!1,{fileName:i,lineNumber:463,columnNumber:7},void 0)]},void 0,!0,{fileName:i,lineNumber:386,columnNumber:5},void 0)};function L(){return e(z,{aspectRatio:"10 / 6",children:e("div",{style:{width:"100%",height:"100%",position:"relative"},children:[e("div",{style:{position:"absolute",top:-9999,left:-9999,visibility:"hidden"},children:[e("span",{children:"Endpoints"},void 0,!1,{fileName:i,lineNumber:481,columnNumber:11},this),e("span",{children:"Cell towers"},void 0,!1,{fileName:i,lineNumber:482,columnNumber:11},this),e("span",{children:"Target"},void 0,!1,{fileName:i,lineNumber:483,columnNumber:11},this),e("span",{children:"Moving device"},void 0,!1,{fileName:i,lineNumber:484,columnNumber:11},this),e("span",{children:"Triangulation"},void 0,!1,{fileName:i,lineNumber:485,columnNumber:11},this)]},void 0,!0,{fileName:i,lineNumber:480,columnNumber:9},this),e(B,{orthographic:!0,dpr:[1,2],camera:{position:[0,0,10],zoom:70,left:-5,right:5,top:3,bottom:-3},gl:{antialias:!0,alpha:!0},style:{cursor:"default",touchAction:"none"},children:e(m.Suspense,{fallback:null,children:e(Y,{},void 0,!1,{fileName:i,lineNumber:495,columnNumber:13},this)},void 0,!1,{fileName:i,lineNumber:494,columnNumber:11},this)},void 0,!1,{fileName:i,lineNumber:487,columnNumber:9},this)]},void 0,!0,{fileName:i,lineNumber:479,columnNumber:7},this)},void 0,!1,{fileName:i,lineNumber:478,columnNumber:5},this)}export{L as TriangulationMapCanvas,L as default}; diff --git a/docs/assets/TriangulationMapCanvas-DenpjNdi.js b/docs/assets/TriangulationMapCanvas-DenpjNdi.js deleted file mode 100644 index dd7f9f49..00000000 --- a/docs/assets/TriangulationMapCanvas-DenpjNdi.js +++ /dev/null @@ -1 +0,0 @@ -import{T as W,_ as T,k as D,t as z,v as e}from"./index-BRSQXCQh.js";import{ft as R,g as M,i as x,n as B,o as E,or as h,sr as y,t as b}from"./CanvasText-BY4b_hDf.js";var m=D(W(),1),i="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/TriangulationMapCanvas.tsx",N={left:-4.2,right:4.2,top:2.4,bottom:-2.4,width:8.4,height:4.8},g=[{x:-3.8,y:1.8,label:"A",color:"#00e5ff",id:0},{x:-3.8,y:-1.6,label:"B",color:"#ff00e5",id:1},{x:0,y:2.1,label:"C",color:"#e5ff00",id:2},{x:3.8,y:1.8,label:"D",color:"#00ff88",id:3},{x:3.8,y:-1.6,label:"E",color:"#ff8800",id:4},{x:0,y:-1.8,label:"F",color:"#8800ff",id:5},{x:-2.5,y:0,label:"G",color:"#ff3366",id:6},{x:2.5,y:0,label:"H",color:"#33ff66",id:7}],C=[{x:-1.8,y:-.8,w:1,h:.7},{x:1.3,y:.5,w:.8,h:.9},{x:-.8,y:1.4,w:.6,h:.5},{x:2.2,y:-1.2,w:.9,h:.7},{x:-2.8,y:.8,w:.5,h:.6},{x:.4,y:-1.6,w:.7,h:.5}],G=({x:a,y:r,w:l,h:o})=>e("mesh",{position:[a,r,.1],children:[e("planeGeometry",{args:[l,o]},void 0,!1,{fileName:i,lineNumber:43,columnNumber:7},void 0),e("meshBasicMaterial",{color:"#4a5568",transparent:!0,opacity:.6,depthWrite:!1},void 0,!1,{fileName:i,lineNumber:44,columnNumber:7},void 0)]},void 0,!0,{fileName:i,lineNumber:42,columnNumber:5},void 0),_=({position:a,velocity:r})=>{const l=(0,m.useRef)(null),o=(0,m.useRef)(null),n=(0,m.useRef)(null),u=(0,m.useRef)([]);x(({clock:s})=>{if(l.current){const f=.9+Math.sin(s.elapsedTime*4)*.12;l.current.scale.set(f,f,1)}if(o.current){const f=s.elapsedTime,v=1+Math.sin(f*3)*.4;o.current.scale.set(v,v,1);const t=o.current.material;t.opacity=.25+Math.sin(f*3)*.15}if(n.current){u.current.push(new y(a.x,a.y,.25)),u.current.length>20&&u.current.shift();const f=new M().setFromPoints(u.current);n.current.geometry.dispose(),n.current.geometry=f}});const c=Math.atan2(r.y,r.x);return e("group",{position:[a.x,a.y,.5],children:[e("line",{ref:n,children:e("lineBasicMaterial",{color:"#ef4444",transparent:!0,opacity:.3,depthWrite:!1},void 0,!1,{fileName:i,lineNumber:93,columnNumber:9},void 0)},void 0,!1,{fileName:i,lineNumber:92,columnNumber:7},void 0),e("mesh",{ref:o,position:[0,0,-.1],children:[e("ringGeometry",{args:[.2,.35,32]},void 0,!1,{fileName:i,lineNumber:98,columnNumber:9},void 0),e("meshBasicMaterial",{color:"#ef4444",transparent:!0,opacity:.3,depthWrite:!1},void 0,!1,{fileName:i,lineNumber:99,columnNumber:9},void 0)]},void 0,!0,{fileName:i,lineNumber:97,columnNumber:7},void 0),e("mesh",{rotation:[0,0,c],position:[.15,0,0],children:[e("coneGeometry",{args:[.08,.2,3]},void 0,!1,{fileName:i,lineNumber:104,columnNumber:9},void 0),e("meshBasicMaterial",{color:"#ff6666",depthWrite:!1},void 0,!1,{fileName:i,lineNumber:105,columnNumber:9},void 0)]},void 0,!0,{fileName:i,lineNumber:103,columnNumber:7},void 0),e("mesh",{ref:l,children:[e("circleGeometry",{args:[.15,32]},void 0,!1,{fileName:i,lineNumber:110,columnNumber:9},void 0),e("meshBasicMaterial",{color:"#ef4444",depthWrite:!1},void 0,!1,{fileName:i,lineNumber:111,columnNumber:9},void 0)]},void 0,!0,{fileName:i,lineNumber:109,columnNumber:7},void 0),e(b,{position:[0,-.38,0],fontSize:.18,color:"#ef4444",anchorX:"center",anchorY:"middle",fontWeight:700,text:"Target"},void 0,!1,{fileName:i,lineNumber:114,columnNumber:7},void 0)]},void 0,!0,{fileName:i,lineNumber:90,columnNumber:5},void 0)},U=({x:a,y:r,label:l,color:o,isActive:n,isWarmUp:u,devicePosition:c})=>{const s=(0,m.useRef)(null),f=(0,m.useRef)(null);x(({clock:p})=>{if(s.current){const w=p.elapsedTime;if(n){const S=1+Math.sin(w*4)*.15;s.current.scale.set(S,S,1)}}});const v=(0,m.useMemo)(()=>{const p=[new y(a,r,.2),new y(c.x,c.y,.2)];return new M().setFromPoints(p)},[a,r,c.x,c.y]);let t=.4,d=.12;return n?(t=1,d=.2):u&&(t=.8,d=.16),e("group",{children:[n&&e("line",{ref:f,children:[e("primitive",{object:v,attach:"geometry"},void 0,!1,{fileName:i,lineNumber:176,columnNumber:11},void 0),e("lineBasicMaterial",{color:o,transparent:!0,opacity:.3,depthWrite:!1,blending:2},void 0,!1,{fileName:i,lineNumber:177,columnNumber:11},void 0)]},void 0,!0,{fileName:i,lineNumber:175,columnNumber:9},void 0),e("group",{ref:s,position:[a,r,.3],children:[n&&e("mesh",{position:[0,0,-.05],children:[e("ringGeometry",{args:[d*1.5,d*2,32]},void 0,!1,{fileName:i,lineNumber:191,columnNumber:13},void 0),e("meshBasicMaterial",{color:o,transparent:!0,opacity:.2,depthWrite:!1,blending:2},void 0,!1,{fileName:i,lineNumber:192,columnNumber:13},void 0)]},void 0,!0,{fileName:i,lineNumber:190,columnNumber:11},void 0),e("mesh",{children:[e("octahedronGeometry",{args:[d,0]},void 0,!1,{fileName:i,lineNumber:204,columnNumber:11},void 0),e("meshBasicMaterial",{color:o,transparent:!0,opacity:t,depthWrite:!1,blending:n?2:1},void 0,!1,{fileName:i,lineNumber:205,columnNumber:11},void 0)]},void 0,!0,{fileName:i,lineNumber:203,columnNumber:9},void 0),e(b,{position:[0,-.4,0],fontSize:.16,color:o,anchorX:"center",anchorY:"middle",fontWeight:n?700:500,text:l},void 0,!1,{fileName:i,lineNumber:214,columnNumber:9},void 0)]},void 0,!0,{fileName:i,lineNumber:187,columnNumber:7},void 0)]},void 0,!0,{fileName:i,lineNumber:172,columnNumber:5},void 0)},F=({start:a,end:r,color:l,isActive:o})=>{const n=(0,m.useRef)(null),u=(0,m.useRef)(0),c=(0,m.useMemo)(()=>{const s=new M,f=[new y(a.x,a.y,.15),new y(r.x,r.y,.15)];return s.setFromPoints(f),s},[a,r]);return x(()=>{if(n.current&&o){u.current-=.02;const s=n.current.material;s.dashOffset=u.current}}),o?e("line",{ref:n,children:[e("primitive",{object:c,attach:"geometry"},void 0,!1,{fileName:i,lineNumber:260,columnNumber:7},void 0),e("lineDashedMaterial",{color:l,transparent:!0,opacity:.5,dashSize:.2,gapSize:.1,depthWrite:!1,blending:2},void 0,!1,{fileName:i,lineNumber:261,columnNumber:7},void 0)]},void 0,!0,{fileName:i,lineNumber:259,columnNumber:5},void 0):null},P=({onPositionChange:a})=>{const r=(0,m.useRef)(new h(0,0)),l=(0,m.useRef)(new h(.5,.3)),o=(0,m.useRef)(new h(.5,.3)),n=(0,m.useRef)(0);return x((u,c)=>{if(n.current+=c,n.current>2+Math.random()*3&&(n.current=0,o.current.set((Math.random()-.5)*2,(Math.random()-.5)*2)),l.current.lerp(o.current,.03),r.current.length()>3){const s=new h(0,0).sub(r.current).normalize().multiplyScalar(.3);l.current.add(s.multiplyScalar(c))}r.current.add(l.current.clone().multiplyScalar(c*1.5)),(r.current.xN.right-.5)&&(l.current.x*=-1,o.current.x*=-1),(r.current.yN.top-.5)&&(l.current.y*=-1,o.current.y*=-1),r.current.x=R.clamp(r.current.x,N.left+.5,N.right-.5),r.current.y=R.clamp(r.current.y,N.bottom+.5,N.top-.5),a(r.current.clone(),l.current.clone())}),e(_,{position:r.current,velocity:l.current},void 0,!1,{fileName:i,lineNumber:327,columnNumber:5},void 0)},X=(a,r,l=4)=>{const o=r.map(n=>({...n,distance:new h(n.x,n.y).distanceTo(a)}));return o.sort((n,u)=>n.distance-u.distance),{active:new Set(o.slice(0,l).map(n=>n.id)),warmUp:new Set(o.slice(l,l+2).map(n=>n.id))}},Y=()=>{const{camera:a}=E(),[r,l]=(0,m.useState)(new h(0,0)),[o,n]=(0,m.useState)(new h(.5,.3)),[u,c]=(0,m.useState)(new Set([0,1,2,3])),[s,f]=(0,m.useState)(new Set([4,5])),v=(t,d)=>{l(t),n(d);const{active:p,warmUp:w}=X(t,g,4);c(p),f(w)};return m.useEffect(()=>{if(a.type==="OrthographicCamera"){const t=a;t.zoom=1,t.updateProjectionMatrix()}},[a]),e(T,{children:[e("ambientLight",{intensity:.9},void 0,!1,{fileName:i,lineNumber:387,columnNumber:7},void 0),C.map((t,d)=>e(G,{x:t.x,y:t.y,w:t.w,h:t.h},d,!1,{fileName:i,lineNumber:391,columnNumber:9},void 0)),g.map(t=>e(U,{x:t.x,y:t.y,label:t.label,color:t.color,isActive:u.has(t.id),isWarmUp:s.has(t.id),devicePosition:r},t.label,!1,{fileName:i,lineNumber:396,columnNumber:9},void 0)),e(P,{onPositionChange:v},void 0,!1,{fileName:i,lineNumber:409,columnNumber:7},void 0),g.filter(t=>u.has(t.id)).map(t=>e(F,{start:new h(t.x,t.y),end:r,color:t.color,isActive:!0},`line-${t.label}`,!1,{fileName:i,lineNumber:413,columnNumber:9},void 0)),e(b,{position:[-4,2.65,.3],fontSize:.24,color:"#1a1a22",anchorX:"left",anchorY:"middle",fontWeight:700,text:"Triangulation"},void 0,!1,{fileName:i,lineNumber:423,columnNumber:7},void 0),e(b,{position:[-4,2.38,.3],fontSize:.13,color:"#3a3a42",anchorX:"left",anchorY:"middle",fontWeight:500,text:"Barycentric hysteresis / stable tracking"},void 0,!1,{fileName:i,lineNumber:432,columnNumber:7},void 0),e(b,{position:[4,2.65,.3],fontSize:.16,color:"#3a3a42",anchorX:"right",anchorY:"middle",fontWeight:600,text:`${u.size} active / ${g.length} towers`},void 0,!1,{fileName:i,lineNumber:443,columnNumber:7},void 0),e(b,{position:[4,2.42,.3],fontSize:.12,color:"#3a3a42",anchorX:"right",anchorY:"middle",fontWeight:500,text:"Nearest-neighbor handoff"},void 0,!1,{fileName:i,lineNumber:452,columnNumber:7},void 0),e(b,{position:[0,-2.6,.3],fontSize:.13,color:"#3a3a42",anchorX:"center",anchorY:"middle",fontWeight:500,text:"Device position determined by proximity to nearest cell towers"},void 0,!1,{fileName:i,lineNumber:463,columnNumber:7},void 0)]},void 0,!0,{fileName:i,lineNumber:386,columnNumber:5},void 0)};function L(){return e(z,{aspectRatio:"10 / 6",children:e("div",{style:{width:"100%",height:"100%",position:"relative"},children:[e("div",{style:{position:"absolute",top:-9999,left:-9999,visibility:"hidden"},children:[e("span",{children:"Endpoints"},void 0,!1,{fileName:i,lineNumber:481,columnNumber:11},this),e("span",{children:"Cell towers"},void 0,!1,{fileName:i,lineNumber:482,columnNumber:11},this),e("span",{children:"Target"},void 0,!1,{fileName:i,lineNumber:483,columnNumber:11},this),e("span",{children:"Moving device"},void 0,!1,{fileName:i,lineNumber:484,columnNumber:11},this),e("span",{children:"Triangulation"},void 0,!1,{fileName:i,lineNumber:485,columnNumber:11},this)]},void 0,!0,{fileName:i,lineNumber:480,columnNumber:9},this),e(B,{orthographic:!0,dpr:[1,2],camera:{position:[0,0,10],zoom:70,left:-5,right:5,top:3,bottom:-3},gl:{antialias:!0,alpha:!0},style:{cursor:"default",touchAction:"none"},children:e(m.Suspense,{fallback:null,children:e(Y,{},void 0,!1,{fileName:i,lineNumber:495,columnNumber:13},this)},void 0,!1,{fileName:i,lineNumber:494,columnNumber:11},this)},void 0,!1,{fileName:i,lineNumber:487,columnNumber:9},this)]},void 0,!0,{fileName:i,lineNumber:479,columnNumber:7},this)},void 0,!1,{fileName:i,lineNumber:478,columnNumber:5},this)}export{L as TriangulationMapCanvas,L as default}; diff --git a/docs/assets/canvas-BCKrquVh.js b/docs/assets/canvas-BCKrquVh.js new file mode 100644 index 00000000..5af8e433 --- /dev/null +++ b/docs/assets/canvas-BCKrquVh.js @@ -0,0 +1,2834 @@ +import{C as m9,S as a1,T as g9,_ as J0,a as v9,b as b9,c as N9,d as y9,f as M9,g as ji,h as x9,i as S9,k as Qr,l as T9,m as w9,n as Ki,o as _9,p as A9,r as I4,s as C9,t as C2,u as R9,v as g,w as B9,x as Yi,y as w1}from"./index-DFp1YEqS.js";import{$ as c2,$n as E9,$t as W9,A as L9,An as U9,At as vo,B as se,Bn as O9,Bt as F9,C as R2,Cn as G4,Ct as P9,D as D9,Dn as k9,Dt as X9,E as Zr,En as z4,Et as Ne,F as I9,Fn as Ar,Ft as G9,G as z9,Gt as $9,H as V9,Hn as Q9,Ht as Ve,I as Z9,In as mt,It as q9,J as H9,Jn as J9,Jt as j9,K as K9,Kn as Qe,Kt as Y9,L as B2,Ln as el,Lt as tl,M as p2,Mn as ol,Mt as $4,N as Ot,Nn as X0,Nt as rl,O as sl,On as V4,Ot as il,P as Te,Pt as nl,Q as al,Qn as ye,Qt as ll,R as Q4,Rn as vr,Rt as ul,S as o0,Sn as cl,St as dl,T as hl,Tn as zt,Tt as Z4,U as fl,Un as en,Ut as q4,V as H4,Vn as tn,Vt as pl,W as ne,Wn as bo,Wt as ml,X as Cr,Xn as C1,Xt as gl,Y as vl,Yn as bl,Yt as Nl,Z as e2,Zn as oa,Zt as yl,_ as br,_r as Rr,_t as i2,an as Ml,ar as z3,at as xl,b as Dt,bn as d2,br as z1,bt as J4,c as Sl,cn as Tl,cr as S1,ct as wl,d as _l,dn as j4,dr as K4,dt as Br,en as Al,er as Ft,et as Cl,f as f3,fn as Rl,fr as Bl,ft as kt,g as a3,gn as El,gr as Wl,gt as He,h as m2,hn as Ll,hr as I,ht as v0,i as B0,in as Ul,it as Ol,j as Fl,jn as Pl,jt as y2,k as Y4,kn as Dl,kt as kl,ln as Xl,lr as e6,lt as on,m as t6,mn as Il,mr as Gl,mt as No,n as yo,nn as zl,nr as O0,nt as $l,o as he,or as f1,ot as H1,p as rn,pn as Vl,pr as Ql,pt as o6,q as Zl,qn as ql,qt as Hl,r as Jl,rn as jl,rt as Kl,s as ra,sr as G,st as bi,t as F1,tn as Yl,tr as eu,tt as tu,u as ou,un as ru,ur as Ae,ut as sa,v as r6,vr as su,vt as iu,w as nu,wn as s6,wt as au,x as fe,xn as i6,xr as n6,xt as lu,y as uu,yn as cu,yr as j,yt as du,z as Er,zn as sn,zt as hu}from"./CanvasText-BD49uWGZ.js";import{t as a6}from"./TriangulationCloseEnoughCanvas-C-977Hw2.js";import"./TriangulationMapCanvas-DL7fnQQt.js";function no(){return no=Object.assign?Object.assign.bind():function(e){for(var t=1;tMath.PI/2}function vu(e,t,o,r){const s=Mo.setFromMatrixPosition(e.matrixWorld),i=s.clone();i.project(t),ia.set(i.x,i.y),o.setFromCamera(ia,t);const n=o.intersectObjects(r,!0);if(n.length){const a=n[0].distance;return s.distanceTo(o.ray.origin)Math.abs(e)<1e-10?0:e;function l6(e,t,o=""){let r="matrix3d(";for(let s=0;s!==16;s++)r+=Ni(t[s]*e.elements[s])+(s!==15?",":")");return o+r}var yu=(e=>t=>l6(t,e))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),Mu=(e=>(t,o)=>l6(t,e(o),"translate(-50%,-50%)"))(e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1]);function xu(e){return e&&typeof e=="object"&&"current"in e}var Su=_.forwardRef(({children:e,eps:t=.001,style:o,className:r,prepend:s,center:i,fullscreen:n,portal:a,distanceFactor:l,sprite:u=!1,transform:c=!1,occlude:d,onOcclude:h,castShadow:f,receiveShadow:p,material:m,geometry:b,zIndexRange:N=[16777271,0],calculatePosition:v=mu,as:y="div",wrapperClass:T,pointerEvents:x="auto",...S},C)=>{const{gl:w,camera:L,scene:F,size:P,raycaster:X,events:V,viewport:U}=he(),[D]=_.useState(()=>document.createElement(y)),Q=_.useRef(null),k=_.useRef(null),c1=_.useRef(0),h1=_.useRef([0,0]),g1=_.useRef(null),L1=_.useRef(null),H=a?.current||V.connected||w.domElement.parentNode,J=_.useRef(null),J1=_.useRef(!1),$=_.useMemo(()=>d&&d!=="blending"||Array.isArray(d)&&d.length&&xu(d[0]),[d]);_.useLayoutEffect(()=>{const l1=w.domElement;d&&d==="blending"?(l1.style.zIndex=`${Math.floor(N[0]/2)}`,l1.style.position="absolute",l1.style.pointerEvents="none"):(l1.style.zIndex=null,l1.style.position=null,l1.style.pointerEvents=null)},[d]),_.useLayoutEffect(()=>{if(k.current){const l1=Q.current=fu.createRoot(D);if(F.updateMatrixWorld(),c)D.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e1=v(k.current,L,P);D.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e1[0]}px,${e1[1]}px,0);transform-origin:0 0;`}return H&&(s?H.prepend(D):H.appendChild(D)),()=>{H&&H.removeChild(D),l1.unmount()}}},[H,c]),_.useLayoutEffect(()=>{T&&(D.className=T)},[T]);const M1=_.useMemo(()=>c?{position:"absolute",top:0,left:0,width:P.width,height:P.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:i?"translate3d(-50%,-50%,0)":"none",...n&&{top:-P.height/2,left:-P.width/2,width:P.width,height:P.height},...o},[o,i,n,P,c]),e0=_.useMemo(()=>({position:"absolute",pointerEvents:x}),[x]);_.useLayoutEffect(()=>{if(J1.current=!1,c){var l1;(l1=Q.current)==null||l1.render(_.createElement("div",{ref:g1,style:M1},_.createElement("div",{ref:L1,style:e0},_.createElement("div",{ref:C,className:r,style:o,children:e}))))}else{var e1;(e1=Q.current)==null||e1.render(_.createElement("div",{ref:C,style:M1,className:r,children:e}))}});const E1=_.useRef(!0);B0(l1=>{if(k.current){L.updateMatrixWorld(),k.current.updateWorldMatrix(!0,!1);const e1=c?h1.current:v(k.current,L,P);if(c||Math.abs(c1.current-L.zoom)>t||Math.abs(h1.current[0]-e1[0])>t||Math.abs(h1.current[1]-e1[1])>t){const U0=gu(k.current,L);let G0=!1;$&&(Array.isArray(d)?G0=d.map(Re=>Re.current):d!=="blending"&&(G0=[F]));const _0=E1.current;if(G0){const Re=vu(k.current,L,X,G0);E1.current=Re&&!U0}else E1.current=!U0;_0!==E1.current&&(h?h(!E1.current):D.style.display=E1.current?"block":"none");const ot=Math.floor(N[0]/2),cs=d?$?[N[0],ot]:[ot-1,0]:N;if(D.style.zIndex=`${Nu(k.current,L,cs)}`,c){const[Re,S3]=[P.width/2,P.height/2],P2=L.projectionMatrix.elements[5]*S3,{isOrthographicCamera:ta,top:u9,left:c9,bottom:d9,right:h9}=L,f9=yu(L.matrixWorldInverse),p9=ta?`scale(${P2})translate(${Ni(-(h9+c9)/2)}px,${Ni((u9+d9)/2)}px)`:`translateZ(${P2}px)`;let Ht=k.current.matrixWorld;u&&(Ht=L.matrixWorldInverse.clone().transpose().copyPosition(Ht).scale(k.current.scale),Ht.elements[3]=Ht.elements[7]=Ht.elements[11]=0,Ht.elements[15]=1),D.style.width=P.width+"px",D.style.height=P.height+"px",D.style.perspective=ta?"":`${P2}px`,g1.current&&L1.current&&(g1.current.style.transform=`${p9}${f9}translate(${Re}px,${S3}px)`,L1.current.style.transform=Mu(Ht,1/((l||10)/400)))}else{const Re=l===void 0?1:bu(k.current,L)*l;D.style.transform=`translate3d(${e1[0]}px,${e1[1]}px,0) scale(${Re})`}h1.current=e1,c1.current=L.zoom}}if(!$&&J.current&&!J1.current)if(c){if(g1.current){const e1=g1.current.children[0];if(e1!=null&&e1.clientWidth&&e1!=null&&e1.clientHeight){const{isOrthographicCamera:U0}=L;if(U0||b)S.scale&&(Array.isArray(S.scale)?S.scale instanceof G?J.current.scale.copy(S.scale.clone().divideScalar(1)):J.current.scale.set(1/S.scale[0],1/S.scale[1],1/S.scale[2]):J.current.scale.setScalar(1/S.scale));else{const G0=(l||10)/400,_0=e1.clientWidth*G0,ot=e1.clientHeight*G0;J.current.scale.set(_0,ot,1)}J1.current=!0}}}else{const e1=D.children[0];if(e1!=null&&e1.clientWidth&&e1!=null&&e1.clientHeight){const U0=1/U.factor,G0=e1.clientWidth*U0,_0=e1.clientHeight*U0;J.current.scale.set(G0,_0,1),J1.current=!0}J.current.lookAt(l1.camera.position)}});const X1=_.useMemo(()=>({vertexShader:c?void 0:` + /* + This shader is from the THREE's SpriteMaterial. + We need to turn the backing plane into a Sprite + (make it always face the camera) if "transfrom" + is false. + */ + #include + + void main() { + vec2 center = vec2(0., 1.); + float rotation = 0.0; + + // This is somewhat arbitrary, but it seems to work well + // Need to figure out how to derive this dynamically if it even matters + float size = 0.03; + + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + + gl_Position = projectionMatrix * mvPosition; + } + `,fragmentShader:` + void main() { + gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); + } + `}),[c]);return _.createElement("group",no({},S,{ref:k}),d&&!$&&_.createElement("mesh",{castShadow:f,receiveShadow:p,ref:J},b||_.createElement("planeGeometry",null),m||_.createElement("shaderMaterial",{side:2,vertexShader:X1.vertexShader,fragmentShader:X1.fragmentShader})))}),yi=Qr(b9(),1);function H3(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var jT=new f1,KT=new f1;function u6(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var j0=function e(t,o,r){var s=this;u6(this,e),H3(this,"dot2",function(i,n){return s.x*i+s.y*n}),H3(this,"dot3",function(i,n,a){return s.x*i+s.y*n+s.z*a}),this.x=t,this.y=o,this.z=r},Tu=[new j0(1,1,0),new j0(-1,1,0),new j0(1,-1,0),new j0(-1,-1,0),new j0(1,0,1),new j0(-1,0,1),new j0(1,0,-1),new j0(-1,0,-1),new j0(0,1,1),new j0(0,-1,1),new j0(0,1,-1),new j0(0,-1,-1)],na=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],aa=new Array(512),la=new Array(512),wu=function(t){t>0&&t<1&&(t*=65536),t=Math.floor(t),t<256&&(t|=t<<8);for(var o=0;o<256;o++){var r;o&1?r=na[o]^t&255:r=na[o]^t>>8&255,aa[o]=aa[o+256]=r,la[o]=la[o+256]=Tu[r%12]}};wu(0);var YT=.5*(Math.sqrt(3)-1),ew=(3-Math.sqrt(3))/6,tw=Math.PI*2;function _u(e){if(typeof e=="number")e=Math.abs(e);else if(typeof e=="string"){var t=e;e=0;for(var o=0;o=125?"uv1":"uv2",ca=new rn,Eo=new G,an=class extends vl{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";const e=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],t=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2];this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new Er(e,3)),this.setAttribute("uv",new Er(t,2))}applyMatrix4(e){const t=this.attributes.instanceStart,o=this.attributes.instanceEnd;return t!==void 0&&(t.applyMatrix4(e),o.applyMatrix4(e),t.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));const o=new Cr(t,6,1);return this.setAttribute("instanceStart",new c2(o,3,0)),this.setAttribute("instanceEnd",new c2(o,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e,t=3){let o;e instanceof Float32Array?o=e:Array.isArray(e)&&(o=new Float32Array(e));const r=new Cr(o,t*2,1);return this.setAttribute("instanceColorStart",new c2(r,t,0)),this.setAttribute("instanceColorEnd",new c2(r,t,t)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new Ql(e.geometry)),this}fromLineSegments(e){const t=e.geometry;return this.setPositions(t.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new rn);const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;e!==void 0&&t!==void 0&&(this.boundingBox.setFromBufferAttribute(e),ca.setFromBufferAttribute(t),this.boundingBox.union(ca))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new sn),this.boundingBox===null&&this.computeBoundingBox();const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(e!==void 0&&t!==void 0){const o=this.boundingSphere.center;this.boundingBox.getCenter(o);let r=0;for(let s=0,i=e.count;s + #include + #include + #include + + uniform float linewidth; + uniform vec2 resolution; + + attribute vec3 instanceStart; + attribute vec3 instanceEnd; + + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + varying vec4 vLineColor; + attribute vec4 instanceColorStart; + attribute vec4 instanceColorEnd; + #else + varying vec3 vLineColor; + attribute vec3 instanceColorStart; + attribute vec3 instanceColorEnd; + #endif + #endif + + #ifdef WORLD_UNITS + + varying vec4 worldPos; + varying vec3 worldStart; + varying vec3 worldEnd; + + #ifdef USE_DASH + + varying vec2 vUv; + + #endif + + #else + + varying vec2 vUv; + + #endif + + #ifdef USE_DASH + + uniform float dashScale; + attribute float instanceDistanceStart; + attribute float instanceDistanceEnd; + varying float vLineDistance; + + #endif + + void trimSegment( const in vec4 start, inout vec4 end ) { + + // trim end segment so it terminates between the camera plane and the near plane + + // conservative estimate of the near plane + float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column + float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column + float nearEstimate = - 0.5 * b / a; + + float alpha = ( nearEstimate - start.z ) / ( end.z - start.z ); + + end.xyz = mix( start.xyz, end.xyz, alpha ); + + } + + void main() { + + #ifdef USE_COLOR + + vLineColor = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd; + + #endif + + #ifdef USE_DASH + + vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd; + vUv = uv; + + #endif + + float aspect = resolution.x / resolution.y; + + // camera space + vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 ); + vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 ); + + #ifdef WORLD_UNITS + + worldStart = start.xyz; + worldEnd = end.xyz; + + #else + + vUv = uv; + + #endif + + // special case for perspective projection, and segments that terminate either in, or behind, the camera plane + // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space + // but we need to perform ndc-space calculations in the shader, so we must address this issue directly + // perhaps there is a more elegant solution -- WestLangley + + bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column + + if ( perspective ) { + + if ( start.z < 0.0 && end.z >= 0.0 ) { + + trimSegment( start, end ); + + } else if ( end.z < 0.0 && start.z >= 0.0 ) { + + trimSegment( end, start ); + + } + + } + + // clip space + vec4 clipStart = projectionMatrix * start; + vec4 clipEnd = projectionMatrix * end; + + // ndc space + vec3 ndcStart = clipStart.xyz / clipStart.w; + vec3 ndcEnd = clipEnd.xyz / clipEnd.w; + + // direction + vec2 dir = ndcEnd.xy - ndcStart.xy; + + // account for clip-space aspect ratio + dir.x *= aspect; + dir = normalize( dir ); + + #ifdef WORLD_UNITS + + // get the offset direction as perpendicular to the view vector + vec3 worldDir = normalize( end.xyz - start.xyz ); + vec3 offset; + if ( position.y < 0.5 ) { + + offset = normalize( cross( start.xyz, worldDir ) ); + + } else { + + offset = normalize( cross( end.xyz, worldDir ) ); + + } + + // sign flip + if ( position.x < 0.0 ) offset *= - 1.0; + + float forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) ); + + // don't extend the line if we're rendering dashes because we + // won't be rendering the endcaps + #ifndef USE_DASH + + // extend the line bounds to encompass endcaps + start.xyz += - worldDir * linewidth * 0.5; + end.xyz += worldDir * linewidth * 0.5; + + // shift the position of the quad so it hugs the forward edge of the line + offset.xy -= dir * forwardOffset; + offset.z += 0.5; + + #endif + + // endcaps + if ( position.y > 1.0 || position.y < 0.0 ) { + + offset.xy += dir * 2.0 * forwardOffset; + + } + + // adjust for linewidth + offset *= linewidth * 0.5; + + // set the world position + worldPos = ( position.y < 0.5 ) ? start : end; + worldPos.xyz += offset; + + // project the worldpos + vec4 clip = projectionMatrix * worldPos; + + // shift the depth of the projected points so the line + // segments overlap neatly + vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd; + clip.z = clipPose.z * clip.w; + + #else + + vec2 offset = vec2( dir.y, - dir.x ); + // undo aspect ratio adjustment + dir.x /= aspect; + offset.x /= aspect; + + // sign flip + if ( position.x < 0.0 ) offset *= - 1.0; + + // endcaps + if ( position.y < 0.0 ) { + + offset += - dir; + + } else if ( position.y > 1.0 ) { + + offset += dir; + + } + + // adjust for linewidth + offset *= linewidth; + + // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ... + offset /= resolution.y; + + // select end + vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd; + + // back to clip space + offset *= clip.w; + + clip.xy += offset; + + #endif + + gl_Position = clip; + + vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation + + #include + #include + #include + + } + `,fragmentShader:` + uniform vec3 diffuse; + uniform float opacity; + uniform float linewidth; + + #ifdef USE_DASH + + uniform float dashOffset; + uniform float dashSize; + uniform float gapSize; + + #endif + + varying float vLineDistance; + + #ifdef WORLD_UNITS + + varying vec4 worldPos; + varying vec3 worldStart; + varying vec3 worldEnd; + + #ifdef USE_DASH + + varying vec2 vUv; + + #endif + + #else + + varying vec2 vUv; + + #endif + + #include + #include + #include + #include + + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + varying vec4 vLineColor; + #else + varying vec3 vLineColor; + #endif + #endif + + vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) { + + float mua; + float mub; + + vec3 p13 = p1 - p3; + vec3 p43 = p4 - p3; + + vec3 p21 = p2 - p1; + + float d1343 = dot( p13, p43 ); + float d4321 = dot( p43, p21 ); + float d1321 = dot( p13, p21 ); + float d4343 = dot( p43, p43 ); + float d2121 = dot( p21, p21 ); + + float denom = d2121 * d4343 - d4321 * d4321; + + float numer = d1343 * d4321 - d1321 * d4343; + + mua = numer / denom; + mua = clamp( mua, 0.0, 1.0 ); + mub = ( d1343 + d4321 * ( mua ) ) / d4343; + mub = clamp( mub, 0.0, 1.0 ); + + return vec2( mua, mub ); + + } + + void main() { + + #include + + #ifdef USE_DASH + + if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps + + if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX + + #endif + + float alpha = opacity; + + #ifdef WORLD_UNITS + + // Find the closest points on the view ray and the line segment + vec3 rayEnd = normalize( worldPos.xyz ) * 1e5; + vec3 lineDir = worldEnd - worldStart; + vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd ); + + vec3 p1 = worldStart + lineDir * params.x; + vec3 p2 = rayEnd * params.y; + vec3 delta = p1 - p2; + float len = length( delta ); + float norm = len / linewidth; + + #ifndef USE_DASH + + #ifdef USE_ALPHA_TO_COVERAGE + + float dnorm = fwidth( norm ); + alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm ); + + #else + + if ( norm > 0.5 ) { + + discard; + + } + + #endif + + #endif + + #else + + #ifdef USE_ALPHA_TO_COVERAGE + + // artifacts appear on some hardware if a derivative is taken within a conditional + float a = vUv.x; + float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; + float len2 = a * a + b * b; + float dlen = fwidth( len2 ); + + if ( abs( vUv.y ) > 1.0 ) { + + alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 ); + + } + + #else + + if ( abs( vUv.y ) > 1.0 ) { + + float a = vUv.x; + float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; + float len2 = a * a + b * b; + + if ( len2 > 1.0 ) discard; + + } + + #endif + + #endif + + vec4 diffuseColor = vec4( diffuse, alpha ); + #ifdef USE_COLOR + #ifdef USE_LINE_COLOR_ALPHA + diffuseColor *= vLineColor; + #else + diffuseColor.rgb *= vLineColor; + #endif + #endif + + #include + + gl_FragColor = diffuseColor; + + #include + #include <${c6>=154?"colorspace_fragment":"encodings_fragment"}> + #include + #include + + } + `,clipping:!0}),this.isLineMaterial=!0,this.onBeforeCompile=function(){this.transparent?this.defines.USE_LINE_COLOR_ALPHA="1":delete this.defines.USE_LINE_COLOR_ALPHA},Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(t){this.uniforms.diffuse.value=t}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(t){t===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(t){this.uniforms.linewidth.value=t}},dashed:{enumerable:!0,get:function(){return"USE_DASH"in this.defines},set(t){!!t!="USE_DASH"in this.defines&&(this.needsUpdate=!0),t===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(t){this.uniforms.dashScale.value=t}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(t){this.uniforms.dashSize.value=t}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(t){this.uniforms.dashOffset.value=t}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(t){this.uniforms.gapSize.value=t}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(t){this.uniforms.opacity.value=t}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(t){this.uniforms.resolution.value.copy(t)}},alphaToCoverage:{enumerable:!0,get:function(){return"USE_ALPHA_TO_COVERAGE"in this.defines},set:function(t){!!t!="USE_ALPHA_TO_COVERAGE"in this.defines&&(this.needsUpdate=!0),t===!0?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(e)}},ds=new S1,da=new G,ha=new G,d0=new S1,h0=new S1,Be=new S1,hs=new G,fs=new v0,m0=new Kl,fa=new G,Wo=new rn,Lo=new sn,Ee=new S1,Ie,g2;function pa(e,t,o){return Ee.set(0,0,-t,1).applyMatrix4(e.projectionMatrix),Ee.multiplyScalar(1/Ee.w),Ee.x=g2/o.width,Ee.y=g2/o.height,Ee.applyMatrix4(e.projectionMatrixInverse),Ee.multiplyScalar(1/Ee.w),Math.abs(Math.max(Ee.x,Ee.y))}function Cu(e,t){const o=e.matrixWorld,r=e.geometry,s=r.attributes.instanceStart,i=r.attributes.instanceEnd,n=Math.min(r.instanceCount,s.count);for(let a=0,l=n;ac&&h0.z>c)continue;if(d0.z>c){const N=d0.z-h0.z,v=(d0.z-c)/N;d0.lerp(h0,v)}else if(h0.z>c){const N=h0.z-d0.z,v=(h0.z-c)/N;h0.lerp(d0,v)}d0.applyMatrix4(r),h0.applyMatrix4(r),d0.multiplyScalar(1/d0.w),h0.multiplyScalar(1/h0.w),d0.x*=s.x/2,d0.y*=s.y/2,h0.x*=s.x/2,h0.y*=s.y/2,m0.start.copy(d0),m0.start.z=0,m0.end.copy(h0),m0.end.z=0;const f=m0.closestPointToPointParameter(hs,!0);m0.at(f,fa);const p=kt.lerp(d0.z,h0.z,f),m=p>=-1&&p<=1,b=hs.distanceTo(fa)N.size),f=_.useMemo(()=>n?new f6:new Bu,[n]),[p]=_.useState(()=>new ln),m=(r==null||(c=r[0])==null?void 0:c.length)===4?4:3,b=_.useMemo(()=>{const N=n?new an:new h6,v=t.map(y=>{const T=Array.isArray(y);return y instanceof G||y instanceof S1?[y.x,y.y,y.z]:y instanceof f1?[y.x,y.y,0]:T&&y.length===3?[y[0],y[1],y[2]]:T&&y.length===2?[y[0],y[1],0]:y});if(N.setPositions(v.flat()),r){o=16777215;const y=r.map(T=>T instanceof fe?T.toArray():T);N.setColors(y.flat(),m)}return N},[t,n,r,m]);return _.useLayoutEffect(()=>{f.computeLineDistances()},[t,f]),_.useLayoutEffect(()=>{a?p.defines.USE_DASH="":delete p.defines.USE_DASH,p.needsUpdate=!0},[a,p]),_.useEffect(()=>()=>{b.dispose(),p.dispose()},[b]),_.createElement("primitive",no({object:f,ref:u},l),_.createElement("primitive",{object:b,attach:"geometry"}),_.createElement("primitive",no({object:p,attach:"material",color:o,vertexColors:!!r,resolution:[h.width,h.height],linewidth:(d=s??i)!==null&&d!==void 0?d:1,dashed:a,transparent:m===4},l)))}),Eu=(()=>{const e=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),t=new Float32Array([0,0,2,0,0,2]),o=new a3;return o.setAttribute("position",new m2(e,3)),o.setAttribute("uv",new m2(t,2)),o})(),L0=class Mi{static get fullscreenGeometry(){return Eu}constructor(t="Pass",o=new Ar,r=new vo){this.name=t,this.renderer=null,this.scene=o,this.camera=r,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthBlit=!1,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(t){if(this.rtt===t){const o=this.fullscreenMaterial;o!==null&&(o.needsUpdate=!0),this.rtt=!t}}set mainScene(t){}set mainCamera(t){}setRenderer(t){this.renderer=t}isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}get fullscreenMaterial(){return this.screen!==null?this.screen.material:null}set fullscreenMaterial(t){let o=this.screen;o!==null?o.material=t:(o=new He(Mi.fullscreenGeometry,t),o.frustumCulled=!1,this.scene===null&&(this.scene=new Ar),this.scene.add(o),this.screen=o)}getFullscreenMaterial(){return this.fullscreenMaterial}setFullscreenMaterial(t){this.fullscreenMaterial=t}getDepthTexture(){return null}setDepthTexture(t,o=f3){}render(t,o,r,s,i){throw new Error("Render method not implemented!")}setSize(t,o){}initialize(t,o,r){}dispose(){for(const t of Object.keys(this)){const o=this[t];(o instanceof Ae||o instanceof Br||o instanceof bo||o instanceof Mi)&&this[t].dispose()}this.fullscreenMaterial!==null&&this.fullscreenMaterial.dispose()}},Wu=class extends L0{constructor(){super("ClearMaskPass",null,null),this.needsSwap=!1}render(e,t,o,r,s){const i=e.state.buffers.stencil;i.setLocked(!1),i.setTest(!1)}},Lu=`#ifdef COLOR_WRITE +#include +#include +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#endif +#ifdef DEPTH_WRITE +#include +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +} +#endif +#ifdef USE_WEIGHTS +uniform vec4 channelWeights; +#endif +uniform float opacity;varying vec2 vUv;void main(){ +#ifdef COLOR_WRITE +vec4 texel=texture2D(inputBuffer,vUv); +#ifdef USE_WEIGHTS +texel*=channelWeights; +#endif +gl_FragColor=opacity*texel; +#ifdef COLOR_SPACE_CONVERSION +#include +#endif +#include +#else +gl_FragColor=vec4(0.0); +#endif +#ifdef DEPTH_WRITE +gl_FragDepth=readDepth(vUv); +#endif +}`,p6="varying vec2 vUv;void main(){vUv=position.xy*0.5+0.5;gl_Position=vec4(position.xy,1.0,1.0);}",m6=class extends mt{constructor(){super({name:"CopyMaterial",defines:{COLOR_SPACE_CONVERSION:"1",DEPTH_PACKING:"0",COLOR_WRITE:"1"},uniforms:{inputBuffer:new C1(null),depthBuffer:new C1(null),channelWeights:new C1(null),opacity:new C1(1)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:Lu,vertexShader:p6}),this.depthFunc=1}get inputBuffer(){return this.uniforms.inputBuffer.value}set inputBuffer(e){const t=e!==null;this.colorWrite!==t&&(t?this.defines.COLOR_WRITE=!0:delete this.defines.COLOR_WRITE,this.colorWrite=t,this.needsUpdate=!0),this.uniforms.inputBuffer.value=e}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(e){const t=e!==null;this.depthWrite!==t&&(t?this.defines.DEPTH_WRITE=!0:delete this.defines.DEPTH_WRITE,this.depthTest=t,this.depthWrite=t,this.needsUpdate=!0),this.uniforms.depthBuffer.value=e}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}get colorSpaceConversion(){return this.defines.COLOR_SPACE_CONVERSION!==void 0}set colorSpaceConversion(e){this.colorSpaceConversion!==e&&(e?this.defines.COLOR_SPACE_CONVERSION=!0:delete this.defines.COLOR_SPACE_CONVERSION,this.needsUpdate=!0)}get channelWeights(){return this.uniforms.channelWeights.value}set channelWeights(e){e!==null?(this.defines.USE_WEIGHTS="1",this.uniforms.channelWeights.value=e):delete this.defines.USE_WEIGHTS,this.needsUpdate=!0}setInputBuffer(e){this.uniforms.inputBuffer.value=e}getOpacity(e){return this.uniforms.opacity.value}setOpacity(e){this.uniforms.opacity.value=e}},Uu=class extends L0{constructor(e,t=!0){super("CopyPass"),this.fullscreenMaterial=new m6,this.needsSwap=!1,this.renderTarget=e,e===void 0&&(this.renderTarget=new Ae(1,1,{minFilter:H1,magFilter:H1,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="CopyPass.Target"),this.autoResize=t}get resize(){return this.autoResize}set resize(e){this.autoResize=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}setAutoResizeEnabled(e){this.autoResize=e}render(e,t,o,r,s){this.fullscreenMaterial.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){this.autoResize&&this.renderTarget.setSize(e,t)}initialize(e,t,o){o!==void 0&&(this.renderTarget.texture.type=o,o!==1009?this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1":e!==null&&e.outputColorSpace==="srgb"&&(this.renderTarget.texture.colorSpace=X0))}},ma=new fe,g6=class extends L0{constructor(e=!0,t=!0,o=!1){super("ClearPass",null,null),this.needsSwap=!1,this.color=e,this.depth=t,this.stencil=o,this.overrideClearColor=null,this.overrideClearAlpha=-1}setClearFlags(e,t,o){this.color=e,this.depth=t,this.stencil=o}getOverrideClearColor(){return this.overrideClearColor}setOverrideClearColor(e){this.overrideClearColor=e}getOverrideClearAlpha(){return this.overrideClearAlpha}setOverrideClearAlpha(e){this.overrideClearAlpha=e}render(e,t,o,r,s){const i=this.overrideClearColor,n=this.overrideClearAlpha,a=e.getClearAlpha(),l=i!==null,u=n>=0;l?(e.getClearColor(ma),e.setClearColor(i,u?n:a)):u&&e.setClearAlpha(n),e.setRenderTarget(this.renderToScreen?null:t),e.clear(this.color,this.depth,this.stencil),l?e.setClearColor(ma,a):u&&e.setClearAlpha(a)}},Ou=class extends L0{constructor(e,t){super("MaskPass",e,t),this.needsSwap=!1,this.clearPass=new g6(!1,!1,!0),this.inverse=!1}set mainScene(e){this.scene=e}set mainCamera(e){this.camera=e}get inverted(){return this.inverse}set inverted(e){this.inverse=e}get clear(){return this.clearPass.enabled}set clear(e){this.clearPass.enabled=e}getClearPass(){return this.clearPass}isInverted(){return this.inverted}setInverted(e){this.inverted=e}render(e,t,o,r,s){const i=e.getContext(),n=e.state.buffers,a=this.scene,l=this.camera,u=this.clearPass,c=this.inverted?0:1,d=1-c;n.color.setMask(!1),n.depth.setMask(!1),n.color.setLocked(!0),n.depth.setLocked(!0),n.stencil.setTest(!0),n.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),n.stencil.setFunc(i.ALWAYS,c,4294967295),n.stencil.setClear(d),n.stencil.setLocked(!0),this.clearPass.enabled&&(this.renderToScreen?u.render(e,null):(u.render(e,t),u.render(e,o))),this.renderToScreen?(e.setRenderTarget(null),e.render(a,l)):(e.setRenderTarget(t),e.render(a,l),e.setRenderTarget(o),e.render(a,l)),n.color.setLocked(!1),n.depth.setLocked(!1),n.stencil.setLocked(!1),n.stencil.setFunc(i.EQUAL,1,4294967295),n.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),n.stencil.setLocked(!0)}},ps=1/1e3,Fu=1e3,Pu=class{constructor(){this.startTime=performance.now(),this.previousTime=0,this.currentTime=0,this._delta=0,this._elapsed=0,this._fixedDelta=1e3/60,this.timescale=1,this.useFixedDelta=!1,this._autoReset=!1}get autoReset(){return this._autoReset}set autoReset(e){typeof document<"u"&&document.hidden!==void 0&&(e?document.addEventListener("visibilitychange",this):document.removeEventListener("visibilitychange",this),this._autoReset=e)}get delta(){return this._delta*ps}get fixedDelta(){return this._fixedDelta*ps}set fixedDelta(e){this._fixedDelta=e*Fu}get elapsed(){return this._elapsed*ps}update(e){this.useFixedDelta?this._delta=this.fixedDelta:(this.previousTime=this.currentTime,this.currentTime=(e!==void 0?e:performance.now())-this.startTime,this._delta=this.currentTime-this.previousTime),this._delta*=this.timescale,this._elapsed+=this._delta}reset(){this._delta=0,this._elapsed=0,this.currentTime=performance.now()-this.startTime}getDelta(){return this.delta}getElapsed(){return this.elapsed}handleEvent(e){document.hidden||(this.currentTime=performance.now()-this.startTime)}dispose(){this.autoReset=!1}},Du=class{constructor(e=null,{depthBuffer:t=!0,stencilBuffer:o=!1,multisampling:r=0,frameBufferType:s}={}){this.renderer=null,this.inputBuffer=this.createBuffer(t,o,s,r),this.outputBuffer=this.inputBuffer.clone(),this.copyPass=new Uu,this.depthRenderTarget=null,this.passes=[],this.timer=new Pu,this.autoRenderToScreen=!0,this.setRenderer(e)}get stableDepthTexture(){return this.depthRenderTarget===null?null:this.depthRenderTarget.depthTexture}get multisampling(){return this.inputBuffer.samples}set multisampling(e){this.multisampling!==e&&(this.inputBuffer.samples=e,this.outputBuffer.samples=e,this.inputBuffer.dispose(),this.outputBuffer.dispose())}getTimer(){return this.timer}getRenderer(){return this.renderer}setRenderer(e){if(this.renderer=e,e!==null){const t=e.getSize(new f1),o=e.getContext().getContextAttributes().alpha,r=this.inputBuffer.texture.type;r===1009&&e.outputColorSpace==="srgb"&&(this.inputBuffer.texture.colorSpace=X0,this.outputBuffer.texture.colorSpace=X0,this.inputBuffer.dispose(),this.outputBuffer.dispose()),e.autoClear=!1,this.setSize(t.width,t.height);for(const s of this.passes)s.initialize(e,o,r)}}replaceRenderer(e,t=!0){const o=this.renderer,r=o.domElement.parentNode;return this.setRenderer(e),t&&r!==null&&(r.removeChild(o.domElement),r.appendChild(e.domElement)),o}createDepthTexture(){const e=new Te;e.name="EffectComposer.InputDepth",this.inputBuffer.stencilBuffer?(e.format=Ot,e.type=Ft):e.type=se;const t=e.clone();t.name="EffectComposer.OutputDepth";const o=e.clone();o.name="EffectComposer.StableDepth",this.inputBuffer.depthTexture=e,this.outputBuffer.depthTexture=t,this.inputBuffer.dispose(),this.outputBuffer.dispose();const{width:r,height:s}=this.inputBuffer;this.depthRenderTarget=new Ae(r,s,{depthBuffer:!0,stencilBuffer:this.inputBuffer.stencilBuffer,depthTexture:o})}blitDepthBuffer(e){const t=this.renderer,o=this.depthRenderTarget,r=t.properties,s=t.getContext();t.setRenderTarget(o);const i=r.get(e).__webglFramebuffer,n=r.get(o).__webglFramebuffer,a=e.stencilBuffer?s.DEPTH_BUFFER_BIT|s.STENCIL_BUFFER_BIT:s.DEPTH_BUFFER_BIT;s.bindFramebuffer(s.READ_FRAMEBUFFER,i),s.bindFramebuffer(s.DRAW_FRAMEBUFFER,n),s.blitFramebuffer(0,0,e.width,e.height,0,0,o.width,o.height,a,s.NEAREST),s.bindFramebuffer(s.READ_FRAMEBUFFER,null),s.bindFramebuffer(s.DRAW_FRAMEBUFFER,null),t.setRenderTarget(null)}deleteDepthTexture(){const e=this.stableDepthTexture;for(const t of this.passes)t.getDepthTexture()===e&&t.setDepthTexture(null);this.depthRenderTarget!==null&&(this.depthRenderTarget.dispose(),this.depthRenderTarget=null),this.inputBuffer.depthTexture!==null&&(this.inputBuffer.depthTexture.dispose(),this.inputBuffer.depthTexture=null),this.outputBuffer.depthTexture!==null&&(this.outputBuffer.depthTexture.dispose(),this.outputBuffer.depthTexture=null)}createBuffer(e,t,o,r){const s=this.renderer,i=s===null?new f1:s.getDrawingBufferSize(new f1),n=new Ae(i.width,i.height,{minFilter:H1,magFilter:H1,samples:r,stencilBuffer:t,depthBuffer:e,type:o});return o===1009&&s!==null&&s.outputColorSpace==="srgb"&&(n.texture.colorSpace=X0),n.texture.name="EffectComposer.Buffer",n.texture.generateMipmaps=!1,n}setMainScene(e){for(const t of this.passes)t.mainScene=e}setMainCamera(e){for(const t of this.passes)t.mainCamera=e}addPass(e,t){const o=this.passes,r=this.renderer,s=r.getDrawingBufferSize(new f1),i=r.getContext().getContextAttributes().alpha,n=this.inputBuffer.texture.type;if(e.renderer=r,e.setSize(s.width,s.height),e.initialize(r,i,n),this.autoRenderToScreen&&(o.length>0&&(o[o.length-1].renderToScreen=!1),e.renderToScreen&&(this.autoRenderToScreen=!1)),t!==void 0?o.splice(t,0,e):o.push(e),this.autoRenderToScreen&&(o[o.length-1].renderToScreen=!0),e.needsDepthTexture||this.depthRenderTarget!==null)if(this.depthRenderTarget===null){this.createDepthTexture();for(const a of o)a.setDepthTexture(this.stableDepthTexture)}else e.setDepthTexture(this.stableDepthTexture)}removePass(e){const t=this.passes,o=t.indexOf(e);if(o!==-1&&t.splice(o,1).length>0){const r=this.stableDepthTexture;if(r!==null){const s=(i,n)=>i||n.needsDepthTexture;t.reduce(s,!1)||(e.getDepthTexture()===r&&e.setDepthTexture(null),this.deleteDepthTexture())}this.autoRenderToScreen&&o===t.length&&(e.renderToScreen=!1,t.length>0&&(t[t.length-1].renderToScreen=!0))}}removeAllPasses(){const e=this.passes;this.deleteDepthTexture(),e.length>0&&(this.autoRenderToScreen&&(e[e.length-1].renderToScreen=!1),this.passes=[])}render(e){const t=this.renderer,o=this.copyPass;let r=this.inputBuffer,s=this.outputBuffer,i,n=!1;e===void 0&&(this.timer.update(),e=this.timer.getDelta());for(const a of this.passes)if(a.enabled){if(a.render(t,r,s,e,n),a.needsDepthBlit&&this.depthRenderTarget!==null&&this.blitDepthBuffer(r),a.needsSwap){if(n){o.renderToScreen=a.renderToScreen;const l=t.getContext(),u=t.state.buffers.stencil;u.setFunc(l.NOTEQUAL,1,4294967295),o.render(t,r,s,e,n),u.setFunc(l.EQUAL,1,4294967295)}i=r,r=s,s=i}a instanceof Ou?n=!0:a instanceof Wu&&(n=!1)}}setSize(e,t,o){const r=this.renderer,s=r.getSize(new f1);(e===void 0||t===void 0)&&(e=s.width,t=s.height),(s.width!==e||s.height!==t)&&r.setSize(e,t,o);const i=r.getDrawingBufferSize(new f1);this.inputBuffer.setSize(i.width,i.height),this.outputBuffer.setSize(i.width,i.height),this.depthRenderTarget!==null&&this.depthRenderTarget.setSize(i.width,i.height);for(const n of this.passes)n.setSize(i.width,i.height)}reset(){this.dispose(),this.autoRenderToScreen=!0}dispose(){for(const e of this.passes)e.dispose();this.deleteDepthTexture(),this.inputBuffer.dispose(),this.outputBuffer.dispose(),this.copyPass.dispose(),this.timer.dispose(),this.passes=[],L0.fullscreenGeometry.dispose()}},v2={NONE:0,DEPTH:1,CONVOLUTION:2},A1={FRAGMENT_HEAD:"FRAGMENT_HEAD",FRAGMENT_MAIN_UV:"FRAGMENT_MAIN_UV",FRAGMENT_MAIN_IMAGE:"FRAGMENT_MAIN_IMAGE",VERTEX_HEAD:"VERTEX_HEAD",VERTEX_MAIN_SUPPORT:"VERTEX_MAIN_SUPPORT"},ku=class{constructor(){this.shaderParts=new Map([[A1.FRAGMENT_HEAD,null],[A1.FRAGMENT_MAIN_UV,null],[A1.FRAGMENT_MAIN_IMAGE,null],[A1.VERTEX_HEAD,null],[A1.VERTEX_MAIN_SUPPORT,null]]),this.defines=new Map,this.uniforms=new Map,this.blendModes=new Map,this.extensions=new Set,this.attributes=v2.NONE,this.varyings=new Set,this.uvTransformation=!1,this.readDepth=!1,this.colorSpace=on}},ms=!1,ga=class{constructor(e=null){this.originalMaterials=new Map,this.material=null,this.materials=null,this.materialsBackSide=null,this.materialsDoubleSide=null,this.materialsFlatShaded=null,this.materialsFlatShadedBackSide=null,this.materialsFlatShadedDoubleSide=null,this.setMaterial(e),this.meshCount=0,this.replaceMaterial=t=>{if(t.isMesh){let o;if(t.material.flatShading)switch(t.material.side){case 2:o=this.materialsFlatShadedDoubleSide;break;case 1:o=this.materialsFlatShadedBackSide;break;default:o=this.materialsFlatShaded}else switch(t.material.side){case 2:o=this.materialsDoubleSide;break;case 1:o=this.materialsBackSide;break;default:o=this.materials}this.originalMaterials.set(t,t.material),t.isSkinnedMesh?t.material=o[2]:t.isInstancedMesh?t.material=o[1]:t.material=o[0],++this.meshCount}}}cloneMaterial(e){if(!(e instanceof mt))return e.clone();const t=e.uniforms,o=new Map;for(const s in t){const i=t[s].value;i.isRenderTargetTexture&&(t[s].value=null,o.set(s,i))}const r=e.clone();for(const s of o)t[s[0]].value=s[1],r.uniforms[s[0]].value=s[1];return r}setMaterial(e){if(this.disposeMaterials(),this.material=e,e!==null){const t=this.materials=[this.cloneMaterial(e),this.cloneMaterial(e),this.cloneMaterial(e)];for(const o of t)o.uniforms=Object.assign({},e.uniforms),o.side=0;t[2].skinning=!0,this.materialsBackSide=t.map(o=>{const r=this.cloneMaterial(o);return r.uniforms=Object.assign({},e.uniforms),r.side=1,r}),this.materialsDoubleSide=t.map(o=>{const r=this.cloneMaterial(o);return r.uniforms=Object.assign({},e.uniforms),r.side=2,r}),this.materialsFlatShaded=t.map(o=>{const r=this.cloneMaterial(o);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r}),this.materialsFlatShadedBackSide=t.map(o=>{const r=this.cloneMaterial(o);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r.side=1,r}),this.materialsFlatShadedDoubleSide=t.map(o=>{const r=this.cloneMaterial(o);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r.side=2,r})}}render(e,t,o){const r=e.shadowMap.enabled;if(e.shadowMap.enabled=!1,ms){const s=this.originalMaterials;this.meshCount=0,t.traverse(this.replaceMaterial),e.render(t,o);for(const i of s)i[0].material=i[1];this.meshCount!==s.size&&s.clear()}else{const s=t.overrideMaterial;t.overrideMaterial=this.material,e.render(t,o),t.overrideMaterial=s}e.shadowMap.enabled=r}disposeMaterials(){if(this.material!==null){const e=this.materials.concat(this.materialsBackSide).concat(this.materialsDoubleSide).concat(this.materialsFlatShaded).concat(this.materialsFlatShadedBackSide).concat(this.materialsFlatShadedDoubleSide);for(const t of e)t.dispose()}}dispose(){this.originalMaterials.clear(),this.disposeMaterials()}static get workaroundEnabled(){return ms}static set workaroundEnabled(e){ms=e}},vt=-1,w0=class extends B2{constructor(e=null,t=vt,o=vt,r=1){super(),e!==null&&this.addEventListener("change",()=>e.setSize(this.baseSize.width,this.baseSize.height)),this.baseSize=new f1(1,1),this.preferredSize=new f1(t,o),this.target=this.preferredSize,this.s=r,this.effectiveSize=new f1,this.addEventListener("change",()=>this.updateEffectiveSize()),this.updateEffectiveSize()}updateEffectiveSize(){const e=this.baseSize,t=this.preferredSize,o=this.effectiveSize,r=this.scale;t.width!==vt?o.width=t.width:t.height!==vt?o.width=Math.round(t.height*(e.width/Math.max(e.height,1))):o.width=Math.round(e.width*r),t.height!==vt?o.height=t.height:t.width!==vt?o.height=Math.round(t.width/Math.max(e.width/Math.max(e.height,1),1)):o.height=Math.round(e.height*r)}get width(){return this.effectiveSize.width}set width(e){this.preferredWidth=e}get height(){return this.effectiveSize.height}set height(e){this.preferredHeight=e}getWidth(){return this.width}getHeight(){return this.height}get scale(){return this.s}set scale(e){this.s!==e&&(this.s=e,this.preferredSize.setScalar(vt),this.dispatchEvent({type:"change"}))}getScale(){return this.scale}setScale(e){this.scale=e}get baseWidth(){return this.baseSize.width}set baseWidth(e){this.baseSize.width!==e&&(this.baseSize.width=e,this.dispatchEvent({type:"change"}))}getBaseWidth(){return this.baseWidth}setBaseWidth(e){this.baseWidth=e}get baseHeight(){return this.baseSize.height}set baseHeight(e){this.baseSize.height!==e&&(this.baseSize.height=e,this.dispatchEvent({type:"change"}))}getBaseHeight(){return this.baseHeight}setBaseHeight(e){this.baseHeight=e}setBaseSize(e,t){(this.baseSize.width!==e||this.baseSize.height!==t)&&(this.baseSize.set(e,t),this.dispatchEvent({type:"change"}))}get preferredWidth(){return this.preferredSize.width}set preferredWidth(e){this.preferredSize.width!==e&&(this.preferredSize.width=e,this.dispatchEvent({type:"change"}))}getPreferredWidth(){return this.preferredWidth}setPreferredWidth(e){this.preferredWidth=e}get preferredHeight(){return this.preferredSize.height}set preferredHeight(e){this.preferredSize.height!==e&&(this.preferredSize.height=e,this.dispatchEvent({type:"change"}))}getPreferredHeight(){return this.preferredHeight}setPreferredHeight(e){this.preferredHeight=e}setPreferredSize(e,t){(this.preferredSize.width!==e||this.preferredSize.height!==t)&&(this.preferredSize.set(e,t),this.dispatchEvent({type:"change"}))}copy(e){this.s=e.scale,this.baseSize.set(e.baseWidth,e.baseHeight),this.preferredSize.set(e.preferredWidth,e.preferredHeight),this.dispatchEvent({type:"change"})}static get AUTO_SIZE(){return vt}},N1={SKIP:9,SET:30,ADD:0,ALPHA:1,AVERAGE:2,COLOR:3,COLOR_BURN:4,COLOR_DODGE:5,DARKEN:6,DIFFERENCE:7,DIVIDE:8,DST:9,EXCLUSION:10,HARD_LIGHT:11,HARD_MIX:12,HUE:13,INVERT:14,INVERT_RGB:15,LIGHTEN:16,LINEAR_BURN:17,LINEAR_DODGE:18,LINEAR_LIGHT:19,LUMINOSITY:20,MULTIPLY:21,NEGATION:22,NORMAL:23,OVERLAY:24,PIN_LIGHT:25,REFLECT:26,SATURATION:27,SCREEN:28,SOFT_LIGHT:29,SRC:30,SUBTRACT:31,VIVID_LIGHT:32},Xu=new Map([[N1.ADD,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb+src.rgb;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.ALPHA,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){return mix(dst,src,src.a*opacity);}"],[N1.AVERAGE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=(dst.rgb+src.rgb)*0.5;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.COLOR,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(b.xy,a.z));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.COLOR_BURN,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=dst.rgb,b=src.rgb;vec3 c=mix(step(0.0,b)*(1.0-min(vec3(1.0),(1.0-a)/max(b,1e-9))),vec3(1.0),step(1.0,a));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.COLOR_DODGE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=dst.rgb,b=src.rgb;vec3 c=step(0.0,a)*mix(min(vec3(1.0),a/max(1.0-b,1e-9)),vec3(1.0),step(1.0,b));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.DARKEN,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=min(dst.rgb,src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.DIFFERENCE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=abs(dst.rgb-src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.DIVIDE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb/max(src.rgb,1e-9);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.DST,null],[N1.EXCLUSION,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb+src.rgb-2.0*dst.rgb*src.rgb;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.HARD_LIGHT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=min(dst.rgb,1.0);vec3 b=min(src.rgb,1.0);vec3 c=mix(2.0*a*b,1.0-2.0*(1.0-a)*(1.0-b),step(0.5,b));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.HARD_MIX,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=step(1.0,dst.rgb+src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.HUE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(b.x,a.yz));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.INVERT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(1.0-src.rgb,0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.INVERT_RGB,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=src.rgb*max(1.0-dst.rgb,0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.LIGHTEN,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(dst.rgb,src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.LINEAR_BURN,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=clamp(src.rgb+dst.rgb-1.0,0.0,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.LINEAR_DODGE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=min(dst.rgb+src.rgb,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.LINEAR_LIGHT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=clamp(2.0*src.rgb+dst.rgb-1.0,0.0,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.LUMINOSITY,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(a.xy,b.z));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.MULTIPLY,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb*src.rgb;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.NEGATION,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(1.0-abs(1.0-dst.rgb-src.rgb),0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.NORMAL,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){return mix(dst,src,opacity);}"],[N1.OVERLAY,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=2.0*src.rgb*dst.rgb;vec3 b=1.0-2.0*(1.0-src.rgb)*(1.0-dst.rgb);vec3 c=mix(a,b,step(0.5,dst.rgb));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.PIN_LIGHT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 src2=2.0*src.rgb;vec3 c=mix(mix(src2,dst.rgb,step(0.5*dst.rgb,src.rgb)),max(src2-1.0,vec3(0.0)),step(dst.rgb,src2-1.0));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.REFLECT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=min(dst.rgb*dst.rgb/max(1.0-src.rgb,1e-9),1.0);vec3 c=mix(a,src.rgb,step(1.0,src.rgb));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.SATURATION,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(a.x,b.y,a.z));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.SCREEN,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb+src.rgb-min(dst.rgb*src.rgb,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.SOFT_LIGHT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 src2=2.0*src.rgb;vec3 d=dst.rgb+(src2-1.0);vec3 w=step(0.5,src.rgb);vec3 a=dst.rgb-(1.0-src2)*dst.rgb*(1.0-dst.rgb);vec3 b=mix(d*(sqrt(dst.rgb)-dst.rgb),d*dst.rgb*((16.0*dst.rgb-12.0)*dst.rgb+3.0),w*(1.0-step(0.25,dst.rgb)));vec3 c=mix(a,b,w);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.SRC,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){return src;}"],[N1.SUBTRACT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(dst.rgb-src.rgb,0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.VIVID_LIGHT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=mix(max(1.0-min((1.0-dst.rgb)/(2.0*src.rgb),1.0),0.0),min(dst.rgb/(2.0*(1.0-src.rgb)),1.0),step(0.5,src.rgb));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"]]),Iu=class extends B2{constructor(e,t=1){super(),this._blendFunction=e,this.opacity=new C1(t)}getOpacity(){return this.opacity.value}setOpacity(e){this.opacity.value=e}get blendFunction(){return this._blendFunction}set blendFunction(e){this._blendFunction=e,this.dispatchEvent({type:"change"})}getBlendFunction(){return this.blendFunction}setBlendFunction(e){this.blendFunction=e}getShaderCode(){return Xu.get(this.blendFunction)}},Wr=class extends B2{constructor(e,t,{attributes:o=v2.NONE,blendFunction:r=N1.NORMAL,defines:s=new Map,uniforms:i=new Map,extensions:n=null,vertexShader:a=null}={}){super(),this.name=e,this.renderer=null,this.attributes=o,this.fragmentShader=t,this.vertexShader=a,this.defines=s,this.uniforms=i,this.extensions=n,this.blendMode=new Iu(r),this.blendMode.addEventListener("change",l=>this.setChanged()),this._inputColorSpace=on,this._outputColorSpace=""}get inputColorSpace(){return this._inputColorSpace}set inputColorSpace(e){this._inputColorSpace=e,this.setChanged()}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e,this.setChanged()}set mainScene(e){}set mainCamera(e){}getName(){return this.name}setRenderer(e){this.renderer=e}getDefines(){return this.defines}getUniforms(){return this.uniforms}getExtensions(){return this.extensions}getBlendMode(){return this.blendMode}getAttributes(){return this.attributes}setAttributes(e){this.attributes=e,this.setChanged()}getFragmentShader(){return this.fragmentShader}setFragmentShader(e){this.fragmentShader=e,this.setChanged()}getVertexShader(){return this.vertexShader}setVertexShader(e){this.vertexShader=e,this.setChanged()}setChanged(){this.dispatchEvent({type:"change"})}setDepthTexture(e,t=f3){}update(e,t,o){}setSize(e,t){}initialize(e,t,o){}dispose(){for(const e of Object.keys(this)){const t=this[e];(t instanceof Ae||t instanceof Br||t instanceof bo||t instanceof L0)&&this[e].dispose()}}},un={VERY_SMALL:0,SMALL:1,MEDIUM:2,LARGE:3,VERY_LARGE:4,HUGE:5},Gu=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec4 sum=texture2D(inputBuffer,vUv0);sum+=texture2D(inputBuffer,vUv1);sum+=texture2D(inputBuffer,vUv2);sum+=texture2D(inputBuffer,vUv3);gl_FragColor=sum*0.25; +#include +}`,zu="uniform vec4 texelSize;uniform float kernel;uniform float scale;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec2 uv=position.xy*0.5+0.5;vec2 dUv=(texelSize.xy*vec2(kernel)+texelSize.zw)*scale;vUv0=vec2(uv.x-dUv.x,uv.y+dUv.y);vUv1=vec2(uv.x+dUv.x,uv.y+dUv.y);vUv2=vec2(uv.x+dUv.x,uv.y-dUv.y);vUv3=vec2(uv.x-dUv.x,uv.y-dUv.y);gl_Position=vec4(position.xy,1.0,1.0);}",$u=[new Float32Array([0,0]),new Float32Array([0,1,1]),new Float32Array([0,1,1,2]),new Float32Array([0,1,2,2,3]),new Float32Array([0,1,2,3,4,4,5]),new Float32Array([0,1,2,3,4,5,7,8,9,10])],Vu=class extends mt{constructor(e=new S1){super({name:"KawaseBlurMaterial",uniforms:{inputBuffer:new C1(null),texelSize:new C1(new S1),scale:new C1(1),kernel:new C1(0)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:Gu,vertexShader:zu}),this.setTexelSize(e.x,e.y),this.kernelSize=un.MEDIUM}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.inputBuffer=e}get kernelSequence(){return $u[this.kernelSize]}get scale(){return this.uniforms.scale.value}set scale(e){this.uniforms.scale.value=e}getScale(){return this.uniforms.scale.value}setScale(e){this.uniforms.scale.value=e}getKernel(){return null}get kernel(){return this.uniforms.kernel.value}set kernel(e){this.uniforms.kernel.value=e}setKernel(e){this.kernel=e}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t,e*.5,t*.5)}setSize(e,t){const o=1/e,r=1/t;this.uniforms.texelSize.value.set(o,r,o*.5,r*.5)}},Qu=class extends L0{constructor({kernelSize:e=un.MEDIUM,resolutionScale:t=.5,width:o=w0.AUTO_SIZE,height:r=w0.AUTO_SIZE,resolutionX:s=o,resolutionY:i=r}={}){super("KawaseBlurPass"),this.renderTargetA=new Ae(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B";const n=this.resolution=new w0(this,s,i,t);n.addEventListener("change",a=>this.setSize(n.baseWidth,n.baseHeight)),this._blurMaterial=new Vu,this._blurMaterial.kernelSize=e,this.copyMaterial=new m6}getResolution(){return this.resolution}get blurMaterial(){return this._blurMaterial}set blurMaterial(e){this._blurMaterial=e}get dithering(){return this.copyMaterial.dithering}set dithering(e){this.copyMaterial.dithering=e}get kernelSize(){return this.blurMaterial.kernelSize}set kernelSize(e){this.blurMaterial.kernelSize=e}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get scale(){return this.blurMaterial.scale}set scale(e){this.blurMaterial.scale=e}getScale(){return this.blurMaterial.scale}setScale(e){this.blurMaterial.scale=e}getKernelSize(){return this.kernelSize}setKernelSize(e){this.kernelSize=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,o,r,s){const i=this.scene,n=this.camera,a=this.renderTargetA,l=this.renderTargetB,u=this.blurMaterial,c=u.kernelSequence;let d=t;this.fullscreenMaterial=u;for(let h=0,f=c.length;h +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#ifdef RANGE +uniform vec2 range; +#elif defined(THRESHOLD) +uniform float threshold;uniform float smoothing; +#endif +varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);float mask=1.0; +#ifdef RANGE +float low=step(range.x,l);float high=step(l,range.y);mask=low*high; +#elif defined(THRESHOLD) +mask=smoothstep(threshold,threshold+smoothing,l); +#endif +#ifdef COLOR +gl_FragColor=texel*mask; +#else +gl_FragColor=vec4(l*mask); +#endif +}`,qu=class extends mt{constructor(e=!1,t=null){super({name:"LuminanceMaterial",defines:{THREE_REVISION:"185".replace(/\D+/g,"")},uniforms:{inputBuffer:new C1(null),threshold:new C1(0),smoothing:new C1(1),range:new C1(null)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:Zu,vertexShader:p6}),this.colorOutput=e,this.luminanceRange=t}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get threshold(){return this.uniforms.threshold.value}set threshold(e){this.smoothing>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.threshold.value=e}getThreshold(){return this.threshold}setThreshold(e){this.threshold=e}get smoothing(){return this.uniforms.smoothing.value}set smoothing(e){this.threshold>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.smoothing.value=e}getSmoothingFactor(){return this.smoothing}setSmoothingFactor(e){this.smoothing=e}get useThreshold(){return this.threshold>0||this.smoothing>0}set useThreshold(e){}get colorOutput(){return this.defines.COLOR!==void 0}set colorOutput(e){e?this.defines.COLOR="1":delete this.defines.COLOR,this.needsUpdate=!0}isColorOutputEnabled(e){return this.colorOutput}setColorOutputEnabled(e){this.colorOutput=e}get useRange(){return this.luminanceRange!==null}set useRange(e){this.luminanceRange=null}get luminanceRange(){return this.uniforms.range.value}set luminanceRange(e){e!==null?this.defines.RANGE="1":delete this.defines.RANGE,this.uniforms.range.value=e,this.needsUpdate=!0}getLuminanceRange(){return this.luminanceRange}setLuminanceRange(e){this.luminanceRange=e}},Hu=class extends L0{constructor({renderTarget:e,luminanceRange:t,colorOutput:o,resolutionScale:r=1,width:s=w0.AUTO_SIZE,height:i=w0.AUTO_SIZE,resolutionX:n=s,resolutionY:a=i}={}){super("LuminancePass"),this.fullscreenMaterial=new qu(o,t),this.needsSwap=!1,this.renderTarget=e,this.renderTarget===void 0&&(this.renderTarget=new Ae(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="LuminancePass.Target");const l=this.resolution=new w0(this,n,a,r);l.addEventListener("change",u=>this.setSize(l.baseWidth,l.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}render(e,t,o,r,s){const i=this.fullscreenMaterial;i.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){const o=this.resolution;o.setBaseSize(e,t),this.renderTarget.setSize(o.width,o.height)}initialize(e,t,o){o!==void 0&&o!==1009&&(this.renderTarget.texture.type=o,this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},Ju=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#define WEIGHT_INNER 0.125 +#define WEIGHT_OUTER 0.05556 +varying vec2 vUv;varying vec2 vUv00;varying vec2 vUv01;varying vec2 vUv02;varying vec2 vUv03;varying vec2 vUv04;varying vec2 vUv05;varying vec2 vUv06;varying vec2 vUv07;varying vec2 vUv08;varying vec2 vUv09;varying vec2 vUv10;varying vec2 vUv11;float clampToBorder(const in vec2 uv){return float(uv.s>=0.0&&uv.s<=1.0&&uv.t>=0.0&&uv.t<=1.0);}void main(){vec4 c=vec4(0.0);vec4 w=WEIGHT_INNER*vec4(clampToBorder(vUv00),clampToBorder(vUv01),clampToBorder(vUv02),clampToBorder(vUv03));c+=w.x*texture2D(inputBuffer,vUv00);c+=w.y*texture2D(inputBuffer,vUv01);c+=w.z*texture2D(inputBuffer,vUv02);c+=w.w*texture2D(inputBuffer,vUv03);w=WEIGHT_OUTER*vec4(clampToBorder(vUv04),clampToBorder(vUv05),clampToBorder(vUv06),clampToBorder(vUv07));c+=w.x*texture2D(inputBuffer,vUv04);c+=w.y*texture2D(inputBuffer,vUv05);c+=w.z*texture2D(inputBuffer,vUv06);c+=w.w*texture2D(inputBuffer,vUv07);w=WEIGHT_OUTER*vec4(clampToBorder(vUv08),clampToBorder(vUv09),clampToBorder(vUv10),clampToBorder(vUv11));c+=w.x*texture2D(inputBuffer,vUv08);c+=w.y*texture2D(inputBuffer,vUv09);c+=w.z*texture2D(inputBuffer,vUv10);c+=w.w*texture2D(inputBuffer,vUv11);c+=WEIGHT_OUTER*texture2D(inputBuffer,vUv);gl_FragColor=c; +#include +}`,ju="uniform vec2 texelSize;varying vec2 vUv;varying vec2 vUv00;varying vec2 vUv01;varying vec2 vUv02;varying vec2 vUv03;varying vec2 vUv04;varying vec2 vUv05;varying vec2 vUv06;varying vec2 vUv07;varying vec2 vUv08;varying vec2 vUv09;varying vec2 vUv10;varying vec2 vUv11;void main(){vUv=position.xy*0.5+0.5;vUv00=vUv+texelSize*vec2(-1.0,1.0);vUv01=vUv+texelSize*vec2(1.0,1.0);vUv02=vUv+texelSize*vec2(-1.0,-1.0);vUv03=vUv+texelSize*vec2(1.0,-1.0);vUv04=vUv+texelSize*vec2(-2.0,2.0);vUv05=vUv+texelSize*vec2(0.0,2.0);vUv06=vUv+texelSize*vec2(2.0,2.0);vUv07=vUv+texelSize*vec2(-2.0,0.0);vUv08=vUv+texelSize*vec2(2.0,0.0);vUv09=vUv+texelSize*vec2(-2.0,-2.0);vUv10=vUv+texelSize*vec2(0.0,-2.0);vUv11=vUv+texelSize*vec2(2.0,-2.0);gl_Position=vec4(position.xy,1.0,1.0);}",Ku=class extends mt{constructor(){super({name:"DownsamplingMaterial",uniforms:{inputBuffer:new C1(null),texelSize:new C1(new f1)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:Ju,vertexShader:ju})}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},Yu=`#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer;uniform mediump sampler2D supportBuffer; +#else +uniform lowp sampler2D inputBuffer;uniform lowp sampler2D supportBuffer; +#endif +uniform float radius;varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5;varying vec2 vUv6;varying vec2 vUv7;void main(){vec4 c=vec4(0.0);c+=texture2D(inputBuffer,vUv0)*0.0625;c+=texture2D(inputBuffer,vUv1)*0.125;c+=texture2D(inputBuffer,vUv2)*0.0625;c+=texture2D(inputBuffer,vUv3)*0.125;c+=texture2D(inputBuffer,vUv)*0.25;c+=texture2D(inputBuffer,vUv4)*0.125;c+=texture2D(inputBuffer,vUv5)*0.0625;c+=texture2D(inputBuffer,vUv6)*0.125;c+=texture2D(inputBuffer,vUv7)*0.0625;vec4 baseColor=texture2D(supportBuffer,vUv);gl_FragColor=mix(baseColor,c,radius); +#include +}`,ec="uniform vec2 texelSize;varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5;varying vec2 vUv6;varying vec2 vUv7;void main(){vUv=position.xy*0.5+0.5;vUv0=vUv+texelSize*vec2(-1.0,1.0);vUv1=vUv+texelSize*vec2(0.0,1.0);vUv2=vUv+texelSize*vec2(1.0,1.0);vUv3=vUv+texelSize*vec2(-1.0,0.0);vUv4=vUv+texelSize*vec2(1.0,0.0);vUv5=vUv+texelSize*vec2(-1.0,-1.0);vUv6=vUv+texelSize*vec2(0.0,-1.0);vUv7=vUv+texelSize*vec2(1.0,-1.0);gl_Position=vec4(position.xy,1.0,1.0);}",tc=class extends mt{constructor(){super({name:"UpsamplingMaterial",uniforms:{inputBuffer:new C1(null),supportBuffer:new C1(null),texelSize:new C1(new f1),radius:new C1(.85)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:Yu,vertexShader:ec})}set inputBuffer(e){this.uniforms.inputBuffer.value=e}set supportBuffer(e){this.uniforms.supportBuffer.value=e}get radius(){return this.uniforms.radius.value}set radius(e){this.uniforms.radius.value=e}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},oc=class extends L0{constructor(){super("MipmapBlurPass"),this.needsSwap=!1,this.renderTarget=new Ae(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="Upsampling.Mipmap0",this.downsamplingMipmaps=[],this.upsamplingMipmaps=[],this.downsamplingMaterial=new Ku,this.upsamplingMaterial=new tc,this.resolution=new f1}get texture(){return this.renderTarget.texture}get levels(){return this.downsamplingMipmaps.length}set levels(e){if(this.levels!==e){const t=this.renderTarget;this.dispose(),this.downsamplingMipmaps=[],this.upsamplingMipmaps=[];for(let o=0;o=0;--h){const f=c[h];l.setSize(d.width,d.height),l.inputBuffer=d.texture,l.supportBuffer=u[h].texture,e.setRenderTarget(f),e.render(i,n),d=f}}setSize(e,t){const o=this.resolution;o.set(e,t);let r=o.width,s=o.height;for(let i=0,n=this.downsamplingMipmaps.length;ithis.setSize(f.baseWidth,f.baseHeight))}get texture(){return this.mipmapBlurPass.enabled?this.mipmapBlurPass.texture:this.renderTarget.texture}getTexture(){return this.texture}getResolution(){return this.resolution}getBlurPass(){return this.blurPass}getLuminancePass(){return this.luminancePass}get luminanceMaterial(){return this.luminancePass.fullscreenMaterial}getLuminanceMaterial(){return this.luminancePass.fullscreenMaterial}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get dithering(){return this.blurPass.dithering}set dithering(e){this.blurPass.dithering=e}get kernelSize(){return this.blurPass.kernelSize}set kernelSize(e){this.blurPass.kernelSize=e}get distinction(){return 1}set distinction(e){}get intensity(){return this.uniforms.get("intensity").value}set intensity(e){this.uniforms.get("intensity").value=e}getIntensity(){return this.intensity}setIntensity(e){this.intensity=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}update(e,t,o){const r=this.renderTarget,s=this.luminancePass;s.enabled?(s.render(e,t),this.mipmapBlurPass.enabled?this.mipmapBlurPass.render(e,s.renderTarget):this.blurPass.render(e,s.renderTarget,r)):this.mipmapBlurPass.enabled?this.mipmapBlurPass.render(e,t):this.blurPass.render(e,t,r)}setSize(e,t){const o=this.resolution;o.setBaseSize(e,t),this.renderTarget.setSize(o.width,o.height),this.blurPass.resolution.copy(o),this.luminancePass.setSize(e,t),this.mipmapBlurPass.setSize(e,t)}initialize(e,t,o){this.blurPass.initialize(e,t,o),this.luminancePass.initialize(e,t,o),this.mipmapBlurPass.initialize(e,t,o),o!==void 0&&(this.renderTarget.texture.type=o,e!==null&&e.outputColorSpace==="srgb"&&(this.renderTarget.texture.colorSpace=X0))}},v6=class extends L0{constructor(e,t,o=null){super("RenderPass",e,t),this.needsSwap=!1,this.needsDepthBlit=!0,this.clearPass=new g6,this.overrideMaterialManager=o===null?null:new ga(o),this.ignoreBackground=!1,this.skipShadowMapUpdate=!1,this.selection=null}set mainScene(e){this.scene=e}set mainCamera(e){this.camera=e}get renderToScreen(){return super.renderToScreen}set renderToScreen(e){super.renderToScreen=e,this.clearPass.renderToScreen=e}get overrideMaterial(){const e=this.overrideMaterialManager;return e!==null?e.material:null}set overrideMaterial(e){const t=this.overrideMaterialManager;e!==null?t!==null?t.setMaterial(e):this.overrideMaterialManager=new ga(e):t!==null&&(t.dispose(),this.overrideMaterialManager=null)}getOverrideMaterial(){return this.overrideMaterial}setOverrideMaterial(e){this.overrideMaterial=e}get clear(){return this.clearPass.enabled}set clear(e){this.clearPass.enabled=e}getSelection(){return this.selection}setSelection(e){this.selection=e}isBackgroundDisabled(){return this.ignoreBackground}setBackgroundDisabled(e){this.ignoreBackground=e}isShadowMapDisabled(){return this.skipShadowMapUpdate}setShadowMapDisabled(e){this.skipShadowMapUpdate=e}getClearPass(){return this.clearPass}render(e,t,o,r,s){const i=this.scene,n=this.camera,a=this.selection,l=n.layers.mask,u=i.background,c=e.shadowMap.autoUpdate,d=this.renderToScreen?null:t;a!==null&&n.layers.set(a.getLayer()),this.skipShadowMapUpdate&&(e.shadowMap.autoUpdate=!1),(this.ignoreBackground||this.clearPass.overrideClearColor!==null)&&(i.background=null),this.clearPass.enabled&&this.clearPass.render(e,t),e.setRenderTarget(d),this.overrideMaterialManager!==null?this.overrideMaterialManager.render(e,i,n):e.render(i,n),n.layers.mask=l,i.background=u,e.shadowMap.autoUpdate=c}},rw=Math.PI*.5,ic=`#include +#ifdef GL_FRAGMENT_PRECISION_HIGH +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +#ifdef DOWNSAMPLE_NORMALS +uniform lowp sampler2D normalBuffer; +#endif +varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +return unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +return texture2D(depthBuffer,uv).r; +#endif +}int findBestDepth(const in float samples[4]){float c=(samples[0]+samples[1]+samples[2]+samples[3])*0.25;float distances[4];distances[0]=abs(c-samples[0]);distances[1]=abs(c-samples[1]);distances[2]=abs(c-samples[2]);distances[3]=abs(c-samples[3]);float maxDistance=max(max(distances[0],distances[1]),max(distances[2],distances[3]));int remaining[3];int rejected[3];int i,j,k;for(i=0,j=0,k=0;i<4;++i){if(distances[i]this.setSize(a.baseWidth,a.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}setDepthTexture(e,t=f3){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t}render(e,t,o,r,s){e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){const o=this.resolution;o.setBaseSize(e,t),this.renderTarget.setSize(o.width,o.height),this.fullscreenMaterial.setSize(e,t)}initialize(e,t,o){const r=e.getContext();if(!(r.getExtension("EXT_color_buffer_float")||r.getExtension("EXT_color_buffer_half_float")))throw new Error("Rendering to float texture is not supported.")}},uc=`#include +#include +#include +#define packFloatToRGBA(v) packDepthToRGBA(v) +#define unpackRGBAToFloat(v) unpackRGBAToDepth(v) +#ifdef FRAMEBUFFER_PRECISION_HIGH +uniform mediump sampler2D inputBuffer; +#else +uniform lowp sampler2D inputBuffer; +#endif +#if DEPTH_PACKING == 3201 +uniform lowp sampler2D depthBuffer; +#elif defined(GL_FRAGMENT_PRECISION_HIGH) +uniform highp sampler2D depthBuffer; +#else +uniform mediump sampler2D depthBuffer; +#endif +uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;vec4 sRGBToLinear(const in vec4 value){return vec4(mix(pow(value.rgb*0.9478672986+vec3(0.0521327014),vec3(2.4)),value.rgb*0.0773993808,vec3(lessThanEqual(value.rgb,vec3(0.04045)))),value.a);}float readDepth(const in vec2 uv){ +#if DEPTH_PACKING == 3201 +float depth=unpackRGBAToDepth(texture2D(depthBuffer,uv)); +#else +float depth=texture2D(depthBuffer,uv).r; +#endif +#if defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(LOG_DEPTH) +float d=pow(2.0,depth*log2(cameraFar+1.0))-1.0;float a=cameraFar/(cameraFar-cameraNear);float b=cameraFar*cameraNear/(cameraNear-cameraFar);depth=a+b/d; +#elif defined(USE_REVERSED_DEPTH_BUFFER) +depth=1.0-depth; +#endif +return depth;}float getViewZ(const in float depth){ +#ifdef PERSPECTIVE_CAMERA +return perspectiveDepthToViewZ(depth,cameraNear,cameraFar); +#else +return orthographicDepthToViewZ(depth,cameraNear,cameraFar); +#endif +}vec3 RGBToHCV(const in vec3 RGB){vec4 P=mix(vec4(RGB.bg,-1.0,2.0/3.0),vec4(RGB.gb,0.0,-1.0/3.0),step(RGB.b,RGB.g));vec4 Q=mix(vec4(P.xyw,RGB.r),vec4(RGB.r,P.yzx),step(P.x,RGB.r));float C=Q.x-min(Q.w,Q.y);float H=abs((Q.w-Q.y)/(6.0*C+EPSILON)+Q.z);return vec3(H,C,Q.x);}vec3 RGBToHSL(const in vec3 RGB){vec3 HCV=RGBToHCV(RGB);float L=HCV.z-HCV.y*0.5;float S=HCV.y/(1.0-abs(L*2.0-1.0)+EPSILON);return vec3(HCV.x,S,L);}vec3 HueToRGB(const in float H){float R=abs(H*6.0-3.0)-1.0;float G=2.0-abs(H*6.0-2.0);float B=2.0-abs(H*6.0-4.0);return clamp(vec3(R,G,B),0.0,1.0);}vec3 HSLToRGB(const in vec3 HSL){vec3 RGB=HueToRGB(HSL.x);float C=(1.0-abs(2.0*HSL.z-1.0))*HSL.y;return(RGB-0.5)*C+HSL.z;}FRAGMENT_HEAD void main(){FRAGMENT_MAIN_UV vec4 color0=texture2D(inputBuffer,UV);vec4 color1=vec4(0.0);FRAGMENT_MAIN_IMAGE color0.a=clamp(color0.a,0.0,1.0);gl_FragColor=color0; +#ifdef ENCODE_OUTPUT +#include +#endif +#include +}`,cc="uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;VERTEX_HEAD void main(){vUv=position.xy*0.5+0.5;VERTEX_MAIN_SUPPORT gl_Position=vec4(position.xy,1.0,1.0);}",dc=class extends mt{constructor(e,t,o,r,s=!1){super({name:"EffectMaterial",defines:{THREE_REVISION:"185".replace(/\D+/g,""),DEPTH_PACKING:"0",ENCODE_OUTPUT:"1"},uniforms:{inputBuffer:new C1(null),depthBuffer:new C1(null),resolution:new C1(new f1),texelSize:new C1(new f1),cameraNear:new C1(.3),cameraFar:new C1(1e3),aspect:new C1(1),time:new C1(0)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,dithering:s}),e&&this.setShaderParts(e),t&&this.setDefines(t),o&&this.setUniforms(o),this.copyCameraSettings(r)}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(e){this.uniforms.depthBuffer.value=e}get depthPacking(){return Number(this.defines.DEPTH_PACKING)}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=f3){this.depthBuffer=e,this.depthPacking=t}setShaderData(e){this.setShaderParts(e.shaderParts),this.setDefines(e.defines),this.setUniforms(e.uniforms),this.setExtensions(e.extensions)}setShaderParts(e){return this.fragmentShader=uc.replace(A1.FRAGMENT_HEAD,e.get(A1.FRAGMENT_HEAD)||"").replace(A1.FRAGMENT_MAIN_UV,e.get(A1.FRAGMENT_MAIN_UV)||"").replace(A1.FRAGMENT_MAIN_IMAGE,e.get(A1.FRAGMENT_MAIN_IMAGE)||""),this.vertexShader=cc.replace(A1.VERTEX_HEAD,e.get(A1.VERTEX_HEAD)||"").replace(A1.VERTEX_MAIN_SUPPORT,e.get(A1.VERTEX_MAIN_SUPPORT)||""),this.needsUpdate=!0,this}setDefines(e){for(const t of e.entries())this.defines[t[0]]=t[1];return this.needsUpdate=!0,this}setUniforms(e){for(const t of e.entries())this.uniforms[t[0]]=t[1];return this}setExtensions(e){this.extensions={};for(const t of e)this.extensions[t]=!0;return this}get encodeOutput(){return this.defines.ENCODE_OUTPUT!==void 0}set encodeOutput(e){this.encodeOutput!==e&&(e?this.defines.ENCODE_OUTPUT="1":delete this.defines.ENCODE_OUTPUT,this.needsUpdate=!0)}isOutputEncodingEnabled(e){return this.encodeOutput}setOutputEncodingEnabled(e){this.encodeOutput=e}get time(){return this.uniforms.time.value}set time(e){this.uniforms.time.value=e}setDeltaTime(e){this.uniforms.time.value+=e}adoptCameraSettings(e){this.copyCameraSettings(e)}copyCameraSettings(e){e&&(this.uniforms.cameraNear.value=e.near,this.uniforms.cameraFar.value=e.far,e instanceof y2?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}setSize(e,t){const o=this.uniforms;o.resolution.value.set(e,t),o.texelSize.value.set(1/e,1/t),o.aspect.value=e/t}static get Section(){return A1}},sw=Number("185".replace(/\D+/g,"")),h2=255/256,iw=new Float32Array([h2/256**3,h2/256**2,h2/256,h2]),nw=new Float32Array([h2,h2/256,h2/256**2,1/256**3]);function va(e,t,o){for(const r of t){const s="$1"+e+r.charAt(0).toUpperCase()+r.slice(1),i=new RegExp("([^\\.])(\\b"+r+"\\b)","g");for(const n of o.entries())n[1]!==null&&o.set(n[0],n[1].replace(i,s))}}function hc(e,t,o){let r=t.getFragmentShader(),s=t.getVertexShader();const i=r!==void 0&&/mainImage/.test(r),n=r!==void 0&&/mainUv/.test(r);if(o.attributes|=t.getAttributes(),r===void 0)throw new Error(`Missing fragment shader (${t.name})`);if(n&&(o.attributes&v2.CONVOLUTION)!==0)throw new Error(`Effects that transform UVs are incompatible with convolution effects (${t.name})`);if(!i&&!n)throw new Error(`Could not find mainImage or mainUv function (${t.name})`);{const a=/\w+\s+(\w+)\([\w\s,]*\)\s*{/g,l=o.shaderParts;let u=l.get(A1.FRAGMENT_HEAD)||"",c=l.get(A1.FRAGMENT_MAIN_UV)||"",d=l.get(A1.FRAGMENT_MAIN_IMAGE)||"",h=l.get(A1.VERTEX_HEAD)||"",f=l.get(A1.VERTEX_MAIN_SUPPORT)||"";const p=new Set,m=new Set;if(n&&(c+=` ${e}MainUv(UV); +`,o.uvTransformation=!0),s!==null&&/mainSupport/.test(s)){const v=/mainSupport *\([\w\s]*?uv\s*?\)/.test(s);f+=` ${e}MainSupport(`,f+=v?`vUv); +`:`); +`;for(const y of s.matchAll(/(?:varying\s+\w+\s+([\S\s]*?);)/g))for(const T of y[1].split(/\s*,\s*/))o.varyings.add(T),p.add(T),m.add(T);for(const y of s.matchAll(a))m.add(y[1])}for(const v of r.matchAll(a))m.add(v[1]);for(const v of t.defines.keys())m.add(v.replace(/\([\w\s,]*\)/g,""));for(const v of t.uniforms.keys())m.add(v);m.delete("while"),m.delete("for"),m.delete("if"),t.uniforms.forEach((v,y)=>o.uniforms.set(e+y.charAt(0).toUpperCase()+y.slice(1),v)),t.defines.forEach((v,y)=>o.defines.set(e+y.charAt(0).toUpperCase()+y.slice(1),v));const b=new Map([["fragment",r],["vertex",s]]);va(e,m,o.defines),va(e,m,b),r=b.get("fragment"),s=b.get("vertex");const N=t.blendMode;if(o.blendModes.set(N.blendFunction,N),i){t.inputColorSpace!==null&&t.inputColorSpace!==o.colorSpace&&(d+=t.inputColorSpace==="srgb"?`color0 = sRGBTransferOETF(color0); + `:`color0 = sRGBToLinear(color0); + `),t.outputColorSpace!==""?o.colorSpace=t.outputColorSpace:t.inputColorSpace!==null&&(o.colorSpace=t.inputColorSpace);const v=/MainImage *\([\w\s,]*?depth[\w\s,]*?\)/;d+=`${e}MainImage(color0, UV, `,(o.attributes&v2.DEPTH)!==0&&v.test(r)&&(d+="depth, ",o.readDepth=!0),d+=`color1); + `;const y=e+"BlendOpacity";o.uniforms.set(y,N.opacity),d+=`color0 = blend${N.blendFunction}(color0, color1, ${y}); + + `,u+=`uniform float ${y}; + +`}if(u+=r+` +`,s!==null&&(h+=s+` +`),l.set(A1.FRAGMENT_HEAD,u),l.set(A1.FRAGMENT_MAIN_UV,c),l.set(A1.FRAGMENT_MAIN_IMAGE,d),l.set(A1.VERTEX_HEAD,h),l.set(A1.VERTEX_MAIN_SUPPORT,f),t.extensions!==null)for(const v of t.extensions)o.extensions.add(v)}}var fc=class extends L0{constructor(e,...t){super("EffectPass"),this.fullscreenMaterial=new dc(null,null,null,e),this.listener=o=>this.handleEvent(o),this.effects=[],this.setEffects(t),this.skipRendering=!1,this.minTime=1,this.maxTime=Number.POSITIVE_INFINITY,this.timeScale=1}set mainScene(e){for(const t of this.effects)t.mainScene=e}set mainCamera(e){this.fullscreenMaterial.copyCameraSettings(e);for(const t of this.effects)t.mainCamera=e}get encodeOutput(){return this.fullscreenMaterial.encodeOutput}set encodeOutput(e){this.fullscreenMaterial.encodeOutput=e}get dithering(){return this.fullscreenMaterial.dithering}set dithering(e){const t=this.fullscreenMaterial;t.dithering=e,t.needsUpdate=!0}setEffects(e){for(const t of this.effects)t.removeEventListener("change",this.listener);this.effects=e.sort((t,o)=>o.attributes-t.attributes);for(const t of this.effects)t.addEventListener("change",this.listener)}updateMaterial(){const e=new ku;let t=0;for(const n of this.effects)if(n.blendMode.blendFunction===N1.DST)e.attributes|=n.getAttributes()&v2.DEPTH;else{if((e.attributes&n.getAttributes()&v2.CONVOLUTION)!==0)throw new Error(`Convolution effects cannot be merged (${n.name})`);hc("e"+t++,n,e)}let o=e.shaderParts.get(A1.FRAGMENT_HEAD),r=e.shaderParts.get(A1.FRAGMENT_MAIN_IMAGE),s=e.shaderParts.get(A1.FRAGMENT_MAIN_UV);const i=/\bblend\b/g;for(const n of e.blendModes.values())o+=n.getShaderCode().replace(i,`blend${n.blendFunction}`)+` +`;(e.attributes&v2.DEPTH)!==0?(e.readDepth&&(r=`float depth = readDepth(UV); + + `+r),this.needsDepthTexture=this.getDepthTexture()===null):this.needsDepthTexture=!1,e.colorSpace==="srgb"&&(r+=`color0 = sRGBToLinear(color0); + `),e.uvTransformation?(s=`vec2 transformedUv = vUv; +`+s,e.defines.set("UV","transformedUv")):e.defines.set("UV","vUv"),e.shaderParts.set(A1.FRAGMENT_HEAD,o),e.shaderParts.set(A1.FRAGMENT_MAIN_IMAGE,r),e.shaderParts.set(A1.FRAGMENT_MAIN_UV,s);for(const[n,a]of e.shaderParts)a!==null&&e.shaderParts.set(n,a.trim().replace(/^#/,` +#`));this.skipRendering=t===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(e)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(e,t=f3){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t;for(const o of this.effects)o.setDepthTexture(e,t)}render(e,t,o,r,s){for(const i of this.effects)i.update(e,t,r);if(!this.skipRendering||this.renderToScreen){const i=this.fullscreenMaterial;i.inputBuffer=t.texture,i.time+=r*this.timeScale,e.setRenderTarget(this.renderToScreen?null:o),e.render(this.scene,this.camera)}}setSize(e,t){this.fullscreenMaterial.setSize(e,t);for(const o of this.effects)o.setSize(e,t)}initialize(e,t,o){this.renderer=e;for(const r of this.effects)r.initialize(e,t,o);this.updateMaterial(),o!==void 0&&o!==1009&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const e of this.effects)e.removeEventListener("change",this.listener),e.dispose()}handleEvent(e){e.type==="change"&&this.recompile()}},pc=class extends L0{constructor(e,t,{renderTarget:o,resolutionScale:r=1,width:s=w0.AUTO_SIZE,height:i=w0.AUTO_SIZE,resolutionX:n=s,resolutionY:a=i}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new v6(e,t,new J4);const l=this.renderPass;l.ignoreBackground=!0,l.skipShadowMapUpdate=!0;const u=l.getClearPass();u.overrideClearColor=new fe(7829503),u.overrideClearAlpha=1,this.renderTarget=o,this.renderTarget===void 0&&(this.renderTarget=new Ae(1,1,{minFilter:Ne,magFilter:Ne}),this.renderTarget.texture.name="NormalPass.Target");const c=this.resolution=new w0(this,n,a,r);c.addEventListener("change",d=>this.setSize(c.baseWidth,c.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,o,r,s){const i=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,i,i)}setSize(e,t){const o=this.resolution;o.setBaseSize(e,t),this.renderTarget.setSize(o.width,o.height)}},aw=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]],lw=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),uw=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],cw=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],dw=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])],hw=new Map([[y0(0,0,0,0),new Float32Array([0,0,0,0])],[y0(0,0,0,1),new Float32Array([0,0,0,1])],[y0(0,0,1,0),new Float32Array([0,0,1,0])],[y0(0,0,1,1),new Float32Array([0,0,1,1])],[y0(0,1,0,0),new Float32Array([0,1,0,0])],[y0(0,1,0,1),new Float32Array([0,1,0,1])],[y0(0,1,1,0),new Float32Array([0,1,1,0])],[y0(0,1,1,1),new Float32Array([0,1,1,1])],[y0(1,0,0,0),new Float32Array([1,0,0,0])],[y0(1,0,0,1),new Float32Array([1,0,0,1])],[y0(1,0,1,0),new Float32Array([1,0,1,0])],[y0(1,0,1,1),new Float32Array([1,0,1,1])],[y0(1,1,0,0),new Float32Array([1,1,0,0])],[y0(1,1,0,1),new Float32Array([1,1,0,1])],[y0(1,1,1,0),new Float32Array([1,1,1,0])],[y0(1,1,1,1),new Float32Array([1,1,1,1])]]);function gs(e,t,o){return e+(t-e)*o}function y0(e,t,o,r){return gs(gs(e,t,.75),gs(o,r,.75),.875)}function R1(e){return e&&e.__esModule?e.default:e}var T1={};T1=JSON.parse('{"architecture":"attention-v3-int8","formatVersion":3,"globalBias":[-0.32877659797668457,0.4370867609977722,-0.05251404270529747,1.3072023391723633,0.0477047860622406,0.24477416276931763,0.009111796505749226,-0.17459993064403534],"globalFeatureInverseStandardDeviation":[10.771836280822754,1.9548665285110474,1.612365484237671],"globalFeatureMean":[0.9198138117790222,-0.49808526039123535,0.03374629095196724],"globalWeights":[101,-4,7,-127,6,-11,3,1,0,-16,-7,8,-8,-1,7,-4,0,0,-12,-3,-13,1,0,2],"headBias":[-0.15895532071590424,0.007501596584916115,-0.47742825746536255,0.01632097363471985,-0.48355796933174133,-0.1052703931927681,-0.8414919376373291,-0.21046382188796997],"headWeights":[-45,-7,-45,-20,7,-13,120,-24,-15,-26,-19,1,27,-48,-4,-10,1,-5,-24,64,91,-1,-68,39,54,39,101,-40,-127,64,-41,-17,-23,-19,3,35,-2,33,3,9,-64,-32,30,42,-112,12,28,-11,15,2,-4,-7,7,-3,-5,1,76,48,-34,-67,103,-40,-26,1,58,-11,46,-41,5,-6,-17,-8,13,17,-35,45,27,-17,-28,7,-53,12,-51,6,-32,-5,58,-9,-28,-21,37,-12,1,20,2,2,11,7,-4,-9,2,-15,-1,-8,16,12,-27,-1,61,-5,-1,4,-7,-2,7,4,1,4,-2,4,-18,-16,28,6,-65,16,3,-3,-5,-2,0,-40,-21,-22,14,30,-21,49,15,-64,43,19,23,18,5,-15,21,21,30,17,-11,-6,22,-38,-20,97,-46,-5,-13,-59,26,-13,11,-2,-10,-8,2,-15,-17,-27,-9,26,7,-7,6,9,-32,5,-9,12,49,17,-1,24,20,35,14,-33,-50,-1,-4,-26,11,11,9,-80,30,9,36,6,-12,-4,-7,39,-10,-30,-49,1,-43,-20,-34,76,-36,-10,15,-8,43,31,38,-42,39,37,-7,7,8,16,28,-83,32,9,23,-13,39,119,23,-127,-24,8,-48,-29,-7,-33,-12,58,-24,-29,-19,12,-55,-90,0,126,26,42,54,22],"keyProjectionWeights":[0,-1,-1,1,1,1,1,1,-64,32,49,23,-25,4,27,-22,0,1,-1,-1,-1,1,1,0,-34,38,64,88,13,-53,-41,58,-7,-4,79,-41,27,26,14,2,-2,1,1,1,-1,-1,1,1,1,-1,-1,-1,-1,-1,1,1,4,-3,126,42,-40,-116,35,20],"name":"residual-attention-v3-50m-qat-int8-epoch-25-zo-278w","outputBias":-0.0005526235327124596,"outputWeights":[11,11,14,-27,9,-22,127,6],"quantization":{"scales":{"globalWeight":0.021090541950849095,"headWeight":0.04935851140909355,"keyWeight":0.1733924937791441,"outputWeight":0.0030087142047955295,"tapInputWeight":0.1096231754049479,"tapOutputWeight":0.017949438644286102,"valueWeight":0.013986751242596301},"scheme":"symmetric-int8-per-tensor","zeroPoint":0},"summaryQueries":[0.0038647791370749474,0.09565000981092453,0.002756686182692647,-0.08183622360229492,-0.15209506452083588,-0.0006105066277086735,0.0010439646430313587,-0.03020688332617283,0.005065929610282183,0.14488759636878967,0.003160916268825531,-0.0855727270245552,-0.3123375475406647,0.00039022407145239413,0.0037786494940519333,0.1451321840286255,-0.002009483054280281,0.0597594790160656,0.0045239729806780815,-0.08765853196382523,-0.13884992897510529,-0.0021647117100656033,0.003985927440226078,0.09727758169174194,0.007170629221946001,0.0786278173327446,0.004103775601834059,-0.1198369711637497,-0.2925199568271637,-0.002055276418104768,0.0030450925696641207,0.14401987195014954],"supportedDenoiseSamples":[4,8,16],"tapFeatureInverseStandardDeviation":[2.283243417739868,0.8810898065567017,0.8210930228233337,3.752316474914551,3.6375720500946045,2.670454978942871,10.249449729919434,0.12639354169368744,100],"tapFeatureMean":[0.010318092070519924,0.01364430133253336,0.13411010801792145,-0.004725644364953041,0.10053129494190216,0.8384788632392883,0.9203217625617981,1.7139031887054443,1],"tapInputBias":[0.4780646860599518,-0.45214661955833435,0.289407879114151,0.34804567694664,-0.1320028454065323,0.17722633481025696,0.011480014771223068,-0.26692497730255127],"tapInputWeights":[0,1,7,0,-1,-7,0,31,-2,-1,14,-126,0,0,-1,2,26,-2,0,66,-73,0,0,0,-12,22,-3,0,-76,-90,0,-1,-7,-3,58,-1,0,2,6,0,0,3,4,-40,0,0,3,-13,0,0,1,-7,-13,0,0,-7,10,0,-2,-7,0,-39,-2,0,-13,-19,0,-2,20,-1,3,-1],"tapOutputBias":[-0.3867710530757904,0.1349504142999649,0.35706064105033875,-0.5938405394554138,-0.031154220923781395,1.4079623222351074,-1.9221038818359375,0.6029739379882812],"tapOutputWeights":[18,-4,47,19,74,-94,-21,-9,73,-59,88,-10,-3,71,-7,24,20,74,24,-31,-12,-10,-15,-45,-126,2,-4,27,-5,24,35,-11,-4,9,-8,26,-10,27,26,-20,17,-50,5,-35,0,-5,12,-71,89,-58,22,-83,-115,7,-16,-89,89,22,1,-20,-22,-25,-26,44],"valueProjectionWeights":[-16,-6,40,-17,84,-76,59,51,-10,-2,-10,-1,-23,74,-70,23,-5,4,4,-7,-77,127,20,-48,-36,4,-17,-12,-4,10,29,-27,-2,11,-47,-50,-54,-3,14,11,-23,-1,109,31,4,-100,-33,-36,-19,0,-8,20,-35,-24,79,2,44,2,5,7,22,-70,-67,-35]}');var cn=[["tapInputWeight","tapInputWeights",8,9],["tapOutputWeight","tapOutputWeights",8,8],["globalWeight","globalWeights",8,3],["keyWeight","keyProjectionWeights",8,8],["valueWeight","valueProjectionWeights",8,8],["headWeight","headWeights",8,32],["outputWeight","outputWeights",1,8]],xo=e=>{const t=R1(T1).quantization?.scales?.[e];if(!(t>0)||!Number.isFinite(t))throw new Error(`The bundled N8AO neural model has no valid ${e} scale.`);return t};if(R1(T1).architecture!=="attention-v3-int8"||R1(T1).formatVersion!==3||R1(T1).quantization?.scheme!=="symmetric-int8-per-tensor"||R1(T1).quantization?.zeroPoint!==0||R1(T1).supportedDenoiseSamples?.join(",")!=="4,8,16"||cn.some(([,e,t,o])=>R1(T1)[e]?.length!==t*o||R1(T1)[e].some(r=>!Number.isInteger(r)||r<-127||r>127)))throw new Error("The bundled N8AO neural denoise model has an unsupported layout.");var l3=e=>{if(!Number.isFinite(e))throw new Error("The bundled N8AO neural model contains a non-finite value.");if(Object.is(e,-0))return"0.0";const t=Number(e).toString();return/[.eE]/.test(t)?t:`${t}.0`},ao=["x","y","z","w"],qr=e=>[...ao.map(t=>`${e}.lo.${t}`),...ao.map(t=>`${e}.hi.${t}`)],mc=(e,t)=>e===0?null:e===1?t:e===-1?`(-${t})`:e<0?`(-${l3(-e)} * ${t})`:`${l3(e)} * ${t}`,gc=(e,t)=>e===0?null:`${l3(e)} * ${t}`,b6=e=>e.filter(Boolean).join(" + ")||"0.0",So=(e,t,o,r,s,i)=>{const n=r.map((a,l)=>mc(e[t*o+l],a));return`${l3(s)} * (${b6(n)}) + ${l3(i[t])}`},Me=(e,t=" ")=>`vec4( +${e.map(o=>`${t} ${o}`).join(`, +`)} +${t})`,vs=({functionName:e,scaleName:t,weights:o,bias:r,width:s=8,relu:i=!1})=>{const n=qr("inputToken"),a=xo(t),l=Array.from({length:8},(h,f)=>So(o,f,s,n,a,r)),u=Me(l.slice(0,4)),c=Me(l.slice(4)),d=h=>i?`max(${h}, vec4(0.0))`:h;return` + NeuralToken neural${e[0].toUpperCase()}${e.slice(1)}(NeuralToken inputToken) { + return NeuralToken( + ${d(u)}, + ${d(c)} + ); + } +`},N6=(e,t,o,r,s,i,n,a={})=>Array.from({length:s},(l,u)=>{let c=t[u];for(let d=0;dSo(R1(T1).tapInputWeights,t,9,bc,y6,vc)),Nc=` + NeuralToken neuralTapInput(NeuralToken raw) { + NeuralToken scaledInput = NeuralToken( + raw.lo * ${Me(R1(T1).tapFeatureInverseStandardDeviation.slice(0,4)," ")}, + raw.hi * ${Me(R1(T1).tapFeatureInverseStandardDeviation.slice(4,8)," ")} + ); + return NeuralToken( + max(${Me(ba.slice(0,4))}, vec4(0.0)), + max(${Me(ba.slice(4))}, vec4(0.0)) + ); + } +`,M6=xo("globalWeight"),yc=N6(R1(T1).globalWeights,R1(T1).globalBias,R1(T1).globalFeatureMean,R1(T1).globalFeatureInverseStandardDeviation,8,3,M6),Mc=ao.slice(0,3).map(e=>`scaledInput.${e}`),Na=Array.from({length:8},(e,t)=>So(R1(T1).globalWeights,t,3,Mc,M6,yc)),xc=` + NeuralToken neuralEncodeGlobal(vec4 raw) { + vec3 scaledInput = raw.xyz * vec3( + ${R1(T1).globalFeatureInverseStandardDeviation.map(l3).join(", ")} + ); + return NeuralToken( + max(${Me(Na.slice(0,4))}, vec4(0.0)), + max(${Me(Na.slice(4))}, vec4(0.0)) + ); + } +`,Sc=qr("key"),Tc=` + vec4 neuralQueryScores(NeuralToken key) { + return ${Me(Array.from({length:4},(e,t)=>b6(Sc.map((o,r)=>gc(R1(T1).summaryQueries[t*8+r],o)))))}; + } +`,x6=[];for(let e=0;e<4;e++)x6.push(...ao.map(t=>`runningSummaryLo[${e}].${t}`),...ao.map(t=>`runningSummaryHi[${e}].${t}`));var wc=xo("headWeight"),ya=Array.from({length:8},(e,t)=>So(R1(T1).headWeights,t,32,x6,wc,R1(T1).headBias)),_c=` + NeuralToken neuralHead( + vec4 runningSummaryLo[4], + vec4 runningSummaryHi[4] + ) { + return NeuralToken( + max(${Me(ya.slice(0,4))}, vec4(0.0)), + max(${Me(ya.slice(4))}, vec4(0.0)) + ); + } +`,Ac=` + float neuralOutput(NeuralToken head) { + return ${So(R1(T1).outputWeights,0,8,qr("head"),xo("outputWeight"),[R1(T1).outputBias])}; + } +`,Cc=[Nc,vs({functionName:"tapOutput",scaleName:"tapOutputWeight",weights:R1(T1).tapOutputWeights,bias:R1(T1).tapOutputBias,relu:!0}),xc,vs({functionName:"keyProject",scaleName:"keyWeight",weights:R1(T1).keyProjectionWeights,bias:new Array(8).fill(0)}),vs({functionName:"valueProject",scaleName:"valueWeight",weights:R1(T1).valueProjectionWeights,bias:new Array(8).fill(0)}),Tc,_c,Ac].join(` +`);cn.reduce((e,[,t])=>e+R1(T1)[t].length,0);cn.reduce((e,[,t])=>e+R1(T1)[t].filter(o=>o!==0).length,0);var fw={uniforms:{sceneDiffuse:{value:null},sceneDepth:{value:null},tDiffuse:{value:null},projMat:{value:new v0},viewMat:{value:new v0},projectionMatrixInv:{value:new v0},viewMatrixInv:{value:new v0},cameraPos:{value:new G},resolution:{value:new f1},time:{value:0},r:{value:5},blueNoise:{value:null},radius:{value:12},worldRadius:{value:5},index:{value:0},poissonDisk:{value:[]},distanceFalloff:{value:1},near:{value:.1},far:{value:1e3},screenSpaceRadius:{value:!1}},depthWrite:!1,depthTest:!1,vertexShader:` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = vec4(position, 1.0); + }`,fragmentShader:` + uniform sampler2D sceneDiffuse; + uniform highp sampler2D sceneDepth; + uniform sampler2D tDiffuse; + uniform sampler2D blueNoise; + uniform mat4 projectionMatrixInv; + uniform mat4 viewMatrixInv; + uniform vec2 resolution; + uniform float r; + uniform float radius; + uniform float worldRadius; + uniform float index; + uniform float near; + uniform float far; + uniform float distanceFalloff; + uniform bool screenSpaceRadius; + varying vec2 vUv; + + highp float linearize_depth(highp float d, highp float zNear,highp float zFar) + { + highp float z_n = 2.0 * d - 1.0; + return 2.0 * zNear * zFar / (zFar + zNear - z_n * (zFar - zNear)); + } + highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) { + float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0; + float a = farZ / (farZ - nearZ); + float b = farZ * nearZ / (nearZ - farZ); + float linDepth = a + b / depth; + return linearize_depth(linDepth, nearZ, farZ); + } + highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) { + return nearZ + (farZ - nearZ) * d; + } + float depthToClipZ(float depth) { + #ifdef REVERSEDEPTH + return depth; + #else + return depth * 2.0 - 1.0; + #endif + } + bool isBackgroundDepth(float depth) { + #ifdef REVERSEDEPTH + return depth == 0.0; + #else + return depth == 1.0; + #endif + } + vec3 getWorldPosLog(vec3 posS) { + vec2 uv = posS.xy; + float z = posS.z; + float nearZ =near; + float farZ = far; + float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; + float a = farZ / (farZ - nearZ); + float b = farZ * nearZ / (nearZ - farZ); + float linDepth = a + b / depth; + vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; + vec4 wpos = projectionMatrixInv * clipVec; + return wpos.xyz / wpos.w; + } + vec3 getWorldPos(float depth, vec2 coord) { + #ifdef LOGDEPTH + #ifndef ORTHO + return getWorldPosLog(vec3(coord, depth)); + #endif + #endif + + #ifdef ORTHO + float z = depthToClipZ(depth); + vec4 clipSpacePosition = vec4(coord * 2. - 1., z, 1.); + vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; + viewSpacePosition.xyz /= viewSpacePosition.w; + return viewSpacePosition.xyz; + #else + vec2 ndc = coord * 2. - 1.; + float ndcZ = depthToClipZ(depth); + mat4 Q = projectionMatrixInv; + vec3 view = vec3(Q[0][0] * ndc.x + Q[3][0], Q[1][1] * ndc.y + Q[3][1], Q[3][2]); + float invW = 1.0 / (Q[2][3] * ndcZ + Q[3][3]); + return view * invW; + #endif + } + +#ifdef NEURAL_DENOISE + struct NeuralToken { + highp vec4 lo; + highp vec4 hi; + }; + + ${Cc} + + vec3 neuralSafeNormalize(vec3 value, vec3 fallback) { + float lengthSquared = dot(value, value); + return lengthSquared > 1e-12 ? value * inversesqrt(lengthSquared) : fallback; + } + + mat3 neuralLocalFrame(vec3 inputNormal) { + vec3 frameNormal = neuralSafeNormalize(inputNormal, vec3(0.0, 0.0, 1.0)); + vec3 helper = abs(frameNormal.z) < 0.999 + ? vec3(0.0, 0.0, 1.0) + : vec3(0.0, 1.0, 0.0); + vec3 tangent = neuralSafeNormalize( + cross(helper, frameNormal), + vec3(1.0, 0.0, 0.0) + ); + vec3 bitangent = cross(frameNormal, tangent); + return transpose(mat3(tangent, bitangent, frameNormal)); + } + + void neuralConsumeToken( + NeuralToken token, + inout vec4 runningMaximum, + inout vec4 runningDenominator, + inout vec4 runningSummaryLo[4], + inout vec4 runningSummaryHi[4] + ) { + NeuralToken key = neuralKeyProject(token); + NeuralToken value = neuralValueProject(token); + vec4 score = neuralQueryScores(key) * 0.3535533905932738; + vec4 newMaximum = max(runningMaximum, score); + vec4 oldScale = exp(runningMaximum - newMaximum); + vec4 newScale = exp(score - newMaximum); + + runningSummaryLo[0] = runningSummaryLo[0] * oldScale.x + value.lo * newScale.x; + runningSummaryHi[0] = runningSummaryHi[0] * oldScale.x + value.hi * newScale.x; + runningSummaryLo[1] = runningSummaryLo[1] * oldScale.y + value.lo * newScale.y; + runningSummaryHi[1] = runningSummaryHi[1] * oldScale.y + value.hi * newScale.y; + runningSummaryLo[2] = runningSummaryLo[2] * oldScale.z + value.lo * newScale.z; + runningSummaryHi[2] = runningSummaryHi[2] * oldScale.z + value.hi * newScale.z; + runningSummaryLo[3] = runningSummaryLo[3] * oldScale.w + value.lo * newScale.w; + runningSummaryHi[3] = runningSummaryHi[3] * oldScale.w + value.hi * newScale.w; + runningDenominator = runningDenominator * oldScale + newScale; + runningMaximum = newMaximum; + } + + void neuralEncodeTap( + NeuralToken raw, + inout vec4 runningMaximum, + inout vec4 runningDenominator, + inout vec4 runningSummaryLo[4], + inout vec4 runningSummaryHi[4] + ) { + NeuralToken first = neuralTapInput(raw); + NeuralToken token = neuralTapOutput(first); + neuralConsumeToken( + token, + runningMaximum, + runningDenominator, + runningSummaryLo, + runningSummaryHi + ); + } + + float neuralFinish( + float baselineAO, + inout vec4 runningMaximum, + inout vec4 runningDenominator, + inout vec4 runningSummaryLo[4], + inout vec4 runningSummaryHi[4] + ) { + vec4 raw = vec4( + baselineAO, + log(max(worldRadius, 1e-6)), + log(max(distanceFalloff, 1e-6)), + 0.0 + ); + NeuralToken token = neuralEncodeGlobal(raw); + neuralConsumeToken( + token, + runningMaximum, + runningDenominator, + runningSummaryLo, + runningSummaryHi + ); + + vec4 inverseDenominator = 1.0 / max(runningDenominator, vec4(1e-12)); + runningSummaryLo[0] *= inverseDenominator.x; + runningSummaryHi[0] *= inverseDenominator.x; + runningSummaryLo[1] *= inverseDenominator.y; + runningSummaryHi[1] *= inverseDenominator.y; + runningSummaryLo[2] *= inverseDenominator.z; + runningSummaryHi[2] *= inverseDenominator.z; + runningSummaryLo[3] *= inverseDenominator.w; + runningSummaryHi[3] *= inverseDenominator.w; + + NeuralToken head = neuralHead(runningSummaryLo, runningSummaryHi); + return neuralOutput(head); + } +#endif + + #include + #define NUM_SAMPLES __N8AO_DENOISE_SAMPLES__ + uniform vec2 poissonDisk[NUM_SAMPLES]; + void main() { + const float pi = 3.14159; + vec2 texelSize = vec2(1.0 / resolution.x, 1.0 / resolution.y); + vec2 uv = vUv; + vec4 data = texture2D(tDiffuse, vUv); + float occlusion = data.r; + float baseOcc = data.r; + vec3 normal = data.gba * 2.0 - 1.0; + float count = 1.0; + float d = texture2D(sceneDepth, vUv).x; + if (isBackgroundDepth(d)) { + gl_FragColor = data; + return; + } + vec3 worldPos = getWorldPos(d, vUv); + float size = radius; + float angle; +#ifdef NEURAL_DENOISE + // The neural material is only bound for denoise iteration two. + angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).z * PI2; +#else + if (index == 0.0) { + angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).w * PI2; + } else if (index == 1.0) { + angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).z * PI2; + } else if (index == 2.0) { + angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).y * PI2; + } else { + angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).x * PI2; + } +#endif + + mat2 rotationMatrix = mat2(cos(angle), -sin(angle), sin(angle), cos(angle)); + float radiusToUse = screenSpaceRadius ? distance( + worldPos, + getWorldPos(d, vUv + + vec2(worldRadius, 0.0) / resolution) + ) : worldRadius; + float distanceFalloffToUse =screenSpaceRadius ? + radiusToUse * distanceFalloff + : radiusToUse * distanceFalloff * 0.2; + + float invDistance = (1.0 / distanceFalloffToUse); +#ifdef NEURAL_DENOISE + mat3 neuralWorldToLocal = neuralLocalFrame(normal); + float neuralInverseRadius = 1.0 / max(radiusToUse, 1e-6); + float neuralInverseDistance = 1.0 / max(distanceFalloffToUse, 1e-6); + vec4 neuralMaximum = vec4(-1e30); + vec4 neuralDenominator = vec4(0.0); + vec4 neuralSummaryLo[4]; + vec4 neuralSummaryHi[4]; + for (int query = 0; query < 4; query++) { + neuralSummaryLo[query] = vec4(0.0); + neuralSummaryHi[query] = vec4(0.0); + } +#endif + for(int i = 0; i < NUM_SAMPLES; i++) { + vec2 offset = (rotationMatrix * poissonDisk[i]) * texelSize * size; + vec4 dataSample = texture2D(tDiffuse, uv + offset); + float occSample = dataSample.r; + vec3 normalSample = dataSample.gba * 2.0 - 1.0; + float dSample = texture2D(sceneDepth, uv + offset).x; + vec3 worldPosSample = getWorldPos(dSample, uv + offset); + float tangentPlaneDist = abs(dot(worldPosSample - worldPos, normal)); + float rangeCheck = float(!isBackgroundDepth(dSample)) * exp(-1.0 * tangentPlaneDist * invDistance ) * max(dot(normal, normalSample), 0.0); + occlusion += occSample * rangeCheck; + count += rangeCheck; +#ifdef NEURAL_DENOISE + if (!isBackgroundDepth(dSample)) { + vec3 localDelta = (neuralWorldToLocal * (worldPosSample - worldPos)) + * neuralInverseRadius; + vec3 localNormal = neuralWorldToLocal + * neuralSafeNormalize(normalSample, vec3(0.0, 0.0, 1.0)); + NeuralToken rawTap = NeuralToken( + vec4(localDelta, localNormal.x), + vec4( + localNormal.y, + localNormal.z, + occSample, + tangentPlaneDist * neuralInverseDistance + ) + ); + neuralEncodeTap( + rawTap, + neuralMaximum, + neuralDenominator, + neuralSummaryLo, + neuralSummaryHi + ); + } +#endif + } + if (count > 0.0) { + occlusion /= count; + } + occlusion = clamp(occlusion, 0.0, 1.0); + if (occlusion == 0.0) { + occlusion = 1.0; + } +#ifdef NEURAL_DENOISE + occlusion = clamp( + occlusion + neuralFinish( + occlusion, + neuralMaximum, + neuralDenominator, + neuralSummaryLo, + neuralSummaryHi + ), + 0.0, + 1.0 + ); +#endif + gl_FragColor = vec4(occlusion, 0.5 + 0.5 * normal); + } + `},Rc=(0,_.createContext)(null),Ma=e=>(e.getAttributes()&2)==2;function S6(e){let t=new WeakMap;return{acquire(o,r){let s=t.get(o);s?(s.count++,s.forcedValue=r):t.set(o,{count:1,original:o[e],forcedValue:r})},release(o){let r=t.get(o);r&&--r.count<=0&&(o[e]===r.forcedValue&&(o[e]=r.original),t.delete(o))}}}var xa=S6("autoClear"),Sa=S6("toneMapping");function Bc(e,t){let o=[];for(let r=0;r{xa.acquire(f,!1);let C=new Du(f,{depthBuffer:a,stencilBuffer:u,multisampling:c,frameBufferType:d});C.addPass(new v6(N,v));let w=null,L=null;return l&&(w=new pc(N,v),w.enabled=!1,C.addPass(w),r!==void 0&&(L=new lc({normalBuffer:w.texture,resolutionScale:r}),L.enabled=!1,C.addPass(L))),C.setSize(b.width,b.height),T({composer:C,normalPass:w,downSamplingPass:L}),()=>{C.dispose(),xa.release(f)}},[v,f,a,u,c,d,N,l,r]),(0,_.useEffect)(()=>{y?.composer.setSize(b.width,b.height)},[y,b]),B0((C,w)=>{if(!s||!y)return;let{composer:L}=y,F=f.autoClear;f.autoClear=n,u&&!n&&f.clearStencil(),L.render(w),f.autoClear=F},s?i:0);let x=(0,_.useRef)(null);(0,_.useLayoutEffect)(()=>{if(!y)return;let{composer:C,normalPass:w,downSamplingPass:L}=y,F=[],P=x.current.__r3f;if(P){let X=P.children.map(V=>V.object).filter(V=>V instanceof Wr||V instanceof L0);F.push(...Bc(X,v))}for(let X of F)C.addPass(X);return F.length&&(w&&(w.enabled=!0),L&&(L.enabled=!0)),()=>{for(let X of F)C.removePass(X);w&&(w.enabled=!1),L&&(L.enabled=!1)}},[y,e,v]),(0,_.useEffect)(()=>(Sa.acquire(f,0),f.toneMapping=0,()=>{Sa.release(f)}),[f]);let S=(0,_.useMemo)(()=>y?{composer:y.composer,normalPass:y.normalPass,downSamplingPass:y.downSamplingPass,resolutionScale:r,camera:v,scene:N}:null,[y,r,v,N]);return(0,_.useImperativeHandle)(h,()=>y?.composer,[y]),S?(0,yi.jsx)(Rc.Provider,{value:S,children:(0,yi.jsx)("group",{ref:x,children:e})}):null}),Wc=0,Ta=new WeakMap,wa=new WeakMap,Lc=0;function Uc(e){let t=wa.get(e);return t===void 0&&(t=Lc++,wa.set(e,t)),t}function xi(e,t){if(typeof e!="object"||!e)return e;if(t.has(e))return"[Circular]";if(ArrayBuffer.isView(e)||e instanceof ArrayBuffer)return Uc(e);if(t.add(e),Array.isArray(e))return e.map(r=>xi(r,t));let o={};for(let r of Object.keys(e).sort())o[r]=xi(e[r],t);return o}function Oc(e){return JSON.stringify(xi(e,new WeakSet))}function Fc(e,t){return function({ref:o,blendFunction:r=t?.blendFunction,opacity:s=t?.opacity,...i}){let n=Ta.get(e);if(!n){let u=`@react-three/postprocessing/${e.name}-${Wc++}`;Jl({[u]:e}),Ta.set(e,n=u)}let a=he(u=>u.camera),l=(0,_.useMemo)(()=>[...t?.args??[],...i.args??[{...t,...i}]],[Oc(i)]);return(0,yi.jsx)(n,{camera:a,"blendMode-blendFunction":r,"blendMode-opacity-value":s,...i,args:l,ref:o})}}var Pc=Fc(sc,{blendFunction:0}),dn=(e,t,o)=>Math.min(o,Math.max(t,e)),T6=(e,t)=>{const o=dn(Math.abs(e)/Math.max(t,1e-4),0,1);return Math.log1p(o*8)/Math.log1p(8)},Dc=(e,t,o,r,s,i,n)=>{const a=T6(e,Math.max(Math.abs(t),Math.abs(o)));return dn(r+a*(s-r),i,n)},kc=(e,t,o,r,s,i,n)=>{const a=T6(e,Math.max(Math.abs(t),Math.abs(o)));return dn(r+a*(s-r),i,n)};function Xc(e,t){let o=Math.round(e*10),r=Math.round(4*t*10);const s=(a,l)=>l===0?a:s(l,a%l),i=s(Math.abs(o),Math.abs(r));if(o=o/i,r=r/i,o===0)return"0";let n="";return o===1?n="π":o===-1?n="-π":n=`${o}π`,r===1?n:`${n}/${r}`}var w6=(e=8,t="")=>{const o="0123456789ABCDEF";return Array.from({length:e},()=>o[Math.floor(Math.random()*16)]).join(t)},t1="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/PhaseShiftingCanvas.tsx",O1={bg:"#E0E0E2",grid:"#D1D5DB",axis:"#9CA3AF",dashed:"#6B7280",solid:"#8B5CF6",text:"#000000",axisText:"rgba(0, 0, 0, 0.08)",accent:"#1180FF"},Ic=a1.div` + width: 100%; + height: 100%; + position: relative; + overflow: hidden; +`,Gc=a1.div` + position: absolute; + top: 14px; + left: 16px; + z-index: 2; + pointer-events: none; +`,zc=a1.h1` + font-size: clamp(0.2rem, 1vw, 1rem); + letter-spacing: 0.04em; + font-family: 'JetBrains Mono', 'DM Mono', monospace; + color: ${O1.text}; + margin: 0; + font-weight: 600; + + @media (max-width: 640px) { + top: 10px; + left: 12px; + font-size: 0.78rem; + } +`,$c=a1.div` + font-size: clamp(0.72rem, 1.2vw, 1rem); + font-weight: 600; + color: ${O1.text}; + margin: 0.25rem 0; + font-family: 'JetBrains Mono', 'DM Mono', monospace; +`,bs=a1.div` + font-size: clamp(0.55rem, 1vw, 0.78rem); + color: #6B7280; + margin: 0.25rem 0; + font-family: 'JetBrains Mono', 'DM Mono', monospace; +`;function Vc({frequency:e}){const t=[],o=Math.PI/(4*e),r=Math.ceil(10*Math.PI/o);for(let s=-r;s<=r;s++){const i=s*o,n=s%4===0;t.push(g(ve,{points:[[i,-20,-1],[i,20,-1]],color:O1.grid,lineWidth:n?1:.5,opacity:n?.08:.03,transparent:!0},`v${s}`,!1,{fileName:t1,lineNumber:83,columnNumber:7},this))}for(let s=-40;s<=40;s++){const i=s*.5,n=s%2===0;t.push(g(ve,{points:[[-35,i,-1],[35,i,-1]],color:O1.grid,lineWidth:n?1:.5,opacity:n?.08:.03,transparent:!0},`h${s}`,!1,{fileName:t1,lineNumber:99,columnNumber:7},this))}return g("group",{children:t},void 0,!1,{fileName:t1,lineNumber:109,columnNumber:10},this)}function Qc({frequency:e}){const t=[],o=Math.PI/(4*e),r=Math.ceil(10*Math.PI/o);for(let i=-r;i<=r;i++){if(i===0)continue;const n=i*o;let a=!1;e<=1.2?i%2===0&&(a=!0):i%4===0&&(a=!0),t.push({pos:n,label:a?Xc(i,e):""})}const s=[];for(let i=-3;i<=3;i++)i!==0&&s.push({pos:i,label:i.toString()});return g("group",{children:[g(ve,{points:[[-35,0,0],[35,0,0]],color:O1.axis,lineWidth:1.5,opacity:.08,transparent:!0},void 0,!1,{fileName:t1,lineNumber:145,columnNumber:7},this),g(ve,{points:[[0,-15,0],[0,15,0]],color:O1.axis,lineWidth:1.5,opacity:.08,transparent:!0},void 0,!1,{fileName:t1,lineNumber:147,columnNumber:7},this),g(F1,{position:[33.5,.4,0],fontSize:.3,color:O1.axisText,text:"x"},void 0,!1,{fileName:t1,lineNumber:150,columnNumber:7},this),g(F1,{position:[.4,14.5,0],fontSize:.3,color:O1.axisText,text:"y"},void 0,!1,{fileName:t1,lineNumber:151,columnNumber:7},this),g(F1,{position:[-.4,-.4,0],fontSize:.2,color:O1.axisText,text:"0"},void 0,!1,{fileName:t1,lineNumber:152,columnNumber:7},this),t.map(({pos:i,label:n},a)=>g("group",{position:[i,0,0],children:[g(ve,{points:[[0,-.06,0],[0,.06,0]],color:O1.axis,lineWidth:1,opacity:.08,transparent:!0},void 0,!1,{fileName:t1,lineNumber:157,columnNumber:11},this),n&&g(F1,{position:[0,-.5,0],fontSize:.2,color:O1.axisText,text:n},void 0,!1,{fileName:t1,lineNumber:158,columnNumber:21},this)]},`x-${a}`,!0,{fileName:t1,lineNumber:156,columnNumber:9},this)),s.map(({pos:i,label:n},a)=>g("group",{position:[0,i,0],children:[g(ve,{points:[[-.06,0,0],[.06,0,0]],color:O1.axis,lineWidth:1,opacity:.08,transparent:!0},void 0,!1,{fileName:t1,lineNumber:165,columnNumber:11},this),g(F1,{position:[-.6,0,0],fontSize:.2,color:O1.axisText,text:n},void 0,!1,{fileName:t1,lineNumber:166,columnNumber:11},this)]},`y-${a}`,!0,{fileName:t1,lineNumber:164,columnNumber:9},this))]},void 0,!0,{fileName:t1,lineNumber:143,columnNumber:5},this)}function Zc({frequency:e,store:t}){const{phaseShift:o,amplitude:r,animate:s,speed:i}=Ki({phaseShift:{value:90,min:-360,max:360,step:1,label:"Phase Shift (Phi, φ)"},amplitude:{value:1,min:.1,max:3,step:.1},animate:{value:!1,label:"Auto Animate"},speed:{value:1,min:.1,max:5,step:.1,render:N=>N("animate")}},{store:t}),[n,a]=(0,_.useState)(o*Math.PI/180),l=(0,_.useRef)(0);B0((N,v)=>{s&&(l.current=(l.current+v*i)%(Math.PI*2));const y=o*Math.PI/180+l.current;a(y)});const u=(0,_.useMemo)(()=>{const N=[];for(let v=-35;v<=35;v+=.02)N.push(new G(v,Math.sin(e*v)*r,-.1));return N},[r,e]),c=(0,_.useMemo)(()=>{const N=[];for(let v=-35;v<=35;v+=.02)N.push(new G(v,Math.sin(e*v-n)*r,.1));return N},[r,e,n]),d=1.25,h=0;let f=n%(Math.PI*2);f>Math.PI&&(f-=Math.PI*2),f<-Math.PI&&(f+=Math.PI*2);const p=f/e,m=(0,_.useMemo)(()=>{if(Math.abs(p-h)<.01)return null;const N=Math.sign(p-h),v=.15;return[new G(h,d,1),new G(p,d,1),new G(p-N*v,1.325,1),new G(p,d,1),new G(p-N*v,d-v*.5,1)]},[h,p,d]),b=Math.round(f*180/Math.PI);return g("group",{children:[g(ve,{points:u,color:O1.dashed,lineWidth:3,dashed:!0,dashSize:.15,gapSize:.1,opacity:.6,transparent:!0},void 0,!1,{fileName:t1,lineNumber:236,columnNumber:7},this),g(ve,{points:c,color:O1.solid,lineWidth:5,toneMapped:!1},void 0,!1,{fileName:t1,lineNumber:248,columnNumber:7},this),m&&g("group",{children:[g(ve,{points:m,color:O1.accent,lineWidth:2,toneMapped:!1},void 0,!1,{fileName:t1,lineNumber:258,columnNumber:11},this),g(ve,{points:[[h,0,1],[h,d,1]],color:O1.dashed,lineWidth:1,dashed:!0,dashSize:.05,gapSize:.05,opacity:.5,transparent:!0},void 0,!1,{fileName:t1,lineNumber:264,columnNumber:11},this),g(ve,{points:[[p,0,1],[p,d,1]],color:O1.accent,lineWidth:1,dashed:!0,dashSize:.05,gapSize:.05,opacity:.5,transparent:!0},void 0,!1,{fileName:t1,lineNumber:270,columnNumber:11},this),g(F1,{position:[h,1.65,1],fontSize:.4,color:O1.dashed,text:"0°"},void 0,!1,{fileName:t1,lineNumber:276,columnNumber:11},this),g(F1,{position:[p,1.65,1],fontSize:.4,color:O1.accent,text:`${b}°`},void 0,!1,{fileName:t1,lineNumber:277,columnNumber:11},this)]},void 0,!0,{fileName:t1,lineNumber:257,columnNumber:9},this)]},void 0,!0,{fileName:t1,lineNumber:234,columnNumber:5},this)}function qc({store:e}){const{frequency:t}=Ki({frequency:{value:1,min:.1,max:3,step:.1}},{store:e});return g(J0,{children:[g("color",{attach:"background",args:[O1.bg]},void 0,!1,{fileName:t1,lineNumber:291,columnNumber:7},this),g("ambientLight",{intensity:1},void 0,!1,{fileName:t1,lineNumber:292,columnNumber:7},this),g(Vc,{frequency:t},void 0,!1,{fileName:t1,lineNumber:293,columnNumber:7},this),g(Qc,{frequency:t},void 0,!1,{fileName:t1,lineNumber:294,columnNumber:7},this),g(Zc,{frequency:t,store:e},void 0,!1,{fileName:t1,lineNumber:295,columnNumber:7},this),g(Ec,{children:g(Pc,{luminanceThreshold:.8,luminanceSmoothing:.9,intensity:.5,mipmapBlur:!0},void 0,!1,{fileName:t1,lineNumber:298,columnNumber:9},this)},void 0,!1,{fileName:t1,lineNumber:297,columnNumber:7},this)]},void 0,!0,{fileName:t1,lineNumber:290,columnNumber:5},this)}function Hc(){return g("svg",{width:"900",height:"506",viewBox:"0 0 900 506",children:[g("rect",{width:"900",height:"506",fill:"transparent"},void 0,!1,{fileName:t1,lineNumber:307,columnNumber:7},this),g("path",{d:"M 0 253 H 900",stroke:O1.axis,strokeWidth:"2"},void 0,!1,{fileName:t1,lineNumber:308,columnNumber:7},this),g("path",{d:"M 450 40 V 466",stroke:O1.axis,strokeWidth:"2"},void 0,!1,{fileName:t1,lineNumber:309,columnNumber:7},this),g("path",{d:"M 40 253 C 140 180, 240 326, 340 253 S 540 180, 640 253 S 840 326, 860 253",fill:"none",stroke:O1.dashed,strokeWidth:"4",strokeDasharray:"10 8"},void 0,!1,{fileName:t1,lineNumber:310,columnNumber:7},this),g("path",{d:"M 40 253 C 140 140, 240 366, 340 253 S 540 140, 640 253 S 840 366, 860 253",fill:"none",stroke:O1.solid,strokeWidth:"6"},void 0,!1,{fileName:t1,lineNumber:311,columnNumber:7},this),g("path",{d:"M 450 96 H 600",stroke:O1.accent,strokeWidth:"3"},void 0,!1,{fileName:t1,lineNumber:312,columnNumber:7},this),g("path",{d:"M 600 96 L 586 88 M 600 96 L 586 104",stroke:O1.accent,strokeWidth:"3"},void 0,!1,{fileName:t1,lineNumber:313,columnNumber:7},this),g("text",{x:"40",y:"48",fill:O1.text,fontSize:"20",fontFamily:"JetBrains Mono, monospace",children:"Phase Shifting"},void 0,!1,{fileName:t1,lineNumber:314,columnNumber:7},this),g("text",{x:"40",y:"470",fill:O1.text,fontSize:"18",fontFamily:"JetBrains Mono, monospace",children:"y = A · sin(f·x - φ)"},void 0,!1,{fileName:t1,lineNumber:315,columnNumber:7},this),g("text",{x:"40",y:"492",fill:"#6B7280",fontSize:"14",fontFamily:"JetBrains Mono, monospace",children:"φ (Phi) = Phase Shift"},void 0,!1,{fileName:t1,lineNumber:316,columnNumber:7},this),g("text",{x:"740",y:"115",fill:O1.accent,fontSize:"18",fontFamily:"JetBrains Mono, monospace",children:"90°"},void 0,!1,{fileName:t1,lineNumber:317,columnNumber:7},this)]},void 0,!0,{fileName:t1,lineNumber:306,columnNumber:5},this)}function pw(){const e=typeof process<"u"&&{}.JEST_WORKER_ID!==void 0,t=I4();return g(C2,{store:t,aspectRatio:"16/9",children:g(Ic,{children:g(J0,{children:[g(Gc,{children:g(zc,{style:{fontSize:"20px",top:"10px",left:"12px",margin:"0",fontFamily:"JetBrains Mono, monospace",color:"black"},children:"Phase Shifting"},void 0,!1,{fileName:t1,lineNumber:331,columnNumber:13},this)},void 0,!1,{fileName:t1,lineNumber:330,columnNumber:11},this),g("div",{style:{position:"absolute",bottom:"10px",left:"16px",zIndex:2,pointerEvents:"none"},children:[g($c,{children:"y = A · sin(f·x - φ)"},void 0,!1,{fileName:t1,lineNumber:350,columnNumber:13},this),g(bs,{children:"φ (Phi) = Phase Shift"},void 0,!1,{fileName:t1,lineNumber:351,columnNumber:13},this),g(bs,{children:"f = Frequency"},void 0,!1,{fileName:t1,lineNumber:352,columnNumber:13},this),g(bs,{children:"A = Amplitude"},void 0,!1,{fileName:t1,lineNumber:353,columnNumber:13},this)]},void 0,!0,{fileName:t1,lineNumber:343,columnNumber:11},this),e?g(J0,{children:[g(Hc,{},void 0,!1,{fileName:t1,lineNumber:360,columnNumber:15},this),g("div",{"data-testid":"r3f-canvas",style:{position:"absolute",top:-9999,left:-9999,visibility:"hidden"},children:g("canvas",{},void 0,!1,{fileName:t1,lineNumber:362,columnNumber:17},this)},void 0,!1,{fileName:t1,lineNumber:361,columnNumber:15},this)]},void 0,!0,{fileName:t1,lineNumber:359,columnNumber:13},this):g(yo,{"data-testid":"r3f-canvas",orthographic:!0,camera:{position:[0,0,10],zoom:90},children:g(_.Suspense,{fallback:null,children:g(qc,{store:t},void 0,!1,{fileName:t1,lineNumber:368,columnNumber:19},this)},void 0,!1,{fileName:t1,lineNumber:367,columnNumber:17},this)},void 0,!1,{fileName:t1,lineNumber:366,columnNumber:15},this)]},void 0,!0,{fileName:t1,lineNumber:329,columnNumber:9},this)},void 0,!1,{fileName:t1,lineNumber:328,columnNumber:7},this)},void 0,!1,{fileName:t1,lineNumber:327,columnNumber:5},this)}var Jc=["alphaMap","alphaTest","anisotropy","anisotropyMap","anisotropyRotation","aoMap","aoMapIntensity","attenuationColor","attenuationDistance","bumpMap","clearcoat","clearcoatMap","clearcoatNormalMap","clearcoatNormalScale","clearcoatRoughness","color","dispersion","displacementMap","emissive","emissiveIntensity","emissiveMap","envMap","envMapIntensity","envMapRotation","gradientMap","ior","iridescence","iridescenceIOR","iridescenceMap","iridescenceThicknessMap","lightMap","lightMapIntensity","map","matcap","metalness","metalnessMap","normalMap","normalScale","opacity","roughness","roughnessMap","sheen","sheenColor","sheenColorMap","sheenRoughnessMap","shininess","specular","specularColor","specularColorMap","specularIntensity","specularIntensityMap","specularMap","thickness","transmission","transmissionMap"],_a=new WeakMap,Aa=new WeakMap,Ca=new WeakMap,jc=class{constructor(e){this.renderObjects=new WeakMap,this.hasNode=this.containsNode(e),this.hasAnimation=e.object.isSkinnedMesh===!0,this.refreshUniforms=Jc,this.renderId=0}firstInitialization(e){return this.renderObjects.has(e)===!1?(this.getRenderObjectData(e),!0):!1}needsVelocity(e){const t=e.getMRT();return t!==null&&t.has("velocity")}getRenderObjectData(e){let t=this.renderObjects.get(e);if(t===void 0){const{geometry:o,object:r}=e;if(t={geometryId:o.id,worldMatrix:r.matrixWorld.clone()},r.center&&(t.center=r.center.clone()),r.morphTargetInfluences&&(t.morphTargetInfluences=r.morphTargetInfluences.slice()),e.bundle!==null&&(t.version=e.bundle.version),e.material.transmission>0){const{width:n,height:a}=e.context;t.bufferWidth=n,t.bufferHeight=a}const{environmentIntensity:s,environmentRotation:i}=e.scene;t.environmentIntensity=s,t.environmentRotation=i.clone(),t.lights=this.getLightsData(e.lightsNode.getLights(),[]),this.renderObjects.set(e,t)}return t}getAttributesData(e){const t={};for(const o in e){const r=e[o];t[o]={id:r.isInterleavedBufferAttribute?r.data.uuid:r.id,version:r.isInterleavedBufferAttribute?r.data.version:r.version}}return t}containsNode(e){const t=e.material;for(const o in t)if(t[o]&&t[o].isNode)return!0;return!!(e.context.modelViewMatrix||e.context.modelNormalViewMatrix||e.context.getAO||e.context.getShadow)}getGeometryData(e){let t=Ca.get(e);return t===void 0&&(t={_renderId:-1,_equal:!1,attributes:this.getAttributesData(e.attributes),indexId:e.index?e.index.id:null,indexVersion:e.index?e.index.version:null,drawRange:{start:e.drawRange.start,count:e.drawRange.count}},Ca.set(e,t)),t}getMaterialData(e){let t=Aa.get(e);if(t===void 0){t={_renderId:-1,_equal:!1};for(const o of this.refreshUniforms){const r=e[o];r!=null&&(typeof r=="object"&&r.clone!==void 0?r.isTexture===!0?t[o]={id:r.id,version:0}:t[o]=r.clone():t[o]=r)}Aa.set(e,t)}return t}equals(e,t,o){const{object:r,material:s,geometry:i}=e,n=this.getRenderObjectData(e);if(n.worldMatrix.equals(r.matrixWorld)!==!0)return n.worldMatrix.copy(r.matrixWorld),!1;const a=this.getMaterialData(e.material);if(a._renderId!==o){a._renderId=o;for(const c in a){const d=a[c],h=s[c];if(c!=="_renderId"&&c!=="_equal"){if(d.equals!==void 0){if(d.equals(h)===!1)return d.copy(h),a._equal=!1,!1}else if(h.isTexture===!0){if(d.id!==h.id||d.version!==h.version)return d.id=h.id,d.version=h.version,a._equal=!1,!1}else if(d!==h)return a[c]=h,a._equal=!1,!1}}if(a.transmission>0){const{width:c,height:d}=e.context;if(n.bufferWidth!==c||n.bufferHeight!==d)return n.bufferWidth=c,n.bufferHeight=d,a._equal=!1,!1}a._equal=!0}else if(a._equal===!1)return!1;if(n.geometryId!==i.id)return n.geometryId=i.id,!1;const l=this.getGeometryData(e.geometry);if(l._renderId!==o){l._renderId=o;const c=i.attributes,d=l.attributes;let h=0,f=0;for(const y in c)h++;for(const y in d){f++;const T=d[y],x=c[y];if(x===void 0)return delete d[y],l._equal=!1,!1;const S=x.isInterleavedBufferAttribute?x.data.uuid:x.id,C=x.isInterleavedBufferAttribute?x.data.version:x.version;if(T.id!==S||T.version!==C)return T.id=S,T.version=C,l._equal=!1,!1}if(f!==h)return l.attributes=this.getAttributesData(c),l._equal=!1,!1;const p=i.index,m=l.indexId,b=l.indexVersion,N=p?p.id:null,v=p?p.version:null;if(m!==N||b!==v)return l.indexId=N,l.indexVersion=v,l._equal=!1,!1;if(l.drawRange.start!==i.drawRange.start||l.drawRange.count!==i.drawRange.count)return l.drawRange.start=i.drawRange.start,l.drawRange.count=i.drawRange.count,l._equal=!1,!1;l._equal=!0}else if(l._equal===!1)return!1;if(n.morphTargetInfluences){let c=!1;for(let d=0;d{const r=o.match(t);if(!r)return null;const s=r[1]||r[2]||"",i=r[3].split("?")[0],n=parseInt(r[4],10),a=parseInt(r[5],10);return{fn:s,file:i.split("/").pop(),line:n,column:a}}).filter(o=>o&&!Kc.some(r=>r.test(o.file)))}var E0=class{constructor(e=null){this.isStackTrace=!0,this.stack=Yc(e||new Error().stack)}getLocation(){if(this.stack.length===0)return"[Unknown location]";const e=this.stack[0],t=e.fn;return`${t?`"${t}()" at `:""}"${e.file}:${e.line}"`}getError(e){return this.stack.length===0?e:`${e} +${this.stack.map(t=>{const o=`${t.file}:${t.line}:${t.column}`;return t.fn?` at ${t.fn} (${o})`:` at ${o}`}).join(` +`)}`}};function hn(e,t=0){let o=3735928559^t,r=1103547991^t;if(Array.isArray(e))for(let s=0,i;s>>16,2246822507),o^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(o^o>>>13,3266489909),4294967296*(2097151&r)+(o>>>0)}var p3=e=>hn(e),To=e=>hn(e),J3=(...e)=>hn(e),ed=new Map([[1,"float"],[2,"vec2"],[3,"vec3"],[4,"vec4"],[9,"mat3"],[16,"mat4"]]),Ra=new WeakMap;function _6(e){return ed.get(e)}function Lr(e){if(e==null)return null;const t=typeof e;return e.isNode===!0?"node":t==="number"?"float":t==="boolean"?"bool":t==="string"?"string":t==="function"?"shader":e.isVector2===!0?"vec2":e.isVector3===!0?"vec3":e.isVector4===!0?"vec4":e.isMatrix2===!0?"mat2":e.isMatrix3===!0?"mat3":e.isMatrix4===!0?"mat4":e.isColor===!0?"color":e instanceof ArrayBuffer?"ArrayBuffer":null}function fn(e,...t){const o=e?e.slice(-4):void 0;return t.length===1&&(o==="vec2"?t=[t[0],t[0]]:o==="vec3"?t=[t[0],t[0],t[0]]:o==="vec4"&&(t=[t[0],t[0],t[0],t[0]])),e==="color"?new fe(...t):o==="vec2"?new f1(...t):o==="vec3"?new G(...t):o==="vec4"?new S1(...t):o==="mat2"?new o6(...t):o==="mat3"?new No(...t):o==="mat4"?new v0(...t):e==="bool"?t[0]||!1:e==="float"||e==="int"||e==="uint"?t[0]||0:e==="string"?t[0]||"":e==="ArrayBuffer"?od(t[0]):null}function A6(e){let t=Ra.get(e);return t===void 0&&(t={},Ra.set(e,t)),t}function td(e){let t="";const o=new Uint8Array(e);for(let r=0;rt.charCodeAt(0)).buffer}var T3={VERTEX:"vertex",FRAGMENT:"fragment"},u1={NONE:"none",FRAME:"frame",RENDER:"render",OBJECT:"object"},ae={READ_ONLY:"readOnly",WRITE_ONLY:"writeOnly",READ_WRITE:"readWrite"},rd=["fragment","vertex"],Ns=["setup","analyze","generate"],ys=[...rd,"compute"],m3=["x","y","z","w"],sd={analyze:"setup",generate:"analyze"},id=0,i1=class C6 extends B2{static get type(){return"Node"}constructor(t=null){super(),this.nodeType=t,this.updateType=u1.NONE,this.updateBeforeType=u1.NONE,this.updateAfterType=u1.NONE,this.version=0,this.name="",this.global=!1,this.parents=!1,this.isNode=!0,this._beforeNodes=null,this._cacheKey=null,this._uuid=null,this._cacheKeyVersion=0,this.id=id++,this.stackTrace=null,C6.captureStackTrace===!0&&(this.stackTrace=new E0)}set needsUpdate(t){t===!0&&this.version++}get uuid(){return this._uuid===null&&(this._uuid=kt.generateUUID()),this._uuid}get type(){return this.constructor.type}onUpdate(t,o){return this.updateType=o,this.update=t.bind(this),this}onFrameUpdate(t){return this.onUpdate(t,u1.FRAME)}onRenderUpdate(t){return this.onUpdate(t,u1.RENDER)}onObjectUpdate(t){return this.onUpdate(t,u1.OBJECT)}onReference(t){return this.updateReference=t.bind(this),this}updateReference(){return this}isGlobal(){return this.global}*getChildren(){for(const{childNode:t}of this._getChildren())yield t}dispose(){this.dispatchEvent({type:"dispose"})}traverse(t){t(this);for(const o of this.getChildren())o.traverse(t)}_getChildren(t=new Set){const o=[];t.add(this);for(const r of Object.getOwnPropertyNames(this)){const s=this[r];if(!(r.startsWith("_")===!0||t.has(s))){if(Array.isArray(s)===!0)for(let i=0;i0&&(t.inputNodes=r)}deserialize(t){if(t.inputNodes!==void 0){const o=t.meta.nodes;for(const r in t.inputNodes)if(Array.isArray(t.inputNodes[r])){const s=[];for(const i of t.inputNodes[r])s.push(o[i]);this[r]=s}else if(typeof t.inputNodes[r]=="object"){const s={};for(const i in t.inputNodes[r])s[i]=o[t.inputNodes[r][i]];this[r]=s}else{const s=t.inputNodes[r];this[r]=o[s]}}}toJSON(t){const{uuid:o,type:r}=this,s=t===void 0||typeof t=="string";s&&(t={textures:{},images:{},nodes:{}});let i=t.nodes[o];i===void 0&&(i={uuid:o,type:r,meta:t,metadata:{version:4.7,type:"Node",generator:"Node.toJSON"}},s!==!0&&(t.nodes[i.uuid]=i),this.serialize(i),delete i.meta);function n(a){const l=[];for(const u in a){const c=a[u];delete c.metadata,l.push(c)}return l}if(s){const a=n(t.textures),l=n(t.images),u=n(t.nodes);a.length>0&&(i.textures=a),l.length>0&&(i.images=l),u.length>0&&(i.nodes=u)}return i}};i1.captureStackTrace=!1;var g3=class extends i1{static get type(){return"ArrayElementNode"}constructor(e,t){super(),this.node=e,this.indexNode=t,this.isArrayElementNode=!0}generateNodeType(e){return this.node.getElementType(e)}getMemberType(e,t){return this.node.getMemberType(e,t)}generate(e){const t=this.indexNode.getNodeType(e);return`${this.node.build(e)}[ ${this.indexNode.build(e,!e.isVector(t)&&e.isInteger(t)?t:"uint")} ]`}},R6=class extends i1{static get type(){return"ConvertNode"}constructor(e,t){super(),this.node=e,this.convertTo=t}generateNodeType(e){const t=this.node.getNodeType(e);let o=null;for(const r of this.convertTo.split("|"))(o===null||e.getTypeLength(t)===e.getTypeLength(r))&&(o=r);return o}serialize(e){super.serialize(e),e.convertTo=this.convertTo}deserialize(e){super.deserialize(e),this.convertTo=e.convertTo}generate(e,t){const o=this.node,r=this.getNodeType(e),s=o.build(e,r);return e.format(s,r,t)}},n0=class extends i1{static get type(){return"TempNode"}constructor(e=null){super(e),this.isTempNode=!0}hasDependencies(e){return e.getDataFromNode(this).usageCount>1}build(e,t){if(e.getBuildStage()==="generate"){const o=e.getVectorType(this.getNodeType(e,t)),r=e.getDataFromNode(this);if(r.propertyName!==void 0)return e.format(r.propertyName,o,t);if(o!=="void"&&t!=="void"&&this.hasDependencies(e)){const s=super.build(e,o),i=e.getVarFromNode(this,null,o),n=e.getPropertyName(i);return e.addLineFlowCode(`${n} = ${s}`,this),r.snippet=s,r.propertyName=n,e.format(r.propertyName,o,t)}}return super.build(e,t)}},nd=class extends n0{static get type(){return"JoinNode"}constructor(e=[],t=null){super(t),this.nodes=e}generateNodeType(e){return this.nodeType!==null?e.getVectorType(this.nodeType):e.getTypeFromLength(this.nodes.reduce((t,o)=>t+e.getTypeLength(o.getNodeType(e)),0))}generate(e,t){const o=this.getNodeType(e),r=e.getTypeLength(o),s=this.nodes,i=e.getComponentType(o),n=[];let a=0;for(const u of s){if(a>=r){I(`TSL: Length of parameters exceeds maximum length of function '${o}()' type.`,this.stackTrace);break}let c=u.getNodeType(e),d=e.getTypeLength(c),h;if(a+d>r&&(I(`TSL: Length of '${o}()' data exceeds maximum length of output type.`,this.stackTrace),d=r-a,c=e.getTypeFromLength(d)),a+=d,h=u.build(e,c),e.getComponentType(c)!==i){const f=e.getTypeFromLength(d,i);h=e.format(h,c,f)}n.push(h)}const l=`${e.getType(o)}( ${n.join(", ")} )`;return e.format(l,o,t)}},ad=m3.join(""),ld=class extends i1{static get type(){return"SplitNode"}constructor(e,t="x"){super(),this.node=e,this.components=t,this.isSplitNode=!0}getVectorLength(){let e=this.components.length;for(const t of this.components)e=Math.max(m3.indexOf(t)+1,e);return e}getComponentType(e){return e.getComponentType(this.node.getNodeType(e))}generateNodeType(e){return e.getTypeFromLength(this.components.length,this.getComponentType(e))}getScope(){return this.node.getScope()}generate(e,t){const o=this.node,r=e.getTypeLength(o.getNodeType(e));let s=null;if(r>1){let i=null;this.getVectorLength()>=r&&(i=e.getTypeFromLength(this.getVectorLength(),this.getComponentType(e)));const n=o.build(e,i);this.components.length===r&&this.components===ad.slice(0,this.components.length)?s=e.format(n,i,t):s=e.format(`${n}.${this.components}`,this.getNodeType(e),t)}else s=o.build(e,t);return s}serialize(e){super.serialize(e),e.components=this.components}deserialize(e){super.deserialize(e),this.components=e.components}},ud=class extends n0{static get type(){return"SetNode"}constructor(e,t,o){super(),this.sourceNode=e,this.components=t,this.targetNode=o}generateNodeType(e){return this.sourceNode.getNodeType(e)}generate(e){const{sourceNode:t,components:o,targetNode:r}=this,s=this.getNodeType(e),i=e.getComponentType(r.getNodeType(e)),n=e.getTypeFromLength(o.length,i),a=r.build(e,n),l=t.build(e,s),u=e.getTypeLength(s),c=[];for(let d=0;de.replace(/r|s/g,"x").replace(/g|t/g,"y").replace(/b|p/g,"z").replace(/a|q/g,"w"),Ea=e=>hd(e).split("").sort().join("");i1.prototype.assign=function(...e){if(this.isStackNode!==!0)return M2!==null?M2.assign(this,...e):I("TSL: No stack defined for assign operation. Make sure the assign is inside a Fn().",new E0),this;{const t=Si.get("assign");return this.addToStack(t(...e))}};i1.prototype.toVarIntent=function(){return this};i1.prototype.get=function(e){return new dd(this,e)};var j3={};function Uo(e,t,o){j3[e]=j3[t]=j3[o]={get(){this._cache=this._cache||{};let n=this._cache[e];return n===void 0&&(n=new ld(this,e),this._cache[e]=n),n},set(n){this[e].assign(K(n))}};const r=e.toUpperCase(),s=t.toUpperCase(),i=o.toUpperCase();i1.prototype["set"+r]=i1.prototype["set"+s]=i1.prototype["set"+i]=function(n){const a=Ea(e);return new ud(this,a,K(n))},i1.prototype["flip"+r]=i1.prototype["flip"+s]=i1.prototype["flip"+i]=function(){const n=Ea(e);return new cd(this,n)}}var We=["x","y","z","w"],Le=["r","g","b","a"],Ue=["s","t","p","q"];for(let e=0;e<4;e++){let t=We[e],o=Le[e],r=Ue[e];Uo(t,o,r);for(let s=0;s<4;s++){t=We[e]+We[s],o=Le[e]+Le[s],r=Ue[e]+Ue[s],Uo(t,o,r);for(let i=0;i<4;i++){t=We[e]+We[s]+We[i],o=Le[e]+Le[s]+Le[i],r=Ue[e]+Ue[s]+Ue[i],Uo(t,o,r);for(let n=0;n<4;n++)t=We[e]+We[s]+We[i]+We[n],o=Le[e]+Le[s]+Le[i]+Le[n],r=Ue[e]+Ue[s]+Ue[i]+Ue[n],Uo(t,o,r)}}}for(let e=0;e<32;e++)j3[e]={get(){this._cache=this._cache||{};let t=this._cache[e];return t===void 0&&(t=new g3(this,new et(e,"uint")),this._cache[e]=t),t},set(t){this[e].assign(K(t))}};Object.defineProperties(i1.prototype,j3);var fd=function(e,t=null){const o=Lr(e);return o==="node"?e:t===null&&(o==="float"||o==="boolean")||o&&o!=="shader"&&o!=="string"?K(Ti(e,t)):o==="shader"?e.isFn?e:B(e):e},pd=function(e,t=null){for(const o in e)e[o]=K(e[o],t);return e},md=function(e,t=null){const o=e.length;for(let r=0;rl?(I(`TSL: "${d}" parameter length exceeds limit.`,new E0),c.slice(0,l)):c}return t===null?i=(...c)=>s(new e(...o3(u(c)))):o!==null?(o=K(o),i=(...c)=>s(new e(t,...o3(u(c)),o))):i=(...c)=>s(new e(t,...o3(u(c)))),i.setParameterLength=(...c)=>(c.length===1?a=l=c[0]:c.length===2&&([a,l]=c),i),i.setName=c=>(n=c,i),i},gd=function(e,...t){return new e(...o3(t))},vd=class extends i1{constructor(e,t){super(),this.shaderNode=e,this.rawInputs=t,this.isShaderCallNodeInternal=!0}generateNodeType(e){return this.shaderNode.nodeType||this.getOutputNode(e).getNodeType(e)}getElementType(e){return this.getOutputNode(e).getElementType(e)}getMemberType(e,t){return this.getOutputNode(e).getMemberType(e,t)}call(e){const{shaderNode:t,rawInputs:o}=this,r=e.getNodeProperties(t),s=e.getClosestSubBuild(t.subBuilds)||"",i=s||"default";if(r[i])return r[i];const n=e.subBuildFn,a=e.fnCall;e.subBuildFn=s,e.fnCall=this;let l=null;if(t.layout){if(o){const d=t.layout.inputs;if(E6(o)){const h=o;for(let f=0;f{let N;return Symbol.iterator===m?N=function*(){yield void 0}:N=Reflect.get(p,m,b),N}}),c=o?Nd(o):null,d=Array.isArray(o)?o.length>0:o!==null,h=t.jsFunc,f=d||h.length>1?h(c,u):h(u);l=K(f)}return e.subBuildFn=n,e.fnCall=a,t.once&&(r[i]=l),l}setupOutput(e){return e.addStack(),e.stack.outputNode=this.call(e),e.removeStack()}getOutputNode(e){const t=e.getNodeProperties(this),o=e.getSubBuildOutput(this);return t[o]=t[o]||this.setupOutput(e),t[o].subBuild=e.getClosestSubBuild(this),t[o]}build(e,t=null){let o=null;const r=e.getBuildStage(),s=e.getNodeProperties(this),i=e.getSubBuildOutput(this),n=this.getOutputNode(e),a=e.fnCall;if(e.fnCall=this,r==="setup"){const l=e.getSubBuildProperty("initialized",this);if(s[l]!==!0&&(s[l]=!0,s[i]=this.getOutputNode(e),s[i].build(e),this.shaderNode.subBuilds))for(const u of e.chaining){const c=e.getDataFromNode(u,"any");c.subBuilds=c.subBuilds||new Set;for(const d of this.shaderNode.subBuilds)c.subBuilds.add(d)}o=s[i]}else r==="analyze"?n.build(e,t):r==="generate"&&(o=n.build(e,t)||"");return e.fnCall=a,o}};function E6(e){return e[0]&&(e[0].isNode||Object.getPrototypeOf(e[0])!==Object.prototype)}function bd(e){let t;return bn(e),E6(e)?t=[...e]:t=e[0],t}function Nd(e){let t=0;return bn(e),new Proxy(e,{get:(o,r,s)=>{let i;if(r==="length")return i=e.length,i;if(Symbol.iterator===r)i=function*(){for(const n of e)yield K(n)};else{if(e.length>0)if(Object.getPrototypeOf(e[0])===Object.prototype){const n=e[0];n[r]===void 0?i=n[t++]:i=Reflect.get(n,r,s)}else e[0]instanceof i1&&(e[r]===void 0?i=e[t++]:i=Reflect.get(e,r,s));else i=Reflect.get(o,r,s);i=K(i)}return i}})}var yd=class extends i1{constructor(e,t){super(t),this.jsFunc=e,this.layout=null,this.global=!0,this.once=!1}setLayout(e){return this.layout=e,this}getLayout(){return this.layout}call(e=null){return new vd(this,e)}setup(){return this.call()}},Md=[!1,!0],xd=[0,1,2,3],Sd=[-1,-2],W6=[.5,1.5,1/3,1e-6,1e6,Math.PI,Math.PI*2,1/Math.PI,2/Math.PI,1/(Math.PI*2),Math.PI/2],mn=new Map;for(const e of Md)mn.set(e,new et(e));var gn=new Map;for(const e of xd)gn.set(e,new et(e,"uint"));var vn=new Map([...gn].map(e=>new et(e.value,"int")));for(const e of Sd)vn.set(e,new et(e,"int"));var Hr=new Map([...vn].map(e=>new et(e.value)));for(const e of W6)Hr.set(e,new et(e));for(const e of W6)Hr.set(-e,new et(-e));var Jr={bool:mn,uint:gn,ints:vn,float:Hr},Wa=new Map([...mn,...Hr]),Ti=(e,t)=>Wa.has(e)?Wa.get(e):e.isNode===!0?e:new et(e,t),a0=function(e,t=null){return(...o)=>{for(const s of o)if(s===void 0)return I(`TSL: Invalid parameter for the type "${e}".`,new E0),new et(0,e);if((o.length===0||!["bool","float","int","uint"].includes(e)&&o.every(s=>{const i=typeof s;return i!=="object"&&i!=="function"}))&&(o=[fn(e,...o)]),o.length===1&&t!==null&&t.has(o[0]))return Oo(t.get(o[0]));if(o.length===1){const s=Ti(o[0],e);return s.nodeType===e?Oo(s):Oo(new R6(s,e))}const r=o.map(s=>Ti(s));return Oo(new nd(r,e))}};function wi(e){return e&&e.isNode&&e.traverse(t=>{t.isConstNode&&(e=t.value)}),!!e}var Td=e=>e!=null?e.nodeType||e.convertTo||(typeof e=="string"?e:null):null;function $3(e,t){return new yd(e,t)}var K=(e,t=null)=>fd(e,t),Oo=(e,t=null)=>K(e,t).toVarIntent(),bn=(e,t=null)=>new pd(e,t),o3=(e,t=null)=>new md(e,t),$1=(e,t=null,o=null,r=null)=>new B6(e,t,o,r),z=(e,...t)=>new gd(e,...t),Z=(e,t=null,o=null,r={})=>new B6(e,t,o,{...r,intent:!0}),wd=0,_d=class extends i1{constructor(e,t=null){super();let o=null;t!==null&&(typeof t=="object"?o=t.return:(typeof t=="string"?o=t:I("TSL: Invalid layout type.",new E0),t=null)),this.shaderNode=new $3(e,o),t!==null&&this.setLayout(t),this.isFn=!0}setLayout(e){const t=this.shaderNode.nodeType;if(typeof e.inputs!="object"){const o={name:"fn"+wd++,type:t,inputs:[]};for(const r in e)r!=="return"&&o.inputs.push({name:r,type:e[r]});e=o}return this.shaderNode.setLayout(e),this}generateNodeType(e){return this.shaderNode.getNodeType(e)||"float"}call(...e){const t=this.shaderNode.call(e);return this.shaderNode.nodeType==="void"&&t.toStack(),t.toVarIntent()}once(e=null){return this.shaderNode.once=!0,this.shaderNode.subBuilds=e,this}generate(e){const t=this.getNodeType(e);return I('TSL: "Fn()" was declared but not invoked. Try calling it like "Fn()( ...params )".',this.stackTrace),e.generateConst(t)}};function B(e,t=null){const o=new _d(e,t);return new Proxy(()=>{},{apply(r,s,i){return o.call(...i)},get(r,s,i){return Reflect.get(o,s,i)},set(r,s,i,n){return Reflect.set(o,s,i,n)}})}var Ur=e=>{M2=e},L6=()=>M2,x1=(...e)=>M2.If(...e);function U6(e){return M2&&M2.addToStack(e),e}E("toStack",U6);var Ad=new a0("color"),R=new a0("float",Jr.float),Z1=new a0("int",Jr.ints),m1=new a0("uint",Jr.uint),jr=new a0("bool",Jr.bool),n1=new a0("vec2"),k0=new a0("ivec2"),O6=new a0("uvec2"),Cd=new a0("bvec2"),W=new a0("vec3"),F6=new a0("ivec3"),P6=new a0("uvec3"),Rd=new a0("bvec3"),Y=new a0("vec4"),D6=new a0("ivec4"),k6=new a0("uvec4"),Bd=new a0("bvec4"),Nn=new a0("mat2"),b0=new a0("mat3"),b2=new a0("mat4");E("toColor",Ad);E("toFloat",R);E("toInt",Z1);E("toUint",m1);E("toBool",jr);E("toVec2",n1);E("toIVec2",k0);E("toUVec2",O6);E("toBVec2",Cd);E("toVec3",W);E("toIVec3",F6);E("toUVec3",P6);E("toBVec3",Rd);E("toVec4",Y);E("toIVec4",D6);E("toUVec4",k6);E("toBVec4",Bd);E("toMat2",Nn);E("toMat3",b0);E("toMat4",b2);var Ed=$1(g3).setParameterLength(2),Wd=(e,t)=>new R6(K(e),t);E("element",Ed);E("convert",Wd);E("append",e=>(j("TSL: .append() has been renamed to .toStack().",new E0),U6(e)));var _1=class extends i1{static get type(){return"PropertyNode"}constructor(e,t=null,o=!1,r=null){super(e),this.name=t,this.varying=o,this.placeholderNode=K(r),this.isPropertyNode=!0,this.global=!0}getNodeType(e){const t=super.getNodeType(e);return t==="output"?e.getOutputType():t}customCacheKey(){return p3(this.type+":"+(this.name||"")+":"+(this.varying?"1":"0"))}getHash(e){return this.name||super.getHash(e)}generate(e){let t;if(this.varying===!0)t=e.getVaryingFromNode(this,this.name),t.needsInterpolation=!0;else if(t=e.getVarFromNode(this,this.name),this.placeholderNode!==null&&e.hasWriteUsage(this)===!1){const o=this.placeholderNode.build(e,this.getNodeType(e));e.addLineFlowCode(`${e.getPropertyName(t)} = ${o}`,this)}return e.getPropertyName(t)}},$t=(e,t,o=null)=>new _1(e,t,!1,o),v3=(e,t,o=null)=>new _1(e,t,!0,o),U1=z(_1,"vec4","DiffuseColor"),j2=z(_1,"vec3","DiffuseContribution"),La=z(_1,"vec3","EmissiveColor"),ut=z(_1,"float","Roughness"),Rt=z(_1,"float","Metalness"),_i=z(_1,"float","Clearcoat"),K3=z(_1,"float","ClearcoatRoughness"),te=z(_1,"vec3","Sheen"),n2=z(_1,"float","SheenRoughness"),yn=z(_1,"float","Iridescence"),Ai=z(_1,"float","IridescenceIOR"),Ci=z(_1,"float","IridescenceThickness"),Ri=z(_1,"float","AlphaT"),t2=z(_1,"float","Anisotropy"),Nr=z(_1,"vec3","AnisotropyT"),r3=z(_1,"vec3","AnisotropyB"),x2=z(_1,"color","SpecularColor"),K2=z(_1,"color","SpecularColorBlended"),Y2=z(_1,"float","SpecularF90"),Bi=z(_1,"float","Shininess"),Y3=z(_1,"output","Output"),s3=z(_1,"float","dashSize"),Or=z(_1,"float","gapSize"),yr=z(_1,"float","IOR"),Ei=z(_1,"float","Transmission"),X6=z(_1,"float","Thickness"),I6=z(_1,"float","AttenuationDistance"),G6=z(_1,"color","AttenuationColor"),z6=z(_1,"float","Dispersion"),Ua=z(_1,"float","AmbientOcclusion",!1,1),$6=class extends i1{static get type(){return"UniformGroupNode"}constructor(e,t=!1,o=1,r=null){super("string"),this.name=e,this.shared=t,this.order=o,this.updateType=r,this.isUniformGroup=!0}update(){this.needsUpdate=!0}serialize(e){super.serialize(e),e.name=this.name,e.version=this.version,e.shared=this.shared}deserialize(e){super.deserialize(e),this.name=e.name,this.version=e.version,this.shared=e.shared}},Ld=(e,t=1,o=null)=>new $6(e,!1,t,o),Mn=(e,t=0,o=null)=>new $6(e,!0,t,o),mw=Mn("frame",0,u1.FRAME),s1=Mn("render",0,u1.RENDER),Ud=Ld("object",1,u1.OBJECT),wo=class extends pn{static get type(){return"UniformNode"}constructor(e,t=null){super(e,t),this.isUniformNode=!0,this.name="",this.groupNode=Ud}setName(e){return this.name=e,this}label(e){return j('TSL: "label()" has been deprecated. Use "setName()" instead.',new E0),this.setName(e)}setGroup(e){return this.groupNode=e,this}getGroup(){return this.groupNode}getUniformHash(e){return this.getHash(e)}onUpdate(e,t){return e=e.bind(this),super.onUpdate(o=>{const r=e(o,this);r!==void 0&&(this.value=r)},t)}getInputType(e){let t=super.getInputType(e);return t==="bool"&&(t="uint"),t}generate(e,t){const o=this.getNodeType(e),r=this.getUniformHash(e);let s=e.getNodeFromHash(r);s===void 0&&(e.setHashNode(this,r),s=this);const i=s.getInputType(e),n=e.getUniformFromNode(s,i,e.shaderStage,this.name||e.context.nodeName),a=e.getPropertyName(n);e.context.nodeName!==void 0&&delete e.context.nodeName;let l=a;if(o==="bool"){const u=e.getDataFromNode(this);let c=u.propertyName;if(c===void 0){const d=e.getVarFromNode(this,null,"bool");c=e.getPropertyName(d),u.propertyName=c,l=e.format(a,i,o),e.addLineFlowCode(`${c} = ${l}`,this)}l=c}return e.format(l,o,t)}},o1=(e,t)=>{const o=Td(t||e);if(o===e&&(e=fn(o)),e&&e.isNode===!0){let r=e.value;e.traverse(s=>{s.isConstNode===!0&&(r=s.value)}),e=r}return new wo(e,o)},Oa=class extends n0{static get type(){return"ArrayNode"}constructor(e,t,o=null){super(e),this.count=t,this.values=o,this.isArrayNode=!0}getArrayCount(){return this.count}generateNodeType(e){return this.nodeType===null?this.values[0].getNodeType(e):this.nodeType}getElementType(e){return this.getNodeType(e)}getMemberType(e,t){return this.nodeType===null?this.values[0].getMemberType(e,t):super.getMemberType(e,t)}generate(e){const t=this.getNodeType(e);return e.generateArray(t,this.count,this.values)}},Od=(...e)=>{let t;if(e.length===1){const o=e[0];t=new Oa(null,o.length,o)}else{const o=e[0],r=e[1];t=new Oa(o,r)}return K(t)};E("toArray",(e,t)=>Od(Array(t).fill(e)));var Fd=class extends n0{static get type(){return"AssignNode"}constructor(e,t){super(),this.targetNode=e,this.sourceNode=t,this.isAssignNode=!0}hasDependencies(){return!1}generateNodeType(e,t){return t!=="void"?this.targetNode.getNodeType(e):"void"}needsSplitAssign(e){const{targetNode:t}=this;if(e.isAvailable("swizzleAssign")===!1&&t.isSplitNode&&t.components.length>1){const o=e.getTypeLength(t.node.getNodeType(e));return m3.join("").slice(0,o)!==t.components}return!1}setup(e){const{targetNode:t,sourceNode:o}=this,r=t.getScope(),s=e.getDataFromNode(r);s.assign=!0;const i=e.getNodeProperties(this);i.sourceNode=o,i.targetNode=t.context({assign:!0})}generate(e,t){const{targetNode:o,sourceNode:r}=e.getNodeProperties(this),s=this.needsSplitAssign(e),i=o.build(e),n=o.getNodeType(e),a=r.build(e,n),l=r.getNodeType(e),u=e.getDataFromNode(this);let c;if(u.initialized===!0)t!=="void"&&(c=i);else if(s){const d=e.getVarFromNode(this,null,n),h=e.getPropertyName(d);e.addLineFlowCode(`${h} = ${a}`,this);const f=o.node,p=f.node.context({assign:!0}).build(e);for(let m=0;m{const l=a.type,u=l==="pointer";let c;return u?c="&"+n.build(e):c=n.build(e,l),c};if(Array.isArray(s)){if(s.length>r.length)I("TSL: The number of provided parameters exceeds the expected number of inputs in 'Fn()'."),s.length=r.length;else if(s.length(t=t.length>1||t[0]&&t[0].isNode===!0?o3(t):bn(t[0]),new Dd(K(e),t));E("call",kd);var Xd={"==":"equal","!=":"notEqual","<":"lessThan",">":"greaterThan","<=":"lessThanEqual",">=":"greaterThanEqual","%":"mod"},i0=class Wi extends n0{static get type(){return"OperatorNode"}constructor(t,o,r,...s){if(super(),s.length>0){let i=new Wi(t,o,r);for(let n=0;n>"||r==="<<")return t.getIntegerType(n);if(r==="&&"||r==="||"||r==="^^")return"bool";if(r==="!"){const l=t.getTypeLength(n);return l>1?`bvec${l}`:"bool"}else if(r==="=="||r==="!="||r==="<"||r===">"||r==="<="||r===">="){const l=Math.max(t.getTypeLength(n),t.getTypeLength(a));return l>1?`bvec${l}`:"bool"}else{if(t.isMatrix(n)){if(a==="float")return n;if(t.isVector(a))return t.getVectorFromMatrix(n);if(t.isMatrix(a))return n}else if(t.isMatrix(a)){if(n==="float")return a;if(t.isVector(n))return t.getVectorFromMatrix(a)}return t.getTypeLength(a)>t.getTypeLength(n)?a:n}}generate(t,o){const r=this.op,{aNode:s,bNode:i}=this,n=this.getNodeType(t,o);let a=null,l=null;n!=="void"?(a=s.getNodeType(t),l=i?i.getNodeType(t):null,r==="<"||r===">"||r==="<="||r===">="||r==="=="||r==="!="?t.isVector(a)?l=a:t.isVector(l)?a=l:a!==l&&(a=l="float"):r===">>"||r==="<<"?(a=n,l=t.changeComponentType(l,"uint")):r==="%"?(a=n,l=t.isInteger(a)&&t.isInteger(l)?l:a):t.isMatrix(a)?l==="float"?l="float":t.isVector(l)?l=t.getVectorFromMatrix(a):t.isMatrix(l)||(a=l=n):t.isMatrix(l)?a==="float"?a="float":t.isVector(a)?a=t.getVectorFromMatrix(l):a=l=n:a=l=n):a=l=n;const u=s.build(t,a),c=i?i.build(t,l):null,d=t.getFunctionOperator(r);if(o!=="void"){const h=t.renderer.coordinateSystem===e6;if(r==="=="||r==="!="||r==="<"||r===">"||r==="<="||r===">=")return h?t.isVector(a)?t.format(`${this.getOperatorMethod(t,o)}( ${u}, ${c} )`,n,o):t.format(`( ${u} ${r} ${c} )`,n,o):t.format(`( ${u} ${r} ${c} )`,n,o);if(r==="%")return t.isInteger(l)?t.format(`( ${u} % ${c} )`,n,o):t.format(`${this.getOperatorMethod(t,n)}( ${u}, ${c} )`,n,o);if(r==="!")return h&&t.isVector(a)?t.format(`not( ${u} )`,o):t.format(`( ${r} ${u} )`,a,o);if(r==="~")return t.format(`( ${r} ${u} )`,a,o);if(d)return t.format(`${d}( ${u}, ${c} )`,n,o);if(t.isMatrix(a)&&l==="float")return t.format(`( ${c} ${r} ${u} )`,n,o);if(a==="float"&&t.isMatrix(l))return t.format(`${u} ${r} ${c}`,n,o);{let f=`( ${u} ${r} ${c} )`;return!h&&n==="bool"&&t.isVector(a)&&t.isVector(l)&&(f=`all${f}`),t.format(f,n,o)}}else if(a!=="void")return d?t.format(`${d}( ${u}, ${c} )`,n,o):t.isMatrix(a)&&l==="float"?t.format(`${c} ${r} ${u}`,n,o):t.format(`${u} ${r} ${c}`,n,o)}serialize(t){super.serialize(t),t.op=this.op}deserialize(t){super.deserialize(t),this.op=t.op}},I0=Z(i0,"+").setParameterLength(2,1/0).setName("add"),F0=Z(i0,"-").setParameterLength(2,1/0).setName("sub"),d1=Z(i0,"*").setParameterLength(2,1/0).setName("mul"),Je=Z(i0,"/").setParameterLength(2,1/0).setName("div"),V6=Z(i0,"%").setParameterLength(2).setName("mod"),Id=Z(i0,"==").setParameterLength(2).setName("equal"),Gd=Z(i0,"!=").setParameterLength(2).setName("notEqual"),zd=Z(i0,"<").setParameterLength(2).setName("lessThan"),$d=Z(i0,">").setParameterLength(2).setName("greaterThan"),Vd=Z(i0,"<=").setParameterLength(2).setName("lessThanEqual"),Qd=Z(i0,">=").setParameterLength(2).setName("greaterThanEqual"),Zd=Z(i0,"&&").setParameterLength(2,1/0).setName("and"),qd=Z(i0,"||").setParameterLength(2,1/0).setName("or"),Hd=Z(i0,"!").setParameterLength(1).setName("not"),Jd=Z(i0,"^^").setParameterLength(2).setName("xor"),jd=Z(i0,"&").setParameterLength(2).setName("bitAnd"),Kd=Z(i0,"~").setParameterLength(1).setName("bitNot"),Yd=Z(i0,"|").setParameterLength(2).setName("bitOr"),eh=Z(i0,"^").setParameterLength(2).setName("bitXor"),th=Z(i0,"<<").setParameterLength(2).setName("shiftLeft"),oh=Z(i0,">>").setParameterLength(2).setName("shiftRight"),rh=B(([e])=>(e.addAssign(1),e)),sh=B(([e])=>(e.subAssign(1),e)),ih=B(([e])=>{const t=Z1(e).toConst();return e.addAssign(1),t}),nh=B(([e])=>{const t=Z1(e).toConst();return e.subAssign(1),t});E("add",I0);E("sub",F0);E("mul",d1);E("div",Je);E("mod",V6);E("equal",Id);E("notEqual",Gd);E("lessThan",zd);E("greaterThan",$d);E("lessThanEqual",Vd);E("greaterThanEqual",Qd);E("and",Zd);E("or",qd);E("not",Hd);E("xor",Jd);E("bitAnd",jd);E("bitNot",Kd);E("bitOr",Yd);E("bitXor",eh);E("shiftLeft",th);E("shiftRight",oh);E("incrementBefore",rh);E("decrementBefore",sh);E("increment",ih);E("decrement",nh);var A=class I1 extends n0{static get type(){return"MathNode"}constructor(t,o,r=null,s=null){if(super(),(t===I1.MAX||t===I1.MIN)&&arguments.length>3){let i=new I1(t,o,r);for(let n=3;nn&&i>a?o:n>a?r:a>i?s:o}generateNodeType(t){const o=this.method;return o===I1.LENGTH||o===I1.DISTANCE||o===I1.DOT?"float":o===I1.CROSS?"vec3":o===I1.ALL||o===I1.ANY?"bool":o===I1.EQUALS?t.changeComponentType(this.aNode.getNodeType(t),"bool"):this.getInputType(t)}setup(t){const{aNode:o,bNode:r,method:s}=this;let i=null;if(s===I1.ONE_MINUS)i=F0(1,o);else if(s===I1.RECIPROCAL)i=Je(1,o);else if(s===I1.DIFFERENCE)i=q0(F0(o,r));else if(s===I1.TRANSFORM_DIRECTION){let n,a;t.isMatrix(o.getNodeType(t))?(n=o,a=r):(n=r,a=o),i=ce(d1(n,Y(W(a),0)).xyz)}return i!==null?i:super.setup(t)}generate(t,o){if(t.getNodeProperties(this).outputNode)return super.generate(t,o);let r=this.method;const s=this.getNodeType(t),i=this.getInputType(t),n=this.aNode,a=this.bNode,l=this.cNode,u=t.renderer.coordinateSystem;if(r===I1.NEGATE)return t.format("( - "+n.build(t,i)+" )",s,o);{const c=[];return r===I1.CROSS?c.push(n.build(t,s),a.build(t,s)):u===2e3&&r===I1.STEP?c.push(n.build(t,t.getTypeLength(n.getNodeType(t))===1?"float":i),a.build(t,i)):u===2e3&&(r===I1.MIN||r===I1.MAX)?c.push(n.build(t,i),a.build(t,t.getTypeLength(a.getNodeType(t))===1?"float":i)):r===I1.REFRACT?c.push(n.build(t,i),a.build(t,i),l.build(t,"float")):r===I1.MIX?c.push(n.build(t,i),a.build(t,i),l.build(t,t.getTypeLength(l.getNodeType(t))===1?"float":i)):(u===2001&&r===I1.ATAN&&a!==null&&(r="atan2"),t.shaderStage!=="fragment"&&(r===I1.DFDX||r===I1.DFDY)&&(j(`TSL: '${r}' is not supported in the ${t.shaderStage} stage.`,this.stackTrace),r="/*"+r+"*/"),c.push(n.build(t,i)),a!==null&&c.push(a.build(t,i)),l!==null&&c.push(l.build(t,i))),t.format(`${t.getMethod(r,s)}( ${c.join(", ")} )`,s,o)}}serialize(t){super.serialize(t),t.method=this.method}deserialize(t){super.deserialize(t),this.method=t.method}};A.ALL="all";A.ANY="any";A.RADIANS="radians";A.DEGREES="degrees";A.EXP="exp";A.EXP2="exp2";A.LOG="log";A.LOG2="log2";A.SQRT="sqrt";A.INVERSE_SQRT="inversesqrt";A.FLOOR="floor";A.CEIL="ceil";A.NORMALIZE="normalize";A.FRACT="fract";A.SIN="sin";A.SINH="sinh";A.COS="cos";A.COSH="cosh";A.TAN="tan";A.TANH="tanh";A.ASIN="asin";A.ASINH="asinh";A.ACOS="acos";A.ACOSH="acosh";A.ATAN="atan";A.ATANH="atanh";A.ABS="abs";A.SIGN="sign";A.LENGTH="length";A.NEGATE="negate";A.ONE_MINUS="oneMinus";A.DFDX="dFdx";A.DFDY="dFdy";A.ROUND="round";A.RECIPROCAL="reciprocal";A.TRUNC="trunc";A.FWIDTH="fwidth";A.TRANSPOSE="transpose";A.DETERMINANT="determinant";A.INVERSE="inverse";A.EQUALS="equals";A.MIN="min";A.MAX="max";A.STEP="step";A.REFLECT="reflect";A.DISTANCE="distance";A.DIFFERENCE="difference";A.DOT="dot";A.CROSS="cross";A.POW="pow";A.TRANSFORM_DIRECTION="transformDirection";A.MIX="mix";A.CLAMP="clamp";A.REFRACT="refract";A.SMOOTHSTEP="smoothstep";A.FACEFORWARD="faceforward";var xn=R(1e-6),ah=R(Math.PI),gw=R(Math.PI*2),vw=R(Math.PI*2),bw=R(Math.PI*.5),lh=Z(A,A.ALL).setParameterLength(1),uh=Z(A,A.ANY).setParameterLength(1),ch=Z(A,A.RADIANS).setParameterLength(1),dh=Z(A,A.DEGREES).setParameterLength(1),Q6=Z(A,A.EXP).setParameterLength(1),lo=Z(A,A.EXP2).setParameterLength(1),Z6=Z(A,A.LOG).setParameterLength(1),ht=Z(A,A.LOG2).setParameterLength(1),Pt=Z(A,A.SQRT).setParameterLength(1),hh=Z(A,A.INVERSE_SQRT).setParameterLength(1),N2=Z(A,A.FLOOR).setParameterLength(1),Sn=Z(A,A.CEIL).setParameterLength(1),ce=Z(A,A.NORMALIZE).setParameterLength(1),je=Z(A,A.FRACT).setParameterLength(1),Z0=Z(A,A.SIN).setParameterLength(1),fh=Z(A,A.SINH).setParameterLength(1),Xe=Z(A,A.COS).setParameterLength(1),ph=Z(A,A.COSH).setParameterLength(1),mh=Z(A,A.TAN).setParameterLength(1),gh=Z(A,A.TANH).setParameterLength(1),vh=Z(A,A.ASIN).setParameterLength(1),bh=Z(A,A.ASINH).setParameterLength(1),q6=Z(A,A.ACOS).setParameterLength(1),Nh=Z(A,A.ACOSH).setParameterLength(1),yh=Z(A,A.ATAN).setParameterLength(1,2),Mh=Z(A,A.ATANH).setParameterLength(1),q0=Z(A,A.ABS).setParameterLength(1),H6=Z(A,A.SIGN).setParameterLength(1),ft=Z(A,A.LENGTH).setParameterLength(1),J6=Z(A,A.NEGATE).setParameterLength(1),xh=Z(A,A.ONE_MINUS).setParameterLength(1),j6=Z(A,A.DFDX).setParameterLength(1),K6=Z(A,A.DFDY).setParameterLength(1),Sh=Z(A,A.ROUND).setParameterLength(1),Th=Z(A,A.RECIPROCAL).setParameterLength(1),wh=Z(A,A.TRUNC).setParameterLength(1),Y6=Z(A,A.FWIDTH).setParameterLength(1),_h=Z(A,A.TRANSPOSE).setParameterLength(1),Ah=Z(A,A.DETERMINANT).setParameterLength(1),Ch=Z(A,A.INVERSE).setParameterLength(1),u3=Z(A,A.MIN).setParameterLength(2,1/0),N0=Z(A,A.MAX).setParameterLength(2,1/0),uo=Z(A,A.STEP).setParameterLength(2),Rh=Z(A,A.REFLECT).setParameterLength(2),Bh=Z(A,A.DISTANCE).setParameterLength(2),Eh=Z(A,A.DIFFERENCE).setParameterLength(2),S2=Z(A,A.DOT).setParameterLength(2),T2=Z(A,A.CROSS).setParameterLength(2),Kr=Z(A,A.POW).setParameterLength(2),e8=e=>d1(e,e),Wh=e=>d1(e,e,e),t8=e=>d1(e,e,e,e),Lh=Z(A,A.TRANSFORM_DIRECTION).setParameterLength(2),Uh=(e,t)=>ce(d1(t,Y(W(e),0)).xyz),Oh=(e,t)=>ce(Y(W(e),0).mul(t).xyz),Fh=e=>d1(H6(e),Kr(q0(e),1/3)),o8=e=>S2(e,e),B1=Z(A,A.MIX).setParameterLength(3),Xt=(e,t=0,o=1)=>new A(A.CLAMP,K(e),K(t),K(o)),Tn=e=>Xt(e),r8=Z(A,A.REFRACT).setParameterLength(3),Ce=Z(A,A.SMOOTHSTEP).setParameterLength(3),Ph=Z(A,A.FACEFORWARD).setParameterLength(3),Dh=B(([e])=>{const r=43758.5453,s=S2(e.xy,n1(12.9898,78.233)),i=V6(s,ah);return je(Z0(i).mul(r))}),kh=(e,t,o)=>B1(t,o,e),Xh=(e,t,o)=>Ce(t,o,e),Ih=(e,t)=>uo(t,e);E("all",lh);E("any",uh);E("radians",ch);E("degrees",dh);E("exp",Q6);E("exp2",lo);E("log",Z6);E("log2",ht);E("sqrt",Pt);E("inverseSqrt",hh);E("floor",N2);E("ceil",Sn);E("normalize",ce);E("fract",je);E("sin",Z0);E("sinh",fh);E("cos",Xe);E("cosh",ph);E("tan",mh);E("tanh",gh);E("asin",vh);E("asinh",bh);E("acos",q6);E("acosh",Nh);E("atan",yh);E("atanh",Mh);E("abs",q0);E("sign",H6);E("length",ft);E("lengthSq",o8);E("negate",J6);E("oneMinus",xh);E("dFdx",j6);E("dFdy",K6);E("round",Sh);E("reciprocal",Th);E("trunc",wh);E("fwidth",Y6);E("min",u3);E("max",N0);E("step",Ih);E("reflect",Rh);E("distance",Bh);E("dot",S2);E("cross",T2);E("pow",Kr);E("pow2",e8);E("pow3",Wh);E("pow4",t8);E("transformDirection",Lh);E("transformNormalByViewMatrix",Uh);E("transformNormalByInverseViewMatrix",Oh);E("mix",kh);E("clamp",Xt);E("refract",r8);E("smoothstep",Xh);E("faceForward",Ph);E("difference",Eh);E("saturate",Tn);E("cbrt",Fh);E("transpose",_h);E("determinant",Ah);E("inverse",Ch);E("rand",Dh);var Gh=class extends i1{static get type(){return"ConditionalNode"}constructor(e,t,o=null){super(),this.condNode=e,this.ifNode=t,this.elseNode=o}generateNodeType(e){const{ifNode:t,elseNode:o}=e.getNodeProperties(this);if(t===void 0)return e.flowBuildStage(this,"setup"),this.getNodeType(e);const r=t.getNodeType(e);if(o!==null){const s=o.getNodeType(e);if(e.getTypeLength(s)>e.getTypeLength(r))return s}return r}setup(e){const t=this.condNode,o=this.ifNode.isolate(),r=this.elseNode?this.elseNode.isolate():null,s=e.context.nodeBlock;e.getDataFromNode(o).parentNodeBlock=s,r!==null&&(e.getDataFromNode(r).parentNodeBlock=s);const i=e.context.uniformFlow,n=e.getNodeProperties(this);n.condNode=t,n.ifNode=i?o:o.context({nodeBlock:o}),n.elseNode=r?i?r:r.context({nodeBlock:r}):null}generate(e,t){const o=this.getNodeType(e),r=e.getDataFromNode(this);if(r.nodeProperty!==void 0)return r.nodeProperty;const{condNode:s,ifNode:i,elseNode:n}=e.getNodeProperties(this),a=e.currentFunctionNode,l=t!=="void",u=l?$t(o).build(e):"";r.nodeProperty=u;const c=s.build(e,"bool");if(e.context.uniformFlow&&n!==null){const h=i.build(e,o),f=n.build(e,o),p=e.getTernary(c,h,f);return e.format(p,o,t)}e.addFlowCode(` +${e.tab}if ( ${c} ) { + +`).addFlowTab();let d=i.build(e,o);if(d&&(l?d=u+" = "+d+";":(d="return "+d+";",a===null&&(j("TSL: Return statement used in an inline 'Fn()'. Define a layout struct to allow return values.",this.stackTrace),d="// "+d))),e.removeFlowTab().addFlowCode(e.tab+" "+d+` + +`+e.tab+"}"),n!==null){e.addFlowCode(` else { + +`).addFlowTab();let h=n.build(e,o);h&&(l?h=u+" = "+h+";":(h="return "+h+";",a===null&&(j("TSL: Return statement used in an inline 'Fn()'. Define a layout struct to allow return values.",this.stackTrace),h="// "+h))),e.removeFlowTab().addFlowCode(e.tab+" "+h+` + +`+e.tab+`} + +`)}else e.addFlowCode(` + +`);return e.format(u,o,t)}},H0=$1(Gh).setParameterLength(2,3);E("select",H0);var wn=class extends i1{static get type(){return"ContextNode"}constructor(e=null,t={}){super(),this.isContextNode=!0,this.node=e,this.value=t}getScope(){return this.node.getScope()}generateNodeType(e){return this.node.getNodeType(e)}getFlowContextData(){const e=[];return this.traverse(t=>{t.isContextNode===!0&&e.push(t.value)}),Object.assign({},...e)}getMemberType(e,t){return this.node.getMemberType(e,t)}analyze(e){const t=e.addContext(this.value);this.node.build(e),e.setContext(t)}setup(e){const t=e.addContext(this.value);this.node.build(e),e.setContext(t)}generate(e,t){const o=e.addContext(this.value),r=this.node.build(e,t);return e.setContext(o),r}},E2=(e=null,t={})=>{let o=e;return(o===null||o.isNode!==!0)&&(t=o||t,o=null),new wn(o,t)},zh=e=>E2(e,{uniformFlow:!0}),s8=(e,t)=>E2(e,{nodeName:t});function $h(e,t,o=null){return E2(o,{getShadow:({light:r,shadowColorNode:s})=>t===r?s.mul(e):s})}function Vh(e,t=null){return E2(t,{getAO:(o,{material:r})=>r.transparent===!0?o:o!==null?o.mul(e):e})}function Qh(e,t){return j('TSL: "label()" has been deprecated. Use "setName()" instead.'),s8(e,t)}E("context",E2);E("label",Qh);E("uniformFlow",zh);E("setName",s8);E("builtinShadowContext",(e,t,o)=>$h(t,o,e));E("builtinAOContext",(e,t)=>Vh(t,e));var Mr=class extends i1{static get type(){return"VarNode"}constructor(e,t=null,o=!1){super(),this.node=e,this.name=t,this.global=!0,this.isVarNode=!0,this.readOnly=o,this.parents=!0,this.intent=!1}setIntent(e){return this.intent=e,this}isIntent(e){return e.getDataFromNode(this).forceDeclaration===!0?!1:this.intent}getIntent(){return this.intent}getMemberType(e,t){return this.node.getMemberType(e,t)}getElementType(e){return this.node.getElementType(e)}generateNodeType(e){return this.node.getNodeType(e)}getArrayCount(e){return this.node.getArrayCount(e)}isAssign(e){return e.getDataFromNode(this).assign}build(...e){const t=e[0],o=this.getShared(t);if(this!==o)return o.build(...e);if(this._hasStack(t)===!1&&t.buildStage==="setup"&&(t.context.nodeLoop||t.context.nodeBlock)){let r=!1;if(this.node.isShaderCallNodeInternal&&this.node.shaderNode.getLayout()===null&&t.fnCall&&t.fnCall.shaderNode&&t.getDataFromNode(this.node.shaderNode).hasLoop){const i=t.getDataFromNode(this);i.forceDeclaration=!0,r=!0}const s=t.getBaseStack();r?s.addToStackBefore(this):s.addToStack(this)}return this.isIntent(t)&&this.isAssign(t)!==!0?this.node.build(...e):super.build(...e)}generate(e){const{node:t,name:o,readOnly:r}=this,{renderer:s}=e,i=s.backend.isWebGPUBackend===!0;let n=!1,a=!1;r&&(n=e.isDeterministic(t),a=i?r:n);const l=this.getNodeType(e);if(l=="void")return this.isIntent(e)!==!0&&I('TSL: ".toVar()" can not be used with void type.',this.stackTrace),t.build(e);const u=e.getVectorType(l),c=t.build(e,u),d=e.getVarFromNode(this,o,u,void 0,a),h=e.getPropertyName(d);let f=h;if(a)if(i)f=n?`const ${h}`:`let ${h}`;else{const p=t.getArrayCount(e);f=`const ${e.getVar(d.type,h,p)}`}return e.addLineFlowCode(`${f} = ${c}`,this),h}_hasStack(e){return e.getDataFromNode(this).stack!==void 0}},_n=$1(Mr),Zh=(e,t=null)=>_n(e,t).toStack(),qh=(e,t=null)=>_n(e,t,!0).toStack(),Hh=e=>_n(e).setIntent(!0).toStack();E("toVar",Zh);E("toConst",qh);E("toVarIntent",Hh);var Jh=class extends i1{static get type(){return"SubBuild"}constructor(e,t,o=null){super(o),this.node=e,this.name=t,this.isSubBuildNode=!0}generateNodeType(e){if(this.nodeType!==null)return this.nodeType;e.addSubBuild(this.name);const t=this.node.getNodeType(e);return e.removeSubBuild(),t}build(e,...t){e.addSubBuild(this.name);const o=this.node.build(e,...t);return e.removeSubBuild(),o}},i3=(e,t,o=null)=>new Jh(K(e),t,o),jh=class extends i1{static get type(){return"VaryingNode"}constructor(e,t=null){super(),this.node=i3(e,"VERTEX"),this.name=t,this.isVaryingNode=!0,this.interpolationType=null,this.interpolationSampling=null,this.global=!0}setInterpolation(e,t=null){return this.interpolationType=e,this.interpolationSampling=t,this}getHash(e){return this.name||super.getHash(e)}generateNodeType(e){return this.node.getNodeType(e)}setupVarying(e){const t=e.getNodeProperties(this);let o=t.varying;if(o===void 0){const r=this.name,s=this.getNodeType(e),i=this.interpolationType,n=this.interpolationSampling;t.varying=o=e.getVaryingFromNode(this,r,s,i,n),t.node=i3(this.node,"VERTEX")}return o.needsInterpolation||(o.needsInterpolation=e.shaderStage==="fragment"),o}setup(e){this.setupVarying(e),e.flowNodeFromShaderStage(T3.VERTEX,this.node)}analyze(e){this.setupVarying(e),e.flowNodeFromShaderStage(T3.VERTEX,this.node)}generate(e){const t=e.getSubBuildProperty("property",e.currentStack),o=e.getNodeProperties(this),r=this.setupVarying(e);if(o[t]===void 0){const s=this.getNodeType(e),i=e.getPropertyName(r,T3.VERTEX);if(e.shaderStage===T3.VERTEX){const n=o.node.build(e,s);e.addLineFlowCode(`${i} = ${n}`,this)}else e.flowNodeFromShaderStage(T3.VERTEX,o.node,s,i);o[t]=i}return e.getPropertyName(r)}},W2=$1(jh).setParameterLength(1,2),Kh=e=>W2(e);E("toVarying",W2);E("toVertexStage",Kh);var Yh=B(([e])=>{const t=e.mul(.9478672986).add(.0521327014).pow(2.4),o=e.mul(.0773993808),r=e.lessThanEqual(.04045);return B1(t,o,r)}).setLayout({name:"sRGBTransferEOTF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),ef=B(([e])=>{const t=e.pow(.41666).mul(1.055).sub(.055),o=e.mul(12.92),r=e.lessThanEqual(.0031308);return B1(t,o,r)}).setLayout({name:"sRGBTransferOETF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),An="WorkingColorSpace",tf="OutputColorSpace",i8=class extends n0{static get type(){return"ColorSpaceNode"}constructor(e,t,o){super("vec4"),this.colorNode=e,this.source=t,this.target=o}resolveColorSpace(e,t){return t===An?o0.workingColorSpace:t===tf?e.context.outputColorSpace||e.renderer.outputColorSpace:t}setup(e){const{colorNode:t}=this,o=this.resolveColorSpace(e,this.source),r=this.resolveColorSpace(e,this.target);let s=t;return o0.enabled===!1||o===r||!o||!r||(o0.getTransfer(o)==="srgb"&&(s=Y(Yh(s.rgb),s.a)),o0.getPrimaries(o)!==o0.getPrimaries(r)&&(s=Y(b0(o0._getMatrix(new No,o,r)).mul(s.rgb),s.a)),o0.getTransfer(r)==="srgb"&&(s=Y(ef(s.rgb),s.a))),s}},of=(e,t)=>new i8(K(e),An,t),Cn=(e,t)=>new i8(K(e),t,An);E("workingToColorSpace",of);E("colorSpaceToWorking",Cn);var rf=class extends g3{static get type(){return"ReferenceElementNode"}constructor(t,o){super(t,o),this.referenceNode=t,this.isReferenceElementNode=!0}generateNodeType(){return this.referenceNode.uniformType}generate(t){const o=super.generate(t),r=this.referenceNode.getNodeType(),s=this.getNodeType();return t.format(o,r,s)}},n8=class extends i1{static get type(){return"ReferenceBaseNode"}constructor(e,t,o=null,r=null){super(),this.property=e,this.uniformType=t,this.object=o,this.count=r,this.properties=e.split("."),this.reference=o,this.node=null,this.group=null,this.updateType=u1.OBJECT}setGroup(e){return this.group=e,this}element(e){return new rf(this,K(e))}setNodeType(e){const t=o1(null,e);this.group!==null&&t.setGroup(this.group),this.node=t}generateNodeType(e){return this.node===null&&(this.updateReference(e),this.updateValue()),this.node.getNodeType(e)}getValueFromReference(e=this.reference){const{properties:t}=this;let o=e[t[0]];for(let r=1;rnew n8(e,t,o),nf=class extends n8{static get type(){return"RendererReferenceNode"}constructor(e,t,o=null){super(e,t,o),this.renderer=o,this.setGroup(s1)}updateReference(e){return this.reference=this.renderer!==null?this.renderer:e.renderer,this.reference}},af=(e,t,o=null)=>new nf(e,t,o),lf=class extends n0{static get type(){return"ToneMappingNode"}constructor(e,t=cf,o=null){super("vec3"),this._toneMapping=e,this.exposureNode=t,this.colorNode=o}customCacheKey(){return J3(this._toneMapping)}setToneMapping(e){return this._toneMapping=e,this}getToneMapping(){return this._toneMapping}setup(e){const t=this.colorNode||e.context.color,o=this._toneMapping;if(o===0)return t;let r=null;const s=e.renderer.library.getToneMappingFunction(o);return s!==null?r=Y(s(t.rgb,this.exposureNode),t.a):(I("ToneMappingNode: Unsupported Tone Mapping configuration.",o),r=t),r}},uf=(e,t,o)=>new lf(e,K(t),K(o)),cf=af("toneMappingExposure","float");E("toneMapping",(e,t,o)=>uf(t,o,e));var Fa=new WeakMap;function Pa(e,t){let o=Fa.get(e);return o===void 0&&(o=new al(e,t),Fa.set(e,o)),o}var bt=class extends pn{static get type(){return"BufferAttributeNode"}constructor(e,t=null,o=0,r=0){super(e,t),this.isBufferNode=!0,this.bufferType=t,this.bufferStride=o,this.bufferOffset=r,this.usage=en,this.instanced=!1,this.attribute=null,this.global=!0,e&&e.isBufferAttribute===!0&&e.itemSize<=4&&(this.attribute=e,this.usage=e.usage,this.instanced=e.isInstancedBufferAttribute)}getHash(e){let t;if(this.bufferStride===0&&this.bufferOffset===0){let o=e.globalCache.getData(this.value);o===void 0&&(o={node:this},e.globalCache.setData(this.value,o)),t=o.node.id}else t=this.id;return String(t)}generateNodeType(e){return this.bufferType===null&&(this.bufferType=e.getTypeFromAttribute(this.attribute)),this.bufferType}setup(e){if(this.attribute!==null)return;const t=this.getNodeType(e),o=e.getTypeLength(t),r=this.value,s=this.bufferStride||o,i=this.bufferOffset;let n;r.isInterleavedBuffer===!0?n=r:r.isBufferAttribute===!0?n=Pa(r.array,s):n=Pa(r,s);const a=new c2(n,o,i);n.setUsage(this.usage),this.attribute=a,this.attribute.isInstancedBufferAttribute=this.instanced}generate(e){const t=this.getNodeType(e),o=e.context.nodeName;o!==void 0&&delete e.context.nodeName;const r=e.getBufferAttributeFromNode(this,t,o),s=e.getPropertyName(r);let i=null;if(e.shaderStage==="vertex"||e.shaderStage==="compute")this.name=s,i=s;else{let n;o&&(n=o+"Varying"),i=W2(this,n).build(e,t)}return i}getInputType(){return"bufferAttribute"}setUsage(e){return this.usage=e,this.attribute&&this.attribute.isBufferAttribute===!0&&(this.attribute.usage=e),this}setInstanced(e){return this.instanced=e,this}};function Rn(e,t=null,o=0,r=0,s=en,i=!1){return t==="mat3"||t===null&&e.itemSize===9?b0(new bt(e,"vec3",9,0).setUsage(s).setInstanced(i),new bt(e,"vec3",9,3).setUsage(s).setInstanced(i),new bt(e,"vec3",9,6).setUsage(s).setInstanced(i)):t==="mat4"||t===null&&e.itemSize===16?b2(new bt(e,"vec4",16,0).setUsage(s).setInstanced(i),new bt(e,"vec4",16,4).setUsage(s).setInstanced(i),new bt(e,"vec4",16,8).setUsage(s).setInstanced(i),new bt(e,"vec4",16,12).setUsage(s).setInstanced(i)):new bt(e,t,o,r).setUsage(s)}var a8=(e,t=null,o=0,r=0)=>Rn(e,t,o,r),l8=(e,t=null,o=0,r=0)=>Rn(e,t,o,r,en,!0),u8=(e,t=null,o=0,r=0)=>Rn(e,t,o,r,Z9,!0);E("toAttribute",e=>a8(e.value));var c0=class o2 extends i1{static get type(){return"IndexNode"}constructor(t){super("uint"),this.scope=t,this.isIndexNode=!0}generate(t){const o=this.getNodeType(t),r=this.scope;let s;if(r===o2.VERTEX)s=t.getVertexIndex();else if(r===o2.INSTANCE)s=t.getInstanceIndex();else if(r===o2.DRAW)s=t.getDrawIndex();else if(r===o2.INVOCATION_LOCAL)s=t.getInvocationLocalIndex();else if(r===o2.INVOCATION_SUBGROUP)s=t.getInvocationSubgroupIndex();else if(r===o2.SUBGROUP)s=t.getSubgroupIndex();else throw new Error("THREE.IndexNode: Unknown scope: "+r);let i;return t.shaderStage==="vertex"||t.shaderStage==="compute"?i=s:i=W2(this).build(t,o),i}};c0.VERTEX="vertex";c0.INSTANCE="instance";c0.SUBGROUP="subgroup";c0.INVOCATION_LOCAL="invocationLocal";c0.INVOCATION_SUBGROUP="invocationSubgroup";c0.DRAW="draw";var df=z(c0,c0.VERTEX),c3=z(c0,c0.INSTANCE),yw=z(c0,c0.SUBGROUP),Mw=z(c0,c0.INVOCATION_SUBGROUP),xw=z(c0,c0.INVOCATION_LOCAL),hf=z(c0,c0.DRAW),ff=class extends i1{static get type(){return"ComputeNode"}constructor(e,t){super("void"),this.isComputeNode=!0,this.computeNode=e,this.workgroupSize=t,this.count=null,this.dispatchSize=null,this.version=1,this.name="",this.updateBeforeType=u1.OBJECT,this.onInitFunction=null,this.countNode=null}dispose(){this.dispatchEvent({type:"dispose"})}setName(e){return this.name=e,this}label(e){return j('TSL: "label()" has been deprecated. Use "setName()" instead.',new E0),this.setName(e)}onInit(e){return this.onInitFunction=e,this}updateBefore({renderer:e}){e.compute(this)}setup(e){this.count!==null&&this.countNode===null&&(this.countNode=o1(this.count,"uint").onObjectUpdate(()=>this.count));const t=this.computeNode.build(e);if(t){const o=e.getNodeProperties(this);o.outputComputeNode=t.outputNode,t.outputNode=null}return t}generate(e,t){const{shaderStage:o}=e;if(o==="compute"){const r=this.computeNode.build(e,"void");if(r!==""&&e.addLineFlowCode(r,this),this.count!==null&&e.allowEarlyReturns===!0){const s=this.countNode.build(e,"uint"),i=c3.build(e,"uint");e.flow.code=`${e.tab}if ( ${i} >= ${s} ) { return; } + +${e.flow.code}`}}else{const r=e.getNodeProperties(this).outputComputeNode;if(r)return r.build(e,t)}}},c8=(e,t=[64])=>{(t.length===0||t.length>3)&&I("TSL: compute() workgroupSize must have 1, 2, or 3 elements",new E0);for(let o=0;o{const r=c8(e,o);return typeof t=="number"?r.count=t:r.dispatchSize=t,r};E("compute",pf);E("computeKernel",c8);var mf=class extends i1{static get type(){return"IsolateNode"}constructor(e,t=!0){super(),this.node=e,this.parent=t,this.isIsolateNode=!0}generateNodeType(e){const t=e.getCache(),o=e.getCacheFromNode(this,this.parent);e.setCache(o);const r=this.node.getNodeType(e);return e.setCache(t),r}build(e,...t){const o=e.getCache(),r=e.getCacheFromNode(this,this.parent);e.setCache(r);const s=this.node.build(e,...t);return e.setCache(o),s}setParent(e){return this.parent=e,this}getParent(){return this.parent}},eo=e=>new mf(K(e));function gf(e,t=!0){return j('TSL: "cache()" has been deprecated. Use "isolate()" instead.'),eo(e).setParent(t)}E("cache",gf);E("isolate",eo);var vf=class extends i1{static get type(){return"BypassNode"}constructor(e,t){super(),this.isBypassNode=!0,this.outputNode=e,this.callNode=t}generateNodeType(e){return this.outputNode.getNodeType(e)}generate(e){const t=this.callNode.build(e,"void");return t!==""&&e.addLineFlowCode(t,this),this.outputNode.build(e)}},bf=$1(vf).setParameterLength(2);E("bypass",bf);var d8=B(([e,t,o,r=R(0),s=R(1),i=jr(!1)])=>{let n=e.sub(t).div(o.sub(t));return wi(i)&&(n=n.clamp()),n.mul(s.sub(r)).add(r)});function Nf(e,t,o,r=R(0),s=R(1)){return d8(e,t,o,r,s,!0)}E("remap",d8);E("remapClamp",Nf);var xr=class extends i1{static get type(){return"ExpressionNode"}constructor(e="",t="void"){super(t),this.snippet=e}generate(e,t){const o=this.getNodeType(e),r=this.snippet;if(o==="void")e.addLineFlowCode(r,this);else return e.format(r,o,t)}},Ge=$1(xr).setParameterLength(1,2),yf=e=>(e?H0(e,Ge("discard")):Ge("discard")).toStack();E("discard",yf);var h8=B(([e])=>Y(e.rgb.mul(e.a),e.a),{color:"vec4",return:"vec4"}),Mf=B(([e])=>e.a.equal(0).select(Y(0),Y(e.rgb.div(e.a),e.a)),{color:"vec4",return:"vec4"}),xf=class extends n0{static get type(){return"RenderOutputNode"}constructor(e,t,o){super("vec4"),this.colorNode=e,this._toneMapping=t,this.outputColorSpace=o,this.isRenderOutputNode=!0}setToneMapping(e){return this._toneMapping=e,this}getToneMapping(){return this._toneMapping}setup({context:e}){let t=this.colorNode||e.color;t=Y(t.rgb,t.a.clamp(0,1)),t=Mf(t);const o=(this._toneMapping!==null?this._toneMapping:e.toneMapping)||0,r=(this.outputColorSpace!==null?this.outputColorSpace:e.outputColorSpace)||"";return o!==0&&(t=t.toneMapping(o)),r!==""&&r!==o0.workingColorSpace&&(t=t.workingToColorSpace(r)),t=h8(t),t}},f8=(e,t=null,o=null)=>new xf(K(e),t,o);E("renderOutput",f8);var Sf=class extends n0{static get type(){return"DebugNode"}constructor(e,t=null){super(),this.node=e,this.callback=t}generateNodeType(e){return this.node.getNodeType(e)}setup(e){return this.node.build(e)}analyze(e){return this.node.build(e)}generate(e){const t=this.callback,o=this.node.build(e);if(t!==null)t(e,o);else{const r="--- TSL debug - "+e.shaderStage+" shader ---",s="-".repeat(r.length);let i="";i+="// #"+r+`# +`,i+=e.flow.code.replace(/^\t/gm,"")+` +`,i+="/* ... */ "+o+` /* ... */ +`,i+="// #"+s+`# +`,su(i)}return o}},Tf=(e,t=null)=>new Sf(K(e),t).toStack();E("debug",Tf);var p8=class extends B2{constructor(){super(),this._renderer=null,this.currentFrame=null}get nodeFrame(){return this._renderer._nodes.nodeFrame}setRenderer(e){return this._renderer=e,this}getRenderer(){return this._renderer}init(){}begin(){}finish(){}inspect(){}computeAsync(){}beginCompute(){}finishCompute(){}beginRender(){}finishRender(){}copyTextureToTexture(){}copyFramebufferToTexture(){}},wf=class extends i1{static get type(){return"InspectorNode"}constructor(e,t="",o=null){super(),this.node=e,this.name=t,this.callback=o,this.updateType=u1.FRAME,this.isInspectorNode=!0}getName(){return this.name||this.node.name}update(e){e.renderer.inspector.inspect(this)}generateNodeType(e){return this.node.getNodeType(e)}setup(e){let t=this.node;return e.context.inspector===!0&&this.callback!==null&&(t=this.callback(t)),e.renderer.backend.isWebGPUBackend!==!0&&e.renderer.inspector.constructor!==p8&&z1('TSL: ".toInspector()" is only available with WebGPU.'),t}};function _f(e,t="",o=null){return e=K(e),e.before(new wf(e,t,o))}E("toInspector",_f);var m8=class extends i1{static get type(){return"AttributeNode"}constructor(e,t=null){super(t),this.global=!0,this._attributeName=e}getHash(e){return this.getAttributeName(e)}generateNodeType(e){let t=this.nodeType;if(t===null){const o=this.getAttributeName(e);if(e.hasGeometryAttribute(o)){const r=e.geometry.getAttribute(o);t=e.getTypeFromAttribute(r)}else t="float"}return t}setAttributeName(e){return this._attributeName=e,this}getAttributeName(){return this._attributeName}generate(e){const t=this.getAttributeName(e),o=this.getNodeType(e);if(e.hasGeometryAttribute(t)===!0){const r=e.geometry.getAttribute(t),s=e.getTypeFromAttribute(r),i=e.getAttribute(t,s);return e.shaderStage==="vertex"?e.format(i.name,s,o):W2(this).build(e,o)}else return j(`AttributeNode: Vertex attribute "${t}" not found on geometry.`),e.generateConst(o)}serialize(e){super.serialize(e),e.global=this.global,e._attributeName=this._attributeName}deserialize(e){super.deserialize(e),this.global=e.global,this._attributeName=e._attributeName}},le=(e,t=null)=>new m8(e,t),L2=(e=0)=>le("uv"+(e>0?e:""),"vec2"),Af=class extends i1{static get type(){return"TextureSizeNode"}constructor(e,t=null){super("uvec2"),this.isTextureSizeNode=!0,this.textureNode=e,this.levelNode=t}generate(e,t){const o=this.textureNode.build(e,"property"),r=this.levelNode===null?"0":this.levelNode.build(e,"int");return e.format(`${e.getMethod("textureDimensions")}( ${o}, ${r} )`,this.getNodeType(e),t)}},co=$1(Af).setParameterLength(1,2),Cf=class extends wo{static get type(){return"MaxMipLevelNode"}constructor(e){super(0),this._textureNode=e,this.updateType=u1.FRAME}get textureNode(){return this._textureNode}get texture(){return this._textureNode.value}update(){const e=this.texture,t=e.images,o=t&&t.length>0?t[0]&&t[0].image||t[0]:e.image;if(o&&o.width!==void 0){const{width:r,height:s}=o;this.value=Math.log2(Math.max(r,s))}}},Rf=$1(Cf).setParameterLength(1),Bf=class extends Error{constructor(e,t=null){super(e),this.name="NodeError",this.stackTrace=t}},g8=new bo,_o=class extends wo{static get type(){return"TextureNode"}constructor(e=g8,t=null,o=null,r=null){super(e),this.isTextureNode=!0,this.uvNode=t,this.levelNode=o,this.biasNode=r,this.compareNode=null,this.depthNode=null,this.gradNode=null,this.gatherNode=null,this.offsetNode=null,this.sampler=!0,this.updateMatrix=!1,this.updateType=u1.NONE,this.referenceNode=null,this._value=e,this._matrixUniform=null,this._flipYUniform=null,this.setUpdateMatrix(t===null)}set value(e){this.referenceNode?this.referenceNode.value=e:this._value=e}get value(){return this.referenceNode?this.referenceNode.value:this._value}getUniformHash(){return this.value.uuid}generateNodeType(){return this.value.isDepthTexture===!0?this.gatherNode===null?"float":"vec4":this.value.type===1014?"uvec4":this.value.type===1013?"ivec4":"vec4"}getInputType(){return"texture"}getDefaultUV(){return L2(this.value.channel)}updateReference(){return this.value}getTransformedUV(e){return this._matrixUniform===null&&(this._matrixUniform=o1(this.value.matrix)),this._matrixUniform.mul(W(e,1)).xy}setUpdateMatrix(e){return this.updateMatrix=e,this}setupUV(e,t){return e.isFlipY()&&(this._flipYUniform===null&&(this._flipYUniform=o1(!1)),t=t.toVar(),this.sampler?t=this._flipYUniform.select(t.flipY(),t):t=this._flipYUniform.select(t.setY(Z1(co(this,this.levelNode).y).sub(t.y).sub(1)),t)),t}setup(e){const t=e.getNodeProperties(this);t.referenceNode=this.referenceNode;const o=this.value;if(!o||o.isTexture!==!0)throw new Bf("THREE.TSL: `texture( value )` function expects a valid instance of THREE.Texture().",this.stackTrace);const r=B(()=>{let a=this.uvNode;return(a===null||e.context.forceUVContext===!0)&&e.context.getUV&&(a=e.context.getUV(this,e)),a||(a=this.getDefaultUV()),this.updateMatrix===!0&&(a=this.getTransformedUV(a)),a=this.setupUV(e,a),this.updateType=this._matrixUniform!==null||this._flipYUniform!==null?u1.OBJECT:u1.NONE,a})();let s=this.levelNode;s===null&&e.context.getTextureLevel&&(s=e.context.getTextureLevel(this));let i=null,n=null;if(this.compareNode!==null)if(e.renderer.hasCompatibility(R2.TEXTURE_COMPARE))i=this.compareNode;else{const a=o.compareFunction;a===null||a===513||a===515||a===516||a===518?n=this.compareNode:(i=this.compareNode,z1('TSL: Only "LessCompare", "LessEqualCompare", "GreaterCompare" and "GreaterEqualCompare" are supported for depth texture comparison fallback.'))}t.uvNode=r,t.levelNode=s,t.biasNode=this.biasNode,t.compareNode=i,t.compareStepNode=n,t.gradNode=this.gradNode,t.gatherNode=this.gatherNode,t.depthNode=this.depthNode,t.offsetNode=this.offsetNode}generateUV(e,t){return t.build(e,this.sampler===!0?"vec2":"ivec2")}generateOffset(e,t){return t.build(e,"ivec2")}generateSnippet(e,t,o,r,s,i,n,a,l,u,c){const d=this.value;let h;return s?h=e.generateTextureBias(d,t,o,s,i,u):a?h=e.generateTextureGrad(d,t,o,a,i,u):l?n?h=e.generateTextureGatherCompare(d,t,o,n,i,u,c):h=e.generateTextureGather(d,t,o,l,i,u,c):n?h=e.generateTextureCompare(d,t,o,n,i,u):this.sampler===!1?h=e.generateTextureLoad(d,t,o,r,i,u):r?h=e.generateTextureLevel(d,t,o,r,i,u):h=e.generateTexture(d,t,o,i,u),h}generate(e,t){const o=this.value,r=e.getNodeProperties(this),s=super.generate(e,"property");if(/^sampler/.test(t))return s+"_sampler";if(e.isReference(t))return s;{const i=e.getDataFromNode(this);let n=this.getNodeType(e),a=i.propertyName;if(a===void 0){const{uvNode:u,levelNode:c,biasNode:d,compareNode:h,compareStepNode:f,depthNode:p,gradNode:m,gatherNode:b,offsetNode:N}=r,v=this.generateUV(e,u),y=c?c.build(e,"float"):null,T=d?d.build(e,"float"):null,x=p?p.build(e,"int"):null,S=h?h.build(e,"float"):null,C=f?f.build(e,"float"):null,w=m?[m[0].build(e,"vec2"),m[1].build(e,"vec2")]:null,L=b?b.build(e,"int"):null,F=N?this.generateOffset(e,N):null,P=this._flipYUniform?this._flipYUniform.build(e,"bool"):null;L&&(n="vec4");let X=x;X===null&&o.isArrayTexture&&this.isTexture3DNode!==!0&&(X="0");const V=e.getVarFromNode(this);a=e.getPropertyName(V);let U=this.generateSnippet(e,s,v,y,T,X,S,w,L,F,P);if(C!==null){const D=o.compareFunction;D===516||D===518?U=uo(Ge(U,n),Ge(C,"float")).build(e,n):U=uo(Ge(C,"float"),Ge(U,n)).build(e,n)}e.addLineFlowCode(`${a} = ${U}`,this),i.snippet=U,i.propertyName=a}let l=a;return e.needsToWorkingColorSpace(o)&&(l=Cn(Ge(l,n),o.colorSpace).setup(e).build(e,n)),e.format(l,n,t)}}setSampler(e){return this.sampler=e,this}getSampler(){return this.sampler}sample(e){const t=this.clone();return t.uvNode=K(e),t.referenceNode=this.getBase(),K(t)}load(e){return this.sample(e).setSampler(!1)}blur(e){const t=this.clone();t.biasNode=K(e).mul(Rf(t)),t.referenceNode=this.getBase();const o=t.value;return t.generateMipmaps===!1&&(o&&o.generateMipmaps===!1||o.minFilter===1003||o.magFilter===1003)&&(j("TSL: texture().blur() requires mipmaps and sampling. Use .generateMipmaps=true and .minFilter/.magFilter=THREE.LinearFilter in the Texture."),t.biasNode=null),K(t)}level(e){const t=this.clone();return t.levelNode=K(e),t.referenceNode=this.getBase(),K(t)}size(e){return co(this,e)}bias(e){const t=this.clone();return t.biasNode=K(e),t.referenceNode=this.getBase(),K(t)}getBase(){return this.referenceNode?this.referenceNode.getBase():this}compare(e){const t=this.clone();return t.compareNode=K(e),t.referenceNode=this.getBase(),K(t)}grad(e,t){const o=this.clone();return o.gradNode=[K(e),K(t)],o.referenceNode=this.getBase(),K(o)}gather(e=0){const t=this.clone();return t.gatherNode=K(e),t.referenceNode=this.getBase(),K(t)}depth(e){const t=this.clone();return t.depthNode=K(e),t.referenceNode=this.getBase(),K(t)}offset(e){const t=this.clone();return t.offsetNode=K(e),t.referenceNode=this.getBase(),K(t)}serialize(e){super.serialize(e),e.value=this.value.toJSON(e.meta).uuid,e.sampler=this.sampler,e.updateMatrix=this.updateMatrix,e.updateType=this.updateType}deserialize(e){super.deserialize(e),this.value=e.meta.textures[e.value],this.sampler=e.sampler,this.updateMatrix=e.updateMatrix,this.updateType=e.updateType}update(){const e=this.value,t=this._matrixUniform;t!==null&&(t.value=e.matrix),e.matrixAutoUpdate===!0&&e.updateMatrix();const o=this._flipYUniform;o!==null&&(o.value=e.image instanceof ImageBitmap&&e.flipY===!0||e.isRenderTargetTexture===!0||e.isFramebufferTexture===!0||e.isDepthTexture===!0)}clone(){const e=new this.constructor(this.value,this.uvNode,this.levelNode,this.biasNode);return e.sampler=this.sampler,e.depthNode=this.depthNode,e.compareNode=this.compareNode,e.gradNode=this.gradNode,e.gatherNode=this.gatherNode,e.offsetNode=this.offsetNode,e}},Ef=$1(_o).setParameterLength(1,4).setName("texture"),P1=(e=g8,t=null,o=null,r=null)=>{let s;return e&&e.isTextureNode===!0?(s=K(e.clone()),s.referenceNode=e.getBase(),t!==null&&(s.uvNode=K(t)),o!==null&&(s.levelNode=K(o)),r!==null&&(s.biasNode=K(r))):s=Ef(e,t,o,r),s},be=(...e)=>P1(...e).setSampler(!1),Bn=class extends wo{static get type(){return"BufferNode"}constructor(e,t,o=0){super(e,t),this.isBufferNode=!0,this.bufferType=t,this.bufferCount=o,this.updateRanges=[]}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}getElementType(e){return this.getNodeType(e)}getInputType(){return"buffer"}},En=(e,t,o)=>new Bn(e,t,o),Wf=class extends g3{static get type(){return"UniformArrayElementNode"}constructor(e,t){super(e,t),this.isArrayBufferElementNode=!0}generate(e){const t=super.generate(e),o=this.getNodeType(e),r=this.node.getPaddedType();return e.format(t,r,o)}},Lf=class extends Bn{static get type(){return"UniformArrayNode"}constructor(e,t=null){super(null),this.array=e,this.elementType=t===null?Lr(e[0]):t,this.paddedType=this.getPaddedType(),this.updateType=u1.RENDER,this.isArrayBufferNode=!0}generateNodeType(){return this.paddedType}getElementType(){return this.elementType}getPaddedType(){const e=this.elementType;let t="vec4";return e==="mat2"?t="mat2":/mat/.test(e)===!0?t="mat4":e.charAt(0)==="i"?t="ivec4":e.charAt(0)==="u"&&(t="uvec4"),t}update(){const{array:e,value:t}=this,o=this.elementType;if(o==="float"||o==="int"||o==="uint")for(let r=0;rnew Lf(e,t),Uf=class extends i1{constructor(e){super("float"),this.name=e,this.isBuiltinNode=!0}generate(){return this.name}},U2=$1(Uf).setParameterLength(1),w3,_3,W0=class ee extends i1{static get type(){return"ScreenNode"}constructor(t){super(),this.scope=t,this._output=null,this.isViewportNode=!0}generateNodeType(){return this.scope===ee.DPR?"float":this.scope===ee.VIEWPORT?"vec4":"vec2"}getUpdateType(){let t=u1.NONE;return(this.scope===ee.SIZE||this.scope===ee.VIEWPORT||this.scope===ee.DPR)&&(t=u1.RENDER),this.updateType=t,t}update({renderer:t}){const o=t.getRenderTarget();this.scope===ee.VIEWPORT?o!==null?_3.copy(o.viewport):(t.getViewport(_3),_3.multiplyScalar(t.getPixelRatio())):this.scope===ee.DPR?this._output.value=t.getPixelRatio():o!==null?(w3.width=o.width,w3.height=o.height):t.getDrawingBufferSize(w3)}setup(){const t=this.scope;let o=null;return t===ee.SIZE?o=o1(w3||(w3=new f1)):t===ee.VIEWPORT?o=o1(_3||(_3=new S1)):t===ee.DPR?o=o1(1):o=n1(b3.div(Li)),this._output=o,o}generate(t){if(this.scope===ee.COORDINATE){let o=t.getFragCoord();if(t.isFlipY()){const r=t.getNodeProperties(Li).outputNode.build(t);o=`${t.getType("vec2")}( ${o}.x, ${r}.y - ${o}.y )`}return o}return super.generate(t)}};W0.COORDINATE="coordinate";W0.VIEWPORT="viewport";W0.SIZE="size";W0.UV="uv";W0.DPR="dpr";var v8=z(W0,W0.DPR),Bt=z(W0,W0.UV),Li=z(W0,W0.SIZE),b3=z(W0,W0.COORDINATE),to=z(W0,W0.VIEWPORT),Of=to.zw,Sw=b3.sub(to.xy),Ms=null,Fo=null,xs=null,Po=null,Ss=null,Do=null,Ts=null,ko=null,ws=null,Xo=null,Ao=o1(0,"uint").setName("u_cameraIndex").setGroup(Mn("cameraIndex")).toVarying("v_cameraIndex"),a2=o1("float").setName("cameraNear").setGroup(s1).onRenderUpdate(({camera:e})=>e.near),l2=o1("float").setName("cameraFar").setGroup(s1).onRenderUpdate(({camera:e})=>e.far),xe=B(({camera:e})=>{let t;if(e.isArrayCamera&&e.cameras.length>0){const o=[];for(const r of e.cameras)o.push(r.projectionMatrix);Fo===null?Fo=P0(o).setGroup(s1).setName("cameraProjectionMatrices"):Fo.array=o,t=Fo.element(e.isMultiViewCamera?U2("gl_ViewID_OVR"):Ao)}else Ms===null&&(Ms=o1(e.projectionMatrix).setName("cameraProjectionMatrix").setGroup(s1).onRenderUpdate(({camera:o})=>o.projectionMatrix)),t=Ms;return t}).once()(),Ff=B(({camera:e})=>{let t;if(e.isArrayCamera&&e.cameras.length>0){const o=[];for(const r of e.cameras)o.push(r.projectionMatrixInverse);Po===null?Po=P0(o).setGroup(s1).setName("cameraProjectionMatricesInverse"):Po.array=o,t=Po.element(e.isMultiViewCamera?U2("gl_ViewID_OVR"):Ao)}else xs===null&&(xs=o1(e.projectionMatrixInverse).setName("cameraProjectionMatrixInverse").setGroup(s1).onRenderUpdate(({camera:o})=>o.projectionMatrixInverse)),t=xs;return t}).once()(),N3=B(({camera:e})=>{let t;if(e.isArrayCamera&&e.cameras.length>0){const o=[];for(const r of e.cameras)o.push(r.matrixWorldInverse);Do===null?Do=P0(o).setGroup(s1).setName("cameraViewMatrices"):Do.array=o,t=Do.element(e.isMultiViewCamera?U2("gl_ViewID_OVR"):Ao)}else Ss===null&&(Ss=o1(e.matrixWorldInverse).setName("cameraViewMatrix").setGroup(s1).onRenderUpdate(({camera:o})=>o.matrixWorldInverse)),t=Ss;return t}).once()(),Wn=B(({camera:e})=>{let t;if(e.isArrayCamera&&e.cameras.length>0){const o=[];for(const r of e.cameras)o.push(r.matrixWorld);ko===null?ko=P0(o).setGroup(s1).setName("cameraWorldMatrices"):ko.array=o,t=ko.element(e.isMultiViewCamera?U2("gl_ViewID_OVR"):Ao)}else Ts===null&&(Ts=o1(e.matrixWorld).setName("cameraWorldMatrix").setGroup(s1).onRenderUpdate(({camera:o})=>o.matrixWorld)),t=Ts;return t}).once()(),Pf=B(({camera:e})=>{let t;if(e.isArrayCamera&&e.cameras.length>0){const o=[];for(let r=0,s=e.cameras.length;r{const i=r.cameras,n=s.array;for(let a=0,l=i.length;ar.value.setFromMatrixPosition(o.matrixWorld))),t=ws;return t}).once()(),Da=new sn,O2=class l0 extends i1{static get type(){return"Object3DNode"}constructor(t,o=null){super(),this.scope=t,this.object3d=o,this.updateType=u1.OBJECT,this.uniformNode=new wo(null)}generateNodeType(){const t=this.scope;if(t===l0.WORLD_MATRIX)return"mat4";if(t===l0.POSITION||t===l0.VIEW_POSITION||t===l0.DIRECTION||t===l0.SCALE)return"vec3";if(t===l0.RADIUS)return"float"}update(t){const o=this.object3d,r=this.uniformNode,s=this.scope;if(s===l0.WORLD_MATRIX)r.value=o.matrixWorld;else if(s===l0.POSITION)r.value=r.value||new G,r.value.setFromMatrixPosition(o.matrixWorld);else if(s===l0.SCALE)r.value=r.value||new G,r.value.setFromMatrixScale(o.matrixWorld);else if(s===l0.DIRECTION)r.value=r.value||new G,o.getWorldDirection(r.value);else if(s===l0.VIEW_POSITION){const i=t.camera;r.value=r.value||new G,r.value.setFromMatrixPosition(o.matrixWorld),r.value.applyMatrix4(i.matrixWorldInverse)}else if(s===l0.RADIUS){const i=t.object.geometry;i.boundingSphere===null&&i.computeBoundingSphere(),Da.copy(i.boundingSphere).applyMatrix4(o.matrixWorld),r.value=Da.radius}}generate(t){const o=this.scope;return o===l0.WORLD_MATRIX?this.uniformNode.nodeType="mat4":o===l0.POSITION||o===l0.VIEW_POSITION||o===l0.DIRECTION||o===l0.SCALE?this.uniformNode.nodeType="vec3":o===l0.RADIUS&&(this.uniformNode.nodeType="float"),this.uniformNode.build(t)}serialize(t){super.serialize(t),t.scope=this.scope}deserialize(t){super.deserialize(t),this.scope=t.scope}};O2.WORLD_MATRIX="worldMatrix";O2.POSITION="position";O2.SCALE="scale";O2.VIEW_POSITION="viewPosition";O2.DIRECTION="direction";O2.RADIUS="radius";var de=class extends O2{static get type(){return"ModelNode"}constructor(e){super(e)}update(e){this.object3d=e.object,super.update(e)}},Tw=z(de,de.DIRECTION),w2=z(de,de.WORLD_MATRIX),ww=z(de,de.POSITION),_w=z(de,de.SCALE),Aw=z(de,de.VIEW_POSITION),Cw=z(de,de.RADIUS),Df=o1(new No).onObjectUpdate(({object:e},t)=>t.value.getNormalMatrix(e.matrixWorld)),_2=B(e=>e.context.modelViewMatrix||kf).once()().toVar("modelViewMatrix"),kf=N3.mul(w2),ka=B(e=>(e.context.isHighPrecisionModelViewMatrix=!0,o1("mat4").onObjectUpdate(({object:t,camera:o})=>t.modelViewMatrix.multiplyMatrices(o.matrixWorldInverse,t.matrixWorld)))).once()().toVar("highpModelViewMatrix"),Xa=B(e=>{const t=e.context.isHighPrecisionModelViewMatrix;return o1("mat3").onObjectUpdate(({object:o,camera:r})=>(t!==!0&&o.modelViewMatrix.multiplyMatrices(r.matrixWorldInverse,o.matrixWorld),o.normalMatrix.getNormalMatrix(o.modelViewMatrix)))}).once()().toVar("highpModelNormalViewMatrix"),Xf=B(e=>e.shaderStage!=="fragment"?(z1("TSL: `clipSpace` is only available in fragment stage."),Y()):e.context.clipSpace.toVarying("v_clipSpace")).once()(),R0=le("position","vec3"),u0=R0.toVarying("positionLocal"),Fr=R0.toVarying("positionPrevious"),d3=B(e=>w2.mul(u0).xyz.toVarying(e.getSubBuildProperty("v_positionWorld")),"vec3").once(["POSITION"])(),b8=B(()=>u0.transformDirection(w2).toVarying("v_positionWorldDirection").normalize().toVar("positionWorldDirection"),"vec3").once(["POSITION"])(),r0=B(e=>{if(e.shaderStage==="fragment"&&e.material.vertexNode){const t=Ff.mul(Xf);return t.xyz.div(t.w).toVar("positionView")}return e.context.setupPositionView().toVarying("v_positionView")},"vec3").once(["POSITION","VERTEX"])(),k1=B(e=>{let t;return e.camera.isOrthographicCamera?t=W(0,0,1):t=r0.negate().toVarying("v_positionViewDirection").normalize(),t.toVar("positionViewDirection")},"vec3").once(["POSITION"])(),If=class extends i1{static get type(){return"FrontFacingNode"}constructor(){super("bool"),this.isFrontFacingNode=!0}generate(e){if(e.shaderStage!=="fragment")return"true";const{material:t}=e;return t.side===1?"false":e.getFrontFacing()}},Gf=z(If),N8=R(Gf).mul(2).sub(1),Co=B(([e],{material:t})=>{const o=t.side;return o===1?e=e.mul(-1):o===2&&(e=e.mul(N8)),e}),y8=le("normal","vec3"),Ke=B(e=>e.geometry.hasAttribute("normal")===!1?(j('TSL: Vertex attribute "normal" not found on geometry.'),W(0,1,0)):y8,"vec3").once()().toVar("normalLocal"),zf=r0.dFdx().cross(r0.dFdy()).normalize().toVar("normalFlat"),ho=B(e=>{let t;return e.isFlatShading()?t=zf:t=x8(Ke).toVarying("v_normalViewGeometry").normalize(),t},"vec3").once()().toVar("normalViewGeometry"),$f=B(e=>{let t=ho.transformNormalByInverseViewMatrix(N3);return e.isFlatShading()!==!0&&(t=t.toVarying("v_normalWorldGeometry")),t.normalize().toVar("normalWorldGeometry")},"vec3").once()(),y1=B(e=>{let t;return e.subBuildFn==="NORMAL"||e.subBuildFn==="VERTEX"?(t=ho,e.isFlatShading()!==!0&&(t=Co(t))):t=e.context.setupNormal().context({getUV:null,getTextureLevel:null}),t},"vec3").once(["NORMAL","VERTEX"])().toVar("normalView"),y3=y1.transformNormalByInverseViewMatrix(N3).toVar("normalWorld"),u2=B(({subBuildFn:e,context:t})=>{let o;return e==="NORMAL"||e==="VERTEX"?o=y1:o=t.setupClearcoatNormal().context({getUV:null,getTextureLevel:null}),o},"vec3").once(["NORMAL","VERTEX"])().toVar("clearcoatNormalView"),M8=B(([e,t=w2])=>b0(t).inverse().transpose().mul(e).normalize());E("transformNormal",M8);var x8=B(([e],t)=>{const o=t.context.modelNormalViewMatrix;return o?e.transformNormalByViewMatrix(o):Df.mul(e).transformNormalByViewMatrix(N3)}),Rw=B(()=>(j('TSL: "transformedNormalView" is deprecated. Use "normalView" instead.'),y1)).once(["NORMAL","VERTEX"])(),Bw=B(()=>(j('TSL: "transformedNormalWorld" is deprecated. Use "normalWorld" instead.'),y3)).once(["NORMAL","VERTEX"])(),Ew=B(()=>(j('TSL: "transformedClearcoatNormalView" is deprecated. Use "clearcoatNormalView" instead.'),u2)).once(["NORMAL","VERTEX"])(),_s=new v0,Vf=o1(0).onReference(({material:e})=>e).onObjectUpdate(({material:e})=>e.refractionRatio),As=o1(1).onReference(({material:e})=>e).onObjectUpdate(function({material:e,scene:t}){return e.envMap?e.envMapIntensity:t.environmentIntensity}),Ui=o1(new v0).onReference(function(e){return e.material}).onObjectUpdate(function({material:e,scene:t}){const o=(t.environment!==null||t.environmentNode&&t.environmentNode.isNode)&&e.envMap===null?t.environmentRotation:e.envMapRotation;return o?_s.makeRotationFromEuler(o).transpose():_s.identity(),_s}),Qf=k1.negate().reflect(y1),Zf=k1.negate().refract(y1,Vf),qf=Qf.transformDirection(Wn).toVar("reflectVector"),Hf=Zf.transformDirection(Wn).toVar("refractVector"),Jf=new Zr,jf=class extends _o{static get type(){return"CubeTextureNode"}constructor(e,t=null,o=null,r=null){super(e,t,o,r),this.isCubeTextureNode=!0}getInputType(){return this.value.isDepthTexture===!0?"cubeDepthTexture":"cubeTexture"}getDefaultUV(){const e=this.value;return e.mapping===301?qf:e.mapping===302?Hf:(I('CubeTextureNode: Mapping "%s" not supported.',e.mapping),W(0,0,0))}setUpdateMatrix(){}setupUV(e,t){const o=this.value;return o.isDepthTexture===!0?e.renderer.coordinateSystem===2001?W(t.x,t.y.negate(),t.z):t:(t=Ui.mul(t),(e.renderer.coordinateSystem===2001||!o.isRenderTargetTexture)&&(t=W(t.x.negate(),t.yz)),t)}generateUV(e,t){return t.build(e,this.sampler===!0?"vec3":"ivec3")}},Kf=$1(jf).setParameterLength(1,4).setName("cubeTexture"),D0=(e=Jf,t=null,o=null,r=null)=>{let s;return e&&e.isCubeTextureNode===!0?(s=K(e.clone()),s.referenceNode=e,t!==null&&(s.uvNode=K(t)),o!==null&&(s.levelNode=K(o)),r!==null&&(s.biasNode=K(r))):s=Kf(e,t,o,r),s},Yf=class extends g3{static get type(){return"ReferenceElementNode"}constructor(e,t){super(e,t),this.referenceNode=e,this.isReferenceElementNode=!0}generateNodeType(){return this.referenceNode.uniformType}generate(e){const t=super.generate(e),o=this.referenceNode.getNodeType(e),r=this.getNodeType(e);return e.format(t,o,r)}},Ln=class extends i1{static get type(){return"ReferenceNode"}constructor(e,t,o=null,r=null){super(),this.property=e,this.uniformType=t,this.object=o,this.count=r,this.properties=e.split("."),this.reference=o,this.node=null,this.group=null,this.name=null,this.updateType=u1.OBJECT}element(e){return new Yf(this,K(e))}setGroup(e){return this.group=e,this}setName(e){return this.name=e,this}label(e){return j('TSL: "label()" has been deprecated. Use "setName()" instead.'),this.setName(e)}setNodeType(e){let t=null;this.count!==null?t=En(null,e,this.count):Array.isArray(this.getValueFromReference())?(t=P0(null,e),t.updateType=u1.OBJECT):e==="texture"?t=P1(null):e==="cubeTexture"?t=D0(null):t=o1(null,e),this.group!==null&&t.setGroup(this.group),this.name!==null&&t.setName(this.name),this.node=t}generateNodeType(e){return this.node===null&&(this.updateReference(e),this.updateValue()),this.node.getNodeType(e)}getValueFromReference(e=this.reference){const{properties:t}=this;let o=e[t[0]];for(let r=1;rnew Ln(e,t,o),ep=(e,t,o,r)=>new Ln(e,t,r,o),tp=class extends Ln{static get type(){return"MaterialReferenceNode"}constructor(e,t,o=null){super(e,t,o),this.material=o,this.isMaterialReferenceNode=!0}updateReference(e){return this.reference=this.material!==null?this.material:e.material,this.reference}},At=(e,t,o=null)=>new tp(e,t,o),S8=L2(),op=r0.dFdx(),rp=r0.dFdy(),T8=S8.dFdx(),w8=S8.dFdy(),_8=y1,A8=rp.cross(_8),C8=_8.cross(op),Oi=A8.mul(T8.x).add(C8.mul(w8.x)),Fi=A8.mul(T8.y).add(C8.mul(w8.y)),Ia=Oi.dot(Oi).max(Fi.dot(Fi)),R8=Ia.equal(0).select(0,Ia.inverseSqrt()),sp=Oi.mul(R8).toVar("tangentViewFrame"),ip=Fi.mul(R8).toVar("bitangentViewFrame"),B8=le("tangent","vec4"),Pr=B8.xyz.toVar("tangentLocal"),E8=B(e=>{let t;return e.subBuildFn==="VERTEX"||e.geometry.hasAttribute("tangent")?t=_2.mul(Y(Pr,0)).xyz.toVarying("v_tangentView").normalize():t=sp,e.isFlatShading()!==!0&&(t=Co(t)),t},"vec3").once(["NORMAL","VERTEX"])().toVar("tangentView"),np=B(([e,t],o)=>{let r=e.mul(B8.w).xyz;return o.subBuildFn==="NORMAL"&&o.isFlatShading()!==!0&&(r=r.toVarying(t)),r}).once(["NORMAL"]),ap=B(e=>{let t;return e.subBuildFn==="VERTEX"||e.geometry.hasAttribute("tangent")?t=np(y1.cross(E8),"v_bitangentView").normalize():t=ip,e.isFlatShading()!==!0&&(t=Co(t)),t},"vec3").once(["NORMAL","VERTEX"])().toVar("bitangentView"),V3=b0(E8,ap,y1).toVar("TBNViewMatrix"),lp=B(()=>{let e=r3.cross(k1);return e=e.cross(r3).normalize(),e=B1(e,y1,t2.mul(ut.oneMinus()).oneMinus().pow2().pow2()).normalize(),e}).once()(),up=e=>K(e).mul(.5).add(.5),Ga=e=>W(e,Pt(Tn(R(1).sub(S2(e,e))))),cp=class extends n0{static get type(){return"NormalMapNode"}constructor(e,t=null){super("vec3"),this.node=e,this.scaleNode=t,this.normalMapType=0,this.unpackNormalMode=""}setup(e){const{normalMapType:t,scaleNode:o,unpackNormalMode:r}=this;let s=this.node.mul(2).sub(1);if(t===0?r==="rg"?s=Ga(s.xy):r==="ga"?s=Ga(s.yw):r!==""&&I(`THREE.NodeMaterial: Unexpected unpack normal mode: ${r}`):r!==""&&I(`THREE.NodeMaterial: Normal map type '${t}' is not compatible with unpack normal mode '${r}'`),o!==null){let n=o;e.isFlatShading()===!0&&(n=Co(n)),s=W(s.xy.mul(n),s.z)}let i=null;return t===1?i=x8(s):t===0?i=V3.mul(s).normalize():(I(`NodeMaterial: Unsupported normal map type: ${t}`),i=y1),i}},za=$1(cp).setParameterLength(1,2),dp=B(({textureNode:e,bumpScale:t})=>{const o=s=>e.isolate().context({getUV:i=>s(i.uvNode||L2()),forceUVContext:!0}),r=R(o(s=>s));return n1(R(o(s=>s.add(s.dFdx()))).sub(r),R(o(s=>s.add(s.dFdy()))).sub(r)).mul(t)}),hp=B(e=>{const{surf_pos:t,surf_norm:o,dHdxy:r}=e,s=t.dFdx().normalize(),i=t.dFdy().normalize(),n=o,a=i.cross(n),l=n.cross(s),u=s.dot(a).mul(N8),c=u.sign().mul(r.x.mul(a).add(r.y.mul(l)));return u.abs().mul(o).sub(c).normalize()}),fp=class extends n0{static get type(){return"BumpMapNode"}constructor(e,t=null){super("vec3"),this.textureNode=e,this.scaleNode=t}setup(e){if(e.material.wireframe===!0)return y1;const t=this.scaleNode!==null?this.scaleNode:1,o=dp({textureNode:this.textureNode,bumpScale:t});return hp({surf_pos:r0,surf_norm:y1,dHdxy:o})}},pp=$1(fp).setParameterLength(1,2),$a=new Map,O=class j1 extends i1{static get type(){return"MaterialNode"}constructor(t){super(),this.scope=t}getCache(t,o){let r=$a.get(t);return r===void 0&&(r=At(t,o),$a.set(t,r)),r}getFloat(t){return this.getCache(t,"float")}getColor(t){return this.getCache(t,"color")}getTexture(t){return this.getCache(t==="map"?"map":t+"Map","texture")}setup(t){const o=t.context.material,r=this.scope;let s=null;if(r===j1.COLOR){const i=o.color!==void 0?this.getColor(r):W();o.map&&o.map.isTexture===!0?s=i.mul(this.getTexture("map")):s=i}else if(r===j1.OPACITY){const i=this.getFloat(r);o.alphaMap&&o.alphaMap.isTexture===!0?s=i.mul(this.getTexture("alpha")):s=i}else if(r===j1.SPECULAR_STRENGTH)o.specularMap&&o.specularMap.isTexture===!0?s=this.getTexture("specular").r:s=R(1);else if(r===j1.SPECULAR_INTENSITY){const i=this.getFloat(r);o.specularIntensityMap&&o.specularIntensityMap.isTexture===!0?s=i.mul(this.getTexture(r).a):s=i}else if(r===j1.SPECULAR_COLOR){const i=this.getColor(r);o.specularColorMap&&o.specularColorMap.isTexture===!0?s=i.mul(this.getTexture(r).rgb):s=i}else if(r===j1.ROUGHNESS){const i=this.getFloat(r);o.roughnessMap&&o.roughnessMap.isTexture===!0?s=i.mul(this.getTexture(r).g):s=i}else if(r===j1.METALNESS){const i=this.getFloat(r);o.metalnessMap&&o.metalnessMap.isTexture===!0?s=i.mul(this.getTexture(r).b):s=i}else if(r===j1.EMISSIVE){const i=this.getFloat("emissiveIntensity"),n=this.getColor(r).mul(i);o.emissiveMap&&o.emissiveMap.isTexture===!0?s=n.mul(this.getTexture(r)):s=n}else if(r===j1.NORMAL)o.normalMap?(s=za(this.getTexture("normal"),this.getCache("normalScale","vec2")),s.normalMapType=o.normalMapType,(o.normalMap.format==1030||o.normalMap.format==36285||o.normalMap.format==37490)&&(s.unpackNormalMode="rg")):o.bumpMap?s=pp(this.getTexture("bump").r,this.getFloat("bumpScale")):s=y1;else if(r===j1.CLEARCOAT){const i=this.getFloat(r);o.clearcoatMap&&o.clearcoatMap.isTexture===!0?s=i.mul(this.getTexture(r).r):s=i}else if(r===j1.CLEARCOAT_ROUGHNESS){const i=this.getFloat(r);o.clearcoatRoughnessMap&&o.clearcoatRoughnessMap.isTexture===!0?s=i.mul(this.getTexture(r).r):s=i}else if(r===j1.CLEARCOAT_NORMAL)o.clearcoatNormalMap?s=za(this.getTexture(r),this.getCache(r+"Scale","vec2")):s=y1;else if(r===j1.SHEEN){const i=this.getColor("sheenColor").mul(this.getFloat("sheen"));o.sheenColorMap&&o.sheenColorMap.isTexture===!0?s=i.mul(this.getTexture("sheenColor").rgb):s=i}else if(r===j1.SHEEN_ROUGHNESS){const i=this.getFloat(r);o.sheenRoughnessMap&&o.sheenRoughnessMap.isTexture===!0?s=i.mul(this.getTexture(r).a):s=i,s=s.clamp(1e-4,1)}else if(r===j1.ANISOTROPY)if(o.anisotropyMap&&o.anisotropyMap.isTexture===!0){const i=this.getTexture(r);s=Nn(A3.x,A3.y,A3.y.negate(),A3.x).mul(i.rg.mul(2).sub(n1(1)).normalize().mul(i.b))}else s=A3;else if(r===j1.IRIDESCENCE_THICKNESS){const i=G1("1","float",o.iridescenceThicknessRange);if(o.iridescenceThicknessMap){const n=G1("0","float",o.iridescenceThicknessRange);s=i.sub(n).mul(this.getTexture(r).g).add(n)}else s=i}else if(r===j1.TRANSMISSION){const i=this.getFloat(r);o.transmissionMap?s=i.mul(this.getTexture(r).r):s=i}else if(r===j1.THICKNESS){const i=this.getFloat(r);o.thicknessMap?s=i.mul(this.getTexture(r).g):s=i}else if(r===j1.IOR)s=this.getFloat(r);else if(r===j1.LIGHT_MAP)o.lightMap?s=this.getTexture(r).rgb.mul(this.getFloat("lightMapIntensity")):s=W(0);else if(r===j1.AO)o.aoMap?s=this.getTexture(r).r.sub(1).mul(this.getFloat("aoMapIntensity")).add(1):s=R(1);else if(r===j1.LINE_DASH_OFFSET)s=o.dashOffset?this.getFloat(r):R(0);else{const i=this.getNodeType(t);s=this.getCache(r,i)}return s}};O.ALPHA_TEST="alphaTest";O.COLOR="color";O.OPACITY="opacity";O.SHININESS="shininess";O.SPECULAR="specular";O.SPECULAR_STRENGTH="specularStrength";O.SPECULAR_INTENSITY="specularIntensity";O.SPECULAR_COLOR="specularColor";O.REFLECTIVITY="reflectivity";O.ROUGHNESS="roughness";O.METALNESS="metalness";O.NORMAL="normal";O.CLEARCOAT="clearcoat";O.CLEARCOAT_ROUGHNESS="clearcoatRoughness";O.CLEARCOAT_NORMAL="clearcoatNormal";O.EMISSIVE="emissive";O.ROTATION="rotation";O.SHEEN="sheen";O.SHEEN_ROUGHNESS="sheenRoughness";O.ANISOTROPY="anisotropy";O.IRIDESCENCE="iridescence";O.IRIDESCENCE_IOR="iridescenceIOR";O.IRIDESCENCE_THICKNESS="iridescenceThickness";O.IOR="ior";O.TRANSMISSION="transmission";O.THICKNESS="thickness";O.ATTENUATION_DISTANCE="attenuationDistance";O.ATTENUATION_COLOR="attenuationColor";O.LINE_SCALE="scale";O.LINE_DASH_SIZE="dashSize";O.LINE_GAP_SIZE="gapSize";O.LINE_WIDTH="linewidth";O.LINE_DASH_OFFSET="dashOffset";O.POINT_SIZE="size";O.DISPERSION="dispersion";O.LIGHT_MAP="light";O.AO="ao";var mp=z(O,O.ALPHA_TEST),gp=z(O,O.COLOR),vp=z(O,O.SHININESS),bp=z(O,O.EMISSIVE),W8=z(O,O.OPACITY),Np=z(O,O.SPECULAR),Va=z(O,O.SPECULAR_INTENSITY),yp=z(O,O.SPECULAR_COLOR),Sr=z(O,O.SPECULAR_STRENGTH),Cs=z(O,O.REFLECTIVITY),Mp=z(O,O.ROUGHNESS),xp=z(O,O.METALNESS),Sp=z(O,O.NORMAL),Tp=z(O,O.CLEARCOAT),wp=z(O,O.CLEARCOAT_ROUGHNESS),_p=z(O,O.CLEARCOAT_NORMAL),Ap=z(O,O.ROTATION),Cp=z(O,O.SHEEN),Rp=z(O,O.SHEEN_ROUGHNESS),Bp=z(O,O.ANISOTROPY),Ep=z(O,O.IRIDESCENCE),Wp=z(O,O.IRIDESCENCE_IOR),Lp=z(O,O.IRIDESCENCE_THICKNESS),Up=z(O,O.TRANSMISSION),Op=z(O,O.THICKNESS),Fp=z(O,O.IOR),Pp=z(O,O.ATTENUATION_DISTANCE),Dp=z(O,O.ATTENUATION_COLOR),L8=z(O,O.LINE_SCALE),U8=z(O,O.LINE_DASH_SIZE),O8=z(O,O.LINE_GAP_SIZE),Pi=z(O,O.LINE_WIDTH),F8=z(O,O.LINE_DASH_OFFSET),kp=z(O,O.POINT_SIZE),Xp=z(O,O.DISPERSION),P8=z(O,O.LIGHT_MAP),Ip=z(O,O.AO),A3=o1(new f1).onReference(function(e){return e.material}).onRenderUpdate(function({material:e}){this.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation))}),Gp=B(e=>e.context.setupModelViewProjection(),"vec4").once()().toVarying("v_modelViewProjection"),gt=class r2 extends i1{static get type(){return"EventNode"}constructor(t,o){super("void"),this.eventType=t,this.callback=o,t===r2.OBJECT?this.updateType=u1.OBJECT:t===r2.MATERIAL?this.updateType=u1.RENDER:t===r2.FRAME?this.updateType=u1.FRAME:t===r2.BEFORE_OBJECT?this.updateBeforeType=u1.OBJECT:t===r2.BEFORE_MATERIAL?this.updateBeforeType=u1.RENDER:t===r2.BEFORE_FRAME&&(this.updateBeforeType=u1.FRAME)}update(t){this.callback(t)}updateBefore(t){this.callback(t)}};gt.OBJECT="object";gt.MATERIAL="material";gt.FRAME="frame";gt.BEFORE_OBJECT="beforeObject";gt.BEFORE_MATERIAL="beforeMaterial";gt.BEFORE_FRAME="beforeFrame";var D8=(e,t)=>new gt(e,t).toStack(),Un=e=>D8(gt.OBJECT,e),zp=e=>D8(gt.FRAME,e),$p=class extends g3{static get type(){return"StorageArrayElementNode"}constructor(e,t){super(e,t),this.isStorageArrayElementNode=!0}set storageBufferNode(e){this.node=e}get storageBufferNode(){return this.node}getMemberType(e,t){const o=this.storageBufferNode.structTypeNode;return o?o.getMemberType(e,t):"void"}setup(e){return e.isAvailable("storageBuffer")===!1&&this.node.isPBO===!0&&e.setupPBO(this.node),super.setup(e)}generate(e,t){let o;const r=e.isContextAssign();if(e.isAvailable("storageBuffer")===!1?this.node.isPBO===!0&&r!==!0&&(this.node.value.isInstancedBufferAttribute||e.shaderStage!=="compute")?o=e.generatePBO(this):o=this.node.build(e):o=super.generate(e),r!==!0){const s=this.getNodeType(e);o=e.format(o,s,t)}return o}},Vp=$1($p).setParameterLength(2),Qp=class extends Bn{static get type(){return"StorageBufferNode"}constructor(e,t=null,o=0){let r,s=null;t&&t.isStructTypeNode?(r="struct",s=t,(e.isStorageBufferAttribute||e.isStorageInstancedBufferAttribute)&&(o=e.count)):t===null&&(e.isStorageBufferAttribute||e.isStorageInstancedBufferAttribute)?(r=_6(e.itemSize),o=e.count):r=t,super(e,r,o),this.isStorageBufferNode=!0,this.structTypeNode=s,this.access=ae.READ_WRITE,this.isAtomic=!1,this.isPBO=!1,this._attribute=null,this._varying=null,this.global=!0,e.isStorageBufferAttribute!==!0&&e.isStorageInstancedBufferAttribute!==!0&&(e.isInstancedBufferAttribute?e.isStorageInstancedBufferAttribute=!0:e.isStorageBufferAttribute=!0)}getHash(e){let t;if(this.bufferCount===0){let o=e.globalCache.getData(this.value);o===void 0&&(o={node:this},e.globalCache.setData(this.value,o)),t=o.node.id}else t=this.id;return String(t)}getInputType(){return this.value.isIndirectStorageBufferAttribute?"indirectStorageBuffer":"storageBuffer"}element(e){return Vp(this,e)}setPBO(e){return this.isPBO=e,this}getPBO(){return this.isPBO}setAccess(e){return this.access=e,this}toReadOnly(){return this.setAccess(ae.READ_ONLY)}setAtomic(e){return this.isAtomic=e,this}toAtomic(){return this.setAtomic(!0)}getAttributeData(){return this._attribute===null&&(this._attribute=a8(this.value),this._varying=W2(this._attribute)),{attribute:this._attribute,varying:this._varying}}generateNodeType(e){if(this.structTypeNode!==null)return this.structTypeNode.getNodeType(e);if(e.isAvailable("storageBuffer")||e.isAvailable("indirectStorageBuffer"))return super.generateNodeType(e);const{attribute:t}=this.getAttributeData();return t.getNodeType(e)}getMemberType(e,t){return this.structTypeNode!==null?this.structTypeNode.getMemberType(e,t):"void"}generate(e){if(this.structTypeNode!==null&&this.structTypeNode.build(e),e.isAvailable("storageBuffer")||e.isAvailable("indirectStorageBuffer"))return super.generate(e);const{attribute:t,varying:o}=this.getAttributeData(),r=o.build(e);return e.registerTransform(r,t),r}},k8=(e,t=null,o=0)=>new Qp(e,t,o),Di=new WeakMap,Qa=new WeakMap,ki=new WeakMap;function X8(e,t){let o;const r=Math.max(t.count,1);if(t.isStorageInstancedBufferAttribute===!0)o=k8(t,"mat4",r).element(c3);else if(r*16*4<=e.getUniformBufferLimit())o=En(t.array,"mat4",r).element(c3);else{let s=Di.get(t);s||(s=new Cr(t.array,16,1),Di.set(t,s));const i=t.usage===35048?u8:l8,n=[i(s,"vec4",16,0),i(s,"vec4",16,4),i(s,"vec4",16,8),i(s,"vec4",16,12)];o=b2(...n)}return o}function Zp(e,t,o){let r=ki.get(e);if(r===void 0){const s=t.clone();r={previousInstanceMatrix:s,node:X8(o,s)},ki.set(e,r)}return r.node}var I8=v3("vec3","vInstanceColor"),qp=B(([e,t=null],o)=>{const r=e.isStorageInstancedBufferAttribute===!0,s=t&&t.isStorageInstancedBufferAttribute===!0,i=X8(o,e);let n=null;r||Math.max(e.count,1)*16*4>o.getUniformBufferLimit()&&(n=Di.get(e));let a=null,l=null;if(t)if(s)a=k8(t,"vec3",Math.max(t.count,1)).element(c3);else{let c=Qa.get(t);c||(c=new H9(t.array,3),Qa.set(t,c)),l=c;const d=t.usage===35048?u8:l8;a=W(d(c,"vec3",3,0))}(n!==null||l!==null)&&zp(()=>{n!==null&&(n.clearUpdateRanges(),n.updateRanges.push(...e.updateRanges),e.version!==n.version&&(n.version=e.version)),t&&l!==null&&(l.clearUpdateRanges(),l.updateRanges.push(...t.updateRanges),t.version!==l.version&&(l.version=t.version))});const u=i.mul(u0).xyz;if(u0.assign(u),o.needsPreviousData()){const c=o.object;Un(({object:h})=>{ki.get(h).previousInstanceMatrix.array.set(e.array)});const d=Zp(c,e,o);Fr.assign(d.mul(Fr).xyz)}if(o.hasGeometryAttribute("normal")){const c=M8(Ke,i);Ke.assign(c)}a!==null&&I8.assign(a)},"void"),Hp=B(([e])=>{const{instanceMatrix:t,instanceColor:o}=e;qp(t,o)},"void"),Jp=B(([e,t])=>{const o=Z1(co(be(e),0).x).toConst(),r=Z1(t),s=r.mod(o).toConst(),i=r.div(o).toConst();return be(e,k0(s,i))}),jp=B(([e,t])=>{const o=Z1(co(be(e),0).x).toConst(),r=Z1(t).mod(o).toConst(),s=Z1(t).div(o).toConst();return be(e,k0(r,s)).x}),G8=v3("vec4","vBatchColor"),Kp=B(([e],t)=>{const o=t.getDrawIndex()===null?c3:hf,r=jp(e._indirectTexture,Z1(o)),s=e._matricesTexture,i=Z1(co(be(s),0).x).toConst(),n=R(r).mul(4).toInt().toConst(),a=n.mod(i).toConst(),l=n.div(i).toConst(),u=b2(be(s,k0(a,l)),be(s,k0(a.add(1),l)),be(s,k0(a.add(2),l)),be(s,k0(a.add(3),l))),c=e._colorsTexture;if(c!==null){const p=Jp(c,r);G8.assign(p)}const d=b0(u);u0.assign(u.mul(u0));const h=Ke.div(W(d[0].dot(d[0]),d[1].dot(d[1]),d[2].dot(d[2]))),f=d.mul(h).xyz;Ke.assign(f),t.hasGeometryAttribute("tangent")&&Pr.mulAssign(d)},"void"),Za=new WeakMap,Xi=new WeakMap;function z8(e,t,o,r,s,i){const n=e.element(s.x),a=e.element(s.y),l=e.element(s.z),u=e.element(s.w),c=o.mul(t),d=I0(n.mul(i.x).mul(c),a.mul(i.y).mul(c),l.mul(i.z).mul(c),u.mul(i.w).mul(c));return r.mul(d).xyz}function Yp(e,t,o,r,s,i,n){const a=e.element(i.x),l=e.element(i.y),u=e.element(i.z),c=e.element(i.w);let d=I0(n.x.mul(a),n.y.mul(l),n.z.mul(u),n.w.mul(c));return d=s.mul(d).mul(r),{skinNormal:d.transformDirection(t).xyz,skinTangent:d.transformDirection(o).xyz}}function em(e,t,o,r,s){const i=e.skeleton;let n=Xi.get(i);if(n===void 0){i.update();const a=new Float32Array(i.boneMatrices);n={previousBoneMatrices:a,node:En(a,"mat4",i.bones.length)},Xi.set(i,n)}return z8(n.node,Fr,t,o,r,s)}var tm=B(([e],t)=>{const o=le("skinIndex","uvec4"),r=le("skinWeight","vec4"),s=G1("bindMatrix","mat4"),i=G1("bindMatrixInverse","mat4"),n=ep("skeleton.boneMatrices","mat4",e.skeleton.bones.length);if(Un(({object:l,frameId:u})=>{const c=l.skeleton;if(Za.get(c)!==u){Za.set(c,u);const d=Xi.get(c);d!==void 0&&d.previousBoneMatrices.set(c.boneMatrices),c.update()}}),t.needsPreviousData()){const l=em(e,s,i,o,r);Fr.assign(l)}const a=z8(n,u0,s,i,o,r);if(u0.assign(a),t.hasGeometryAttribute("normal")){const{skinNormal:l,skinTangent:u}=Yp(n,Ke,Pr,s,i,o,r);Ke.assign(l),t.hasGeometryAttribute("tangent")&&Pr.assign(u)}},"void"),om=class extends i1{static get type(){return"LoopNode"}constructor(e=[]){super("void"),this.params=e}getVarName(e){return String.fromCharCode(105+e)}getProperties(e){const t=e.getNodeProperties(this);if(t.stackNode!==void 0)return t;const o={};for(let n=0,a=this.params.length-1;nNumber(c)?f=">=":f="<"));let m;if(l)m=`while ( ${c} )`;else{const b={start:u,end:c},N=b.start,v=b.end;let y;const T=()=>f.includes("<")?"+=":"-=";if(p!=null)switch(typeof p){case"function":y=e.flowStagesNode(t.updateNode,"void").code.replace(/\t|;/g,"");break;case"number":y=d+" "+T()+" "+e.generateConst(h,p);break;case"string":y=d+" "+p;break;default:p.isNode?y=d+" "+T()+" "+p.build(e):(I("TSL: 'Loop( { update: ... } )' is not a function, string or number.",this.stackTrace),y="break /* invalid update */")}else h==="int"||h==="uint"?p=f.includes("<")?"++":"--":p=T()+" 1.",y=d+" "+p;m=`for ( ${e.getVar(h,d)+" = "+N}; ${d+" "+f+" "+v}; ${y} )`}e.addFlowCode((i===0?` +`:"")+e.tab+m+` { + +`).addFlowTab()}const s=r.build(e,"void");t.returnsNode.build(e,"void"),e.removeFlowTab().addFlowCode(` +`+e.tab+s);for(let i=0,n=this.params.length-1;inew om(o3(e,"int")).toStack(),rm=()=>Ge("break").toStack(),Rs=new WeakMap,z0=new S1,qa=new WeakMap,Ha=B(({bufferMap:e,influence:t,stride:o,width:r,depth:s,offset:i})=>{const n=Z1(df).mul(o).add(i),a=n.div(r),l=n.sub(a.mul(r));return be(e,k0(l,a)).depth(s).xyz.mul(t)});function sm(e){const t=e.morphAttributes.position!==void 0,o=e.morphAttributes.normal!==void 0,r=e.morphAttributes.color!==void 0,s=e.morphAttributes.position||e.morphAttributes.normal||e.morphAttributes.color,i=s!==void 0?s.length:0;let n=Rs.get(e);if(n===void 0||n.count!==i){let N=function(){m.dispose(),Rs.delete(e),e.removeEventListener("dispose",N)};n!==void 0&&n.texture.dispose();const a=e.morphAttributes.position||[],l=e.morphAttributes.normal||[],u=e.morphAttributes.color||[];let c=0;t===!0&&(c=1),o===!0&&(c=2),r===!0&&(c=3);let d=e.attributes.position.count*c,h=1;const f=4096;d>f&&(h=Math.ceil(d/f),d=f);const p=new Float32Array(d*h*4*i),m=new sl(p,d,h,i);m.type=se,m.needsUpdate=!0;const b=c*4;for(let v=0;v{const{geometry:t}=e,o=t.morphAttributes.position!==void 0,r=t.hasAttribute("normal")&&t.morphAttributes.normal!==void 0,s=t.morphAttributes.position||t.morphAttributes.normal||t.morphAttributes.color,i=s!==void 0?s.length:0;if(i===0)return;let n=qa.get(e);(n===void 0||n.count!==i)&&(n={base:o1(1),influences:e.morphTargetInfluences?P0(e.morphTargetInfluences,"float"):null,count:i},qa.set(e,n));const{base:a,influences:l}=n,{texture:u,stride:c,size:d}=sm(t);o===!0&&u0.mulAssign(a),r===!0&&Ke.mulAssign(a);const h=Z1(d.width);ie(i,({i:f})=>{const p=R(0).toVar();e.count>1&&e.morphTexture!==null&&e.morphTexture!==void 0?p.assign(be(e.morphTexture,k0(Z1(f).add(1),Z1(c3))).r):p.assign(l.element(f).toVar()),x1(p.notEqual(0),()=>{o===!0&&u0.addAssign(Ha({bufferMap:u,influence:p,stride:c,width:h,depth:f,offset:Z1(0)})),r===!0&&Ke.addAssign(Ha({bufferMap:u,influence:p,stride:c,width:h,depth:f,offset:Z1(1)}))})}),Un(({object:f})=>{const{base:p,influences:m}=n;f.geometry.morphTargetsRelative?p.value=1:p.value=1-f.morphTargetInfluences.reduce((b,N)=>b+N,0),m&&(m.array=f.morphTargetInfluences,m.update())})},"void"),M3=class extends i1{static get type(){return"LightingNode"}constructor(){super("vec3"),this.isLightingNode=!0}},nm=class extends M3{static get type(){return"AONode"}constructor(e=null){super(),this.aoNode=e}setup(e){e.context.ambientOcclusion.mulAssign(this.aoNode)}},am=class extends wn{static get type(){return"LightingContextNode"}constructor(e,t=null,o=[],r=null,s=null){super(e),this.lightingModel=t,this.materialLightings=o,this.backdropNode=r,this.backdropAlphaNode=s,this._value=null}getContext(){const{materialLightings:e,backdropNode:t,backdropAlphaNode:o}=this,r={directDiffuse:W().toVar("directDiffuse"),directSpecular:W().toVar("directSpecular"),indirectDiffuse:W().toVar("indirectDiffuse"),indirectSpecular:W().toVar("indirectSpecular")};return{radiance:W().toVar("radiance"),irradiance:W().toVar("irradiance"),iblIrradiance:W().toVar("iblIrradiance"),ambientOcclusion:R(1).toVar("ambientOcclusion"),reflectedLight:r,materialLightings:e,backdrop:t,backdropAlpha:o}}setup(e){return this.value=this._value||(this._value=this.getContext()),this.value.lightingModel=this.lightingModel||e.context.lightingModel,super.setup(e)}},lm=$1(am),um=class extends M3{static get type(){return"IrradianceNode"}constructor(e){super(),this.node=e}setup(e){e.context.irradiance.addAssign(this.node)}},Jt=new f1,$8=class extends _o{static get type(){return"ViewportTextureNode"}constructor(e=Bt,t=null,o=null){let r=null;o===null?(r=new H4,r.minFilter=bi,o=r):r=o,super(o,e,t),this.generateMipmaps=!1,this.defaultFramebuffer=r,this.isOutputTextureNode=!0,this.updateBeforeType=u1.RENDER,this._cacheTextures=new WeakMap}getTextureForReference(e=null){let t,o;if(this.referenceNode?(t=this.referenceNode.defaultFramebuffer,o=this.referenceNode._cacheTextures):(t=this.defaultFramebuffer,o=this._cacheTextures),e===null)return t;if(o.has(e)===!1){const r=t.clone();o.set(e,r)}return o.get(e)}updateReference(e){const t=e.renderer,o=t.getRenderTarget(),r=t.getCanvasTarget(),s=o||r;return this.value=this.getTextureForReference(s),this.value}updateBefore(e){const t=e.renderer,o=t.getRenderTarget(),r=t.getCanvasTarget(),s=o||r;s===null?t.getDrawingBufferSize(Jt):s.getDrawingBufferSize?s.getDrawingBufferSize(Jt):Jt.set(s.width,s.height);const i=this.getTextureForReference(s);(i.image.width!==Jt.width||i.image.height!==Jt.height)&&(i.image.width=Jt.width,i.image.height=Jt.height,i.needsUpdate=!0);const n=i.generateMipmaps;i.generateMipmaps=this.generateMipmaps,t.copyFramebufferToTexture(i),i.generateMipmaps=n}clone(){const e=new this.constructor(this.uvNode,this.levelNode,this.value);return e.generateMipmaps=this.generateMipmaps,e}},V8=$1($8,null,null,{generateMipmaps:!0}).setParameterLength(0,3),cm=V8(),dm=(e=Bt,t=null)=>cm.sample(e,t),Bs=null,hm=class extends $8{static get type(){return"ViewportDepthTextureNode"}constructor(e=Bt,t=null,o=null){o===null&&(Bs===null&&(Bs=new Te),o=Bs),super(e,t,o)}},fm=$1(hm).setParameterLength(0,3),pt=class Q3 extends i1{static get type(){return"ViewportDepthNode"}constructor(t,o=null){super("float"),this.scope=t,this.valueNode=o,this.isViewportDepthNode=!0}generate(t){const{scope:o}=this;return o===Q3.DEPTH_BASE?t.getFragDepth():super.generate(t)}setup({camera:t}){const{scope:o}=this,r=this.valueNode;let s=null;if(o===Q3.DEPTH_BASE)r!==null&&(s=Z8().assign(r));else if(o===Q3.DEPTH)t.isPerspectiveCamera?s=Q8(r0.z,a2,l2):s=n3(r0.z,a2,l2);else if(o===Q3.LINEAR_DEPTH)if(r!==null)if(t.isPerspectiveCamera){const i=On(r,a2,l2);s=n3(i,a2,l2)}else s=r;else s=n3(r0.z,a2,l2);return s}};pt.DEPTH_BASE="depthBase";pt.DEPTH="depth";pt.LINEAR_DEPTH="linearDepth";var n3=(e,t,o)=>e.add(t).div(t.sub(o)),pm=B(([e,t,o],r)=>r.renderer.reversedDepthBuffer===!0?o.sub(t).mul(e).sub(o):t.sub(o).mul(e).sub(t)),Q8=(e,t,o)=>t.add(e).mul(o).div(o.sub(t).mul(e)),mm=(e,t,o)=>t.mul(e.add(o)).div(e.mul(t.sub(o))),On=B(([e,t,o],r)=>r.renderer.reversedDepthBuffer===!0?t.mul(o).div(t.sub(o).mul(e).sub(t)):t.mul(o).div(o.sub(t).mul(e).sub(o))),Fn=(e,t,o)=>{t=t.max(1e-6).toVar();const r=ht(e.negate().div(t)),s=ht(o.div(t));return r.div(s)},Z8=$1(pt,pt.DEPTH_BASE),q8=z(pt,pt.DEPTH),gm=$1(pt,pt.LINEAR_DEPTH).setParameterLength(0,1),Ww=gm(fm());q8.assign=e=>Z8(e);var It=class Tr extends i1{static get type(){return"ClippingNode"}constructor(t=Tr.DEFAULT){super(),this.scope=t}setup(t){super.setup(t);const{intersectionPlanes:o,unionPlanes:r}=t.clippingContext;return this.hardwareClipping=t.hardwareClipping,this.scope===Tr.ALPHA_TO_COVERAGE?this.setupAlphaToCoverage(o,r):this.scope===Tr.HARDWARE?this.setupHardwareClipping(r,t):this.setupDefault(o,r)}setupAlphaToCoverage(t,o){return B(()=>{const r=R().toVar("distanceToPlane"),s=R().toVar("distanceToGradient"),i=R(1).toVar("clipOpacity"),n=o.length;if(this.hardwareClipping===!1&&n>0){const l=P0(o).setGroup(s1);ie(n,({i:u})=>{const c=l.element(u);r.assign(r0.dot(c.xyz).negate().add(c.w)),s.assign(r.fwidth().div(2)),i.mulAssign(Ce(s.negate(),s,r))})}const a=t.length;if(a>0){const l=P0(t).setGroup(s1),u=R(1).toVar("intersectionClipOpacity");ie(a,({i:c})=>{const d=l.element(c);r.assign(r0.dot(d.xyz).negate().add(d.w)),s.assign(r.fwidth().div(2)),u.mulAssign(Ce(s.negate(),s,r).oneMinus())}),i.mulAssign(u.oneMinus())}U1.a.mulAssign(i),U1.a.equal(0).discard()})()}setupDefault(t,o){return B(()=>{const r=o.length;if(this.hardwareClipping===!1&&r>0){const i=P0(o).setGroup(s1);ie(r,({i:n})=>{const a=i.element(n);r0.dot(a.xyz).greaterThan(a.w).discard()})}const s=t.length;if(s>0){const i=P0(t).setGroup(s1),n=jr(!0).toVar("clipped");ie(s,({i:a})=>{const l=i.element(a);n.assign(r0.dot(l.xyz).greaterThan(l.w).and(n))}),n.discard()}})()}setupHardwareClipping(t,o){const r=t.length;return o.enableHardwareClipping(r),B(()=>{const s=P0(t).setGroup(s1),i=U2(o.getClipDistance());ie(r,({i:n})=>{const a=s.element(n),l=r0.dot(a.xyz).sub(a.w).negate();i.element(n).assign(l)})})()}};It.ALPHA_TO_COVERAGE="alphaToCoverage";It.DEFAULT="default";It.HARDWARE="hardware";var vm=()=>new It,bm=()=>new It(It.ALPHA_TO_COVERAGE),Nm=()=>new It(It.HARDWARE),ym=.05,Ja=B(([e])=>je(d1(1e4,Z0(d1(17,e.x).add(d1(.1,e.y)))).mul(I0(.1,q0(Z0(d1(13,e.y).add(e.x))))))),ja=B(([e])=>Ja(n1(Ja(e.xy),e.z))),Mm=B(([e])=>{const t=N0(ft(j6(e.xyz)),ft(K6(e.xyz))),o=R(1).div(R(ym).mul(t)).toVar("pixScale"),r=n1(lo(N2(ht(o))),lo(Sn(ht(o)))),s=n1(ja(N2(r.x.mul(e.xyz))),ja(N2(r.y.mul(e.xyz)))),i=je(ht(o)),n=I0(d1(i.oneMinus(),s.x),d1(i,s.y)),a=u3(i,i.oneMinus()),l=W(n.mul(n).div(d1(2,a).mul(F0(1,a))),n.sub(d1(.5,a)).div(F0(1,a)),F0(1,F0(1,n).mul(F0(1,n)).div(d1(2,a).mul(F0(1,a))))),u=n.lessThan(a.oneMinus()).select(n.lessThan(a).select(l.x,l.y),l.z);return Xt(u,1e-6,1)}).setLayout({name:"getAlphaHashThreshold",type:"float",inputs:[{name:"position",type:"vec3"}]}),xm=class extends m8{static get type(){return"VertexColorNode"}constructor(e){super(null,"vec4"),this.isVertexColorNode=!0,this.index=e}getAttributeName(){const e=this.index;return"color"+(e>0?e:"")}generate(e){const t=this.getAttributeName(e),o=e.hasGeometryAttribute(t);let r;return o===!0?r=super.generate(e):r=e.generateConst(this.nodeType,new S1(1,1,1,1)),r}serialize(e){super.serialize(e),e.index=this.index}deserialize(e){super.deserialize(e),this.index=e.index}},Sm=(e=0)=>new xm(e),s0=class extends Br{static get type(){return"NodeMaterial"}get type(){return this.constructor.type}set type(e){}constructor(){super(),this.isNodeMaterial=!0,this.fog=!0,this.lights=!1,this.lightsNode=null,this.envNode=null,this.aoNode=null,this.colorNode=null,this.normalNode=null,this.opacityNode=null,this.backdropNode=null,this.backdropAlphaNode=null,this.alphaTestNode=null,this.maskNode=null,this.maskShadowNode=null,this.positionNode=null,this.geometryNode=null,this.depthNode=null,this.receivedShadowPositionNode=null,this.castShadowPositionNode=null,this.receivedShadowNode=null,this.castShadowNode=null,this.outputNode=null,this.mrtNode=null,this.fragmentNode=null,this.vertexNode=null,this.contextNode=null}_getNodeChildren(){const e=[];for(const t of Object.getOwnPropertyNames(this)){if(t.startsWith("_")===!0)continue;const o=this[t];o&&o.isNode===!0&&e.push({property:t,childNode:o})}return e}customProgramCacheKey(){const e=[];for(const{property:t,childNode:o}of this._getNodeChildren())e.push(p3(t.slice(0,-4)),o.getCacheKey());return this.type+To(e)}build(e){this.setup(e)}setupObserver(e){return new jc(e)}setup(e){e.context.setupNormal=()=>i3(this.setupNormal(e),"NORMAL","vec3"),e.context.setupPositionView=()=>this.setupPositionView(e),e.context.setupModelViewProjection=()=>this.setupModelViewProjection(e);const t=e.renderer,o=t.getRenderTarget();e.addStack();const r=this.setupVertex(e),s=i3(this.vertexNode||r,"VERTEX");e.context.clipSpace=s,e.stack.outputNode=s,this.setupHardwareClipping(e),this.geometryNode!==null&&(e.stack.outputNode=e.stack.outputNode.bypass(this.geometryNode)),e.addFlow("vertex",e.removeStack()),e.addStack();let i;const n=this.setupClipping(e);if((this.depthWrite===!0||this.depthTest===!0)&&(o!==null?o.depthBuffer===!0&&this.setupDepth(e):t.depth===!0&&this.setupDepth(e)),this.fragmentNode===null){this.setupDiffuseColor(e),this.setupAmbientOcclusion(e),this.setupVariants(e);const a=this.setupLighting(e);n!==null&&e.stack.addToStack(n);const l=Y(a,U1.a).max(0);i=this.setupOutput(e,l),Y3.assign(i);const u=this.outputNode!==null;if(u&&(i=this.outputNode),e.context.getOutput&&(i=e.context.getOutput(i,e)),o!==null){const c=t.getMRT(),d=this.mrtNode;c!==null?(u&&Y3.assign(i),i=c,d!==null&&(i=c.merge(d))):d!==null&&(i=d)}}else{let a=this.fragmentNode;a.isOutputStructNode!==!0&&(a=a.convert(e.getOutputType())),i=this.setupOutput(e,a)}e.stack.outputNode=i,e.addFlow("fragment",e.removeStack()),e.observer=this.setupObserver(e)}setupClipping(e){if(e.clippingContext===null)return null;const{unionPlanes:t,intersectionPlanes:o}=e.clippingContext;let r=null;if(t.length>0||o.length>0){const s=e.renderer.currentSamples;this.alphaToCoverage&&s>1?r=bm():e.stack.addToStack(vm())}return r}setupHardwareClipping(e){if(e.hardwareClipping=!1,e.clippingContext===null)return;const t=e.clippingContext.unionPlanes.length;t>0&&t<=8&&e.isAvailable("clipDistance")&&(e.stack.addToStack(Nm()),e.hardwareClipping=!0)}setupDepth(e){const{renderer:t,camera:o}=e;let r=this.depthNode;if(r===null){const s=t.getMRT();s&&s.has("depth")?r=s.get("depth"):t.logarithmicDepthBuffer===!0&&(o.isPerspectiveCamera?r=Fn(r0.z,a2,l2):r=n3(r0.z,a2,l2))}r!==null&&q8.assign(r).toStack()}setupPositionView(){return _2.mul(u0).xyz}setupModelViewProjection(){return xe.mul(r0)}setupVertex(e){return e.addStack(),this.setupPosition(e),e.context.position=e.removeStack(),Gp}setupPosition(e){const{object:t,geometry:o}=e;if((o.morphAttributes.position||o.morphAttributes.normal||o.morphAttributes.color)&&im(t),t.isSkinnedMesh===!0&&tm(t),this.displacementMap){const r=At("displacementMap","texture"),s=At("displacementScale","float"),i=At("displacementBias","float");u0.addAssign(Ke.normalize().mul(r.x.mul(s).add(i)))}return t.isBatchedMesh&&Kp(t),t.isInstancedMesh&&t.instanceMatrix&&t.instanceMatrix.isInstancedBufferAttribute===!0&&Hp(t),this.positionNode!==null&&u0.assign(i3(this.positionNode,"POSITION","vec3")),u0}setupDiffuseColor(e){const{object:t,geometry:o}=e;this.maskNode!==null&&jr(this.maskNode).not().discard();let r=this.colorNode?Y(this.colorNode):gp;this.vertexColors===!0&&o.hasAttribute("color")&&(r=r.mul(Sm())),t.instanceColor&&(r=I8.mul(r)),t.isBatchedMesh&&t._colorsTexture&&(r=G8.mul(r)),U1.assign(r);const s=this.opacityNode?R(this.opacityNode):W8;U1.a.assign(U1.a.mul(s));let i=null;(this.alphaTestNode!==null||this.alphaTest>0)&&(i=this.alphaTestNode!==null?R(this.alphaTestNode):mp,this.alphaToCoverage===!0?(U1.a=Ce(i,i.add(Y6(U1.a)),U1.a),U1.a.lessThanEqual(0).discard()):U1.a.lessThanEqual(i).discard()),this.alphaHash===!0&&U1.a.lessThan(Mm(u0)).discard(),e.isOpaque()&&U1.a.assign(1)}setupVariants(){}setupOutgoingLight(){return this.lights===!0?W(0):U1.rgb}setupNormal(){return this.normalNode?W(this.normalNode):Sp}setupEnvironment(){let e=null;return this.envNode?e=this.envNode:this.envMap&&(e=this.envMap.isCubeTexture?At("envMap","cubeTexture"):At("envMap","texture")),e}setupLightMap(e){let t=null;return e.material.lightMap&&(t=new um(P8)),t}setupMaterialLightings(e){const t=[];if(e.renderer.lighting.enabled===!1)return t;const o=this.setupEnvironment(e);o&&o.isLightingNode&&t.push(o);const r=this.setupLightMap(e);return r&&r.isLightingNode&&t.push(r),e.context.ambientOcclusion&&t.push(new nm(e.context.ambientOcclusion)),t}setupAmbientOcclusion(e){let t=this.aoNode;t===null&&e.material.aoMap&&(t=Ip),e.context.getAO&&(t=e.context.getAO(t,e)),t!==null&&(Ua.assign(t),e.context.ambientOcclusion=Ua)}setupLightingModel(){}setupLighting(e){const{material:t}=e,{backdropNode:o,backdropAlphaNode:r,emissiveNode:s}=this,i=this.lights===!0||this.lightsNode!==null,n=this.lights===!0?this.setupMaterialLightings(e):[],a=i?this.lightsNode||e.lightsNode:null;let l=this.setupOutgoingLight(e);if(a&&(n.length>0||a.getScope().hasLights)){const u=this.setupLightingModel(e)||null;l=lm(a,u,n,o,r)}else o!==null&&(l=W(r!==null?B1(l,o,r):o));return(s&&s.isNode===!0||t.emissive&&t.emissive.isColor===!0)&&(La.assign(W(s||bp)),l=l.add(La)),l}setupFog(e,t){const o=e.fogNode;return o&&(Y3.assign(t),t=Y(o.toVar())),t}setupPremultipliedAlpha(e,t){return h8(t)}setupOutput(e,t){return this.fog===!0&&(t=this.setupFog(e,t)),this.premultipliedAlpha===!0&&(t=this.setupPremultipliedAlpha(e,t)),t}setDefaultValues(e){for(const o in e){const r=e[o];this[o]===void 0&&(this[o]=r,r&&r.clone&&(this[o]=r.clone()))}const t=Object.getOwnPropertyDescriptors(e.constructor.prototype);for(const o in t)Object.getOwnPropertyDescriptor(this.constructor.prototype,o)===void 0&&t[o].get!==void 0&&Object.defineProperty(this.constructor.prototype,o,t[o])}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{},nodes:{}});const o=Br.prototype.toJSON.call(this,e);o.inputNodes={};for(const{property:s,childNode:i}of this._getNodeChildren())o.inputNodes[s]=i.toJSON(e).uuid;function r(s){const i=[];for(const n in s){const a=s[n];delete a.metadata,i.push(a)}return i}if(t){const s=r(e.textures),i=r(e.images),n=r(e.nodes);s.length>0&&(o.textures=s),i.length>0&&(o.images=i),n.length>0&&(o.nodes=n)}return o}copy(e){const t=Object.getOwnPropertyDescriptors(this.constructor.prototype);for(const o in t)if(t[o].set!==void 0&&e[o]!==void 0){const r=e[o];this[o]&&this[o].copy!==void 0?this[o].copy(r):this[o]=r}for(const o in this)if(!/^(?:is[A-Z]|_)|^(?:id|uuid|version|type|userData|clippingPlanes)$/.test(o)&&this[o]!==void 0&&e[o]!==void 0){const r=e[o];this[o]&&this[o].copy!==void 0?this[o].copy(r):this[o]=r}return this.clippingPlanes=e.clippingPlanes?e.clippingPlanes.map(o=>o.clone()):null,this.userData=JSON.parse(JSON.stringify(e.userData)),this}},Tm=new Ol,wm=class extends s0{static get type(){return"LineBasicNodeMaterial"}constructor(e){super(),this.isLineBasicNodeMaterial=!0,this.setDefaultValues(Tm),this.setValues(e)}},_m=new xl,Am=class extends s0{static get type(){return"LineDashedNodeMaterial"}constructor(e){super(),this.isLineDashedNodeMaterial=!0,this.setDefaultValues(_m),this.dashOffset=0,this.offsetNode=null,this.dashScaleNode=null,this.dashSizeNode=null,this.gapSizeNode=null,this.setValues(e)}setupVariants(){const e=this.offsetNode?R(this.offsetNode):F8,t=this.dashScaleNode?R(this.dashScaleNode):L8,o=this.dashSizeNode?R(this.dashSizeNode):U8,r=this.gapSizeNode?R(this.gapSizeNode):O8;s3.assign(o),Or.assign(r);const s=W2(le("lineDistance").mul(t));(e?s.add(e):s).mod(s3.add(Or)).greaterThan(s3).discard()}},wr=v3("vec3","worldStart"),Ii=v3("vec3","worldEnd"),H8=v3("float","lineDistance"),s2=v3("vec4","worldPos"),Ka=B(({start:e,end:t})=>{const o=xe.element(2).element(2),r=xe.element(3).element(2);return o.greaterThan(0).select(r.negate().div(o.add(1)),r.mul(-.5).div(o)).sub(e.z).div(t.z.sub(e.z))},{start:"vec4",end:"vec4",return:"float"}),Cm=B(({p1:e,p2:t,p3:o,p4:r})=>{const s=e.sub(o),i=r.sub(o),n=t.sub(e),a=s.dot(i),l=i.dot(n),u=s.dot(n),c=i.dot(i),d=n.dot(n).mul(c).sub(l.mul(l)),h=a.mul(l).sub(u.mul(c)).div(d).clamp(),f=a.add(l.mul(h)).div(c).clamp();return n1(h,f)},{p1:"vec3",p2:"vec3",p3:"vec3",p4:"vec3",return:"vec2"}),Lw=B(({material:e})=>{const t=e._useDash,o=e._useWorldUnits,r=le("instanceStart"),s=le("instanceEnd"),i=Y(_2.mul(Y(r,1))).toVar("start"),n=Y(_2.mul(Y(s,1))).toVar("end");let a,l;t&&(a=R(le("instanceDistanceStart")).toVar("distanceStart"),l=R(le("instanceDistanceEnd")).toVar("distanceEnd")),o&&(wr.assign(i.xyz),Ii.assign(n.xyz));const u=to.z.div(to.w),c=xe.element(2).element(3).equal(-1);if(x1(c,()=>{x1(i.z.lessThan(0).and(n.z.greaterThan(0)),()=>{const N=Ka({start:i,end:n});n.assign(Y(B1(i.xyz,n.xyz,N),n.w)),t&&l.assign(B1(a,l,N))}).ElseIf(n.z.lessThan(0).and(i.z.greaterThanEqual(0)),()=>{const N=Ka({start:n,end:i});i.assign(Y(B1(n.xyz,i.xyz,N),i.w)),t&&a.assign(B1(l,a,N))})}),t){const N=e.dashScaleNode?R(e.dashScaleNode):L8,v=e.offsetNode?R(e.offsetNode):F8;let y=R0.y.lessThan(.5).select(N.mul(a),N.mul(l));y=y.add(v),H8.assign(y)}const d=xe.mul(i),h=xe.mul(n),f=d.xyz.div(d.w),p=h.xyz.div(h.w),m=p.xy.sub(f.xy).toVar();m.x.assign(m.x.mul(u)),m.assign(m.normalize());const b=Y().toVar();if(o){const N=n.xyz.sub(i.xyz).normalize(),v=B1(i.xyz,n.xyz,.5).normalize(),y=N.cross(v).normalize(),T=N.cross(y);s2.assign(R0.y.lessThan(.5).select(i,n));const x=Pi.mul(.5);s2.addAssign(Y(R0.x.lessThan(0).select(y.mul(x),y.mul(x).negate()),0)),t||(s2.addAssign(Y(R0.y.lessThan(.5).select(N.mul(x).negate(),N.mul(x)),0)),s2.addAssign(Y(T.mul(x),0)),x1(R0.y.greaterThan(1).or(R0.y.lessThan(0)),()=>{s2.subAssign(Y(T.mul(2).mul(x),0))})),b.assign(xe.mul(s2));const S=W().toVar();S.assign(R0.y.lessThan(.5).select(f,p)),b.z.assign(S.z.mul(b.w))}else{const N=n1(m.y,m.x.negate()).toVar("offset");m.x.assign(m.x.div(u)),N.x.assign(N.x.div(u)),N.assign(R0.x.lessThan(0).select(N.negate(),N)),x1(R0.y.lessThan(0),()=>{N.assign(N.sub(m))}).ElseIf(R0.y.greaterThan(1),()=>{N.assign(N.add(m))}),N.assign(N.mul(Pi)),N.assign(N.div(to.w.div(v8))),b.assign(R0.y.lessThan(.5).select(d,h)),N.assign(N.mul(b.w)),b.assign(b.add(Y(N,0,0)))}return b})(),Uw=B(({material:e,renderer:t})=>{const o=e._useAlphaToCoverage,r=e._useDash,s=e._useWorldUnits,i=L2();if(r){const a=e.dashSizeNode?R(e.dashSizeNode):U8,l=e.gapSizeNode?R(e.gapSizeNode):O8;s3.assign(a),Or.assign(l),i.y.lessThan(-1).or(i.y.greaterThan(1)).discard(),H8.mod(s3.add(Or)).greaterThan(s3).discard()}const n=R(1).toVar("alpha");if(s){const a=s2.xyz.normalize().mul(1e5),l=Ii.sub(wr),u=Cm({p1:wr,p2:Ii,p3:W(0,0,0),p4:a}),c=wr.add(l.mul(u.x)),d=a.mul(u.y),h=c.sub(d).length().div(Pi);if(!r)if(o&&t.currentSamples>0){const f=h.fwidth();n.assign(Ce(f.negate().add(.5),f.add(.5),h).oneMinus())}else h.greaterThan(.5).discard()}else if(o&&t.currentSamples>0){const a=i.x,l=i.y.greaterThan(0).select(i.y.sub(1),i.y.add(1)),u=a.mul(a).add(l.mul(l)),c=R(u.fwidth()).toVar("dlen");x1(i.y.abs().greaterThan(1),()=>{n.assign(Ce(c.oneMinus(),c.add(1),u).oneMinus())})}else x1(i.y.abs().greaterThan(1),()=>{const a=i.x,l=i.y.greaterThan(0).select(i.y.sub(1),i.y.add(1));a.mul(a).add(l.mul(l)).greaterThan(1).discard()});return n})(),Rm=new J4,Bm=class extends s0{static get type(){return"MeshNormalNodeMaterial"}constructor(e){super(),this.isMeshNormalNodeMaterial=!0,this.setDefaultValues(Rm),this.setValues(e)}setupDiffuseColor(){const e=this.opacityNode?R(this.opacityNode):W8;U1.assign(Cn(Y(up(y1),e),X0))}},J8=B(([e=b8])=>{const t=e.z.atan(e.x).mul(1/(Math.PI*2)).add(.5),o=e.y.clamp(-1,1).asin().mul(1/Math.PI).add(.5);return n1(t,o)}),Ya=B(([e=L2()])=>{const t=e.x.sub(.5).mul(Math.PI*2),o=e.y.sub(.5).mul(Math.PI),r=o.cos(),s=r.mul(t.cos()),i=o.sin(),n=r.mul(t.sin());return W(s,i,n)}),j8=class extends zt{constructor(e=1,t={}){super(e,e,t),this.isCubeRenderTarget=!0;const o={width:e,height:e,depth:1},r=[o,o,o,o,o,o];this.texture=new Zr(r),this._setTextureOptions(t),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,t){const o=t.minFilter,r=t.generateMipmaps;t.generateMipmaps=!0,this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const s=new t6(5,5,5),i=J8(b8),n=new s0;n.colorNode=P1(t,i,0),n.side=1,n.blending=0;const a=new He(s,n),l=new Ar;l.add(a),t.minFilter===1008&&(t.minFilter=H1);const u=new nu(1,10,this),c=e.getMRT();return e.setMRT(null),u.update(e,l),e.setMRT(c),t.minFilter=o,t.generateMipmaps=r,a.geometry.dispose(),a.material.dispose(),this}clear(e,t=!0,o=!0,r=!0){const s=e.getRenderTarget();for(let i=0;i<6;i++)e.setRenderTarget(this,i),e.clear(t,o,r);e.setRenderTarget(s)}},oo=new WeakMap,Em=class extends n0{static get type(){return"CubeMapNode"}constructor(e){super("vec3"),this.envNode=e,this._cubeTexture=null,this._cubeTextureNode=D0(null);const t=new Zr;t.isRenderTargetTexture=!0,this._defaultTexture=t,this.updateBeforeType=u1.RENDER}updateBefore(e){const{renderer:t,material:o}=e,r=this.envNode;if(r.isTextureNode||r.isMaterialReferenceNode){const s=r.isTextureNode?r.value:o[r.property];if(s&&s.isTexture){const i=s.mapping;if(i===303||i===304){if(oo.has(s)){const n=oo.get(s);e7(n,s.mapping),this._cubeTexture=n}else{const n=s.image;if(Wm(n)){const a=new j8(n.height);a.fromEquirectangularTexture(t,s),e7(a.texture,s.mapping),this._cubeTexture=a.texture,oo.set(s,a.texture),s.addEventListener("dispose",K8)}else this._cubeTexture=this._defaultTexture}this._cubeTextureNode.value=this._cubeTexture}else this._cubeTextureNode=this.envNode}}}setup(e){return this.updateBefore(e),this._cubeTextureNode}};function Wm(e){return e==null?!1:e.height>0}function K8(e){const t=e.target;t.removeEventListener("dispose",K8);const o=oo.get(t);o!==void 0&&(oo.delete(t),o.dispose())}function e7(e,t){t===303?e.mapping=301:t===304&&(e.mapping=302)}var Y8=$1(Em).setParameterLength(1),Pn=class extends M3{static get type(){return"BasicEnvironmentNode"}constructor(e=null){super(),this.envNode=e}setup(e){e.context.environment=Y8(this.envNode)}},Lm=class extends M3{static get type(){return"BasicLightMapNode"}constructor(e=null){super(),this.lightMapNode=e}setup(e){const t=R(1/Math.PI);e.context.irradianceLightMap=this.lightMapNode.mul(t)}},Yr=class{start(e){e.lightsNode.setupLights(e,e.lightsNode.getLightNodes(e)),this.indirect(e)}finish(){}direct(){}directRectArea(){}indirect(){}ambientOcclusion(){}},e5=class extends Yr{constructor(){super()}indirect({context:e}){const t=e.ambientOcclusion,o=e.reflectedLight,r=e.irradianceLightMap;o.indirectDiffuse.assign(Y(0)),r?o.indirectDiffuse.addAssign(r):o.indirectDiffuse.addAssign(Y(1,1,1,0)),o.indirectDiffuse.mulAssign(t),o.indirectDiffuse.mulAssign(U1.rgb)}finish(e){const{material:t,context:o}=e,r=o.outgoingLight,s=e.context.environment;if(s)switch(t.combine){case 0:r.rgb.assign(B1(r.rgb,r.rgb.mul(s.rgb),Sr.mul(Cs)));break;case 1:r.rgb.assign(B1(r.rgb,s.rgb,Sr.mul(Cs)));break;case 2:r.rgb.addAssign(s.rgb.mul(Sr.mul(Cs)));break;default:j("BasicLightingModel: Unsupported .combine value:",t.combine)}}},Um=new i2,Om=class extends s0{static get type(){return"MeshBasicNodeMaterial"}constructor(e){super(),this.isMeshBasicNodeMaterial=!0,this.lights=!0,this.setDefaultValues(Um),this.setValues(e)}setupNormal(){return Co(ho)}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new Pn(t):null}setupLightMap(e){let t=null;return e.material.lightMap&&(t=new Lm(P8)),t}setupOutgoingLight(){return U1.rgb}setupLightingModel(){return new e5}},fo=B(({f0:e,f90:t,dotVH:o})=>{const r=o.mul(-5.55473).sub(6.98316).mul(o).exp2();return e.mul(r.oneMinus()).add(t.mul(r))}),h3=B(e=>e.diffuseColor.mul(1/Math.PI)),Fm=()=>R(.25),Pm=B(({dotNH:e})=>Bi.mul(R(.5)).add(1).mul(R(1/Math.PI)).mul(e.pow(Bi))),Dm=B(({lightDirection:e})=>{const t=e.add(k1).normalize(),o=y1.dot(t).clamp(),r=k1.dot(t).clamp(),s=fo({f0:x2,f90:1,dotVH:r}),i=Fm(),n=Pm({dotNH:o});return s.mul(i).mul(n)}),t5=class extends e5{constructor(e=!0){super(),this.specular=e}direct({lightDirection:e,lightColor:t,reflectedLight:o}){const r=y1.dot(e).clamp().mul(t);o.directDiffuse.addAssign(r.mul(h3({diffuseColor:U1.rgb}))),this.specular===!0&&o.directSpecular.addAssign(r.mul(Dm({lightDirection:e})).mul(Sr))}indirect(e){const{ambientOcclusion:t,irradiance:o,reflectedLight:r}=e.context;r.indirectDiffuse.addAssign(o.mul(h3({diffuseColor:U1}))),r.indirectDiffuse.mulAssign(t)}},km=new iu,Xm=class extends s0{static get type(){return"MeshLambertNodeMaterial"}constructor(e){super(),this.isMeshLambertNodeMaterial=!0,this.lights=!0,this.setDefaultValues(km),this.setValues(e)}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new Pn(t):null}setupLightingModel(){return new t5(!1)}},Im=new lu,Gm=class extends s0{static get type(){return"MeshPhongNodeMaterial"}constructor(e){super(),this.isMeshPhongNodeMaterial=!0,this.lights=!0,this.shininessNode=null,this.specularNode=null,this.setDefaultValues(Im),this.setValues(e)}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new Pn(t):null}setupLightingModel(){return new t5}setupVariants(){const e=(this.shininessNode?R(this.shininessNode):vp).max(1e-4);Bi.assign(e);const t=this.specularNode||Np;x2.assign(t)}},zm=B(e=>{if(e.geometry.hasAttribute("normal")===!1)return R(0);const t=ho.dFdx().abs().max(ho.dFdy().abs());return t.x.max(t.y).max(t.z)}),o5=B(e=>{const{roughness:t}=e,o=zm();let r=t.max(.0525);return r=r.add(o),r=r.min(1),r}),$m=B(({alpha:e,dotNL:t,dotNV:o})=>{const r=e.pow2(),s=t.mul(r.add(r.oneMinus().mul(o.pow2())).sqrt()),i=o.mul(r.add(r.oneMinus().mul(t.pow2())).sqrt());return Je(.5,s.add(i).max(xn))}).setLayout({name:"V_GGX_SmithCorrelated",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNL",type:"float"},{name:"dotNV",type:"float"}]}),Vm=B(({alphaT:e,alphaB:t,dotTV:o,dotBV:r,dotTL:s,dotBL:i,dotNV:n,dotNL:a})=>{const l=a.mul(W(e.mul(o),t.mul(r),n).length()),u=n.mul(W(e.mul(s),t.mul(i),a).length());return Je(.5,l.add(u).max(xn))}).setLayout({name:"V_GGX_SmithCorrelated_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotTV",type:"float",qualifier:"in"},{name:"dotBV",type:"float",qualifier:"in"},{name:"dotTL",type:"float",qualifier:"in"},{name:"dotBL",type:"float",qualifier:"in"},{name:"dotNV",type:"float",qualifier:"in"},{name:"dotNL",type:"float",qualifier:"in"}]}),Qm=B(({alpha:e,dotNH:t})=>{const o=e.pow2(),r=t.pow2().mul(o.oneMinus()).oneMinus();return o.div(r.pow2()).mul(1/Math.PI)}).setLayout({name:"D_GGX",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNH",type:"float"}]}),Zm=R(1/Math.PI),qm=B(({alphaT:e,alphaB:t,dotNH:o,dotTH:r,dotBH:s})=>{const i=e.mul(t),n=W(t.mul(r),e.mul(s),i.mul(o)),a=n.dot(n),l=i.div(a);return Zm.mul(i.mul(l.pow2()))}).setLayout({name:"D_GGX_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotNH",type:"float",qualifier:"in"},{name:"dotTH",type:"float",qualifier:"in"},{name:"dotBH",type:"float",qualifier:"in"}]}),r5=B(({lightDirection:e,f0:t,f90:o,roughness:r,f:s,normalView:i=y1,USE_IRIDESCENCE:n,USE_ANISOTROPY:a})=>{const l=r.pow2(),u=e.add(k1).normalize(),c=i.dot(e).clamp(),d=i.dot(k1).clamp(),h=i.dot(u).clamp(),f=k1.dot(u).clamp();let p=fo({f0:t,f90:o,dotVH:f}),m,b;if(wi(n)&&(p=yn.mix(p,s)),wi(a)){const N=Nr.dot(e),v=Nr.dot(k1),y=Nr.dot(u),T=r3.dot(e),x=r3.dot(k1),S=r3.dot(u);m=Vm({alphaT:Ri,alphaB:l,dotTV:v,dotBV:x,dotTL:N,dotBL:T,dotNV:d,dotNL:c}),b=qm({alphaT:Ri,alphaB:l,dotNH:h,dotTH:y,dotBH:S})}else m=$m({alpha:l,dotNL:c,dotNV:d}),b=Qm({alpha:l,dotNH:h});return p.mul(m).mul(b)}),Hm=new Uint16Array([12469,15057,12620,14925,13266,14620,13807,14376,14323,13990,14545,13625,14713,13328,14840,12882,14931,12528,14996,12233,15039,11829,15066,11525,15080,11295,15085,10976,15082,10705,15073,10495,13880,14564,13898,14542,13977,14430,14158,14124,14393,13732,14556,13410,14702,12996,14814,12596,14891,12291,14937,11834,14957,11489,14958,11194,14943,10803,14921,10506,14893,10278,14858,9960,14484,14039,14487,14025,14499,13941,14524,13740,14574,13468,14654,13106,14743,12678,14818,12344,14867,11893,14889,11509,14893,11180,14881,10751,14852,10428,14812,10128,14765,9754,14712,9466,14764,13480,14764,13475,14766,13440,14766,13347,14769,13070,14786,12713,14816,12387,14844,11957,14860,11549,14868,11215,14855,10751,14825,10403,14782,10044,14729,9651,14666,9352,14599,9029,14967,12835,14966,12831,14963,12804,14954,12723,14936,12564,14917,12347,14900,11958,14886,11569,14878,11247,14859,10765,14828,10401,14784,10011,14727,9600,14660,9289,14586,8893,14508,8533,15111,12234,15110,12234,15104,12216,15092,12156,15067,12010,15028,11776,14981,11500,14942,11205,14902,10752,14861,10393,14812,9991,14752,9570,14682,9252,14603,8808,14519,8445,14431,8145,15209,11449,15208,11451,15202,11451,15190,11438,15163,11384,15117,11274,15055,10979,14994,10648,14932,10343,14871,9936,14803,9532,14729,9218,14645,8742,14556,8381,14461,8020,14365,7603,15273,10603,15272,10607,15267,10619,15256,10631,15231,10614,15182,10535,15118,10389,15042,10167,14963,9787,14883,9447,14800,9115,14710,8665,14615,8318,14514,7911,14411,7507,14279,7198,15314,9675,15313,9683,15309,9712,15298,9759,15277,9797,15229,9773,15166,9668,15084,9487,14995,9274,14898,8910,14800,8539,14697,8234,14590,7790,14479,7409,14367,7067,14178,6621,15337,8619,15337,8631,15333,8677,15325,8769,15305,8871,15264,8940,15202,8909,15119,8775,15022,8565,14916,8328,14804,8009,14688,7614,14569,7287,14448,6888,14321,6483,14088,6171,15350,7402,15350,7419,15347,7480,15340,7613,15322,7804,15287,7973,15229,8057,15148,8012,15046,7846,14933,7611,14810,7357,14682,7069,14552,6656,14421,6316,14251,5948,14007,5528,15356,5942,15356,5977,15353,6119,15348,6294,15332,6551,15302,6824,15249,7044,15171,7122,15070,7050,14949,6861,14818,6611,14679,6349,14538,6067,14398,5651,14189,5311,13935,4958,15359,4123,15359,4153,15356,4296,15353,4646,15338,5160,15311,5508,15263,5829,15188,6042,15088,6094,14966,6001,14826,5796,14678,5543,14527,5287,14377,4985,14133,4586,13869,4257,15360,1563,15360,1642,15358,2076,15354,2636,15341,3350,15317,4019,15273,4429,15203,4732,15105,4911,14981,4932,14836,4818,14679,4621,14517,4386,14359,4156,14083,3795,13808,3437,15360,122,15360,137,15358,285,15355,636,15344,1274,15322,2177,15281,2765,15215,3223,15120,3451,14995,3569,14846,3567,14681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]),Oe=null,Dr=B(({roughness:e,dotNV:t})=>{Oe===null&&(Oe=new Y4(Hm,16,16,d2,ne),Oe.name="DFG_LUT",Oe.minFilter=H1,Oe.magFilter=H1,Oe.wrapS=Dt,Oe.wrapT=Dt,Oe.generateMipmaps=!1,Oe.needsUpdate=!0);const o=n1(e,t);return P1(Oe,o).rg}),Jm=B(({lightDirection:e,f0:t,f90:o,roughness:r,f:s,USE_IRIDESCENCE:i,USE_ANISOTROPY:n})=>{const a=r5({lightDirection:e,f0:t,f90:o,roughness:r,f:s,USE_IRIDESCENCE:i,USE_ANISOTROPY:n}),l=y1.dot(e).clamp(),u=y1.dot(k1).clamp(),c=Dr({roughness:r,dotNV:u}),d=Dr({roughness:r,dotNV:l}),h=t.mul(c.x).add(o.mul(c.y)),f=t.mul(d.x).add(o.mul(d.y)),p=c.x.add(c.y),m=d.x.add(d.y),b=R(1).sub(p),N=R(1).sub(m),v=t.add(t.oneMinus().mul(.047619)),y=h.mul(f).mul(v).div(R(1).sub(b.mul(N).mul(v).mul(v)).add(xn)),T=b.mul(N),x=y.mul(T);return a.add(x)}),s5=B(e=>{const{dotNV:t,specularColor:o,specularF90:r,roughness:s}=e,i=Dr({dotNV:t,roughness:s});return o.mul(i.x).add(r.mul(i.y))}),t7=B(({f:e,f90:t,dotVH:o})=>{const r=o.oneMinus().saturate(),s=r.mul(r),i=r.mul(s,s).clamp(0,.9999);return e.sub(W(t).mul(i)).div(i.oneMinus())}).setLayout({name:"Schlick_to_F0",type:"vec3",inputs:[{name:"f",type:"vec3"},{name:"f90",type:"float"},{name:"dotVH",type:"float"}]}),jm=B(({roughness:e,dotNH:t})=>{const o=e.pow2(),r=R(1).div(o),s=t.pow2().oneMinus().max(.0078125);return R(2).add(r).mul(s.pow(r.mul(.5))).div(2*Math.PI)}).setLayout({name:"D_Charlie",type:"float",inputs:[{name:"roughness",type:"float"},{name:"dotNH",type:"float"}]}),Km=B(({dotNV:e,dotNL:t})=>R(1).div(R(4).mul(t.add(e).sub(t.mul(e))))).setLayout({name:"V_Neubelt",type:"float",inputs:[{name:"dotNV",type:"float"},{name:"dotNL",type:"float"}]}),Ym=B(({lightDirection:e})=>{const t=e.add(k1).normalize(),o=y1.dot(e).clamp(),r=y1.dot(k1).clamp(),s=y1.dot(t).clamp(),i=jm({roughness:n2,dotNH:s}),n=Km({dotNV:r,dotNL:o});return te.mul(i).mul(n)}),o7=B(({N:e,V:t,roughness:o})=>{const i=.0078125,n=e.dot(t).saturate(),a=n1(o,n.oneMinus().sqrt());return a.assign(a.mul(.984375).add(i)),a}).setLayout({name:"LTC_Uv",type:"vec2",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"roughness",type:"float"}]}),eg=B(({f:e})=>{const t=e.length();return N0(t.mul(t).add(e.z).div(t.add(1)),0)}).setLayout({name:"LTC_ClippedSphereFormFactor",type:"float",inputs:[{name:"f",type:"vec3"}]}),Io=B(({v1:e,v2:t})=>{const o=e.dot(t),r=o.abs().toVar(),s=r.mul(.0145206).add(.4965155).mul(r).add(.8543985).toVar(),i=r.add(4.1616724).mul(r).add(3.417594).toVar(),n=s.div(i),a=o.greaterThan(0).select(n,N0(o.mul(o).oneMinus(),1e-7).inverseSqrt().mul(.5).sub(n));return e.cross(t).mul(a)}).setLayout({name:"LTC_EdgeVectorFormFactor",type:"vec3",inputs:[{name:"v1",type:"vec3"},{name:"v2",type:"vec3"}]}),Es=B(({N:e,V:t,P:o,mInv:r,p0:s,p1:i,p2:n,p3:a})=>{const l=i.sub(s).toVar(),u=a.sub(s).toVar(),c=l.cross(u),d=W().toVar();return x1(c.dot(o.sub(s)).greaterThanEqual(0),()=>{const h=t.sub(e.mul(t.dot(e))).normalize(),f=e.cross(h).negate(),p=r.mul(b0(h,f,e).transpose()).toVar(),m=p.mul(s.sub(o)).normalize().toVar(),b=p.mul(i.sub(o)).normalize().toVar(),N=p.mul(n.sub(o)).normalize().toVar(),v=p.mul(a.sub(o)).normalize().toVar(),y=W(0).toVar();y.addAssign(Io({v1:m,v2:b})),y.addAssign(Io({v1:b,v2:N})),y.addAssign(Io({v1:N,v2:v})),y.addAssign(Io({v1:v,v2:m})),d.assign(W(eg({f:y})))}),d}).setLayout({name:"LTC_Evaluate",type:"vec3",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"P",type:"vec3"},{name:"mInv",type:"mat3"},{name:"p0",type:"vec3"},{name:"p1",type:"vec3"},{name:"p2",type:"vec3"},{name:"p3",type:"vec3"}]}),es=1/6,i5=e=>d1(es,d1(e,d1(e,e.negate().add(3)).sub(3)).add(1)),Gi=e=>d1(es,d1(e,d1(e,d1(3,e).sub(6))).add(4)),n5=e=>d1(es,d1(e,d1(e,d1(-3,e).add(3)).add(3)).add(1)),zi=e=>d1(es,Kr(e,3)),r7=e=>i5(e).add(Gi(e)),s7=e=>n5(e).add(zi(e)),i7=e=>I0(-1,Gi(e).div(i5(e).add(Gi(e)))),n7=e=>I0(1,zi(e).div(n5(e).add(zi(e)))),a7=(e,t,o)=>{const r=e.uvNode,s=d1(r,t.zw).add(.5),i=N2(s),n=je(s),a=r7(n.x),l=s7(n.x),u=i7(n.x),c=n7(n.x),d=i7(n.y),h=n7(n.y),f=n1(i.x.add(u),i.y.add(d)).sub(.5).mul(t.xy),p=n1(i.x.add(c),i.y.add(d)).sub(.5).mul(t.xy),m=n1(i.x.add(u),i.y.add(h)).sub(.5).mul(t.xy),b=n1(i.x.add(c),i.y.add(h)).sub(.5).mul(t.xy),N=r7(n.y).mul(I0(a.mul(e.sample(f).level(o)),l.mul(e.sample(p).level(o)))),v=s7(n.y).mul(I0(a.mul(e.sample(m).level(o)),l.mul(e.sample(b).level(o))));return N.add(v)},tg=B(([e,t])=>{const o=n1(e.size(Z1(t))),r=n1(e.size(Z1(t.add(1)))),s=Je(1,o),i=Je(1,r),n=a7(e,Y(s,o),N2(t)),a=a7(e,Y(i,r),Sn(t));return je(t).mix(n,a)}),l7=B(([e,t,o,r,s])=>{const i=W(r8(t.negate(),ce(e),Je(1,r))),n=W(ft(s[0].xyz),ft(s[1].xyz),ft(s[2].xyz));return ce(i).mul(o.mul(n))}).setLayout({name:"getVolumeTransmissionRay",type:"vec3",inputs:[{name:"n",type:"vec3"},{name:"v",type:"vec3"},{name:"thickness",type:"float"},{name:"ior",type:"float"},{name:"modelMatrix",type:"mat4"}]}),og=B(([e,t])=>e.mul(Xt(t.mul(2).sub(2),0,1))).setLayout({name:"applyIorToRoughness",type:"float",inputs:[{name:"roughness",type:"float"},{name:"ior",type:"float"}]}),rg=V8(),sg=dm(),u7=B(([e,t,o],{material:r})=>{const s=(r.side===1?rg:sg).sample(e),i=ht(Li.x).mul(og(t,o));return tg(s,i)}),c7=B(([e,t,o])=>(x1(o.notEqual(0),()=>{const r=Z6(t).negate().div(o);return Q6(r.negate().mul(e))}),W(1))).setLayout({name:"volumeAttenuation",type:"vec3",inputs:[{name:"transmissionDistance",type:"float"},{name:"attenuationColor",type:"vec3"},{name:"attenuationDistance",type:"float"}]}),ig=B(([e,t,o,r,s,i,n,a,l,u,c,d,h,f,p])=>{let m,b;if(p){m=Y().toVar(),b=W().toVar();const x=c.sub(1).mul(p.mul(.025)),S=W(c.sub(x),c,c.add(x));ie({start:0,end:3},({i:C})=>{const w=S.element(C),L=l7(e,t,d,w,a),F=n.add(L),P=u.mul(l.mul(Y(F,1))),X=n1(P.xy.div(P.w)).toVar();X.addAssign(1),X.divAssign(2),X.assign(n1(X.x,X.y.oneMinus()));const V=u7(X,o,w);m.element(C).assign(V.element(C)),m.a.addAssign(V.a),b.element(C).assign(r.element(C).mul(c7(ft(L),h,f).element(C)))}),m.a.divAssign(3)}else{const x=l7(e,t,d,c,a),S=n.add(x),C=u.mul(l.mul(Y(S,1))),w=n1(C.xy.div(C.w)).toVar();w.addAssign(1),w.divAssign(2),w.assign(n1(w.x,w.y.oneMinus())),m=u7(w,o,c),b=r.mul(c7(ft(x),h,f))}const N=b.rgb.mul(m.rgb),v=e.dot(t).clamp(),y=W(s5({dotNV:v,specularColor:s,specularF90:i,roughness:o})),T=b.r.add(b.g,b.b).div(3);return Y(y.oneMinus().mul(N),m.a.oneMinus().mul(T).oneMinus())}),ng=b0(3.2404542,-.969266,.0556434,-1.5371385,1.8760108,-.2040259,-.4985314,.041556,1.0572252),ag=e=>{const t=e.sqrt();return W(1).add(t).div(W(1).sub(t))},d7=(e,t)=>e.sub(t).div(e.add(t)).pow2(),lg=(e,t)=>{const o=e.mul(2*Math.PI*1e-9),r=W(54856e-17,44201e-17,52481e-17),s=W(1681e3,1795300,2208400),i=W(43278e5,93046e5,66121e5),n=R(9747e-17*Math.sqrt(2*Math.PI*45282e5)).mul(o.mul(2239900).add(t.x).cos()).mul(o.pow2().mul(-45282e5).exp());let a=r.mul(i.mul(2*Math.PI).sqrt()).mul(s.mul(o).add(t).cos()).mul(o.pow2().negate().mul(i).exp());return a=W(a.x.add(n),a.y,a.z).div(10685e-11),ng.mul(a)},h7=B(({outsideIOR:e,eta2:t,cosTheta1:o,thinFilmThickness:r,baseF0:s})=>{const i=B1(e,t,Ce(0,.03,r)),n=e.div(i).pow2().mul(o.pow2().oneMinus()).oneMinus();x1(n.lessThan(0),()=>W(1));const a=n.sqrt(),l=d7(i,e),u=fo({f0:l,f90:1,dotVH:o}),c=u.oneMinus(),d=i.lessThan(e).select(Math.PI,0),h=R(Math.PI).sub(d),f=ag(s.clamp(0,.9999)),p=d7(f,i.toVec3()),m=fo({f0:p,f90:1,dotVH:a}),b=W(f.x.lessThan(i).select(Math.PI,0),f.y.lessThan(i).select(Math.PI,0),f.z.lessThan(i).select(Math.PI,0)),N=i.mul(r,a,2),v=W(h).add(b),y=u.mul(m).clamp(1e-5,.9999),T=y.sqrt(),x=c.pow2().mul(m).div(W(1).sub(y)),S=u.add(x).toVar(),C=x.sub(c).toVar();return ie({start:1,end:2,condition:"<=",name:"m"},({m:w})=>{C.mulAssign(T);const L=lg(R(w).mul(N),R(w).mul(v)).mul(2);S.addAssign(C.mul(L))}),S.max(W(0))}).setLayout({name:"evalIridescence",type:"vec3",inputs:[{name:"outsideIOR",type:"float"},{name:"eta2",type:"float"},{name:"cosTheta1",type:"float"},{name:"thinFilmThickness",type:"float"},{name:"baseF0",type:"vec3"}]}),C3=B(({normal:e,viewDir:t,roughness:o})=>{const r=e.dot(t).saturate(),s=o.mul(o),i=o.add(.1).reciprocal(),n=R(-1.9362).add(o.mul(1.0678)).add(s.mul(.4573)).sub(i.mul(.8469)),a=R(-.6014).add(o.mul(.5538)).sub(s.mul(.467)).sub(i.mul(.1255));return n.mul(r).add(a).exp().saturate()}),R3=W(.04),Go=R(1),a5=class extends Yr{constructor(e=!1,t=!1,o=!1,r=!1,s=!1,i=!1){super(),this.clearcoat=e,this.sheen=t,this.iridescence=o,this.anisotropy=r,this.transmission=s,this.dispersion=i,this.clearcoatRadiance=null,this.clearcoatSpecularDirect=null,this.clearcoatSpecularIndirect=null,this.sheenSpecularDirect=null,this.sheenSpecularIndirect=null,this.iridescenceFresnel=null,this.iridescenceF0=null,this.iridescenceF0Dielectric=null,this.iridescenceF0Metallic=null}start(e){if(this.clearcoat===!0&&(this.clearcoatRadiance=W().toVar("clearcoatRadiance"),this.clearcoatSpecularDirect=W().toVar("clearcoatSpecularDirect"),this.clearcoatSpecularIndirect=W().toVar("clearcoatSpecularIndirect")),this.sheen===!0&&(this.sheenSpecularDirect=W().toVar("sheenSpecularDirect"),this.sheenSpecularIndirect=W().toVar("sheenSpecularIndirect")),this.iridescence===!0){const t=y1.dot(k1).clamp(),o=h7({outsideIOR:R(1),eta2:Ai,cosTheta1:t,thinFilmThickness:Ci,baseF0:x2}),r=h7({outsideIOR:R(1),eta2:Ai,cosTheta1:t,thinFilmThickness:Ci,baseF0:U1.rgb});this.iridescenceFresnel=B1(o,r,Rt),this.iridescenceF0Dielectric=t7({f:o,f90:1,dotVH:t}),this.iridescenceF0Metallic=t7({f:r,f90:1,dotVH:t}),this.iridescenceF0=B1(this.iridescenceF0Dielectric,this.iridescenceF0Metallic,Rt)}if(this.transmission===!0){const t=d3,o=Pf.sub(d3).normalize(),r=y3,s=e.context;s.backdrop=ig(r,o,ut,j2,K2,Y2,t,w2,N3,xe,yr,X6,G6,I6,this.dispersion?z6:null),s.backdropAlpha=Ei,U1.a.mulAssign(B1(1,s.backdrop.a,Ei))}super.start(e)}computeMultiscattering(e,t,o,r,s=null){const i=y1.dot(k1).clamp(),n=Dr({roughness:ut,dotNV:i}),a=s?yn.mix(r,s):r,l=a.mul(n.x).add(o.mul(n.y)),u=n.x.add(n.y).oneMinus(),c=a.add(a.oneMinus().mul(.047619)),d=l.mul(c).div(u.mul(c).oneMinus());e.addAssign(l),t.addAssign(d.mul(u))}direct({lightDirection:e,lightColor:t,reflectedLight:o}){const r=y1.dot(e).clamp().mul(t).toVar();if(this.sheen===!0){this.sheenSpecularDirect.addAssign(r.mul(Ym({lightDirection:e})));const s=C3({normal:y1,viewDir:k1,roughness:n2}),i=C3({normal:y1,viewDir:e,roughness:n2}),n=te.r.max(te.g).max(te.b).mul(s.max(i)).oneMinus();r.mulAssign(n)}if(this.clearcoat===!0){const s=u2.dot(e).clamp().mul(t);this.clearcoatSpecularDirect.addAssign(s.mul(r5({lightDirection:e,f0:R3,f90:Go,roughness:K3,normalView:u2})))}o.directDiffuse.addAssign(r.mul(h3({diffuseColor:j2}))),o.directSpecular.addAssign(r.mul(Jm({lightDirection:e,f0:K2,f90:1,roughness:ut,f:this.iridescenceFresnel,USE_IRIDESCENCE:this.iridescence,USE_ANISOTROPY:this.anisotropy})))}directRectArea({lightColor:e,lightPosition:t,halfWidth:o,halfHeight:r,reflectedLight:s,ltc_1:i,ltc_2:n}){const a=t.add(o).sub(r),l=t.sub(o).sub(r),u=t.sub(o).add(r),c=t.add(o).add(r),d=y1,h=k1,f=r0.toVar(),p=o7({N:d,V:h,roughness:ut}),m=i.sample(p).toVar(),b=n.sample(p).toVar(),N=b0(W(m.x,0,m.y),W(0,1,0),W(m.z,0,m.w)).toVar(),v=K2.mul(b.x).add(Y2.sub(K2).mul(b.y)).toVar();if(s.directSpecular.addAssign(e.mul(v).mul(Es({N:d,V:h,P:f,mInv:N,p0:a,p1:l,p2:u,p3:c}))),s.directDiffuse.addAssign(e.mul(j2).mul(Es({N:d,V:h,P:f,mInv:b0(1,0,0,0,1,0,0,0,1),p0:a,p1:l,p2:u,p3:c}))),this.clearcoat===!0){const y=u2,T=o7({N:y,V:h,roughness:K3}),x=i.sample(T),S=n.sample(T),C=b0(W(x.x,0,x.y),W(0,1,0),W(x.z,0,x.w)),w=R3.mul(S.x).add(Go.sub(R3).mul(S.y));this.clearcoatSpecularDirect.addAssign(e.mul(w).mul(Es({N:y,V:h,P:f,mInv:C,p0:a,p1:l,p2:u,p3:c})))}}indirect(e){this.indirectDiffuse(e),this.indirectSpecular(e),this.ambientOcclusion(e)}indirectDiffuse(e){const{irradiance:t,reflectedLight:o}=e.context,r=t.mul(h3({diffuseColor:j2})).toVar();if(this.sheen===!0){const s=C3({normal:y1,viewDir:k1,roughness:n2}),i=te.r.max(te.g).max(te.b).mul(s).oneMinus();r.mulAssign(i)}o.indirectDiffuse.addAssign(r)}indirectSpecular(e){const{radiance:t,iblIrradiance:o,reflectedLight:r}=e.context;if(this.sheen===!0&&this.sheenSpecularIndirect.addAssign(o.mul(te,C3({normal:y1,viewDir:k1,roughness:n2}))),this.clearcoat===!0){const m=u2.dot(k1).clamp(),b=s5({dotNV:m,specularColor:R3,specularF90:Go,roughness:K3});this.clearcoatSpecularIndirect.addAssign(this.clearcoatRadiance.mul(b))}const s=W().toVar("singleScatteringDielectric"),i=W().toVar("multiScatteringDielectric"),n=W().toVar("singleScatteringMetallic"),a=W().toVar("multiScatteringMetallic");this.computeMultiscattering(s,i,Y2,x2,this.iridescenceF0Dielectric),this.computeMultiscattering(n,a,Y2,U1.rgb,this.iridescenceF0Metallic);const l=B1(s,n,Rt),u=B1(i,a,Rt),c=s.add(i),d=j2.mul(c.oneMinus()),h=o.mul(1/Math.PI),f=t.mul(l).add(u.mul(h)).toVar(),p=d.mul(h).toVar();if(this.sheen===!0){const m=C3({normal:y1,viewDir:k1,roughness:n2}),b=te.r.max(te.g).max(te.b).mul(m).oneMinus();f.mulAssign(b),p.mulAssign(b)}r.indirectSpecular.addAssign(f),r.indirectDiffuse.addAssign(p)}ambientOcclusion(e){const{ambientOcclusion:t,reflectedLight:o}=e.context,r=y1.dot(k1).clamp().add(t),s=ut.mul(-16).oneMinus().negate().exp2(),i=t.sub(r.pow(s).oneMinus()).clamp();this.clearcoat===!0&&this.clearcoatSpecularIndirect.mulAssign(t),this.sheen===!0&&this.sheenSpecularIndirect.mulAssign(t),o.indirectDiffuse.mulAssign(t),o.indirectSpecular.mulAssign(i)}finish({context:e}){const{outgoingLight:t}=e;if(this.clearcoat===!0){const o=u2.dot(k1).clamp(),r=fo({dotVH:o,f0:R3,f90:Go}),s=t.mul(_i.mul(r).oneMinus()).add(this.clearcoatSpecularDirect.add(this.clearcoatSpecularIndirect).mul(_i));t.assign(s)}if(this.sheen===!0){const o=t.add(this.sheenSpecularDirect,this.sheenSpecularIndirect.mul(1/Math.PI));t.assign(o)}}},f7=R(1),$i=R(-2),zo=R(.8),Ws=R(-1),$o=R(.4),Ls=R(2),Vo=R(.305),Us=R(3),p7=R(.21),ug=R(4),m7=R(4),cg=R(16),dg=B(([e])=>{const t=W(q0(e)).toVar(),o=R(-1).toVar();return x1(t.x.greaterThan(t.z),()=>{x1(t.x.greaterThan(t.y),()=>{o.assign(H0(e.x.greaterThan(0),0,3))}).Else(()=>{o.assign(H0(e.y.greaterThan(0),1,4))})}).Else(()=>{x1(t.z.greaterThan(t.y),()=>{o.assign(H0(e.z.greaterThan(0),2,5))}).Else(()=>{o.assign(H0(e.y.greaterThan(0),1,4))})}),o}).setLayout({name:"getFace",type:"float",inputs:[{name:"direction",type:"vec3"}]}),hg=B(([e,t])=>{const o=n1().toVar();return x1(t.equal(0),()=>{o.assign(n1(e.z,e.y).div(q0(e.x)))}).ElseIf(t.equal(1),()=>{o.assign(n1(e.x.negate(),e.z.negate()).div(q0(e.y)))}).ElseIf(t.equal(2),()=>{o.assign(n1(e.x.negate(),e.y).div(q0(e.z)))}).ElseIf(t.equal(3),()=>{o.assign(n1(e.z.negate(),e.y).div(q0(e.x)))}).ElseIf(t.equal(4),()=>{o.assign(n1(e.x.negate(),e.z).div(q0(e.y)))}).Else(()=>{o.assign(n1(e.x,e.y).div(q0(e.z)))}),d1(.5,o.add(1))}).setLayout({name:"getUV",type:"vec2",inputs:[{name:"direction",type:"vec3"},{name:"face",type:"float"}]}),fg=B(([e])=>{const t=R(0).toVar();return x1(e.greaterThanEqual(zo),()=>{t.assign(f7.sub(e).mul(Ws.sub($i)).div(f7.sub(zo)).add($i))}).ElseIf(e.greaterThanEqual($o),()=>{t.assign(zo.sub(e).mul(Ls.sub(Ws)).div(zo.sub($o)).add(Ws))}).ElseIf(e.greaterThanEqual(Vo),()=>{t.assign($o.sub(e).mul(Us.sub(Ls)).div($o.sub(Vo)).add(Ls))}).ElseIf(e.greaterThanEqual(p7),()=>{t.assign(Vo.sub(e).mul(ug.sub(Us)).div(Vo.sub(p7)).add(Us))}).Else(()=>{t.assign(R(-2).mul(ht(d1(1.16,e))))}),t}).setLayout({name:"roughnessToMip",type:"float",inputs:[{name:"roughness",type:"float"}]}),pg=B(([e,t])=>{const o=e.toVar();o.assign(d1(2,o).sub(1));const r=W(o,1).toVar();return x1(t.equal(0),()=>{r.assign(r.zyx)}).ElseIf(t.equal(1),()=>{r.assign(r.xzy),r.xz.mulAssign(-1)}).ElseIf(t.equal(2),()=>{r.x.mulAssign(-1)}).ElseIf(t.equal(3),()=>{r.assign(r.zyx),r.xz.mulAssign(-1)}).ElseIf(t.equal(4),()=>{r.assign(r.xzy),r.xy.mulAssign(-1)}).ElseIf(t.equal(5),()=>{r.z.mulAssign(-1)}),r}).setLayout({name:"getDirection",type:"vec3",inputs:[{name:"uv",type:"vec2"},{name:"face",type:"float"}]}),mg=B(([e,t,o,r,s,i])=>{const n=R(o),a=W(t),l=Xt(fg(n),$i,i),u=je(l),c=N2(l),d=W(po(e,a,c,r,s,i)).toVar();return x1(u.notEqual(0),()=>{const h=W(po(e,a,c.add(1),r,s,i)).toVar();d.assign(B1(d,h,u))}),d}),po=B(([e,t,o,r,s,i])=>{const n=R(o).toVar(),a=W(t),l=R(dg(a)).toVar(),u=R(N0(m7.sub(n),0)).toVar();n.assign(N0(n,m7));const c=R(lo(n)).toVar(),d=n1(hg(a,l).mul(c.sub(2)).add(1)).toVar();return x1(l.greaterThan(2),()=>{d.y.addAssign(c),l.subAssign(3)}),d.x.addAssign(l.mul(c)),d.x.addAssign(u.mul(d1(3,cg))),d.y.addAssign(d1(4,lo(i).sub(c))),d.x.mulAssign(r),d.y.mulAssign(s),e.sample(d).grad(n1(),n1())}),Os=B(({envMap:e,mipInt:t,outputDirection:o,theta:r,axis:s,CUBEUV_TEXEL_WIDTH:i,CUBEUV_TEXEL_HEIGHT:n,CUBEUV_MAX_MIP:a})=>{const l=Xe(r),u=o.mul(l).add(s.cross(o).mul(Z0(r))).add(s.mul(s.dot(o).mul(l.oneMinus())));return po(e,u,t,i,n,a)}),gg=B(({n:e,latitudinal:t,poleAxis:o,outputDirection:r,weights:s,samples:i,dTheta:n,mipInt:a,envMap:l,CUBEUV_TEXEL_WIDTH:u,CUBEUV_TEXEL_HEIGHT:c,CUBEUV_MAX_MIP:d})=>{const h=W(H0(t,o,T2(o,r))).toVar();x1(h.equal(W(0)),()=>{h.assign(W(r.z,0,r.x.negate()))}),h.assign(ce(h));const f=W().toVar();return f.addAssign(s.element(0).mul(Os({theta:0,axis:h,outputDirection:r,mipInt:a,envMap:l,CUBEUV_TEXEL_WIDTH:u,CUBEUV_TEXEL_HEIGHT:c,CUBEUV_MAX_MIP:d}))),ie({start:Z1(1),end:e},({i:p})=>{x1(p.greaterThanEqual(i),()=>{rm()});const m=R(n.mul(R(p))).toVar();f.addAssign(s.element(p).mul(Os({theta:m.mul(-1),axis:h,outputDirection:r,mipInt:a,envMap:l,CUBEUV_TEXEL_WIDTH:u,CUBEUV_TEXEL_HEIGHT:c,CUBEUV_MAX_MIP:d}))),f.addAssign(s.element(p).mul(Os({theta:m,axis:h,outputDirection:r,mipInt:a,envMap:l,CUBEUV_TEXEL_WIDTH:u,CUBEUV_TEXEL_HEIGHT:c,CUBEUV_MAX_MIP:d})))}),Y(f,1)}),vg=B(([e])=>{const t=m1(e).toVar();return t.assign(t.shiftLeft(m1(16)).bitOr(t.shiftRight(m1(16)))),t.assign(t.bitAnd(m1(1431655765)).shiftLeft(m1(1)).bitOr(t.bitAnd(m1(2863311530)).shiftRight(m1(1)))),t.assign(t.bitAnd(m1(858993459)).shiftLeft(m1(2)).bitOr(t.bitAnd(m1(3435973836)).shiftRight(m1(2)))),t.assign(t.bitAnd(m1(252645135)).shiftLeft(m1(4)).bitOr(t.bitAnd(m1(4042322160)).shiftRight(m1(4)))),t.assign(t.bitAnd(m1(16711935)).shiftLeft(m1(8)).bitOr(t.bitAnd(m1(4278255360)).shiftRight(m1(8)))),R(t).mul(23283064365386963e-26)}),bg=B(([e,t])=>n1(R(e).div(R(t)),vg(e))),Ng=B(([e,t,o])=>{const r=o.mul(o).toConst(),s=W(1,0,0).toConst(),i=T2(t,s).toConst(),n=Pt(e.x).toConst(),a=d1(2,3.14159265359).mul(e.y).toConst(),l=n.mul(Xe(a)).toConst(),u=n.mul(Z0(a)).toVar(),c=d1(.5,t.z.add(1)).toConst();u.assign(c.oneMinus().mul(Pt(l.mul(l).oneMinus())).add(c.mul(u)));const d=s.mul(l).add(i.mul(u)).add(t.mul(Pt(N0(0,l.mul(l).add(u.mul(u)).oneMinus()))));return ce(W(r.mul(d.x),r.mul(d.y),N0(0,d.z)))}),yg=B(({roughness:e,mipInt:t,envMap:o,N_immutable:r,GGX_SAMPLES:s,CUBEUV_TEXEL_WIDTH:i,CUBEUV_TEXEL_HEIGHT:n,CUBEUV_MAX_MIP:a})=>{const l=W(r).toVar(),u=W(0).toVar(),c=R(0).toVar();return x1(e.lessThan(.001),()=>{u.assign(po(o,l,t,i,n,a))}).Else(()=>{const d=H0(q0(l.z).lessThan(.999),W(0,0,1),W(1,0,0)),h=ce(T2(d,l)).toVar(),f=T2(l,h).toVar();ie({start:m1(0),end:s},({i:p})=>{const m=bg(p,s),b=Ng(m,W(0,0,1),e),N=ce(h.mul(b.x).add(f.mul(b.y)).add(l.mul(b.z))),v=ce(N.mul(S2(l,N).mul(2)).sub(l)),y=N0(S2(l,v),0);x1(y.greaterThan(0),()=>{const T=po(o,v,t,i,n,a);u.addAssign(T.mul(y)),c.addAssign(y)})}),x1(c.greaterThan(0),()=>{u.assign(u.div(c))})}),Y(u,1)}),Et=4,g7=[.125,.215,.35,.446,.526,.582],e3=20,Mg=512,B3=new vo(-1,1,1,-1,0,1),xg=new y2(90,1),v7=new fe,Fs=null,Ps=0,Ds=0,Sg=new G,kr=new WeakMap,Tg=[3,1,5,0,4,2],ks=pg(L2(),le("faceIndex")).normalize(),ts=W(ks.x,ks.y,ks.z),wg=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._sizeLods=[],this._sigmas=[],this._lodMeshes=[],this._blurMaterial=null,this._ggxMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._backgroundBox=null}get _hasInitialized(){return this._renderer.hasInitialized()}fromScene(e,t=0,o=.1,r=100,s={}){const{size:i=256,position:n=Sg,renderTarget:a=null}=s;if(this._setSize(i),this._hasInitialized===!1)throw new Error('THREE.PMREMGenerator: .fromScene() called before the backend is initialized. Use "await renderer.init();" before using this method.');Fs=this._renderer.getRenderTarget(),Ps=this._renderer.getActiveCubeFace(),Ds=this._renderer.getActiveMipmapLevel();const l=a||this._allocateTarget(!0);return this._init(l),this._sceneToCubeUV(e,o,r,l,n),t>0&&this._blur(l,0,0,t),this._applyPMREM(l),this._cleanup(l),l}async fromSceneAsync(e,t=0,o=.1,r=100,s={}){return z1('PMREMGenerator: ".fromSceneAsync()" is deprecated. Use "await renderer.init()" instead.'),await this._renderer.init(),this.fromScene(e,t,o,r,s)}fromEquirectangular(e,t=null){if(this._hasInitialized===!1)throw new Error('THREE.PMREMGenerator: .fromEquirectangular() called before the backend is initialized. Use "await renderer.init();" before using this method.');return this._fromTexture(e,t)}async fromEquirectangularAsync(e,t=null){return z1('PMREMGenerator: ".fromEquirectangularAsync()" is deprecated. Use "await renderer.init()" instead.'),await this._renderer.init(),this._fromTexture(e,t)}fromCubemap(e,t=null){if(this._hasInitialized===!1)throw new Error('THREE.PMREMGenerator: .fromCubemap() called before the backend is initialized. Use "await renderer.init();" before using this method.');return this._fromTexture(e,t)}async fromCubemapAsync(e,t=null){return z1('PMREMGenerator: ".fromCubemapAsync()" is deprecated. Use "await renderer.init()" instead.'),await this._renderer.init(),this._fromTexture(e,t)}async compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=N7(),await this._compileMaterial(this._cubemapMaterial))}async compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=y7(),await this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSizeFromTexture(e){e.mapping===301||e.mapping===302?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4)}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._ggxMaterial!==null&&this._ggxMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?b:0,b,b),l.render(e,i)}l.autoClear=u,e.background=f}_textureToCubeUV(e,t){const o=this._renderer,r=e.mapping===301||e.mapping===302;r?this._cubemapMaterial===null&&(this._cubemapMaterial=N7(e)):this._equirectMaterial===null&&(this._equirectMaterial=y7(e));const s=r?this._cubemapMaterial:this._equirectMaterial;s.fragmentNode.value=e;const i=this._lodMeshes[0];i.material=s;const n=this._cubeSize;this._setViewport(t,0,0,3*n,2*n),o.setRenderTarget(t),o.render(i,B3)}_applyPMREM(e){const t=this._renderer,o=t.autoClear;t.autoClear=!1;const r=this._lodMeshes.length;for(let s=1;sd-Et?o-d+Et:0),p=4*(this._cubeSize-h);e.texture.frame=(e.texture.frame||0)+1,a.envMap.value=e.texture,a.roughness.value=c,a.mipInt.value=d-t,this._setViewport(s,f,p,3*h,2*h),r.setRenderTarget(s),r.render(n,B3),s.texture.frame=(s.texture.frame||0)+1,a.envMap.value=s.texture,a.roughness.value=0,a.mipInt.value=d-o,this._setViewport(e,f,p,3*h,2*h),r.setRenderTarget(e),r.render(n,B3)}_blur(e,t,o,r,s){const i=this._pingPongRenderTarget;this._halfBlur(e,i,t,o,r,"latitudinal",s),this._halfBlur(i,e,o,o,r,"longitudinal",s)}_halfBlur(e,t,o,r,s,i,n){const a=this._renderer,l=this._blurMaterial;i!=="latitudinal"&&i!=="longitudinal"&&I("blur direction must be either latitudinal or longitudinal!");const u=3,c=this._lodMeshes[r];c.material=l;const d=kr.get(l),h=this._sizeLods[o]-1,f=isFinite(s)?Math.PI/(2*h):2*Math.PI/39,p=s/f,m=isFinite(s)?1+Math.floor(u*p):e3;m>e3&&j(`sigmaRadians, ${s}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${e3}`);const b=[];let N=0;for(let S=0;Sv-Et?r-v+Et:0),x=4*(this._cubeSize-y);this._setViewport(t,T,x,3*y,2*y),a.setRenderTarget(t),a.render(c,B3)}_setViewport(e,t,o,r,s){this._renderer.isWebGLRenderer?(e.viewport.set(t,e.height-s-o,r,s),e.scissor.set(t,e.height-s-o,r,s)):(e.viewport.set(t,o,r,s),e.scissor.set(t,o,r,s))}};function _g(e){const t=[],o=[],r=[];let s=e;const i=e-Et+1+g7.length;for(let n=0;ne-Et?l=g7[n-e+Et-1]:n===0&&(l=0),o.push(l);const u=1/(a-2),c=-u,d=1+u,h=[c,c,d,c,d,d,c,c,d,d,c,d],f=6,p=3,m=2,b=1,N=new Float32Array(108),v=new Float32Array(72),y=new Float32Array(36);for(let x=0;x2?0:-1,w=[S,C,0,S+2/3,C,0,S+2/3,C+1,0,S,C,0,S+2/3,C+1,0,S,C+1,0],L=Tg[x];N.set(w,18*L),v.set(h,12*L);const F=[L,L,L,L,L,L];y.set(F,6*L)}const T=new a3;T.setAttribute("position",new m2(N,p)),T.setAttribute("uv",new m2(v,m)),T.setAttribute("faceIndex",new m2(y,b)),r.push(new He(T,null)),s>Et&&s--}return{lodMeshes:r,sizeLods:t,sigmas:o}}function b7(e,t,o){const r=new zt(e,t,{magFilter:H1,minFilter:H1,generateMipmaps:!1,type:ne,format:Ve,colorSpace:on,depthBuffer:o});return r.texture.mapping=306,r.texture.name="PMREM.cubeUv",r.texture.isPMREMTexture=!0,r.scissorTest=!0,r}function os(e){const t=new s0;return t.depthTest=!1,t.depthWrite=!1,t.blending=0,t.name=`PMREM_${e}`,t}function Ag(e,t,o){const r=P0(new Array(e3).fill(0)),s=o1(new G(0,1,0)),i=o1(0),n=R(e3),a=o1(0),l=o1(1),u=P1(),c=o1(0),d=R(1/t),h=R(1/o),f=R(e),p={n,latitudinal:a,weights:r,poleAxis:s,outputDirection:ts,dTheta:i,samples:l,envMap:u,mipInt:c,CUBEUV_TEXEL_WIDTH:d,CUBEUV_TEXEL_HEIGHT:h,CUBEUV_MAX_MIP:f},m=os("blur");return m.fragmentNode=gg({...p,latitudinal:a.equal(1)}),kr.set(m,p),m}function Cg(e,t,o){const r={envMap:P1(),roughness:o1(0),mipInt:o1(0),CUBEUV_TEXEL_WIDTH:R(1/t),CUBEUV_TEXEL_HEIGHT:R(1/o),CUBEUV_MAX_MIP:R(e)},s=os("ggx");return s.fragmentNode=yg({...r,N_immutable:ts,GGX_SAMPLES:m1(Mg)}),kr.set(s,r),s}function N7(e){const t=os("cubemap");return t.fragmentNode=D0(e,ts),t}function y7(e){const t=os("equirect");return t.fragmentNode=P1(e,J8(ts),0),t}var M7=new WeakMap;function Rg(e){const t=Math.log2(e)-2,o=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,t),112)),texelHeight:o,maxMip:t}}function Bg(e,t,o){const r=Eg(t);let s=r.get(e);if((s!==void 0?s.pmremVersion:-1)!==e.pmremVersion){const i=e.image;if(e.isCubeTexture)if(Lg(i))s=o.fromCubemap(e,s);else return null;else if(Ug(i))s=o.fromEquirectangular(e,s);else return null;if(s.pmremVersion=e.pmremVersion,r.has(e)===!1){const n=()=>{e.removeEventListener("dispose",n);const a=r.get(e);a!==void 0&&(a.dispose(),r.delete(e))};e.addEventListener("dispose",n)}r.set(e,s)}return s.texture}function Eg(e){let t=M7.get(e);return t===void 0&&(t=new WeakMap,M7.set(e,t)),t}var Wg=class extends n0{static get type(){return"PMREMNode"}constructor(e,t=null,o=null){super("vec3"),this._value=e,this._pmrem=null,this.uvNode=t,this.levelNode=o,this._generator=null;const r=new bo;r.isRenderTargetTexture=!0,this._texture=P1(r),this._width=o1(0),this._height=o1(0),this._maxMip=o1(0),this.updateBeforeType=u1.RENDER}set value(e){this._value=e,this._pmrem=null}get value(){return this._value}updateFromTexture(e){const t=Rg(e.image.height);this._texture.value=e,this._width.value=t.texelWidth,this._height.value=t.texelHeight,this._maxMip.value=t.maxMip}updateBefore(e){let t=this._pmrem;const o=t?t.pmremVersion:-1,r=this._value;o!==r.pmremVersion&&(r.isPMREMTexture===!0||r.mapping===306?t=r:t=Bg(r,e.renderer,this._generator),t!==null&&(this._pmrem=t,this.updateFromTexture(t)))}setup(e){this._generator===null&&(this._generator=new wg(e.renderer)),this.updateBefore(e);let t=this.uvNode;t===null&&e.context.getUV&&(t=e.context.getUV(this,e)),t=this._pmrem.isRenderTargetTexture?Ui.mul(W(t.x,t.y.negate(),t.z)):Ui.mul(t);let o=this.levelNode;return o===null&&e.context.getTextureLevel&&(o=e.context.getTextureLevel(this)),mg(this._texture,t,o,this._width,this._height,this._maxMip)}dispose(){super.dispose(),this._generator!==null&&this._generator.dispose()}};function Lg(e){if(e==null)return!1;let t=0;const o=6;for(let r=0;r0}var l5=$1(Wg).setParameterLength(1,3),x7=new WeakMap,Og=class extends M3{static get type(){return"EnvironmentNode"}constructor(e=null){super(),this.envNode=e}setup(e){const{material:t}=e;let o=this.envNode;if(o.isTextureNode||o.isMaterialReferenceNode){const u=o.isTextureNode?o.value:t[o.property],c=this._getPMREMNodeCache(e.renderer);let d=c.get(u);d===void 0&&(d=l5(u),c.set(u,d)),o=d}const r=t.useAnisotropy===!0||t.anisotropy>0?lp:y1,s=o.context(S7(ut,r)).mul(As),i=o.context(Fg(y3)).mul(Math.PI).mul(As),n=eo(s),a=eo(i);e.context.radiance.addAssign(n),e.context.iblIrradiance.addAssign(a);const l=e.context.lightingModel.clearcoatRadiance;if(l){const u=o.context(S7(K3,u2)).mul(As),c=eo(u);l.addAssign(c)}}_getPMREMNodeCache(e){let t=x7.get(e);return t===void 0&&(t=new WeakMap,x7.set(e,t)),t}},S7=(e,t)=>{let o=null;return{getUV:()=>(o===null&&(o=k1.negate().reflect(t),o=t8(e).mix(o,t).normalize(),o=o.transformDirection(Wn)),o),getTextureLevel:()=>e}},Fg=e=>({getUV:()=>e,getTextureLevel:()=>R(1)}),Pg=new P9,u5=class extends s0{static get type(){return"MeshStandardNodeMaterial"}constructor(e){super(),this.isMeshStandardNodeMaterial=!0,this.lights=!0,this.emissiveNode=null,this.metalnessNode=null,this.roughnessNode=null,this.setDefaultValues(Pg),this.setValues(e)}setupEnvironment(e){let t=super.setupEnvironment(e);return t===null&&e.environmentNode&&(t=e.environmentNode),t?new Og(t):null}setupLightingModel(){return new a5}setupSpecular(){const e=B1(W(.04),U1.rgb,Rt);x2.assign(W(.04)),K2.assign(e),Y2.assign(1)}setupVariants(){const e=this.metalnessNode?R(this.metalnessNode):xp;Rt.assign(e);let t=this.roughnessNode?R(this.roughnessNode):Mp;t=o5({roughness:t}),ut.assign(t),this.setupSpecular(),j2.assign(U1.rgb.mul(e.oneMinus()))}},Dg=new dl,kg=class extends u5{static get type(){return"MeshPhysicalNodeMaterial"}constructor(e){super(),this.isMeshPhysicalNodeMaterial=!0,this.clearcoatNode=null,this.clearcoatRoughnessNode=null,this.clearcoatNormalNode=null,this.sheenNode=null,this.sheenRoughnessNode=null,this.iridescenceNode=null,this.iridescenceIORNode=null,this.iridescenceThicknessNode=null,this.specularIntensityNode=null,this.specularColorNode=null,this.iorNode=null,this.transmissionNode=null,this.thicknessNode=null,this.attenuationDistanceNode=null,this.attenuationColorNode=null,this.dispersionNode=null,this.anisotropyNode=null,this.setDefaultValues(Dg),this.setValues(e)}get useClearcoat(){return this.clearcoat>0||this.clearcoatNode!==null}get useIridescence(){return this.iridescence>0||this.iridescenceNode!==null}get useSheen(){return this.sheen>0||this.sheenNode!==null}get useAnisotropy(){return this.anisotropy>0||this.anisotropyNode!==null}get useTransmission(){return this.transmission>0||this.transmissionNode!==null}get useDispersion(){return this.dispersion>0||this.dispersionNode!==null}setupSpecular(){const e=this.iorNode?R(this.iorNode):Fp;yr.assign(e),x2.assign(u3(e8(yr.sub(1).div(yr.add(1))).mul(yp),W(1)).mul(Va)),K2.assign(B1(x2,U1.rgb,Rt)),Y2.assign(B1(Va,1,Rt))}setupLightingModel(){return new a5(this.useClearcoat,this.useSheen,this.useIridescence,this.useAnisotropy,this.useTransmission,this.useDispersion)}setupVariants(e){if(super.setupVariants(e),this.useClearcoat){const t=this.clearcoatNode?R(this.clearcoatNode):Tp,o=this.clearcoatRoughnessNode?R(this.clearcoatRoughnessNode):wp;_i.assign(t),K3.assign(o5({roughness:o}))}if(this.useSheen){const t=this.sheenNode?W(this.sheenNode):Cp,o=this.sheenRoughnessNode?R(this.sheenRoughnessNode):Rp;te.assign(t),n2.assign(o)}if(this.useIridescence){const t=this.iridescenceNode?R(this.iridescenceNode):Ep,o=this.iridescenceIORNode?R(this.iridescenceIORNode):Wp,r=this.iridescenceThicknessNode?R(this.iridescenceThicknessNode):Lp;yn.assign(t),Ai.assign(o),Ci.assign(r)}if(this.useAnisotropy){const t=(this.anisotropyNode?n1(this.anisotropyNode):Bp).toVar();t2.assign(t.length()),x1(t2.equal(0),()=>{t.assign(n1(1,0))}).Else(()=>{t.divAssign(n1(t2)),t2.assign(t2.saturate())}),Ri.assign(t2.pow2().mix(ut.pow2(),1)),Nr.assign(V3[0].mul(t.x).add(V3[1].mul(t.y))),r3.assign(V3[1].mul(t.x).sub(V3[0].mul(t.y)))}if(this.useTransmission){const t=this.transmissionNode?R(this.transmissionNode):Up,o=this.thicknessNode?R(this.thicknessNode):Op,r=this.attenuationDistanceNode?R(this.attenuationDistanceNode):Pp,s=this.attenuationColorNode?W(this.attenuationColorNode):Dp;if(Ei.assign(t),X6.assign(o),I6.assign(r),G6.assign(s),this.useDispersion){const i=this.dispersionNode?R(this.dispersionNode):Xp;z6.assign(i)}}}setupClearcoatNormal(){return this.clearcoatNormalNode?W(this.clearcoatNormalNode):_p}setup(e){e.context.setupClearcoatNormal=()=>i3(this.setupClearcoatNormal(e),"NORMAL","vec3"),super.setup(e)}},Xg=B(({normal:e,lightDirection:t,builder:o})=>{const r=e.dot(t),s=n1(r.mul(.5).add(.5),0);if(o.material.gradientMap){const i=At("gradientMap","texture").context({getUV:()=>s});return W(i.r)}else{const i=s.fwidth().mul(.5);return B1(W(.7),W(1),Ce(R(.7).sub(i.x),R(.7).add(i.x),s.x))}}),Ig=class extends Yr{direct({lightDirection:e,lightColor:t,reflectedLight:o},r){const s=Xg({normal:y8,lightDirection:e,builder:r}).mul(t);o.directDiffuse.addAssign(s.mul(h3({diffuseColor:U1.rgb})))}indirect(e){const{ambientOcclusion:t,irradiance:o,reflectedLight:r}=e.context;r.indirectDiffuse.addAssign(o.mul(h3({diffuseColor:U1}))),r.indirectDiffuse.mulAssign(t)}},Gg=new au,zg=class extends s0{static get type(){return"MeshToonNodeMaterial"}constructor(e){super(),this.isMeshToonNodeMaterial=!0,this.lights=!0,this.setDefaultValues(Gg),this.setValues(e)}setupLightingModel(){return new Ig}},$g=B(()=>{const e=W(k1.z,0,k1.x.negate()).normalize(),t=k1.cross(e);return n1(e.dot(y1),t.dot(y1)).mul(.495).add(.5)}).once(["NORMAL","VERTEX"])().toVar("matcapUV"),Vg=new du,Qg=class extends s0{static get type(){return"MeshMatcapNodeMaterial"}constructor(e){super(),this.isMeshMatcapNodeMaterial=!0,this.setDefaultValues(Vg),this.setValues(e)}setupVariants(e){const t=$g;let o;e.material.matcap?o=At("matcap","texture").context({getUV:()=>t}):o=W(B1(.2,.8,t.y)),U1.rgb.mulAssign(o.rgb)}},Zg=class extends n0{static get type(){return"RotateNode"}constructor(e,t){super(),this.positionNode=e,this.rotationNode=t}generateNodeType(e){return this.positionNode.getNodeType(e)}setup(e){const{rotationNode:t,positionNode:o}=this;if(this.getNodeType(e)==="vec2"){const r=t.cos(),s=t.sin();return Nn(r,s,s.negate(),r).mul(o)}else{const r=t,s=b2(Y(1,0,0,0),Y(0,Xe(r.x),Z0(r.x).negate(),0),Y(0,Z0(r.x),Xe(r.x),0),Y(0,0,0,1)),i=b2(Y(Xe(r.y),0,Z0(r.y),0),Y(0,1,0,0),Y(Z0(r.y).negate(),0,Xe(r.y),0),Y(0,0,0,1)),n=b2(Y(Xe(r.z),Z0(r.z).negate(),0,0),Y(Z0(r.z),Xe(r.z),0,0),Y(0,0,1,0),Y(0,0,0,1));return s.mul(i).mul(n).mul(Y(o,1)).xyz}}},c5=$1(Zg).setParameterLength(2),qg=new Q9,d5=class extends s0{static get type(){return"SpriteNodeMaterial"}constructor(e){super(),this.isSpriteNodeMaterial=!0,this._useSizeAttenuation=!0,this.positionNode=null,this.rotationNode=null,this.scaleNode=null,this.transparent=!0,this.setDefaultValues(qg),this.setValues(e)}setupPositionView(e){const{object:t,camera:o}=e,{positionNode:r,rotationNode:s,scaleNode:i,sizeAttenuation:n}=this,a=_2.mul(W(r||0));let l=n1(w2[0].xyz.length(),w2[1].xyz.length());i!==null&&(l=l.mul(n1(i))),o.isPerspectiveCamera&&n===!1&&(l=l.mul(a.z.negate()));let u=R0.xy;if(t.center&&t.center.isVector2===!0){const h=sf("center","vec2",t);u=u.sub(h.sub(.5))}u=u.mul(l);const c=R(s||Ap),d=c5(u,c);return Y(a.xy.add(d),a.zw)}get sizeAttenuation(){return this._useSizeAttenuation}set sizeAttenuation(e){this._useSizeAttenuation!==e&&(this._useSizeAttenuation=e,this.needsUpdate=!0)}},Hg=new G9,Jg=new f1,jg=class extends d5{static get type(){return"PointsNodeMaterial"}constructor(e){super(),this.sizeNode=null,this.isPointsNodeMaterial=!0,this.setDefaultValues(Hg),this.setValues(e)}setupPositionView(){const{positionNode:e}=this;return _2.mul(W(e||u0)).xyz}setupVertexSprite(e){const{material:t,camera:o}=e,{rotationNode:r,scaleNode:s,sizeNode:i,sizeAttenuation:n}=this;let a=super.setupVertex(e);if(t.isNodeMaterial!==!0)return a;let l=i!==null?n1(i):kp;l=l.mul(v8),o.isPerspectiveCamera&&n===!0&&(l=l.mul(Kg.div(r0.z.negate()))),s&&s.isNode&&(l=l.mul(n1(s)));let u=R0.xy;if(r&&r.isNode){const c=R(r);u=c5(u,c)}return u=u.mul(l),u=u.div(Of.div(2)),u=u.mul(a.w),a=a.add(Y(u,0,0)),a}setupVertex(e){return e.object.isPoints?super.setupVertex(e):this.setupVertexSprite(e)}get alphaToCoverage(){return this._useAlphaToCoverage}set alphaToCoverage(e){this._useAlphaToCoverage!==e&&(this._useAlphaToCoverage=e,this.needsUpdate=!0)}},Kg=o1(1).onFrameUpdate(function({renderer:e}){const t=e.getSize(Jg);this.value=.5*t.y}),Yg=class extends Yr{constructor(){super(),this.shadowNode=R(1).toVar("shadowMask")}direct({lightNode:e}){e.shadowNode!==null&&this.shadowNode.mulAssign(e.shadowNode)}finish({context:e}){U1.a.mulAssign(this.shadowNode.oneMinus()),e.outgoingLight.rgb.assign(U1.rgb)}},ev=new el,tv=class extends s0{static get type(){return"ShadowNodeMaterial"}constructor(e){super(),this.isShadowNodeMaterial=!0,this.lights=!0,this.transparent=!0,this.setDefaultValues(ev),this.setValues(e)}setupLightingModel(){return new Yg}},Ow=$t("vec3"),Fw=$t("vec3"),Pw=$t("vec3"),ov=class{constructor(e,t,o){this.renderer=e,this.nodes=t,this.info=o,this._context=typeof self<"u"?self:null,this._animationLoop=null,this._requestId=null}start(){const e=(t,o)=>{this._requestId=this._context.requestAnimationFrame(e),this.info.autoReset===!0&&this.info.reset(),this.nodes.nodeFrame.update(),this.info.frame=this.nodes.nodeFrame.frameId,this.renderer._inspector.begin(),this._animationLoop!==null&&this._animationLoop(t,o),this.renderer._inspector.finish()};e()}stop(){this._context!==null&&this._context.cancelAnimationFrame(this._requestId),this._requestId=null}getAnimationLoop(){return this._animationLoop}setAnimationLoop(e){this._animationLoop=e}getContext(){return this._context}setContext(e){this._context=e}dispose(){this.stop()}},Gt=class{constructor(){this.weakMaps={}}_getWeakMap(e){const t=e.length;let o=this.weakMaps[t];return o===void 0&&(o=new WeakMap,this.weakMaps[t]=o),o}get(e){let t=this._getWeakMap(e);for(let o=0;o{this.dispose()},this.onGeometryDispose=()=>{this.attributes=null,this.attributesId=null},this.material.addEventListener("dispose",this.onMaterialDispose),this.geometry.addEventListener("dispose",this.onGeometryDispose),this._sourceMaterial!==null&&this._sourceMaterial.addEventListener("dispose",this.onMaterialDispose)}updateClipping(e){this.clippingContext=e}get clippingNeedsUpdate(){return this.clippingContext===null||this.clippingContext.cacheKey===this.clippingContextCacheKey?!1:(this.clippingContextCacheKey=this.clippingContext.cacheKey,!0)}get hardwareClippingPlanes(){return this.getNodeBuilderState().hardwareClipping===!0?this.clippingContext.unionClippingCount:0}getNodeBuilderState(){return this._nodeBuilderState||(this._nodeBuilderState=this._nodes.getForRender(this))}getMonitor(){return this._monitor||(this._monitor=this.getNodeBuilderState().observer)}getBindings(){return this._bindings||(this._bindings=this.getNodeBuilderState().createBindings())}getBindingGroup(e){for(const t of this.getBindings())if(t.name===e)return t}getIndex(){return this._geometries.getIndex(this)}getIndirect(){return this._geometries.getIndirect(this)}getIndirectOffset(){return this._geometries.getIndirectOffset(this)}getChainArray(){return[this.object,this.material,this.context,this.lightsNode]}setGeometry(e){this.geometry=e,this.attributes=null,this.attributesId=null}getAttributes(){if(this.attributes!==null)return this.attributes;const e=this.getNodeBuilderState().nodeAttributes,t=this.geometry,o=[],r=new Set,s={};for(const i of e){let n;if(i.node&&i.node.attribute?n=i.node.attribute:(n=t.getAttribute(i.name),n!==void 0&&(n.isInterleavedBufferAttribute?s[i.name]=n.data.uuid:s[i.name]=n.id)),n===void 0)continue;o.push(n);const a=n.isInterleavedBufferAttribute?n.data:n;r.add(a)}return this.attributes=o,this.attributesId=s,this.vertexBuffers=Array.from(r.values()),o}getVertexBuffers(){return this.vertexBuffers===null&&this.getAttributes(),this.vertexBuffers}getDrawParameters(){const{object:e,material:t,geometry:o,group:r,drawRange:s}=this,i=this.drawParams||(this.drawParams={vertexCount:0,firstVertex:0,instanceCount:0,firstInstance:0}),n=this.getIndex(),a=n!==null;let l=1;if(o.isInstancedBufferGeometry===!0?l=o.instanceCount:e.count!==void 0&&(l=Math.max(0,e.count)),l===0)return null;if(i.instanceCount=l,e.isBatchedMesh===!0)return i;let u=1;t.wireframe===!0&&!e.isPoints&&!e.isLineSegments&&!e.isLine&&!e.isLineLoop&&(u=2);let c=s.start*u,d=(s.start+s.count)*u;r!==null&&(c=Math.max(c,r.start*u),d=Math.min(d,(r.start+r.count)*u));const h=o.attributes.position;let f=1/0;a?f=n.count:h!=null&&(f=h.count),c=Math.max(c,0),d=Math.min(d,f);const p=d-c;return p<0||p===1/0?null:(i.vertexCount=p,i.firstVertex=c,i)}getGeometryCacheKey(){const{geometry:e}=this;let t="";for(const o of Object.keys(e.attributes).sort()){const r=e.attributes[o];t+=o+",",r.data&&(t+=r.data.stride+","),r.offset&&(t+=r.offset+","),r.itemSize&&(t+=r.itemSize+","),r.normalized&&(t+="n,")}for(const o of Object.keys(e.morphAttributes).sort()){const r=e.morphAttributes[o];t+="morph-"+o+",";for(let s=0,i=r.length;s1)&&(r+=e.uuid+","),r+=this.context.id+",",r+=e.receiveShadow+",",p3(r)}get needsGeometryUpdate(){if(this.geometry.id!==this.object.geometry.id)return!0;if(this.attributes!==null){const e=this.attributesId;for(const t in e){const o=this.geometry.getAttribute(t);if(o===void 0)return!0;const r=o.isInterleavedBufferAttribute?o.data.uuid:o.id;if(e[t]!==r)return!0}}return!1}get needsUpdate(){return this.initialNodesCacheKey!==this.getDynamicCacheKey()||this.clippingNeedsUpdate}getDynamicCacheKey(){let e=0;return this.material.isShadowPassMaterial!==!0&&(e=this._nodes.getCacheKey(this.scene,this.lightsNode)),this.camera.isArrayCamera&&(e=J3(e,this.camera.cameras.length)),this.object.receiveShadow&&(e=J3(e,1)),e=J3(e,this.renderer.contextNode.id,this.renderer.contextNode.version),e}getCacheKey(){return this.getMaterialCacheKey()+this.getDynamicCacheKey()}dispose(){this.material.removeEventListener("dispose",this.onMaterialDispose),this.geometry.removeEventListener("dispose",this.onGeometryDispose),this._sourceMaterial!==null&&this._sourceMaterial.removeEventListener("dispose",this.onMaterialDispose),this.onDispose()}},Fe=[],nv=class{constructor(e,t,o,r,s,i){this.renderer=e,this.nodes=t,this.geometries=o,this.pipelines=r,this.bindings=s,this.info=i,this.chainMaps={}}get(e,t,o,r,s,i,n,a){const l=this.getChainMap(a);Fe[0]=e,Fe[1]=t,Fe[2]=i,Fe[3]=s;let u=l.get(Fe);return u===void 0?(u=this.createRenderObject(this.nodes,this.geometries,this.renderer,e,t,o,r,s,i,n,a),l.set(Fe,u)):(u.camera=r,u.updateClipping(n),u.needsGeometryUpdate&&u.setGeometry(e.geometry),(u.version!==t.version||u.needsUpdate)&&(u.initialCacheKey!==u.getCacheKey()?(u.dispose(),u=this.get(e,t,o,r,s,i,n,a)):u.version=t.version)),Fe[0]=null,Fe[1]=null,Fe[2]=null,Fe[3]=null,u}getChainMap(e="default"){return this.chainMaps[e]||(this.chainMaps[e]=new Gt)}dispose(){this.chainMaps={}}createRenderObject(e,t,o,r,s,i,n,a,l,u,c){const d=this.getChainMap(c),h=new iv(e,t,o,r,s,i,n,a,l,u);return h.onDispose=()=>{this.pipelines.delete(h),this.bindings.deleteForRender(h),this.nodes.delete(h),d.delete(h.getChainArray())},h}},Vt=class{constructor(){this.data=new WeakMap}get(e){let t=this.data.get(e);return t===void 0&&(t={},this.data.set(e,t)),t}delete(e){let t=null;return this.data.has(e)&&(t=this.data.get(e),this.data.delete(e)),t}has(e){return this.data.has(e)}dispose(){this.data=new WeakMap}},ue={VERTEX:1,INDEX:2,STORAGE:3,INDIRECT:4},Ct=16,av=211,lv=212,uv=class extends Vt{constructor(e,t){super(),this.backend=e,this.info=t}delete(e){const t=super.delete(e);return t!==null&&(this.backend.destroyAttribute(e),this.info.destroyAttribute(e)),t}update(e,t){const o=this.get(e);if(o.version===void 0)t===ue.VERTEX?(this.backend.createAttribute(e),this.info.createAttribute(e)):t===ue.INDEX?(this.backend.createIndexAttribute(e),this.info.createIndexAttribute(e)):t===ue.STORAGE?(this.backend.createStorageAttribute(e),this.info.createStorageAttribute(e)):t===ue.INDIRECT&&(this.backend.createIndirectStorageAttribute(e),this.info.createIndirectStorageAttribute(e)),o.version=this._getBufferAttribute(e).version;else{const r=this._getBufferAttribute(e);(o.version=65535?bl:J9)(t,1);return s.version=h5(e),s.__id=f5(e),s}var cv=class extends Vt{constructor(e,t){super(),this.attributes=e,this.info=t,this.wireframes=new WeakMap,this.attributeCall=new WeakMap,this._geometryDisposeListeners=new Map}has(e){const t=e.geometry;return super.has(t)&&this.get(t).initialized===!0}updateForRender(e){this.has(e)===!1&&this.initGeometry(e),this.updateAttributes(e)}initGeometry(e){const t=e.geometry,o=this.get(t);o.initialized=!0,this.info.memory.geometries++;const r=()=>{this.info.memory.geometries--;const s=t.index,i=e.getAttributes();s!==null&&this.attributes.delete(s);for(const a of i)this.attributes.delete(a);const n=this.wireframes.get(t);n!==void 0&&this.attributes.delete(n),t.removeEventListener("dispose",r),this._geometryDisposeListeners.delete(t)};t.addEventListener("dispose",r),this._geometryDisposeListeners.set(t,r)}updateAttributes(e){const t=e.getAttributes();for(const s of t)s.isStorageBufferAttribute||s.isStorageInstancedBufferAttribute?this.updateAttribute(s,ue.STORAGE):this.updateAttribute(s,ue.VERTEX);const o=this.getIndex(e);o!==null&&this.updateAttribute(o,ue.INDEX);const r=e.geometry.indirect;r!==null&&this.updateAttribute(r,ue.INDIRECT)}updateAttribute(e,t){const o=this.info.render.calls;e.isInterleavedBufferAttribute?this.attributeCall.get(e)===void 0?(this.attributes.update(e,t),this.attributeCall.set(e,o)):this.attributeCall.get(e.data)!==o&&(this.attributes.update(e,t),this.attributeCall.set(e.data,o),this.attributeCall.set(e,o)):this.attributeCall.get(e)!==o&&(this.attributes.update(e,t),this.attributeCall.set(e,o))}getIndirect(e){return e.geometry.indirect}getIndirectOffset(e){return e.geometry.indirectOffset}getIndex(e){const{geometry:t,material:o}=e;let r=t.index;if(o.wireframe===!0){const s=this.wireframes;let i=s.get(t);i===void 0?(i=w7(t),s.set(t,i)):(i.version!==h5(t)||i.__id!==f5(t))&&(this.attributes.delete(i),i=w7(t),s.set(t,i)),r=i}return r}dispose(){for(const[e,t]of this._geometryDisposeListeners.entries())e.removeEventListener("dispose",t);this._geometryDisposeListeners.clear()}},dv=class{constructor(){this.autoReset=!0,this.frame=0,this.calls=0,this.render={calls:0,frameCalls:0,drawCalls:0,triangles:0,points:0,lines:0,timestamp:0},this.compute={calls:0,frameCalls:0,timestamp:0},this.memory={attributes:0,attributesSize:0,geometries:0,indexAttributes:0,indexAttributesSize:0,indirectStorageAttributes:0,indirectStorageAttributesSize:0,programs:0,programsSize:0,readbackBuffers:0,readbackBuffersSize:0,renderTargets:0,storageAttributes:0,storageAttributesSize:0,textures:0,texturesSize:0,uniformBuffers:0,uniformBuffersSize:0,total:0},this.memoryMap=new Map}update(e,t,o){this.render.drawCalls++,e.isMesh||e.isSprite?this.render.triangles+=o*(t/3):e.isPoints?this.render.points+=o*t:e.isLineSegments?this.render.lines+=o*(t/2):e.isLine?this.render.lines+=o*(t-1):I("WebGPUInfo: Unknown object type.")}reset(){this.render.drawCalls=0,this.render.frameCalls=0,this.compute.frameCalls=0,this.render.triangles=0,this.render.points=0,this.render.lines=0}dispose(){this.reset(),this.calls=0,this.render.calls=0,this.compute.calls=0,this.render.timestamp=0,this.compute.timestamp=0;for(const e in this.memory)this.memory[e]=0;this.memoryMap.clear()}createTexture(e){const t=this._getTextureMemorySize(e);this.memoryMap.set(e,t),this.memory.textures++,this.memory.total+=t,this.memory.texturesSize+=t}destroyTexture(e){const t=this.memoryMap.get(e)||0;this.memoryMap.delete(e),this.memory.textures--,this.memory.total-=t,this.memory.texturesSize-=t}_createAttribute(e,t){const o=this._getAttributeMemorySize(e);this.memoryMap.set(e,{size:o,type:t}),this.memory[t]++,this.memory.total+=o,this.memory[t+"Size"]+=o}createAttribute(e){this._createAttribute(e,"attributes")}createIndexAttribute(e){this._createAttribute(e,"indexAttributes")}createStorageAttribute(e){this._createAttribute(e,"storageAttributes")}createIndirectStorageAttribute(e){this._createAttribute(e,"indirectStorageAttributes")}destroyAttribute(e){const t=this.memoryMap.get(e);t&&(this.memoryMap.delete(e),this.memory[t.type]--,this.memory.total-=t.size,this.memory[t.type+"Size"]-=t.size)}createReadbackBuffer(e){const t=e.maxByteLength;this.memoryMap.set(e,{size:t,type:"readbackBuffers"}),this.memory.readbackBuffers++,this.memory.total+=t,this.memory.readbackBuffersSize+=t}destroyReadbackBuffer(e){const{size:t}=this.memoryMap.get(e);this.memoryMap.delete(e),this.memory.readbackBuffers--,this.memory.total-=t,this.memory.readbackBuffersSize-=t}createUniformBuffer(e){const t=e.byteLength;this.memoryMap.set(e,{size:t,type:"uniformBuffers"}),this.memory.uniformBuffers++,this.memory.total+=t,this.memory.uniformBuffersSize+=t}destroyUniformBuffer(e){const t=this.memoryMap.get(e);t&&(this.memoryMap.delete(e),this.memory.uniformBuffers--,this.memory.total-=t.size,this.memory.uniformBuffersSize-=t.size)}createProgram(e){const t=e.code.length;this.memoryMap.set(e,t),this.memory.programs++,this.memory.total+=t,this.memory.programsSize+=t}destroyProgram(e){const t=this.memoryMap.get(e)||0;this.memoryMap.delete(e),this.memory.programs--,this.memory.total-=t,this.memory.programsSize-=t}_getTextureMemorySize(e){if(e.isCompressedTexture)return 1;let t=1;e.type===1010||e.type===1009?t=1:e.type===1011||e.type===1012||e.type===1016?t=2:(e.type===1013||e.type===1014||e.type===1015)&&(t=4);let o=4;e.format===1021||e.format===1028||e.format===1029||e.format===1026||e.format===1027?o=1:e.format===1030||e.format===1031?o=2:(e.format===1022||e.format===1032)&&(o=3);let r=t*o;e.type===1017||e.type===1018?r=2:(e.type===1020||e.type===35902||e.type===35899)&&(r=4);const s=e.width||1,i=e.height||1,n=e.isCubeTexture?6:e.depth||1;let a=s*i*n*r;const l=e.mipmaps;if(l&&l.length>0){let u=0;for(let c=0;c>c),f=d.height||Math.max(1,i>>c);u+=h*f*n*r}}a+=u}else e.generateMipmaps&&(a=a*1.333);return Math.round(a)}_getAttributeMemorySize(e){return e.isInterleavedBufferAttribute&&(e=e.data),e.array?e.array.byteLength:e.count&&e.itemSize?e.count*e.itemSize*4:0}},p5=class{constructor(e){this.cacheKey=e,this.usedTimes=0}},hv=class extends p5{constructor(e,t,o){super(e),this.vertexProgram=t,this.fragmentProgram=o}},fv=class extends p5{constructor(e,t){super(e),this.computeProgram=t,this.isComputePipeline=!0}},pv=0,Xs=class{constructor(e,t,o,r=null,s=null){this.id=pv++,this.code=e,this.stage=t,this.name=o,this.transforms=r,this.attributes=s,this.usedTimes=0}},mv=class extends Vt{constructor(e,t,o){super(),this.backend=e,this.nodes=t,this.info=o,this.bindings=null,this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}getForCompute(e,t){const{backend:o}=this,r=this.get(e);if(this._needsComputeUpdate(e)){const s=r.pipeline;s&&(s.usedTimes--,s.computeProgram.usedTimes--);const i=this.nodes.getForCompute(e);let n=this.programs.compute.get(i.computeShader);n===void 0&&(s&&s.computeProgram.usedTimes===0&&this._releaseProgram(s.computeProgram),n=new Xs(i.computeShader,"compute",e.name,i.transforms,i.nodeAttributes),this.programs.compute.set(i.computeShader,n),o.createProgram(n),this.info.createProgram(n));const a=this._getComputeCacheKey(e,n);let l=this.caches.get(a);l===void 0&&(s&&s.usedTimes===0&&this._releasePipeline(s),l=this._getComputePipeline(e,n,a,t)),l.usedTimes++,n.usedTimes++,r.version=e.version,r.pipeline=l}return r.pipeline}getForRender(e,t=null){const{backend:o}=this,r=this.get(e);if(this._needsRenderUpdate(e)){const s=r.pipeline;s&&(s.usedTimes--,s.vertexProgram.usedTimes--,s.fragmentProgram.usedTimes--);const i=e.getNodeBuilderState(),n=e.material?e.material.name:"";let a=this.programs.vertex.get(i.vertexShader);a===void 0&&(s&&s.vertexProgram.usedTimes===0&&this._releaseProgram(s.vertexProgram),a=new Xs(i.vertexShader,"vertex",n),this.programs.vertex.set(i.vertexShader,a),o.createProgram(a),this.info.createProgram(a));let l=this.programs.fragment.get(i.fragmentShader);l===void 0&&(s&&s.fragmentProgram.usedTimes===0&&this._releaseProgram(s.fragmentProgram),l=new Xs(i.fragmentShader,"fragment",n),this.programs.fragment.set(i.fragmentShader,l),o.createProgram(l),this.info.createProgram(l));const u=this._getRenderCacheKey(e,a,l);let c=this.caches.get(u);c===void 0?(s&&s.usedTimes===0&&this._releasePipeline(s),c=this._getRenderPipeline(e,a,l,u,t)):e.pipeline=c,c.usedTimes++,a.usedTimes++,l.usedTimes++,r.pipeline=c}return r.pipeline}isReady(e){const t=this.get(e).pipeline;if(t===void 0)return!1;const o=this.backend.get(t);return o.pipeline!==void 0&&o.pipeline!==null}delete(e){const t=this.get(e).pipeline;return t&&(t.usedTimes--,t.usedTimes===0&&this._releasePipeline(t),t.isComputePipeline?(t.computeProgram.usedTimes--,t.computeProgram.usedTimes===0&&this._releaseProgram(t.computeProgram)):(t.fragmentProgram.usedTimes--,t.vertexProgram.usedTimes--,t.vertexProgram.usedTimes===0&&this._releaseProgram(t.vertexProgram),t.fragmentProgram.usedTimes===0&&this._releaseProgram(t.fragmentProgram))),super.delete(e)}dispose(){super.dispose(),this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}updateForRender(e){this.getForRender(e)}_getComputePipeline(e,t,o,r){o=o||this._getComputeCacheKey(e,t);let s=this.caches.get(o);return s===void 0&&(s=new fv(o,t),this.caches.set(o,s),this.backend.createComputePipeline(s,r)),s}_getRenderPipeline(e,t,o,r,s){r=r||this._getRenderCacheKey(e,t,o);let i=this.caches.get(r);return i===void 0&&(i=new hv(r,t,o),this.caches.set(r,i),e.pipeline=i,this.backend.createRenderPipeline(e,s)),i}_getComputeCacheKey(e,t){return e.id+","+t.id}_getRenderCacheKey(e,t,o){return t.id+","+o.id+","+this.backend.getRenderCacheKey(e)}_releasePipeline(e){this.caches.delete(e.cacheKey)}_releaseProgram(e){const t=e.code,o=e.stage;this.programs[o].delete(t),this.info.destroyProgram(e)}_needsComputeUpdate(e){const t=this.get(e);return t.pipeline===void 0||t.version!==e.version}_needsRenderUpdate(e){return this.get(e).pipeline===void 0||this.backend.needsRenderUpdate(e)}},gv=class extends Vt{constructor(e,t,o,r,s,i){super(),this.backend=e,this.textures=o,this.pipelines=s,this.attributes=r,this.nodes=t,this.info=i,this.pipelines.bindings=this}getForRender(e){const t=e.getBindings(),o=this.get(e);return o.initialized!==!0&&(this._createBindings(t),o.initialized=!0),t}getForCompute(e){const t=this.nodes.getForCompute(e).bindings,o=this.get(e);return(o.initialized!==!0||o.bindings!==t)&&(o.bindings!==void 0&&this._destroyBindings(o.bindings),this._createBindings(t),o.initialized=!0,o.bindings=t),t}updateForCompute(e){this._updateBindings(this.getForCompute(e))}updateForRender(e){this._updateBindings(this.getForRender(e))}deleteForCompute(e){const t=this.get(e).bindings||this.nodes.getForCompute(e).bindings;this._destroyBindings(t),this.delete(e)}deleteForRender(e){const t=e.getBindings();this._destroyBindings(t),this.delete(e)}_createBindings(e){for(const t of e){const o=this.get(t);if(o.bindGroup===void 0){for(const r of t.bindings)if(r.isUniformBuffer)this.backend.createUniformBuffer(r),this.info.createUniformBuffer(r);else if(r.isSampledTexture)this.textures.updateTexture(r.texture);else if(r.isSampler)this.textures.updateSampler(r);else if(r.isStorageBuffer){const s=r.attribute,i=s.isIndirectStorageBufferAttribute?ue.INDIRECT:ue.STORAGE;this.attributes.update(s,i)}this.backend.createBindings(t,e,0),o.bindGroup=t,o.usedTimes=1}else o.usedTimes++}}_destroyBindings(e){for(const t of e){const o=this.get(t);if(o.usedTimes--,o.usedTimes===0){for(const r of t.bindings)r.isUniformBuffer?(this.backend.destroyUniformBuffer(r),this.info.destroyUniformBuffer(r),r.release()):r.isSampler&&(r.isSampledTexture!==!0&&this.backend.destroySampler(r),r.release());this.backend.deleteBindGroupData(t),this.delete(t)}}}_updateBindings(e){for(const t of e)this._update(t,e)}_update(e,t){const{backend:o}=this;let r=!1,s=!0,i=0,n=0;for(const a of e.bindings)if(this.nodes.updateGroup(a)!==!1){if(a.isStorageBuffer){const l=a.attribute,u=l.isIndirectStorageBufferAttribute?ue.INDIRECT:ue.STORAGE,c=o.get(a);this.attributes.update(l,u),c.attribute!==l&&(c.attribute=l,r=!0)}if(a.isUniformBuffer)a.update()&&o.updateBinding(a);else if(a.isSampledTexture){const l=a.update(),u=a.texture,c=this.textures.get(u);if(l&&(this.textures.updateTexture(u),a.generation!==c.generation&&(a.generation=c.generation,r=!0),c.bindGroups.add(e)),o.get(u).externalTexture!==void 0||c.isDefaultTexture?s=!1:(i=i*10+u.id,n+=u.version),u.isStorageTexture===!0&&u.mipmapsAutoUpdate===!0){const d=this.get(u);a.store===!0?d.needsMipmap=!0:this.textures.needsMipmaps(u)&&d.needsMipmap===!0&&(this.backend.generateMipmaps(u),d.needsMipmap=!1)}}else if(a.isSampler&&a.update()){const l=this.textures.updateSampler(a);a.samplerKey!==l&&(a.samplerKey=l,r=!0)}a.isBuffer&&a.updateRanges.length>0&&a.clearUpdateRanges()}r===!0&&this.backend.updateBindings(e,t,s?i:0,n)}},vv=Object.freeze([]);function bv(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?e.z-t.z:e.id-t.id}function _7(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id-t.id}function A7(e){return(e.transmission>0||e.transmissionNode&&e.transmissionNode.isNode)&&e.side===2&&e.forceSinglePass===!1}var Nv=class{constructor(e,t,o){this.renderItems=[],this.renderItemsIndex=0,this.opaque=[],this.transparentDoublePass=[],this.transparent=[],this.bundles=[],this.lighting=e,this.lightsNode=e.getNode(t),this.lightsArray=[],this.scene=t,this.camera=o,this.occlusionQueryCount=0,this._lastOcclusionObject=null}begin(){return this.renderItemsIndex=0,this.opaque.length=0,this.transparentDoublePass.length=0,this.transparent.length=0,this.bundles.length=0,this.lightsArray.length=0,this.occlusionQueryCount=0,this}getNextRenderItem(e,t,o,r,s,i,n){let a=this.renderItems[this.renderItemsIndex];return a===void 0?(a={id:e.id,object:e,geometry:t,material:o,groupOrder:r,renderOrder:e.renderOrder,z:s,group:i,clippingContext:n},this.renderItems[this.renderItemsIndex]=a):(a.id=e.id,a.object=e,a.geometry=t,a.material=o,a.groupOrder=r,a.renderOrder=e.renderOrder,a.z=s,a.group=i,a.clippingContext=n),this.renderItemsIndex++,a}push(e,t,o,r,s,i,n){const a=this.getNextRenderItem(e,t,o,r,s,i,n);e.occlusionTest===!0&&this._lastOcclusionObject!==e&&(this.occlusionQueryCount++,this._lastOcclusionObject=e),o.transparent===!0||o.transmission>0||o.transmissionNode&&o.transmissionNode.isNode||o.backdropNode&&o.backdropNode.isNode?(A7(o)&&this.transparentDoublePass.push(a),this.transparent.push(a)):this.opaque.push(a)}unshift(e,t,o,r,s,i,n){const a=this.getNextRenderItem(e,t,o,r,s,i,n);o.transparent===!0||o.transmission>0||o.transmissionNode&&o.transmissionNode.isNode||o.backdropNode&&o.backdropNode.isNode?(A7(o)&&this.transparentDoublePass.unshift(a),this.transparent.unshift(a)):this.opaque.unshift(a)}pushBundle(e){this.bundles.push(e)}pushLight(e){this.lightsArray.push(e)}sort(e,t,o){this.opaque.length>1&&this.opaque.sort(e||bv),this.transparentDoublePass.length>1&&this.transparentDoublePass.sort(t||_7),this.transparent.length>1&&this.transparent.sort(t||_7),o&&(this.opaque.reverse(),this.transparentDoublePass.reverse(),this.transparent.reverse())}finish(){this.lightsNode.setLights(this.lighting.enabled?this.lightsArray:vv);for(let e=this.renderItemsIndex,t=this.renderItems.length;e>t,l=n.height>>t;let u=e.depthTexture||s[t];const c=e.depthBuffer===!0||e.stencilBuffer===!0;let d=!1;const h=u!==void 0&&u.image!==void 0&&u.image.depth>1,f=n.depth>1&&(e.useArrayDepthTexture||e.multiview||h);u===void 0&&c&&(u=new Te,u.format=e.stencilBuffer?Ot:p2,u.type=e.stencilBuffer?Ft:O0,u.image.width=a,u.image.height=l,u.image.depth=n.depth,u.renderTarget=e,s[t]=u),u&&(u.isArrayTexture=f),(o.width!==n.width||n.height!==o.height)&&(d=!0,u&&(u.needsUpdate=!0,u.image.width=a,u.image.height=l,u.image.depth=f?n.depth:1)),o.width=n.width,o.height=n.height,o.textures=i,o.depthTexture=u||null,o.depth=e.depthBuffer,o.stencil=e.stencilBuffer,o.renderTarget=e,o.sampleCount!==r&&(d=!0,u&&(u.needsUpdate=!0),o.sampleCount=r);const p={sampleCount:r};if(e.isXRRenderTarget!==!0){for(let m=0;m{this._destroyRenderTarget(e)},e.addEventListener("dispose",o.onDispose))}updateTexture(e,t={}){const o=this.get(e);if(o.initialized===!0&&o.version===e.version)return;const r=e.isRenderTargetTexture||e.isDepthTexture||e.isFramebufferTexture,s=this.backend;if(r&&o.initialized===!0&&s.destroyTexture(e),e.isFramebufferTexture){const l=this.renderer.getRenderTarget();l?e.type=l.texture.type:e.type=ye}if(e.isHTMLTexture&&e.image){const l=this.renderer.domElement;if("requestPaint"in l){if(l.hasAttribute("layoutsubtree")||l.setAttribute("layoutsubtree","true"),e.image.parentNode!==l&&l.appendChild(e.image),this._htmlTextures.size===0){const u=this._htmlTextures;l.onpaint=c=>{const d=c&&c.changedElements;for(const h of u)(!d||d.includes(h.image))&&(h.needsUpdate=!0)}}this._htmlTextures.add(e)}}const{width:i,height:n,depth:a}=this.getSize(e);if(t.width=i,t.height=n,t.depth=a,t.needsMipmaps=this.needsMipmaps(e),t.levels=t.needsMipmaps?this.getMipLevels(e,i,n):1,e.isCubeTexture&&e.mipmaps.length>0&&t.levels++,r||e.isStorageTexture===!0||e.isExternalTexture===!0)s.createTexture(e,t),o.generation=e.version;else if(e.version>0){const l=e.image;if(l===void 0)j("Renderer: Texture marked for update but image is undefined.");else if(l.complete===!1)j("Renderer: Texture marked for update but image is incomplete.");else{if(e.images){const c=[];for(const d of e.images)c.push(d);t.images=c}else t.image=l;(o.isDefaultTexture===void 0||o.isDefaultTexture===!0)&&(s.createTexture(e,t),o.isDefaultTexture=!1,o.generation=e.version),e.source.dataReady===!0&&s.updateTexture(e,t);const u=e.isStorageTexture===!0&&e.mipmapsAutoUpdate===!1;t.needsMipmaps&&e.mipmaps.length===0&&!u&&s.generateMipmaps(e),e.onUpdate&&e.onUpdate(e)}}else s.createDefaultTexture(e),o.isDefaultTexture=!0,o.generation=e.version;o.initialized!==!0&&(o.initialized=!0,o.generation=e.version,o.bindGroups=new Set,this.info.createTexture(e),e.isVideoTexture&&o0.enabled===!0&&o0.getTransfer(e.colorSpace)!=="srgb"&&j("WebGPURenderer: Video textures must use a color space with a sRGB transfer function, e.g. SRGBColorSpace."),o.onDispose=()=>{this._destroyTexture(e)},e.addEventListener("dispose",o.onDispose)),o.version=e.version}updateSampler(e){return this.backend.updateSampler(e)}getSize(e,t=Tv){let o=e.images?e.images[0]:e.image;return o?(o.image!==void 0&&(o=o.image),e.isHTMLTexture?(t.width=o.offsetWidth||1,t.height=o.offsetHeight||1,t.depth=1):typeof HTMLVideoElement<"u"&&o instanceof HTMLVideoElement?(t.width=o.videoWidth||1,t.height=o.videoHeight||1,t.depth=1):typeof VideoFrame<"u"&&o instanceof VideoFrame?(t.width=o.displayWidth||1,t.height=o.displayHeight||1,t.depth=1):(t.width=o.width||1,t.height=o.height||1,t.depth=e.isCubeTexture?6:o.depth||1)):t.width=t.height=t.depth=1,t}getMipLevels(e,t,o){let r;return e.mipmaps.length>0?r=e.mipmaps.length:e.isCompressedTexture===!0?r=1:r=Math.floor(Math.log2(Math.max(t,o)))+1,r}needsMipmaps(e){return e.generateMipmaps===!0||e.mipmaps.length>0}_destroyRenderTarget(e){if(this.has(e)===!0){const t=this.get(e),o=t.textures,r=t.depthTexture;e.removeEventListener("dispose",t.onDispose);for(let s=0;s{r.isOverrideContextNode===!0&&e.push(r.value.overrideNodes)});const t=new Map(e.flatMap(r=>Array.from(r.entries()))),o=super.getFlowContextData();return o.overrideNodes=t,o}};function _v(e,t=null,o=null){if(t&&t.isNode){const r=t;t=()=>r}return new g5(new Map([[e,t]]),o)}E("overrideNode",(e,t,o)=>_v(t,o,e));function Av(e,t=null){const o=new Map;for(const[r,s]of e){const i=s!==null?typeof s=="function"?s:()=>s:null;o.set(r,i)}return new g5(o,t)}E("overrideNodes",(e,t)=>Av(t,e));var Cv=class extends _1{static get type(){return"ParameterNode"}constructor(e,t=null){super(e,t),this.isParameterNode=!0}getMemberType(e,t){const o=this.getNodeType(e),r=e.getStructTypeNode(o);let s;return r!==null?s=r.getMemberType(e,t):(I(`TSL: Member "${t}" not found in struct "${o}".`,new E0),s="float"),s}getHash(){return String(this.id)}generate(){return this.name}},Rv=class extends i1{static get type(){return"StackNode"}constructor(e=null){super(),this.nodes=[],this.outputNode=null,this.parent=e,this._currentCond=null,this._expressionNode=null,this._currentNode=null,this._nodeDataLibrary=new Map,this.isStackNode=!0}getElementType(e){return this.outputNode?this.outputNode.getElementType(e):"void"}generateNodeType(e){return this.outputNode?this.outputNode.getNodeType(e):"void"}getMemberType(e,t){return this.outputNode?this.outputNode.getMemberType(e,t):"void"}addToStack(e,t=-1){if(e.isNode!==!0)return I("TSL: Invalid node added to stack.",new E0),this;if(t===-1)if(this._currentNode){let o=this._nodeDataLibrary.get(this._currentNode);o===void 0&&(o={delta:0},this._nodeDataLibrary.set(this._currentNode,o)),o.delta++,t=this.nodes.indexOf(this._currentNode)+o.delta}else t=this.nodes.length;return this.nodes.splice(t,0,e),this}addToStackBefore(e){const t=this._currentNode?this.nodes.indexOf(this._currentNode):0;return this.addToStack(e,t)}If(e,t){const o=new $3(t);return this._currentCond=H0(e,o),this.addToStack(this._currentCond)}ElseIf(e,t){const o=new $3(t),r=H0(e,o);return this._currentCond.elseNode=r,this._currentCond=r,this}Else(e){return this._currentCond.elseNode=new $3(e),this}Switch(e){return this._expressionNode=K(e),this}Case(...e){const t=[];if(e.length>=2)for(let n=0;nnew b5(e,"uint","float"),Qo={},kn=class _r extends A{static get type(){return"BitcountNode"}constructor(t,o){super(t,o),this.isBitcountNode=!0}_resolveElementType(t,o,r){r==="int"?o.assign(Bv(t,"uint")):o.assign(t)}_returnDataNode(t){switch(t){case"uint":return m1;case"int":return Z1;case"uvec2":return O6;case"uvec3":return P6;case"uvec4":return k6;case"ivec2":return k0;case"ivec3":return F6;case"ivec4":return D6}}_createTrailingZerosBaseLayout(t,o){const r=this._returnDataNode(o);return B(([s])=>{const i=m1(0);this._resolveElementType(s,i,o);const n=R(i.bitAnd(J6(i))),a=Ev(n).shiftRight(23).sub(127);return r(a)}).setLayout({name:t,type:o,inputs:[{name:"value",type:o}]})}_createLeadingZerosBaseLayout(t,o){const r=this._returnDataNode(o);return B(([s])=>{x1(s.equal(m1(0)),()=>m1(32));const i=m1(0),n=m1(0);return this._resolveElementType(s,i,o),x1(i.shiftRight(16).equal(0),()=>{n.addAssign(16),i.shiftLeftAssign(16)}),x1(i.shiftRight(24).equal(0),()=>{n.addAssign(8),i.shiftLeftAssign(8)}),x1(i.shiftRight(28).equal(0),()=>{n.addAssign(4),i.shiftLeftAssign(4)}),x1(i.shiftRight(30).equal(0),()=>{n.addAssign(2),i.shiftLeftAssign(2)}),x1(i.shiftRight(31).equal(0),()=>{n.addAssign(1)}),r(n)}).setLayout({name:t,type:o,inputs:[{name:"value",type:o}]})}_createOneBitsBaseLayout(t,o){const r=this._returnDataNode(o);return B(([s])=>{const i=m1(0);this._resolveElementType(s,i,o),i.assign(i.sub(i.shiftRight(m1(1)).bitAnd(m1(1431655765)))),i.assign(i.bitAnd(m1(858993459)).add(i.shiftRight(m1(2)).bitAnd(m1(858993459))));const n=i.add(i.shiftRight(m1(4))).bitAnd(m1(252645135)).mul(m1(16843009)).shiftRight(m1(24));return r(n)}).setLayout({name:t,type:o,inputs:[{name:"value",type:o}]})}_createMainLayout(t,o,r,s){const i=this._returnDataNode(o);return B(([n])=>{if(r===1)return i(s(n));{const a=i(0),l=["x","y","z","w"];for(let u=0;ud(r))()}};kn.COUNT_TRAILING_ZEROS="countTrailingZeros";kn.COUNT_LEADING_ZEROS="countLeadingZeros";kn.COUNT_ONE_BITS="countOneBits";var Xw=new $4,Iw=new G,Gw=new G,zw=new G,$w=new v0,Vw=new G(0,0,-1),Qw=new S1,Zw=new G,qw=new G,Hw=new S1,Jw=new f1,Wv=new zt,jw=Bt.flipX();Wv.depthTexture=new Te(1,1);var Gs=new vo(-1,1,1,-1,0,1),Lv=class extends a3{constructor(e=!1){super();const t=e===!1?[0,-1,0,1,2,1]:[0,2,0,0,2,0];this.setAttribute("position",new Er([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Er(t,2))}},Uv=new Lv,N5=class extends He{constructor(e=null){super(Uv,e),this.camera=Gs,this.isQuadMesh=!0}async renderAsync(e){z1('QuadMesh: "renderAsync()" has been deprecated. Use "render()" and "await renderer.init();" when creating the renderer.'),await e.init(),e.render(this,Gs)}render(e){e.render(this,Gs)}},y5=B(([e])=>je(R(52.9829189).mul(je(S2(e,n1(.06711056,.00583715)))))).setLayout({name:"interleavedGradientNoise",type:"float",inputs:[{name:"position",type:"vec2"}]}),ze=B(([e,t,o])=>{const r=R(2.399963229728653),s=Pt(R(e).add(.5).div(R(t))),i=R(e).mul(r).add(o);return n1(Xe(i),Z0(i)).mul(s)}).setLayout({name:"vogelDiskSample",type:"vec2",inputs:[{name:"sampleIndex",type:"int"},{name:"samplesCount",type:"int"},{name:"phi",type:"float"}]}),zs=new v0,Ov=o1(0).setGroup(s1).onRenderUpdate(({scene:e})=>e.backgroundBlurriness),C7=o1(1).setGroup(s1).onRenderUpdate(({scene:e})=>e.backgroundIntensity),Fv=o1(new v0).setGroup(s1).onRenderUpdate(({scene:e})=>{const t=e.background;return t!==null&&t.isTexture&&t.mapping!==300||e.backgroundNode&&e.backgroundNode.isNode?zs.makeRotationFromEuler(e.backgroundRotation).transpose():zs.identity(),zs}),Kw=B(({texture:e,uv:t})=>{const r=W().toVar();return x1(t.x.lessThan(1e-4),()=>{r.assign(W(1,0,0))}).ElseIf(t.y.lessThan(1e-4),()=>{r.assign(W(0,1,0))}).ElseIf(t.z.lessThan(1e-4),()=>{r.assign(W(0,0,1))}).ElseIf(t.x.greaterThan(.9999),()=>{r.assign(W(-1,0,0))}).ElseIf(t.y.greaterThan(.9999),()=>{r.assign(W(0,-1,0))}).ElseIf(t.z.greaterThan(.9999),()=>{r.assign(W(0,0,-1))}).Else(()=>{const i=e.sample(t.add(W(-.01,0,0))).r.sub(e.sample(t.add(W(.01,0,0))).r),n=e.sample(t.add(W(0,-.01,0))).r.sub(e.sample(t.add(W(0,.01,0))).r),a=e.sample(t.add(W(0,0,-.01))).r.sub(e.sample(t.add(W(0,0,.01))).r);r.assign(W(i,n,a))}),r.normalize()}),Yw=B(([e,t])=>e.mul(t).floor().div(t)),Zo=new f1,Pv=class extends _o{static get type(){return"PassTextureNode"}constructor(e,t){super(t),this.passNode=e,this.isPassTextureNode=!0,this.setUpdateMatrix(!1)}setup(e){const t=e.getNodeProperties(this);return t.passNode=this.passNode,super.setup(e)}clone(){return new this.constructor(this.passNode,this.value)}},R7=class extends Pv{static get type(){return"PassMultipleTextureNode"}constructor(e,t,o=!1){super(e,null),this.textureName=t,this.previousTexture=o,this.isPassMultipleTextureNode=!0}updateTexture(){this.value=this.previousTexture?this.passNode.getPreviousTexture(this.textureName):this.passNode.getTexture(this.textureName)}setup(e){return this.updateTexture(),super.setup(e)}clone(){const e=new this.constructor(this.passNode,this.textureName,this.previousTexture);return e.uvNode=this.uvNode,e.levelNode=this.levelNode,e.biasNode=this.biasNode,e.sampler=this.sampler,e.depthNode=this.depthNode,e.compareNode=this.compareNode,e.gradNode=this.gradNode,e.gatherNode=this.gatherNode,e.offsetNode=this.offsetNode,e}},M5=class Vi extends n0{static get type(){return"PassNode"}constructor(t,o,r,s={}){super("vec4"),this.scope=t,this.scene=o,this.camera=r,this.options=s,this._width=1,this._height=1;const i=new zt(this._width,this._height,{type:ne,...s});i.texture.name="output";let n=null;(this.scope===Vi.DEPTH||s.depthBuffer!==!1)&&(n=new Te,n.isRenderTargetTexture=!0,n.name="depth",i.depthTexture=n),this.renderTarget=i,this.overrideMaterial=null,this.transparent=!0,this.opaque=!0,this.contextNode=null,this._contextNodeCache=null,this._textures={output:i.texture},n!==null&&(this._textures.depth=n),this._textureNodes={},this._linearDepthNodes={},this._viewZNodes={},this._previousTextures={},this._previousTextureNodes={},this._cameraNear=o1(0),this._cameraFar=o1(0),this._mrt=null,this._layers=null,this._resolutionScale=1,this._viewport=null,this._scissor=null,this.isPassNode=!0,this.updateBeforeType=u1.FRAME,this.global=!0}setResolutionScale(t){return this._resolutionScale=t,this}getResolutionScale(){return this._resolutionScale}setResolution(t){return j("PassNode: .setResolution() is deprecated. Use .setResolutionScale() instead."),this.setResolutionScale(t)}getResolution(){return j("PassNode: .getResolution() is deprecated. Use .getResolutionScale() instead."),this.getResolutionScale()}setLayers(t){return this._layers=t,this}getLayers(){return this._layers}setMRT(t){return this._mrt=t,this}getMRT(){return this._mrt}getTexture(t){let o=this._textures[t];if(o===void 0){if(t==="depth")throw new Error("THREE.PassNode: Depth texture is not available for this pass.");o=this.renderTarget.texture.clone(),o.name=t,this._textures[t]=o,this.renderTarget.textures.push(o)}return o}getPreviousTexture(t){let o=this._previousTextures[t];return o===void 0&&(o=this.getTexture(t).clone(),this._previousTextures[t]=o),o}toggleTexture(t){const o=this._previousTextures[t];if(o!==void 0){const r=this._textures[t],s=this.renderTarget.textures.indexOf(r);this.renderTarget.textures[s]=o,this._textures[t]=o,this._previousTextures[t]=r,this._textureNodes[t].updateTexture(),this._previousTextureNodes[t].updateTexture()}}getTextureNode(t="output"){let o=this._textureNodes[t];return o===void 0&&(o=new R7(this,t),o.updateTexture(),this._textureNodes[t]=o),o}getPreviousTextureNode(t="output"){let o=this._previousTextureNodes[t];return o===void 0&&(this._textureNodes[t]===void 0&&this.getTextureNode(t),o=new R7(this,t,!0),o.updateTexture(),this._previousTextureNodes[t]=o),o}getViewZNode(t="depth"){let o=this._viewZNodes[t];if(o===void 0){const r=this._cameraNear,s=this._cameraFar;this._viewZNodes[t]=o=On(this.getTextureNode(t),r,s)}return o}getLinearDepthNode(t="depth"){let o=this._linearDepthNodes[t];if(o===void 0){const r=this._cameraNear,s=this._cameraFar,i=this.getViewZNode(t);this._linearDepthNodes[t]=o=n3(i,r,s)}return o}async compileAsync(t){const o=t.getRenderTarget(),r=t.getMRT();t.setRenderTarget(this.renderTarget),t.setMRT(this._mrt),await t.compileAsync(this.scene,this.camera),t.setRenderTarget(o),t.setMRT(r)}setup({renderer:t}){return this.renderTarget.samples=this.options.samples===void 0?t.samples:this.options.samples,this.renderTarget.texture.type=t.getOutputBufferType(),t.reversedDepthBuffer===!0&&this.renderTarget.depthTexture!==null&&(this.renderTarget.depthTexture.type=se),this.scope===Vi.COLOR?this.getTextureNode():this.getLinearDepthNode()}updateBefore(t){const{renderer:o}=t,{scene:r}=this;let s;const i=o.getOutputRenderTarget();i&&i.isXRRenderTarget===!0?(s=o.xr.getCamera(),o.xr.updateCamera(s),Zo.set(i.width,i.height)):(s=this.camera,o.getDrawingBufferSize(Zo)),this.setSize(Zo.width,Zo.height);const n=o.getRenderTarget(),a=o.getMRT(),l=o.autoClear,u=o.transparent,c=o.opaque,d=s.layers.mask,h=o.contextNode,f=r.overrideMaterial;this._cameraNear.value=s.near,this._cameraFar.value=s.far,this._layers!==null&&(s.layers.mask=this._layers.mask);for(const m in this._previousTextures)this.toggleTexture(m);this.overrideMaterial!==null&&(r.overrideMaterial=this.overrideMaterial),o.setRenderTarget(this.renderTarget),o.setMRT(this._mrt),o.autoClear=!0,o.transparent=this.transparent,o.opaque=this.opaque,this.contextNode!==null&&((this._contextNodeCache===null||this._contextNodeCache.version!==this.version)&&(this._contextNodeCache={version:this.version,context:E2({...o.contextNode.getFlowContextData(),...this.contextNode.getFlowContextData()})}),o.contextNode=this._contextNodeCache.context);const p=r.name;r.name=this.name?this.name:r.name,o.render(r,s),r.name=p,r.overrideMaterial=f,o.setRenderTarget(n),o.setMRT(a),o.autoClear=l,o.transparent=u,o.opaque=c,o.contextNode=h,s.layers.mask=d}setSize(t,o){this._width=t,this._height=o;const r=Math.floor(this._width*this._resolutionScale),s=Math.floor(this._height*this._resolutionScale);this.renderTarget.setSize(r,s),this._scissor!==null?(this.renderTarget.scissor.copy(this._scissor).multiplyScalar(this._resolutionScale).floor(),this.renderTarget.scissorTest=!0):this.renderTarget.scissorTest=!1,this._viewport!==null&&this.renderTarget.viewport.copy(this._viewport).multiplyScalar(this._resolutionScale).floor()}setScissor(t,o,r,s){t===null?this._scissor=null:(this._scissor===null&&(this._scissor=new S1),t.isVector4?this._scissor.copy(t):this._scissor.set(t,o,r,s))}setViewport(t,o,r,s){t===null?this._viewport=null:(this._viewport===null&&(this._viewport=new S1),t.isVector4?this._viewport.copy(t):this._viewport.set(t,o,r,s))}dispose(){this.renderTarget.dispose()}};M5.COLOR="color";M5.DEPTH="depth";var Dv=B(([e,t])=>e.mul(t).clamp()).setLayout({name:"linearToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),kv=B(([e,t])=>(e=e.mul(t),e.div(e.add(1)).clamp())).setLayout({name:"reinhardToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Xv=B(([e,t])=>{e=e.mul(t),e=e.sub(.004).max(0);const o=e.mul(e.mul(6.2).add(.5)),r=e.mul(e.mul(6.2).add(1.7)).add(.06);return o.div(r).pow(2.2)}).setLayout({name:"cineonToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Iv=B(([e])=>{const t=e.mul(e.add(.0245786)).sub(90537e-9),o=e.mul(e.add(.432951).mul(.983729)).add(.238081);return t.div(o)}),Gv=B(([e,t])=>{const o=b0(.59719,.35458,.04823,.076,.90834,.01566,.0284,.13383,.83777),r=b0(1.60475,-.53108,-.07367,-.10208,1.10813,-.00605,-.00327,-.07276,1.07602);return e=e.mul(t).div(.6),e=o.mul(e),e=Iv(e),e=r.mul(e),e.clamp()}).setLayout({name:"acesFilmicToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),zv=b0(W(1.6605,-.1246,-.0182),W(-.5876,1.1329,-.1006),W(-.0728,-.0083,1.1187)),$v=b0(W(.6274,.0691,.0164),W(.3293,.9195,.088),W(.0433,.0113,.8956)),Vv=B(([e])=>{const t=W(e).toVar(),o=W(t.mul(t)).toVar(),r=W(o.mul(o)).toVar();return R(15.5).mul(r.mul(o)).sub(d1(40.14,r.mul(t))).add(d1(31.96,r).sub(d1(6.868,o.mul(t))).add(d1(.4298,o).add(d1(.1191,t).sub(.00232))))}),Qv=B(([e,t])=>{const o=W(e).toVar(),r=b0(W(.856627153315983,.137318972929847,.11189821299995),W(.0951212405381588,.761241990602591,.0767994186031903),W(.0482516061458583,.101439036467562,.811302368396859)),s=b0(W(1.1271005818144368,-.1413297634984383,-.14132976349843826),W(-.11060664309660323,1.157823702216272,-.11060664309660294),W(-.016493938717834573,-.016493938717834257,1.2519364065950405)),i=R(-12.47393),n=R(4.026069);return o.mulAssign(t),o.assign($v.mul(o)),o.assign(r.mul(o)),o.assign(N0(o,1e-10)),o.assign(ht(o)),o.assign(o.sub(i).div(n.sub(i))),o.assign(Xt(o,0,1)),o.assign(Vv(o)),o.assign(s.mul(o)),o.assign(Kr(N0(W(0),o),W(2.2))),o.assign(zv.mul(o)),o.assign(Xt(o,0,1)),o}).setLayout({name:"agxToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Zv=B(([e,t])=>{const o=R(.76),r=R(.15);e=e.mul(t);const s=u3(e.r,u3(e.g,e.b)),i=H0(s.lessThan(.08),s.sub(d1(6.25,s.mul(s))),.04);e.subAssign(i);const n=N0(e.r,N0(e.g,e.b));x1(n.lessThan(o),()=>e);const a=F0(1,o),l=F0(1,a.mul(a).div(n.add(a.sub(o))));e.mulAssign(l.div(n));const u=F0(1,Je(1,r.mul(n.sub(l)).add(1)));return B1(e,W(l),u)}).setLayout({name:"neutralToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Q1=class extends i1{static get type(){return"CodeNode"}constructor(e="",t=[],o=""){super("code"),this.isCodeNode=!0,this.global=!0,this.code=e,this.includes=t,this.language=o}setIncludes(e){return this.includes=e,this}getIncludes(){return this.includes}generate(e){const t=this.getIncludes(e);for(const r of t)r.build(e);const o=e.getCodeFromNode(this,this.getNodeType(e));return o.code=this.code,o.code}serialize(e){super.serialize(e),e.code=this.code,e.language=this.language}deserialize(e){super.deserialize(e),this.code=e.code,this.language=e.language}},qv=class extends Q1{static get type(){return"FunctionNode"}constructor(e="",t=[],o=""){super(e,t,o)}generateNodeType(e){return this.getNodeFunction(e).type}getMemberType(e,t){const o=this.getNodeType(e);return e.getStructTypeNode(o).getMemberType(e,t)}getInputs(e){return this.getNodeFunction(e).inputs}getNodeFunction(e){const t=e.getDataFromNode(this);let o=t.nodeFunction;return o===void 0&&(o=e.parser.parseFunction(this.code),t.nodeFunction=o),o}generate(e,t){super.generate(e);const o=this.getNodeFunction(e),r=o.name,s=o.type,i=e.getCodeFromNode(this,s);r!==""&&(i.name=r);const n=e.getPropertyName(i);return i.code=this.getNodeFunction(e).getCode(n)+` +`,t==="property"?n:e.format(`${n}()`,s,t)}};function Xn(e){let t;const o=e.context.getViewZ;return o!==void 0&&(t=o(this)),(t||r0.z).negate()}var Hv=B(([e,t],o)=>{const r=Xn(o);return Ce(e,t,r)}),Jv=B(([e],t)=>{const o=Xn(t);return e.mul(e,o,o).negate().exp().oneMinus()}),e_=B(([e,t],o)=>{const r=Xn(o),s=t.sub(d3.y).max(0).toConst().mul(r).toConst();return e.mul(e,s,s).negate().exp().oneMinus()}),B7=B(([e,t])=>Y(t.toFloat().mix(Y3.rgb,e.toVec3()),Y3.a)),jv=class extends i1{constructor(e){super(),this.scope=e,this.isBarrierNode=!0}setup(e){e.allowEarlyReturns=!1,e.allowGlobalVariables=!1}generate(e){const{scope:t}=this,{renderer:o}=e;o.backend.isWebGLBackend===!0?e.addFlowCode(` // ${t}Barrier +`):e.addLineFlowCode(`${t}Barrier()`,this)}},t_=$1(jv),tt=class extends i1{static get type(){return"AtomicFunctionNode"}constructor(e,t,o){super("uint"),this.method=e,this.pointerNode=t,this.valueNode=o,this.parents=!0}getInputType(e){return this.pointerNode.getNodeType(e)}generateNodeType(e){return this.getInputType(e)}generate(e){const t=e.getNodeProperties(this),o=t.parents,r=this.method,s=this.getNodeType(e),i=this.getInputType(e),n=this.pointerNode,a=this.valueNode,l=[];l.push(`&${n.build(e,i)}`),a!==null&&l.push(a.build(e,i));const u=`${e.getMethod(r,s)}( ${l.join(", ")} )`;if(o&&o.length===1&&o[0].isStackNode===!0)e.addLineFlowCode(u,this);else return t.constNode===void 0&&(t.constNode=Ge(u,s).toConst()),t.constNode.build(e)}};tt.ATOMIC_LOAD="atomicLoad";tt.ATOMIC_STORE="atomicStore";tt.ATOMIC_ADD="atomicAdd";tt.ATOMIC_SUB="atomicSub";tt.ATOMIC_MAX="atomicMax";tt.ATOMIC_MIN="atomicMin";tt.ATOMIC_AND="atomicAnd";tt.ATOMIC_OR="atomicOr";tt.ATOMIC_XOR="atomicXor";var o_=$1(tt),q1=class at extends n0{static get type(){return"SubgroupFunctionNode"}constructor(t,o=null,r=null){super(),this.method=t,this.aNode=o,this.bNode=r}getInputType(t){const o=this.aNode?this.aNode.getNodeType(t):null,r=this.bNode?this.bNode.getNodeType(t):null;return(t.isMatrix(o)?0:t.getTypeLength(o))>(t.isMatrix(r)?0:t.getTypeLength(r))?o:r}generateNodeType(t){const o=this.method;return o===at.SUBGROUP_ELECT?"bool":o===at.SUBGROUP_BALLOT?"uvec4":this.getInputType(t)}generate(t,o){const r=this.method,s=this.getNodeType(t),i=this.getInputType(t),n=this.aNode,a=this.bNode,l=[];if(r===at.SUBGROUP_BROADCAST||r===at.SUBGROUP_SHUFFLE||r===at.QUAD_BROADCAST){const c=a.getNodeType(t);l.push(n.build(t,s),a.build(t,c==="float"?"int":s))}else r===at.SUBGROUP_SHUFFLE_XOR||r===at.SUBGROUP_SHUFFLE_DOWN||r===at.SUBGROUP_SHUFFLE_UP?l.push(n.build(t,s),a.build(t,"uint")):(n!==null&&l.push(n.build(t,i)),a!==null&&l.push(a.build(t,i)));const u=l.length===0?"()":`( ${l.join(", ")} )`;return t.format(`${t.getMethod(r,s)}${u}`,s,o)}serialize(t){super.serialize(t),t.method=this.method}deserialize(t){super.deserialize(t),this.method=t.method}};q1.SUBGROUP_ELECT="subgroupElect";q1.SUBGROUP_BALLOT="subgroupBallot";q1.SUBGROUP_ADD="subgroupAdd";q1.SUBGROUP_INCLUSIVE_ADD="subgroupInclusiveAdd";q1.SUBGROUP_EXCLUSIVE_AND="subgroupExclusiveAdd";q1.SUBGROUP_MUL="subgroupMul";q1.SUBGROUP_INCLUSIVE_MUL="subgroupInclusiveMul";q1.SUBGROUP_EXCLUSIVE_MUL="subgroupExclusiveMul";q1.SUBGROUP_AND="subgroupAnd";q1.SUBGROUP_OR="subgroupOr";q1.SUBGROUP_XOR="subgroupXor";q1.SUBGROUP_MIN="subgroupMin";q1.SUBGROUP_MAX="subgroupMax";q1.SUBGROUP_ALL="subgroupAll";q1.SUBGROUP_ANY="subgroupAny";q1.SUBGROUP_BROADCAST_FIRST="subgroupBroadcastFirst";q1.QUAD_SWAP_X="quadSwapX";q1.QUAD_SWAP_Y="quadSwapY";q1.QUAD_SWAP_DIAGONAL="quadSwapDiagonal";q1.SUBGROUP_BROADCAST="subgroupBroadcast";q1.SUBGROUP_SHUFFLE="subgroupShuffle";q1.SUBGROUP_SHUFFLE_XOR="subgroupShuffleXor";q1.SUBGROUP_SHUFFLE_UP="subgroupShuffleUp";q1.SUBGROUP_SHUFFLE_DOWN="subgroupShuffleDown";q1.QUAD_BROADCAST="quadBroadcast";var qo;function rs(e){qo=qo||new WeakMap;let t=qo.get(e);return t===void 0&&qo.set(e,t={}),t}function In(e){const t=rs(e);return t.shadowMatrix||(t.shadowMatrix=o1("mat4").setGroup(s1).onRenderUpdate(o=>((e.castShadow!==!0||o.renderer.shadowMap.enabled===!1)&&(e.shadow.camera.coordinateSystem!==o.camera.coordinateSystem&&(e.shadow.camera.coordinateSystem=o.camera.coordinateSystem,e.shadow.camera.updateProjectionMatrix()),e.shadow.updateMatrices(e)),e.shadow.matrix)))}function Kv(e,t=d3){const o=In(e).mul(t);return o.xyz.div(o.w)}function x5(e){const t=rs(e);return t.position||(t.position=o1(new G).setGroup(s1).onRenderUpdate((o,r)=>r.value.setFromMatrixPosition(e.matrixWorld)))}function Yv(e){const t=rs(e);return t.targetPosition||(t.targetPosition=o1(new G).setGroup(s1).onRenderUpdate((o,r)=>r.value.setFromMatrixPosition(e.target.matrixWorld)))}function S5(e){const t=rs(e);return t.viewPosition||(t.viewPosition=o1(new G).setGroup(s1).onRenderUpdate(({camera:o},r)=>{r.value=r.value||new G,r.value.setFromMatrixPosition(e.matrixWorld),r.value.applyMatrix4(o.matrixWorldInverse)}))}var T5=e=>N3.transformDirection(x5(e).sub(Yv(e))),eb=$t("vec3","totalDiffuse"),tb=$t("vec3","totalSpecular"),ob=$t("vec3","outgoingLight"),rb=e=>e.sort((t,o)=>t.id-o.id),sb=(e,t)=>{for(const o of t)if(o.isAnalyticLightNode&&o.light.id===e)return o;return null},$s=new WeakMap,E3=[],w5=class extends i1{static get type(){return"LightsNode"}constructor(){super("vec3"),this.totalDiffuseNode=eb,this.totalSpecularNode=tb,this.outgoingLightNode=ob,this._lights=[],this.global=!0}customCacheKey(){const e=this._lights;for(let o=0;o0}},ib=class extends i1{static get type(){return"ShadowBaseNode"}constructor(e){super(),this.light=e,this.updateBeforeType=u1.RENDER,this.isShadowBaseNode=!0}setupShadowPosition({context:e,material:t}){_5.assign(t.receivedShadowPositionNode||e.shadowPositionWorld||d3)}},_5=$t("vec3","shadowPositionWorld");function nb(e,t={}){return t.toneMapping=e.toneMapping,t.toneMappingExposure=e.toneMappingExposure,t.outputColorSpace=e.outputColorSpace,t.renderTarget=e.getRenderTarget(),t.activeCubeFace=e.getActiveCubeFace(),t.activeMipmapLevel=e.getActiveMipmapLevel(),t.renderObjectFunction=e.getRenderObjectFunction(),t.pixelRatio=e.getPixelRatio(),t.mrt=e.getMRT(),t.clearColor=e.getClearColor(t.clearColor||new fe),t.clearAlpha=e.getClearAlpha(),t.autoClear=e.autoClear,t.scissorTest=e.getScissorTest(),t}function ab(e,t){return t=nb(e,t),e.setMRT(null),e.setRenderObjectFunction(null),e.setClearColor(0,1),e.autoClear=!0,t}function lb(e,t){e.toneMapping=t.toneMapping,e.toneMappingExposure=t.toneMappingExposure,e.outputColorSpace=t.outputColorSpace,e.setRenderTarget(t.renderTarget,t.activeCubeFace,t.activeMipmapLevel),e.setRenderObjectFunction(t.renderObjectFunction),e.setPixelRatio(t.pixelRatio),e.setMRT(t.mrt),e.setClearColor(t.clearColor,t.clearAlpha),e.autoClear=t.autoClear,e.setScissorTest(t.scissorTest)}function ub(e,t={}){return t.background=e.background,t.backgroundNode=e.backgroundNode,t.overrideMaterial=e.overrideMaterial,t}function cb(e,t){return t=ub(e,t),e.background=null,e.backgroundNode=null,e.overrideMaterial=null,t}function db(e,t){e.background=t.background,e.backgroundNode=t.backgroundNode,e.overrideMaterial=t.overrideMaterial}function hb(e,t,o){return o=ab(e,o),o=cb(t,o),o}function fb(e,t,o){lb(e,o),db(t,o)}var Xr=new WeakMap,pb=B(({depthTexture:e,shadowCoord:t,depthLayer:o})=>{let r=P1(e,t.xy).setName("t_basic");return e.isArrayTexture&&(r=r.depth(o)),r.compare(t.z)}),mb=B(({depthTexture:e,shadowCoord:t,shadow:o,depthLayer:r})=>{const s=(c,d)=>{let h=P1(e,c);return e.isArrayTexture&&(h=h.depth(r)),h.compare(d)},i=G1("mapSize","vec2",o).setGroup(s1),n=G1("radius","float",o).setGroup(s1),a=n1(1).div(i),l=n.mul(a.x),u=y5(b3.xy).mul(6.28318530718);return I0(s(t.xy.add(ze(0,5,u).mul(l)),t.z),s(t.xy.add(ze(1,5,u).mul(l)),t.z),s(t.xy.add(ze(2,5,u).mul(l)),t.z),s(t.xy.add(ze(3,5,u).mul(l)),t.z),s(t.xy.add(ze(4,5,u).mul(l)),t.z)).mul(1/5)}),gb=B(({depthTexture:e,shadowCoord:t,shadow:o,depthLayer:r})=>{const s=G1("mapSize","vec2",o).setGroup(s1),i=n1(1).div(s),n=t.xy,a=je(n.mul(s).add(.5)).toConst();n.subAssign(a.sub(.5).mul(i));const l=f=>{let p=P1(e,n).offset(f).gather();return e.isArrayTexture&&(p=p.depth(r)),p.compare(t.z)},u=l(k0(-1,1)).toConst(),c=l(k0(1,1)).toConst(),d=l(k0(-1,-1)).toConst(),h=l(k0(1,-1)).toConst();return I0(B1(u.x,c.y,a.x).add(u.y).add(c.x).mul(a.y),B1(u.w,c.z,a.x).add(u.z).add(c.w),B1(d.x,h.y,a.x).add(d.y).add(h.x),B1(d.w,h.z,a.x).add(d.z).add(h.w).mul(a.y.oneMinus())).mul(1/9)}),vb=B(({depthTexture:e,shadowCoord:t,depthLayer:o},r)=>{let s=P1(e).sample(t.xy);e.isArrayTexture&&(s=s.depth(o)),s=s.rg;const i=s.x,n=N0(1e-7,s.y.mul(s.y)),a=r.renderer.reversedDepthBuffer?uo(i,t.z):uo(t.z,i),l=R(1).toVar();return x1(a.notEqual(1),()=>{const u=t.z.sub(i);let c=n.div(n.add(u.mul(u)));c=Xt(F0(c,.3).div(.65)),l.assign(N0(a,c))}),l}),bb=e=>{let t=Xr.get(e);return t===void 0&&(t=new s0,t.colorNode=Y(0,0,0,1),t.isShadowPassMaterial=!0,t.name="ShadowMaterial",t.blending=0,t.fog=!1,Xr.set(e,t)),t},Nb=e=>{const t=Xr.get(e);t!==void 0&&(t.dispose(),Xr.delete(e))},E7=new Gt,k2=[],yb=(e,t,o,r)=>{k2[0]=e,k2[1]=t;let s=E7.get(k2);return(s===void 0||s.shadowType!==o||s.useVelocity!==r)&&(s=(i,n,a,l,u,c,d,h,f)=>{(i.castShadow===!0||i.receiveShadow&&o===3)&&(r&&(A6(i).useVelocity=!0),i.onBeforeShadow(e,i,a,t.camera,l,n.overrideMaterial,c),e.renderObject(i,n,a,l,u,c,d,h,f),i.onAfterShadow(e,i,a,t.camera,l,n.overrideMaterial,c))},s.shadowType=o,s.useVelocity=r,E7.set(k2,s)),k2[0]=null,k2[1]=null,s},Mb=B(({samples:e,radius:t,size:o,shadowPass:r,depthLayer:s})=>{const i=R(0).toVar("meanVertical"),n=R(0).toVar("squareMeanVertical"),a=e.lessThanEqual(R(1)).select(R(0),R(2).div(e.sub(1))),l=e.lessThanEqual(R(1)).select(R(0),R(-1));ie({start:Z1(0),end:Z1(e),type:"int",condition:"<"},({i:c})=>{const d=l.add(R(c).mul(a));let h=r.sample(I0(b3.xy,n1(0,d).mul(t)).div(o));r.value.isArrayTexture&&(h=h.depth(s)),h=h.x,i.addAssign(h),n.addAssign(h.mul(h))}),i.divAssign(e),n.divAssign(e);const u=Pt(n.sub(i.mul(i)).max(0));return n1(i,u)}),xb=B(({samples:e,radius:t,size:o,shadowPass:r,depthLayer:s})=>{const i=R(0).toVar("meanHorizontal"),n=R(0).toVar("squareMeanHorizontal"),a=e.lessThanEqual(R(1)).select(R(0),R(2).div(e.sub(1))),l=e.lessThanEqual(R(1)).select(R(0),R(-1));ie({start:Z1(0),end:Z1(e),type:"int",condition:"<"},({i:c})=>{const d=l.add(R(c).mul(a));let h=r.sample(I0(b3.xy,n1(d,0).mul(t)).div(o));r.value.isArrayTexture&&(h=h.depth(s)),i.addAssign(h.x),n.addAssign(I0(h.y.mul(h.y),h.x.mul(h.x)))}),i.divAssign(e),n.divAssign(e);const u=Pt(n.sub(i.mul(i)).max(0));return n1(i,u)}),Sb=[pb,mb,gb,vb],Vs,Ho=new N5,A5=class extends ib{static get type(){return"ShadowNode"}constructor(e,t=null){super(e),this.shadow=t||e.shadow,this.shadowMap=null,this.vsmShadowMapVertical=null,this.vsmShadowMapHorizontal=null,this.vsmMaterialVertical=null,this.vsmMaterialHorizontal=null,this._node=null,this._currentShadowType=null,this._cameraFrameId=new WeakMap,this.isShadowNode=!0,this.depthLayer=0}setupShadowFilter(e,{filterFn:t,depthTexture:o,shadowCoord:r,shadow:s,depthLayer:i}){const n=r.x.greaterThanEqual(0).and(r.x.lessThanEqual(1)).and(r.y.greaterThanEqual(0)).and(r.y.lessThanEqual(1)).and(r.z.lessThanEqual(1)),a=t({depthTexture:o,shadowCoord:r,shadow:s,depthLayer:i});return n.select(a,R(1))}setupShadowCoord(e,t){const{shadow:o}=this,{renderer:r}=e,s=o.biasNode||G1("bias","float",o).setGroup(s1);let i=t,n;if(o.camera.isOrthographicCamera||r.logarithmicDepthBuffer!==!0)i=i.xyz.div(i.w),n=i.z;else{const a=i.w;i=i.xy.div(a);const l=G1("near","float",o.camera).setGroup(s1),u=G1("far","float",o.camera).setGroup(s1);n=Fn(a.negate(),l,u)}return i=W(i.x,i.y.oneMinus(),r.reversedDepthBuffer?n.sub(s):n.add(s)),i}getShadowFilterFn(e){return Sb[e]}setupRenderTarget(e,t){const o=new Te(e.mapSize.width,e.mapSize.height);o.name="ShadowDepthTexture",o.compareFunction=t.renderer.reversedDepthBuffer?518:515;const r=t.createRenderTarget(e.mapSize.width,e.mapSize.height);return r.texture.name="ShadowMap",r.texture.type=e.mapType,r.depthTexture=o,{shadowMap:r,depthTexture:o}}setupShadow(e){const{renderer:t,camera:o}=e,{light:r,shadow:s}=this,{depthTexture:i,shadowMap:n}=this.setupRenderTarget(s,e),a=t.shadowMap.type,l=t.hasCompatibility(R2.TEXTURE_COMPARE);if((a===1||a===2)&&l?(i.minFilter=H1,i.magFilter=H1):(i.minFilter=Ne,i.magFilter=Ne),s.camera.coordinateSystem=o.coordinateSystem,s.camera.updateProjectionMatrix(),a===3&&s.isPointLightShadow!==!0){i.compareFunction=null,n.depth>1?(n._vsmShadowMapVertical||(n._vsmShadowMapVertical=e.createRenderTarget(s.mapSize.width,s.mapSize.height,{format:d2,type:ne,depth:n.depth,depthBuffer:!1}),n._vsmShadowMapVertical.texture.name="VSMVertical"),this.vsmShadowMapVertical=n._vsmShadowMapVertical,n._vsmShadowMapHorizontal||(n._vsmShadowMapHorizontal=e.createRenderTarget(s.mapSize.width,s.mapSize.height,{format:d2,type:ne,depth:n.depth,depthBuffer:!1}),n._vsmShadowMapHorizontal.texture.name="VSMHorizontal"),this.vsmShadowMapHorizontal=n._vsmShadowMapHorizontal):(this.vsmShadowMapVertical=e.createRenderTarget(s.mapSize.width,s.mapSize.height,{format:d2,type:ne,depthBuffer:!1}),this.vsmShadowMapHorizontal=e.createRenderTarget(s.mapSize.width,s.mapSize.height,{format:d2,type:ne,depthBuffer:!1}));let x=P1(i);i.isArrayTexture&&(x=x.depth(this.depthLayer));let S=P1(this.vsmShadowMapVertical.texture);i.isArrayTexture&&(S=S.depth(this.depthLayer));const C=G1("blurSamples","float",s).setGroup(s1),w=G1("radius","float",s).setGroup(s1),L=G1("mapSize","vec2",s).setGroup(s1);let F=this.vsmMaterialVertical||(this.vsmMaterialVertical=new s0);F.fragmentNode=Mb({samples:C,radius:w,size:L,shadowPass:x,depthLayer:this.depthLayer}).context(e.getSharedContext()),F.name="VSMVertical",F=this.vsmMaterialHorizontal||(this.vsmMaterialHorizontal=new s0),F.fragmentNode=xb({samples:C,radius:w,size:L,shadowPass:S,depthLayer:this.depthLayer}).context(e.getSharedContext()),F.name="VSMHorizontal"}const u=G1("intensity","float",s).setGroup(s1),c=G1("normalBias","float",s).setGroup(s1),d=In(r),h=y3.mul(c);let f;!t.highPrecision||e.material.receivedShadowPositionNode||e.context.shadowPositionWorld?f=d.mul(_5.add(h)):f=o1("mat4").onObjectUpdate(({object:x},S)=>S.value.multiplyMatrices(d.value,x.matrixWorld)).mul(u0).add(d.mul(Y(h,0)));const p=this.setupShadowCoord(e,f),m=s.filterNode||this.getShadowFilterFn(t.shadowMap.type)||null;if(m===null)throw new Error("THREE.WebGPURenderer: Shadow map type not supported yet.");const b=a===3&&s.isPointLightShadow!==!0?this.vsmShadowMapHorizontal.texture:i,N=this.setupShadowFilter(e,{filterFn:m,shadowTexture:n.texture,depthTexture:b,shadowCoord:p,shadow:s,depthLayer:this.depthLayer});let v;t.shadowMap.transmitted===!0&&(n.texture.isCubeTexture?v=D0(n.texture,p.xyz):(v=P1(n.texture,p),i.isArrayTexture&&(v=v.depth(this.depthLayer))));let y;v?y=B1(1,N.rgb.mix(v,1),u.mul(v.a)).toVar():y=B1(1,N,u).toVar(),this.shadowMap=n,this.shadow.map=n;const T=`${this.light.type} Shadow [ ${this.light.name||"ID: "+this.light.id} ]`;return v&&y.toInspector(`${T} / Color`,()=>this.shadowMap.texture.isCubeTexture?D0(this.shadowMap.texture,Ya()):P1(this.shadowMap.texture)),y.toInspector(`${T} / Depth`,()=>{const x=G1("near","float",this.shadow.camera),S=G1("far","float",this.shadow.camera);let C;this.shadowMap.texture.isCubeTexture?C=D0(this.shadowMap.depthTexture,Ya()).r:C=P1(this.shadowMap.depthTexture).r;let w;return this.shadow.camera.isPerspectiveCamera?w=On(C,x,S):w=pm(C,x,S),w=n3(w,x,S),w.oneMinus()})}setup(e){if(e.renderer.shadowMap.enabled!==!1)return B(()=>{const t=e.renderer.shadowMap.type;this._currentShadowType!==t&&(this._reset(),this._node=null);let o=this._node;return this.setupShadowPosition(e),o===null&&(this._node=o=this.setupShadow(e),this._currentShadowType=t),e.material.receivedShadowNode&&(o=e.material.receivedShadowNode(o)),o})()}renderShadow(e){const{shadow:t,shadowMap:o,light:r}=this,{renderer:s,scene:i}=e;t.updateMatrices(r),o.setSize(t.mapSize.width,t.mapSize.height,o.depth);const n=i.name;i.name=`Shadow Map [ ${r.name||"ID: "+r.id} ]`,s.render(i,t.camera),i.name=n}updateShadow(e){const{shadowMap:t,light:o,shadow:r}=this,{renderer:s,scene:i,camera:n}=e,a=s.shadowMap.type,l=t.depthTexture.version;this._depthVersionCached=l;const u=r.camera.layers.mask;(r.camera.layers.mask&4294967294)===0&&(r.camera.layers.mask=n.layers.mask);const c=s.getRenderObjectFunction(),d=s.getMRT(),h=d?d.has("velocity"):!1;Vs=hb(s,i,Vs),i.overrideMaterial=bb(o),s.setRenderObjectFunction(yb(s,r,a,h)),s.setClearColor(0,0),s.setRenderTarget(t),this.renderShadow(e),s.setRenderObjectFunction(c),a===3&&r.isPointLightShadow!==!0&&this.vsmPass(s),r.camera.layers.mask=u,fb(s,i,Vs)}vsmPass(e){const{shadow:t}=this,o=this.shadowMap.depth;this.vsmShadowMapVertical.setSize(t.mapSize.width,t.mapSize.height,o),this.vsmShadowMapHorizontal.setSize(t.mapSize.width,t.mapSize.height,o),e.setRenderTarget(this.vsmShadowMapVertical),Ho.material=this.vsmMaterialVertical,Ho.render(e),e.setRenderTarget(this.vsmShadowMapHorizontal),Ho.material=this.vsmMaterialHorizontal,Ho.render(e)}dispose(){this._reset(),super.dispose()}_reset(){this._currentShadowType=null,Nb(this.light),this.shadowMap&&(this.shadowMap.dispose(),this.shadowMap=null),this.vsmShadowMapVertical!==null&&(this.vsmShadowMapVertical.dispose(),this.vsmShadowMapVertical=null,this.vsmMaterialVertical.dispose(),this.vsmMaterialVertical=null),this.vsmShadowMapHorizontal!==null&&(this.vsmShadowMapHorizontal.dispose(),this.vsmShadowMapHorizontal=null,this.vsmMaterialHorizontal.dispose(),this.vsmMaterialHorizontal=null)}updateBefore(e){const{shadow:t}=this;let o=t.needsUpdate||t.autoUpdate;o&&(this._cameraFrameId[e.camera]===e.frameId&&(o=!1),this._cameraFrameId[e.camera]=e.frameId),o&&(this.updateShadow(e),this.shadowMap.depthTexture.version===this._depthVersionCached&&(t.needsUpdate=!1))}},Tb=(e,t)=>new A5(e,t),wb=new fe,W7=new v0,W3=new G,Qs=new G,_b=[new G(1,0,0),new G(-1,0,0),new G(0,-1,0),new G(0,1,0),new G(0,0,1),new G(0,0,-1)],Ab=[new G(0,-1,0),new G(0,-1,0),new G(0,0,-1),new G(0,0,1),new G(0,-1,0),new G(0,-1,0)],Cb=[new G(1,0,0),new G(-1,0,0),new G(0,1,0),new G(0,-1,0),new G(0,0,1),new G(0,0,-1)],Rb=[new G(0,-1,0),new G(0,-1,0),new G(0,0,1),new G(0,0,-1),new G(0,-1,0),new G(0,-1,0)],Bb=B(({depthTexture:e,bd3D:t,dp:o})=>D0(e,t).compare(o)),Eb=B(({depthTexture:e,bd3D:t,dp:o,shadow:r})=>{const s=G1("radius","float",r).setGroup(s1),i=G1("mapSize","vec2",r).setGroup(s1),n=s.div(i.x),a=q0(t),l=ce(T2(t,a.x.greaterThan(a.z).select(W(0,1,0),W(1,0,0)))),u=T2(t,l),c=y5(b3.xy).mul(6.28318530718),d=ze(0,5,c),h=ze(1,5,c),f=ze(2,5,c),p=ze(3,5,c),m=ze(4,5,c);return D0(e,t.add(l.mul(d.x).add(u.mul(d.y)).mul(n))).compare(o).add(D0(e,t.add(l.mul(h.x).add(u.mul(h.y)).mul(n))).compare(o)).add(D0(e,t.add(l.mul(f.x).add(u.mul(f.y)).mul(n))).compare(o)).add(D0(e,t.add(l.mul(p.x).add(u.mul(p.y)).mul(n))).compare(o)).add(D0(e,t.add(l.mul(m.x).add(u.mul(m.y)).mul(n))).compare(o)).mul(1/5)}),Wb=B(({filterFn:e,depthTexture:t,shadowCoord:o,shadow:r},s)=>{const i=o.xyz.toConst(),n=i.abs().toConst(),a=n.x.max(n.y).max(n.z),l=o1("float").setGroup(s1).onRenderUpdate(()=>r.camera.near),u=o1("float").setGroup(s1).onRenderUpdate(()=>r.camera.far),c=G1("bias","float",r).setGroup(s1),d=R(1).toVar();return x1(a.sub(u).lessThanEqual(0).and(a.sub(l).greaterThanEqual(0)),()=>{let h;s.renderer.reversedDepthBuffer?(h=mm(a.negate(),l,u),h.subAssign(c)):s.renderer.logarithmicDepthBuffer?(h=Fn(a.negate(),l,u),h.addAssign(c)):(h=Q8(a.negate(),l,u),h.addAssign(c));const f=i.normalize();d.assign(e({depthTexture:t,bd3D:f,dp:h,shadow:r}))}),d}),Lb=class extends A5{static get type(){return"PointShadowNode"}constructor(e,t=null){super(e,t)}getShadowFilterFn(e){return e===0?Bb:Eb}setupShadowCoord(e,t){return t}setupShadowFilter(e,{filterFn:t,depthTexture:o,shadowCoord:r,shadow:s}){return Wb({filterFn:t,depthTexture:o,shadowCoord:r,shadow:s})}setupRenderTarget(e,t){const o=new hl(e.mapSize.width);o.name="PointShadowDepthTexture",o.compareFunction=t.renderer.reversedDepthBuffer?518:515;const r=t.createCubeRenderTarget(e.mapSize.width);return r.texture.name="PointShadowMap",r.depthTexture=o,{shadowMap:r,depthTexture:o}}renderShadow(e){const{shadow:t,shadowMap:o,light:r}=this,{renderer:s,scene:i}=e,n=t.camera,a=t.matrix,l=s.coordinateSystem===K4,u=l?_b:Cb,c=l?Ab:Rb;o.setSize(t.mapSize.width,t.mapSize.width);const d=s.autoClear,h=s.getClearColor(wb),f=s.getClearAlpha();s.autoClear=!1,s.setClearColor(t.clearColor,t.clearAlpha);for(let p=0;p<6;p++){s.setRenderTarget(o,p),s.clear();const m=r.distance||n.far;m!==n.far&&(n.far=m,n.updateProjectionMatrix()),W3.setFromMatrixPosition(r.matrixWorld),n.position.copy(W3),Qs.copy(n.position),Qs.add(u[p]),n.up.copy(c[p]),n.lookAt(Qs),n.updateMatrixWorld(),a.makeTranslation(-W3.x,-W3.y,-W3.z),W7.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),t._frustum.setFromProjectionMatrix(W7,n.coordinateSystem,n.reversedDepth);const b=i.name;i.name=`Point Light Shadow [ ${r.name||"ID: "+r.id} ] - Face ${p+1}`,s.render(i,n),i.name=b}s.autoClear=d,s.setClearColor(h,f)}},Ub=(e,t)=>new Lb(e,t),F2=class extends M3{static get type(){return"AnalyticLightNode"}constructor(e=null){super(),this.light=e,this.color=new fe,this.colorNode=e&&e.colorNode||o1(this.color).setGroup(s1),this.baseColorNode=null,this.shadowNode=null,this.shadowColorNode=null,this.isAnalyticLightNode=!0,this.updateType=u1.FRAME,e&&e.shadow&&(this._shadowDisposeListener=()=>{this.disposeShadow()},e.addEventListener("dispose",this._shadowDisposeListener))}dispose(){this._shadowDisposeListener&&this.light.removeEventListener("dispose",this._shadowDisposeListener),super.dispose()}disposeShadow(){this.shadowNode!==null&&(this.shadowNode.dispose(),this.shadowNode=null),this.shadowColorNode=null,this.baseColorNode!==null&&(this.colorNode=this.baseColorNode,this.baseColorNode=null)}getHash(){return this.light.uuid}getLightVector(e){return S5(this.light).sub(e.context.positionView||r0)}setupDirect(){}setupDirectRectArea(){}setupShadowNode(){return Tb(this.light)}setupShadow(e){const{renderer:t}=e;if(t.shadowMap.enabled===!1)return;let o=this.shadowColorNode;if(o===null){const r=this.light.shadow.shadowNode;let s;r!==void 0?s=K(r):s=this.setupShadowNode(),this.shadowNode=s,this.shadowColorNode=o=this.colorNode.mul(s),this.baseColorNode=this.colorNode}e.context.getShadow&&(o=e.context.getShadow(this,e)),this.colorNode=o}setup(e){this.colorNode=this.baseColorNode||this.colorNode,this.light.castShadow?e.object.receiveShadow&&this.setupShadow(e):this.shadowNode!==null&&(this.shadowNode.dispose(),this.shadowNode=null,this.shadowColorNode=null);const t=this.setupDirect(e),o=this.setupDirectRectArea(e);t&&e.lightsNode.setupDirectLight(e,this,t),o&&e.lightsNode.setupDirectRectAreaLight(e,this,o)}update(){const{light:e}=this;this.color.copy(e.color).multiplyScalar(e.intensity)}},C5=B(({lightDistance:e,cutoffDistance:t,decayExponent:o})=>{const r=e.pow(o).max(.01).reciprocal();return t.greaterThan(0).select(r.mul(e.div(t).pow4().oneMinus().clamp().pow2()),r)}),Ob=({color:e,lightVector:t,cutoffDistance:o,decayExponent:r})=>{const s=t.normalize(),i=t.length(),n=C5({lightDistance:i,cutoffDistance:o,decayExponent:r});return{lightDirection:s,lightColor:e.mul(n)}},Fb=class extends F2{static get type(){return"PointLightNode"}constructor(e=null){super(e),this.cutoffDistanceNode=o1(0).setGroup(s1),this.decayExponentNode=o1(2).setGroup(s1)}update(e){const{light:t}=this;super.update(e),this.cutoffDistanceNode.value=t.distance,this.decayExponentNode.value=t.decay}setupShadowNode(){return Ub(this.light)}setupDirect(e){return Ob({color:this.colorNode,lightVector:this.getLightVector(e),cutoffDistance:this.cutoffDistanceNode,decayExponent:this.decayExponentNode})}},r_=B(([e=L2()],{renderer:t,material:o})=>{const r=o8(e.mul(2).sub(1));let s;if(o.alphaToCoverage&&t.currentSamples>0){const i=R(r.fwidth()).toVar();s=Ce(i.oneMinus(),i.add(1),r).oneMinus()}else s=H0(r.greaterThan(1),0,1);return s}),Pb=B(([e,t])=>{const o=e.x,r=e.y,s=e.z;let i=t.element(0).mul(.886227);return i=i.add(t.element(1).mul(1.023328).mul(r)),i=i.add(t.element(2).mul(1.023328).mul(s)),i=i.add(t.element(3).mul(1.023328).mul(o)),i=i.add(t.element(4).mul(.858086).mul(o).mul(r)),i=i.add(t.element(5).mul(.858086).mul(r).mul(s)),i=i.add(t.element(6).mul(s.mul(s).mul(.743125).sub(.247708))),i=i.add(t.element(7).mul(.858086).mul(o).mul(s)),i=i.add(t.element(8).mul(.429043).mul(d1(o,o).sub(d1(r,r)))),i}),pe=new Dn,Db=class extends Vt{constructor(e,t){super(),this.renderer=e,this.nodes=t}update(e,t,o){const r=this.renderer,s=this.nodes.getBackgroundNode(e)||e.background;let i=!1;if(s===null)r._clearColor.getRGB(pe),pe.a=r._clearColor.a;else if(s.isColor===!0)s.getRGB(pe),pe.a=1,i=!0;else if(s.isNode===!0){const a=this.get(e),l=s;pe.copy(r._clearColor);let u=a.backgroundMesh;if(u===void 0){let v=function(){s.removeEventListener("dispose",v),u.material.dispose(),u.geometry.dispose()};const d=Y(l).mul(C7).context({getUV:()=>Fv.mul($f),getTextureLevel:()=>Ov}),h=xe.element(3).element(3).equal(1),f=Je(1,xe.element(1).element(1)).mul(3),p=h.select(u0.mul(f),u0),m=_2.mul(Y(p,0));let b=xe.mul(Y(m.xyz,1));b=b.setZ(b.w);const N=new s0;N.name="Background.material",N.side=1,N.depthTest=!1,N.depthWrite=!1,N.allowOverride=!1,N.fog=!1,N.lights=!1,N.vertexNode=b,N.colorNode=d,a.backgroundMeshNode=d,a.backgroundMesh=u=new He(new O9(1,32,32),N),u.frustumCulled=!1,u.name="Background.mesh",s.addEventListener("dispose",v)}const c=l.getCacheKey();a.backgroundCacheKey!==c&&(a.backgroundMeshNode.node=Y(l).mul(C7),a.backgroundMeshNode.needsUpdate=!0,u.material.needsUpdate=!0,a.backgroundCacheKey=c),t.unshift(u,u.geometry,u.material,0,0,null,null)}else I("Renderer: Unsupported background configuration.",s);const n=r.xr.getEnvironmentBlendMode();if(n==="additive"?pe.set(0,0,0,1):n==="alpha-blend"&&pe.set(0,0,0,0),r.autoClear===!0||i===!0){const a=o.clearColorValue;a.r=pe.r,a.g=pe.g,a.b=pe.b,a.a=pe.a,(r.backend.isWebGLBackend===!0||r.alpha===!0)&&(a.r*=a.a,a.g*=a.a,a.b*=a.a),o.depthClearValue=r.getClearDepth(),o.stencilClearValue=r.getClearStencil(),o.clearColor=r.autoClearColor===!0,o.clearDepth=r.autoClearDepth===!0,o.clearStencil=r.autoClearStencil===!0}else o.clearColor=!1,o.clearDepth=!1,o.clearStencil=!1}},kb=0,Qi=class{constructor(e="",t=[]){this.name=e,this.bindings=t,this.id=kb++}},Xb=class{constructor(e,t,o,r,s,i,n,a,l,u,c=[]){this.vertexShader=e,this.fragmentShader=t,this.computeShader=o,this.transforms=c,this.nodeAttributes=r,this.bindings=s,this.updateNodes=i,this.updateBeforeNodes=n,this.updateAfterNodes=a,this.observer=l,this.hardwareClipping=u,this.usedTimes=0}createBindings(){const e=[];for(const t of this.bindings)if(t.bindings[0].groupNode.shared!==!0){const o=new Qi(t.name,[]);e.push(o);for(const r of t.bindings)o.bindings.push(r.clone())}else e.push(t);return e}},L7=class{constructor(e,t,o=null){this.isNodeAttribute=!0,this.name=e,this.type=t,this.node=o}},Ib=class{constructor(e,t,o){this.isNodeUniform=!0,this.name=e,this.type=t,this.node=o}get value(){return this.node.value}set value(e){this.node.value=e}get id(){return this.node.id}get groupNode(){return this.node.groupNode}},R5=class{constructor(e,t,o=!1,r=null){this.isNodeVar=!0,this.name=e,this.type=t,this.readOnly=o,this.count=r}},Gb=class extends R5{constructor(e,t,o=null,r=null){super(e,t),this.needsInterpolation=!1,this.isNodeVarying=!0,this.interpolationType=o,this.interpolationSampling=r}},zb=class{constructor(e,t,o=""){this.name=e,this.type=t,this.code=o,Object.defineProperty(this,"isNodeCode",{value:!0})}},$b=0,Zs=class{constructor(e=null){this.id=$b++,this.nodesData=new WeakMap,this.parent=e}getData(e){let t=this.nodesData.get(e);return t===void 0&&this.parent!==null&&(t=this.parent.getData(e)),t}setData(e,t){this.nodesData.set(e,t)}},Vb=class{constructor(e,t){this.name=e,this.members=t,this.output=!1}},Qt=class{constructor(e,t){this.name=e,this.value=t,this.boundary=0,this.itemSize=0,this.offset=0,this.index=-1}setValue(e){this.value=e}getValue(){return this.value}},Qb=class extends Qt{constructor(e,t=0){super(e,t),this.isNumberUniform=!0,this.boundary=4,this.itemSize=1}},Zb=class extends Qt{constructor(e,t=new f1){super(e,t),this.isVector2Uniform=!0,this.boundary=8,this.itemSize=2}},qb=class extends Qt{constructor(e,t=new G){super(e,t),this.isVector3Uniform=!0,this.boundary=16,this.itemSize=3}},Hb=class extends Qt{constructor(e,t=new S1){super(e,t),this.isVector4Uniform=!0,this.boundary=16,this.itemSize=4}},Jb=class extends Qt{constructor(e,t=new fe){super(e,t),this.isColorUniform=!0,this.boundary=16,this.itemSize=3}},jb=class extends Qt{constructor(e,t=new o6){super(e,t),this.isMatrix2Uniform=!0,this.boundary=8,this.itemSize=4}},Kb=class extends Qt{constructor(e,t=new No){super(e,t),this.isMatrix3Uniform=!0,this.boundary=48,this.itemSize=12}},Yb=class extends Qt{constructor(e,t=new v0){super(e,t),this.isMatrix4Uniform=!0,this.boundary=64,this.itemSize=16}},eN=class extends Qb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},tN=class extends Zb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},oN=class extends qb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},rN=class extends Hb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},sN=class extends Jb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},iN=class extends jb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},nN=class extends Kb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},aN=class extends Yb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},lN=0,U7=new WeakMap,O7=new WeakMap,uN=new WeakMap,cN=new Map([[Int8Array,"int"],[Int16Array,"int"],[Int32Array,"int"],[Uint8Array,"uint"],[Uint16Array,"uint"],[Uint32Array,"uint"],[Float32Array,"float"]]),Jo=e=>/e/g.test(e)?String(e).replace(/\+/g,""):(e=Number(e),e+(e%1?"":".0")),B5=e=>{if(e.writeUsageCount>0)return!0;if(e.subBuildsCache!==void 0){for(const t in e.subBuildsCache)if(B5(e.subBuildsCache[t]))return!0}return!1},E5=class{constructor(e,t,o){this.object=e,this.material=e&&e.material||null,this.geometry=e&&e.geometry||null,this.renderer=t,this.parser=o,this.scene=null,this.camera=null,this.nodes=new Set,this.sequentialNodes=new Set,this.updateNodes=[],this.updateBeforeNodes=[],this.updateAfterNodes=[],this.hashNodes={},this.observer=null,this.lightsNode=null,this.environmentNode=null,this.fogNode=null,this.clippingContext=null,this.hardwareClipping=!1,this.vertexShader=null,this.fragmentShader=null,this.computeShader=null,this.flowNodes={vertex:[],fragment:[],compute:[]},this.flowCode={vertex:"",fragment:"",compute:""},this.uniforms={vertex:[],fragment:[],compute:[],index:0},this.structs={vertex:[],fragment:[],compute:[],index:0},this.types={vertex:[],fragment:[],compute:[],index:0},this.bindings={vertex:{},fragment:{},compute:{}},this.bindingsIndexes={},this.bindGroups=null,this.attributes=[],this.bufferAttributes=[],this.varyings=[],this.codes={},this.vars={},this.declarations={},this.flow={code:""},this.chaining=[],this.stack=Is(),this.stacks=[],this.tab=" ",this.currentFunctionNode=null,this.context={material:this.material},this.cache=new Zs,this.globalCache=this.cache,this.flowsData=new WeakMap,this.shaderStage=null,this.buildStage=null,this.subBuildLayers=[],this.activeStacks=[],this.subBuildFn=null,this.fnCall=null,Object.defineProperty(this,"id",{value:lN++})}isFlatShading(){return this.material.flatShading===!0||this.geometry.hasAttribute("normal")===!1}isOpaque(){const e=this.material;return e.transparent===!1&&e.blending===1&&e.alphaToCoverage===!1}createRenderTarget(e,t,o){return new zt(e,t,o)}createCubeRenderTarget(e,t){return new j8(e,t)}includes(e){return this.nodes.has(e)}getOutputType(e=0){let t="vec4";const o=this.renderer.getRenderTarget();if(o!==null){const r=o.textures[e].type,s=o.textures[e].format;let i="vec";r===1013?i="ivec":r===1014&&(i="uvec"),s===1028||s===1029?r===1013?t="int":r===1014?t="uint":t="float":s===1030||s===1031?t=`${i}2`:s===1022||s===1032?t=`${i}3`:t=`${i}4`}return t}getOutputStructName(){}_getBindGroup(e,t){const o=t[0].groupNode;let r=o.shared;if(r)for(let i=1;ic.nodeUniform.node.id-d.nodeUniform.node.id);for(const c of u.uniforms)i+=c.nodeUniform.node.id}else i+=u.nodeUniform.id;const n=this.renderer._currentRenderContext||this.renderer;let a=U7.get(n);a===void 0&&(a=new Map,U7.set(n,a));const l=p3(i);s=a.get(l),s===void 0&&(s=new Qi(e,t),a.set(l,s))}else s=new Qi(e,t);return s}getBindGroupArray(e,t){const o=this.bindings[t];let r=o[e];return r===void 0&&(this.bindingsIndexes[e]===void 0&&(this.bindingsIndexes[e]={binding:0,group:Object.keys(this.bindingsIndexes).length}),o[e]=r=[]),r}getBindings(){let e=this.bindGroups;if(e===null){const t={},o=this.bindings;for(const r of ys)for(const s in o[r]){const i=o[r][s],n=t[s]||(t[s]=[]);for(const a of i)n.includes(a)===!1&&n.push(a)}e=[];for(const r in t){const s=t[r],i=this._getBindGroup(r,s);e.push(i)}this.bindGroups=e}return e}sortBindingGroups(){const e=this.getBindings();e.sort((t,o)=>t.bindings[0].groupNode.order-o.bindings[0].groupNode.order);for(let t=0;t=0?`${Math.round(t)}u`:"0u";if(e==="bool")return t?"true":"false";if(e==="color")return`${this.getType("vec3")}( ${Jo(t.r)}, ${Jo(t.g)}, ${Jo(t.b)} )`;const o=this.getTypeLength(e),r=this.getComponentType(e),s=i=>this.generateConst(r,i);if(o===2)return`${this.getType(e)}( ${s(t.x)}, ${s(t.y)} )`;if(o===3)return`${this.getType(e)}( ${s(t.x)}, ${s(t.y)}, ${s(t.z)} )`;if(o===4&&e!=="mat2")return`${this.getType(e)}( ${s(t.x)}, ${s(t.y)}, ${s(t.z)}, ${s(t.w)} )`;if(o>=4&&t&&(t.isMatrix2||t.isMatrix3||t.isMatrix4))return`${this.getType(e)}( ${t.elements.map(s).join(", ")} )`;if(o>4)return`${this.getType(e)}()`;throw new Error(`THREE.NodeBuilder: Type '${e}' not found in generate constant attempt.`)}getType(e){return e==="color"?"vec3":e}hasGeometryAttribute(e){return this.geometry&&this.geometry.getAttribute(e)!==void 0}getAttribute(e,t){const o=this.attributes;for(const s of o)if(s.name===e)return s;const r=new L7(e,t);return this.registerDeclaration(r),o.push(r),r}getPropertyName(e){return e.name}isVector(e){return/vec\d/.test(e)}isMatrix(e){return/mat\d/.test(e)}isReference(e){return e==="void"||e==="property"||e==="sampler"||e==="samplerComparison"||e==="texture"||e==="cubeTexture"||e==="storageTexture"||e==="depthTexture"||e==="texture3D"}needsToWorkingColorSpace(){return!1}getComponentTypeFromTexture(e){const t=e.type;return e.isDepthTexture===!0?"float":t===1013?"int":t===1014?"uint":"float"}getElementType(e){return e==="mat2"?"vec2":e==="mat3"?"vec3":e==="mat4"?"vec4":this.getComponentType(e)}getComponentType(e){if(e=this.getVectorType(e),e==="float"||e==="bool"||e==="int"||e==="uint")return e;const t=/(b|i|u|)(vec|mat)([2-4])/.exec(e);return t===null?null:t[1]==="b"?"bool":t[1]==="i"?"int":t[1]==="u"?"uint":"float"}getVectorType(e){return e==="color"?"vec3":e==="texture"||e==="cubeTexture"||e==="storageTexture"||e==="texture3D"?"vec4":e}getTypeFromLength(e,t="float"){if(e===1)return t;let o=_6(e);const r=t==="float"?"":t[0];return/mat2/.test(t)===!0&&(o=o.replace("vec","mat")),r+o}getTypeFromArray(e){return cN.get(e.constructor)}isInteger(e){return/int|uint|(i|u)vec/.test(e)}getTypeFromAttribute(e){let t=e;e.isInterleavedBufferAttribute&&(t=e.data);const o=t.array,r=e.itemSize,s=e.normalized;let i;return!(e instanceof Q4)&&s!==!0&&(i=this.getTypeFromArray(o)),this.getTypeFromLength(r,i)}getTypeLength(e){const t=this.getVectorType(e),o=/vec([2-4])/.exec(t);return o!==null?Number(o[1]):t==="float"||t==="bool"||t==="int"||t==="uint"?1:/mat2/.test(e)===!0?4:/mat3/.test(e)===!0?9:/mat4/.test(e)===!0?16:0}getVectorFromMatrix(e){return e.replace("mat","vec")}changeComponentType(e,t){return this.getTypeFromLength(this.getTypeLength(e),t)}getIntegerType(e){const t=this.getComponentType(e);return t==="int"||t==="uint"?e:this.changeComponentType(e,"int")}setActiveStack(e){this.activeStacks.push(e)}removeActiveStack(e){if(this.activeStacks[this.activeStacks.length-1]===e)this.activeStacks.pop();else throw new Error("THREE.NodeBuilder: Invalid active stack removal.")}getActiveStack(){return this.activeStacks[this.activeStacks.length-1]}getBaseStack(){return this.activeStacks[0]}addStack(){this.stack=Is(this.stack);const e=L6();return this.stacks.push(e),Ur(this.stack),this.stack}removeStack(){const e=this.stack;for(const t of e.nodes){const o=this.getDataFromNode(t);o.stack=e}return this.stack=e.parent,Ur(this.stacks.pop()),e}getDataFromNode(e,t=this.shaderStage,o=null){o=o===null?e.isGlobal(this)?this.globalCache:this.cache:o;let r=o.getData(e);r===void 0&&(r={},o.setData(e,r)),r[t]===void 0&&(r[t]={});let s=r[t];if(this.subBuildLayers.length===0)return s;const i=r.any?r.any.subBuilds:null,n=this.getClosestSubBuild(i);return n&&(s.subBuildsCache===void 0&&(s.subBuildsCache={}),s=s.subBuildsCache[n]||(s.subBuildsCache[n]={}),s.subBuilds=i),s}getNodeProperties(e,t="any"){const o=this.getDataFromNode(e,t);return o.properties||(o.properties={outputNode:null})}getBufferAttributeFromNode(e,t,o=null){const r=this.getDataFromNode(e,"vertex");let s=r.bufferAttribute;if(s===void 0){const i=this.uniforms.index++;o===null&&(o="nodeAttribute"+i),s=new L7(o,t,e),this.bufferAttributes.push(s),r.bufferAttribute=s}return s}getStructTypeNode(e,t=this.shaderStage){return this.types[t][e]||null}getStructTypeFromNode(e,t,o=null,r=this.shaderStage){const s=this.getDataFromNode(e,r,this.globalCache);let i=s.structType;if(i===void 0){const n=this.structs.index++;o===null&&(o="StructType"+n),i=new Vb(o,t),this.structs[r].push(i),this.types[r][o]=e,s.structType=i}return i}getOutputStructTypeFromNode(e,t){const o=this.getStructTypeFromNode(e,t,"OutputType","fragment");return o.output=!0,o}getUniformFromNode(e,t,o=this.shaderStage,r=null){const s=this.getDataFromNode(e,o,this.globalCache);let i=s.uniform;if(i===void 0){const n=this.uniforms.index++;i=new Ib(r||"nodeUniform"+n,t,e),this.uniforms[o].push(i),this.registerDeclaration(i),s.uniform=i}return i}getVarFromNode(e,t=null,o=e.getNodeType(this),r=this.shaderStage,s=!1){const i=this.getDataFromNode(e,r),n=this.getSubBuildProperty("variable",i.subBuilds);let a=i[n];if(a===void 0){const l=s?"_const":"_var",u=this.vars[r]||(this.vars[r]=[]),c=this.vars[l]||(this.vars[l]=0);t===null&&(t=(s?"nodeConst":"nodeVar")+c,this.vars[l]++),n!=="variable"&&(t=this.getSubBuildProperty(t,i.subBuilds));const d=e.getArrayCount(this);a=new R5(t,o,s,d),s||u.push(a),this.registerDeclaration(a),i[n]=a}return a}isDeterministic(e){if(e.isMathNode)return this.isDeterministic(e.aNode)&&(e.bNode?this.isDeterministic(e.bNode):!0)&&(e.cNode?this.isDeterministic(e.cNode):!0);if(e.isOperatorNode)return this.isDeterministic(e.aNode)&&(e.bNode?this.isDeterministic(e.bNode):!0);if(e.isArrayNode){if(e.values!==null){for(const t of e.values)if(!this.isDeterministic(t))return!1}return!0}else if(e.isConstNode)return!0;return!1}getVaryingFromNode(e,t=null,o=e.getNodeType(this),r=null,s=null){const i=this.getDataFromNode(e,"any"),n=this.getSubBuildProperty("varying",i.subBuilds);let a=i[n];if(a===void 0){const l=this.varyings,u=l.length;t===null&&(t="nodeVarying"+u),n!=="varying"&&(t=this.getSubBuildProperty(t,i.subBuilds)),a=new Gb(t,o,r,s),l.push(a),this.registerDeclaration(a),i[n]=a}return a}registerDeclaration(e){const t=this.shaderStage,o=this.declarations[t]||(this.declarations[t]={}),r=e.name;let s=r,i=this.getPropertyName(e),n=1;for(;o[i]!==void 0;)s=r+"_"+n++,e.name=s,i=this.getPropertyName(e);s!==r&&j(`TSL: Declaration name '${r}' of '${e.type}' already in use. Renamed to '${s}'.`),o[i]=e}getCodeFromNode(e,t,o=this.shaderStage){const r=this.getDataFromNode(e);let s=r.code;if(s===void 0){const i=this.codes[o]||(this.codes[o]=[]),n=i.length;s=new zb("nodeCode"+n,t),i.push(s),r.code=s}return s}addFlowCodeHierarchy(e,t){const{flowCodes:o,flowCodeBlock:r}=this.getDataFromNode(e);let s=!0,i=t;for(;i;){if(r.get(i)===!0){s=!1;break}i=this.getDataFromNode(i).parentNodeBlock}if(s)for(const n of o)this.addLineFlowCode(n)}addLineFlowCodeBlock(e,t,o){const r=this.getDataFromNode(e),s=r.flowCodes||(r.flowCodes=[]),i=r.flowCodeBlock||(r.flowCodeBlock=new WeakMap);s.push(t),i.set(o,!0)}addLineFlowCode(e,t=null){return e===""?this:(t!==null&&this.context.nodeBlock&&this.addLineFlowCodeBlock(t,e,this.context.nodeBlock),e=this.tab+e,/;\s*$/.test(e)||(e=e+`; +`),this.flow.code+=e,this)}addFlowCode(e){return this.flow.code+=e,this}addFlowTab(){return this.tab+=" ",this}removeFlowTab(){return this.tab=this.tab.slice(0,-1),this}getFlowData(e){return this.flowsData.get(e)}flowNode(e){const t=e.getNodeType(this),o=this.flowChildNode(e,t);return this.flowsData.set(e,o),o}addInclude(e){this.currentFunctionNode!==null&&this.currentFunctionNode.includes.push(e)}buildFunctionNode(e){const t=this.renderer.backend;let o=O7.get(t);o===void 0&&(o=new WeakMap,O7.set(t,o));let r=o.get(e);if(r===void 0){r=new qv;const s=this.currentFunctionNode;this.currentFunctionNode=r,r.code=this.buildFunctionCode(e),this.currentFunctionNode=s,o.set(e,r)}return r}flowShaderNode(e){const t=e.layout,o={[Symbol.iterator](){let i=0;const n=Object.values(this);return{next:()=>({value:n[i],done:i++>=n.length})}}};for(const i of t.inputs)o[i.name]=new Cv(i.type,i.name);e.layout=null;const r=e.call(o),s=this.flowStagesNode(r,t.type);return e.layout=t,s}flowBuildStage(e,t,o=null){const r=this.getBuildStage();this.setBuildStage(t);const s=e.build(this,o);return this.setBuildStage(r),s}flowStagesNode(e,t=null){const o=this.flow,r=this.vars,s=this.declarations,i=this.cache,n=this.buildStage,a=this.stack,l={code:""};this.flow=l,this.vars={},this.declarations={},this.cache=new Zs,this.stack=Is();for(const u of Ns)this.setBuildStage(u),l.result=e.build(this,t);return l.vars=this.getVars(this.shaderStage),this.flow=o,this.vars=r,this.declarations=s,this.cache=i,this.stack=a,this.setBuildStage(n),l}getFunctionOperator(){return null}buildFunctionCode(){j("Abstract function.")}flowChildNode(e,t=null){const o=this.flow,r={code:""};return this.flow=r,r.result=e.build(this,t),this.flow=o,r}flowNodeFromShaderStage(e,t,o=null,r=null){const s=this.tab,i=this.cache,n=this.shaderStage,a=this.context;this.setShaderStage(e);const l={...this.context};delete l.nodeBlock,this.cache=this.globalCache,this.tab=" ",this.context=l;let u=null;if(this.buildStage==="generate"){const c=this.flowChildNode(t,o);r!==null&&(c.code+=`${this.tab+r} = ${c.result}; +`),this.flowCode[e]=this.flowCode[e]+c.code,u=c}else u=t.build(this);return this.setShaderStage(n),this.cache=i,this.tab=s,this.context=a,u}getAttributesArray(){return this.attributes.concat(this.bufferAttributes)}getAttributes(){j("Abstract function.")}getVaryings(){j("Abstract function.")}getVar(e,t,o=null){return`${o!==null?this.generateArrayDeclaration(e,o):this.getType(e)} ${t}`}getVars(e,t=!1){const o=[],r=this.vars[e];if(r!==void 0)for(const s of r)o.push(`${this.getVar(s.type,s.name,s.count)};`);return o.join(t?` +`:` + `)}getUniforms(){j("Abstract function.")}getCodes(e){const t=this.codes[e];let o="";if(t!==void 0)for(const r of t)o+=r.code+` +`;return o}getHash(){return this.vertexShader+this.fragmentShader+this.computeShader}setShaderStage(e){this.shaderStage=e}getShaderStage(){return this.shaderStage}setBuildStage(e){this.buildStage=e}getBuildStage(){return this.buildStage}buildCode(){j("Abstract function.")}get subBuild(){return this.subBuildLayers[this.subBuildLayers.length-1]||null}addSubBuild(e){this.subBuildLayers.push(e)}removeSubBuild(){return this.subBuildLayers.pop()}getClosestSubBuild(e){let t;if(e&&e.isNode?e.isShaderCallNodeInternal?t=e.shaderNode.subBuilds:e.isStackNode?t=[e.subBuild]:t=this.getDataFromNode(e,"any").subBuilds:e instanceof Set?t=[...e]:t=e,!t)return null;const o=this.subBuildLayers;for(let r=t.length-1;r>=0;r--){const s=t[r];if(o.includes(s))return s}return null}getSubBuildOutput(e){return this.getSubBuildProperty("outputNode",e)}getSubBuildProperty(e="",t=null){let o;t!==null?o=this.getClosestSubBuild(t):o=this.subBuildFn;let r;return o?r=e?o+"_"+e:o:r=e,r}prebuild(){const{object:e,renderer:t,material:o}=this;if(t.contextNode.isContextNode===!0?this.context={...this.context,...t.contextNode.getFlowContextData()}:I('NodeBuilder: "renderer.contextNode" must be an instance of `context()`.'),o&&o.contextNode&&(o.contextNode.isContextNode===!0?this.context={...this.context,...o.contextNode.getFlowContextData()}:I('NodeBuilder: "material.contextNode" must be an instance of `context()`.')),o!==null){let r=t.library.fromMaterial(o);r===null&&(I(`NodeBuilder: Material "${o.type}" is not compatible.`),r=new s0),r.build(this)}else this.addFlow("compute",e)}build(){this.prebuild();for(const e of Ns){this.setBuildStage(e),this.context.position&&this.context.position.isNode&&this.flowNodeFromShaderStage("vertex",this.context.position);for(const t of ys){this.setShaderStage(t);const o=this.flowNodes[t];for(const r of o)e==="generate"?this.flowNode(r):r.build(this)}}return this.setBuildStage(null),this.setShaderStage(null),this.buildCode(),this.buildUpdateNodes(),this}async buildAsync(){this.prebuild();for(const e of Ns){this.setBuildStage(e),this.context.position&&this.context.position.isNode&&this.flowNodeFromShaderStage("vertex",this.context.position);for(const t of ys){this.setShaderStage(t);const o=this.flowNodes[t];for(const r of o)e==="generate"?this.flowNode(r):r.build(this);await n6()}}return this.setBuildStage(null),this.setShaderStage(null),this.buildCode(),this.buildUpdateNodes(),this}getSharedDataFromNode(e){let t=uN.get(e);return t===void 0&&(t={}),t}getNodeUniform(e,t){const o=this.getSharedDataFromNode(e);let r=o.cache;if(r===void 0){if(t==="float"||t==="int"||t==="uint")r=new eN(e);else if(t==="vec2"||t==="ivec2"||t==="uvec2")r=new tN(e);else if(t==="vec3"||t==="ivec3"||t==="uvec3")r=new oN(e);else if(t==="vec4"||t==="ivec4"||t==="uvec4")r=new rN(e);else if(t==="color")r=new sN(e);else if(t==="mat2")r=new iN(e);else if(t==="mat3")r=new nN(e);else if(t==="mat4")r=new aN(e);else throw new Error(`THREE.NodeBuilder: Uniform "${t}" not implemented.`);o.cache=r}return r}format(e,t,o){if(t=this.getVectorType(t),o=this.getVectorType(o),t===o||o===null||this.isReference(o))return e;const r=this.getTypeLength(t),s=this.getTypeLength(o);return r===16&&s===9?`${this.getType(o)}( ${e}[ 0 ].xyz, ${e}[ 1 ].xyz, ${e}[ 2 ].xyz )`:r===9&&s===4?`${this.getType(o)}( ${e}[ 0 ].xy, ${e}[ 1 ].xy )`:r>4||s>4||s===0?e:r===s?`${this.getType(o)}( ${e} )`:r>s?(e=o==="bool"?`all( ${e} )`:`${e}.${"xyz".slice(0,s)}`,this.format(e,this.getTypeFromLength(s,this.getComponentType(t)),o)):s===4&&r>1?`${this.getType(o)}( ${this.format(e,t,"vec3")}, 1.0 )`:r===2?`${this.getType(o)}( ${this.format(e,t,"vec2")}, 0.0 )`:(r===1&&s>1&&t!==this.getComponentType(o)&&(e=`${this.getType(this.getComponentType(o))}( ${e} )`),`${this.getType(o)}( ${e} )`)}getSignature(){return`// Three.js r185 - Node System +`}needsPreviousData(){const e=this.renderer.getMRT();return e&&e.has("velocity")||A6(this.object).useVelocity===!0}},F7=class{constructor(){this.time=0,this.deltaTime=0,this.frameId=0,this.renderId=0,this.updateMap=new WeakMap,this.updateBeforeMap=new WeakMap,this.updateAfterMap=new WeakMap,this.renderer=null,this.material=null,this.camera=null,this.object=null,this.scene=null}_getMaps(e,t){let o=e.get(t);return o===void 0&&(o={renderId:0,frameId:0},e.set(t,o)),o}updateBeforeNode(e){const t=e.getUpdateBeforeType(),o=e.updateReference(this);if(t===u1.FRAME){const r=this._getMaps(this.updateBeforeMap,o);if(r.frameId!==this.frameId){const s=r.frameId;r.frameId=this.frameId,e.updateBefore(this)===!1&&(r.frameId=s)}}else if(t===u1.RENDER){const r=this._getMaps(this.updateBeforeMap,o);if(r.renderId!==this.renderId){const s=r.renderId;r.renderId=this.renderId,e.updateBefore(this)===!1&&(r.renderId=s)}}else t===u1.OBJECT&&e.updateBefore(this)}updateAfterNode(e){const t=e.getUpdateAfterType(),o=e.updateReference(this);if(t===u1.FRAME){const r=this._getMaps(this.updateAfterMap,o);r.frameId!==this.frameId&&e.updateAfter(this)!==!1&&(r.frameId=this.frameId)}else if(t===u1.RENDER){const r=this._getMaps(this.updateAfterMap,o);r.renderId!==this.renderId&&e.updateAfter(this)!==!1&&(r.renderId=this.renderId)}else t===u1.OBJECT&&e.updateAfter(this)}updateNode(e){const t=e.getUpdateType(),o=e.updateReference(this);if(t===u1.FRAME){const r=this._getMaps(this.updateMap,o);r.frameId!==this.frameId&&e.update(this)!==!1&&(r.frameId=this.frameId)}else if(t===u1.RENDER){const r=this._getMaps(this.updateMap,o);r.renderId!==this.renderId&&e.update(this)!==!1&&(r.renderId=this.renderId)}else t===u1.OBJECT&&e.update(this)}update(){this.frameId++,this.lastTime===void 0&&(this.lastTime=performance.now()),this.deltaTime=(performance.now()-this.lastTime)/1e3,this.lastTime=performance.now(),this.time+=this.deltaTime}},Gn=class{constructor(e,t,o=null,r="",s=!1){this.type=e,this.name=t,this.count=o,this.qualifier=r,this.isConst=s}};Gn.isNodeFunctionInput=!0;var dN=class extends F2{static get type(){return"AmbientLightNode"}constructor(e=null){super(e)}setup({context:e}){e.irradiance.addAssign(this.colorNode)}},hN=class extends F2{static get type(){return"DirectionalLightNode"}constructor(e=null){super(e)}setupDirect(){const e=this.colorNode;return{lightDirection:T5(this.light),lightColor:e}}},fN=class extends F2{static get type(){return"HemisphereLightNode"}constructor(e=null){super(e),this.lightPositionNode=x5(e),this.lightDirectionNode=this.lightPositionNode.normalize(),this.groundColorNode=o1(new fe).setGroup(s1)}update(e){const{light:t}=this;super.update(e),this.lightPositionNode.object3d=t,this.groundColorNode.value.copy(t.groundColor).multiplyScalar(t.intensity)}setup(e){const{colorNode:t,groundColorNode:o,lightDirectionNode:r}=this,s=y3.dot(r).mul(.5).add(.5),i=B1(o,t,s);e.context.irradiance.addAssign(i)}},zn=class extends F2{static get type(){return"SpotLightNode"}constructor(e=null){super(e),this.coneCosNode=o1(0).setGroup(s1),this.penumbraCosNode=o1(0).setGroup(s1),this.cutoffDistanceNode=o1(0).setGroup(s1),this.decayExponentNode=o1(0).setGroup(s1),this.colorNode=o1(this.color).setGroup(s1)}update(e){super.update(e);const{light:t}=this;this.coneCosNode.value=Math.cos(t.angle),this.penumbraCosNode.value=Math.cos(t.angle*(1-t.penumbra)),this.cutoffDistanceNode.value=t.distance,this.decayExponentNode.value=t.decay}getSpotAttenuation(e,t){const{coneCosNode:o,penumbraCosNode:r}=this;return Ce(o,r,t)}getLightCoord(e){const t=e.getNodeProperties(this);let o=t.projectionUV;return o===void 0&&(o=Kv(this.light,e.context.positionWorld),t.projectionUV=o),o}setupDirect(e){const{colorNode:t,cutoffDistanceNode:o,decayExponentNode:r,light:s}=this,i=this.getLightVector(e),n=i.normalize(),a=n.dot(T5(s)),l=this.getSpotAttenuation(e,a),u=i.length(),c=C5({lightDistance:u,cutoffDistance:o,decayExponent:r});let d=t.mul(l).mul(c),h,f;return s.colorNode?(f=this.getLightCoord(e),h=s.colorNode(f)):s.map&&(f=this.getLightCoord(e),h=P1(s.map,f.xy).onRenderUpdate(()=>s.map)),h&&(d=f.mul(2).sub(1).abs().lessThan(1).all().select(d.mul(h),d)),{lightColor:d,lightDirection:n}}},pN=class extends zn{static get type(){return"IESSpotLightNode"}constructor(e=null){super(e),this._iesTextureNode=null}getSpotAttenuation(e,t){const o=this.light.iesMap;let r=null;if(o&&o.isTexture===!0){const s=t.acos().mul(1/Math.PI);this._iesTextureNode=P1(o,n1(s,0),0),r=this._iesTextureNode.r}else r=super.getSpotAttenuation(e,t);return r}update(e){super.update(e),this._iesTextureNode!==null&&this.light.iesMap&&(this._iesTextureNode.value=this.light.iesMap)}},mN=class extends F2{static get type(){return"LightProbeNode"}constructor(e=null){super(e);const t=[];for(let o=0;o<9;o++)t.push(new G);this.lightProbe=P0(t)}update(e){const{light:t}=this;super.update(e);for(let o=0;o<9;o++)this.lightProbe.array[o].copy(t.sh.coefficients[o]).multiplyScalar(t.intensity)}setup(e){const t=Pb(y3,this.lightProbe);e.context.irradiance.addAssign(t)}},gN=B(([e,t])=>{const o=e.abs().sub(t);return ft(N0(o,0)).add(u3(N0(o.x,o.y),0))}),vN=class extends zn{static get type(){return"ProjectorLightNode"}update(e){super.update(e);const t=this.light;if(this.penumbraCosNode.value=Math.min(Math.cos(t.angle*(1-t.penumbra)),.99999),t.aspect===null){let o=1;t.map!==null&&(o=t.map.width/t.map.height),t.shadow.aspect=o}else t.shadow.aspect=t.aspect}getSpotAttenuation(e){const t=R(0),o=this.penumbraCosNode,r=In(this.light).mul(e.context.positionWorld||d3);return x1(r.w.greaterThan(0),()=>{const s=r.xyz.div(r.w),i=gN(s.xy.sub(n1(.5)),n1(.5)),n=Je(-1,F0(1,q6(o)).sub(1));t.assign(Tn(i.mul(-2).mul(n)))}),t}},qs=new v0,jo=new v0,L3=null,bN=class extends F2{static get type(){return"RectAreaLightNode"}constructor(e=null){super(e),this.halfHeight=o1(new G).setGroup(s1),this.halfWidth=o1(new G).setGroup(s1),this.updateType=u1.RENDER}update(e){super.update(e);const{light:t}=this,o=e.camera.matrixWorldInverse;jo.identity(),qs.copy(t.matrixWorld),qs.premultiply(o),jo.extractRotation(qs),this.halfWidth.value.set(t.width*.5,0,0),this.halfHeight.value.set(0,t.height*.5,0),this.halfWidth.value.applyMatrix4(jo),this.halfHeight.value.applyMatrix4(jo)}setupDirectRectArea(e){let t,o;e.isAvailable("float32Filterable")?(t=P1(L3.LTC_FLOAT_1),o=P1(L3.LTC_FLOAT_2)):(t=P1(L3.LTC_HALF_1),o=P1(L3.LTC_HALF_2));const{colorNode:r,light:s}=this;return{lightColor:r,lightPosition:S5(s),halfWidth:this.halfWidth,halfHeight:this.halfHeight,ltc_1:t,ltc_2:o}}static setLTC(e){L3=e}},W5=class{parseFunction(){j("Abstract function.")}},$n=class{constructor(e,t,o="",r=""){this.type=e,this.inputs=t,this.name=o,this.precision=r}getCode(){j("Abstract function.")}};$n.isNodeFunction=!0;var NN=/^\s*(highp|mediump|lowp)?\s*([a-z_0-9]+)\s*([a-z_0-9]+)?\s*\(([\s\S]*?)\)/i,yN=/[a-z_0-9]+/gi,MN="#pragma main",xN=e=>{e=e.trim();const t=e.indexOf(MN),o=t!==-1?e.slice(t+12):e,r=o.match(NN);if(r!==null&&r.length===5){const s=r[4],i=[];let n=null;for(;(n=yN.exec(s))!==null;)i.push(n);const a=[];let l=0;for(;l{let a=this._createNodeBuilder(e,e.material);try{t?await a.buildAsync():a.build()}catch(l){a=this._createNodeBuilder(e,new s0),t?await a.buildAsync():a.build(),I("TSL: "+l)}return a};if(t)return n().then(a=>(r=this._createNodeBuilderState(a),s.set(i,r),r.usedTimes++,o.nodeBuilderState=r,r));{let a=this._createNodeBuilder(e,e.material);try{a.build()}catch(l){a=this._createNodeBuilder(e,new s0),a.build();let u=l.stackTrace;!u&&l.stack&&(u=new E0(l.stack)),I("TSL: "+l,u)}r=this._createNodeBuilderState(a),s.set(i,r)}}r.usedTimes++,o.nodeBuilderState=r}return r}getForRenderAsync(e){const t=this.getForRender(e,!0);return t.then?t:Promise.resolve(t)}getForRenderDeferred(e){const t=this.get(e);if(t.nodeBuilderState!==void 0)return t.nodeBuilderState;const o=this.getForRenderCacheKey(e),r=this.nodeBuilderCache.get(o);return r!==void 0?(r.usedTimes++,t.nodeBuilderState=r,r):(t.pendingBuild!==!0&&(t.pendingBuild=!0,this._buildQueue.push(()=>this.getForRenderAsync(e).then(()=>{t.pendingBuild=!1})),this._processBuildQueue()),null)}_processBuildQueue(){this._buildInProgress||this._buildQueue.length===0||(this._buildInProgress=!0,this._buildQueue.shift()().then(()=>{this._buildInProgress=!1,this._processBuildQueue()}))}delete(e){if(e.isRenderObject){const t=this.get(e).nodeBuilderState;t!==void 0&&(t.usedTimes--,t.usedTimes===0&&this.nodeBuilderCache.delete(this.getForRenderCacheKey(e)))}return super.delete(e)}getForCompute(e){const t=this.get(e);let o=t.nodeBuilderState;if(o===void 0||t.version!==e.version){const r=this.backend.createNodeBuilder(e,this.renderer);r.build(),o=this._createNodeBuilderState(r),t.nodeBuilderState=o,t.version=e.version}return o}_createNodeBuilderState(e){return new Xb(e.vertexShader,e.fragmentShader,e.computeShader,e.getAttributesArray(),e.getBindings(),e.updateNodes,e.updateBeforeNodes,e.updateAfterNodes,e.observer,e.hardwareClipping,e.transforms)}getEnvironmentNode(e){if(this.renderer.lighting.enabled===!1)return null;this.updateEnvironment(e);let t=null;if(e.environmentNode&&e.environmentNode.isNode)t=e.environmentNode;else{const o=this.get(e);o.environmentNode&&(t=o.environmentNode)}return t}getBackgroundNode(e){this.updateBackground(e);let t=null;if(e.backgroundNode&&e.backgroundNode.isNode)t=e.backgroundNode;else{const o=this.get(e);o.backgroundNode&&(t=o.backgroundNode)}return t}getFogNode(e){return this.updateFog(e),e.fogNode||this.get(e).fogNode||null}getCacheKey(e,t){K0[0]=e,K0[1]=t;const o=this.renderer.info.calls,r=this.callHashCache.get(K0)||{};if(r.callId!==o){if(rt.push(this.renderer.getOutputRenderTarget()&&this.renderer.getOutputRenderTarget().multiview?1:0),rt.push(this.renderer.lighting.enabled?1:0),this.renderer.lighting.enabled){rt.push(t.getCacheKey(!0)),rt.push(this.renderer.shadowMap.enabled?1:0),rt.push(this.renderer.shadowMap.type);const i=this.getEnvironmentNode(e);i&&rt.push(i.getCacheKey())}const s=this.getFogNode(e);s&&rt.push(s.getCacheKey()),r.callId=o,r.cacheKey=To(rt),this.callHashCache.set(K0,r),rt.length=0}return K0[0]=null,K0[1]=null,r.cacheKey}get isToneMappingState(){return!this.renderer.getRenderTarget()}updateBackground(e){const t=this.get(e),o=e.background;if(o){const r=e.backgroundBlurriness===0&&t.backgroundBlurriness>0||e.backgroundBlurriness>0&&t.backgroundBlurriness===0;(t.background!==o||r)&&(t.backgroundNode=this.getCacheNode("background",o,()=>{if(o.isCubeTexture===!0||o.mapping===303||o.mapping===304||o.mapping===306){if(e.backgroundBlurriness>0||o.mapping===306)return l5(o);{let s;return o.isCubeTexture===!0?s=D0(o):s=P1(o),Y8(s)}}else{if(o.isTexture===!0)return P1(o,Bt.flipY()).setUpdateMatrix(!0);o.isColor!==!0&&I("WebGPUNodes: Unsupported background configuration.",o)}},r),t.background=o,t.backgroundBlurriness=e.backgroundBlurriness)}else t.backgroundNode&&(delete t.backgroundNode,delete t.background)}getCacheNode(e,t,o,r=!1){const s=this.cacheLib[e]||(this.cacheLib[e]=new WeakMap);let i=s.get(t);return(i===void 0||r)&&(i=o(),s.set(t,i)),i}updateFog(e){const t=this.get(e),o=e.fog;o?t.fog!==o&&(t.fogNode=this.getCacheNode("fog",o,()=>{if(o.isFogExp2){const r=G1("color","color",o).setGroup(s1),s=G1("density","float",o).setGroup(s1);return B7(r,Jv(s))}else if(o.isFog){const r=G1("color","color",o).setGroup(s1),s=G1("near","float",o).setGroup(s1),i=G1("far","float",o).setGroup(s1);return B7(r,Hv(s,i))}else I("Renderer: Unsupported fog configuration.",o)}),t.fog=o):(delete t.fogNode,delete t.fog)}updateEnvironment(e){const t=this.get(e),o=e.environment;o?t.environment!==o&&(t.environmentNode=this.getCacheNode("environment",o,()=>{if(o.isCubeTexture===!0)return D0(o);if(o.isTexture===!0)return P1(o);I("Nodes: Unsupported environment configuration.",o)}),t.environment=o):t.environmentNode&&(delete t.environmentNode,delete t.environment)}getNodeFrame(e=this.renderer,t=null,o=null,r=null,s=null){const i=this.nodeFrame;return i.renderer=e,i.scene=t,i.object=o,i.camera=r,i.material=s,i}getNodeFrameForRender(e){return this.getNodeFrame(e.renderer,e.scene,e.object,e.camera,e.material)}getOutputCacheKey(){const e=this.renderer;return e.toneMapping+","+e.currentColorSpace+","+e.xr.isPresenting}getOutputNode(e){const t=this.renderer;let o;return e.isArrayTexture?this.backend.isWebGLBackend?o=P1(e,Bt).depth(U2("gl_ViewID_OVR")).renderOutput(t.toneMapping,t.currentColorSpace):o=P1(e,Bt).depth(P7).renderOutput(t.toneMapping,t.currentColorSpace):o=P1(e,Bt).renderOutput(t.toneMapping,t.currentColorSpace),o}setOutputLayerIndex(e){P7.value=e}updateBefore(e){const t=e.getNodeBuilderState();for(const o of t.updateBeforeNodes)this.getNodeFrameForRender(e).updateBeforeNode(o)}updateAfter(e){const t=e.getNodeBuilderState();for(const o of t.updateAfterNodes)this.getNodeFrameForRender(e).updateAfterNode(o)}updateForCompute(e){const t=this.getNodeFrame(),o=this.getForCompute(e);for(const r of o.updateNodes)t.updateNode(r)}updateForRender(e){const t=this.getNodeFrameForRender(e),o=e.getNodeBuilderState();for(const r of o.updateNodes)t.updateNode(r)}needsRefresh(e){const t=this.getNodeFrameForRender(e);return e.getMonitor().needsRefresh(e,t)}dispose(){super.dispose(),this.nodeFrame=new F7,this.nodeBuilderCache=new Map,this.cacheLib={}}},Hs=new $4,D7=class L5{constructor(t=null){this.version=0,this.clipIntersection=null,this.cacheKey="",this.shadowPass=!1,this.viewMatrix=new v0,this.viewNormalMatrix=new No,this.clippingGroupContexts=new WeakMap,this.intersectionPlanes=[],this.unionPlanes=[],this.parentVersion=null,t!==null&&(this.viewMatrix=t.viewMatrix,this.viewNormalMatrix=t.viewNormalMatrix,this.clippingGroupContexts=t.clippingGroupContexts,this.shadowPass=t.shadowPass)}projectPlanes(t,o,r){const s=t.length;for(let i=0;i0&&(z1("THREE.XRManager: WebGPU XR does not support MSAA yet. Disabling MSAA for this XR session."),this._currentSamples===null&&(this._currentSamples=e.samples),e._samples=0)}}async _initWebGPUSession(e){const t=this.getWebGPUBinding(),o=t.createProjectionLayer({colorFormat:t.getPreferredColorFormat(),depthStencilFormat:"depth24plus"});this._glProjLayer=o,e.updateRenderState({layers:[o]}),this._referenceSpace=await e.requestReferenceSpace(this.getReferenceSpaceType()),this._xrRenderTarget=new zt(o.textureWidth,o.textureHeight,{depth:2,minFilter:H1,magFilter:H1,depthBuffer:!0,multiview:!1,useArrayDepthTexture:!0,samples:0}),this._xrRenderTarget.texture.isArrayTexture=!0,this._useMultiviewIfPossible===!0&&z1("THREE.XRManager: WebGPU XR does not support multiview yet. Disabling multiview for this XR session."),this._useMultiview=!1}_disposeWebGPUSession(){const e=this._renderer,t=this._xrRenderTarget;if(t===null||e.backend.isWebGPUBackend!==!0)return;const o=e.backend,r=e._textures,s=o.get?o.get(t):null;s&&(s.descriptors=void 0);const i=n=>{n!=null&&(o.delete&&o.delete(n),r.delete&&r.delete(n))};for(let n=0;nf8(c,o.toneMapping,o.outputColorSpace)}),G7.set(a,l))}else l=a;o.contextNode=l,o.setRenderTarget(n.renderTarget),n.rendercall(),o.contextNode=a}o.setRenderTarget(i),o._setXRLayerSize(s.x,s.y),this.isPresenting=r}getSession(){return this._session}async setSession(e){const t=this._renderer;t.initialized===!1&&await t.init(),this._gl=t.getContext();const o=this._gl;if(this._session=e,e!==null){if(e.addEventListener("select",this._onSessionEvent),e.addEventListener("selectstart",this._onSessionEvent),e.addEventListener("selectend",this._onSessionEvent),e.addEventListener("squeeze",this._onSessionEvent),e.addEventListener("squeezestart",this._onSessionEvent),e.addEventListener("squeezeend",this._onSessionEvent),e.addEventListener("end",this._onSessionEnd),e.addEventListener("inputsourceschange",this._onInputSourcesChange),this._validateWebGPUSession(),this._currentPixelRatio=t.getPixelRatio(),t.getSize(this._currentSize),this._currentAnimationContext=t._animation.getContext(),this._currentAnimationLoop=t._animation.getAnimationLoop(),t._animation.stop(),this._isWebGPUSession())await this._initWebGPUSession(e);else if(this._supportsLayers===!0){let r=null,s=null,i=null;const n=o.getContextAttributes();await t.backend.makeXRCompatible(),this.setFoveation(this.getFoveation()),t.depth&&(i=t.stencil?o.DEPTH24_STENCIL8:o.DEPTH_COMPONENT24,r=t.stencil?Ot:p2,s=t.stencil?Ft:O0);const a={colorFormat:o.RGBA8,depthFormat:i,scaleFactor:this._framebufferScaleFactor,clearOnAccess:!1};this._useMultiviewIfPossible&&t.hasFeature("OVR_multiview2")&&(a.textureType="texture-array",this._useMultiview=!0),this._glBinding=this.getBinding();const l=this._glBinding.createProjectionLayer(a),u=[l];this._glProjLayer=l,t.setPixelRatio(1),t._setXRLayerSize(l.textureWidth,l.textureHeight);const c=this._useMultiview?2:1,d=new Te(l.textureWidth,l.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,r,c);if(this._xrRenderTarget=new Z3(l.textureWidth,l.textureHeight,{format:Ve,type:ye,colorSpace:t.outputColorSpace,depthTexture:d,stencilBuffer:t.stencil,samples:n.antialias?4:0,resolveDepthBuffer:l.ignoreDepthValues===!1,resolveStencilBuffer:l.ignoreDepthValues===!1,depth:this._useMultiview?2:1,multiview:this._useMultiview}),this._xrRenderTarget._hasExternalTextures=!0,this._xrRenderTarget.depth=this._useMultiview?2:1,this._sessionUsesLayers=e.enabledFeatures.includes("layers"),this._referenceSpace=await e.requestReferenceSpace(this.getReferenceSpaceType()),this._sessionUsesLayers)for(const h of this._layers)h.plane.material=new i2({color:16777215,side:h.type==="cylinder"?1:0}),h.plane.material.blending=5,h.plane.material.blendEquation=100,h.plane.material.blendSrc=200,h.plane.material.blendDst=200,h.xrlayer=this._createXRLayer(h),u.unshift(h.xrlayer);e.updateRenderState({layers:u})}else{await t.backend.makeXRCompatible(),this.setFoveation(this.getFoveation());const r={antialias:t.currentSamples>0,alpha:!0,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:this.getFramebufferScaleFactor()},s=new XRWebGLLayer(e,o,r);this._glBaseLayer=s,e.updateRenderState({baseLayer:s}),t.setPixelRatio(1),t._setXRLayerSize(s.framebufferWidth,s.framebufferHeight),this._xrRenderTarget=new Z3(s.framebufferWidth,s.framebufferHeight,{format:Ve,type:ye,colorSpace:t.outputColorSpace,stencilBuffer:t.stencil,resolveDepthBuffer:s.ignoreDepthValues===!1,resolveStencilBuffer:s.ignoreDepthValues===!1}),this._xrRenderTarget._isOpaqueFramebuffer=!0,this._referenceSpace=await e.requestReferenceSpace(this.getReferenceSpaceType())}t._animation.setAnimationLoop(this._onAnimationFrame),t._animation.setContext(e),t._animation.start(),this.isPresenting=!0,this.dispatchEvent({type:"sessionstart"})}}updateCamera(e){const t=this._session;if(t===null)return;const o=e.near,r=e.far,s=this._cameraXR,i=this._cameraL,n=this._cameraR;s.near=n.near=i.near=o,s.far=n.far=i.far=r,s.isMultiViewCamera=this._useMultiview,(this._currentDepthNear!==s.near||this._currentDepthFar!==s.far)&&(t.updateRenderState({depthNear:s.near,depthFar:s.far}),this._currentDepthNear=s.near,this._currentDepthFar=s.far),s.layers.mask=e.layers.mask|6,i.layers.mask=s.layers.mask&-5,n.layers.mask=s.layers.mask&-3;const a=e.parent,l=s.cameras;z7(s,a);for(let u=0;u=0&&(o[i]=null,t[i].disconnect(s))}for(let r=0;r=o.length){o.push(s),i=a;break}else if(o[a]===null){o[a]=s,i=a;break}if(i===-1)break}const n=t[i];n&&n.connect(s)}}function FN(e){return e.type==="quad"?this._glBinding.createQuadLayer({transform:new XRRigidTransform(e.translation,e.quaternion),width:e.width/2,height:e.height/2,space:this._referenceSpace,viewPixelWidth:e.pixelwidth,viewPixelHeight:e.pixelheight,clearOnAccess:!1}):this._glBinding.createCylinderLayer({transform:new XRRigidTransform(e.translation,e.quaternion),radius:e.radius,centralAngle:e.centralAngle,aspectRatio:e.aspectRatio,space:this._referenceSpace,viewPixelWidth:e.pixelwidth,viewPixelHeight:e.pixelheight,clearOnAccess:!1})}function PN(e,t){if(t===void 0)return;const o=this._cameraXR,r=this._renderer,s=r.backend,i=this._glBaseLayer,n=this.getReferenceSpace(),a=t.getViewerPose(n);if(this._xrFrame=t,a!==null){const l=a.views,u=this._isWebGPUSession()?this._getWebGPUViewData(l):null;this._glBaseLayer!==null&&u===null&&s.setXRTarget(i.framebuffer);let c=!1;l.length!==o.cameras.length&&(o.cameras.length=0,c=!0);for(let h=0;h{await this.compileAsync(m,p,f);const b=this.needsFrameBufferTarget&&this._renderTarget===null?this._getFrameBufferTarget():this._renderTarget||this._outputRenderTarget,N=this._renderLists.get(f,p),v=this._renderContexts.get(b,this._mrt),y=f.overrideMaterial||m.material,{fragmentShader:T,vertexShader:x}=this._objects.get(m,y,f,p,N.lightsNode,v,v.clippingContext).getNodeBuilderState();return{fragmentShader:T,vertexShader:x}}}}async init(){return this._initPromise!==null?this._initPromise:(this._initPromise=new Promise(async(e,t)=>{let o=this.backend;try{await o.init(this)}catch(r){if(this._getFallback!==null)try{this.backend=o=this._getFallback(r),await o.init(this)}catch(s){t(s);return}else{t(r);return}}this._nodes=new wN(this,o),this._animation=new ov(this,this._nodes,this.info),this._attributes=new uv(o,this.info),this._background=new Db(this,this._nodes),this._geometries=new cv(this._attributes,this.info),this._textures=new wv(this,o,this.info),this._pipelines=new mv(o,this._nodes,this.info),this._bindings=new gv(o,this._nodes,this._textures,this._attributes,this._pipelines,this.info),this._objects=new nv(this,this._nodes,this._geometries,this._pipelines,this._bindings,this.info),this._renderLists=new yv(this.lighting),this._bundles=new AN,this._renderContexts=new Sv(this),this._animation.start(),this._initialized=!0,this._inspector.init(),e(this)}),this._initPromise)}get domElement(){return this._canvasTarget.domElement}get coordinateSystem(){return this.backend.coordinateSystem}async compileAsync(e,t,o=null){if(this._isDeviceLost===!0)return;this._initialized===!1&&await this.init();const r=this._nodes.nodeFrame,s=r.renderId,i=this._currentRenderContext,n=this._currentRenderObjectFunction,a=this._handleObjectFunction,l=this._compilationPromises;o===null&&(o=e);const u=e.isScene===!0?e:o.isScene===!0?o:$7,c=this.needsFrameBufferTarget&&this._renderTarget===null?this._getFrameBufferTarget():this._renderTarget||this._outputRenderTarget,d=this._renderContexts.get(c,this._mrt),h=this._activeMipmapLevel,f=[];this._currentRenderContext=d,this._currentRenderObjectFunction=this.renderObject,this._handleObjectFunction=this._createObjectPipeline,this._compilationPromises=f,r.renderId++,r.update(),d.depth=this.depth,d.stencil=this.stencil,d.clippingContext||(d.clippingContext=new D7),d.clippingContext.updateGlobal(u,t),e.matrixWorldAutoUpdate===!0&&e.updateMatrixWorld(),t=this._updateCamera(t),u.onBeforeRender(this,e,t,c);const p=t.isArrayCamera?Yo:Ko;t.isArrayCamera?p.setFromArrayCamera(t):(I2.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),p.setFromProjectionMatrix(I2,t.coordinateSystem,t.reversedDepth));const m=this._renderLists.get(u,t);if(m.begin(),this._projectObject(e,t,0,m,d.clippingContext),o!==e&&o.traverseVisible(function(T){T.isLight&&T.layers.test(t.layers)&&m.pushLight(T)}),m.finish(),c!==null){this._textures.updateRenderTarget(c,h);const T=this._textures.get(c);d.textures=T.textures,d.depthTexture=T.depthTexture}else d.textures=null,d.depthTexture=null;o!==e?this._background.update(o,m,d):this._background.update(u,m,d);const b=m.opaque,N=m.transparent,v=m.transparentDoublePass,y=m.lightsNode;this.opaque===!0&&b.length>0&&this._renderObjects(b,t,u,y),this.transparent===!0&&N.length>0&&this._renderTransparents(N,v,t,u,y),r.renderId=s,this._currentRenderContext=i,this._currentRenderObjectFunction=n,this._handleObjectFunction=a,this._compilationPromises=l;for(const T of f){const x=this._objects.get(T.object,T.material,T.scene,T.camera,T.lightsNode,T.renderContext,T.clippingContext,T.passId);x.drawRange=T.object.geometry.drawRange,x.group=T.group,await this._nodes.getForRenderAsync(x),this._nodes.updateBefore(x),this._geometries.updateForRender(x),this._nodes.updateForRender(x),this._bindings.updateForRender(x);const S=[];this._pipelines.getForRender(x,S),S.length>0&&await Promise.all(S),this._nodes.updateAfter(x),await n6()}}async renderAsync(e,t){z1('Renderer: "renderAsync()" has been deprecated. Use "render()" and "await renderer.init();" when creating the renderer.'),await this.init(),this.render(e,t)}async waitForGPU(){I("Renderer: waitForGPU() has been removed. Read https://github.com/mrdoob/three.js/issues/32012 for more information.")}set inspector(e){this._inspector!==null&&this._inspector.setRenderer(null),this._inspector=e,this._inspector.setRenderer(this)}get inspector(){return this._inspector}set highPrecision(e){const t=this.contextNode.value;e===!0?(t.modelViewMatrix=ka,t.modelNormalViewMatrix=Xa):this.highPrecision&&(delete t.modelViewMatrix,delete t.modelNormalViewMatrix)}get highPrecision(){const e=this.contextNode.value;return e.modelViewMatrix===ka&&e.modelNormalViewMatrix===Xa}setMRT(e){return this._mrt=e,this}getMRT(){return this._mrt}getOutputBufferType(){return this._outputBufferType}getColorBufferType(){return z1('Renderer: ".getColorBufferType()" has been renamed to ".getOutputBufferType()".'),this.getOutputBufferType()}_onDeviceLost(e){let t=`THREE.WebGPURenderer: ${e.api} Device Lost: + +Message: ${e.message}`;e.reason&&(t+=` +Reason: ${e.reason}`),I(t),this._isDeviceLost=!0}_onError(e){let t=`WebGPURenderer: Uncaptured ${e.api} ${e.type}`;e.message&&(t+=`: ${e.message}`),I(t)}_bundleNeedsUpdate(e,t){return t.bundleGPU===void 0||e.version!==t.version}_renderBundle(e,t,o){const{bundleGroup:r,camera:s,renderList:i}=e,n=this._currentRenderContext,a=this._bundles.get(r,s,n),l=this.backend.get(a);if(this._bundleNeedsUpdate(r,l)){this.backend.beginBundle(n),this._currentRenderBundle=a;const{transparentDoublePass:u,transparent:c,opaque:d}=i;this.opaque===!0&&d.length>0&&this._renderObjects(d,s,t,o),this.transparent===!0&&c.length>0&&this._renderTransparents(c,u,s,t,o),this._currentRenderBundle=null,this.backend.finishBundle(n,a),l.version=r.version}else{const{renderObjects:u}=l;for(let c=0,d=u.length;c{l.removeEventListener("dispose",m),u.dispose(),this._frameBufferTargets.delete(l)};l.addEventListener("dispose",m),this._frameBufferTargets.set(l,u)}const c=this.getOutputRenderTarget();u.depthBuffer=n,u.stencilBuffer=a,c!==null?u.setSize(c.width,c.height,c.depth):u.setSize(s,i,1);const d=this._outputRenderTarget?this._outputRenderTarget.viewport:l._viewport,h=this._outputRenderTarget?this._outputRenderTarget.scissor:l._scissor,f=this._outputRenderTarget?1:l._pixelRatio,p=this._outputRenderTarget?this._outputRenderTarget.scissorTest:l._scissorTest;return u.viewport.copy(d),u.scissor.copy(h),u.viewport.multiplyScalar(f),u.scissor.multiplyScalar(f),u.scissorTest=p,u.multiview=c!==null?c.multiview:!1,u.useArrayDepthTexture=c!==null?c.useArrayDepthTexture:!1,u.resolveDepthBuffer=c!==null?c.resolveDepthBuffer:!0,u._autoAllocateDepthBuffer=c!==null?c._autoAllocateDepthBuffer:!1,u}_renderScene(e,t,o=!0){if(this._isDeviceLost===!0)return;const r=o?this._getFrameBufferTarget():null,s=this._nodes.nodeFrame,i=s.renderId,n=this._currentRenderContext,a=this._currentRenderObjectFunction,l=this._handleObjectFunction;this.lighting.beginRender(e),this._callDepth++;const u=e.isScene===!0?e:$7,c=this._renderTarget||this._outputRenderTarget,d=this._activeCubeFace,h=this._activeMipmapLevel;let f;if(r!==null?(f=r,this.setRenderTarget(f)):f=c,f!==null&&f.depthBuffer===!0){const X=this._textures.get(f);X.depthInitialized!==!0&&((this.autoClear===!1||this.autoClear===!0&&this.autoClearDepth===!1)&&this.clearDepth(),X.depthInitialized=!0)}const p=this._renderContexts.get(f,this._mrt,this._callDepth);this._currentRenderContext=p,this._currentRenderObjectFunction=this._renderObjectFunction||this.renderObject,this._handleObjectFunction=this._renderObjectDirect,this.info.calls++,this.info.render.calls++,this.info.render.frameCalls++,s.renderId=this.info.calls,this.backend.updateTimeStampUID(p),this.inspector.beginRender(this.backend.getTimestampUID(p),e,t,f),e.matrixWorldAutoUpdate===!0&&e.updateMatrixWorld(),t=this._updateCamera(t);const m=this._canvasTarget;let b=m._viewport,N=m._scissor,v=m._pixelRatio;f!==null&&(b=f.viewport,N=f.scissor,v=1),this.getDrawingBufferSize(X2),Js.set(0,0,X2.width,X2.height);const y=b.minDepth===void 0?0:b.minDepth,T=b.maxDepth===void 0?1:b.maxDepth;p.viewportValue.copy(b).multiplyScalar(v).floor(),p.viewportValue.width>>=h,p.viewportValue.height>>=h,p.viewportValue.minDepth=y,p.viewportValue.maxDepth=T,p.viewport=p.viewportValue.equals(Js)===!1,p.scissorValue.copy(N).multiplyScalar(v).floor(),p.scissor=m._scissorTest&&p.scissorValue.equals(Js)===!1,p.scissorValue.width>>=h,p.scissorValue.height>>=h,p.clippingContext||(p.clippingContext=new D7),p.clippingContext.updateGlobal(u,t),u.onBeforeRender(this,e,t,f);const x=t.isArrayCamera?Yo:Ko;t.isArrayCamera?x.setFromArrayCamera(t):(I2.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),x.setFromProjectionMatrix(I2,t.coordinateSystem,t.reversedDepth));const S=this._renderLists.get(e,t);if(S.begin(),this._projectObject(e,t,0,S,p.clippingContext),S.finish(),this.sortObjects===!0&&S.sort(this._opaqueSort,this._transparentSort,t.reversedDepth),f!==null){this._textures.updateRenderTarget(f,h);const X=this._textures.get(f);p.textures=X.textures,p.depthTexture=X.depthTexture,p.width=X.width,p.height=X.height,p.renderTarget=f,p.depth=f.depthBuffer,p.stencil=f.stencilBuffer}else p.textures=null,p.depthTexture=null,p.width=X2.width,p.height=X2.height,p.depth=this.depth,p.stencil=this.stencil;p.width>>=h,p.height>>=h,p.activeCubeFace=d,p.activeMipmapLevel=h,p.occlusionQueryCount=S.occlusionQueryCount,p.scissorValue.max(st.set(0,0,0,0)),p.scissorValue.x+p.scissorValue.width>p.width&&(p.scissorValue.width=Math.max(p.width-p.scissorValue.x,0)),p.scissorValue.y+p.scissorValue.height>p.height&&(p.scissorValue.height=Math.max(p.height-p.scissorValue.y,0)),this._background.update(u,S,p),p.camera=t,this.backend.beginRender(p);const{bundles:C,lightsNode:w,transparentDoublePass:L,transparent:F,opaque:P}=S;return C.length>0&&this._renderBundles(C,u,w),this.opaque===!0&&P.length>0&&this._renderObjects(P,t,u,w),this.transparent===!0&&F.length>0&&this._renderTransparents(F,L,t,u,w),this.backend.finishRender(p),s.renderId=i,this._currentRenderContext=n,this._currentRenderObjectFunction=a,this._handleObjectFunction=l,this.lighting.finishRender(e),this._callDepth--,r!==null&&(this.setRenderTarget(c,d,h),this._renderOutput(f)),u.onAfterRender(this,e,t,f),this.inspector.finishRender(this.backend.getTimestampUID(p)),p}_setXRLayerSize(e,t){this._canvasTarget._width=e,this._canvasTarget._height=t,this.setViewport(0,0,e,t)}_renderOutput(e){const t=this._nodes.getOutputCacheKey();let o=this._quadCache.get(e.texture),r;if(o===void 0){r=new N5(new s0),r.name="Output Color Transform",r.material.name="outputColorTransform",r.material.fragmentNode=this._nodes.getOutputNode(e.texture),o={quad:r,cacheKey:t},this._quadCache.set(e.texture,o);const n=()=>{r.material.dispose(),this._quadCache.delete(e.texture),e.texture.removeEventListener("dispose",n)};e.texture.addEventListener("dispose",n)}else r=o.quad,o.cacheKey!==t&&(r.material.fragmentNode=this._nodes.getOutputNode(e.texture),r.material.needsUpdate=!0,o.cacheKey=t);const s=this.autoClear,i=this.xr.enabled;this.autoClear=!1,this.xr.enabled=!1,this._renderOutputLayers(r,e),this.autoClear=s,this.xr.enabled=i}getMaxAnisotropy(){return this.backend.capabilities.getMaxAnisotropy()}getActiveCubeFace(){return this._activeCubeFace}getActiveMipmapLevel(){return this._activeMipmapLevel}async setAnimationLoop(e){this._initialized===!1&&await this.init(),this._animation.setAnimationLoop(e)}getAnimationLoop(){return this._animation.getAnimationLoop()}async getArrayBufferAsync(e,t=null,o=0,r=-1){if(t!==null&&t.isReadbackBuffer&&this.info.memoryMap.has(t)===!1){this.info.createReadbackBuffer(t);const s=()=>{t.removeEventListener("dispose",s),this.info.destroyReadbackBuffer(t)};t.addEventListener("dispose",s)}if(o%4!==0||r>0&&r%4!==0)throw new Error('THREE.Renderer: "getArrayBufferAsync()" offset and count must be a multiple of 4.');return await this.backend.getArrayBufferAsync(e,t,o,r)}getContext(){return this.backend.getContext()}getPixelRatio(){return this._canvasTarget.getPixelRatio()}getDrawingBufferSize(e){return this._canvasTarget.getDrawingBufferSize(e)}getSize(e){return this._canvasTarget.getSize(e)}setPixelRatio(e=1){this._canvasTarget.setPixelRatio(e)}setDrawingBufferSize(e,t,o){this.xr&&this.xr.isPresenting||this._canvasTarget.setDrawingBufferSize(e,t,o)}setSize(e,t,o=!0){this.xr&&this.xr.isPresenting||this._canvasTarget.setSize(e,t,o)}setOpaqueSort(e){this._opaqueSort=e}setTransparentSort(e){this._transparentSort=e}getScissor(e){return this._canvasTarget.getScissor(e)}setScissor(e,t,o,r){this._canvasTarget.setScissor(e,t,o,r)}getScissorTest(){return this._canvasTarget.getScissorTest()}setScissorTest(e){this._canvasTarget.setScissorTest(e),this.backend.setScissorTest(e)}getViewport(e){return this._canvasTarget.getViewport(e)}setViewport(e,t,o,r,s=0,i=1){this._canvasTarget.setViewport(e,t,o,r,s,i)}getClearColor(e){return e.copy(this._clearColor)}setClearColor(e,t=1){this._clearColor.set(e),this._clearColor.a=t}getClearAlpha(){return this._clearColor.a}setClearAlpha(e){this._clearColor.a=e}getClearDepth(){return this.reversedDepthBuffer===!0?1-this._clearDepth:this._clearDepth}setClearDepth(e){this._clearDepth=e}getClearStencil(){return this._clearStencil}setClearStencil(e){this._clearStencil=e}isOccluded(e){const t=this._currentRenderContext;return t&&this.backend.isOccluded(t,e)}clear(e=!0,t=!0,o=!0){if(this._initialized===!1)throw new Error('THREE.Renderer: .clear() called before the backend is initialized. Use "await renderer.init();" before using this method.');const r=this._renderTarget||this._getFrameBufferTarget();let s=null;if(r!==null){this._textures.updateRenderTarget(r);const i=this._textures.get(r);s=this._renderContexts.get(r,null,-1),s.textures=i.textures,s.depthTexture=i.depthTexture,s.width=i.width,s.height=i.height,s.renderTarget=r,s.depth=r.depthBuffer,s.stencil=r.stencilBuffer;const n=this.backend.getClearColor();s.clearColorValue.r=n.r,s.clearColorValue.g=n.g,s.clearColorValue.b=n.b,s.clearColorValue.a=n.a,s.clearDepthValue=this.getClearDepth(),s.clearStencilValue=this.getClearStencil(),s.activeCubeFace=this.getActiveCubeFace(),s.activeMipmapLevel=this.getActiveMipmapLevel(),r.depthBuffer===!0&&(i.depthInitialized=!0)}this.backend.clear(e,t,o,s),r!==null&&this._renderTarget===null&&this._renderOutput(r)}clearColor(){this.clear(!0,!1,!1)}clearDepth(){this.clear(!1,!0,!1)}clearStencil(){this.clear(!1,!1,!0)}async clearAsync(e=!0,t=!0,o=!0){z1('Renderer: "clearAsync()" has been deprecated. Use "clear()" and "await renderer.init();" when creating the renderer.'),await this.init(),this.clear(e,t,o)}async clearColorAsync(){z1('Renderer: "clearColorAsync()" has been deprecated. Use "clearColor()" and "await renderer.init();" when creating the renderer.'),this.clear(!0,!1,!1)}async clearDepthAsync(){z1('Renderer: "clearDepthAsync()" has been deprecated. Use "clearDepth()" and "await renderer.init();" when creating the renderer.'),this.clear(!1,!0,!1)}async clearStencilAsync(){z1('Renderer: "clearStencilAsync()" has been deprecated. Use "clearStencil()" and "await renderer.init();" when creating the renderer.'),this.clear(!1,!1,!0)}get needsFrameBufferTarget(){const e=this.currentToneMapping!==0,t=this.currentColorSpace!==o0.workingColorSpace;return e||t}get samples(){return this._samples}get currentSamples(){let e=this._samples;return this._renderTarget!==null?e=this._renderTarget.samples:this.needsFrameBufferTarget&&(e=0),e}get currentToneMapping(){return this.isOutputTarget?this.toneMapping:0}get currentColorSpace(){return this.isOutputTarget?this.outputColorSpace:o0.workingColorSpace}get isOutputTarget(){return this._renderTarget===this._outputRenderTarget||this._renderTarget===null}dispose(){if(this._initialized===!0){this.info.dispose(),this.backend.dispose(),this._animation.dispose(),this._objects.dispose(),this._geometries.dispose(),this._pipelines.dispose(),this._nodes.dispose(),this._bindings.dispose(),this._renderLists.dispose(),this._renderContexts.dispose(),this._textures.dispose();for(const e of this._frameBufferTargets.keys())e.dispose();Object.values(this.backend.timestampQueryPool).forEach(e=>{e!==null&&e.dispose()})}this.setRenderTarget(null),this.setAnimationLoop(null)}setRenderTarget(e,t=0,o=0){this._renderTarget=e,this._activeCubeFace=t,this._activeMipmapLevel=o}getRenderTarget(){return this._renderTarget}setOutputRenderTarget(e){this._outputRenderTarget=e}getOutputRenderTarget(){return this._outputRenderTarget}setCanvasTarget(e){this._canvasTarget.removeEventListener("resize",this._onCanvasTargetResize),this._canvasTarget=e,this._canvasTarget.addEventListener("resize",this._onCanvasTargetResize)}getCanvasTarget(){return this._canvasTarget}_resetXRState(){this.backend.setXRTarget(null),this.setOutputRenderTarget(null),this.setRenderTarget(null);for(const e of this._frameBufferTargets.keys())e.dispose()}setRenderObjectFunction(e){this._renderObjectFunction=e}getRenderObjectFunction(){return this._renderObjectFunction}compute(e,t=null){if(this._isDeviceLost===!0)return;if(this._initialized===!1)return j("Renderer: .compute() called before the backend is initialized. Try using .computeAsync() instead."),this.computeAsync(e,t);const o=this._nodes.nodeFrame,r=o.renderId;this.info.calls++,this.info.compute.calls++,this.info.compute.frameCalls++,o.renderId=this.info.calls,this.backend.updateTimeStampUID(e),this.inspector.beginCompute(this.backend.getTimestampUID(e),e);const s=this.backend,i=this._pipelines,n=this._bindings,a=this._nodes,l=Array.isArray(e)?e:[e];if(l[0]===void 0||l[0].isComputeNode!==!0)throw new Error("THREE.Renderer: .compute() expects a ComputeNode.");s.beginCompute(e);for(const u of l){if(i.has(u)===!1){const h=()=>{u.removeEventListener("dispose",h),i.delete(u),n.deleteForCompute(u),a.delete(u)};u.addEventListener("dispose",h);const f=u.onInitFunction;f!==null&&f.call(u,{renderer:this})}a.updateForCompute(u),n.updateForCompute(u);const c=n.getForCompute(u),d=i.getForCompute(u,c);s.compute(e,u,c,d,t)}s.finishCompute(e),o.renderId=r,this.inspector.finishCompute(this.backend.getTimestampUID(e))}async computeAsync(e,t=null){this._initialized===!1&&await this.init(),this.compute(e,t)}async hasFeatureAsync(e){return z1('Renderer: "hasFeatureAsync()" has been deprecated. Use "hasFeature()" and "await renderer.init();" when creating the renderer.'),await this.init(),this.hasFeature(e)}async resolveTimestampsAsync(e="render"){return this._initialized===!1&&await this.init(),this.backend.resolveTimestampsAsync(e)}hasFeature(e){if(this._initialized===!1)throw new Error('THREE.Renderer: .hasFeature() called before the backend is initialized. Use "await renderer.init();" before using this method.');return this.backend.hasFeature(e)}hasInitialized(){return this._initialized}async initTextureAsync(e){z1('Renderer: "initTextureAsync()" has been deprecated. Use "initTexture()" and "await renderer.init();" when creating the renderer.'),await this.init(),this.initTexture(e)}initTexture(e){if(this._initialized===!1)throw new Error('THREE.Renderer: .initTexture() called before the backend is initialized. Use "await renderer.init();" before using this method.');this._textures.updateTexture(e)}initRenderTarget(e){if(this._initialized===!1)throw new Error('THREE.Renderer: .initRenderTarget() called before the backend is initialized. Use "await renderer.init();" before using this method.');this._textures.updateRenderTarget(e);const t=this._textures.get(e),o=this._renderContexts.get(e);o.textures=t.textures,o.depthTexture=t.depthTexture,o.width=t.width,o.height=t.height,o.renderTarget=e,o.depth=e.depthBuffer,o.stencil=e.stencilBuffer,this.backend.initRenderTarget(o)}copyFramebufferToTexture(e,t=null){if(t!==null)if(t.isVector2)t=st.set(t.x,t.y,e.image.width,e.image.height).floor();else if(t.isVector4)t=st.copy(t).floor();else{I("Renderer.copyFramebufferToTexture: Invalid rectangle.");return}else t=st.set(0,0,e.image.width,e.image.height);let o=this._currentRenderContext,r;o!==null?r=o.renderTarget:(r=this._renderTarget||this._getFrameBufferTarget(),r!==null&&(this._textures.updateRenderTarget(r),o=this._textures.get(r))),this._textures.updateTexture(e,{renderTarget:r}),this.backend.copyFramebufferToTexture(e,o,t),this._inspector.copyFramebufferToTexture(e)}copyTextureToTexture(e,t,o=null,r=null,s=0,i=0){this._textures.updateTexture(e),this._textures.updateTexture(t),this.backend.copyTextureToTexture(e,t,o,r,s,i),this._inspector.copyTextureToTexture(e,t)}async readRenderTargetPixelsAsync(e,t,o,r,s,i=0,n=0){return this.backend.copyTextureToBuffer(e.textures[i],t,o,r,s,n)}_projectObject(e,t,o,r,s){if(e.visible===!1)return;if(e.layers.test(t.layers)){if(e.isGroup)o=e.renderOrder,e.isClippingGroup&&e.enabled&&(s=s.getGroupContext(e));else if(e.isLOD)e.autoUpdate===!0&&e.update(t);else if(e.isLight)r.pushLight(e);else if(e.isSprite){const n=t.isArrayCamera?Yo:Ko;if(!e.frustumCulled||n.intersectsSprite(e)){this.sortObjects===!0&&st.setFromMatrixPosition(e.matrixWorld).applyMatrix4(I2);const{geometry:a,material:l}=e;l.visible&&r.push(e,a,l,o,st.z,null,s)}}else if(e.isLineLoop)I("Renderer: Objects of type THREE.LineLoop are not supported. Please use THREE.Line or THREE.LineSegments.");else if(e.isMesh||e.isLine||e.isPoints){const n=t.isArrayCamera?Yo:Ko;if(!e.frustumCulled||n.intersectsObject(e)){const{geometry:a,material:l}=e;if(this.sortObjects===!0&&(a.boundingSphere===null&&a.computeBoundingSphere(),st.copy(a.boundingSphere.center).applyMatrix4(e.matrixWorld).applyMatrix4(I2)),Array.isArray(l)){const u=a.groups;for(let c=0,d=u.length;c0){for(const{material:i}of t)i.side=1;this._renderObjects(t,o,r,s,"backSide");for(const{material:i}of t)i.side=0;this._renderObjects(e,o,r,s);for(const{material:i}of t)i.side=2}else this._renderObjects(e,o,r,s)}_renderObjects(e,t,o,r,s=null){for(let i=0,n=e.length;i(h.not().discard(),f))(l)}}e.depthNode&&e.depthNode.isNode&&(u=e.depthNode),e.castShadowPositionNode&&e.castShadowPositionNode.isNode?a=e.castShadowPositionNode:e.positionNode&&e.positionNode.isNode&&(a=e.positionNode),o={version:t,colorNode:l,depthNode:u,positionNode:a},this._cacheShadowNodes.set(e,o)}return o}_updateCamera(e){const t=this.xr;if(t.isPresenting===!1){let o=!1;if(this.reversedDepthBuffer===!0&&e.reversedDepth!==!0){if(e._reversedDepth=!0,e.isArrayCamera)for(const s of e.cameras)s._reversedDepth=!0;o=!0}const r=this.coordinateSystem;if(e.coordinateSystem!==r){if(e.coordinateSystem=r,e.isArrayCamera)for(const s of e.cameras)s.coordinateSystem=r;o=!0}if(o===!0&&(e.updateProjectionMatrix(),e.isArrayCamera))for(const s of e.cameras)s.updateProjectionMatrix()}return e.parent===null&&e.matrixWorldAutoUpdate===!0&&e.updateMatrixWorld(),t.enabled===!0&&t.isPresenting===!0&&(t.cameraAutoUpdate===!0&&t.updateCamera(e),e=t.getCamera()),e}renderObject(e,t,o,r,s,i,n,a=null,l=null){let u=!1,c,d,h,f,p,m,b;const N=this._currentSourceMaterial;if(e.onBeforeRender(this,t,o,r,s,i),s.allowOverride===!0&&t.overrideMaterial!==null){this._currentSourceMaterial=s;const v=t.overrideMaterial;if(u=!0,c=v.isNodeMaterial?v.colorNode:null,d=v.isNodeMaterial?v.depthNode:null,h=v.isNodeMaterial?v.positionNode:null,f=t.overrideMaterial.side,p=v.displacementMap,m=v.displacementScale,b=v.displacementBias,s.positionNode&&s.positionNode.isNode&&(v.positionNode=s.positionNode),v.alphaTest=s.alphaTest,v.alphaMap=s.alphaMap,v.displacementMap=s.displacementMap,v.displacementScale=s.displacementScale,v.displacementBias=s.displacementBias,v.transparent=s.transparent||s.transmission>0||s.transmissionNode&&s.transmissionNode.isNode||s.backdropNode&&s.backdropNode.isNode,v.isShadowPassMaterial){const{colorNode:y,depthNode:T,positionNode:x}=this._getShadowNodes(s);this.shadowMap.type===3?v.side=s.shadowSide!==null?s.shadowSide:s.side:v.side=s.shadowSide!==null?s.shadowSide:kN[s.side],y!==null&&(v.colorNode=y),T!==null&&(v.depthNode=T),x!==null&&(v.positionNode=x)}s=v}s.transparent===!0&&s.side===2&&s.forceSinglePass===!1?(s.side=1,this._handleObjectFunction(e,s,t,o,n,i,a,"backSide"),s.side=0,this._handleObjectFunction(e,s,t,o,n,i,a,l),s.side=2):this._handleObjectFunction(e,s,t,o,n,i,a,l),u&&(t.overrideMaterial.colorNode=c,t.overrideMaterial.depthNode=d,t.overrideMaterial.positionNode=h,t.overrideMaterial.side=f,t.overrideMaterial.displacementMap=p,t.overrideMaterial.displacementScale=m,t.overrideMaterial.displacementBias=b),this._currentSourceMaterial=N,e.onAfterRender(this,t,o,r,s,i)}hasCompatibility(e){if(this._initialized===!1)throw new Error('THREE.Renderer: .hasCompatibility() called before the backend is initialized. Use "await renderer.init();" before using this method.');return this.backend.hasCompatibility(e)}_renderObjectDirect(e,t,o,r,s,i,n,a){const l=this._objects.get(e,t,o,r,s,this._currentRenderContext,n,a);l.drawRange=e.geometry.drawRange,l.group=i,this._currentRenderBundle!==null&&(this.backend.get(this._currentRenderBundle).renderObjects.push(l),l.bundle=this._currentRenderBundle.bundleGroup);const u=this._nodes.needsRefresh(l);u&&(this._nodes.updateBefore(l),this._geometries.updateForRender(l),this._nodes.updateForRender(l),this._bindings.updateForRender(l)),this._pipelines.updateForRender(l),this._pipelines.isReady(l)&&(this.backend.draw(l,this.info),u&&this._nodes.updateAfter(l))}_createObjectPipeline(e,t,o,r,s,i,n,a){if(this._compilationPromises!==null){this._compilationPromises.push({object:e,material:t,scene:o,camera:r,lightsNode:s,group:i,clippingContext:n,passId:a,renderContext:this._currentRenderContext});return}const l=this._objects.get(e,t,o,r,s,this._currentRenderContext,n,a);l.drawRange=e.geometry.drawRange,l.group=i,this._nodes.updateBefore(l),this._geometries.updateForRender(l),this._nodes.updateForRender(l),this._bindings.updateForRender(l),this._pipelines.getForRender(l,this._compilationPromises),this._nodes.updateAfter(l)}_onCanvasTargetResize(){this._initialized&&this.backend.updateSize()}get compile(){return this.compileAsync}},O5=class{constructor(e=""){this.name=e,this.visibility=0}setVisibility(e){this.visibility|=e}getVisibility(){return this.visibility}clone(){return Object.assign(new this.constructor,this)}};function F5(e){return e+(Ct-e%Ct)%Ct}var P5=class extends O5{constructor(e,t=null){super(e),this.isBuffer=!0,this.bytesPerElement=Float32Array.BYTES_PER_ELEMENT,this._buffer=t,this._updateRanges=[]}get updateRanges(){return this._updateRanges}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}get byteLength(){return F5(this._buffer.byteLength)}get buffer(){return this._buffer}update(){return!0}release(){this._buffer=null}},D5=class extends P5{constructor(e,t=null){super(e,t),this.isUniformBuffer=!0}},IN=0,k5=class extends D5{constructor(e,t){super("UniformBuffer_"+IN++,e?e.value:null),this.nodeUniform=e,this.groupNode=t,this.isNodeUniformBuffer=!0}set updateRanges(e){this.nodeUniform.updateRanges=e}get updateRanges(){return this.nodeUniform.updateRanges}addUpdateRange(e,t){this.nodeUniform.addUpdateRange(e,t)}clearUpdateRanges(){this.nodeUniform.clearUpdateRanges()}get byteLength(){return F5(this.buffer.byteLength)}get buffer(){return this.nodeUniform.value}},GN=class extends D5{constructor(e){super(e),this.isUniformsGroup=!0,this._values=null,this.uniforms=[],this._updateRangeCache=new Map,this._addedIndices=new Set}addUniformUpdateRange(e){const t=e.index;if(this._addedIndices.has(t))return;let o=this._updateRangeCache.get(t);o===void 0&&(o={start:0,count:0},this._updateRangeCache.set(t,o)),o.start=e.offset,o.count=e.itemSize,this._addedIndices.add(t),this.updateRanges.push(o)}clearUpdateRanges(){this._addedIndices.clear(),super.clearUpdateRanges()}addUniform(e){return this.uniforms.push(e),this}removeUniform(e){const t=this.uniforms.indexOf(e);return t!==-1&&this.uniforms.splice(t,1),this}get values(){return this._values===null&&(this._values=Array.from(this.buffer)),this._values}get buffer(){let e=this._buffer;if(e===null){const t=this.byteLength;e=new Float32Array(new ArrayBuffer(t)),this._buffer=e}return e}get byteLength(){const e=this.bytesPerElement;let t=0;for(let o=0,r=this.uniforms.length;o0?c:"";n=`${l.name} { + ${u} ${i.name}[${d}]; +}; +`}else{const l=i.groupNode.name;if(r[l]===void 0){const u=this.uniformGroups[l];if(u!==void 0){const c=[];for(const d of u.uniforms){const h=d.getType(),f=this.getVectorType(h),p=d.nodeUniform.node.precision;let m=`${f} ${d.name};`;p!==null&&(m=Q7[p]+" "+m),c.push(" "+m)}r[l]=c}}a=!0}if(!a){const l=i.node.precision;l!==null&&(n=Q7[l]+" "+n),n="uniform "+n,o.push(n)}}let s="";for(const i in r){const n=r[i];s+=this._getGLSLUniformStruct(i,n.join(` +`))+` +`}return s+=o.join(` +`),s}getTypeFromAttribute(e){let t=super.getTypeFromAttribute(e);if(/^[iu]/.test(t)&&e.gpuType!==1013){let o=e;e.isInterleavedBufferAttribute&&(o=e.data);const r=o.array;r instanceof Uint32Array||r instanceof Int32Array||(t=t.slice(1))}return t}getAttributes(e){let t="";if(e==="vertex"||e==="compute"){const o=this.getAttributesArray();let r=0;for(const s of o)t+=`layout( location = ${r++} ) in ${s.type} ${s.name}; +`}return t}getStructMembers(e){const t=[];for(const o of e.members)t.push(` ${o.type} ${o.name};`);return t.join(` +`)}getStructs(e){const t=[],o=this.structs[e],r=[];for(const s of o)if(s.output)for(const i of s.members)r.push(`layout( location = ${i.index} ) out ${i.type} ${i.name};`);else{let i="struct "+s.name+` { +`;i+=this.getStructMembers(s),i+=` +}; +`,t.push(i)}return e==="fragment"&&r.length===0&&r.push(`layout( location = 0 ) out ${this.getOutputType()} fragColor;`),` +`+r.join(` +`)+` + +`+t.join(` +`)}getVaryings(e){let t="";const o=this.varyings;if(e==="vertex"||e==="compute")for(const r of o){e==="compute"&&(r.needsInterpolation=!0);const s=this.getType(r.type);if(r.needsInterpolation)if(r.interpolationType){const i=q7[r.interpolationType]||r.interpolationType,n=H7[r.interpolationSampling]||"";t+=`${i} ${n} out ${s} ${r.name}; +`}else{const i=s.includes("int")||s.includes("uv")||s.includes("iv")?"flat ":"";t+=`${i}out ${s} ${r.name}; +`}else t+=`${s} ${r.name}; +`}else if(e==="fragment"){for(const r of o)if(r.needsInterpolation){const s=this.getType(r.type);if(r.interpolationType){const i=q7[r.interpolationType]||r.interpolationType,n=H7[r.interpolationSampling]||"";t+=`${i} ${n} in ${s} ${r.name}; +`}else{const i=s.includes("int")||s.includes("uv")||s.includes("iv")?"flat ":"";t+=`${i}in ${s} ${r.name}; +`}}}for(const r of this.builtins[e])t+=`${r}; +`;return t}getVertexIndex(){return"uint( gl_VertexID )"}getInstanceIndex(){return"uint( gl_InstanceID )"}getInvocationLocalIndex(){return`uint( gl_InstanceID ) % ${this.object.workgroupSize.reduce((e,t)=>e*t,1)}u`}getSubgroupSize(){I("GLSLNodeBuilder: WebGLBackend does not support the subgroupSize node")}getInvocationSubgroupIndex(){I("GLSLNodeBuilder: WebGLBackend does not support the invocationSubgroupIndex node")}getSubgroupIndex(){I("GLSLNodeBuilder: WebGLBackend does not support the subgroupIndex node")}getDrawIndex(){return this.renderer.backend.extensions.has("WEBGL_multi_draw")?"uint( gl_DrawID )":"nodeUniformDrawId"}getFrontFacing(){return"gl_FrontFacing"}getFragCoord(){return"gl_FragCoord.xy"}getFragDepth(){return"gl_FragDepth"}enableExtension(e,t,o=this.shaderStage){const r=this.extensions[o]||(this.extensions[o]=new Map);r.has(e)===!1&&r.set(e,{name:e,behavior:t})}getExtensions(e){const t=[];if(e==="vertex"){const r=this.renderer.backend.extensions;this.object.isBatchedMesh&&r.has("WEBGL_multi_draw")&&this.enableExtension("GL_ANGLE_multi_draw","require",e)}const o=this.extensions[e];if(o!==void 0)for(const{name:r,behavior:s}of o.values())t.push(`#extension ${r} : ${s}`);return t.join(` +`)}getClipDistance(){return"gl_ClipDistance"}isAvailable(e){let t=Z7[e];if(t===void 0){let o;switch(t=!1,e){case"float32Filterable":o="OES_texture_float_linear";break;case"clipDistance":o="WEBGL_clip_cull_distance"}if(o!==void 0){const r=this.renderer.backend.extensions;r.has(o)&&(r.get(o),t=!0)}Z7[e]=t}return t}isFlipY(){return!0}enableHardwareClipping(e){this.enableExtension("GL_ANGLE_clip_cull_distance","require"),this.builtins.vertex.push(`out float gl_ClipDistance[ ${e} ]`)}enableMultiview(){this.enableExtension("GL_OVR_multiview2","require","fragment"),this.enableExtension("GL_OVR_multiview2","require","vertex"),this.builtins.vertex.push("layout(num_views = 2) in")}registerTransform(e,t){this.transforms.push({varyingName:e,attributeNode:t})}getTransforms(){const e=this.transforms;let t="";for(let o=0;o0&&(o+=` +`),o+=` // flow -> ${l} + `),o+=`${a.code} + `,n===s&&t!=="compute"&&(o+=`// result + `,t==="vertex"?(o+="gl_Position = ",o+=`${this.format(a.result,s.getNodeType(this),"vec4")};`):t==="fragment"&&(n.outputNode.isOutputStructNode||(o+="fragColor = ",o+=`${this.format(a.result,s.getNodeType(this),this.getOutputType())};`)))}const i=e[t];if(i.extensions=this.getExtensions(t),i.uniforms=this.getUniforms(t),i.attributes=this.getAttributes(t),i.varyings=this.getVaryings(t),i.vars=this.getVars(t,!0),i.structs=this.getStructs(t),i.codes=this.getCodes(t),i.transforms=this.getTransforms(t),i.flow=o,t==="vertex"){const n=this.renderer.backend.extensions;this.object.isBatchedMesh&&n.has("WEBGL_multi_draw")===!1&&(i.uniforms+=` +uniform uint nodeUniformDrawId; +`)}}this.material!==null?(this.vertexShader=this._getGLSLVertexCode(e.vertex),this.fragmentShader=this._getGLSLFragmentCode(e.fragment)):this.computeShader=this._getGLSLVertexCode(e.compute)}getUniformFromNode(e,t,o,r=null){const s=super.getUniformFromNode(e,t,o,r),i=this.getDataFromNode(e,o,this.globalCache);let n=i.uniformGPU;if(n===void 0){const a=e.groupNode,l=a.name,u=this.getBindGroupArray(l,o);if(t==="texture")n=new ss(s.name,s.node,a),u.push(n);else if(t==="cubeTexture"||t==="cubeDepthTexture")n=new G5(s.name,s.node,a),u.push(n);else if(t==="texture3D")n=new Zi(s.name,s.node,a),u.push(n);else if(t==="buffer"){s.name=`buffer${e.id}`;const c=this.getSharedDataFromNode(e);let d=c.buffer;d===void 0&&(e.name=`NodeBuffer_${e.id}`,d=new k5(e,a),d.name=e.name,c.buffer=d),u.push(d),n=d}else{let c=this.uniformGroups[l];c===void 0?(c=new X5(l,a),this.uniformGroups[l]=c,u.push(c)):u.indexOf(c)===-1&&u.push(c),n=this.getNodeUniform(s,t);const d=n.name;c.uniforms.some(h=>h.name===d)||c.addUniform(n)}i.uniformGPU=n}return s}},js=null,G2=null,z5=class{constructor(e={}){this.parameters=Object.assign({},e),this.data=new WeakMap,this.renderer=null,this.domElement=null,this.timestampQueryPool={[Qe.RENDER]:null,[Qe.COMPUTE]:null},this.trackTimestamp=e.trackTimestamp===!0}async init(e){this.renderer=e}get coordinateSystem(){}beginRender(){}finishRender(){}setXRTarget(){}beginCompute(){}finishCompute(){}draw(){}compute(){}createProgram(){}destroyProgram(){}createBindings(){}updateBindings(){}updateBinding(){}createRenderPipeline(){}createComputePipeline(){}needsRenderUpdate(){}getRenderCacheKey(){}createNodeBuilder(){}updateSampler(){}destroySampler(){}createDefaultTexture(){}createTexture(){}updateTexture(){}generateMipmaps(){}destroyTexture(){}async copyTextureToBuffer(){}copyTextureToTexture(){}copyFramebufferToTexture(){}createAttribute(){}createIndexAttribute(){}createStorageAttribute(){}createUniformBuffer(){}destroyUniformBuffer(){}updateAttribute(){}destroyAttribute(){}getContext(){}updateSize(){}updateViewport(){}updateTimeStampUID(e){const t=this.get(e),o=this.renderer.info.frame;let r;e.isComputeNode===!0?r="c:"+this.renderer.info.compute.frameCalls:r="r:"+this.renderer.info.render.frameCalls,t.timestampUID=r+":"+e.id+":f"+o}getTimestampUID(e){return this.get(e).timestampUID}getTimestampFrames(e){const t=this.timestampQueryPool[e];return t?t.getTimestampFrames():[]}_getQueryPool(e){const t=e.startsWith("c:")?Qe.COMPUTE:Qe.RENDER;return this.timestampQueryPool[t]}getTimestamp(e){return this._getQueryPool(e).getTimestamp(e)}get hasTimestamp(){return!1}hasTimestampQuery(e){return this._getQueryPool(e).hasTimestampQuery(e)}isOccluded(){}async resolveTimestampsAsync(e="render"){if(!this.trackTimestamp){z1("WebGPURenderer: Timestamp tracking is disabled.");return}const t=this.timestampQueryPool[e];if(!t)return;const o=await t.resolveQueriesAsync();return this.renderer.info[e].timestamp=o,o}async getArrayBufferAsync(){}async hasFeatureAsync(){}hasFeature(){}getDrawingBufferSize(){return js=js||new f1,this.renderer.getDrawingBufferSize(js)}setScissorTest(){}getClearColor(){const e=this.renderer;return G2=G2||new Dn,e.getClearColor(G2),G2.getRGB(G2),G2}getDomElement(){let e=this.domElement;return e===null&&(e=this.parameters.canvas!==void 0?this.parameters.canvas:Gl(),"setAttribute"in e&&e.setAttribute("data-engine","three.js r185 webgpu"),this.domElement=e),e}hasCompatibility(){return!1}initRenderTarget(){}set(e,t){this.data.set(e,t)}get(e){let t=this.data.get(e);return t===void 0&&(t={},this.data.set(e,t)),t}has(e){return this.data.has(e)}delete(e){this.data.delete(e)}deleteBindGroupData(){}dispose(){}},JN=0,jN=class{constructor(e,t){this.buffers=[e.bufferGPU,t],this.type=e.type,this.bufferType=e.bufferType,this.pbo=e.pbo,this.byteLength=e.byteLength,this.bytesPerElement=e.BYTES_PER_ELEMENT,this.version=e.version,this.isInteger=e.isInteger,this.activeBufferIndex=0,this.baseId=e.id}get id(){return`${this.baseId}|${this.activeBufferIndex}`}get bufferGPU(){return this.buffers[this.activeBufferIndex]}get transformBuffer(){return this.buffers[this.activeBufferIndex^1]}switchBuffers(){this.activeBufferIndex^=1}},KN=class{constructor(e){this.backend=e}createAttribute(e,t){const o=this.backend,{gl:r}=o,s=e.array,i=e.usage||r.STATIC_DRAW,n=e.isInterleavedBufferAttribute?e.data:e,a=o.get(n);let l=a.bufferGPU;l===void 0&&(l=this._createBuffer(r,t,s,i),a.bufferGPU=l,a.bufferType=t,a.version=n.version);let u;if(s instanceof Float32Array)u=r.FLOAT;else if(typeof Float16Array<"u"&&s instanceof Float16Array)u=r.HALF_FLOAT;else if(s instanceof Uint16Array)e.isFloat16BufferAttribute?u=r.HALF_FLOAT:u=r.UNSIGNED_SHORT;else if(s instanceof Int16Array)u=r.SHORT;else if(s instanceof Uint32Array)u=r.UNSIGNED_INT;else if(s instanceof Int32Array)u=r.INT;else if(s instanceof Int8Array)u=r.BYTE;else if(s instanceof Uint8Array)u=r.UNSIGNED_BYTE;else if(s instanceof Uint8ClampedArray)u=r.UNSIGNED_BYTE;else throw new Error("THREE.WebGLBackend: Unsupported buffer data format: "+s);let c={bufferGPU:l,bufferType:t,type:u,byteLength:s.byteLength,bytesPerElement:s.BYTES_PER_ELEMENT,version:e.version,pbo:e.pbo,isInteger:u===r.INT||u===r.UNSIGNED_INT||e.gpuType===1013,id:JN++};if(e.isStorageBufferAttribute||e.isStorageInstancedBufferAttribute){const d=this._createBuffer(r,t,s,i);c=new jN(c,d)}o.set(e,c)}updateAttribute(e){const t=this.backend,{gl:o}=t,r=e.array,s=e.isInterleavedBufferAttribute?e.data:e,i=t.get(s),n=i.bufferType,a=e.isInterleavedBufferAttribute?e.data.updateRanges:e.updateRanges;if(o.bindBuffer(n,i.bufferGPU),a.length===0)o.bufferSubData(n,0,r);else{for(let l=0,u=a.length;l{t.buffer=null,t._mapped=!1,t.removeEventListener("release",d),t.removeEventListener("dispose",d)};t.addEventListener("release",d),t.addEventListener("dispose",d),c=new Uint8Array(new ArrayBuffer(u)),t.buffer=c.buffer}else c=new Uint8Array(t);return i.bindBuffer(i.COPY_READ_BUFFER,l),i.getBufferSubData(i.COPY_READ_BUFFER,o,c),i.bindBuffer(i.COPY_READ_BUFFER,null),i.bindBuffer(i.COPY_WRITE_BUFFER,null),t&&t.isReadbackBuffer?t:c.buffer}_createBuffer(e,t,o,r){const s=e.createBuffer();return e.bindBuffer(t,s),e.bufferData(t,o,r),e.bindBuffer(t,null),s}},U3,it,YN=class{constructor(e){this.backend=e,this.gl=this.backend.gl,this.enabled={},this.parameters={},this.currentFlipSided=null,this.currentCullFace=null,this.currentProgram=null,this.currentBlendingEnabled=!1,this.currentBlending=null,this.currentBlendSrc=null,this.currentBlendDst=null,this.currentBlendSrcAlpha=null,this.currentBlendDstAlpha=null,this.currentPremultipledAlpha=null,this.currentPolygonOffsetFactor=null,this.currentPolygonOffsetUnits=null,this.currentColorMask=null,this.currentDepthReversed=!1,this.currentDepthFunc=null,this.currentDepthMask=null,this.currentStencilFunc=null,this.currentStencilRef=null,this.currentStencilFuncMask=null,this.currentStencilFail=null,this.currentStencilZFail=null,this.currentStencilZPass=null,this.currentStencilMask=null,this.currentLineWidth=null,this.currentClippingPlanes=0,this.currentVAO=null,this.currentIndex=null,this.currentBoundFramebuffers={},this.currentDrawbuffers=new WeakMap,this.maxTextures=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS),this.currentTextureSlot=null,this.currentBoundTextures={},this.currentBoundBufferBases={},this._init()}_init(){const e=this.gl;U3={100:e.FUNC_ADD,101:e.FUNC_SUBTRACT,102:e.FUNC_REVERSE_SUBTRACT},it={200:e.ZERO,201:e.ONE,202:e.SRC_COLOR,204:e.SRC_ALPHA,210:e.SRC_ALPHA_SATURATE,208:e.DST_COLOR,206:e.DST_ALPHA,203:e.ONE_MINUS_SRC_COLOR,205:e.ONE_MINUS_SRC_ALPHA,209:e.ONE_MINUS_DST_COLOR,207:e.ONE_MINUS_DST_ALPHA};const t=e.getParameter(e.SCISSOR_BOX),o=e.getParameter(e.VIEWPORT);this.currentScissor=new S1().fromArray(t),this.currentViewport=new S1().fromArray(o),this._tempVec4=new S1}enable(e){const{enabled:t}=this;t[e]!==!0&&(this.gl.enable(e),t[e]=!0)}disable(e){const{enabled:t}=this;t[e]!==!1&&(this.gl.disable(e),t[e]=!1)}setFlipSided(e){if(this.currentFlipSided!==e){const{gl:t}=this;e?t.frontFace(t.CW):t.frontFace(t.CCW),this.currentFlipSided=e}}setCullFace(e){const{gl:t}=this;e!==0?(this.enable(t.CULL_FACE),e!==this.currentCullFace&&(e===1?t.cullFace(t.BACK):e===2?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))):this.disable(t.CULL_FACE),this.currentCullFace=e}setLineWidth(e){const{currentLineWidth:t,gl:o}=this;e!==t&&(o.lineWidth(e),this.currentLineWidth=e)}setMRTBlending(e,t,o){const r=this.gl,s=this.backend.drawBuffersIndexedExt;if(!s){z1("WebGPURenderer: Multiple Render Targets (MRT) blending configuration is not fully supported in compatibility mode. The material blending will be used for all render targets.");return}for(let i=0;i0?this.enable(r.SAMPLE_ALPHA_TO_COVERAGE):this.disable(r.SAMPLE_ALPHA_TO_COVERAGE),o>0&&this.currentClippingPlanes!==o)for(let a=0;a<8;a++)a{function s(){const i=e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0);if(i===e.WAIT_FAILED){e.deleteSync(t),r();return}if(i===e.TIMEOUT_EXPIRED){requestAnimationFrame(s);return}e.deleteSync(t),o()}s()})}},j7=!1,er,Ks,K7,ty=class{constructor(e){this.backend=e,this.gl=e.gl,this.extensions=e.extensions,this.defaultTextures={},this._srcFramebuffer=null,this._dstFramebuffer=null,j7===!1&&(this._init(),j7=!0)}_init(){const e=this.gl;er={[z4]:e.REPEAT,[Dt]:e.CLAMP_TO_EDGE,[Z4]:e.MIRRORED_REPEAT},Ks={[Ne]:e.NEAREST,[il]:e.NEAREST_MIPMAP_NEAREST,[X9]:e.NEAREST_MIPMAP_LINEAR,[H1]:e.LINEAR,[wl]:e.LINEAR_MIPMAP_NEAREST,[bi]:e.LINEAR_MIPMAP_LINEAR},K7={512:e.NEVER,519:e.ALWAYS,513:e.LESS,515:e.LEQUAL,514:e.EQUAL,518:e.GEQUAL,516:e.GREATER,517:e.NOTEQUAL}}getGLTextureType(e){const{gl:t}=this;let o;return e.isCubeTexture===!0?o=t.TEXTURE_CUBE_MAP:e.isArrayTexture===!0||e.isDataArrayTexture===!0||e.isCompressedArrayTexture===!0?o=t.TEXTURE_2D_ARRAY:e.isData3DTexture===!0?o=t.TEXTURE_3D:o=t.TEXTURE_2D,o}getInternalFormat(e,t,o,r,s,i=!1){const{gl:n,extensions:a}=this;if(e!==null){if(n[e]!==void 0)return n[e];j("WebGLBackend: Attempt to use non-existing WebGL internal format '"+e+"'")}let l=null;r&&(l=a.get("EXT_texture_norm16"),l||j("WebGLRenderer: Unable to use normalized textures without EXT_texture_norm16 extension"));let u=t;if(t===n.RED&&(o===n.FLOAT&&(u=n.R32F),o===n.HALF_FLOAT&&(u=n.R16F),o===n.UNSIGNED_BYTE&&(u=n.R8),o===n.BYTE&&(u=n.R8_SNORM),o===n.UNSIGNED_SHORT&&l&&(u=l.R16_EXT),o===n.SHORT&&l&&(u=l.R16_SNORM_EXT)),t===n.RED_INTEGER&&(o===n.UNSIGNED_BYTE&&(u=n.R8UI),o===n.UNSIGNED_SHORT&&(u=n.R16UI),o===n.UNSIGNED_INT&&(u=n.R32UI),o===n.BYTE&&(u=n.R8I),o===n.SHORT&&(u=n.R16I),o===n.INT&&(u=n.R32I)),t===n.RG&&(o===n.FLOAT&&(u=n.RG32F),o===n.HALF_FLOAT&&(u=n.RG16F),o===n.UNSIGNED_BYTE&&(u=n.RG8),o===n.BYTE&&(u=n.RG8_SNORM),o===n.UNSIGNED_SHORT&&l&&(u=l.RG16_EXT),o===n.SHORT&&l&&(u=l.RG16_SNORM_EXT)),t===n.RG_INTEGER&&(o===n.UNSIGNED_BYTE&&(u=n.RG8UI),o===n.UNSIGNED_SHORT&&(u=n.RG16UI),o===n.UNSIGNED_INT&&(u=n.RG32UI),o===n.BYTE&&(u=n.RG8I),o===n.SHORT&&(u=n.RG16I),o===n.INT&&(u=n.RG32I)),t===n.RGB){const c=i?sa:o0.getTransfer(s);o===n.FLOAT&&(u=n.RGB32F),o===n.HALF_FLOAT&&(u=n.RGB16F),o===n.UNSIGNED_BYTE&&(u=c==="srgb"?n.SRGB8:n.RGB8),o===n.BYTE&&(u=n.RGB8_SNORM),o===n.UNSIGNED_SHORT&&l&&(u=l.RGB16_EXT),o===n.SHORT&&l&&(u=l.RGB16_SNORM_EXT),o===n.UNSIGNED_SHORT_5_6_5&&(u=n.RGB565),o===n.UNSIGNED_SHORT_5_5_5_1&&(u=n.RGB5_A1),o===n.UNSIGNED_SHORT_4_4_4_4&&(u=n.RGB4),o===n.UNSIGNED_INT_5_9_9_9_REV&&(u=n.RGB9_E5),o===n.UNSIGNED_INT_10F_11F_11F_REV&&(u=n.R11F_G11F_B10F)}if(t===n.RGB_INTEGER&&(o===n.UNSIGNED_BYTE&&(u=n.RGB8UI),o===n.UNSIGNED_SHORT&&(u=n.RGB16UI),o===n.UNSIGNED_INT&&(u=n.RGB32UI),o===n.BYTE&&(u=n.RGB8I),o===n.SHORT&&(u=n.RGB16I),o===n.INT&&(u=n.RGB32I)),t===n.RGBA){const c=i?sa:o0.getTransfer(s);o===n.FLOAT&&(u=n.RGBA32F),o===n.HALF_FLOAT&&(u=n.RGBA16F),o===n.UNSIGNED_BYTE&&(u=c==="srgb"?n.SRGB8_ALPHA8:n.RGBA8),o===n.BYTE&&(u=n.RGBA8_SNORM),o===n.UNSIGNED_SHORT&&l&&(u=l.RGBA16_EXT),o===n.SHORT&&l&&(u=l.RGBA16_SNORM_EXT),o===n.UNSIGNED_SHORT_4_4_4_4&&(u=n.RGBA4),o===n.UNSIGNED_SHORT_5_5_5_1&&(u=n.RGB5_A1)}return t===n.RGBA_INTEGER&&(o===n.UNSIGNED_BYTE&&(u=n.RGBA8UI),o===n.UNSIGNED_SHORT&&(u=n.RGBA16UI),o===n.UNSIGNED_INT&&(u=n.RGBA32UI),o===n.BYTE&&(u=n.RGBA8I),o===n.SHORT&&(u=n.RGBA16I),o===n.INT&&(u=n.RGBA32I)),t===n.DEPTH_COMPONENT&&(o===n.UNSIGNED_SHORT&&(u=n.DEPTH_COMPONENT16),o===n.UNSIGNED_INT&&(u=n.DEPTH_COMPONENT24),o===n.FLOAT&&(u=n.DEPTH_COMPONENT32F)),t===n.DEPTH_STENCIL&&o===n.UNSIGNED_INT_24_8&&(u=n.DEPTH24_STENCIL8),(u===n.R16F||u===n.R32F||u===n.RG16F||u===n.RG32F||u===n.RGBA16F||u===n.RGBA32F)&&a.get("EXT_color_buffer_float"),u}setTextureParameters(e,t){const{gl:o,extensions:r,backend:s}=this,{state:i}=this.backend,n=o0.getPrimaries(o0.workingColorSpace),a=t.colorSpace===""?null:o0.getPrimaries(t.colorSpace),l=t.colorSpace===""||n===a?o.NONE:o.BROWSER_DEFAULT_WEBGL;i.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,t.flipY),i.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.premultiplyAlpha),i.pixelStorei(o.UNPACK_ALIGNMENT,t.unpackAlignment),i.pixelStorei(o.UNPACK_COLORSPACE_CONVERSION_WEBGL,l),o.texParameteri(e,o.TEXTURE_WRAP_S,er[t.wrapS]),o.texParameteri(e,o.TEXTURE_WRAP_T,er[t.wrapT]),(e===o.TEXTURE_3D||e===o.TEXTURE_2D_ARRAY)&&(t.isArrayTexture||o.texParameteri(e,o.TEXTURE_WRAP_R,er[t.wrapR])),o.texParameteri(e,o.TEXTURE_MAG_FILTER,Ks[t.magFilter]);const u=t.mipmaps!==void 0&&t.mipmaps.length>0,c=t.minFilter===1006&&u?bi:t.minFilter;if(o.texParameteri(e,o.TEXTURE_MIN_FILTER,Ks[c]),t.compareFunction&&(o.texParameteri(e,o.TEXTURE_COMPARE_MODE,o.COMPARE_REF_TO_TEXTURE),o.texParameteri(e,o.TEXTURE_COMPARE_FUNC,K7[t.compareFunction])),r.has("EXT_texture_filter_anisotropic")===!0){if(t.magFilter===1003||t.minFilter!==1005&&t.minFilter!==1008||t.type===1015&&r.has("OES_texture_float_linear")===!1)return;if(t.anisotropy>1){const d=r.get("EXT_texture_filter_anisotropic");o.texParameterf(e,d.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(t.anisotropy,s.capabilities.getMaxAnisotropy()))}}}createDefaultTexture(e){const{gl:t,backend:o,defaultTextures:r}=this,s=this.getGLTextureType(e);let i=r[s];i===void 0&&(i=t.createTexture(),o.state.bindTexture(s,i),t.texParameteri(s,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(s,t.TEXTURE_MAG_FILTER,t.NEAREST),r[s]=i),o.set(e,{textureGPU:i,glTextureType:s})}createTexture(e,t){const{gl:o,backend:r}=this;let s,i,n,a,l;if(e.isExternalTexture===!0)s=e.sourceTexture,i=this.getGLTextureType(e);else{const{levels:u,width:c,height:d,depth:h}=t;n=r.utils.convert(e.format,e.colorSpace),a=r.utils.convert(e.type),l=this.getInternalFormat(e.internalFormat,n,a,e.normalized,e.colorSpace,e.isVideoTexture),s=o.createTexture(),i=this.getGLTextureType(e),r.state.bindTexture(i,s),this.setTextureParameters(i,e),e.isArrayTexture||e.isDataArrayTexture||e.isCompressedArrayTexture?o.texStorage3D(o.TEXTURE_2D_ARRAY,u,l,c,d,h):e.isData3DTexture?o.texStorage3D(o.TEXTURE_3D,u,l,c,d,h):e.isVideoTexture||o.texStorage2D(i,u,l,c,d)}r.set(e,{textureGPU:s,glTextureType:i,glFormat:n,glType:a,glInternalFormat:l})}copyBufferToTexture(e,t){const{gl:o,backend:r}=this,{state:s}=r,{textureGPU:i,glTextureType:n,glFormat:a,glType:l}=r.get(t),{width:u,height:c}=t.source.data;o.bindBuffer(o.PIXEL_UNPACK_BUFFER,e),r.state.bindTexture(n,i),s.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),s.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.texSubImage2D(n,0,0,0,u,c,a,l,0),o.bindBuffer(o.PIXEL_UNPACK_BUFFER,null),r.state.unbindTexture()}updateTexture(e,t){const{gl:o}=this,{width:r,height:s}=t,{textureGPU:i,glTextureType:n,glFormat:a,glType:l,glInternalFormat:u}=this.backend.get(e);if(!(e.isRenderTargetTexture||i===void 0))if(this.backend.state.bindTexture(n,i),this.setTextureParameters(n,e),e.isCompressedTexture){const c=e.mipmaps,d=t.image;for(let h=0;h0){const d=Wl(c.width,c.height,e.format,e.type);for(const h of e.layerUpdates){const f=c.data.subarray(h*d/c.data.BYTES_PER_ELEMENT,(h+1)*d/c.data.BYTES_PER_ELEMENT);o.texSubImage3D(o.TEXTURE_2D_ARRAY,0,0,0,h,c.width,c.height,1,a,l,f)}e.clearLayerUpdates()}else o.texSubImage3D(o.TEXTURE_2D_ARRAY,0,0,0,0,c.width,c.height,c.depth,a,l,c.data)}else if(e.isData3DTexture){const c=t.image;o.texSubImage3D(o.TEXTURE_3D,0,0,0,0,c.width,c.height,c.depth,a,l,c.data)}else if(e.isVideoTexture)e.update(),o.texImage2D(n,0,u,a,l,t.image);else if(e.isHTMLTexture)typeof o.texElementImage2D=="function"&&(o.texElementImage2D.length===3?o.texElementImage2D(o.TEXTURE_2D,o.RGBA8,t.image):o.texElementImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,t.image));else{const c=e.mipmaps;if(c.length>0)for(let d=0,h=c.length;d0,d=t.renderTarget?t.renderTarget.height:this.backend.getDrawingBufferSize().y;if(c){const h=n!==0||a!==0;let f,p;if(e.isDepthTexture===!0?(f=r.DEPTH_BUFFER_BIT,p=r.DEPTH_ATTACHMENT,t.stencil&&(f|=r.STENCIL_BUFFER_BIT)):(f=r.COLOR_BUFFER_BIT,p=r.COLOR_ATTACHMENT0),h){const m=this.backend.get(t.renderTarget),b=m.framebuffers[t.getCacheKey()],N=m.msaaFrameBuffer;s.bindFramebuffer(r.DRAW_FRAMEBUFFER,b),s.bindFramebuffer(r.READ_FRAMEBUFFER,N);const v=d-a-u;r.blitFramebuffer(n,v,n+l,v+u,n,v,n+l,v+u,f,r.NEAREST),s.bindFramebuffer(r.READ_FRAMEBUFFER,b),s.bindTexture(r.TEXTURE_2D,i),r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,n,v,l,u),s.unbindTexture()}else{const m=r.createFramebuffer();s.bindFramebuffer(r.DRAW_FRAMEBUFFER,m),r.framebufferTexture2D(r.DRAW_FRAMEBUFFER,p,r.TEXTURE_2D,i,0),r.blitFramebuffer(0,0,l,u,0,0,l,u,f,r.NEAREST),r.deleteFramebuffer(m)}}else s.bindTexture(r.TEXTURE_2D,i),r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,n,d-u-a,l,u),s.unbindTexture();e.generateMipmaps&&this.generateMipmaps(e),this.backend._setFramebuffer(t)}setupRenderBufferStorage(e,t,o,r=!1){const{gl:s}=this,i=t.renderTarget,{depthTexture:n,depthBuffer:a,stencilBuffer:l,width:u,height:c}=i;if(s.bindRenderbuffer(s.RENDERBUFFER,e),a&&!l){let d=s.DEPTH_COMPONENT24;r===!0?this.extensions.get("WEBGL_multisampled_render_to_texture").renderbufferStorageMultisampleEXT(s.RENDERBUFFER,i.samples,d,u,c):o>0?(n&&n.isDepthTexture&&n.type===s.FLOAT&&(d=s.DEPTH_COMPONENT32F),s.renderbufferStorageMultisample(s.RENDERBUFFER,o,d,u,c)):s.renderbufferStorage(s.RENDERBUFFER,d,u,c),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,e)}else a&&l&&(o>0?s.renderbufferStorageMultisample(s.RENDERBUFFER,o,s.DEPTH24_STENCIL8,u,c):s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_STENCIL,u,c),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_STENCIL_ATTACHMENT,s.RENDERBUFFER,e));s.bindRenderbuffer(s.RENDERBUFFER,null)}async copyTextureToBuffer(e,t,o,r,s,i){const{backend:n,gl:a}=this,{textureGPU:l,glFormat:u,glType:c}=this.backend.get(e),d=a.createFramebuffer();n.state.bindFramebuffer(a.READ_FRAMEBUFFER,d);const h=e.isCubeTexture?a.TEXTURE_CUBE_MAP_POSITIVE_X+i:a.TEXTURE_2D;a.framebufferTexture2D(a.READ_FRAMEBUFFER,a.COLOR_ATTACHMENT0,h,l,0);const f=this._getTypedArrayType(c),p=this._getBytesPerTexel(c,u),m=r*s*p,b=a.createBuffer();a.bindBuffer(a.PIXEL_PACK_BUFFER,b),a.bufferData(a.PIXEL_PACK_BUFFER,m,a.STREAM_READ),a.readPixels(t,o,r,s,u,c,0),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),await n.utils._clientWaitAsync();const N=new f(m/f.BYTES_PER_ELEMENT);return a.bindBuffer(a.PIXEL_PACK_BUFFER,b),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,N),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),n.state.bindFramebuffer(a.READ_FRAMEBUFFER,null),a.deleteFramebuffer(d),N}_getTypedArrayType(e){const{gl:t}=this;if(e===t.UNSIGNED_BYTE)return Uint8Array;if(e===t.UNSIGNED_SHORT_4_4_4_4||e===t.UNSIGNED_SHORT_5_5_5_1||e===t.UNSIGNED_SHORT_5_6_5||e===t.UNSIGNED_SHORT)return Uint16Array;if(e===t.UNSIGNED_INT)return Uint32Array;if(e===t.HALF_FLOAT)return Uint16Array;if(e===t.FLOAT)return Float32Array;throw new Error(`THREE.WebGLTextureUtils: Unsupported WebGL type: ${e}`)}_getBytesPerTexel(e,t){const{gl:o}=this;let r=0;if(e===o.UNSIGNED_BYTE&&(r=1),(e===o.UNSIGNED_SHORT_4_4_4_4||e===o.UNSIGNED_SHORT_5_5_5_1||e===o.UNSIGNED_SHORT_5_6_5||e===o.UNSIGNED_SHORT||e===o.HALF_FLOAT)&&(r=2),(e===o.UNSIGNED_INT||e===o.FLOAT)&&(r=4),t===o.RGBA)return r*4;if(t===o.RGB)return r*3;if(t===o.ALPHA)return r}dispose(){const{gl:e}=this;this._srcFramebuffer!==null&&e.deleteFramebuffer(this._srcFramebuffer),this._dstFramebuffer!==null&&e.deleteFramebuffer(this._dstFramebuffer)}};function tr(e){return e.isDataTexture?e.image.data:typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas?e:e.data}var oy=class{constructor(e){this.backend=e,this.gl=this.backend.gl,this.availableExtensions=this.gl.getSupportedExtensions(),this.extensions={}}get(e){let t=this.extensions[e];return t===void 0&&(t=this.gl.getExtension(e),this.extensions[e]=t),t}has(e){return this.availableExtensions.includes(e)}},ry=class{constructor(e){this.backend=e,this.maxAnisotropy=null,this.maxUniformBlockSize=null}getMaxAnisotropy(){if(this.maxAnisotropy!==null)return this.maxAnisotropy;const e=this.backend.gl,t=this.backend.extensions;if(t.has("EXT_texture_filter_anisotropic")===!0){const o=t.get("EXT_texture_filter_anisotropic");this.maxAnisotropy=e.getParameter(o.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else this.maxAnisotropy=0;return this.maxAnisotropy}getUniformBufferLimit(){if(this.maxUniformBlockSize!==null)return this.maxUniformBlockSize;const e=this.backend.gl;return this.maxUniformBlockSize=e.getParameter(e.MAX_UNIFORM_BLOCK_SIZE),this.maxUniformBlockSize}},Y7={WEBGL_multi_draw:"WEBGL_multi_draw",WEBGL_compressed_texture_astc:"texture-compression-astc",WEBGL_compressed_texture_etc:"texture-compression-etc2",WEBGL_compressed_texture_etc1:"texture-compression-etc1",WEBGL_compressed_texture_pvrtc:"texture-compression-pvrtc",WEBGL_compressed_texture_s3tc:"texture-compression-s3tc",EXT_texture_compression_bptc:"texture-compression-bc",EXT_disjoint_timer_query_webgl2:"timestamp-query",OVR_multiview2:"OVR_multiview2"},sy=class{constructor(e){this.gl=e.gl,this.extensions=e.extensions,this.info=e.renderer.info,this.mode=null,this.index=0,this.type=null,this.object=null}render(e,t){const{gl:o,mode:r,object:s,type:i,info:n,index:a}=this;a!==0?o.drawElements(r,t,i,e):o.drawArrays(r,e,t),n.update(s,t,1)}renderInstances(e,t,o){const{gl:r,mode:s,type:i,index:n,object:a,info:l}=this;o!==0&&(n!==0?r.drawElementsInstanced(s,t,i,e,o):r.drawArraysInstanced(s,e,t,o),l.update(a,t,o))}renderMultiDraw(e,t,o){const{extensions:r,mode:s,object:i,info:n}=this;if(o===0)return;const a=r.get("WEBGL_multi_draw");if(a===null)for(let l=0;lthis.maxQueries)return z1(`WebGLTimestampQueryPool [${this.type}]: Maximum number of queries exceeded, when using trackTimestamp it is necessary to resolves the queries via renderer.resolveTimestampsAsync( THREE.TimestampQuery.${this.type.toUpperCase()} ).`),null;const t=this.currentQueryIndex;return this.currentQueryIndex+=2,this.queryStates.set(t,"inactive"),this.queryOffsets.set(e,t),t}beginQuery(e){if(!this.trackTimestamp||this.isDisposed)return;const t=this.queryOffsets.get(e);if(t==null||this.activeQuery!==null)return;const o=this.queries[t];if(o)try{this.queryStates.get(t)==="inactive"&&(this.gl.beginQuery(this.ext.TIME_ELAPSED_EXT,o),this.activeQuery=t,this.queryStates.set(t,"started"))}catch(r){I("Error in beginQuery:",r),this.activeQuery=null,this.queryStates.set(t,"inactive")}}endQuery(e){if(!this.trackTimestamp||this.isDisposed)return;const t=this.queryOffsets.get(e);if(t!=null&&this.activeQuery===t)try{this.gl.endQuery(this.ext.TIME_ELAPSED_EXT),this.queryStates.set(t,"ended"),this.activeQuery=null}catch(o){I("Error in endQuery:",o),this.queryStates.set(t,"inactive"),this.activeQuery=null}}async resolveQueriesAsync(){if(!this.trackTimestamp||this.pendingResolve)return this.lastValue;this.pendingResolve=!0;try{const e=new Map;for(const[s,i]of this.queryOffsets)if(this.queryStates.get(i)==="ended"){const n=this.queries[i];e.set(s,this.resolveQuery(n))}if(e.size===0)return this.lastValue;const t={},o=[];for(const[s,i]of e){const n=s.match(/^(.*):f(\d+)$/),a=parseInt(n[2]);o.includes(a)===!1&&o.push(a),t[a]===void 0&&(t[a]=0);const l=await i;this.timestamps.set(s,l),t[a]+=l}const r=t[o[o.length-1]];return this.lastValue=r,this.frames=o,this.currentQueryIndex=0,this.queryOffsets.clear(),this.queryStates.clear(),this.activeQuery=null,r}catch(e){return I("Error resolving queries:",e),this.lastValue}finally{this.pendingResolve=!1}}async resolveQuery(e){return new Promise(t=>{if(this.isDisposed){t(this.lastValue);return}let o,r=!1;const s=()=>{o&&(clearTimeout(o),o=null)},i=a=>{r||(r=!0,s(),t(a))},n=()=>{if(this.isDisposed){i(this.lastValue);return}try{if(this.gl.getParameter(this.ext.GPU_DISJOINT_EXT)){i(this.lastValue);return}if(!this.gl.getQueryParameter(e,this.gl.QUERY_RESULT_AVAILABLE)){o=setTimeout(n,1);return}const a=this.gl.getQueryParameter(e,this.gl.QUERY_RESULT);t(Number(a)/1e6)}catch(a){I("Error checking query:",a),t(this.lastValue)}};n()})}dispose(){if(!this.isDisposed&&(this.isDisposed=!0,!!this.trackTimestamp)){for(const e of this.queries)this.gl.deleteQuery(e);this.queries=[],this.queryStates.clear(),this.queryOffsets.clear(),this.lastValue=0,this.activeQuery=null}}},e4=class extends z5{constructor(e={}){super(e),this.isWebGLBackend=!0,this.attributeUtils=null,this.extensions=null,this.capabilities=null,this.textureUtils=null,this.bufferRenderer=null,this.gl=null,this.state=null,this.utils=null,this.vaoCache={},this.transformFeedbackCache={},this.discard=!1,this.disjoint=null,this.parallel=null,this._currentContext=null,this._knownBindings=new WeakSet,this._supportsInvalidateFramebuffer=typeof navigator>"u"?!1:/OculusBrowser/g.test(navigator.userAgent),this._xrFramebuffer=null}init(e){super.init(e);const t=this.parameters,o={antialias:e.currentSamples>0,alpha:!0,depth:e.depth,stencil:e.stencil},r=t.context!==void 0?t.context:e.domElement.getContext("webgl2",o);function s(i){i.preventDefault();const n={api:"WebGL",message:i.statusMessage||"Unknown reason",reason:null,originalEvent:i};e.onDeviceLost(n)}this._onContextLost=s,e.domElement.addEventListener("webglcontextlost",s,!1),this.gl=r,this.extensions=new oy(this),this.capabilities=new ry(this),this.attributeUtils=new KN(this),this.textureUtils=new ty(this),this.bufferRenderer=new sy(this),this.state=new YN(this),this.utils=new ey(this),this.extensions.get("EXT_color_buffer_float"),this.extensions.get("WEBGL_clip_cull_distance"),this.extensions.get("OES_texture_float_linear"),this.extensions.get("EXT_color_buffer_half_float"),this.extensions.get("WEBGL_multisampled_render_to_texture"),this.extensions.get("WEBGL_render_shared_exponent"),this.extensions.get("WEBGL_multi_draw"),this.extensions.get("OVR_multiview2"),this.extensions.get("EXT_clip_control"),this.disjoint=this.extensions.get("EXT_disjoint_timer_query_webgl2"),this.parallel=this.extensions.get("KHR_parallel_shader_compile"),this.drawBuffersIndexedExt=this.extensions.get("OES_draw_buffers_indexed"),t.reversedDepthBuffer&&(this.extensions.has("EXT_clip_control")?e.reversedDepthBuffer=!0:(j("WebGPURenderer: Unable to use reversed depth buffer due to missing EXT_clip_control extension. Fallback to default depth buffer."),e.reversedDepthBuffer=!1)),e.reversedDepthBuffer&&this.state.setReversedDepth(!0)}get coordinateSystem(){return e6}get hasTimestamp(){return this.disjoint!==null}async getArrayBufferAsync(e,t=null,o=0,r=-1){return await this.attributeUtils.getArrayBufferAsync(e,t,o,r)}async makeXRCompatible(){this.gl.getContextAttributes().xrCompatible!==!0&&await this.gl.makeXRCompatible()}setXRTarget(e){this._xrFramebuffer=e}setXRRenderTargetTextures(e,t,o=null){const r=this.gl;if(this.set(e.texture,{textureGPU:t,glInternalFormat:r.RGBA8}),o!==null){const s=e.stencilBuffer?r.DEPTH24_STENCIL8:r.DEPTH_COMPONENT24;this.set(e.depthTexture,{textureGPU:o,glInternalFormat:s}),this.extensions.has("WEBGL_multisampled_render_to_texture")===!0&&e._autoAllocateDepthBuffer===!0&&e.multiview===!1&&j("WebGLBackend: Render-to-texture extension was disabled because an external texture was provided"),e._autoAllocateDepthBuffer=!1}}initTimestampQuery(e,t){if(!this.disjoint||!this.trackTimestamp)return;this.timestampQueryPool[e]||(this.timestampQueryPool[e]=new iy(this.gl,e,2048));const o=this.timestampQueryPool[e];o.allocateQueriesForContext(t)!==null&&o.beginQuery(t)}prepareTimestampBuffer(e,t){!this.disjoint||!this.trackTimestamp||this.timestampQueryPool[e].endQuery(t)}getContext(){return this.gl}beginRender(e){const{state:t}=this,o=this.get(e);if(e.viewport)this.updateViewport(e);else{const{width:s,height:i}=this.getDrawingBufferSize();t.viewport(0,0,s,i)}if(e.scissor)this.updateScissor(e);else{const{width:s,height:i}=this.getDrawingBufferSize();t.scissor(0,0,s,i)}this.initTimestampQuery(Qe.RENDER,this.getTimestampUID(e)),o.previousContext=this._currentContext,this._currentContext=e,this._setFramebuffer(e),this.clear(e.clearColor,e.clearDepth,e.clearStencil,e,!1);const r=e.occlusionQueryCount;r>0&&(o.currentOcclusionQueries=o.occlusionQueries,o.currentOcclusionQueryObjects=o.occlusionQueryObjects,o.lastOcclusionObject=null,o.occlusionQueries=new Array(r),o.occlusionQueryObjects=new Array(r),o.occlusionQueryIndex=0)}finishRender(e){const{gl:t,state:o}=this,r=this.get(e),s=r.previousContext;o.resetVertexState();const i=e.occlusionQueryCount;i>0&&(i>r.occlusionQueryIndex&&t.endQuery(t.ANY_SAMPLES_PASSED),this.resolveOccludedAsync(e));const n=e.textures;if(n!==null)for(let a=0;a{let a=0;for(let l=0;l1?t.renderInstances(o,r,s):t.render(o,r)}draw(e){const{object:t,pipeline:o,material:r,context:s,hardwareClippingPlanes:i}=e,{programGPU:n}=this.get(o),{gl:a,state:l}=this,u=this.get(s),c=e.getDrawParameters();if(c===null)return;this._bindUniforms(e.getBindings());const d=t.isMesh&&t.matrixWorld.determinantAffine()<0;l.setMaterial(r,d,i),s.mrt!==null&&s.textures!==null&&l.setMRTBlending(s.textures,s.mrt,r),l.useProgram(n);const h=e.getAttributes(),f=this.get(h);let p=f.vaoGPU;if(p===void 0){const S=this._getVaoKey(h);p=this.vaoCache[S],p===void 0&&(p=this._createVao(h),this.vaoCache[S]=p,f.vaoGPU=p)}const m=e.getIndex(),b=m!==null?this.get(m).bufferGPU:null;l.setVertexState(p,b);const N=u.lastOcclusionObject;if(N!==t&&N!==void 0){if(N!==null&&N.occlusionTest===!0&&(a.endQuery(a.ANY_SAMPLES_PASSED),u.occlusionQueryIndex++),t.occlusionTest===!0){const S=a.createQuery();a.beginQuery(a.ANY_SAMPLES_PASSED,S),u.occlusionQueries[u.occlusionQueryIndex]=S,u.occlusionQueryObjects[u.occlusionQueryIndex]=t}u.lastOcclusionObject=t}const v=this.bufferRenderer;t.isPoints?v.mode=a.POINTS:t.isLineSegments?v.mode=a.LINES:t.isLine?v.mode=a.LINE_STRIP:t.isLineLoop?v.mode=a.LINE_LOOP:r.wireframe===!0?(l.setLineWidth(r.wireframeLinewidth*this.renderer.getPixelRatio()),v.mode=a.LINES):v.mode=a.TRIANGLES;const{vertexCount:y,instanceCount:T}=c;let{firstVertex:x}=c;if(v.object=t,m!==null){x*=m.array.BYTES_PER_ELEMENT;const S=this.get(m);v.index=m.count,v.type=S.type}else v.index=0;if(e.camera.isArrayCamera===!0&&e.camera.cameras.length>0&&e.camera.isMultiViewCamera===!1){const S=this.get(e.camera),C=e.camera.cameras,w=e.getBindingGroup("cameraIndex").bindings[0];if(S.indexesGPU===void 0||S.indexesGPU.length!==C.length){const U=new Uint32Array([0,0,0,0]),D=[];for(let Q=0,k=C.length;Q{const d=this.parallel,h=()=>{o.getProgramParameter(n,d.COMPLETION_STATUS_KHR)?(this._completeCompile(e,r),c()):requestAnimationFrame(h)};h()});t.push(u);return}this._completeCompile(e,r)}_handleSource(e,t){const o=e.split(` +`),r=[],s=Math.max(t-6,0),i=Math.min(t+6,o.length);for(let n=s;n":" "} ${a}: ${o[n]}`)}return r.join(` +`)}_getShaderErrors(e,t,o){const r=e.getShaderParameter(t,e.COMPILE_STATUS),s=(e.getShaderInfoLog(t)||"").trim();if(r&&s==="")return"";const i=/ERROR: 0:(\d+)/.exec(s);if(i){const n=parseInt(i[1]);return o.toUpperCase()+` + +`+s+` + +`+this._handleSource(e.getShaderSource(t),n)}else return s}_logProgramError(e,t,o){if(this.renderer.debug.checkShaderErrors){const r=this.gl,s=(r.getProgramInfoLog(e)||"").trim();if(r.getProgramParameter(e,r.LINK_STATUS)===!1)if(typeof this.renderer.debug.onShaderError=="function")this.renderer.debug.onShaderError(r,e,o,t);else{const i=this._getShaderErrors(r,o,"vertex"),n=this._getShaderErrors(r,t,"fragment");I("WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(e,r.VALIDATE_STATUS)+` + +Program Info Log: `+s+` +`+i+` +`+n)}else s!==""&&j("WebGLProgram: Program Info Log:",s)}}_completeCompile(e,t){const{state:o,gl:r}=this,{programGPU:s,fragmentShader:i,vertexShader:n}=this.get(t);r.getProgramParameter(s,r.LINK_STATUS)===!1&&this._logProgramError(s,i,n),o.useProgram(s);const a=e.getBindings();this._setupBindings(a,s),this.set(t,{programGPU:s,pipeline:s})}createComputePipeline(e,t){const{state:o,gl:r}=this,s={stage:"fragment",code:`#version 300 es +precision highp float; +void main() {}`};this.createProgram(s);const{computeProgram:i}=e,n=r.createProgram(),a=this.get(s).shaderGPU,l=this.get(i).shaderGPU,u=i.transforms,c=[],d=[];for(let m=0;mY7[r]===e),o=this.extensions;for(let r=0;r1,h=s.isXRRenderTarget===!0,f=h===!0&&s._hasExternalTextures===!0;let p=i.msaaFrameBuffer,m=i.depthRenderbuffer;const b=this.extensions.get("WEBGL_multisampled_render_to_texture"),N=this.extensions.get("OVR_multiview2"),v=this._useMultisampledExtension(s),y=m5(e);let T;if(u?(i.cubeFramebuffers||(i.cubeFramebuffers={}),T=i.cubeFramebuffers[y]):h&&f===!1?T=this._xrFramebuffer:(i.framebuffers||(i.framebuffers={}),T=i.framebuffers[y]),T===void 0){T=t.createFramebuffer(),o.bindFramebuffer(t.FRAMEBUFFER,T);const x=e.textures,S=[];if(u){i.cubeFramebuffers[y]=T;const{textureGPU:w}=this.get(x[0]),L=this.renderer._activeCubeFace,F=this.renderer._activeMipmapLevel;t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+L,w,F)}else{i.framebuffers[y]=T;for(let w=0;w0&&v===!1&&!s.multiview){if(p===void 0){const x=[];p=t.createFramebuffer(),o.bindFramebuffer(t.FRAMEBUFFER,p);const S=[],C=e.textures;for(let w=0;w0&&this._useMultisampledExtension(r)===!1){const i=s.framebuffers[e.getCacheKey()];let n=t.COLOR_BUFFER_BIT;r.resolveDepthBuffer&&(r.depthBuffer&&(n|=t.DEPTH_BUFFER_BIT),r.stencilBuffer&&r.resolveStencilBuffer&&(n|=t.STENCIL_BUFFER_BIT));const a=s.msaaFrameBuffer,l=s.msaaRenderbuffers,u=e.textures,c=u.length>1;if(o.bindFramebuffer(t.READ_FRAMEBUFFER,a),o.bindFramebuffer(t.DRAW_FRAMEBUFFER,i),c)for(let d=0;d0&&this.extensions.has("WEBGL_multisampled_render_to_texture")===!0&&e._autoAllocateDepthBuffer!==!1}dispose(){this.textureUtils!==null&&this.textureUtils.dispose();const e=this.extensions.get("WEBGL_lose_context");e&&e.loseContext(),this.renderer.domElement.removeEventListener("webglcontextlost",this._onContextLost)}},q3={PointList:"point-list",LineList:"line-list",LineStrip:"line-strip",TriangleList:"triangle-list"},qe=typeof self<"u"&&self.GPUShaderStage?self.GPUShaderStage:{VERTEX:1,FRAGMENT:2,COMPUTE:4},f0={Never:"never",Less:"less",Equal:"equal",LessEqual:"less-equal",Greater:"greater",NotEqual:"not-equal",GreaterEqual:"greater-equal",Always:"always"},C0={Store:"store"},W1={Load:"load",Clear:"clear"},t4={CCW:"ccw",CW:"cw"},o4={None:"none",Back:"back"},Ir={Uint16:"uint16",Uint32:"uint32"},M={R8Unorm:"r8unorm",R8Snorm:"r8snorm",R8Uint:"r8uint",R8Sint:"r8sint",R16Uint:"r16uint",R16Sint:"r16sint",R16Float:"r16float",RG8Unorm:"rg8unorm",RG8Snorm:"rg8snorm",RG8Uint:"rg8uint",RG8Sint:"rg8sint",R16Unorm:"r16unorm",R16Snorm:"r16snorm",R32Uint:"r32uint",R32Sint:"r32sint",R32Float:"r32float",RG16Uint:"rg16uint",RG16Sint:"rg16sint",RG16Float:"rg16float",RGBA8Unorm:"rgba8unorm",RGBA8UnormSRGB:"rgba8unorm-srgb",RGBA8Snorm:"rgba8snorm",RGBA8Uint:"rgba8uint",RGBA8Sint:"rgba8sint",BGRA8Unorm:"bgra8unorm",BGRA8UnormSRGB:"bgra8unorm-srgb",RG16Unorm:"rg16unorm",RG16Snorm:"rg16snorm",RGB9E5UFloat:"rgb9e5ufloat",RGB10A2Unorm:"rgb10a2unorm",RG11B10UFloat:"rg11b10ufloat",RG32Uint:"rg32uint",RG32Sint:"rg32sint",RG32Float:"rg32float",RGBA16Uint:"rgba16uint",RGBA16Sint:"rgba16sint",RGBA16Float:"rgba16float",RGBA16Unorm:"rgba16unorm",RGBA16Snorm:"rgba16snorm",RGBA32Uint:"rgba32uint",RGBA32Sint:"rgba32sint",RGBA32Float:"rgba32float",Depth16Unorm:"depth16unorm",Depth24Plus:"depth24plus",Depth24PlusStencil8:"depth24plus-stencil8",Depth32Float:"depth32float",Depth32FloatStencil8:"depth32float-stencil8",BC1RGBAUnorm:"bc1-rgba-unorm",BC1RGBAUnormSRGB:"bc1-rgba-unorm-srgb",BC2RGBAUnorm:"bc2-rgba-unorm",BC2RGBAUnormSRGB:"bc2-rgba-unorm-srgb",BC3RGBAUnorm:"bc3-rgba-unorm",BC3RGBAUnormSRGB:"bc3-rgba-unorm-srgb",BC4RUnorm:"bc4-r-unorm",BC4RSnorm:"bc4-r-snorm",BC5RGUnorm:"bc5-rg-unorm",BC5RGSnorm:"bc5-rg-snorm",BC6HRGBUFloat:"bc6h-rgb-ufloat",BC6HRGBFloat:"bc6h-rgb-float",BC7RGBAUnorm:"bc7-rgba-unorm",BC7RGBAUnormSRGB:"bc7-rgba-unorm-srgb",ETC2RGB8Unorm:"etc2-rgb8unorm",ETC2RGB8UnormSRGB:"etc2-rgb8unorm-srgb",ETC2RGB8A1Unorm:"etc2-rgb8a1unorm",ETC2RGB8A1UnormSRGB:"etc2-rgb8a1unorm-srgb",ETC2RGBA8Unorm:"etc2-rgba8unorm",ETC2RGBA8UnormSRGB:"etc2-rgba8unorm-srgb",EACR11Unorm:"eac-r11unorm",EACR11Snorm:"eac-r11snorm",EACRG11Unorm:"eac-rg11unorm",EACRG11Snorm:"eac-rg11snorm",ASTC4x4Unorm:"astc-4x4-unorm",ASTC4x4UnormSRGB:"astc-4x4-unorm-srgb",ASTC5x4Unorm:"astc-5x4-unorm",ASTC5x4UnormSRGB:"astc-5x4-unorm-srgb",ASTC5x5Unorm:"astc-5x5-unorm",ASTC5x5UnormSRGB:"astc-5x5-unorm-srgb",ASTC6x5Unorm:"astc-6x5-unorm",ASTC6x5UnormSRGB:"astc-6x5-unorm-srgb",ASTC6x6Unorm:"astc-6x6-unorm",ASTC6x6UnormSRGB:"astc-6x6-unorm-srgb",ASTC8x5Unorm:"astc-8x5-unorm",ASTC8x5UnormSRGB:"astc-8x5-unorm-srgb",ASTC8x6Unorm:"astc-8x6-unorm",ASTC8x6UnormSRGB:"astc-8x6-unorm-srgb",ASTC8x8Unorm:"astc-8x8-unorm",ASTC8x8UnormSRGB:"astc-8x8-unorm-srgb",ASTC10x5Unorm:"astc-10x5-unorm",ASTC10x5UnormSRGB:"astc-10x5-unorm-srgb",ASTC10x6Unorm:"astc-10x6-unorm",ASTC10x6UnormSRGB:"astc-10x6-unorm-srgb",ASTC10x8Unorm:"astc-10x8-unorm",ASTC10x8UnormSRGB:"astc-10x8-unorm-srgb",ASTC10x10Unorm:"astc-10x10-unorm",ASTC10x10UnormSRGB:"astc-10x10-unorm-srgb",ASTC12x10Unorm:"astc-12x10-unorm",ASTC12x10UnormSRGB:"astc-12x10-unorm-srgb",ASTC12x12Unorm:"astc-12x12-unorm",ASTC12x12UnormSRGB:"astc-12x12-unorm-srgb"},Ys={ClampToEdge:"clamp-to-edge",Repeat:"repeat",MirrorRepeat:"mirror-repeat"},oe={Linear:"linear",Nearest:"nearest"},v1={Zero:"zero",One:"one",Src:"src",OneMinusSrc:"one-minus-src",SrcAlpha:"src-alpha",OneMinusSrcAlpha:"one-minus-src-alpha",Dst:"dst",OneMinusDst:"one-minus-dst",DstAlpha:"dst-alpha",OneMinusDstAlpha:"one-minus-dst-alpha",SrcAlphaSaturated:"src-alpha-saturated",Constant:"constant",OneMinusConstant:"one-minus-constant"},jt={Add:"add",Subtract:"subtract",ReverseSubtract:"reverse-subtract",Min:"min",Max:"max"},r4={None:0,All:15},yt={Keep:"keep",Zero:"zero",Replace:"replace",Invert:"invert",IncrementClamp:"increment-clamp",DecrementClamp:"decrement-clamp",IncrementWrap:"increment-wrap",DecrementWrap:"decrement-wrap"},ei={Storage:"storage",ReadOnlyStorage:"read-only-storage"},ti={WriteOnly:"write-only",ReadOnly:"read-only",ReadWrite:"read-write"},s4={NonFiltering:"non-filtering",Comparison:"comparison"},Kt={Float:"float",UnfilterableFloat:"unfilterable-float",Depth:"depth",SInt:"sint",UInt:"uint"},i4={TwoD:"2d",ThreeD:"3d"},g0={TwoD:"2d",TwoDArray:"2d-array",Cube:"cube",ThreeD:"3d"},ny={All:"all"},or={Vertex:"vertex",Instance:"instance"},Gr={CoreFeaturesAndLimits:"core-features-and-limits",DepthClipControl:"depth-clip-control",Depth32FloatStencil8:"depth32float-stencil8",TextureCompressionBC:"texture-compression-bc",TextureCompressionBCSliced3D:"texture-compression-bc-sliced-3d",TextureCompressionETC2:"texture-compression-etc2",TextureCompressionASTC:"texture-compression-astc",TextureCompressionASTCSliced3D:"texture-compression-astc-sliced-3d",TimestampQuery:"timestamp-query",IndirectFirstInstance:"indirect-first-instance",ShaderF16:"shader-f16",RG11B10UFloat:"rg11b10ufloat-renderable",BGRA8UNormStorage:"bgra8unorm-storage",Float32Filterable:"float32-filterable",Float32Blendable:"float32-blendable",ClipDistances:"clip-distances",DualSourceBlending:"dual-source-blending",Subgroups:"subgroups",TextureFormatsTier1:"texture-formats-tier1",TextureFormatsTier2:"texture-formats-tier2"},n4={"texture-compression-s3tc":"texture-compression-bc","texture-compression-etc1":"texture-compression-etc2"},ay=class extends I5{constructor(e,t,o){super(e,t?t.value:null),this.textureNode=t,this.groupNode=o}update(){const{textureNode:e}=this;return this.texture!==e.value?(this.texture=e.value,!0):super.update()}},ly=class extends P5{constructor(e,t){super(e,t?t.array:null),this._attribute=t,this.isStorageBuffer=!0}get attribute(){return this._attribute}},uy=0,cy=class extends ly{constructor(e,t){super("StorageBuffer_"+uy++,e?e.value:null),this.nodeUniform=e,this.access=e?e.access:ae.READ_WRITE,this.groupNode=t}get attribute(){return this.nodeUniform.value}get buffer(){return this.nodeUniform.value.array}},oi=[null],dy=class{constructor(e){this.backend=e,this._preferredCanvasFormat=null}getCurrentDepthStencilFormat(e){let t;return e.depth&&(e.depthTexture!==null?t=this.getTextureFormatGPU(e.depthTexture):e.stencil?this.backend.renderer.reversedDepthBuffer===!0?t=M.Depth32FloatStencil8:t=M.Depth24PlusStencil8:this.backend.renderer.reversedDepthBuffer===!0?t=M.Depth32Float:t=M.Depth24Plus),t}getTextureFormatGPU(e){return this.backend.get(e).format}getTextureSampleData(e){let t;if(e.isFramebufferTexture)t=1;else if(e.isDepthTexture&&!e.renderTarget){const r=this.backend.renderer,s=r.getRenderTarget();t=s?s.samples:r.currentSamples}else e.renderTarget&&(t=e.renderTarget.samples);t=this.getSampleCount(t||1);const o=t>1&&e.renderTarget!==null&&e.isDepthTexture!==!0&&e.isFramebufferTexture!==!0;return{samples:t,primarySamples:o?1:t,isMSAA:o}}getCurrentColorFormat(e){let t;return e.textures!==null?t=this.getTextureFormatGPU(e.textures[0]):t=this.getPreferredCanvasFormat(),t}getCurrentColorFormats(e){return e.textures!==null?e.textures.map(t=>this.getTextureFormatGPU(t)):[this.getPreferredCanvasFormat()]}getCurrentColorSpace(e){return e.textures!==null?e.textures[0].colorSpace:this.backend.renderer.outputColorSpace}getPrimitiveTopology(e,t){if(e.isPoints)return q3.PointList;if(e.isLineSegments||e.isMesh&&t.wireframe===!0)return q3.LineList;if(e.isLine)return q3.LineStrip;if(e.isMesh)return q3.TriangleList}getSampleCount(e){return e>=4?4:1}getSampleCountRenderContext(e){return e.textures!==null?this.getSampleCount(e.sampleCount):this.getSampleCount(this.backend.renderer.currentSamples)}getPreferredCanvasFormat(){const e=this.backend.parameters.outputType;if(e===void 0)return this._preferredCanvasFormat===null&&(this._preferredCanvasFormat=navigator.gpu.getPreferredCanvasFormat()),this._preferredCanvasFormat;if(e===1009)return M.BGRA8Unorm;if(e===1016)return M.RGBA16Float;throw new Error("THREE.WebGPUUtils: Unsupported output buffer type.")}};function $e(e,t){oi[0]=t,e.queue.submit(oi),oi[0]=null}var V5=class{constructor(){this.label="",this.layout=null,this.entries=[]}reset(){this.label="",this.layout=null,this.entries.length=0}},x3=class{constructor(){this.label="",this.size=0,this.usage=0,this.mappedAtCreation=!1}reset(){this.label="",this.size=0,this.usage=0,this.mappedAtCreation=!1}},Ro=class{constructor(){this.label=""}reset(){this.label=""}},Q5=class{constructor(){this.label="",this.colorFormats=null,this.depthStencilFormat=void 0,this.sampleCount=1,this.depthReadOnly=!1,this.stencilReadOnly=!1}reset(){this.label="",this.colorFormats=null,this.depthStencilFormat=void 0,this.sampleCount=1,this.depthReadOnly=!1,this.stencilReadOnly=!1}},ro=class{constructor(){this.view=null,this.depthSlice=void 0,this.resolveTarget=void 0,this.clearValue=void 0,this.loadOp=void 0,this.storeOp=void 0}reset(){this.view=null,this.depthSlice=void 0,this.resolveTarget=void 0,this.clearValue=void 0,this.loadOp=void 0,this.storeOp=void 0}},so=class{constructor(){this.label="",this.colorAttachments=[],this.depthStencilAttachment=void 0,this.occlusionQuerySet=void 0,this.timestampWrites=void 0,this.maxDrawCount=5e7}reset(){this.label="",this.colorAttachments.length=0,this.depthStencilAttachment=void 0,this.occlusionQuerySet=void 0,this.timestampWrites=void 0,this.maxDrawCount=5e7}},Z5=class{constructor(){this.label="",this.layout=null,this.vertex=null,this.primitive={},this.depthStencil=void 0,this.multisample=new hy,this.fragment=null}reset(){this.label="",this.layout=null,this.vertex=null,this.primitive={},this.depthStencil=void 0,this.multisample.reset(),this.fragment=null}},hy=class{constructor(){this.count=1,this.mask=4294967295,this.alphaToCoverageEnabled=!1}reset(){this.count=1,this.mask=4294967295,this.alphaToCoverageEnabled=!1}},q5=class{constructor(){this.label="",this.code="",this.compilationHints=[]}reset(){this.label="",this.code="",this.compilationHints.length=0}},Vn=class{constructor(){this.label="",this.size={width:0,height:1,depthOrArrayLayers:1},this.mipLevelCount=1,this.sampleCount=1,this.dimension="2d",this.format=void 0,this.usage=void 0,this.viewFormats=[],this.textureBindingViewDimension=void 0}reset(){this.label="",this.size.width=0,this.size.height=1,this.size.depthOrArrayLayers=1,this.mipLevelCount=1,this.sampleCount=1,this.dimension="2d",this.format=void 0,this.usage=void 0,this.viewFormats.length=0,this.textureBindingViewDimension=void 0}},Qn=class{constructor(){this.label="",this.format=void 0,this.dimension=void 0,this.usage=0,this.aspect="all",this.baseMipLevel=0,this.mipLevelCount=void 0,this.baseArrayLayer=0,this.arrayLayerCount=void 0,this.swizzle="rgba"}reset(){this.label="",this.format=void 0,this.dimension=void 0,this.usage=0,this.aspect="all",this.baseMipLevel=0,this.mipLevelCount=void 0,this.baseArrayLayer=0,this.arrayLayerCount=void 0,this.swizzle="rgba"}},Mt=new V5,xt=new x3,rr=new Ro,ri=new Q5,si=new so,z2=new Z5,O3=new ro,sr=new q5,$2=new Vn,Y1=new Qn,fy=class extends Vt{constructor(e){super(),this.device=e;const t=` +struct VarysStruct { + @builtin( position ) Position: vec4f, + @location( 0 ) vTex : vec2f, + @location( 1 ) @interpolate(flat, either) vBaseArrayLayer: u32, +}; + +@group( 0 ) @binding ( 2 ) +var flipY: u32; + +@vertex +fn mainVS( + @builtin( vertex_index ) vertexIndex : u32, + @builtin( instance_index ) instanceIndex : u32 ) -> VarysStruct { + + var Varys : VarysStruct; + + var pos = array( + vec2f( -1, -1 ), + vec2f( -1, 3 ), + vec2f( 3, -1 ), + ); + + let p = pos[ vertexIndex ]; + let mult = select( vec2f( 0.5, -0.5 ), vec2f( 0.5, 0.5 ), flipY != 0 ); + Varys.vTex = p * mult + vec2f( 0.5 ); + Varys.Position = vec4f( p, 0, 1 ); + Varys.vBaseArrayLayer = instanceIndex; + + return Varys; + +} + +@group( 0 ) @binding( 0 ) +var imgSampler : sampler; + +@group( 0 ) @binding( 1 ) +var img2d : texture_2d; + +@fragment +fn main_2d( Varys: VarysStruct ) -> @location( 0 ) vec4 { + + return textureSample( img2d, imgSampler, Varys.vTex ); + +} + +@group( 0 ) @binding( 1 ) +var img2dArray : texture_2d_array; + +@fragment +fn main_2d_array( Varys: VarysStruct ) -> @location( 0 ) vec4 { + + return textureSample( img2dArray, imgSampler, Varys.vTex, Varys.vBaseArrayLayer ); + +} + +const faceMat = array( + mat3x3f( 0, 0, -2, 0, -2, 0, 1, 1, 1 ), // pos-x + mat3x3f( 0, 0, 2, 0, -2, 0, -1, 1, -1 ), // neg-x + mat3x3f( 2, 0, 0, 0, 0, 2, -1, 1, -1 ), // pos-y + mat3x3f( 2, 0, 0, 0, 0, -2, -1, -1, 1 ), // neg-y + mat3x3f( 2, 0, 0, 0, -2, 0, -1, 1, 1 ), // pos-z + mat3x3f( -2, 0, 0, 0, -2, 0, 1, 1, -1 ), // neg-z +); + +@group( 0 ) @binding( 1 ) +var imgCube : texture_cube; + +@fragment +fn main_cube( Varys: VarysStruct ) -> @location( 0 ) vec4 { + + return textureSample( imgCube, imgSampler, faceMat[ Varys.vBaseArrayLayer ] * vec3f( fract( Varys.vTex ), 1 ) ); + +} +`;this.mipmapSampler=e.createSampler({minFilter:oe.Linear}),this.flipYSampler=e.createSampler({minFilter:oe.Nearest}),xt.size=4,xt.usage=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,this.flipUniformBuffer=e.createBuffer(xt),xt.reset(),e.queue.writeBuffer(this.flipUniformBuffer,0,new Uint32Array([1])),xt.size=4,xt.usage=GPUBufferUsage.UNIFORM,this.noFlipUniformBuffer=e.createBuffer(xt),xt.reset(),this.transferPipelines={},sr.label="mipmap",sr.code=t,this.mipmapShaderModule=e.createShaderModule(sr),sr.reset()}getTransferPipeline(e,t){t=t||"2d-array";const o=`${e}-${t}`;let r=this.transferPipelines[o];return r===void 0&&(z2.label=`mipmap-${e}-${t}`,z2.vertex={module:this.mipmapShaderModule},z2.fragment={module:this.mipmapShaderModule,entryPoint:`main_${t.replace("-","_")}`,targets:[{format:e}]},z2.layout="auto",r=this.device.createRenderPipeline(z2),z2.reset(),this.transferPipelines[o]=r),r}flipY(e,t,o=0){const r=t.format,{width:s,height:i}=t.size;$2.size.width=s,$2.size.height=i,$2.format=r,$2.usage=GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING;const n=this.device.createTexture($2);$2.reset();const a=this.getTransferPipeline(r,e.textureBindingViewDimension),l=this.getTransferPipeline(r,n.textureBindingViewDimension),u=this.device.createCommandEncoder(rr),c=(d,h,f,p,m,b)=>{const N=d.getBindGroupLayout(0);Y1.dimension=h.textureBindingViewDimension||"2d-array",Y1.mipLevelCount=1;const v=h.createView(Y1);Y1.reset(),Mt.layout=N,Mt.entries.push({binding:0,resource:this.flipYSampler},{binding:1,resource:v},{binding:2,resource:{buffer:b?this.flipUniformBuffer:this.noFlipUniformBuffer}});const y=this.device.createBindGroup(Mt);Mt.reset(),Y1.dimension="2d",Y1.mipLevelCount=1,Y1.baseArrayLayer=m,Y1.arrayLayerCount=1;const T=p.createView(Y1);Y1.reset(),O3.view=T,O3.loadOp=W1.Clear,O3.storeOp=C0.Store,si.colorAttachments.push(O3);const x=u.beginRenderPass(si);si.reset(),O3.reset(),x.setPipeline(d),x.setBindGroup(0,y),x.draw(3,1,0,f),x.end()};c(a,e,o,n,0,!1),c(l,n,0,e,o,!0),$e(this.device,u.finish()),n.destroy()}generateMipmaps(e,t=null){const o=this.get(e),r=o.layers||this._mipmapCreateBundles(e);let s=t;s===null&&(rr.label="mipmapEncoder",s=this.device.createCommandEncoder(rr),rr.reset()),this._mipmapRunBundles(s,r),t===null&&$e(this.device,s.finish()),o.layers=r}_mipmapCreateBundles(e){const t=e.textureBindingViewDimension||"2d-array",o=this.getTransferPipeline(e.format,t),r=o.getBindGroupLayout(0),s=[];for(let i=1;i0)for(let i=0,n=r.length;i0){for(const i of e.layerUpdates)this._copyBufferToTexture(t.image,o.texture,s,i,e.flipY,i);e.clearLayerUpdates()}else for(let i=0;i0?(this._copyCompressedBufferToTexture(e.mipmaps,o.texture,s,e.layerUpdates),e.clearLayerUpdates()):this._copyCompressedBufferToTexture(e.mipmaps,o.texture,s);else if(e.isCubeTexture)this._copyCubeMapToTexture(e,o.texture,s);else if(e.isHTMLTexture){const i=this.backend.device,n=this.backend.renderer.domElement,a=e.image;if(typeof i.queue.copyElementImageToTexture!="function")return;if(!o.hasPaintCallback){o.hasPaintCallback=!0,n.requestPaint();return}const l=s.size.width,u=s.size.height;i.queue.copyElementImageToTexture.length===2?i.queue.copyElementImageToTexture({source:a},{destination:{texture:o.texture},width:l,height:u}):i.queue.copyElementImageToTexture(a,l,u,{texture:o.texture}),e.flipY&&this._flipY(o.texture,s)}else if(r.length>0)for(let i=0,n=r.length;i0?e.width:o.size.width,u=n>0?e.height:o.size.height;ar.source=e,ar.flipY=s,V2.texture=t,V2.mipLevel=n,V2.origin.z=r,V2.premultipliedAlpha=i,S0.width=l,S0.height=u;try{a.queue.copyExternalImageToTexture(ar,V2,S0)}catch{}finally{ar.reset(),V2.reset(),S0.reset()}}_getPassUtils(){let e=this._passUtils;return e===null&&(this._passUtils=e=new fy(this.backend.device)),e}_generateMipmaps(e,t=null){this._getPassUtils().generateMipmaps(e,t)}_flipY(e,t,o=0){this._getPassUtils().flipY(e,t,o)}_copyBufferToTexture(e,t,o,r,s,i=0,n=0){const a=this.backend.device,l=e.data,u=this._getBytesPerTexel(o.format),c=e.width*u;T0.texture=t,T0.mipLevel=n,T0.origin.z=r,ct.offset=e.width*e.height*u*i,ct.bytesPerRow=c,S0.width=e.width,S0.height=e.height,a.queue.writeTexture(T0,l,ct,S0),T0.reset(),ct.reset(),S0.reset(),s===!0&&this._flipY(t,o,r)}_copyCompressedBufferToTexture(e,t,o,r=null){const s=this.backend.device,i=this._getBlockData(o.format),n=o.size.depthOrArrayLayers>1,a=r&&r.size>0?r:null;for(let l=0;l]*\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/i,Ty=/([a-z_0-9]+)\s*:\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/gi,l4={f32:"float",i32:"int",u32:"uint",bool:"bool","vec2":"vec2","vec2":"ivec2","vec2":"uvec2","vec2":"bvec2",vec2f:"vec2",vec2i:"ivec2",vec2u:"uvec2",vec2b:"bvec2","vec3":"vec3","vec3":"ivec3","vec3":"uvec3","vec3":"bvec3",vec3f:"vec3",vec3i:"ivec3",vec3u:"uvec3",vec3b:"bvec3","vec4":"vec4","vec4":"ivec4","vec4":"uvec4","vec4":"bvec4",vec4f:"vec4",vec4i:"ivec4",vec4u:"uvec4",vec4b:"bvec4","mat2x2":"mat2",mat2x2f:"mat2","mat3x3":"mat3",mat3x3f:"mat3","mat4x4":"mat4",mat4x4f:"mat4",sampler:"sampler",texture_1d:"texture",texture_2d:"texture",texture_2d_array:"texture",texture_multisampled_2d:"cubeTexture",texture_depth_2d:"depthTexture",texture_depth_2d_array:"depthTexture",texture_depth_multisampled_2d:"depthTexture",texture_depth_cube:"depthTexture",texture_depth_cube_array:"depthTexture",texture_3d:"texture3D",texture_cube:"cubeTexture",texture_cube_array:"cubeTexture",texture_storage_1d:"storageTexture",texture_storage_2d:"storageTexture",texture_storage_2d_array:"storageTexture",texture_storage_3d:"storageTexture"},wy=e=>{e=e.trim();const t=e.match(Sy);if(t!==null&&t.length===4){const o=t[2],r=[];let s=null;for(;(s=Ty.exec(o))!==null;)r.push({name:s[1],type:s[2]});const i=[];for(let u=0;u "+this.outputType:"";return`fn ${e} ( ${this.inputsCode.trim()} ) ${t}`+this.blockCode}},Ay=class extends W5{parseFunction(e){return new _y(e)}},Cy={[ae.READ_ONLY]:"read",[ae.WRITE_ONLY]:"write",[ae.READ_WRITE]:"read_write"},u4={[z4]:"repeat",[Dt]:"clamp",[Z4]:"mirror"},ii={vertex:qe.VERTEX,fragment:qe.FRAGMENT,compute:qe.COMPUTE},c4={instance:!0,swizzleAssign:!1,storageBuffer:!0},Ry={"^^":"tsl_xor"},By={float:"f32",int:"i32",uint:"u32",bool:"bool",color:"vec3",vec2:"vec2",ivec2:"vec2",uvec2:"vec2",bvec2:"vec2",vec3:"vec3",ivec3:"vec3",uvec3:"vec3",bvec3:"vec3",vec4:"vec4",ivec4:"vec4",uvec4:"vec4",bvec4:"vec4",mat2:"mat2x2",mat3:"mat3x3",mat4:"mat4x4"},d4={},F3={tsl_xor:new Q1("fn tsl_xor( a : bool, b : bool ) -> bool { return ( a || b ) && !( a && b ); }"),mod_float:new Q1("fn tsl_mod_float( x : f32, y : f32 ) -> f32 { return x - y * floor( x / y ); }"),mod_vec2:new Q1("fn tsl_mod_vec2( x : vec2f, y : vec2f ) -> vec2f { return x - y * floor( x / y ); }"),mod_vec3:new Q1("fn tsl_mod_vec3( x : vec3f, y : vec3f ) -> vec3f { return x - y * floor( x / y ); }"),mod_vec4:new Q1("fn tsl_mod_vec4( x : vec4f, y : vec4f ) -> vec4f { return x - y * floor( x / y ); }"),equals_bool:new Q1("fn tsl_equals_bool( a : bool, b : bool ) -> bool { return a == b; }"),equals_bvec2:new Q1("fn tsl_equals_bvec2( a : vec2f, b : vec2f ) -> vec2 { return vec2( a.x == b.x, a.y == b.y ); }"),equals_bvec3:new Q1("fn tsl_equals_bvec3( a : vec3f, b : vec3f ) -> vec3 { return vec3( a.x == b.x, a.y == b.y, a.z == b.z ); }"),equals_bvec4:new Q1("fn tsl_equals_bvec4( a : vec4f, b : vec4f ) -> vec4 { return vec4( a.x == b.x, a.y == b.y, a.z == b.z, a.w == b.w ); }"),repeatWrapping_float:new Q1("fn tsl_repeatWrapping_float( coord: f32 ) -> f32 { return fract( coord ); }"),mirrorWrapping_float:new Q1("fn tsl_mirrorWrapping_float( coord: f32 ) -> f32 { let mirrored = fract( coord * 0.5 ) * 2.0; return 1.0 - abs( 1.0 - mirrored ); }"),clampWrapping_float:new Q1("fn tsl_clampWrapping_float( coord: f32 ) -> f32 { return clamp( coord, 0.0, 1.0 ); }"),inverse_mat2:new Q1(` +fn tsl_inverse_mat2( m : mat2x2 ) -> mat2x2 { + + let det = m[ 0 ][ 0 ] * m[ 1 ][ 1 ] - m[ 0 ][ 1 ] * m[ 1 ][ 0 ]; + + return mat2x2( + m[ 1 ][ 1 ], - m[ 0 ][ 1 ], + - m[ 1 ][ 0 ], m[ 0 ][ 0 ] + ) * ( 1.0 / det ); + +} +`),inverse_mat3:new Q1(` +fn tsl_inverse_mat3( m : mat3x3 ) -> mat3x3 { + + let a00 = m[ 0 ][ 0 ]; let a01 = m[ 0 ][ 1 ]; let a02 = m[ 0 ][ 2 ]; + let a10 = m[ 1 ][ 0 ]; let a11 = m[ 1 ][ 1 ]; let a12 = m[ 1 ][ 2 ]; + let a20 = m[ 2 ][ 0 ]; let a21 = m[ 2 ][ 1 ]; let a22 = m[ 2 ][ 2 ]; + + let b01 = a22 * a11 - a12 * a21; + let b11 = - a22 * a10 + a12 * a20; + let b21 = a21 * a10 - a11 * a20; + + let det = a00 * b01 + a01 * b11 + a02 * b21; + + return mat3x3( + b01, ( - a22 * a01 + a02 * a21 ), ( a12 * a01 - a02 * a11 ), + b11, ( a22 * a00 - a02 * a20 ), ( - a12 * a00 + a02 * a10 ), + b21, ( - a21 * a00 + a01 * a20 ), ( a11 * a00 - a01 * a10 ) + ) * ( 1.0 / det ); + +} +`),inverse_mat4:new Q1(` +fn tsl_inverse_mat4( m : mat4x4 ) -> mat4x4 { + + let a00 = m[ 0 ][ 0 ]; let a01 = m[ 0 ][ 1 ]; let a02 = m[ 0 ][ 2 ]; let a03 = m[ 0 ][ 3 ]; + let a10 = m[ 1 ][ 0 ]; let a11 = m[ 1 ][ 1 ]; let a12 = m[ 1 ][ 2 ]; let a13 = m[ 1 ][ 3 ]; + let a20 = m[ 2 ][ 0 ]; let a21 = m[ 2 ][ 1 ]; let a22 = m[ 2 ][ 2 ]; let a23 = m[ 2 ][ 3 ]; + let a30 = m[ 3 ][ 0 ]; let a31 = m[ 3 ][ 1 ]; let a32 = m[ 3 ][ 2 ]; let a33 = m[ 3 ][ 3 ]; + + let b00 = a00 * a11 - a01 * a10; + let b01 = a00 * a12 - a02 * a10; + let b02 = a00 * a13 - a03 * a10; + let b03 = a01 * a12 - a02 * a11; + let b04 = a01 * a13 - a03 * a11; + let b05 = a02 * a13 - a03 * a12; + let b06 = a20 * a31 - a21 * a30; + let b07 = a20 * a32 - a22 * a30; + let b08 = a20 * a33 - a23 * a30; + let b09 = a21 * a32 - a22 * a31; + let b10 = a21 * a33 - a23 * a31; + let b11 = a22 * a33 - a23 * a32; + + let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; + + return mat4x4( + a11 * b11 - a12 * b10 + a13 * b09, + a02 * b10 - a01 * b11 - a03 * b09, + a31 * b05 - a32 * b04 + a33 * b03, + a22 * b04 - a21 * b05 - a23 * b03, + a12 * b08 - a10 * b11 - a13 * b07, + a00 * b11 - a02 * b08 + a03 * b07, + a32 * b02 - a30 * b05 - a33 * b01, + a20 * b05 - a22 * b02 + a23 * b01, + a10 * b10 - a11 * b08 + a13 * b06, + a01 * b08 - a00 * b10 - a03 * b06, + a30 * b04 - a31 * b02 + a33 * b00, + a21 * b02 - a20 * b04 - a23 * b00, + a11 * b07 - a10 * b09 - a12 * b06, + a00 * b09 - a01 * b07 + a02 * b06, + a31 * b01 - a30 * b03 - a32 * b00, + a20 * b03 - a21 * b01 + a22 * b00 + ) * ( 1.0 / det ); + +} +`),biquadraticTexture:new Q1(` +fn tsl_biquadraticTexture( map : texture_2d, coord : vec2f, iRes : vec2u, level : u32 ) -> vec4f { + + let res = vec2f( iRes ); + + let uvScaled = coord * res; + let uvWrapping = ( ( uvScaled % res ) + res ) % res; + + // https://www.shadertoy.com/view/WtyXRy + + let uv = uvWrapping - 0.5; + let iuv = floor( uv ); + let f = fract( uv ); + + let rg1 = textureLoad( map, vec2u( iuv + vec2( 0.5, 0.5 ) ) % iRes, level ); + let rg2 = textureLoad( map, vec2u( iuv + vec2( 1.5, 0.5 ) ) % iRes, level ); + let rg3 = textureLoad( map, vec2u( iuv + vec2( 0.5, 1.5 ) ) % iRes, level ); + let rg4 = textureLoad( map, vec2u( iuv + vec2( 1.5, 1.5 ) ) % iRes, level ); + + return mix( mix( rg1, rg2, f.x ), mix( rg3, rg4, f.x ), f.y ); + +} +`),biquadraticTextureArray:new Q1(` +fn tsl_biquadraticTexture_array( map : texture_2d_array, coord : vec2f, iRes : vec2u, layer : u32, level : u32 ) -> vec4f { + + let res = vec2f( iRes ); + + let uvScaled = coord * res; + let uvWrapping = ( ( uvScaled % res ) + res ) % res; + + // https://www.shadertoy.com/view/WtyXRy + + let uv = uvWrapping - 0.5; + let iuv = floor( uv ); + let f = fract( uv ); + + let rg1 = textureLoad( map, vec2u( iuv + vec2( 0.5, 0.5 ) ) % iRes, layer, level ); + let rg2 = textureLoad( map, vec2u( iuv + vec2( 1.5, 0.5 ) ) % iRes, layer, level ); + let rg3 = textureLoad( map, vec2u( iuv + vec2( 0.5, 1.5 ) ) % iRes, layer, level ); + let rg4 = textureLoad( map, vec2u( iuv + vec2( 1.5, 1.5 ) ) % iRes, layer, level ); + + return mix( mix( rg1, rg2, f.x ), mix( rg3, rg4, f.x ), f.y ); + +} +`)},Ey={dFdx:"dpdx",dFdy:"- dpdy",mod_float:"tsl_mod_float",mod_vec2:"tsl_mod_vec2",mod_vec3:"tsl_mod_vec3",mod_vec4:"tsl_mod_vec4",equals_bool:"tsl_equals_bool",equals_bvec2:"tsl_equals_bvec2",equals_bvec3:"tsl_equals_bvec3",equals_bvec4:"tsl_equals_bvec4",inverse_mat2:"tsl_inverse_mat2",inverse_mat3:"tsl_inverse_mat3",inverse_mat4:"tsl_inverse_mat4",inversesqrt:"inverseSqrt",bitcast:"bitcast",floatpack_snorm_2x16:"pack2x16snorm",floatpack_unorm_2x16:"pack2x16unorm",floatpack_float16_2x16:"pack2x16float",floatunpack_snorm_2x16:"unpack2x16snorm",floatunpack_unorm_2x16:"unpack2x16unorm",floatunpack_float16_2x16:"unpack2x16float"},J5="";(typeof navigator<"u"&&/Firefox|Deno/g.test(navigator.userAgent))!==!0&&(J5+=`diagnostic( off, derivative_uniformity ); +`);var Wy=class extends E5{constructor(e,t){super(e,t,new Ay),this.uniformGroups={},this.uniformGroupsBindings={},this.builtins={},this.directives={},this.scopedArrays=new Map,this.allowEarlyReturns=!0,this.allowGlobalVariables=!0}_generateTextureSample(e,t,o,r,s,i=this.shaderStage){return i==="fragment"?r?s?`textureSample( ${t}, ${t}_sampler, ${o}, ${r}, ${s} )`:`textureSample( ${t}, ${t}_sampler, ${o}, ${r} )`:s?`textureSample( ${t}, ${t}_sampler, ${o}, ${s} )`:`textureSample( ${t}, ${t}_sampler, ${o} )`:this.generateTextureSampleLevel(e,t,o,"0",r)}generateTextureSampleLevel(e,t,o,r,s,i){return this.isUnfilterable(e)===!1?s?i?`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${s}, ${r}, ${i} )`:`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${s}, ${r} )`:i?`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${r}, ${i} )`:`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${r} )`:this.isFilteredTexture(e)?this.generateFilteredTexture(e,t,o,i,r,s):this.generateTextureLod(e,t,o,s,i,r)}generateWrapFunction(e){const t=`tsl_coord_${u4[e.wrapS]}S_${u4[e.wrapT]}T_${e.is3DTexture||e.isData3DTexture?"3d":"2d"}`;let o=d4[t];if(o===void 0){const r=[],s=e.is3DTexture||e.isData3DTexture?"vec3f":"vec2f";let i=`fn ${t}( coord : ${s} ) -> ${s} { + + return ${s}( +`;const n=(a,l)=>{a===1e3?(r.push(F3.repeatWrapping_float),i+=` tsl_repeatWrapping_float( coord.${l} )`):a===1001?(r.push(F3.clampWrapping_float),i+=` tsl_clampWrapping_float( coord.${l} )`):a===1002?(r.push(F3.mirrorWrapping_float),i+=` tsl_mirrorWrapping_float( coord.${l} )`):(i+=` coord.${l}`,j(`WebGPURenderer: Unsupported texture wrap type "${a}" for vertex shader.`))};n(e.wrapS,"x"),i+=`, +`,n(e.wrapT,"y"),(e.is3DTexture||e.isData3DTexture)&&(i+=`, +`,n(e.wrapR,"z")),i+=` + ); + +} +`,d4[t]=o=new Q1(i,r)}return o.build(this),t}generateArrayDeclaration(e,t){return`array< ${this.getType(e)}, ${t} >`}generateTextureDimension(e,t,o){const r=this.getDataFromNode(e,this.shaderStage,this.cache);r.dimensionsSnippet===void 0&&(r.dimensionsSnippet={});let s=r.dimensionsSnippet[o];if(r.dimensionsSnippet[o]===void 0){let i,n;const{primarySamples:a}=this.renderer.backend.utils.getTextureSampleData(e),l=a>1;e.is3DTexture||e.isData3DTexture?n="vec3":n="vec2",l||e.isStorageTexture?i=t:i=`${t}${o?`, u32( ${o} )`:""}`,s=new Mr(new xr(`textureDimensions( ${i} )`,n)),r.dimensionsSnippet[o]=s,(e.isArrayTexture||e.isDataArrayTexture||e.is3DTexture||e.isData3DTexture)&&(r.arrayLayerCount=new Mr(new xr(`textureNumLayers(${t})`,"u32"))),e.isTextureCube&&(r.cubeFaceCount=new Mr(new xr("6u","u32")))}return s.build(this)}generateFilteredTexture(e,t,o,r,s="0u",i){const n=this.generateWrapFunction(e),a=this.generateTextureDimension(e,t,s);return r&&(o=`${o} + vec2(${r}) / ${a}`),i?(this._include("biquadraticTextureArray"),`tsl_biquadraticTexture_array( ${t}, ${n}( ${o} ), ${a}, u32( ${i} ), u32( ${s} ) )`):(this._include("biquadraticTexture"),`tsl_biquadraticTexture( ${t}, ${n}( ${o} ), ${a}, u32( ${s} ) )`)}generateTextureLod(e,t,o,r,s,i="0u"){if(e.isCubeTexture===!0){s&&(o=`${o} + vec3(${s})`);const h=e.isDepthTexture?"u32":"f32";return`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${h}( ${i} ) )`}const n=this.generateWrapFunction(e),a=this.generateTextureDimension(e,t,i),l=e.is3DTexture||e.isData3DTexture?"vec3":"vec2",u=l==="vec3"?"vec3( 1, 1, 1 )":"vec2( 1, 1 )";s&&(o=`${o} + ${l}(${s}) / ${l}( ${a} )`);const c=`${l}( 0 )`,d=`${l}( ${a} - ${u} )`;return o=`${l}( clamp( floor( ${n}( ${o} ) * ${l}( ${a} ) ), ${c}, ${d} ) )`,this.generateTextureLoad(e,t,o,i,r,null)}generateStorageTextureLoad(e,t,o,r,s,i){i&&(o=`${o} + ${i}`);let n;return s?n=`textureLoad( ${t}, ${o}, ${s} )`:n=`textureLoad( ${t}, ${o} )`,n}generateTextureLoad(e,t,o,r,s,i){r===null&&(r="0u"),i&&(o=`${o} + ${i}`);let n;return s?n=`textureLoad( ${t}, ${o}, ${s}, u32( ${r} ) )`:(n=`textureLoad( ${t}, ${o}, u32( ${r} ) )`,this.renderer.backend.compatibilityMode&&e.isDepthTexture&&(n+=".x")),n}generateTextureStore(e,t,o,r,s){let i;return r?i=`textureStore( ${t}, ${o}, ${r}, ${s} )`:i=`textureStore( ${t}, ${o}, ${s} )`,i}isSampleCompare(e){return e.isDepthTexture===!0&&e.compareFunction!==null&&this.renderer.hasCompatibility(R2.TEXTURE_COMPARE)}isUnfilterable(e){return this.getComponentTypeFromTexture(e)!=="float"||!this.isAvailable("float32Filterable")&&e.type===1015||this.isSampleCompare(e)===!1&&e.minFilter===1003&&e.magFilter===1003||this.renderer.backend.utils.getTextureSampleData(e).primarySamples>1}generateTexture(e,t,o,r,s,i=this.shaderStage){let n=null;return this.isUnfilterable(e)?n=this.generateTextureLod(e,t,o,r,s,"0",i):n=this._generateTextureSample(e,t,o,r,s,i),n}generateTextureGrad(e,t,o,r,s,i,n=this.shaderStage){if(n==="fragment")return s?i?`textureSampleGrad( ${t}, ${t}_sampler, ${o}, ${s}, ${r[0]}, ${r[1]}, ${i} )`:`textureSampleGrad( ${t}, ${t}_sampler, ${o}, ${s}, ${r[0]}, ${r[1]} )`:i?`textureSampleGrad( ${t}, ${t}_sampler, ${o}, ${r[0]}, ${r[1]}, ${i} )`:`textureSampleGrad( ${t}, ${t}_sampler, ${o}, ${r[0]}, ${r[1]} )`;I(`WebGPURenderer: THREE.TextureNode.gradient() does not support ${n} shader.`)}generateTextureCompare(e,t,o,r,s,i,n=this.shaderStage){if(n==="fragment")return e.isDepthTexture===!0&&e.isArrayTexture===!0?i?`textureSampleCompare( ${t}, ${t}_sampler, ${o}, ${s}, ${r}, ${i} )`:`textureSampleCompare( ${t}, ${t}_sampler, ${o}, ${s}, ${r} )`:i?`textureSampleCompare( ${t}, ${t}_sampler, ${o}, ${r}, ${i} )`:`textureSampleCompare( ${t}, ${t}_sampler, ${o}, ${r} )`;I(`WebGPURenderer: THREE.DepthTexture.compareFunction() does not support ${n} shader.`)}generateTextureGather(e,t,o,r,s,i){const n=e.isDepthTexture===!0?"":`${r}, `;return s?i?`textureGather( ${n}${t}, ${t}_sampler, ${o}, ${s}, ${i} )`:`textureGather( ${n}${t}, ${t}_sampler, ${o}, ${s} )`:i?`textureGather( ${n}${t}, ${t}_sampler, ${o}, ${i} )`:`textureGather( ${n}${t}, ${t}_sampler, ${o})`}generateTextureGatherCompare(e,t,o,r,s,i){return s?i?`textureGatherCompare( ${t}, ${t}_sampler, ${o}, ${s}, ${r}, ${i} )`:`textureGatherCompare( ${t}, ${t}_sampler, ${o}, ${s}, ${r})`:i?`textureGatherCompare( ${t}, ${t}_sampler, ${o}, ${r}, ${i} )`:`textureGatherCompare( ${t}, ${t}_sampler, ${o}, ${r})`}generateTextureLevel(e,t,o,r,s,i){return this.isUnfilterable(e)===!1?s?i?`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${s}, ${r}, ${i} )`:`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${s}, ${r} )`:i?`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${r}, ${i} )`:`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${r} )`:this.isFilteredTexture(e)?this.generateFilteredTexture(e,t,o,i,r,s):this.generateTextureLod(e,t,o,s,i,r)}generateTextureBias(e,t,o,r,s,i,n=this.shaderStage){if(n==="fragment")return s?i?`textureSampleBias( ${t}, ${t}_sampler, ${o}, ${s}, ${r}, ${i} )`:`textureSampleBias( ${t}, ${t}_sampler, ${o}, ${s}, ${r} )`:i?`textureSampleBias( ${t}, ${t}_sampler, ${o}, ${r}, ${i} )`:`textureSampleBias( ${t}, ${t}_sampler, ${o}, ${r} )`;I(`WebGPURenderer: THREE.TextureNode.biasNode does not support ${n} shader.`)}getPropertyName(e,t=this.shaderStage){if(e.isNodeVarying===!0&&e.needsInterpolation===!0){if(t==="vertex")return`varyings.${e.name}`}else if(e.isNodeUniform===!0){const o=e.name,r=e.type;return r==="texture"||r==="cubeTexture"||r==="cubeDepthTexture"||r==="storageTexture"||r==="texture3D"?o:r==="buffer"||r==="storageBuffer"||r==="indirectStorageBuffer"?this.isCustomStruct(e)?o:o+".value":e.groupNode.name+"."+o}return super.getPropertyName(e)}getOutputStructName(){return"output"}getFunctionOperator(e){const t=Ry[e];return t!==void 0?(this._include(t),t):null}getNodeAccess(e,t){return t!=="compute"?e.isAtomic===!0?(j("WebGPURenderer: Atomic operations are only supported in compute shaders."),ae.READ_WRITE):ae.READ_ONLY:e.access}getStorageAccess(e,t){return Cy[this.getNodeAccess(e,t)]}getUniformFromNode(e,t,o,r=null){const s=super.getUniformFromNode(e,t,o,r),i=this.getDataFromNode(e,o,this.globalCache);if(i.uniformGPU===void 0){let n;const a=e.groupNode,l=a.name,u=this.getBindGroupArray(l,o);if(t==="texture"||t==="cubeTexture"||t==="cubeDepthTexture"||t==="storageTexture"||t==="texture3D"){let c=null;const d=this.getNodeAccess(e,o);if(t==="texture"||t==="storageTexture"?e.value.is3DTexture===!0?c=new Zi(s.name,s.node,a,d):c=new ss(s.name,s.node,a,d):t==="cubeTexture"||t==="cubeDepthTexture"?c=new G5(s.name,s.node,a,d):t==="texture3D"&&(c=new Zi(s.name,s.node,a,d)),c.store=e.isStorageTextureNode===!0,c.mipLevel=c.store?e.mipLevel:0,c.setVisibility(ii[o]),e.value.isCubeTexture===!0||this.isUnfilterable(e.value)===!1&&c.store===!1||e.gatherNode!==null){const h=new ay(`${s.name}_sampler`,s.node,a);h.setVisibility(ii[o]),u.push(h,c),n=[h,c]}else u.push(c),n=[c]}else if(t==="buffer"||t==="storageBuffer"||t==="indirectStorageBuffer"){const c=this.getSharedDataFromNode(e);let d=c.buffer;d===void 0&&(d=new(t==="buffer"?k5:cy)(e,a),c.buffer=d),d.setVisibility(d.getVisibility()|ii[o]),u.push(d),n=d,s.name=r||"NodeBuffer_"+s.id}else{let c=this.uniformGroups[l];c===void 0&&(c=new X5(l,a),c.setVisibility(qe.VERTEX|qe.FRAGMENT|qe.COMPUTE),this.uniformGroups[l]=c),u.indexOf(c)===-1&&u.push(c),n=this.getNodeUniform(s,t);const d=n.name;c.uniforms.some(h=>h.name===d)||c.addUniform(n)}i.uniformGPU=n}return s}getBuiltin(e,t,o,r=this.shaderStage){const s=this.builtins[r]||(this.builtins[r]=new Map);return s.has(e)===!1&&s.set(e,{name:e,property:t,type:o}),t}hasBuiltin(e,t=this.shaderStage){return this.builtins[t]!==void 0&&this.builtins[t].has(e)}getVertexIndex(){return this.shaderStage==="vertex"?this.getBuiltin("vertex_index","vertexIndex","u32","attribute"):"vertexIndex"}buildFunctionCode(e){const t=e.layout,o=this.flowShaderNode(e),r=[];for(const i of t.inputs)r.push(i.name+" : "+this.getType(i.type));let s=`fn ${t.name}( ${r.join(", ")} ) -> ${this.getType(t.type)} { +${o.vars} +${o.code} +`;return o.result&&(s+=` return ${o.result}; +`),s+=` +} +`,s}getInstanceIndex(){return this.shaderStage==="vertex"?this.getBuiltin("instance_index","instanceIndex","u32","attribute"):"instanceIndex"}getInvocationLocalIndex(){return this.getBuiltin("local_invocation_index","invocationLocalIndex","u32","attribute")}getSubgroupSize(){return this.enableSubGroups(),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute")}getInvocationSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_invocation_id","invocationSubgroupIndex","u32","attribute")}getSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_id","subgroupIndex","u32","attribute")}getDrawIndex(){return null}getFrontFacing(){return this.getBuiltin("front_facing","isFront","bool")}getFragCoord(){return this.getBuiltin("position","fragCoord","vec4")+".xy"}getFragDepth(){return"output."+this.getBuiltin("frag_depth","depth","f32","output")}getClipDistance(){return"varyings.hw_clip_distances"}isFlipY(){return!1}enableDirective(e,t=this.shaderStage){(this.directives[t]||(this.directives[t]=new Set)).add(e)}getDirectives(e){const t=[],o=this.directives[e];if(o!==void 0)for(const r of o)t.push(`enable ${r};`);return t.join(` +`)}enableSubGroups(){this.enableDirective("subgroups")}enableSubgroupsF16(){this.enableDirective("subgroups-f16")}enableClipDistances(){this.enableDirective("clip_distances")}enableShaderF16(){this.enableDirective("f16")}enableDualSourceBlending(){this.enableDirective("dual_source_blending")}enableHardwareClipping(e){this.enableClipDistances(),this.getBuiltin("clip_distances","hw_clip_distances",`array`,"vertex")}getBuiltins(e){const t=[],o=this.builtins[e];if(o!==void 0)for(const{name:r,property:s,type:i}of o.values())t.push(`@builtin( ${r} ) ${s} : ${i}`);return t.join(`, + `)}getScopedArray(e,t,o,r){return this.scopedArrays.has(e)===!1&&this.scopedArrays.set(e,{name:e,scope:t,bufferType:o,bufferCount:r}),e}getScopedArrays(e){if(e!=="compute")return;const t=[];for(const{name:o,scope:r,bufferType:s,bufferCount:i}of this.scopedArrays.values()){const n=this.getType(s);t.push(`var<${r}> ${o}: array< ${n}, ${i} >;`)}return t.join(` +`)}getAttributes(e){const t=[];if(e==="compute"&&(this.getBuiltin("global_invocation_id","globalId","vec3","attribute"),this.getBuiltin("workgroup_id","workgroupId","vec3","attribute"),this.getBuiltin("local_invocation_id","localId","vec3","attribute"),this.getBuiltin("num_workgroups","numWorkgroups","vec3","attribute"),this.renderer.hasFeature("subgroups")&&(this.enableDirective("subgroups",e),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute"))),e==="vertex"||e==="compute"){const o=this.getBuiltins("attribute");o&&t.push(o);const r=this.getAttributesArray();for(let s=0,i=r.length;s"),t.push(` ${r+o.name} : ${s}`)}return e.output&&t.push(` ${this.getBuiltins("output")}`),t.join(`, +`)}getStructs(e){let t="";const o=this.structs[e];if(o.length>0){const r=[];for(const s of o){let i=`struct ${s.name} { +`;i+=this.getStructMembers(s),i+=` +};`,r.push(i)}t=` +`+r.join(` + +`)+` +`}return t}getVar(e,t,o=null,r=""){let s=`var${r} ${t} : `;return o!==null?s+=this.generateArrayDeclaration(e,o):s+=this.getType(e),s}getVars(e,t=!1){let o="";t&&(o="");const r=[],s=this.vars[e];if(s!==void 0)for(const i of s)r.push(`${this.getVar(i.type,i.name,i.count,o)};`);return t?r.join(` +`):` + ${r.join(` + `)} +`}getVaryings(e){const t=[];if(e==="vertex"&&this.getBuiltin("position","builtinClipSpace","vec4","vertex"),e==="vertex"||e==="fragment"){const s=this.varyings,i=this.vars[e];let n=0;for(let a=0;ao.value.itemSize;return r&&!s}getUniforms(e){const t=this.renderer.backend,o=this.uniforms[e],r=[],s=[],i=[],n={};for(const a of o){const l=a.groupNode.name,u=this.bindingsIndexes[l];if(a.type==="texture"||a.type==="cubeTexture"||a.type==="cubeDepthTexture"||a.type==="storageTexture"||a.type==="texture3D"){const c=a.node,d=c.value;(d.isCubeTexture===!0||this.isUnfilterable(d)===!1&&c.isStorageTextureNode!==!0||c.gatherNode!==null)&&(this.isSampleCompare(d)&&c.compareNode!==null?r.push(`@binding( ${u.binding++} ) @group( ${u.group} ) var ${a.name}_sampler : sampler_comparison;`):r.push(`@binding( ${u.binding++} ) @group( ${u.group} ) var ${a.name}_sampler : sampler;`));let h,f="";const{primarySamples:p}=t.utils.getTextureSampleData(d);if(p>1&&(f="_multisampled"),d.isCubeTexture===!0&&d.isDepthTexture===!0)h="texture_depth_cube";else if(d.isCubeTexture===!0)h="texture_cube";else if(d.isDepthTexture===!0)t.compatibilityMode&&d.compareFunction===null?h=`texture${f}_2d`:h=`texture_depth${f}_2d${d.isArrayTexture===!0?"_array":""}`;else if(a.node.isStorageTextureNode===!0){const m=qi(d,t.device),b=this.getStorageAccess(a.node,e),N=a.node.value.is3DTexture,v=a.node.value.isArrayTexture;h=`texture_storage_${N?"3d":`2d${v?"_array":""}`}<${m}, ${b}>`}else if(d.isArrayTexture===!0||d.isDataArrayTexture===!0||d.isCompressedArrayTexture===!0)h="texture_2d_array";else if(d.is3DTexture===!0||d.isData3DTexture===!0)h="texture_3d";else{const m=this.getComponentTypeFromTexture(d).charAt(0);h=`texture${f}_2d<${m}32>`}r.push(`@binding( ${u.binding++} ) @group( ${u.group} ) var ${a.name} : ${h};`)}else if(a.type==="buffer"||a.type==="storageBuffer"||a.type==="indirectStorageBuffer"){const c=a.node,d=this.getType(c.getNodeType(this)),h=c.bufferCount,f=h>0&&a.type==="buffer"?", "+h:"",p=c.isStorageBufferNode?`storage, ${this.getStorageAccess(c,e)}`:"uniform";if(this.isCustomStruct(a))s.push(`@binding( ${u.binding++} ) @group( ${u.group} ) var<${p}> ${a.name} : ${d};`);else{const m=` value : array< ${c.isAtomic?`atomic<${d}>`:`${d}`}${f} >`;s.push(this._getWGSLStructBinding(a.name,m,p,u.binding++,u.group))}}else{const c=a.groupNode.name;if(n[c]===void 0){const d=this.uniformGroups[c];if(d!==void 0){const h=[];for(const p of d.uniforms){const m=p.getType(),b=this.getType(this.getVectorType(m));h.push(` ${p.name} : ${b}`)}let f=this.uniformGroupsBindings[c];f===void 0&&(f={index:u.binding++,id:u.group},this.uniformGroupsBindings[c]=f),n[c]={index:f.index,id:f.id,snippets:h}}}}}for(const a in n){const l=n[a];i.push(this._getWGSLStructBinding(a,l.snippets.join(`, +`),"uniform",l.index,l.id))}return[...r,...s,...i].join(` +`)}buildCode(){const e=this.material!==null?{fragment:{},vertex:{}}:{compute:{}};this.sortBindingGroups();for(const t in e){this.shaderStage=t;const o=this.allowGlobalVariables,r=e[t];r.uniforms=this.getUniforms(t),r.attributes=this.getAttributes(t),r.varyings=this.getVaryings(t),r.structs=this.getStructs(t),r.vars=this.getVars(t,o),r.codes=this.getCodes(t),r.directives=this.getDirectives(t),r.scopedArrays=this.getScopedArrays(t);let s=`// code + +`;s+=this.flowCode[t];const i=this.flowNodes[t],n=i[i.length-1],a=n.outputNode,l=a!==void 0&&a.isOutputStructNode===!0;for(const u of i){const c=this.getFlowData(u),d=u.name;if(d&&(s.length>0&&(s+=` +`),s+=` // flow -> ${d} +`),s+=`${c.code} + `,u===n&&t!=="compute"){if(s+=`// result + + `,t==="vertex")s+=`varyings.builtinClipSpace = ${c.result};`;else if(t==="fragment")if(l)r.returnType=a.getNodeType(this),r.structs+="var output : "+r.returnType+";",s+=`return ${c.result};`;else{let h=` @location( 0 ) color: ${this.getType(this.getOutputType())}`;const f=this.getBuiltins("output");f&&(h+=`, + `+f),r.returnType="OutputStruct",r.structs+=this._getWGSLStruct("OutputStruct",h),r.structs+=` +var output : OutputStruct;`,s+=`output.color = ${this.format(c.result,n.getNodeType(this),this.getOutputType())}; + + return output;`}}}r.flow=s}if(this.shaderStage=null,this.material!==null)this.vertexShader=this._getWGSLVertexCode(e.vertex),this.fragmentShader=this._getWGSLFragmentCode(e.fragment);else{const t=this.object.workgroupSize;this.computeShader=this._getWGSLComputeCode(e.compute,t)}}getMethod(e,t=null){let o;return t!==null&&(o=this._getWGSLMethod(e+"_"+t)),o===void 0&&(o=this._getWGSLMethod(e)),o||e}getBitcastMethod(e){return`bitcast<${this.getType(e)}>`}getFloatPackingMethod(e){return this.getMethod(`floatpack_${e}_2x16`)}getFloatUnpackingMethod(e){return this.getMethod(`floatunpack_${e}_2x16`)}getTernary(e,t,o){return`select( ${o}, ${t}, ${e} )`}getType(e){return By[e]||e}isAvailable(e){let t=c4[e];return t===void 0&&(e==="float32Filterable"?t=this.renderer.hasFeature("float32-filterable"):e==="clipDistance"&&(t=this.renderer.hasFeature("clip-distances")),c4[e]=t),t}_getWGSLMethod(e){return F3[e]!==void 0&&this._include(e),Ey[e]}_include(e){const t=F3[e];return t.build(this),this.addInclude(t),t}_getWGSLVertexCode(e){return`${this.getSignature()} +// directives +${e.directives} + +// structs +${e.structs} + +// uniforms +${e.uniforms} + +// varyings +${e.varyings} +var varyings : VaryingsStruct; + +// vars +${e.vars} + +// codes +${e.codes} + +@vertex +fn main( ${e.attributes} ) -> VaryingsStruct { + + // flow + ${e.flow} + + return varyings; + +} +`}_getWGSLFragmentCode(e){return`${this.getSignature()} +// global +${J5} + +// structs +${e.structs} + +// uniforms +${e.uniforms} + +// vars +${e.vars} + +// codes +${e.codes} + +@fragment +fn main( ${e.varyings} ) -> ${e.returnType} { + + // flow + ${e.flow} + +} +`}_getWGSLComputeCode(e,t){const[o,r,s]=t;return`${this.getSignature()} +// directives +${e.directives} + +// system +var instanceIndex : u32; + +// locals +${e.scopedArrays} + +// structs +${e.structs} + +// uniforms +${e.uniforms} + +// vars +${this.allowGlobalVariables?e.vars:""} + +// codes +${e.codes} + +@compute @workgroup_size( ${o}, ${r}, ${s} ) +fn main( ${e.attributes} ) { + + // local vars + ${this.allowGlobalVariables?"":e.vars} + + // system + instanceIndex = globalId.x + + globalId.y * ( ${o} * numWorkgroups.x ) + + globalId.z * ( ${o} * numWorkgroups.x ) * ( ${r} * numWorkgroups.y ); + + // flow + ${e.flow} + +} +`}_getWGSLStruct(e,t){return` +struct ${e} { +${t} +};`}_getWGSLStructBinding(e,t,o,r=0,s=0){const i=e+"Struct";return`${this._getWGSLStruct(i,t)} +@binding( ${r} ) @group( ${s} ) +var<${o}> ${e} : ${i};`}},x0=new x3,ni=new Ro,j5=new Map([[Int8Array,["sint8","snorm8"]],[Uint8Array,["uint8","unorm8"]],[Int16Array,["sint16","snorm16"]],[Uint16Array,["uint16","unorm16"]],[Int32Array,["sint32","snorm32"]],[Uint32Array,["uint32","unorm32"]],[Float32Array,["float32"]]]);typeof Float16Array<"u"&&j5.set(Float16Array,["float16"]);var Ly=new Map([[Q4,["float16"]]]),Uy=new Map([[Int32Array,"sint32"],[Int16Array,"sint32"],[Uint32Array,"uint32"],[Uint16Array,"uint32"],[Float32Array,"float32"]]),Oy=class{constructor(e){this.backend=e}createAttribute(e,t){const o=this._getBufferAttribute(e),r=this.backend,s=r.get(o);let i=s.buffer;if(i===void 0){const n=r.device;let a=o.array;if(e.normalized===!1){if(a.constructor===Int16Array||a.constructor===Int8Array)a=new Int32Array(a);else if((a.constructor===Uint16Array||a.constructor===Uint8Array)&&(a=new Uint32Array(a),t&GPUBufferUsage.INDEX))for(let d=0;d1&&o.itemSize*a.BYTES_PER_ELEMENT%4!==0){const d=o.itemSize*a.BYTES_PER_ELEMENT;l=Math.floor((d+3)/4)*4/a.BYTES_PER_ELEMENT}if(l!==void 0){const d=o.itemSize,h=new a.constructor(o.count*l);for(let f=0;f1&&c%4!==0&&(c=Math.floor((c+3)/4)*4)),s.normalized===!1&&(s.array.constructor===Int16Array||s.array.constructor===Uint16Array)&&(c=4),a={arrayStride:c,attributes:[],stepMode:d},o.set(n,a)}const l=this._getVertexFormat(s),u=s.isInterleavedBufferAttribute===!0?s.offset*i:0;a.attributes.push({shaderLocation:r,offset:u,format:l})}return Array.from(o.values())}destroyAttribute(e){const t=this.backend;t.get(this._getBufferAttribute(e)).buffer.destroy(),t.delete(e)}async getArrayBufferAsync(e,t=null,o=0,r=-1){const s=this.backend,i=s.device,n=s.get(this._getBufferAttribute(e)).buffer,a=r===-1?n.size-o:r;let l;if(t!==null&&t.isReadbackBuffer){const c=s.get(t);if(t._mapped===!0)throw new Error("THREE.WebGPUAttributeUtils: ReadbackBuffer must be released before being used again.");if(t._mapped=!0,c.readBufferGPU===void 0){x0.label=`${t.name}_readback`,x0.size=t.maxByteLength,x0.usage=GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,l=i.createBuffer(x0),x0.reset();const d=()=>{t.buffer=null,t._mapped=!1,l.unmap()},h=()=>{t.buffer=null,t._mapped=!1,l.destroy(),s.delete(t),t.removeEventListener("release",d),t.removeEventListener("dispose",h)};t.addEventListener("release",d),t.addEventListener("dispose",h),c.readBufferGPU=l}else l=c.readBufferGPU}else x0.label=`${e.name}_readback`,x0.size=a,x0.usage=GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,l=i.createBuffer(x0),x0.reset();ni.label=`readback_encoder_${e.name}`;const u=i.createCommandEncoder(ni);if(ni.reset(),u.copyBufferToBuffer(n,o,l,0,a),$e(i,u.finish()),await l.mapAsync(GPUMapMode.READ,0,a),t===null){const c=l.getMappedRange(0,a).slice();return l.destroy(),c}else{if(t.isReadbackBuffer)return t.buffer=l.getMappedRange(0,a),t;{const c=l.getMappedRange(0,a);return new Uint8Array(t).set(new Uint8Array(c)),l.destroy(),t}}}_getVertexFormat(e){const{itemSize:t,normalized:o}=e,r=e.array.constructor,s=e.constructor;let i;if(t===1)i=Uy.get(r);else{const n=(Ly.get(s)||j5.get(r))[o?1:0];if(n){const a=r.BYTES_PER_ELEMENT*t,l=Math.floor((a+3)/4)*4/r.BYTES_PER_ELEMENT;if(l%1)throw new Error("THREE.WebGPUAttributeUtils: Bad vertex format item size.");i=`${n}x${l}`}}return i||I("WebGPUAttributeUtils: Vertex format not supported yet."),i}_getBufferAttribute(e){return e.isInterleavedBufferAttribute&&(e=e.data),e}},$0=new V5,P3=new x3,Q2=new Qn,Fy=class{constructor(e){this.layoutGPU=e,this.usedTimes=0}},Py=class{constructor(e){this.backend=e,this._bindGroupLayoutCache=new Map}createBindingsLayout(e){const t=this.backend,o=t.device,r=t.get(e);if(r.layout)return r.layout.layoutGPU;const s=this._createLayoutEntries(e),i=p3(JSON.stringify(s));let n=this._bindGroupLayoutCache.get(i);return n===void 0&&(n=new Fy(o.createBindGroupLayout({entries:s})),this._bindGroupLayoutCache.set(i,n)),n.usedTimes++,r.layout=n,r.layoutKey=i,n.layoutGPU}createBindings(e,t,o,r=0){const{backend:s}=this,i=s.get(e),n=this.createBindingsLayout(e);let a;o>0&&(i.groups===void 0&&(i.groups=[],i.versions=[]),i.versions[o]===r&&(a=i.groups[o])),a===void 0&&(a=this.createBindGroup(e,n),o>0&&(i.groups[o]=a,i.versions[o]=r)),i.group=a}updateBinding(e){const t=this.backend,o=t.device,r=e.buffer,s=t.get(e).buffer,i=e.updateRanges;if(i.length===0)o.queue.writeBuffer(s,0,r,0);else{const n=Rr(r),a=n?1:r.BYTES_PER_ELEMENT;let l=i[0].start;for(let u=0,c=i.length;u1&&(d+=`-${a.texture.depthOrArrayLayers}`),d+=`-${u}-${c}`,l=a[d],l===void 0){const h=ny.All;let f;n.isSampledCubeTexture?f=g0.Cube:n.texture.isArrayTexture||n.texture.isDataArrayTexture||n.texture.isCompressedArrayTexture?f=g0.TwoDArray:n.isSampledTexture3D?f=g0.ThreeD:f=g0.TwoD,Q2.aspect=h,Q2.dimension=f,Q2.mipLevelCount=u,Q2.baseMipLevel=c,l=a[d]=a.texture.createView(Q2),Q2.reset()}}$0.entries.push({binding:s,resource:l})}else if(n.isSampler){const a=o.get(n);$0.entries.push({binding:s,resource:a.sampler})}s++}const i=r.createBindGroup($0);return $0.reset(),i}_createLayoutEntries(e){const t=[];let o=0;for(const r of e.bindings){const s=this.backend,i={binding:o,visibility:r.visibility};if(r.isUniformBuffer||r.isStorageBuffer){const n={};r.isStorageBuffer&&(r.visibility&qe.COMPUTE&&(r.access===ae.READ_WRITE||r.access===ae.WRITE_ONLY)?n.type=ei.Storage:n.type=ei.ReadOnlyStorage),i.buffer=n}else if(r.isSampledTexture&&r.store){const n={};n.format=this.backend.get(r.texture).texture.format;const a=r.access;a===ae.READ_WRITE?n.access=ti.ReadWrite:a===ae.WRITE_ONLY?n.access=ti.WriteOnly:n.access=ti.ReadOnly,r.texture.isArrayTexture?n.viewDimension=g0.TwoDArray:r.texture.is3DTexture&&(n.viewDimension=g0.ThreeD),i.storageTexture=n}else if(r.isSampledTexture){const n={},{primarySamples:a}=s.utils.getTextureSampleData(r.texture);if(a>1&&(n.multisampled=!0,r.texture.isDepthTexture||(n.sampleType=Kt.UnfilterableFloat)),r.texture.isDepthTexture)s.compatibilityMode&&r.texture.compareFunction===null?n.sampleType=Kt.UnfilterableFloat:n.sampleType=Kt.Depth;else{const l=r.texture.type;l===1013?n.sampleType=Kt.SInt:l===1014?n.sampleType=Kt.UInt:l===1015&&(this.backend.hasFeature("float32-filterable")?n.sampleType=Kt.Float:n.sampleType=Kt.UnfilterableFloat)}r.isSampledCubeTexture?n.viewDimension=g0.Cube:r.texture.isArrayTexture||r.texture.isDataArrayTexture||r.texture.isCompressedArrayTexture?n.viewDimension=g0.TwoDArray:r.isSampledTexture3D&&(n.viewDimension=g0.ThreeD),i.texture=n}else if(r.isSampler){const n={};r.texture.isDepthTexture&&(r.texture.compareFunction!==null&&r.textureNode.compareNode!==null&&s.hasCompatibility(R2.TEXTURE_COMPARE)?n.type=s4.Comparison:n.type=s4.NonFiltering),i.sampler=n}else I(`WebGPUBindingUtils: Unsupported binding "${r}".`);t.push(i),o++}return t}deleteBindGroupData(e){const{backend:t}=this,o=t.get(e);o.layout&&(o.layout.usedTimes--,o.layout.usedTimes===0&&this._bindGroupLayoutCache.delete(o.layoutKey),o.layout=void 0,o.layoutKey=void 0)}dispose(){this._bindGroupLayoutCache.clear()}},Dy=class{constructor(e){this.backend=e}getMaxAnisotropy(){return 16}getUniformBufferLimit(){return this.backend.device.limits.maxUniformBufferBindingSize}},ky=class{constructor(){this.label="",this.layout=null,this.compute=null}reset(){this.label="",this.layout=null,this.compute=null}},Xy=class{constructor(){this.label="",this.bindGroupLayouts=null}reset(){this.label="",this.bindGroupLayouts=null}},D3=new ky,Z2=new Xy,q2=new Q5,V0=new Z5,Iy=class{constructor(e){this.backend=e}_getSampleCount(e){return this.backend.utils.getSampleCountRenderContext(e)}createRenderPipeline(e,t){const{object:o,material:r,geometry:s,pipeline:i}=e,{vertexProgram:n,fragmentProgram:a}=i,l=this.backend,u=l.device,c=l.utils,d=l.get(i),h=[];for(const U of e.getBindings()){const{layoutGPU:D}=l.get(U).layout;h.push(D)}const f=l.attributeUtils.createShaderVertexBuffers(e);let p;r.blending!==0&&(r.blending!==1||r.transparent!==!1)&&(p=this._getBlending(r));let m={};r.stencilWrite===!0&&(m={compare:this._getStencilCompare(r),failOp:this._getStencilOperation(r.stencilFail),depthFailOp:this._getStencilOperation(r.stencilZFail),passOp:this._getStencilOperation(r.stencilZPass)});const b=this._getColorWriteMask(r),N=[];if(e.context.textures!==null){const U=e.context.textures,D=e.context.mrt;for(let Q=0;Q1,V0.layout=w;const L={},F=e.context.depth,P=e.context.stencil;(F===!0||P===!0)&&(F===!0&&(L.format=S,L.depthWriteEnabled=r.depthWrite,L.depthCompare=x),P===!0&&(L.stencilFront=m,L.stencilBack=m,L.stencilReadMask=r.stencilFuncMask,L.stencilWriteMask=r.stencilWriteMask),r.polygonOffset===!0&&T.topology===q3.TriangleList&&(L.depthBias=r.polygonOffsetUnits,L.depthBiasSlopeScale=r.polygonOffsetFactor,L.depthBiasClamp=0),V0.depthStencil=L),u.pushErrorScope("validation");const X=[{program:n,module:v.module},{program:a,module:y.module}],V=V0.label;if(t===null)d.pipeline=u.createRenderPipeline(V0),V0.reset(),u.popErrorScope().then(U=>{U!==null&&(d.error=!0,I(`WebGPURenderer: Render pipeline creation failed (${V}): ${U.message}`),this._reportShaderDiagnostics(X,V))});else{const U=new Promise(async D=>{try{let Q=null,k=null;try{k=u.createRenderPipelineAsync(V0)}catch(h1){Q=h1}if(V0.reset(),k!==null)try{d.pipeline=await k}catch(h1){Q=h1}const c1=await u.popErrorScope();if(c1!==null||Q!==null){d.error=!0;const h1=c1&&c1.message||Q&&Q.message||"unknown";I(`WebGPURenderer: Async render pipeline creation failed (${V}): ${h1}`),await this._reportShaderDiagnostics(X,V)}}finally{D()}});t.push(U)}}createBundleEncoder(e,t="renderBundleEncoder"){const{utils:o,device:r}=this.backend,s=o.getCurrentDepthStencilFormat(e),i=o.getCurrentColorFormats(e),n=this._getSampleCount(e);q2.label=t,q2.colorFormats=i,q2.depthStencilFormat=s,q2.sampleCount=n;const a=r.createRenderBundleEncoder(q2);return q2.reset(),a}createComputePipeline(e,t){const o=this.backend,r=o.device,s=o.get(e.computeProgram).module,i=o.get(e),n=[];for(const c of t){const{layoutGPU:d}=o.get(c).layout;n.push(d)}const a=e.computeProgram,l=`computePipeline_${a.stage}${a.name?`_${a.name}`:""}`;r.pushErrorScope("validation"),Z2.bindGroupLayouts=n;const u=r.createPipelineLayout(Z2);Z2.reset(),D3.label=l,D3.compute=s,D3.layout=u,i.pipeline=r.createComputePipeline(D3),D3.reset(),r.popErrorScope().then(c=>{c!==null&&(i.error=!0,I(`WebGPURenderer: Compute pipeline creation failed (${l}): ${c.message}`),this._reportShaderDiagnostics([{program:a,module:s.module}],l))})}async _reportShaderDiagnostics(e,t){for(const{program:o,module:r}of e){const s=await r.getCompilationInfo();if(s.messages.length===0)continue;const i=o.code.split(` +`);for(const n of s.messages){const a=n.lineNum>0?` at line ${n.lineNum}${n.linePos>0?`:${n.linePos}`:""}`:"",l=`WebGPURenderer [${t} / ${o.stage} ${n.type}]${a}: ${n.message}`;let u="";n.lineNum>0&&n.lineNum<=i.length&&(u=` + ${i[n.lineNum-1]}`,n.linePos>0&&(u+=` + ${" ".repeat(n.linePos-1)}^`)),(n.type==="error"?I:j)(l+u)}}}_getBlending(e){let t,o;const r=e.blending,s=e.blendSrc,i=e.blendDst,n=e.blendEquation;if(r===5){const a=e.blendSrcAlpha!==null?e.blendSrcAlpha:s,l=e.blendDstAlpha!==null?e.blendDstAlpha:i,u=e.blendEquationAlpha!==null?e.blendEquationAlpha:n;t={srcFactor:this._getBlendFactor(s),dstFactor:this._getBlendFactor(i),operation:this._getBlendOperation(n)},o={srcFactor:this._getBlendFactor(a),dstFactor:this._getBlendFactor(l),operation:this._getBlendOperation(u)}}else{const a=e.premultipliedAlpha,l=(u,c,d,h)=>{t={srcFactor:u,dstFactor:c,operation:jt.Add},o={srcFactor:d,dstFactor:h,operation:jt.Add}};if(a)switch(r){case 1:l(v1.One,v1.OneMinusSrcAlpha,v1.One,v1.OneMinusSrcAlpha);break;case 2:l(v1.One,v1.One,v1.One,v1.One);break;case 3:l(v1.Zero,v1.OneMinusSrc,v1.Zero,v1.One);break;case 4:l(v1.Dst,v1.OneMinusSrcAlpha,v1.Zero,v1.One)}else switch(r){case 1:l(v1.SrcAlpha,v1.OneMinusSrcAlpha,v1.One,v1.OneMinusSrcAlpha);break;case 2:l(v1.SrcAlpha,v1.One,v1.One,v1.One);break;case 3:I(`WebGPURenderer: "SubtractiveBlending" requires "${e.isMaterial?"material":"blendMode"}.premultipliedAlpha = true".`);break;case 4:I(`WebGPURenderer: "MultiplyBlending" requires "${e.isMaterial?"material":"blendMode"}.premultipliedAlpha = true".`)}}if(t!==void 0&&o!==void 0)return{color:t,alpha:o};I("WebGPURenderer: Invalid blending: ",r)}_getBlendFactor(e){let t;switch(e){case 200:t=v1.Zero;break;case 201:t=v1.One;break;case 202:t=v1.Src;break;case 203:t=v1.OneMinusSrc;break;case 204:t=v1.SrcAlpha;break;case 205:t=v1.OneMinusSrcAlpha;break;case 208:t=v1.Dst;break;case 209:t=v1.OneMinusDst;break;case 206:t=v1.DstAlpha;break;case 207:t=v1.OneMinusDstAlpha;break;case 210:t=v1.SrcAlphaSaturated;break;case av:t=v1.Constant;break;case lv:t=v1.OneMinusConstant;break;default:I("WebGPURenderer: Blend factor not supported.",e)}return t}_getStencilCompare(e){let t;const o=e.stencilFunc;switch(o){case 512:t=f0.Never;break;case 519:t=f0.Always;break;case 513:t=f0.Less;break;case 515:t=f0.LessEqual;break;case 514:t=f0.Equal;break;case 518:t=f0.GreaterEqual;break;case 516:t=f0.Greater;break;case 517:t=f0.NotEqual;break;default:I("WebGPURenderer: Invalid stencil function.",o)}return t}_getStencilOperation(e){let t;switch(e){case tu:t=yt.Keep;break;case 0:t=yt.Zero;break;case k9:t=yt.Replace;break;case Cl:t=yt.Invert;break;case K9:t=yt.IncrementClamp;break;case L9:t=yt.DecrementClamp;break;case Zl:t=yt.IncrementWrap;break;case Fl:t=yt.DecrementWrap;break;default:I("WebGPURenderer: Invalid stencil operation.",t)}return t}_getBlendOperation(e){let t;switch(e){case 100:t=jt.Add;break;case 101:t=jt.Subtract;break;case 102:t=jt.ReverseSubtract;break;case 103:t=jt.Min;break;case 104:t=jt.Max;break;default:I("WebGPUPipelineUtils: Blend equation not supported.",e)}return t}_getPrimitiveState(e,t,o){const r={};r.topology=this.backend.utils.getPrimitiveTopology(e,o),t.index!==null&&e.isLine===!0&&e.isLineSegments!==!0&&(r.stripIndexFormat=t.index.array instanceof Uint16Array?Ir.Uint16:Ir.Uint32);let s=o.side===1;return e.isMesh&&e.matrixWorld.determinantAffine()<0&&(s=!s),r.frontFace=s===!0?t4.CW:t4.CCW,r.cullMode=o.side===2?o4.None:o4.Back,r}_getColorWriteMask(e){return e.colorWrite===!0?r4.All:r4.None}_getDepthCompare(e){let t;if(e.depthTest===!1)t=f0.Always;else{const o=this.backend.parameters.reversedDepthBuffer?V4[e.depthFunc]:e.depthFunc;switch(o){case 0:t=f0.Never;break;case 1:t=f0.Always;break;case 2:t=f0.Less;break;case 3:t=f0.LessEqual;break;case 4:t=f0.Equal;break;case 5:t=f0.GreaterEqual;break;case 6:t=f0.Greater;break;case 7:t=f0.NotEqual;break;default:I("WebGPUPipelineUtils: Invalid depth function.",o)}}return t}},K5=class{constructor(){this.label="",this.type=void 0,this.count=0}reset(){this.label="",this.type=void 0,this.count=0}},Pe=new x3,Gy=new Ro,k3=new K5,zy=class extends $5{constructor(e,t,o=2048){super(o),this.device=e,this.type=t,k3.label=`queryset_global_timestamp_${t}`,k3.type="timestamp",k3.count=this.maxQueries,this.querySet=this.device.createQuerySet(k3),k3.reset();const r=this.maxQueries*8;Pe.label=`buffer_timestamp_resolve_${t}`,Pe.size=r,Pe.usage=GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC,this.resolveBuffer=this.device.createBuffer(Pe),Pe.reset(),Pe.label=`buffer_timestamp_result_${t}`,Pe.size=r,Pe.usage=GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,this.resultBuffer=this.device.createBuffer(Pe),Pe.reset()}allocateQueriesForContext(e){if(!this.trackTimestamp||this.isDisposed)return null;if(this.currentQueryIndex+2>this.maxQueries)return z1(`WebGPUTimestampQueryPool [${this.type}]: Maximum number of queries exceeded, when using trackTimestamp it is necessary to resolves the queries via renderer.resolveTimestampsAsync( THREE.TimestampQuery.${this.type.toUpperCase()} ).`),null;const t=this.currentQueryIndex;return this.currentQueryIndex+=2,this.queryOffsets.set(e,t),t}async resolveQueriesAsync(){if(!this.trackTimestamp||this.currentQueryIndex===0||this.isDisposed)return this.lastValue;if(this.pendingResolve)return this.pendingResolve;this.pendingResolve=this._resolveQueries();try{return await this.pendingResolve}finally{this.pendingResolve=null}}async _resolveQueries(){if(this.isDisposed)return this.lastValue;try{if(this.resultBuffer.mapState!=="unmapped")return this.lastValue;const e=new Map(this.queryOffsets),t=this.currentQueryIndex,o=t*8;this.currentQueryIndex=0,this.queryOffsets.clear();const r=this.device.createCommandEncoder(Gy);r.resolveQuerySet(this.querySet,0,t,this.resolveBuffer,0),r.copyBufferToBuffer(this.resolveBuffer,0,this.resultBuffer,0,o);const s=r.finish();if($e(this.device,s),this.resultBuffer.mapState!=="unmapped")return this.lastValue;if(await this.resultBuffer.mapAsync(GPUMapMode.READ,0,o),this.isDisposed)return this.resultBuffer.mapState==="mapped"&&this.resultBuffer.unmap(),this.lastValue;const i=new BigUint64Array(this.resultBuffer.getMappedRange(0,o)),n={},a=[];for(const[u,c]of e){const d=u.match(/^(.*):f(\d+)$/),h=parseInt(d[2]);a.includes(h)===!1&&a.push(h),n[h]===void 0&&(n[h]=0);const f=i[c],p=i[c+1],m=Number(p-f)/1e6;this.timestamps.set(u,m),n[h]+=m}const l=n[a[a.length-1]];return this.resultBuffer.unmap(),this.lastValue=l,this.frames=a,l}catch(e){return I("Error resolving queries:",e),this.resultBuffer.mapState==="mapped"&&this.resultBuffer.unmap(),this.lastValue}}async dispose(){if(!this.isDisposed){if(this.isDisposed=!0,this.pendingResolve)try{await this.pendingResolve}catch(e){I("Error waiting for pending resolve:",e)}if(this.resultBuffer&&this.resultBuffer.mapState==="mapped")try{this.resultBuffer.unmap()}catch(e){I("Error unmapping buffer:",e)}this.querySet&&(this.querySet.destroy(),this.querySet=null),this.resolveBuffer&&(this.resolveBuffer.destroy(),this.resolveBuffer=null),this.resultBuffer&&(this.resultBuffer.destroy(),this.resultBuffer=null),this.queryOffsets.clear(),this.pendingResolve=null}}},$y=class{constructor(){this.label="",this.timestampWrites=void 0}reset(){this.label="",this.timestampWrites=void 0}},lr=class{constructor(){this.view=null,this.depthLoadOp=void 0,this.depthStoreOp=void 0,this.depthClearValue=void 0,this.depthReadOnly=!1,this.stencilLoadOp=void 0,this.stencilStoreOp=void 0,this.stencilClearValue=0,this.stencilReadOnly=!1}reset(){this.view=null,this.depthLoadOp=void 0,this.depthStoreOp=void 0,this.depthClearValue=void 0,this.depthReadOnly=!1,this.stencilLoadOp=void 0,this.stencilStoreOp=void 0,this.stencilClearValue=0,this.stencilReadOnly=!1}},Vy=class{constructor(){this.querySet=null,this.beginningOfPassWriteIndex=void 0,this.endOfPassWriteIndex=void 0}reset(){this.querySet=null,this.beginningOfPassWriteIndex=void 0,this.endOfPassWriteIndex=void 0}},me={r:0,g:0,b:0,a:1},Q0=new x3,A0=new Ro,ur=new $y,X3=new K5,cr=new q5,dr=new Vy,Y0=new is,De=new is,V1=new Qn,nt=new H5,Qy=class extends z5{constructor(e={}){super(e),this.isWebGPUBackend=!0,this.parameters.alpha=e.alpha===void 0?!0:e.alpha,this.parameters.requiredLimits=e.requiredLimits===void 0?{}:e.requiredLimits,this.compatibilityMode=null,this.device=null,this.defaultRenderPassdescriptor=null,this.utils=new dy(this),this.attributeUtils=new Oy(this),this.bindingUtils=new Py(this),this.capabilities=new Dy(this),this.pipelineUtils=new Iy(this),this.textureUtils=new xy(this),this.occludedResolveCache=new Map;const t=typeof navigator>"u"?!0:/Android/.test(navigator.userAgent)===!1;this._compatibility={[R2.TEXTURE_COMPARE]:t}}async init(e){await super.init(e);const t=this.parameters;let o;if(t.device===void 0){const r={powerPreference:t.powerPreference,featureLevel:"compatibility",xrCompatible:e.xr.enabled},s=typeof navigator<"u"?await navigator.gpu.requestAdapter(r):null;if(s===null)throw new Error("THREE.WebGPUBackend: Unable to create WebGPU adapter.");const i=Object.values(Gr),n=[];for(const l of i)s.features.has(l)&&n.push(l);const a={requiredFeatures:n,requiredLimits:t.requiredLimits};o=await s.requestDevice(a)}else o=t.device;this.compatibilityMode=!o.features.has("core-features-and-limits"),this.compatibilityMode&&(e._samples=0),o.lost.then(r=>{if(r.reason==="destroyed")return;const s={api:"WebGPU",message:r.message||"Unknown reason",reason:r.reason||null,originalEvent:r};e.onDeviceLost(s)}),o.onuncapturederror=r=>{const s=r.error,i=s&&s.constructor?s.constructor.name:"GPUError",n=s&&s.message||"Unknown uncaptured GPU error";e.onError({api:"WebGPU",type:i,message:n,originalEvent:r})},this.device=o,this.trackTimestamp=this.trackTimestamp&&this.hasFeature(Gr.TimestampQuery),this.updateSize()}setXRRenderTargetTextures(e,t,o=null){this.set(e.texture,{texture:t,format:t.format,externalTexture:!0,xrViewDescriptors:o,initialized:!0})}get context(){const e=this.renderer.getCanvasTarget(),t=this.get(e);let o=t.context;if(o===void 0){const r=this.parameters;e.isDefaultCanvasTarget===!0&&r.context!==void 0?o=r.context:o=e.domElement.getContext("webgpu"),"setAttribute"in e.domElement&&e.domElement.setAttribute("data-engine","three.js r185 webgpu");const s=r.alpha?"premultiplied":"opaque",i=r.outputType===1016?"extended":"standard";o.configure({device:this.device,format:this.utils.getPreferredCanvasFormat(),usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,alphaMode:s,toneMapping:{mode:i}}),t.context=o}return o}get coordinateSystem(){return K4}get hasTimestamp(){return!0}async getArrayBufferAsync(e,t=null,o=0,r=-1){return await this.attributeUtils.getArrayBufferAsync(e,t,o,r)}getContext(){return this.context}_getDefaultRenderPassDescriptor(){const e=this.renderer,t=e.getCanvasTarget(),o=this.get(t),r=e.currentSamples;let s=o.descriptor;if(s===void 0||o.samples!==r){if(s=new so,s.colorAttachments.push(new ro),e.depth===!0||e.stencil===!0){const a=new lr;a.view=this.textureUtils.getDepthBuffer(e.depth,e.stencil).createView(),s.depthStencilAttachment=a}const n=s.colorAttachments[0];r>0?n.view=this.textureUtils.getColorBuffer().createView():n.resolveTarget=void 0,o.descriptor=s,o.samples=r}const i=s.colorAttachments[0];return r>0?i.resolveTarget=this.context.getCurrentTexture().createView():i.view=this.context.getCurrentTexture().createView(),s}_isRenderCameraDepthArray(e){const t=e.camera;return e.depthTexture&&e.depthTexture.isArrayTexture===!0&&t!==null&&t.isArrayCamera===!0}_hasExternalTexture(e){const t=e.textures;if(t===null)return!1;for(let o=0;o1)if(h===!0){const b=e.camera.cameras;for(let N=0;N0&&(t.currentOcclusionQuerySet&&t.currentOcclusionQuerySet.destroy(),t.currentOcclusionQueryBuffer&&t.currentOcclusionQueryBuffer.destroy(),t.currentOcclusionQuerySet=t.occlusionQuerySet,t.currentOcclusionQueryBuffer=t.occlusionQueryBuffer,t.currentOcclusionQueryObjects=t.occlusionQueryObjects,X3.label=`occlusionQuerySet_${e.id}`,X3.type="occlusion",X3.count=r,s=o.createQuerySet(X3),X3.reset(),t.occlusionQuerySet=s,t.occlusionQueryIndex=0,t.occlusionQueryObjects=new Array(r),t.lastOcclusionObject=null);let i;e.textures===null?i=this._getDefaultRenderPassDescriptor():i=this._getRenderPassDescriptor(e,{loadOp:W1.Load}),this.initTimestampQuery(Qe.RENDER,this.getTimestampUID(e),i),i.occlusionQuerySet=s;const n=i.depthStencilAttachment;if(e.textures!==null){const l=i.colorAttachments;for(let u=0;u0&&t.currentPass.executeBundles(t.renderBundles),o>t.occlusionQueryIndex&&t.currentPass.endOcclusionQuery();const r=t.encoder;if(this._isRenderCameraDepthArray(e)===!0){const s=[];for(let i=0;i0){const s=o*8;let i=this.occludedResolveCache.get(s);i===void 0&&(Q0.size=s,Q0.usage=GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC,i=this.device.createBuffer(Q0),Q0.reset(),this.occludedResolveCache.set(s,i)),Q0.size=s,Q0.usage=GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ;const n=this.device.createBuffer(Q0);Q0.reset(),t.encoder.resolveQuerySet(t.occlusionQuerySet,0,o,i,0),t.encoder.copyBufferToBuffer(i,0,n,0,s),t.occlusionQueryBuffer=n,this.resolveOccludedAsync(e)}if($e(this.device,t.encoder.finish()),e.textures!==null){const s=e.textures;for(let i=0;if&&(s[0]=Math.min(h,f),s[1]=Math.ceil(h/f)),i.dispatchSize=s}s=i.dispatchSize}a.dispatchWorkgroups(s[0],s[1]||1,s[2]||1)}finishCompute(e){const t=this.get(e);t.passEncoderGPU.end(),$e(this.device,t.cmdEncoderGPU.finish())}_draw(e,t,o,r,s,i,n,a,l){const{object:u,material:c,context:d}=e,h=e.getIndex(),f=h!==null;l.pipeline!==r&&(a.setPipeline(r),l.pipeline=r);const p=l.bindingGroups;for(let m=0,b=s.length;m65535?4:2);for(let y=0;y0){const d=this.get(e.camera),h=e.camera.cameras,f=e.getBindingGroup("cameraIndex");if(d.indexesGPU===void 0||d.indexesGPU.length!==h.length){const m=this.get(f),b=[],N=new Uint32Array([0,0,0,0]);for(let v=0,y=h.length;v(j("WebGPURenderer: WebGPU is not available, running under WebGL2 backend."),new e4(e)));const o=new t(e);super(o,e),this.library=new Hy,this.isWebGPURenderer=!0,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}},Wt="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/shared/Layouts.tsx",jy=a1.div` + position: absolute; + top: 14px; + left: 16px; + font-size: ${w1.fontSizes.canvasTitle}; + letter-spacing: 0.04em; + font-family: ${w1.fonts.mono}; + color: ${w1.colors.text}; + z-index: 2; + pointer-events: none; + + @media (max-width: 640px) { + top: 10px; + left: 12px; + font-size: 0.78rem; + } +`,Ky=a1.div` + position: absolute; + inset: 0; + z-index: 2; + pointer-events: none; +`,Zn=({children:e,title:t,overlay:o,hideTitle:r})=>g(C2,{aspectRatio:w1.layout.aspectRatio,children:[g(Yy,{children:e},void 0,!1,{fileName:Wt,lineNumber:41,columnNumber:5},void 0),g(Ky,{children:[!r&&g(jy,{children:t},void 0,!1,{fileName:Wt,lineNumber:43,columnNumber:22},void 0),o]},void 0,!0,{fileName:Wt,lineNumber:42,columnNumber:5},void 0)]},void 0,!0,{fileName:Wt,lineNumber:40,columnNumber:3},void 0),Yy=({children:e})=>{const[t,o]=(0,_.useState)(!1);return g(yo,{orthographic:!0,dpr:[1,2],camera:{position:[0,0,10],zoom:68},gl:async r=>{try{const s=new Jy(r);return await s.init(),s.setClearColor(w1.colors.background),s}catch{o(!0);const s=new Sl(r);return s.setClearColor(w1.colors.background),s}},children:[g("color",{attach:"background",args:[w1.colors.background]},void 0,!1,{fileName:Wt,lineNumber:86,columnNumber:7},void 0),g("ambientLight",{intensity:.9},void 0,!1,{fileName:Wt,lineNumber:88,columnNumber:7},void 0),e,g("group",{visible:!1,userData:{fallback:t}},void 0,!1,{fileName:Wt,lineNumber:91,columnNumber:7},void 0)]},void 0,!0,{fileName:Wt,lineNumber:67,columnNumber:5},void 0)},eM=a1.div` + position: absolute; + top: ${({$top:e})=>e??"auto"}; + right: ${({$right:e})=>e??"auto"}; + bottom: ${({$bottom:e})=>e??"auto"}; + left: ${({$left:e})=>e??"auto"}; + transform: ${({$align:e,$left:t})=>e==="center"&&t==="50%"?"translateX(-50%)":"none"}; + font-family: ${w1.fonts.mono}; + font-size: ${({$fontSize:e})=>e??w1.fontSizes.normal}; + line-height: 1.2; + color: ${({$color:e})=>e??w1.colors.textSecondary}; + font-weight: ${({$weight:e})=>e??500}; + text-align: ${({$align:e})=>e??"left"}; + max-width: min(32vw, 260px); + + @media (max-width: 640px) { + font-size: 0.68rem; + max-width: 42vw; + } +`,t3=a1.span` + position: absolute; + transform: translateX(-50%); + color: ${w1.colors.text}; + font-family: ${w1.fonts.mono}; + font-size: ${w1.fontSizes.small}; + font-weight: 700; + white-space: nowrap; + pointer-events: none; + z-index: 2; + text-align: center; +`,h4=a1.span` + font-weight: normal; +`,Y5=a1.div` + position: absolute; + left: 0; + right: 0; + top: 50%; + border-top: 1px solid ${w1.colors.borderSecondary}; + pointer-events: none; + z-index: 1; +`,io="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/shared/Waves.tsx",ai=(e=0,t=1,o=1,r=0,s=220,i=Math.PI*2)=>{const{viewport:n}=he();return(0,_.useMemo)(()=>{const a=-n.width*.56,l=n.width*.56,u=[];for(let c=0;c<=s;c+=1){const d=c/s,h=kt.lerp(a,l,d),f=d*i*o+e,p=Math.sin(f)*t+r;u.push(new G(h,p,0))}return u},[e,t,o,r,s,i,n.width])},tM=(e,t,o=420)=>(0,_.useMemo)(()=>{if(!e.length||e.length<4)return null;const r=Math.max(t,.01),s=new uu(e);s.curveType="centripetal",s.tension=.5;const i=Math.max(8,Math.min(o,Math.floor(e.length/2)));return new ql(s,i,r,6,!1)},[e,t,o]),zr=({points:e,color:t,thickness:o=.055,opacity:r=1,z:s=0,segments:i=420})=>{const n=tM(e,o,i);return(0,_.useEffect)(()=>()=>n?.dispose(),[n]),!n||!e.length?null:g("mesh",{geometry:n,position:[0,0,s],frustumCulled:!1,children:g("meshBasicMaterial",{color:t,transparent:!0,opacity:r,toneMapped:!1},void 0,!1,{fileName:io,lineNumber:64,columnNumber:7},void 0)},void 0,!1,{fileName:io,lineNumber:63,columnNumber:5},void 0)},oM=({points:e,color:t,step:o=10,size:r=.055,opacity:s=.8,z:i=.12})=>{const n=(0,_.useRef)(null),a=(0,_.useMemo)(()=>new kl,[]),l=(0,_.useMemo)(()=>e.length?e.filter((u,c)=>c%o===0):[],[e,o]);return(0,_.useEffect)(()=>{!n.current||l.length===0||(l.forEach((u,c)=>{a.position.set(u.x,u.y,i),a.updateMatrix(),n.current.setMatrixAt(c,a.matrix)}),n.current.instanceMatrix.needsUpdate=!0,n.current.count=l.length)},[l,i,a]),g("instancedMesh",{ref:n,args:[null,null,500],frustumCulled:!1,children:[g("sphereGeometry",{args:[Math.max(r,.01),8,8]},void 0,!1,{fileName:io,lineNumber:102,columnNumber:7},void 0),g("meshBasicMaterial",{color:t,transparent:!0,opacity:s,toneMapped:!1},void 0,!1,{fileName:io,lineNumber:103,columnNumber:7},void 0)]},void 0,!0,{fileName:io,lineNumber:101,columnNumber:5},void 0)},rM="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/shared/CanvasImage.tsx",sM=a1.img` + position: ${e=>e.$position||"absolute"}; + right: ${e=>e.$right||"auto"}; + left: ${e=>e.$left||"auto"}; + top: ${e=>e.$top||"auto"}; + bottom: ${e=>e.$bottom||"auto"}; + height: ${e=>e.$height||"auto"}; + width: ${e=>e.$width||"auto"}; + max-height: ${e=>e.$maxHeight||"none"}; + max-width: ${e=>e.$maxWidth||"none"}; + object-fit: ${e=>e.$objectFit||"contain"}; + transform: ${e=>e.$transform||"none"}; + z-index: ${e=>e.$zIndex||1}; + pointer-events: ${e=>e.$pointerEvents||"auto"}; + opacity: ${e=>e.$opacity||1}; +`,e9=({src:e,alt:t,position:o,right:r,left:s,top:i,bottom:n,height:a,width:l,maxHeight:u,maxWidth:c,objectFit:d,transform:h,zIndex:f,pointerEvents:p,opacity:m})=>{const b=ji(e);return g(sM,{src:b,alt:t,$position:o,$right:r,$left:s,$top:i,$bottom:n,$height:a,$width:l,$maxHeight:u,$maxWidth:c,$objectFit:d,$transform:h,$zIndex:f,$pointerEvents:p,$opacity:m,loading:"lazy"},void 0,!1,{fileName:rM,lineNumber:77,columnNumber:5},void 0)},re="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/FrequencyModulationCanvas.tsx",iM=()=>{const{viewport:e}=he(),t=(0,_.useMemo)(()=>{const r=-e.width*.56,s=e.width*.56,i=[];let n=0,a=r;const l=-.8;for(let u=0;u<=2400;u+=1){const c=u/2400,d=kt.lerp(r,s,c),h=kt.lerp(8,.8,c),f=1.2;u===0?n=0:n+=(d-a)*Math.PI*h*.25;const p=Math.sin(n)*f;i.push(new G(d,p+l,0)),a=d}return i},[e.width]);return g(J0,{children:g(zr,{points:t,color:w1.colors.accent,thickness:.028,z:.12,segments:2200},void 0,!1,{fileName:re,lineNumber:39,columnNumber:7},void 0)},void 0,!1,{fileName:re,lineNumber:38,columnNumber:5},void 0)},s_=()=>g(Zn,{title:"Frequency Modulation",overlay:g(J0,{children:[g(Y5,{style:{top:"65%"},"aria-hidden":"true"},void 0,!1,{fileName:re,lineNumber:50,columnNumber:11},void 0),g(t3,{style:{left:"22%",top:"25%"},children:["Higher frequency ",g("br",{},void 0,!1,{fileName:re,lineNumber:52,columnNumber:30},void 0),g(h4,{children:"(thinner, more cycles/second)"},void 0,!1,{fileName:re,lineNumber:53,columnNumber:13},void 0)]},void 0,!0,{fileName:re,lineNumber:51,columnNumber:11},void 0),g(t3,{style:{left:"72%",top:"25%"},children:["Lower frequency ",g("br",{},void 0,!1,{fileName:re,lineNumber:56,columnNumber:29},void 0),g(h4,{children:"(wider, less cycles/second)"},void 0,!1,{fileName:re,lineNumber:57,columnNumber:13},void 0)]},void 0,!0,{fileName:re,lineNumber:55,columnNumber:11},void 0)]},void 0,!0,{fileName:re,lineNumber:49,columnNumber:9},void 0),children:g(iM,{},void 0,!1,{fileName:re,lineNumber:62,columnNumber:7},void 0)},void 0,!1,{fileName:re,lineNumber:46,columnNumber:5},void 0),ke="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/AmplitudeModulationCanvas.tsx",nM=()=>{const{viewport:e}=he(),t=(0,_.useMemo)(()=>{const r=-e.width*.56,s=e.width*.56,i=[],n=4;for(let a=0;a<=2400;a+=1){const l=a/2400,u=kt.lerp(r,s,l),c=kt.lerp(1.72,.18,l),d=l*Math.PI*2*n,h=Math.sin(d)*c;i.push(new G(u,h,0))}return i},[e.width]);return g(J0,{children:g(zr,{points:t,color:w1.colors.accent,thickness:.028,z:.12,segments:2200},void 0,!1,{fileName:ke,lineNumber:30,columnNumber:7},void 0)},void 0,!1,{fileName:ke,lineNumber:29,columnNumber:5},void 0)},i_=()=>g(Zn,{title:"Amplitude Modulation",overlay:g(J0,{children:[g(t3,{style:{left:"22%",top:"18%"},children:"Higher amplitude"},void 0,!1,{fileName:ke,lineNumber:41,columnNumber:11},void 0),g(t3,{style:{left:"72%",top:"33%"},children:"Lower amplitude"},void 0,!1,{fileName:ke,lineNumber:42,columnNumber:11},void 0),g(t3,{style:{left:"39%",top:"27%",color:"#858585",fontWeight:"normal"},children:"Peak (crest)"},void 0,!1,{fileName:ke,lineNumber:43,columnNumber:11},void 0),g(t3,{style:{left:"43%",top:"70%",color:"#858585",fontWeight:"normal"},children:"Trough"},void 0,!1,{fileName:ke,lineNumber:44,columnNumber:11},void 0),g(Y5,{"aria-hidden":"true"},void 0,!1,{fileName:ke,lineNumber:45,columnNumber:11},void 0)]},void 0,!0,{fileName:ke,lineNumber:40,columnNumber:9},void 0),children:g(nM,{},void 0,!1,{fileName:ke,lineNumber:49,columnNumber:7},void 0)},void 0,!1,{fileName:ke,lineNumber:37,columnNumber:5},void 0),b1="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/MultipathReflectionCanvas.tsx",aM=(e=1)=>{const[t,o]=(0,_.useState)(0);return(0,_.useEffect)(()=>{let r,s;const i=n=>{if(s!==void 0){let a=(n-s)/1e3;a>.1&&(a=.1),a<0&&(a=0),o(l=>l+a*e)}s=n,r=requestAnimationFrame(i)};return r=requestAnimationFrame(i),()=>cancelAnimationFrame(r)},[e]),t},Tt=({start:e,end:t,time:o,amplitude:r=6,frequency:s=.15,color:i="#c026d3",speed:n=150})=>{const a=t.x-e.x,l=t.y-e.y,u=Math.sqrt(a*a+l*l),c=Math.atan2(l,a),d=200,h=100,f=Math.ceil((u+h)/d)+1,p=[];for(let m=0;m0&&N-hy){const T=Math.max(y,v-10),x=Math.max(2,Math.ceil((T-y)/2)),S=[];for(let C=0;C<=x;C++){const w=y+C/x*(T-y),L=Math.min(1,(w-y)/10,(T-w)/10),F=Math.sin(w*s-o*15)*r*L,P=e.x+w*Math.cos(c)-F*Math.sin(c),X=e.y+w*Math.sin(c)+F*Math.cos(c);S.push(`${P},${X}`)}p.push({pathData:S.length>0?`M ${S.join(" L ")}`:"",headX:e.x+v*Math.cos(c),headY:e.y+v*Math.sin(c),showArrow:v0})}}}return g("g",{children:[g("line",{x1:e.x,y1:e.y,x2:t.x,y2:t.y,stroke:i,strokeWidth:"1",opacity:"0.3"},void 0,!1,{fileName:b1,lineNumber:72,columnNumber:7},void 0),p.map((m,b)=>g("g",{children:[m.pathData&&g("path",{d:m.pathData,fill:"none",stroke:i,strokeWidth:"2"},void 0,!1,{fileName:b1,lineNumber:81,columnNumber:28},void 0),m.showArrow&&g("g",{transform:`translate(${m.headX}, ${m.headY}) rotate(${c*180/Math.PI})`,children:g("path",{d:"M -8 -5 L 2 0 L -8 5 z",fill:i},void 0,!1,{fileName:b1,lineNumber:84,columnNumber:15},void 0)},void 0,!1,{fileName:b1,lineNumber:83,columnNumber:13},void 0)]},b,!0,{fileName:b1,lineNumber:80,columnNumber:9},void 0))]},void 0,!0,{fileName:b1,lineNumber:71,columnNumber:5},void 0)},f4=({x:e,y:t,label:o,sublabel:r,time:s})=>{const i=s*15%40,n=(s*15+20)%40;return g("g",{children:[g("circle",{cx:e,cy:t,r:10+i,fill:"none",stroke:"#94a3b8",strokeWidth:"2",opacity:1-i/40},void 0,!1,{fileName:b1,lineNumber:99,columnNumber:7},void 0),g("circle",{cx:e,cy:t,r:10+n,fill:"none",stroke:"#94a3b8",strokeWidth:"2",opacity:1-n/40},void 0,!1,{fileName:b1,lineNumber:100,columnNumber:7},void 0),g("circle",{cx:e,cy:t,r:"12",fill:"#3b82f6"},void 0,!1,{fileName:b1,lineNumber:101,columnNumber:7},void 0),g("text",{x:e,y:t+50,textAnchor:"middle",className:"font-bold text-3xl fill-slate-800",children:o},void 0,!1,{fileName:b1,lineNumber:102,columnNumber:7},void 0),r&&g("text",{x:e,y:t+75,textAnchor:"middle",className:"text-sm fill-slate-600 font-mono",children:r},void 0,!1,{fileName:b1,lineNumber:104,columnNumber:9},void 0)]},void 0,!0,{fileName:b1,lineNumber:98,columnNumber:5},void 0)};function n_(){const e=aM(1);return g(C2,{aspectRatio:"16/9",children:g("div",{className:"w-full h-full",children:g("svg",{viewBox:"0 0 900 506.25",className:"w-full h-auto block",children:[g("defs",{children:g("pattern",{id:"grid",width:"40",height:"40",patternUnits:"userSpaceOnUse",children:g("path",{d:"M 40 0 L 0 0 0 40",fill:"none",stroke:"#DBDCDE",strokeWidth:"1"},void 0,!1,{fileName:b1,lineNumber:119,columnNumber:15},this)},void 0,!1,{fileName:b1,lineNumber:118,columnNumber:13},this)},void 0,!1,{fileName:b1,lineNumber:117,columnNumber:11},this),g("rect",{width:"100%",height:"100%",fill:"url(#grid)"},void 0,!1,{fileName:b1,lineNumber:124,columnNumber:11},this),g("rect",{x:"540",y:"150",width:"100",height:"200",fill:"#cbd5e1",rx:"4"},void 0,!1,{fileName:b1,lineNumber:127,columnNumber:11},this),g("text",{x:"590",y:"255",textAnchor:"middle",className:"text-sm font-mono fill-slate-500",children:"Obstacle"},void 0,!1,{fileName:b1,lineNumber:128,columnNumber:11},this),g("line",{x1:"520",y1:"75",x2:"660",y2:"75",stroke:"#94a3b8",strokeWidth:"8",strokeLinecap:"round"},void 0,!1,{fileName:b1,lineNumber:131,columnNumber:11},this),g("text",{x:"680",y:"80",className:"text-sm font-mono fill-slate-500",children:"Reflection"},void 0,!1,{fileName:b1,lineNumber:132,columnNumber:11},this),g("line",{x1:"520",y1:"425",x2:"660",y2:"425",stroke:"#94a3b8",strokeWidth:"8",strokeLinecap:"round"},void 0,!1,{fileName:b1,lineNumber:134,columnNumber:11},this),g("text",{x:"680",y:"430",className:"text-sm font-mono fill-slate-500",children:"Reflection"},void 0,!1,{fileName:b1,lineNumber:135,columnNumber:11},this),g("circle",{cx:"300",cy:"250",r:"45",fill:"#d1d5db"},void 0,!1,{fileName:b1,lineNumber:138,columnNumber:11},this),g("text",{x:"300",y:"185",textAnchor:"middle",className:"font-bold text-xl fill-slate-700",children:"Target"},void 0,!1,{fileName:b1,lineNumber:139,columnNumber:11},this),g(Tt,{start:{x:115,y:250},end:{x:250,y:250},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:142,columnNumber:11},this),g(Tt,{start:{x:339,y:231},end:{x:540,y:183},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:145,columnNumber:11},this),g(Tt,{start:{x:345,y:250},end:{x:540,y:250},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:146,columnNumber:11},this),g(Tt,{start:{x:339,y:269},end:{x:540,y:317},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:147,columnNumber:11},this),g(Tt,{start:{x:335,y:221},end:{x:590,y:75},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:150,columnNumber:11},this),g(Tt,{start:{x:590,y:75},end:{x:785,y:238},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:151,columnNumber:11},this),g(Tt,{start:{x:335,y:279},end:{x:590,y:425},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:153,columnNumber:11},this),g(Tt,{start:{x:590,y:425},end:{x:785,y:263},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:154,columnNumber:11},this),g(f4,{x:100,y:250,label:"Tx",sublabel:"(transmitter / source)",time:e},void 0,!1,{fileName:b1,lineNumber:157,columnNumber:11},this),g(f4,{x:800,y:250,label:"Rx",sublabel:"(receiver / destination)",time:e},void 0,!1,{fileName:b1,lineNumber:158,columnNumber:11},this)]},void 0,!0,{fileName:b1,lineNumber:116,columnNumber:9},this)},void 0,!1,{fileName:b1,lineNumber:115,columnNumber:7},this)},void 0,!1,{fileName:b1,lineNumber:114,columnNumber:5},this)}var p0="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/HeterodyningCanvas.tsx",lM="#d282e3",uM="#1180ff",cM="#06b6d4",hr=a1(eM)` + font-size: ${w1.fontSizes.small}; + font-weight: 700; + color: ${w1.colors.text}; + max-width: min(36vw, 320px); + white-space: nowrap; +`,dM=a1.div` + position: absolute; + left: 62%; + top: 14.5%; + transform: translateX(-50%); + font-family: ${w1.fonts.mono}; + font-size: 0.72rem; + font-weight: 700; + color: #4b5563; + letter-spacing: 0.02em; + pointer-events: none; + z-index: 2; +`,hM=a1.div` + position: absolute; + left: 65.4%; + top: 25.5%; + width: 24px; + height: 48.8%; + pointer-events: none; + z-index: 2; +`,fM=a1.div` + position: absolute; + left: 50%; + top: 0; + bottom: 0; + width: 1.5px; + transform: translateX(-50%); + background: #4b5563; +`,p4=a1.div` + position: absolute; + left: 50%; + width: 14px; + height: 2px; + transform: translateX(-50%); + background: #4b5563; + ${({$top:e})=>e?"top: 0;":"bottom: 0;"} +`,pM=a1.div` + position: absolute; + left: 0; + right: 0; + top: 49.8%; + border-top: 1px solid rgba(92, 92, 92, 0.24); + pointer-events: none; + z-index: 1; +`,mM=()=>{const[e,t]=(0,_.useState)(0);(0,_.useEffect)(()=>{let i=0;const n=()=>{t(a=>a-.01),i=requestAnimationFrame(n)};return i=requestAnimationFrame(n),()=>cancelAnimationFrame(i)},[]);const o=ai(e*.8,.95,1.35,0),r=ai(e*.8+Math.PI/2.5,.95,1.85,0),s=ai(e*.8,.72,.75,0,280);return g(J0,{children:[g(zr,{points:o,color:lM,z:.12,opacity:.7,thickness:.06},void 0,!1,{fileName:p0,lineNumber:91,columnNumber:7},void 0),g(zr,{points:r,color:uM,z:.1,opacity:.7,thickness:.06},void 0,!1,{fileName:p0,lineNumber:92,columnNumber:7},void 0),g(oM,{points:s,color:cM,step:8,size:.06,opacity:.95,z:.14},void 0,!1,{fileName:p0,lineNumber:93,columnNumber:7},void 0)]},void 0,!0,{fileName:p0,lineNumber:90,columnNumber:5},void 0)},a_=()=>g(Zn,{title:"Heterodyning",overlay:g(J0,{children:[g(pM,{},void 0,!1,{fileName:p0,lineNumber:104,columnNumber:11},void 0),g(dM,{children:"Amplitude (A)"},void 0,!1,{fileName:p0,lineNumber:105,columnNumber:11},void 0),g(hM,{"aria-hidden":"true",children:[g(fM,{},void 0,!1,{fileName:p0,lineNumber:107,columnNumber:13},void 0),g(p4,{$top:!0},void 0,!1,{fileName:p0,lineNumber:108,columnNumber:13},void 0),g(p4,{},void 0,!1,{fileName:p0,lineNumber:109,columnNumber:13},void 0)]},void 0,!0,{fileName:p0,lineNumber:106,columnNumber:11},void 0),g(hr,{$bottom:"96px",$left:"16px",$color:w1.colors.text,children:"Sideband: 30 Hz (diff) ⚡ Sideband at peak A²"},void 0,!1,{fileName:p0,lineNumber:111,columnNumber:11},void 0),g(hr,{$bottom:"72px",$left:"16px",$color:w1.colors.text,children:"Wave B: 3,000,000 Hz"},void 0,!1,{fileName:p0,lineNumber:112,columnNumber:11},void 0),g(hr,{$bottom:"48px",$left:"16px",$color:w1.colors.text,children:"Wave A: 3,000,030 Hz (30Hz more)"},void 0,!1,{fileName:p0,lineNumber:113,columnNumber:11},void 0),g(hr,{$bottom:"16px",$left:"16px",$color:w1.colors.text,$weight:700,children:"Energy / ⚡ Waves at peak in sync: 4A²"},void 0,!1,{fileName:p0,lineNumber:114,columnNumber:11},void 0)]},void 0,!0,{fileName:p0,lineNumber:103,columnNumber:9},void 0),children:g(mM,{},void 0,!1,{fileName:p0,lineNumber:118,columnNumber:7},void 0)},void 0,!1,{fileName:p0,lineNumber:100,columnNumber:5},void 0),p1="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/TimeOfFlightCanvas.tsx",gM=ji("body-attenuation-character.png"),Ze={width:2.91,height:5.32},vM=` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); + } +`,bM=` + uniform float uTime; + uniform sampler2D uBodyTexture; + uniform vec4 uBodyRect; + uniform vec2 uAntennaCenter; + varying vec2 vUv; + + float sampleBody(vec2 uv) { + vec2 bodyUv = (uv - uBodyRect.xy) / uBodyRect.zw; + if (bodyUv.x < 0.0 || bodyUv.x > 1.0 || bodyUv.y < 0.0 || bodyUv.y > 1.0) return 0.0; + return texture2D(uBodyTexture, bodyUv).a; + } + + float bodyEdge(vec2 uv, float radius) { + float center = sampleBody(uv); + float maxNeighbor = 0.0; + for (float dx = -1.0; dx <= 1.0; dx += 1.0) { + for (float dy = -1.0; dy <= 1.0; dy += 1.0) { + if (dx == 0.0 && dy == 0.0) continue; + maxNeighbor = max(maxNeighbor, sampleBody(uv + vec2(dx, dy) * radius)); + } + } + return maxNeighbor * (1.0 - center); + } + + // Single radial wave ring contribution + float waveRing(float distToAntenna, float radius) { + float thickness = 0.025; + float ring = smoothstep(thickness, 0.0, abs(distToAntenna - radius)); + // Fade in near antenna, fade out at distance + float fadeIn = smoothstep(0.0, 0.08, radius); + float fadeOut = smoothstep(1.1, 0.4, radius); + return ring * fadeIn * fadeOut; + } + + void main() { + float bodyAlpha = sampleBody(vUv); + bool insideBody = bodyAlpha > 0.15; + + float distToAntenna = distance(vUv, uAntennaCenter); + + float speed = 0.5; + float pulsePhase = mod(uTime * speed, 3.0); + float waveR = 0.0; + if (pulsePhase <= 1.0) waveR = pulsePhase; + else if (pulsePhase <= 2.0) waveR = 2.0 - pulsePhase; + + float combinedRing = pulsePhase <= 2.0 ? waveRing(distToAntenna, waveR) : 0.0; + + // Subtle ripple texture + float ripple = 0.5 + 0.5 * sin(distToAntenna * 60.0 - uTime * 6.0); + float detail = combinedRing * (0.7 + 0.3 * ripple); + + // Suppress inside body silhouette + if (insideBody) { + detail = 0.0; + } + + // Edge outline glow when any wave front is near the body + float edgeDetect = bodyEdge(vUv, 0.008); + float nearWave = smoothstep(0.15, 0.0, abs(distToAntenna - waveR)); + float outlineAlpha = edgeDetect * nearWave * 0.6; + + // Color: subtle grey-white arcs + vec3 waveColor = mix(vec3(0.55, 0.56, 0.60), vec3(0.95, 0.96, 0.98), combinedRing); + vec3 outlineColor = vec3(0.98, 0.98, 1.0); + vec3 color = mix(waveColor, outlineColor, clamp(outlineAlpha, 0.0, 1.0)); + + float alpha = clamp(detail * 0.55 + outlineAlpha, 0.0, 0.75); + + gl_FragColor = vec4(color, alpha); + } +`,NM=` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); + } +`,yM=` + uniform sampler2D uBodyTexture; + uniform vec4 uBodyRect; + uniform float uTime; + uniform float uWaveProgress; + uniform vec2 uAntennaCenter; + varying vec2 vUv; + + float sampleBody(vec2 uv) { + vec2 bodyUv = (uv - uBodyRect.xy) / uBodyRect.zw; + if (bodyUv.x < 0.0 || bodyUv.x > 1.0 || bodyUv.y < 0.0 || bodyUv.y > 1.0) return 0.0; + return texture2D(uBodyTexture, bodyUv).a; + } + + // Approximate distance from the nearest silhouette edge by marching outward + // in 16 directions and finding the shortest distance to a transparent pixel. + float edgeDistance(vec2 uv) { + float maxDist = 0.08; // max search radius in UV space + float minFound = maxDist; + const int DIRS = 16; + const int STEPS = 12; + for (int d = 0; d < DIRS; d++) { + float angle = float(d) * 6.2831853 / float(DIRS); + vec2 dir = vec2(cos(angle), sin(angle)); + for (int s = 1; s <= STEPS; s++) { + float r = maxDist * float(s) / float(STEPS); + vec2 samplePos = uv + dir * r; + float a = sampleBody(samplePos); + if (a < 0.15) { + minFound = min(minFound, r); + break; + } + } + } + return minFound / maxDist; // normalize 0..1 + } + + vec3 thermalColor(float t) { + // Thermal palette: dark blue -> blue -> green -> yellow -> red -> pink/white + // Matching the reference image's color ramp + vec3 color; + if (t < 0.15) { + // Dark blue/indigo edge glow + color = mix(vec3(0.08, 0.0, 0.42), vec3(0.0, 0.15, 0.85), t / 0.15); + } else if (t < 0.35) { + // Blue to green + color = mix(vec3(0.0, 0.15, 0.85), vec3(0.0, 0.9, 0.2), (t - 0.15) / 0.20); + } else if (t < 0.55) { + // Green to yellow + color = mix(vec3(0.0, 0.9, 0.2), vec3(1.0, 1.0, 0.0), (t - 0.35) / 0.20); + } else if (t < 0.75) { + // Yellow to red + color = mix(vec3(1.0, 1.0, 0.0), vec3(1.0, 0.15, 0.0), (t - 0.55) / 0.20); + } else { + // Red to hot pink/magenta for the very core + color = mix(vec3(1.0, 0.15, 0.0), vec3(1.0, 0.3, 0.6), (t - 0.75) / 0.25); + } + return color; + } + + void main() { + float bodyAlpha = sampleBody(vUv); + + if (bodyAlpha < 0.15) { + discard; + } + + // Core idea: distance from edge determines heat. + float dist = edgeDistance(vUv); + + // Boost head and chest regions slightly — they have denser tissue + vec2 bodyUv = (vUv - uBodyRect.xy) / uBodyRect.zw; + float headBoost = smoothstep(0.72, 0.92, bodyUv.y) * smoothstep(0.15, 0.45, 1.0 - abs(bodyUv.x - 0.5)) * 0.18; + float chestBoost = smoothstep(0.42, 0.72, bodyUv.y) * smoothstep(0.10, 0.50, 1.0 - abs(bodyUv.x - 0.5)) * 0.12; + + float density = clamp(dist + headBoost + chestBoost, 0.0, 1.0); + + vec3 heatColor = thermalColor(density); + + // Wave-driven reveal + float speed = 0.5; + float pulsePhase = mod(uTime * speed, 3.0); + float waveR = 0.0; + if (pulsePhase <= 1.0) waveR = pulsePhase; + else if (pulsePhase <= 2.0) waveR = 2.0 - pulsePhase; + float distToAntenna = distance(vUv, uAntennaCenter); + + float revealAlpha = 0.0; + if (pulsePhase <= 1.0) { + revealAlpha = 0.0; + } else if (pulsePhase <= 2.0) { + float hasPassedBack = smoothstep(0.05, -0.05, waveR - distToAntenna); + float waveProximity = smoothstep(0.18, 0.0, abs(distToAntenna - waveR)); + revealAlpha = max(waveProximity, hasPassedBack); + } else { + revealAlpha = 1.0 - (pulsePhase - 2.0); + } + + float alpha = smoothstep(0.15, 0.30, bodyAlpha) * 0.92 * revealAlpha; + + gl_FragColor = vec4(heatColor, alpha); + } +`,MM=({bodyTexture:e})=>{const t=(0,_.useRef)(null),o=(0,_.useMemo)(()=>{const i=Ze.width/2,n=Ze.height/2,a=(2.8-i+5)/10,l=(-.55-n+3.25)/6.5,u=Ze.width/10,c=Ze.height/6.5;return{uTime:{value:0},uBodyTexture:{value:e},uBodyRect:{value:new S1(a,l,u,c)},uAntennaCenter:{value:new f1(.08,.61)}}},[e]);return(0,_.useEffect)(()=>{t.current&&(t.current.uniforms.uBodyTexture.value=e)},[e]),B0(r=>{t.current&&(t.current.uniforms.uTime.value=r.clock.elapsedTime)}),g("mesh",{position:[0,0,-.5],frustumCulled:!1,children:[g("planeGeometry",{args:[10,6.5]},void 0,!1,{fileName:p1,lineNumber:251,columnNumber:7},void 0),g("shaderMaterial",{ref:t,uniforms:o,vertexShader:vM,fragmentShader:bM,transparent:!0,depthWrite:!1,blending:2},void 0,!1,{fileName:p1,lineNumber:252,columnNumber:7},void 0)]},void 0,!0,{fileName:p1,lineNumber:250,columnNumber:5},void 0)},xM=` + varying vec2 vUv; + varying vec3 vWorldPosition; + void main() { + vUv = uv; + vec4 worldPos = modelMatrix * vec4(position, 1.0); + vWorldPosition = worldPos.xyz; + gl_Position = projectionMatrix * viewMatrix * worldPos; + } +`,SM=` + uniform sampler2D uTexture; + uniform float uTime; + uniform vec2 uAntennaCenter; + varying vec2 vUv; + varying vec3 vWorldPosition; + + void main() { + vec4 texColor = texture2D(uTexture, vUv); + if (texColor.a < 0.1) discard; + + vec2 screenUv = vec2(vWorldPosition.x / 10.0 + 0.5, vWorldPosition.y / 6.5 + 0.5); + float distToAntenna = distance(screenUv, uAntennaCenter); + + float speed = 0.5; + float pulsePhase = mod(uTime * speed, 3.0); + float waveR = 0.0; + if (pulsePhase <= 1.0) waveR = pulsePhase; + else if (pulsePhase <= 2.0) waveR = 2.0 - pulsePhase; + + float revealed = 0.0; + if (pulsePhase <= 1.0) { + revealed = 0.0; + } else if (pulsePhase <= 2.0) { + revealed = smoothstep(0.05, -0.05, waveR - distToAntenna); + } else { + revealed = 1.0 - (pulsePhase - 2.0); + } + + float hit = clamp(revealed, 0.0, 1.0); + + vec3 a = vec3(0.5, 0.5, 0.5); + vec3 b = vec3(0.5, 0.5, 0.5); + vec3 c = vec3(1.0, 1.0, 1.0); + vec3 d = vec3(0.263, 0.416, 0.557); + vec3 litColor = a + b * cos(6.28318 * (c * (uTime * 0.4 + vWorldPosition.x * 0.1 + vWorldPosition.y * 0.1) + d)); + + gl_FragColor = vec4(litColor, texColor.a * hit); + } +`,TM=({text:e,x:t,y:o,widthWorld:r})=>{const[s,i]=(0,_.useState)(0),{texture:n,width:a,height:l}=(0,_.useMemo)(()=>{const d=document.createElement("canvas"),h=d.getContext("2d");if(!h)return{texture:null,width:1,height:1};const f="0123456789ABCDEF";let p="";for(let y=0;y({uTexture:{value:n},uTime:{value:0},uAntennaCenter:{value:new f1(.08,.61)}}),[n]);return B0(d=>{u.current&&(u.current.uniforms.uTime.value=d.clock.elapsedTime);const h=Math.floor(d.clock.elapsedTime/6);h!==s&&i(h)}),n?g("mesh",{position:[t+a/2,o,.18],children:[g("planeGeometry",{args:[a,l]},void 0,!1,{fileName:p1,lineNumber:377,columnNumber:7},void 0),g("shaderMaterial",{ref:u,uniforms:c,vertexShader:xM,fragmentShader:SM,transparent:!0,depthWrite:!1,blending:2},void 0,!1,{fileName:p1,lineNumber:378,columnNumber:7},void 0)]},void 0,!0,{fileName:p1,lineNumber:376,columnNumber:5},void 0):null},wM=()=>{const e=(0,_.useMemo)(()=>{const o=[];let l=1.7600000000000002;for(;l>-3.21;){const u=(l- -.55)/2.66,c=2.8-1.6*Math.sqrt(Math.max(0,1-u*u))-.2-.3;o.push({y:l,x:c,text:"00",widthWorld:.3}),l-=.35}return o},[]);return g("group",{children:e.map((t,o)=>g(TM,{text:t.text,x:t.x,y:t.y,widthWorld:t.widthWorld},o,!1,{fileName:p1,lineNumber:428,columnNumber:9},void 0))},void 0,!1,{fileName:p1,lineNumber:426,columnNumber:5},void 0)},_M=({bodyTexture:e})=>{const t=(0,_.useRef)(null),o=(0,_.useMemo)(()=>{const i=Ze.width/2,n=Ze.height/2,a=(2.8-i+5)/10,l=(-.55-n+3.25)/6.5,u=Ze.width/10,c=Ze.height/6.5;return{uBodyTexture:{value:e},uBodyRect:{value:new S1(a,l,u,c)},uTime:{value:0},uWaveProgress:{value:0},uAntennaCenter:{value:new f1(.08,.61)}}},[e]);return(0,_.useEffect)(()=>{t.current&&(t.current.uniforms.uBodyTexture.value=e)},[e]),B0(r=>{if(t.current){const s=r.clock.elapsedTime,i=(s*.4%2.5-.5)/2.5+.5;t.current.uniforms.uTime.value=s,t.current.uniforms.uWaveProgress.value=i}}),g("mesh",{position:[0,0,.1],frustumCulled:!1,children:[g("planeGeometry",{args:[10,6.5]},void 0,!1,{fileName:p1,lineNumber:474,columnNumber:7},void 0),g("shaderMaterial",{ref:t,uniforms:o,vertexShader:NM,fragmentShader:yM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:p1,lineNumber:475,columnNumber:7},void 0)]},void 0,!0,{fileName:p1,lineNumber:473,columnNumber:5},void 0)},AM=({texture:e})=>g("mesh",{position:[2.8,-.55,.15],children:[g("planeGeometry",{args:[Ze.width,Ze.height]},void 0,!1,{fileName:p1,lineNumber:490,columnNumber:7},void 0),g("meshBasicMaterial",{map:e,transparent:!0,opacity:.8},void 0,!1,{fileName:p1,lineNumber:491,columnNumber:7},void 0)]},void 0,!0,{fileName:p1,lineNumber:489,columnNumber:5},void 0),CM=()=>{const e=a6(gM),{size:t,camera:o}=he();return(0,_.useEffect)(()=>{if(o.type==="OrthographicCamera"){const r=o;r.zoom=t.width/10,r.updateProjectionMatrix()}},[t,o]),(0,_.useEffect)(()=>{e.colorSpace=X0,e.anisotropy=8,e.wrapS=Dt,e.wrapT=Dt,e.minFilter=H1,e.magFilter=H1,e.generateMipmaps=!1,e.needsUpdate=!0},[e]),g(J0,{children:[g("ambientLight",{intensity:1.8},void 0,!1,{fileName:p1,lineNumber:525,columnNumber:7},void 0),g("directionalLight",{position:[0,0,3],intensity:1.25,color:"#ffffff"},void 0,!1,{fileName:p1,lineNumber:526,columnNumber:7},void 0),g(MM,{bodyTexture:e},void 0,!1,{fileName:p1,lineNumber:531,columnNumber:7},void 0),g(wM,{},void 0,!1,{fileName:p1,lineNumber:534,columnNumber:7},void 0),g(AM,{texture:e},void 0,!1,{fileName:p1,lineNumber:537,columnNumber:7},void 0),g(_M,{bodyTexture:e},void 0,!1,{fileName:p1,lineNumber:540,columnNumber:7},void 0),g(F1,{position:[-3.3,2.05,.35],fontSize:.24,color:"#1e1e26",anchorX:"center",anchorY:"middle",fontWeight:700,text:"Antenna"},void 0,!1,{fileName:p1,lineNumber:543,columnNumber:7},void 0),g(F1,{position:[2.8,2.5,.35],fontSize:.24,color:"#1e1e26",anchorX:"center",anchorY:"middle",fontWeight:700,text:"Target"},void 0,!1,{fileName:p1,lineNumber:544,columnNumber:7},void 0),g(RM,{},void 0,!1,{fileName:p1,lineNumber:546,columnNumber:7},void 0)]},void 0,!0,{fileName:p1,lineNumber:524,columnNumber:5},void 0)},RM=()=>{const[e,t]=(0,_.useState)({distance:"500m",frequency:"15 MHz",phase:"0°",aperture:"50.00 m²"}),o=(0,_.useRef)(-1);return B0(r=>{const s=Math.floor(r.clock.elapsedTime/6);if(o.current!==s){o.current=s;const i=.01+Math.random()*.99,n=1+Math.random()*29,a=20*Math.log10(i)+20*Math.log10(n)+32.44-22-24;let l=Math.pow(10,a/10)*9e4/(4*Math.PI*n*n),u=l>1e4?`${(l/1e4).toFixed(2)} ha`:`${l.toFixed(2)} m²`;const c=i<1?`${Math.round(i*1e3)} m`:`${i.toFixed(2)} km`,d=`${n.toFixed(2)} MHz`,h=`${Math.round(Math.random()*360)}°`;t({distance:c,frequency:d,phase:h,aperture:u})}}),g("group",{position:[-4.1,-1.6,.4],children:[g(F1,{position:[0,.5,0],fontSize:.16,color:"#3a3a42",anchorX:"left",fontWeight:700,text:"Distance:"},void 0,!1,{fileName:p1,lineNumber:588,columnNumber:7},void 0),g(F1,{position:[2.7,.5,0],fontSize:.16,color:"#1a1a22",anchorX:"right",text:e.distance},void 0,!1,{fileName:p1,lineNumber:589,columnNumber:7},void 0),g(F1,{position:[0,.1,0],fontSize:.16,color:"#3a3a42",anchorX:"left",fontWeight:700,text:"Frequency:"},void 0,!1,{fileName:p1,lineNumber:591,columnNumber:7},void 0),g(F1,{position:[2.7,.1,0],fontSize:.16,color:"#1a1a22",anchorX:"right",text:e.frequency},void 0,!1,{fileName:p1,lineNumber:592,columnNumber:7},void 0),g(F1,{position:[0,-.3,0],fontSize:.16,color:"#3a3a42",anchorX:"left",fontWeight:700,text:"Phase:"},void 0,!1,{fileName:p1,lineNumber:594,columnNumber:7},void 0),g(F1,{position:[2.7,-.3,0],fontSize:.16,color:"#1a1a22",anchorX:"right",text:e.phase},void 0,!1,{fileName:p1,lineNumber:595,columnNumber:7},void 0),g(F1,{position:[0,-.7,0],fontSize:.16,color:"#3a3a42",anchorX:"left",fontWeight:700,text:"Aperture (for -22dBm):"},void 0,!1,{fileName:p1,lineNumber:597,columnNumber:7},void 0),g(F1,{position:[2.7,-1,0],fontSize:.18,color:"#1a1a22",anchorX:"right",fontWeight:700,text:e.aperture},void 0,!1,{fileName:p1,lineNumber:598,columnNumber:7},void 0)]},void 0,!0,{fileName:p1,lineNumber:587,columnNumber:5},void 0)},l_=()=>g(C2,{aspectRatio:"10 / 6.4",children:g("div",{style:{width:"100%",height:"100%",position:"relative"},children:[g(BM,{children:"Time of Flight"},void 0,!1,{fileName:p1,lineNumber:607,columnNumber:9},void 0),g(e9,{src:"hex-small-cell-tower.svg",alt:"Antenna",position:"absolute",left:"4%",bottom:"0px",height:"65%",zIndex:10,pointerEvents:"none"},void 0,!1,{fileName:p1,lineNumber:608,columnNumber:9},void 0),g(yo,{style:{position:"relative",zIndex:20},orthographic:!0,dpr:[1,2],camera:{position:[0,0,10]},gl:{antialias:!0,alpha:!0},children:g(_.Suspense,{fallback:null,children:g(CM,{},void 0,!1,{fileName:p1,lineNumber:626,columnNumber:13},void 0)},void 0,!1,{fileName:p1,lineNumber:625,columnNumber:11},void 0)},void 0,!1,{fileName:p1,lineNumber:618,columnNumber:9},void 0)]},void 0,!0,{fileName:p1,lineNumber:606,columnNumber:7},void 0)},void 0,!1,{fileName:p1,lineNumber:605,columnNumber:5},void 0),BM=a1.div` + position: absolute; + top: 14px; + left: 16px; + font-size: ${w1.fontSizes.canvasTitle}; + letter-spacing: 0.04em; + font-family: ${w1.fonts.mono}; + color: ${w1.colors.text}; + z-index: 20; + pointer-events: none; +`,q="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/ImpedanceCanvas.tsx",we={background:w1.colors.background,textPrimary:w1.colors.text,textSecondary:"rgba(42, 42, 42, 0.8)",textTertiary:"rgba(42, 42, 42, 0.6)",textMuted:"rgba(92, 92, 92, 0.7)",textLight:"rgba(92, 92, 92, 0.6)",borderPrimary:"rgba(42, 42, 42, 0.3)",borderSecondary:"rgba(42, 42, 42, 0.2)",backgroundLight:"rgba(255, 255, 255, 0.8)",backgroundMedium:"rgba(255, 255, 255, 0.6)",dot:"rgba(42, 42, 42, 0.5)"},Zt={mono:w1.fonts.mono,monoShort:w1.fonts.mono,serif:'"Cambria Math", "Georgia", "Times New Roman", serif'},mo=` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); + } +`,EM=` + uniform float uTime; + uniform float uObjectCenter; + uniform float uObjectRadius; + uniform vec2 uResolution; + varying vec2 vUv; + + float sdSegment(vec2 p, vec2 a, vec2 b) { + vec2 pa = p - a, ba = b - a; + float h = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0); + return length(pa - ba * h); + } + + void main() { + float x = vUv.x; + float aspect = uResolution.x / uResolution.y; + + float objDist = abs(x - uObjectCenter) / uObjectRadius; + float inObj = 1.0 - smoothstep(0.78, 1.12, objDist); + + float baseFreq = 2.1; + float localFreq = mix(baseFreq, baseFreq * 2.8, inObj); + float baseAmp = 0.4; + float localAmp = mix(baseAmp, baseAmp * 0.35, inObj); + + vec2 uv = vUv * 2.0 - 1.0; + uv.x *= aspect; + + float x0 = uv.x * 3.5; + float y0 = uv.y; + + float minDist = 1e9; + const int N = 6; + float span = 0.35; + + for (int i = 0; i < N; i++) { + float tSample = float(i) / float(N - 1); + float xSample = x0 + mix(-span, span, tSample); + float ySample = sin(xSample * localFreq - uTime * 2.4) * localAmp; + float d = length(vec2((xSample - x0) / 6.28318, ySample - y0)); + minDist = min(minDist, d); + } + + float thickness = 0.03; + float aa = fwidth(minDist); + float line = smoothstep(thickness + aa, thickness - aa, minDist); + + // Color: vibrant purple-magenta left → softer lavender right + vec3 leftColor = vec3(0.76, 0.22, 1.0); + vec3 midColor = vec3(0.58, 0.36, 0.96); + vec3 rightColor = vec3(0.62, 0.55, 0.82); + float t = smoothstep(0.0, 1.0, x); + vec3 color = mix(leftColor, midColor, smoothstep(0.0, 0.42, t)); + color = mix(color, rightColor, smoothstep(0.42, 1.0, t)); + + // Inside object: deeper blue shift + vec3 objColor = vec3(0.35, 0.30, 0.78); + color = mix(color, objColor, inObj * 0.65); + + gl_FragColor = vec4(color, line); + } +`,WM=` + uniform float uTime; + uniform float uIndex; + uniform float uObjectCenter; + uniform float uObjectRadius; + varying vec2 vUv; + + void main() { + float x = vUv.x; + float worldX = x * 12.0 - 6.0; + + float objDist = abs(x - uObjectCenter) / uObjectRadius; + float inObj = 1.0 - smoothstep(0.78, 1.12, objDist); + + float freq = mix(3.8, 3.8 * 2.8, inObj); + float amp = mix(0.17, 0.17 * 0.35, inObj); + + float phaseOff = uIndex * 0.45; + float ampScale = 0.5 - uIndex * 0.15; + + float wave = sin(worldX * freq * (0.98 + uIndex * 0.04) - uTime * 2.4 + phaseOff) * amp * ampScale; + float y = 0.5 + wave; + + float thickness = 0.008; + float dist = abs(vUv.y - y); + float line = smoothstep(thickness, thickness * 0.1, dist); + float glow = smoothstep(thickness * 12.0, thickness * 0.5, dist) * 0.15; + + vec3 color = vec3(0.6, 0.35, 0.95); + color = mix(color, vec3(0.35, 0.28, 0.72), inObj * 0.6); + + float t = smoothstep(0.0, 1.0, x); + float alphaGrad = mix(0.45, 0.08, t); + alphaGrad = mix(alphaGrad, max(alphaGrad, 0.35), inObj); + float edgeFade = smoothstep(0.0, 0.04, x) * smoothstep(1.0, 0.96, x); + + float alpha = (line * 0.3 + glow) * alphaGrad * edgeFade; + + gl_FragColor = vec4(color, alpha); + } +`,LM=` + uniform float uTime; + varying vec2 vUv; + + void main() { + vec2 p = vUv - 0.5; + float r = length(p); + + float circleMask = 1.0 - smoothstep(0.42, 0.47, r); + + // Multiple internal resonance lines + float totalAlpha = 0.0; + vec3 totalColor = vec3(0.0); + + for (int i = 0; i < 5; i++) { + float fi = float(i); + float freq = 18.0 + fi * 1.0; + float speed = 1.4 + fi * 0.2 + sin(fract(uTime * 0.7 + fi * 1.3) * 6.28318) * 0.15; + float amp = 0.035 - fi * 0.018; + float yOff = (fi - 2.0) * 0.19; + + float phaseOffset = fract(uTime * 0.4 + fi * 0.9) * 6.28318; + float wave = sin(p.x * freq + uTime * speed + fi * 1.2 + phaseOffset) * amp; + float dist = abs(p.y - yOff - wave); + float line = smoothstep(0.010, 0.009, dist); + float glow = smoothstep(0.05, 0.002, dist) * 0.25; + + vec3 col = mix(vec3(0.35, 0.38, 0.62), vec3(0.5, 0.45, 0.75), fi / 2.0); + totalColor += col * (line + glow); + totalAlpha += (line * 0.6 + glow) * (0.7 - fi * 0.15); + } + + totalAlpha *= circleMask; + + gl_FragColor = vec4(totalColor, totalAlpha); + } +`,UM=` + uniform float uTime; + varying vec2 vUv; + + void main() { + vec2 p = vUv - 0.5; + float r = length(p); + + // Soft ring glow + float ring = smoothstep(0.50, 0.44, r) * smoothstep(0.38, 0.44, r); + float outerGlow = smoothstep(0.55, 0.42, r) * 0.15; + + // Subtle pulse + float pulse = 0.85 + 0.15 * sin(uTime * 1.2); + + vec3 color = vec3(0.5, 0.45, 0.72); + float alpha = (ring * 0.5 + outerGlow) * pulse; + + gl_FragColor = vec4(color, alpha); + } +`,OM=` + uniform float uTime; + uniform vec2 uResolution; + varying vec2 vUv; + + float hash(vec2 p) { + return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); + } + + void main() { + vec2 uv = vUv; + float aspect = uResolution.x / uResolution.y; + uv.x *= aspect; + + float brightness = 0.0; + + for (int i = 0; i < 60; i++) { + float fi = float(i); + vec2 seed = vec2(fi * 0.173, fi * 0.391); + vec2 pos = vec2(hash(seed) * aspect, hash(seed + 1.0)); + + // Gentle drift + pos.x += sin(uTime * 0.15 + fi * 0.5) * 0.02; + pos.y += cos(uTime * 0.12 + fi * 0.7) * 0.015; + + float d = length(uv - pos); + float size = 0.001 + hash(seed + 2.0) * 0.002; + float twinkle = 0.5 + 0.5 * sin(uTime * (0.5 + hash(seed + 3.0) * 1.5) + fi); + brightness += smoothstep(size, 0.0, d) * twinkle * (0.3 + hash(seed + 4.0) * 0.7); + } + + vec3 color = vec3(0.5, 0.45, 0.75) * brightness; + gl_FragColor = vec4(color, brightness * 0.5); + } +`,FM=Yi` + 0%, 100% { opacity: 0.6; } + 50% { opacity: 1; } +`,PM=a1.div` + position: absolute; + top: 14px; + left: 16px; + font-size: ${w1.fontSizes.canvasTitle}; + letter-spacing: 0.04em; + font-family: ${w1.fonts.mono}; + color: ${w1.colors.text}; + z-index: 20; + pointer-events: none; +`,DM=a1.div` + width: 100%; + height: 100%; + position: relative; + overflow: hidden; +`,kM=a1.div` + position: absolute; + inset: 0; + pointer-events: none; + display: flex; + flex-direction: column; +`,XM=a1.div` + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1.5% 4% 0; + gap: 2%; + margin-top: 5%; +`,m4=a1.div` + display: flex; + flex-direction: column; + align-items: ${({$align:e})=>e==="left"?"flex-start":"flex-end"}; + text-align: ${({$align:e})=>e}; + flex-shrink: 0; +`,g4=a1.span` + font-family: ${Zt.mono}; + font-size: clamp(1.2rem, 4vw, 2.7rem); + font-weight: 700; + color: ${we.textPrimary}; + line-height: 1.2; +`,v4=a1.span` + font-family: ${Zt.monoShort}; + font-size: clamp(0.55rem, 1vw, 0.78rem); + font-weight: 400; + color: ${we.textMuted}; + line-height: 1.2; +`,IM=a1.div` + position: absolute; + top: 35%; + right: 16%; +`,GM=a1.div` + position: absolute; + top: 35%; + left: 16%; +`,b4=a1.span` + font-family: ${Zt.monoShort}; + font-size: clamp(0.55rem, 1vw, 0.78rem); + font-weight: 500; + color: ${we.textSecondary}; + background: ${we.backgroundMedium}; + border: 1px solid ${we.borderSecondary}; + border-radius: 6px; + padding: 3px 10px; + letter-spacing: 0.03em; +`,zM=a1.div` + position: absolute; + bottom: 15%; + right: 5%; + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 2px; +`,$M=a1.span` + font-family: ${Zt.monoShort}; + font-size: clamp(0.42rem, 0.7vw, 0.55rem); + font-weight: 500; + color: ${we.textTertiary}; + letter-spacing: 0.12em; + text-transform: uppercase; +`,VM=a1.div` + font-family: ${Zt.serif}; + font-size: clamp(.5rem, 2vw, 1.6rem); + color: ${we.textPrimary}; + letter-spacing: 0.02em; + + i { + font-style: italic; + } +`,QM=a1.div` + position: absolute; + bottom: 9%; + left: 4%; + display: flex; + align-items: center; + gap: 8px; + font-family: ${Zt.monoShort}; + font-size: clamp(.3rem, 1.4vw, 10px); + color: ${we.textLight}; + letter-spacing: 0.02em; +`,ZM=a1.div` + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + width: max-content; + max-width: min(42vw, 22rem); + padding: clamp(2px, 0.6vw, 6px) clamp(6px, 1vw, 12px); + border-radius: 8px; +`,qM=a1.span` + font-family: ${Zt.mono}; + font-size: clamp(.5rem, 0.8vw, 1rem); + font-weight: 700; + color: ${we.textPrimary}; + line-height: 1.2; + margin-bottom: clamp(1px, 0.2vw, 3px); +`,HM=a1.span` + font-family: ${Zt.monoShort}; + font-size: clamp(0.4rem, .75vw, 0.88rem); + font-weight: 400; + color: ${we.textMuted}; + line-height: 1.2; +`,N4=a1.span` + /* Additional styling if needed */ +`,y4=a1.span` + width: 4px; + height: 4px; + border-radius: 50%; + background: ${we.dot}; + animation: ${FM} 3s ease-in-out infinite; +`,JM=()=>{const e=(0,_.useRef)(null),{size:t}=he(),o=(0,_.useMemo)(()=>({uTime:{value:0},uResolution:{value:new f1(t.width,t.height)}}),[]);return B0(({clock:r})=>{e.current&&(e.current.uniforms.uTime.value=r.elapsedTime)}),(0,_.useEffect)(()=>{e.current&&e.current.uniforms.uResolution.value.set(t.width,t.height)},[t]),g("mesh",{position:[0,0,-.5],frustumCulled:!1,children:[g("planeGeometry",{args:[14,8]},void 0,!1,{fileName:q,lineNumber:449,columnNumber:7},void 0),g("shaderMaterial",{ref:e,uniforms:o,vertexShader:mo,fragmentShader:OM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:q,lineNumber:450,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:448,columnNumber:5},void 0)},jM=()=>{const e=(0,_.useRef)(null),{size:t}=he(),o=(0,_.useMemo)(()=>({uTime:{value:0},uObjectCenter:{value:.5},uObjectRadius:{value:.115},uResolution:{value:new f1(t.width,t.height)}}),[]);return B0(({clock:r})=>{e.current&&(e.current.uniforms.uTime.value=r.elapsedTime)}),g("mesh",{position:[0,-.35,.1],frustumCulled:!1,children:[g("planeGeometry",{args:[11.5,4]},void 0,!1,{fileName:q,lineNumber:481,columnNumber:7},void 0),g("shaderMaterial",{ref:e,uniforms:o,vertexShader:mo,fragmentShader:EM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:q,lineNumber:482,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:480,columnNumber:5},void 0)},M4=({index:e})=>{const t=(0,_.useRef)(null),o=(0,_.useMemo)(()=>({uTime:{value:0},uIndex:{value:e},uObjectCenter:{value:.5},uObjectRadius:{value:.115}}),[e]);return B0(({clock:r})=>{t.current&&(t.current.uniforms.uTime.value=r.elapsedTime)}),g("mesh",{position:[0,-.35,.08-e*.01],frustumCulled:!1,children:[g("planeGeometry",{args:[11.5,4]},void 0,!1,{fileName:q,lineNumber:512,columnNumber:7},void 0),g("shaderMaterial",{ref:t,uniforms:o,vertexShader:mo,fragmentShader:WM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:q,lineNumber:513,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:511,columnNumber:5},void 0)},KM=()=>{const e=(0,_.useRef)(null),t=(0,_.useRef)(null),o=(0,_.useMemo)(()=>({uTime:{value:0}}),[]),r=(0,_.useMemo)(()=>({uTime:{value:0}}),[]);return B0(({clock:s})=>{e.current&&(e.current.uniforms.uTime.value=s.elapsedTime),t.current&&(t.current.uniforms.uTime.value=s.elapsedTime)}),g("group",{position:[0,-.35,.2],children:[g("mesh",{position:[0,0,-.02],children:[g("circleGeometry",{args:[1.55,128]},void 0,!1,{fileName:q,lineNumber:541,columnNumber:9},void 0),g("meshBasicMaterial",{color:"#2a2545",transparent:!0,opacity:.3},void 0,!1,{fileName:q,lineNumber:542,columnNumber:9},void 0)]},void 0,!0,{fileName:q,lineNumber:540,columnNumber:7},void 0),g("mesh",{children:[g("circleGeometry",{args:[1.28,128]},void 0,!1,{fileName:q,lineNumber:546,columnNumber:9},void 0),g("meshBasicMaterial",{color:"#181828",transparent:!0,opacity:.88},void 0,!1,{fileName:q,lineNumber:547,columnNumber:9},void 0)]},void 0,!0,{fileName:q,lineNumber:545,columnNumber:7},void 0),g("mesh",{position:[0,0,.03],children:[g("planeGeometry",{args:[3.2,3.2]},void 0,!1,{fileName:q,lineNumber:551,columnNumber:9},void 0),g("shaderMaterial",{ref:t,uniforms:r,vertexShader:mo,fragmentShader:UM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:q,lineNumber:552,columnNumber:9},void 0)]},void 0,!0,{fileName:q,lineNumber:550,columnNumber:7},void 0),g("mesh",{position:[0,0,.05],children:[g("planeGeometry",{args:[2.56,2.56]},void 0,!1,{fileName:q,lineNumber:563,columnNumber:9},void 0),g("shaderMaterial",{ref:e,uniforms:o,vertexShader:mo,fragmentShader:LM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:q,lineNumber:564,columnNumber:9},void 0)]},void 0,!0,{fileName:q,lineNumber:562,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:538,columnNumber:5},void 0)},YM=({from:e,to:t,headSize:o=.22,color:r="#4a4570",glowColor:s="#6b5acd"})=>{const i=(0,_.useMemo)(()=>{const a=new G(t[0]-e[0],t[1]-e[1],0).normalize(),l=new G(-a.y,a.x,0),u=new G(...t),c=u.clone().sub(a.clone().multiplyScalar(o)).add(l.clone().multiplyScalar(o*.48)),d=u.clone().sub(a.clone().multiplyScalar(o)).sub(l.clone().multiplyScalar(o*.48)),h=Math.max(.012,o*.08),f=new G(...e),p=u.clone().sub(a.clone().multiplyScalar(o*.15)),m=f.clone().add(l.clone().multiplyScalar(h)),b=f.clone().sub(l.clone().multiplyScalar(h)),N=p.clone().add(l.clone().multiplyScalar(h)),v=p.clone().sub(l.clone().multiplyScalar(h)),y=new Float32Array([m.x,m.y,0,b.x,b.y,0,N.x,N.y,0,b.x,b.y,0,v.x,v.y,0,N.x,N.y,0,u.x,u.y,0,c.x,c.y,0,d.x,d.y,0]),T=new a3;return T.setAttribute("position",new m2(y,3)),T.computeVertexNormals(),T},[e,t,o]),n=(0,_.useMemo)(()=>{const a=new G(t[0]-e[0],t[1]-e[1],0).normalize(),l=new G(-a.y,a.x,0),u=new G(...t),c=new G(...e),d=u.clone().sub(a.clone().multiplyScalar(o*.15)),h=Math.max(.04,o*.28),f=c.clone().add(l.clone().multiplyScalar(h)),p=c.clone().sub(l.clone().multiplyScalar(h)),m=d.clone().add(l.clone().multiplyScalar(h)),b=d.clone().sub(l.clone().multiplyScalar(h)),N=new Float32Array([f.x,f.y,0,p.x,p.y,0,m.x,m.y,0,p.x,p.y,0,b.x,b.y,0,m.x,m.y,0]),v=new a3;return v.setAttribute("position",new m2(N,3)),v},[e,t,o]);return g("group",{children:[g("mesh",{geometry:n,position:[0,0,.11],children:g("meshBasicMaterial",{color:s,transparent:!0,opacity:.08,side:2},void 0,!1,{fileName:q,lineNumber:633,columnNumber:9},void 0)},void 0,!1,{fileName:q,lineNumber:632,columnNumber:7},void 0),g("mesh",{geometry:i,position:[0,0,.12],children:g("meshBasicMaterial",{color:r,transparent:!0,opacity:.7,side:2},void 0,!1,{fileName:q,lineNumber:636,columnNumber:9},void 0)},void 0,!1,{fileName:q,lineNumber:635,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:631,columnNumber:5},void 0)},ex=()=>g(YM,{from:[2.78,-1.85,0],to:[2.78,-1.38,0],headSize:.13,color:"#4a4570",glowColor:"#6b5acd"},void 0,!1,{fileName:q,lineNumber:643,columnNumber:3},void 0),tx=()=>g(Su,{position:[0,1.7,0],transform:!0,center:!0,children:g(ZM,{children:[g(qM,{children:"Target"},void 0,!1,{fileName:q,lineNumber:655,columnNumber:7},void 0),g(HM,{children:"(with its own electrical activity)"},void 0,!1,{fileName:q,lineNumber:656,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:654,columnNumber:5},void 0)},void 0,!1,{fileName:q,lineNumber:653,columnNumber:3},void 0),ox=()=>{const{camera:e,size:t}=he(),o=t.width>=500;return(0,_.useEffect)(()=>{if(e.type==="OrthographicCamera"){const r=e;r.zoom=t.width/11,r.updateProjectionMatrix()}},[e,t]),g(J0,{children:[g(JM,{},void 0,!1,{fileName:q,lineNumber:676,columnNumber:7},void 0),g(M4,{index:1},void 0,!1,{fileName:q,lineNumber:677,columnNumber:7},void 0),g(M4,{index:2},void 0,!1,{fileName:q,lineNumber:678,columnNumber:7},void 0),g(jM,{},void 0,!1,{fileName:q,lineNumber:679,columnNumber:7},void 0),g(KM,{},void 0,!1,{fileName:q,lineNumber:680,columnNumber:7},void 0),g(tx,{},void 0,!1,{fileName:q,lineNumber:681,columnNumber:7},void 0),o?g(ex,{},void 0,!1,{fileName:q,lineNumber:682,columnNumber:22},void 0):null]},void 0,!0,{fileName:q,lineNumber:675,columnNumber:5},void 0)},u_=()=>{const[e,t]=(0,_.useState)(()=>typeof window>"u"?!0:window.innerWidth>=500);return(0,_.useEffect)(()=>{const o=()=>t(window.innerWidth>=500);return o(),window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[]),g(C2,{aspectRatio:"1.7 / 1",children:g(DM,{children:[g(PM,{children:"Impedance"},void 0,!1,{fileName:q,lineNumber:707,columnNumber:9},void 0),g(yo,{orthographic:!0,dpr:[1,2],camera:{position:[0,0,10]},gl:{antialias:!0,alpha:!0},children:g(ox,{},void 0,!1,{fileName:q,lineNumber:714,columnNumber:11},void 0)},void 0,!1,{fileName:q,lineNumber:708,columnNumber:9},void 0),g(kM,{children:[g(XM,{children:[g(m4,{$align:"left",children:[g(g4,{children:"Tx"},void 0,!1,{fileName:q,lineNumber:721,columnNumber:13},void 0),g(v4,{children:"(transmit)"},void 0,!1,{fileName:q,lineNumber:722,columnNumber:13},void 0)]},void 0,!0,{fileName:q,lineNumber:720,columnNumber:11},void 0),g(m4,{$align:"right",children:[g(g4,{children:"Rx"},void 0,!1,{fileName:q,lineNumber:725,columnNumber:13},void 0),g(v4,{children:"(receive)"},void 0,!1,{fileName:q,lineNumber:726,columnNumber:13},void 0)]},void 0,!0,{fileName:q,lineNumber:724,columnNumber:11},void 0)]},void 0,!0,{fileName:q,lineNumber:719,columnNumber:9},void 0),e?g(J0,{children:[g(IM,{children:g(b4,{children:"Original + Imprint"},void 0,!1,{fileName:q,lineNumber:733,columnNumber:15},void 0)},void 0,!1,{fileName:q,lineNumber:732,columnNumber:13},void 0),g(GM,{children:g(b4,{children:"Original"},void 0,!1,{fileName:q,lineNumber:736,columnNumber:15},void 0)},void 0,!1,{fileName:q,lineNumber:735,columnNumber:13},void 0)]},void 0,!0,{fileName:q,lineNumber:731,columnNumber:11},void 0):null,g(zM,{children:[g($M,{children:"Differential / Difference"},void 0,!1,{fileName:q,lineNumber:742,columnNumber:11},void 0),g(VM,{children:[g("i",{children:"dx"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:13},void 0)," = ",g("i",{children:"x"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:35},void 0),"(",g("i",{children:"t"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:44},void 0)," + ",g("i",{children:"dt"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:65},void 0),") − ",g("i",{children:"x"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:88},void 0),"(",g("i",{children:"t"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:97},void 0),")"]},void 0,!0,{fileName:q,lineNumber:743,columnNumber:11},void 0)]},void 0,!0,{fileName:q,lineNumber:741,columnNumber:9},void 0),g(QM,{children:[g(y4,{},void 0,!1,{fileName:q,lineNumber:749,columnNumber:11},void 0),g(N4,{children:"λ (wavelength) compresses inside medium"},void 0,!1,{fileName:q,lineNumber:750,columnNumber:11},void 0),g(y4,{},void 0,!1,{fileName:q,lineNumber:751,columnNumber:11},void 0),g(N4,{children:"Amplitude attenuates"},void 0,!1,{fileName:q,lineNumber:752,columnNumber:11},void 0)]},void 0,!0,{fileName:q,lineNumber:748,columnNumber:9},void 0)]},void 0,!0,{fileName:q,lineNumber:717,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:706,columnNumber:7},void 0)},void 0,!1,{fileName:q,lineNumber:705,columnNumber:5},void 0)},li=(e,t,o)=>{const r=Number.isFinite(t)?t:0,s=Number.isFinite(o)?o:Number.MAX_VALUE,i=Math.min(r,s),n=Math.max(r,s);return Number.isFinite(e)?Math.max(i,Math.min(e,n)):i},fr=e=>{switch(e){case"GHz":return 1e9;case"MHz":return 1e6;case"kHz":return 1e3;default:return 1}},I3=e=>{const t=Math.abs(e);return t>=1e9?{value:e/1e9,unit:"GHz"}:t>=1e6?{value:e/1e6,unit:"MHz"}:t>=1e3?{value:e/1e3,unit:"kHz"}:{value:e,unit:"Hz"}},lt=e=>e.includes(".")?e.replace(/\.?0+$/,""):e,rx=e=>Math.round(e).toLocaleString("en-US"),t9=(e,t=!0)=>{const o=typeof t=="boolean"?{showUnits:t}:t,r=o.showUnits??!0,s=o.precisionMHz??1,i=o.precisionGHz??1,n=o.precisionKHz??0,a=o.trimTrailingZeros??!1;if(e==null||Number.isNaN(e)||!Number.isFinite(e))return"---"+(r?"Hz":"");const l=Object.is(e,-0)?0:e,u=Math.abs(l);let c,d,h;l===0?(c=0,d="Hz",h=0):u<1e3?(c=l,d="Hz",h=0):u<1e6?(c=l/1e3,d="kHz",h=n):u<1e9?(c=l/1e6,d="MHz",h=s):(c=l/1e9,d="GHz",h=i);const f=Number(c.toFixed(h))===0?0:c;return(a?lt(f.toFixed(h)):f.toFixed(h))+(r?d:"")},pr=e=>Number.isFinite(e)?rx(e):"0",wt=e=>Number.isFinite(e)?e.toFixed(3):"0",sx=e=>e<3e5?"LF":e<3e6?"MF":e<3e7?"HF":e<3e8?"VHF":e<1e9?"Low end microwave (pre L band)":e<2e9?"L-band Microwave (1-2GHz)":e<4e9?"S-band Microwave (2-4GHz)":e<12e9?"X-band (8-12GHz)":"Microwave",r1="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/BodyAttenuationCanvas.tsx",ix=ji("body-attenuation-character.png"),t0={transmitPowerDbm:-8,receivePowerDbm:-52,skinThicknessCm:.22,skullThicknessCm:.68,frequencyHz:1618e3,referenceFrequencyHz:1e6,exponent:.5,skinLossRefDbPerCm:1.1,skullLossRefDbPerCm:2.35,mediumLossRefDbPerCm:.09,minDistanceCm:3e3,maxDistanceCm:5e4},dt={width:2.91,height:5.32},nx=1100,x4=` + uniform float uProgress; + uniform float uDirection; + uniform float uLift; + uniform float uCurlStrength; + + varying vec2 vUv; + varying float vPeel; + + void main() { + vUv = uv; + + float peelEdge = uDirection > 0.0 ? uv.x : 1.0 - uv.x; + float edgeWindow = pow(clamp(peelEdge, 0.0, 1.0), 0.72); + float verticalWindow = pow(sin(uv.y * 3.14159265), 0.8); + float progressWindow = pow(sin(uProgress * 3.14159265), 0.82); + float peel = edgeWindow * verticalWindow * progressWindow; + float hingeBias = smoothstep(0.08, 0.88, peelEdge); + + vec3 transformedPosition = position; + transformedPosition.z += peel * uLift + hingeBias * uCurlStrength * 0.22; + transformedPosition.x += uDirection * peel * (0.24 + uCurlStrength * 0.32); + transformedPosition.y += peel * peel * (0.14 + uCurlStrength * 0.22); + + vPeel = peel; + + gl_Position = projectionMatrix * modelViewMatrix * vec4(transformedPosition, 1.0); + } +`,ax=` + uniform sampler2D uTexture; + uniform float uProgress; + uniform float uGleamStrength; + + varying vec2 vUv; + varying float vPeel; + + vec3 rainbowGradient(float t) { + vec3 pink = vec3(1.0, 0.33, 0.76); + vec3 violet = vec3(0.72, 0.42, 1.0); + vec3 cyan = vec3(0.25, 0.9, 1.0); + vec3 lime = vec3(0.9, 1.0, 0.42); + vec3 gold = vec3(1.0, 0.82, 0.34); + + if (t < 0.25) { + return mix(pink, violet, smoothstep(0.0, 0.25, t)); + } + + if (t < 0.5) { + return mix(violet, cyan, smoothstep(0.25, 0.5, t)); + } + + if (t < 0.75) { + return mix(cyan, lime, smoothstep(0.5, 0.75, t)); + } + + return mix(lime, gold, smoothstep(0.75, 1.0, t)); + } + + void main() { + vec4 sampleColor = texture2D(uTexture, vUv); + if (sampleColor.a < 0.01) { + discard; + } + + float t = uProgress * 6.2831853; + float yCurve = pow(abs(vUv.y - 0.5) * 2.0, 1.9); + float archCenter = 0.22 + 0.10 * yCurve + 0.008 * sin(t * 0.21); + float archBand = exp(-pow((vUv.x - archCenter) * 5.8, 2.0)); + float innerGlow = exp(-pow((vUv.x - (archCenter - 0.035)) * 10.0, 2.0)); + float outerGlow = exp(-pow((vUv.x - (archCenter + 0.04)) * 8.2, 2.0)); + + float rippleA = sin(vUv.x * 10.0 + vUv.y * 4.0 + t * 0.22); + float rippleB = sin(vUv.x * 5.0 - vUv.y * 7.5 - t * 0.14); + float rippleC = sin(vUv.x * 2.8 + vUv.y * 11.0 + t * 0.08); + float ripple = 0.5 + 0.10 * rippleA + 0.07 * rippleB + 0.05 * rippleC; + float peelMask = smoothstep(0.03, 0.2, vPeel); + float edgeGlow = pow(1.0 - clamp(abs(vUv.y - 0.5) * 1.8, 0.0, 1.0), 3.2); + float fresnel = pow(edgeGlow, 1.6); + float highlight = pow(clamp(ripple, 0.0, 1.0), 2.8) * (0.12 + fresnel * 0.32); + float shimmerShape = (archBand * 0.46 + innerGlow * 0.24 + outerGlow * 0.20 + highlight * 0.28) * peelMask; + float alphaMask = sampleColor.a * uGleamStrength; + + vec3 paperShadow = vec3(0.80, 0.82, 0.84); + vec3 paperMid = vec3(0.88, 0.90, 0.92); + vec3 paperLight = vec3(0.95, 0.96, 0.97); + vec3 tint = mix(paperShadow, paperMid, clamp(archBand * 0.75 + ripple * 0.20, 0.0, 1.0)); + tint = mix(tint, paperLight, fresnel * 0.24 + highlight * 0.42); + + float alpha = clamp((0.035 + shimmerShape * 0.20 + fresnel * 0.08) * alphaMask, 0.0, 0.34); + vec3 color = tint * (0.74 + shimmerShape * 0.18) + paperLight * (fresnel * 0.10 + highlight * 0.12); + color *= smoothstep(0.0, 0.02, sampleColor.a); + + gl_FragColor = vec4(color, alpha); + } +`,lx=` + uniform sampler2D uTexture; + uniform float uProgress; + uniform float uGleamStrength; + + varying vec2 vUv; + varying float vPeel; + + vec3 iridescentGradient(float t) { + vec3 white = vec3(1.0, 1.0, 1.0); + vec3 pearl = vec3(0.95, 0.92, 1.0); + vec3 silver = vec3(0.88, 0.90, 0.94); + vec3 blush = vec3(1.0, 0.94, 0.96); + vec3 ice = vec3(0.92, 0.97, 1.0); + + if (t < 0.25) return mix(white, pearl, smoothstep(0.0, 0.25, t)); + if (t < 0.5) return mix(pearl, ice, smoothstep(0.25, 0.5, t)); + if (t < 0.75) return mix(ice, blush, smoothstep(0.5, 0.75, t)); + return mix(blush, silver, smoothstep(0.75, 1.0, t)); + } + + void main() { + vec4 sampleColor = texture2D(uTexture, vUv); + float alphaFactor = smoothstep(0.0, 0.02, sampleColor.a); + + float peelMask = smoothstep(0.02, 0.18, vPeel); + float edgeLight = pow(clamp(vPeel, 0.0, 1.0), 1.15) * 0.2 * alphaFactor; + + // Vertical gleam sweep (top to bottom) during flip + float shimmerHead = mix(-0.2, 1.2, smoothstep(0.0, 1.0, uProgress)); + float shimmerBand = exp(-pow((vUv.y - shimmerHead) * 8.5, 2.0)); + float shimmerCore = exp(-pow((vUv.y - shimmerHead) * 18.0, 2.0)); + float shimmerTrail = exp(-pow((vUv.y - (shimmerHead - 0.16)) * 5.5, 2.0)); + + float shimmerMask = (shimmerBand * 0.9 + shimmerCore * 0.85 + shimmerTrail * 0.5) * peelMask * uGleamStrength * alphaFactor; + + // Iridescent tint + float iridCoord = clamp(vUv.x * 0.5 + vUv.y * 0.8 + uProgress * 0.3, 0.0, 1.0); + vec3 iridColor = iridescentGradient(iridCoord); + + vec3 shimmerOverlay = iridColor * shimmerMask; + vec3 specular = vec3(1.0, 0.99, 0.96) * shimmerCore * peelMask * uGleamStrength * 0.8 * alphaFactor; + + vec3 finalColor = sampleColor.rgb + shimmerOverlay + specular + vec3(edgeLight); + + gl_FragColor = vec4(finalColor, sampleColor.a); + } +`,ux=` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); + } +`,cx=` + uniform float uTime; + uniform float uFlipX; + uniform float uFlipFromSide; + uniform float uFlipProgress; + uniform sampler2D uBodyTexture; + uniform vec4 uBodyRect; + varying vec2 vUv; + + float sampleBodyOriented(vec2 uv, float side) { + vec2 bodyUv = (uv - uBodyRect.xy) / uBodyRect.zw; + if (bodyUv.x < 0.0 || bodyUv.x > 1.0 || bodyUv.y < 0.0 || bodyUv.y > 1.0) return 0.0; + if (side < 0.0) bodyUv.x = 1.0 - bodyUv.x; + return texture2D(uBodyTexture, bodyUv).a; + } + + float sampleBody(vec2 uv) { + if (uFlipProgress < 0.01) { + return sampleBodyOriented(uv, uFlipX); + } + // Blend between from-side and to-side silhouettes during flip + float fromAlpha = sampleBodyOriented(uv, uFlipFromSide); + float toAlpha = sampleBodyOriented(uv, -uFlipFromSide); + return mix(fromAlpha, toAlpha, uFlipProgress); + } + + float bodyEdge(vec2 uv, float radius) { + float center = sampleBody(uv); + float maxNeighbor = 0.0; + for (float dx = -1.0; dx <= 1.0; dx += 1.0) { + for (float dy = -1.0; dy <= 1.0; dy += 1.0) { + if (dx == 0.0 && dy == 0.0) continue; + maxNeighbor = max(maxNeighbor, sampleBody(uv + vec2(dx, dy) * radius)); + } + } + return maxNeighbor * (1.0 - center); + } + + void main() { + float speed = 0.35; + float progress = mod(uTime * speed, 2.2) - 0.6; + + float bodyAlpha = sampleBody(vUv); + bool insideBody = bodyAlpha > 0.15; // Two Radio wave arc ripples (Double Pulse) + float arcOffset = 0.25 * pow(abs(vUv.y - 0.5) * 2.0, 2.2); + float dist1 = (vUv.x + arcOffset) - progress; + float dist2 = (vUv.x + arcOffset) - (progress - 0.12); + + float bodyStrength1 = smoothstep(0.015, 0.0, dist1) * smoothstep(-0.35, 0.0, dist1); + float bodyStrength2 = smoothstep(0.015, 0.0, dist2) * smoothstep(-0.35, 0.0, dist2); + float bodyStrength = max(bodyStrength1, bodyStrength2); + + // Background center line that ripples into two diverging/converging sine waves + float centerY = 0.5; + // They peak together at vUv.x = 0.48 (body position) with longer wavelengths (approx 1 cycle shown) + float sineDist1 = sin((vUv.x - 0.48) * 7.5 - uTime * 8.0) * bodyStrength * 0.15; + float sineDist2 = sin((vUv.x - 0.48) * 5.0 - uTime * 8.0) * bodyStrength * 0.15; + + float lineMask1 = smoothstep(0.007, 0.0, abs(vUv.y - centerY - sineDist1)); + float lineMask2 = smoothstep(0.007, 0.0, abs(vUv.y - centerY - sineDist2)); + + // Brighten the intersection point for constructive interference feel + float intersection = lineMask1 * lineMask2; + vec3 lineColor = mix(vec3(0.66, 0.18, 0.9) * 0.48, vec3(1.0, 0.88, 1.0), intersection * 0.82); + float bgLineAlpha = max(lineMask1, lineMask2) * 0.65; + + // Rippling distortion for volume + float ripple1 = sin((vUv.x * 7.5) - (uTime * 2.6) + (vUv.y * 2.8)); + float ripple2 = sin((vUv.x * 13.0) + (vUv.y * 4.0) - (uTime * 4.2)); + float ripple3 = sin((vUv.x * 4.0) - (vUv.y * 9.0) + (uTime * 1.5)); + float ripple = ripple1 * 0.42 + ripple2 * 0.33 + ripple3 * 0.25; + float wave = ripple * 0.5 + 0.5; + + float edge = smoothstep(0.02, 0.0, abs(dist1)) + smoothstep(0.02, 0.0, abs(dist2)); + float edgeFalloff = smoothstep(0.18, -0.06, dist1) + smoothstep(0.18, -0.06, dist2); + float bodyDepth = smoothstep(0.0, 0.78, bodyStrength); + + float fresnel = pow(1.0 - clamp(abs(vUv.y - 0.5) * 1.9, 0.0, 1.0), 2.4); + float crest = pow(wave, 4.0) * edge * 0.6; + float trough = (1.0 - wave) * bodyStrength * 0.08; + float caustics = smoothstep(0.28, 0.96, wave) * bodyStrength * 0.12; + + float alpha = (bodyStrength * 0.02 + caustics + crest + fresnel * 0.22) * clamp(edgeFalloff, 0.0, 1.0); + // Incorporate background lines + alpha = max(alpha, bgLineAlpha); + + alpha *= smoothstep(-0.15, 0.15, vUv.x + arcOffset - progress + 0.5); + alpha *= smoothstep(1.15, 0.85, vUv.x); + + // Suppress wave inside the silhouette + if (insideBody) { + alpha = 0.0; + } + + // Silhouette edge outline glow when wave front is near + float edgeDetect = bodyEdge(vUv, 0.008); + float waveFrontX = progress - arcOffset; + float nearWave = smoothstep(0.4, 0.0, abs(vUv.x - waveFrontX)); + // The outline hits 100% only when the wave is exactly wiping over it + float outlineAlpha = edgeDetect * nearWave * 0.9; + + // Purple force field palette + vec3 darkCore = vec3(0.04, 0.02, 0.06); + vec3 midTone = vec3(0.38, 0.18, 0.6); + vec3 brightEdge = vec3(0.85, 0.6, 0.98); + vec3 hotWhite = vec3(1.0, 0.92, 1.0); + + vec3 waveBody = mix(darkCore, midTone, wave * 0.5 + bodyDepth * 0.3); + vec3 edgeGlow = mix(midTone, brightEdge, fresnel * 0.8 + crest * 1.0); + vec3 color = mix(waveBody, edgeGlow, clamp(fresnel + crest * 0.9, 0.0, 1.0)); + color += hotWhite * edge * 0.35; + color += vec3(0.03) * trough; + color = mix(color, lineColor, bgLineAlpha); + + // Replace outline color with iridescent-to-white sweep + // Same iridescent soap bubble core palette used in the text + vec3 a = vec3(0.5, 0.5, 0.5); + vec3 b = vec3(0.5, 0.5, 0.5); + vec3 c = vec3(1.0, 1.0, 1.0); + vec3 d = vec3(0.00, 0.33, 0.67); + float paletteInput = vUv.x * 0.5 - uTime * 0.8; + vec3 iridescentOutline = a + b * cos(6.28318 * (c * paletteInput + d)); + + // Core of the contour is pure white, edge bleeds into iridescence + float coreHighlight = smoothstep(0.2, 0.0, abs(vUv.x - waveFrontX)); + vec3 outlineColor = mix(iridescentOutline, vec3(1.0, 1.0, 1.0), coreHighlight); + + // Mathematically correct semi-transparent blending (avoids making low-alpha edges appear black/muddy) + float finalAlpha = clamp(alpha + outlineAlpha, 0.0, 0.95); + if (finalAlpha > 0.0) { + color = mix(color, outlineColor, outlineAlpha / finalAlpha); + } + + gl_FragColor = vec4(color, finalAlpha); + } +`,dx=({bodyTexture:e,facingSide:t,flipEffect:o})=>{const r=(0,_.useRef)(null),s=(0,_.useMemo)(()=>{const a=dt.width/2,l=dt.height/2,u=(0-a+5)/10,c=(-.55-l+3.25)/6.5,d=dt.width/10,h=dt.height/6.5;return{uTime:{value:0},uFlipX:{value:1},uFlipFromSide:{value:1},uFlipProgress:{value:0},uBodyTexture:{value:e},uBodyRect:{value:new S1(u,c,d,h)}}},[e]);return(0,_.useEffect)(()=>{r.current&&(r.current.uniforms.uBodyTexture.value=e)},[e]),B0(i=>{r.current&&(r.current.uniforms.uTime.value=i.clock.elapsedTime,r.current.uniforms.uFlipX.value=t,r.current.uniforms.uFlipFromSide.value=o.active?o.fromSide:t,r.current.uniforms.uFlipProgress.value=o.active?o.progress:0)}),g("mesh",{position:[0,0,-.5],frustumCulled:!1,children:[g("planeGeometry",{args:[10,6.5]},void 0,!1,{fileName:r1,lineNumber:370,columnNumber:7},void 0),g("shaderMaterial",{ref:r,uniforms:s,vertexShader:ux,fragmentShader:cx,transparent:!0,depthWrite:!1,blending:2},void 0,!1,{fileName:r1,lineNumber:371,columnNumber:7},void 0)]},void 0,!0,{fileName:r1,lineNumber:369,columnNumber:5},void 0)},Lt={left:-4.35,right:4.35,top:2.72,bottom:-2.7},Se={centerX:0,centerY:-.38,radiusX:1.08,radiusY:2.22},go=(e,t,o)=>Math.min(o,Math.max(t,e)),ui=e=>`${e>=0?"+":""}${e.toFixed(2)}dBm`,S4=e=>`${(e/100).toFixed(0)}m away`,hx=e=>{const t=go((e-Se.centerX)/Se.radiusX,-1,1),o=Math.sqrt(Math.max(0,1-t*t));return Se.centerY+o*Se.radiusY},fx=(e,t)=>{const o=go(e,Lt.left,Lt.right),r=Lt.bottom+.18,s=Math.abs(o-Se.centerX)<=Se.radiusX,i=hx(o)+.12,n=go(s?Math.max(t,i):t,r,Lt.top);return new f1(o,n)},px=(e,t)=>{const o=Math.pow(t0.frequencyHz/t0.referenceFrequencyHz,t0.exponent),r=e*t0.mediumLossRefDbPerCm*.015*o,s=t*t0.mediumLossRefDbPerCm*.015*o,i=(t0.skinThicknessCm*t0.skinLossRefDbPerCm+t0.skullThicknessCm*t0.skullLossRefDbPerCm)*.18*o,n=(t0.skinThicknessCm*t0.skinLossRefDbPerCm+t0.skullThicknessCm*t0.skullLossRefDbPerCm)*.12*o,a=-22,l=a+r,u=a-n;return{endpointA:l,entry:a,exit:u,receive:u-s,distanceLossA:r,distanceLossB:s,bodyEntryLoss:i,bodyTraversalLoss:n}},ci=(e,t)=>{const o=fx(e,t),r=Dc(o.x,Lt.left,Lt.right,3e3,t0.maxDistanceCm,t0.minDistanceCm,t0.maxDistanceCm),s=kc(o.y,Lt.bottom,Lt.top,3e3,t0.maxDistanceCm,t0.minDistanceCm,t0.maxDistanceCm);return{markerX:o.x,markerY:o.y,endpointADistance:r,endpointBDistance:s,txDistance:r,rxDistance:s,side:o.x{const t=Se.centerX-Se.radiusX,o=Se.centerX+Se.radiusX,r=(1-go((e.markerX-t)/(o-t),0,1))*180;return kt.degToRad(r)},di=e=>e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2,gx=e=>1-(1-e)*(1-e),vx=({facingSide:e,flipEffect:t,texture:o})=>{const r=(0,_.useRef)(null),s=(0,_.useRef)(null),i=(0,_.useMemo)(()=>({uTexture:{value:o},uProgress:{value:0},uDirection:{value:e},uLift:{value:0},uCurlStrength:{value:0},uGleamStrength:{value:0}}),[o]),n=(0,_.useMemo)(()=>({uTexture:{value:o},uProgress:{value:0},uDirection:{value:e},uLift:{value:0},uCurlStrength:{value:0},uGleamStrength:{value:0}}),[o]);(0,_.useEffect)(()=>{r.current&&(r.current.uniforms.uTexture.value=o),s.current&&(s.current.uniforms.uTexture.value=o)},[o]),B0(()=>{const m=t.active?di(t.progress):0,b=Math.sin(m*Math.PI),N=Math.sin(m*Math.PI)*1.55,v=Math.sin(m*Math.PI)*1.2,y=t.active?t.fromSide:e;i.uProgress.value=m,i.uDirection.value=y,i.uLift.value=1.8*b,i.uCurlStrength.value=N,i.uGleamStrength.value=v,n.uProgress.value=m,n.uDirection.value=y,n.uLift.value=1.8*b,n.uCurlStrength.value=N,n.uGleamStrength.value=v,r.current&&(r.current.uniforms.uProgress.value=m,r.current.uniforms.uDirection.value=y,r.current.uniforms.uLift.value=1.8*b,r.current.uniforms.uCurlStrength.value=N,r.current.uniforms.uGleamStrength.value=v),s.current&&(s.current.uniforms.uProgress.value=m,s.current.uniforms.uDirection.value=y,s.current.uniforms.uLift.value=1.8*b,s.current.uniforms.uCurlStrength.value=N,s.current.uniforms.uGleamStrength.value=v)});const a=t.active?di(t.progress):0,l=Math.sin(a*Math.PI),u=.08+l*.28,c=1+l*.55,d=t.active?t.fromSide:e,h=t.active?di(t.progress)*Math.PI:0,f=t.active?gx(Math.sin(a*Math.PI))*.65:0,p=1+l*.05;return g("group",{position:[0,-.55,.15],children:[g("mesh",{position:[0,-2.72,-.18],rotation:[-Math.PI/2,0,0],scale:[c,1+l*.18,1],frustumCulled:!1,children:[g("planeGeometry",{args:[dt.width*1.22,2.05]},void 0,!1,{fileName:r1,lineNumber:582,columnNumber:9},void 0),g("meshBasicMaterial",{color:"#161922",transparent:!0,opacity:u,depthWrite:!1},void 0,!1,{fileName:r1,lineNumber:583,columnNumber:9},void 0)]},void 0,!0,{fileName:r1,lineNumber:581,columnNumber:7},void 0),g("group",{rotation:[0,h,0],scale:[d*p,p,1],position:[0,l*.22,f],children:[g("mesh",{frustumCulled:!1,children:[g("planeGeometry",{args:[dt.width,dt.height,48,72]},void 0,!1,{fileName:r1,lineNumber:588,columnNumber:11},void 0),g("shaderMaterial",{ref:r,uniforms:i,vertexShader:x4,fragmentShader:lx,transparent:!0,side:2,depthWrite:!1},void 0,!1,{fileName:r1,lineNumber:589,columnNumber:11},void 0)]},void 0,!0,{fileName:r1,lineNumber:587,columnNumber:9},void 0),g("mesh",{position:[0,0,.01],renderOrder:999,frustumCulled:!1,children:[g("planeGeometry",{args:[dt.width,dt.height,48,72]},void 0,!1,{fileName:r1,lineNumber:601,columnNumber:11},void 0),g("shaderMaterial",{ref:s,uniforms:n,vertexShader:x4,fragmentShader:ax,transparent:!0,side:2,depthWrite:!1,depthTest:!1,blending:2},void 0,!1,{fileName:r1,lineNumber:602,columnNumber:11},void 0)]},void 0,!0,{fileName:r1,lineNumber:600,columnNumber:9},void 0)]},void 0,!0,{fileName:r1,lineNumber:586,columnNumber:7},void 0)]},void 0,!0,{fileName:r1,lineNumber:580,columnNumber:5},void 0)},bx=` + varying vec2 vUv; + varying vec3 vWorldPosition; + void main() { + vUv = uv; + vec4 worldPos = modelMatrix * vec4(position, 1.0); + vWorldPosition = worldPos.xyz; + gl_Position = projectionMatrix * viewMatrix * worldPos; + } +`,Nx=` + uniform sampler2D uTexture; + uniform float uTime; + varying vec2 vUv; + varying vec3 vWorldPosition; + + void main() { + vec4 texColor = texture2D(uTexture, vUv); + if (texColor.a < 0.1) discard; + + float speed = 0.35; + float cycle = mod(uTime * speed, 2.2); + // Align wave progression identically to RadioWave + float progress = cycle - 0.6; + float normalizedX = vWorldPosition.x / 10.0 + 0.5; + + // Wavefront UV is 'progress'. Dist < 0 means wave has passed. + // Use local vUv.x to give the digit itself a sense of being 'swiped' into existence + // as the wave front overtakes its horizontal span. + float dist = normalizedX - progress; + float localWipeShift = (vUv.x - 0.5) * 0.15; // slightly lead the wipe across the char width + float revealedThisCycle = smoothstep(0.12, -0.05, dist + localWipeShift); + + // Fade to zero gracefully as the cycle approaches its very end (between 2.0 and 2.2) + float fadeOut = smoothstep(2.2, 1.9, cycle); + + // Sum previous cycle fade with current cycle reveal, clamp to 1.0. + float totalReveal = clamp(revealedThisCycle * fadeOut, 0.0, 1.0); + + // Purple Iridescent Palette + vec3 a = vec3(0.5, 0.4, 0.6); + vec3 b = vec3(0.4, 0.2, 0.5); + vec3 c = vec3(1.0, 1.0, 1.0); + vec3 d = vec3(0.35, 0.1, 0.5); + float paletteInput = totalReveal + vWorldPosition.x * 0.15 - uTime * 0.6; + vec3 iridescent = a + b * cos(6.28318 * (c * paletteInput + d)); + + // Brightness highlight + float highlight = smoothstep(0.1, -0.05, dist) * smoothstep(-0.5, -0.05, dist); + vec3 litColor = mix(iridescent, vec3(1.0, 0.9, 1.0), 0.5 + highlight * 0.5); + + // Base color heavily darkened + vec3 baseColor = vec3(0.08, 0.04, 0.12); + + // Completely hide until wiped over! + float finalAlpha = texColor.a * totalReveal; + gl_FragColor = vec4(litColor, finalAlpha); + } +`,yx=({x:e,y:t,widthWorld:o})=>{const[r,s]=(0,_.useState)(0);B0(({clock:d})=>{const h=Math.floor(d.elapsedTime*.35/2.2);h!==r&&s(h)});const{texture:i,width:n,height:a}=(0,_.useMemo)(()=>{const d=w6(2),h=document.createElement("canvas"),f=h.getContext("2d");if(!f)return{texture:null,width:1,height:1};const p=90+Math.random()*110,m=p,b=d.split("");let N=0;const v=b.map((S,C)=>{const w=p-(p-m)*(C/Math.max(1,b.length-1));f.font=`normal ${w}px "JetBrains Mono", monospace`;const L=f.measureText(S).width+w*.05;return N+=L,{char:S,size:w,charW:L}}),y=p*1.3;h.width=Math.ceil(N),h.height=Math.ceil(y),f.fillStyle="#ffffff",f.textBaseline="middle";let T=0;v.forEach(({char:S,size:C,charW:w})=>{f.font=`normal ${C}px "JetBrains Mono", monospace`,f.fillText(S,T,y/2),T+=w});const x=new r6(h);return x.colorSpace=X0,x.minFilter=H1,x.magFilter=H1,x.generateMipmaps=!0,{texture:x,width:o,height:o*(h.height/h.width)}},[r,o]),l=(0,_.useRef)(null),u=(0,_.useMemo)(()=>({uTexture:{value:i},uTime:{value:0}}),[]);(0,_.useEffect)(()=>{l.current&&i&&(l.current.uniforms.uTexture.value=i,l.current.uniformsNeedUpdate=!0)},[i]);const c=(0,_.useRef)(null);return B0(({clock:d})=>{if(l.current&&(l.current.uniforms.uTime.value=d.elapsedTime),c.current){const h=d.elapsedTime*.35%2.2,f=h-.6,p=e,m=(f-.5)*10,b=Math.max(p,m-.05);c.current.position.x=b;const N=b/10+.5,v=N+.25*Math.pow(Math.abs(t/6.5)*2,2.2),y=v-f,T=v-(f-.12),x=Math.max(Math.max(0,1-Math.abs(y*8)),Math.max(0,1-Math.abs(T*8))),S=(Math.sin((N-.48)*7.5-d.elapsedTime*8)+Math.sin((N-.48)*5-d.elapsedTime*8))*.75*x;c.current.position.y=t+.38+S;const C=h>1.92||h<.1,w=b>p-.02;c.current.visible=w&&!C}}),i?g("mesh",{ref:c,position:[e,t,.65],children:[g("planeGeometry",{args:[n,a]},void 0,!1,{fileName:r1,lineNumber:813,columnNumber:7},void 0),g("shaderMaterial",{ref:l,uniforms:u,vertexShader:bx,fragmentShader:Nx,transparent:!0,depthWrite:!1,blending:2},void 0,!1,{fileName:r1,lineNumber:814,columnNumber:7},void 0)]},void 0,!0,{fileName:r1,lineNumber:812,columnNumber:5},void 0):null},Mx=()=>{const e=(0,_.useMemo)(()=>({y:-.63,x:1.2000000000000002,widthWorld:1.2}),[]);return e?g("group",{children:g(yx,{x:e.x,y:e.y,widthWorld:e.widthWorld},void 0,!1,{fileName:r1,lineNumber:848,columnNumber:7},void 0)},void 0,!1,{fileName:r1,lineNumber:847,columnNumber:5},void 0):null},xx=({characterFacingSide:e,flipEffect:t,metrics:o,model:r,previewMetrics:s,onPointerDown:i,onPointerMove:n,onPointerUp:a})=>{const l=a6(ix),{size:u,camera:c}=he();(0,_.useEffect)(()=>{if(c.type==="OrthographicCamera"){const p=c;p.zoom=u.width/10,p.updateProjectionMatrix()}},[u,c]),(0,_.useEffect)(()=>{l.colorSpace=X0,l.anisotropy=8,l.wrapS=Dt,l.wrapT=Dt,l.minFilter=H1,l.magFilter=H1,l.generateMipmaps=!1,l.needsUpdate=!0},[l]);const d=(0,_.useCallback)(p=>{p.stopPropagation(),i(p.point)},[i]),h=(0,_.useCallback)(p=>{p.stopPropagation(),n(p.point)},[n]),f=(0,_.useCallback)(p=>{p?.stopPropagation?.(),a()},[a]);return g(J0,{children:[g("ambientLight",{intensity:.9},void 0,!1,{fileName:r1,lineNumber:903,columnNumber:7},void 0),g("directionalLight",{position:[0,0,3],intensity:1.25,color:"#ffffff"},void 0,!1,{fileName:r1,lineNumber:904,columnNumber:7},void 0),g(dx,{bodyTexture:l,facingSide:e,flipEffect:t},void 0,!1,{fileName:r1,lineNumber:908,columnNumber:7},void 0),g("mesh",{position:[0,0,.2],onPointerDown:d,onPointerMove:h,onPointerUp:f,onPointerMissed:f,children:[g("planeGeometry",{args:[9.8,6.2]},void 0,!1,{fileName:r1,lineNumber:917,columnNumber:9},void 0),g("meshBasicMaterial",{transparent:!0,opacity:.001,depthWrite:!1},void 0,!1,{fileName:r1,lineNumber:918,columnNumber:9},void 0)]},void 0,!0,{fileName:r1,lineNumber:910,columnNumber:7},void 0),g(F1,{position:[-4.2,2.62,.35],fontSize:.24,color:"#1e1e26",anchorX:"left",anchorY:"middle",fontWeight:700,text:"Endpoint A (Tx)"},void 0,!1,{fileName:r1,lineNumber:921,columnNumber:7},void 0),g(F1,{position:[-4.2,2.37,.35],fontSize:.17,color:"#3a3a42",anchorX:"left",anchorY:"middle",fontWeight:500,text:`${ui(r.endpointA)} / ${S4(o.txDistance)}`},void 0,!1,{fileName:r1,lineNumber:922,columnNumber:7},void 0),g(F1,{position:[0,2.55,.35],fontSize:.26,color:"#1a1a22",anchorX:"center",anchorY:"middle",fontWeight:700,text:"Target"},void 0,!1,{fileName:r1,lineNumber:924,columnNumber:7},void 0),g(F1,{position:[4.2,2.62,.35],fontSize:.24,color:"#1e1e26",anchorX:"right",anchorY:"middle",fontWeight:700,text:"Endpoint B (Rx)"},void 0,!1,{fileName:r1,lineNumber:926,columnNumber:7},void 0),g(F1,{position:[4.2,2.37,.35],fontSize:.17,color:"#3a3a42",anchorX:"right",anchorY:"middle",fontWeight:500,text:S4(o.rxDistance)},void 0,!1,{fileName:r1,lineNumber:927,columnNumber:7},void 0),g(vx,{facingSide:e,flipEffect:t,texture:l},void 0,!1,{fileName:r1,lineNumber:929,columnNumber:7},void 0),g(Mx,{},void 0,!1,{fileName:r1,lineNumber:931,columnNumber:7},void 0),g("group",{position:[s.markerX,s.markerY,1.2],rotation:[0,0,mx(s)],renderOrder:1e3,children:g(F1,{position:[0,0,0],fontSize:.52,color:"#3d3d3d",anchorX:"center",anchorY:"middle",fontWeight:700,text:"➤"},void 0,!1,{fileName:r1,lineNumber:934,columnNumber:9},void 0)},void 0,!1,{fileName:r1,lineNumber:933,columnNumber:7},void 0),g(F1,{position:[-3,.55,.45],fontSize:.42,color:"#1a1a22",anchorX:"center",anchorY:"middle",fontWeight:900,letterSpacing:-.02,text:ui(r.entry)},void 0,!1,{fileName:r1,lineNumber:937,columnNumber:7},void 0),g(F1,{position:[-3,.22,.45],fontSize:.16,color:"#3a3a42",anchorX:"right",anchorY:"middle",fontWeight:500,text:"Entry"},void 0,!1,{fileName:r1,lineNumber:938,columnNumber:7},void 0),g(F1,{position:[3,-2,.45],fontSize:.42,color:"#1a1a22",anchorX:"center",anchorY:"middle",fontWeight:900,letterSpacing:-.02,text:ui(r.receive)},void 0,!1,{fileName:r1,lineNumber:940,columnNumber:7},void 0),g(F1,{position:[3,-2.33,.45],fontSize:.16,color:"#3a3a42",anchorX:"left",anchorY:"middle",fontWeight:500,text:"Power at Rx"},void 0,!1,{fileName:r1,lineNumber:941,columnNumber:7},void 0),g(F1,{position:[-4.2,-2.18,.45],fontSize:.26,color:"#1a1a22",anchorX:"left",anchorY:"middle",fontWeight:900,letterSpacing:-.02,text:t9(t0.frequencyHz/1e6)},void 0,!1,{fileName:r1,lineNumber:943,columnNumber:7},void 0),g(F1,{position:[-4.2,-2.45,.45],fontSize:.15,color:"#3a3a42",anchorX:"left",anchorY:"middle",fontWeight:500,letterSpacing:-.01,text:`${sx(t0.frequencyHz)} frequency`},void 0,!1,{fileName:r1,lineNumber:945,columnNumber:7},void 0)]},void 0,!0,{fileName:r1,lineNumber:901,columnNumber:5},void 0)},c_=()=>{const[e,t]=(0,_.useState)(!1),[o,r]=(0,_.useState)(()=>ci(2.1,1.1)),[s,i]=(0,_.useState)(()=>ci(2.1,1.1)),[n,a]=(0,_.useState)(1),[l,u]=(0,_.useState)({active:!1,fromSide:1,toSide:1,progress:0}),c=(0,_.useMemo)(()=>px(o.txDistance,o.rxDistance),[o.txDistance,o.rxDistance]),d=(0,_.useCallback)(m=>ci(m.x,m.y),[]),h=(0,_.useCallback)(m=>{const b=d(m);t(!0),i(b),r(b)},[d]),f=(0,_.useCallback)(m=>{const b=d(m);i(b),e&&(b.side!==n&&!l.active&&u({active:!0,fromSide:n,toSide:b.side,progress:0}),r(b))},[n,e,l.active,d]),p=(0,_.useCallback)(()=>{t(!1)},[]);return(0,_.useEffect)(()=>{const m=()=>t(!1);return window.addEventListener("pointerup",m),()=>window.removeEventListener("pointerup",m)},[]),(0,_.useEffect)(()=>{if(!l.active)return;let m=0;const b=performance.now(),N=l.toSide,v=y=>{const T=go((y-b)/nx,0,1);if(T>=1){a(N),u({active:!1,fromSide:N,toSide:N,progress:0});return}u(x=>x.active?{...x,progress:T}:x),m=window.requestAnimationFrame(v)};return m=window.requestAnimationFrame(v),()=>{window.cancelAnimationFrame(m)}},[l.active,l.toSide]),g(C2,{aspectRatio:"10 / 6.4",children:g("div",{style:{width:"100%",height:"100%",position:"relative"},children:[g("div",{style:{position:"absolute",top:-9999,left:-9999,visibility:"hidden"},children:[g("span",{children:"Endpoint A (Tx)"},void 0,!1,{fileName:r1,lineNumber:1047,columnNumber:11},void 0),g("span",{children:"Endpoint B (Rx)"},void 0,!1,{fileName:r1,lineNumber:1048,columnNumber:11},void 0),g("span",{children:"+24.0 dBm"},void 0,!1,{fileName:r1,lineNumber:1049,columnNumber:11},void 0),g("span",{children:"-48.0 dBm"},void 0,!1,{fileName:r1,lineNumber:1050,columnNumber:11},void 0),g("span",{children:"tx distance"},void 0,!1,{fileName:r1,lineNumber:1051,columnNumber:11},void 0),g("span",{children:"rx distance"},void 0,!1,{fileName:r1,lineNumber:1052,columnNumber:11},void 0),g("span",{children:"frequency"},void 0,!1,{fileName:r1,lineNumber:1053,columnNumber:11},void 0),g("span",{children:"13.56 MHz"},void 0,!1,{fileName:r1,lineNumber:1054,columnNumber:11},void 0),g("span",{children:"total path loss"},void 0,!1,{fileName:r1,lineNumber:1055,columnNumber:11},void 0),g("span",{children:"drag inside the panel to move the target cursor"},void 0,!1,{fileName:r1,lineNumber:1056,columnNumber:11},void 0),g("img",{src:"data:image/png;base64,",alt:"Body attenuation visualization"},void 0,!1,{fileName:r1,lineNumber:1057,columnNumber:11},void 0)]},void 0,!0,{fileName:r1,lineNumber:1046,columnNumber:9},void 0),g(yo,{orthographic:!0,dpr:[1,2],camera:{position:[0,0,10]},gl:{antialias:!0,alpha:!0},style:{cursor:"none",touchAction:"none"},children:g(_.Suspense,{fallback:null,children:g(xx,{characterFacingSide:n,flipEffect:l,metrics:o,model:c,previewMetrics:s,onPointerDown:h,onPointerMove:f,onPointerUp:p},void 0,!1,{fileName:r1,lineNumber:1067,columnNumber:13},void 0)},void 0,!1,{fileName:r1,lineNumber:1066,columnNumber:11},void 0)},void 0,!1,{fileName:r1,lineNumber:1059,columnNumber:9},void 0)]},void 0,!0,{fileName:r1,lineNumber:1045,columnNumber:7},void 0)},void 0,!1,{fileName:r1,lineNumber:1044,columnNumber:5},void 0)},Sx=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],T4=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function Tx(e){if(e<=255)return Sx[e];let t=0,o=T4.length-1;for(;t<=o;){const r=t+o>>1,s=T4[r];if(es[1]){t=r+1;continue}return s[2]}return"L"}function wx(e){const t=e.length;if(t===0)return null;const o=new Array(t);let r=!1;for(let u=0;u=55296&&c<=56319&&u+1=56320&&p<=57343&&(d=(c-55296<<10)+(p-56320)+65536,h=2)}const f=Tx(d);(f==="R"||f==="AL"||f==="AN")&&(r=!0);for(let p=0;p=0&&o[c]==="ET";c--)o[c]="EN";for(c=u+1;c0?o[u-1]:a,h=c0&&t.charCodeAt(t.length-1)===32&&(t=t.slice(0,-1)),t}function Ex(e){return/[\r\f]/.test(e)?e.replace(/\r\n/g,` +`).replace(/[\r\f]/g,` +`):e}var hi=null,Wx;function Lx(){return hi===null&&(hi=new Intl.Segmenter(Wx,{granularity:"word"})),hi}var Ux=new RegExp("\\p{Script=Arabic}","u"),qt=new RegExp("\\p{M}","u"),qn=new RegExp("\\p{Nd}","u");function w4(e){return Ux.test(e)}function _4(e){return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=177983||e>=177984&&e<=178207||e>=178208&&e<=183983||e>=183984&&e<=191471||e>=191472&&e<=192093||e>=194560&&e<=195103||e>=196608&&e<=201551||e>=201552&&e<=205743||e>=205744&&e<=210041||e>=63744&&e<=64255||e>=12288&&e<=12351||e>=12352&&e<=12447||e>=12448&&e<=12543||e>=12592&&e<=12687||e>=44032&&e<=55215||e>=65280&&e<=65519}function Ye(e){for(let t=0;t=55296&&o<=56319&&t+1=56320&&r<=57343){if(_4((o-55296<<10)+(r-56320)+65536))return!0;t++;continue}}if(_4(o))return!0}}return!1}function Ox(e){const t=Bo(e);return t!==null&&(Hn.has(t)||A2.has(t))}var Fx=new Set([" "," ","⁠","\uFEFF"]),Px=new Set(["-","‐","–","—"]);function Dx(e){const t=Bo(e);return t!==null&&Fx.has(t)}function kx(e){const t=Bo(e);return t!==null&&Px.has(t)}function o9(e,t){return Dx(e)?!1:t?!(Ox(e)||kx(e)):!0}var Hn=new Set([",",".","!",":",";","?","、","。","・",")","〕","〉","》","」","』","】","〗","〙","〛","ー","々","〻","ゝ","ゞ","ヽ","ヾ"]),ns=new Set(['"',"(","[","{","¡","¿","“","‘","‚","„","«","‹","⸘","(","〔","〈","《","「","『","【","〖","〘","〚"]),Jn=new Set(["'","’"]),A2=new Set([".",",","!","?",":",";","،","؛","؟","।","॥","၊","။","၌","၍","၏",")","]","}","%",'"',"”","’","»","›","…"]),Xx=new Set([":",".","،","؛"]),Ix=new Set(["၏"]),Gx=new Set(["”","’","»","›","」","』","】","》","〉","〕",")"]);function zx(e){if(jn(e))return!0;let t=!1;for(const o of e){if(A2.has(o)||ls(o)){t=!0;continue}if(!(t&&qt.test(o)))return!1}return t}function $x(e){for(const t of e)if(!Hn.has(t)&&!A2.has(t))return!1;return e.length>0}function Vx(e){if(jn(e))return!0;for(const t of e)if(!ns.has(t)&&!Jn.has(t)&&!qt.test(t)&&!ls(t))return!1;return e.length>0}function jn(e){let t=!1;for(const o of e)if(!(o==="\\"||qt.test(o))){if(ns.has(o)||A2.has(o)||Jn.has(o)){t=!0;continue}return!1}return t}function as(e,t){const o=t-1;if(o<=0)return Math.max(o,0);const r=e.charCodeAt(o);if(r<56320||r>57343)return o;const s=o-1;if(s<0)return o;const i=e.charCodeAt(s);return i>=55296&&i<=56319?s:o}function Bo(e){if(e.length===0)return null;const t=as(e,e.length);return e.slice(t)}function Qx(e){for(const t of e)if(!qt.test(t))return t;return null}function Zx(e){for(let t=e.length;t>0;){const o=as(e,t),r=e.slice(o,t);if(!qt.test(r))return r;t=o}return null}var qx=[36,37,43,43,92,92,162,165,176,177,1423,1423,1545,1547,1642,1642,2046,2047,2546,2547,2553,2555,2801,2801,3065,3065,3449,3449,3647,3647,6107,6107,8240,8247,8279,8279,8352,8399,8451,8451,8457,8457,8470,8470,8722,8723,43064,43064,65020,65020,65129,65130,65284,65285,65504,65505,65509,65510,73693,73696,123647,123647,126124,126124,126128,126128];function Hx(e,t){for(let o=0;o=t[o]&&e<=t[o+1])return!0;return!1}function ls(e){const t=e.codePointAt(0);return t!==void 0&&Hx(t,qx)}function Jx(e){const t=Zx(e);return t!==null&&ls(t)}function jx(e){const t=Qx(e);return t!==null&&qn.test(t)}function Kx(e){const t=Array.from(e);let o=t.length;for(;o>0;){const r=t[o-1];if(qt.test(r)){o--;continue}if(ns.has(r)||Jn.has(r)){o--;continue}break}return o<=0||o===t.length?null:{head:t.slice(0,o).join(""),tail:t.slice(o).join("")}}function Yx(e,t,o){return o==="text"&&!t&&e.length===1&&e!=="-"&&e!=="—"?e:null}function A4(e,t,o,r){const s=t[r],i=e[r];if(s==null)return i;const n=o[r];if(i.length===n)return i;const a=s.repeat(n);return e[r]=a,a}function C4(e,t){return e&&t!==null&&Xx.has(t)}function eS(e){const t=Bo(e);return t!==null&&Ix.has(t)}function tS(e){if(e.length<2||e[0]!==" ")return null;const t=e.slice(1);return new RegExp("^\\p{M}+$","u").test(t)?{space:" ",marks:t}:null}function Hi(e){let t=e.length;for(;t>0;){const o=as(e,t),r=e.slice(o,t);if(Gx.has(r))return!0;if(!A2.has(r))return!1;t=o}return!1}function oS(e,t){if(t.preserveOrdinarySpaces||t.preserveHardBreaks){if(e===" ")return"preserved-space";if(e===" ")return"tab";if(t.preserveHardBreaks&&e===` +`)return"hard-break"}return e===" "?"space":e===" "||e===" "||e==="⁠"||e==="\uFEFF"?"glue":e==="​"?"zero-width-break":e==="­"?"soft-hyphen":"text"}var rS=/[\x20\t\n\xA0\xAD\u200B\u202F\u2060\uFEFF]/;function _e(e){return e.length===1?e[0]:e.join("")}function sS(e,t){const o=[];for(let r=e.length-1;r>=0;r--)o.push(e[r]);return o.push(t),_e(o)}function iS(e,t,o,r){if(!rS.test(e))return[{text:e,isWordLike:t,kind:"text",start:o}];const s=[];let i=null,n=[],a=o,l=!1,u=0;for(const c of e){const d=oS(c,r),h=d==="text"&&t;if(i!==null&&d===i&&h===l){n.push(c),u+=c.length;continue}i!==null&&s.push({text:_e(n),isWordLike:l,kind:i,start:a}),i=d,n=[c],a=o+u,l=h,u+=c.length}return i!==null&&s.push({text:_e(n),isWordLike:l,kind:i,start:a}),s}function Ji(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var nS=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function aS(e,t){const o=e.texts[t];return o.startsWith("www.")?!0:nS.test(o)&&t+1=e.len||Ji(e.kinds[a]))continue;const l=[],u=e.starts[a];let c=a;for(;c0&&(t.push(_e(l)),o.push(!0),r.push("text"),s.push(u),i=c-1)}return{len:t.length,texts:t,isWordLike:o,kinds:r,starts:s}}var dS=new Set([":","-","/","×",",",".","+","–","—"]),hS=/[\p{P}\p{S}\p{Co}]/u,fS=new RegExp("\\p{Emoji_Presentation}","u"),pS=new Set(["?","֊","-","‐","‒","–","—","…","‼","‽","⁉"]);function mS(e){return e>=33&&e<=47&&e!==45||e>=58&&e<=64&&e!==63||e>=91&&e<=96||e>=123&&e<=126}function r9(e){const t=e.charCodeAt(0);return t<128?mS(t):!pS.has(e)&&!fS.test(e)&&hS.test(e)}function R4(e){let t=!1;for(const o of e)if(!qt.test(o)){if(!r9(o))return!1;t=!0}return t}function gS(e){for(let t=e.length;t>0;){const o=as(e,t),r=e.slice(o,t);if(qt.test(r)){t=o;continue}return r9(r)||ls(r)}return!1}function vS(e,t,o,r){const s=!t&&R4(e),i=!r&&R4(o),n=Jx(e),a=(t||n)&&gS(e);return!s&&!i&&!a||Ye(e)||Ye(o)?!1:(t||s||n)&&(r||i)}function s9(e){for(const t of e)if(qn.test(t))return!0;return!1}function $r(e){if(e.length===0)return!1;for(const t of e)if(!(qn.test(t)||dS.has(t)))return!1;return!0}function bS(e){const t=[],o=[],r=[],s=[];for(let i=0;ii+1){t.push(_e(u)),o.push(d),r.push("text"),s.push(e.starts[i]),i=c;continue}}t.push(n),o.push(l),r.push(a),s.push(e.starts[i]),i++}return{len:t.length,texts:t,isWordLike:o,kinds:r,starts:s}}function yS(e){const t=[],o=[],r=[],s=[];for(let i=0;i1;for(let u=0;u0&&l[U]==="text"&&L&&h[U]&&p[U]||C&&s>0&&l[U]==="text"&&$x(S.text)&&h[U]||C&&s>0&&l[U]==="text"&&m[U]?D():C&&s>0&&l[U]==="text"&&S.isWordLike&&F&&b[U]?(D(),a[U]=!0):w!==null&&s>0&&l[U]==="text"&&c[U]===w?d[U]=(d[U]??1)+1:C&&!S.isWordLike&&s>0&&l[U]==="text"&&!h[U]&&(zx(S.text)||S.text==="-"&&a[U])?D():(i[s]=S.text,n[s]=[S.text],a[s]=S.isWordLike,l[s]=S.kind,u[s]=S.start,c[s]=w,d[s]=w===null?0:1,h[s]=L,f[s]=F,p[s]=X,m[s]=V,b[s]=C4(F,P),s++)}for(let x=0;xnull);let v=-1;for(let x=s-1;x>=0;x--){const S=i[x];if(S.length!==0){if(l[x]==="text"&&!a[x]&&v>=0&&l[v]==="text"&&(Vx(S)||S==="-"&&jx(i[v]))){const C=N[v]??[];C.push(S),N[v]=C,u[v]=u[x],i[x]="";continue}v=x}}for(let x=0;x=0&&!o9(t.texts[h-1],o)&&d(h),a<0&&(a=h),l=l||Ye(f);continue}d(h),r.push(f),s.push(t.isWordLike[h]),i.push(p),n.push(t.starts[h])}return d(t.len),{len:r.length,texts:r,isWordLike:s,kinds:i,starts:n}}function _S(e,t,o="normal",r="normal"){const s=Rx(o),i=s.mode==="pre-wrap"?Ex(e):Bx(e);if(i.length===0)return{normalized:i,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};const n=SS(i,t,s),a=r==="keep-all"?wS(i,n,t.breakKeepAllAfterPunctuation):n;return{normalized:i,chunks:TS(a,s),...a}}var H2=null,B4=new Map,J2=null,AS=96,CS=new RegExp("\\p{Emoji_Presentation}","u"),RS=/[\p{Emoji_Presentation}\p{Extended_Pictographic}\p{Regional_Indicator}\uFE0F\u20E3]/u,fi=null,E4=new Map;function Kn(){if(H2!==null)return H2;if(typeof OffscreenCanvas<"u")return H2=new OffscreenCanvas(1,1).getContext("2d"),H2;if(typeof document<"u")return H2=document.createElement("canvas").getContext("2d"),H2;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function BS(e){let t=B4.get(e);return t||(t=new Map,B4.set(e,t)),t}function Ut(e,t){let o=t.get(e);return o===void 0&&(o={width:Kn().measureText(e).width,containsCJK:Ye(e)},t.set(e,o)),o}function us(){if(J2!==null)return J2;if(typeof navigator>"u")return J2={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,breakKeepAllAfterPunctuation:!0,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},J2;const e=navigator.userAgent,t=navigator.vendor==="Apple Computer, Inc."&&e.includes("Safari/")&&!e.includes("Chrome/")&&!e.includes("Chromium/")&&!e.includes("CriOS/")&&!e.includes("FxiOS/")&&!e.includes("EdgiOS/"),o=e.includes("Chrome/")||e.includes("Chromium/")||e.includes("CriOS/")||e.includes("Edg/");return J2={lineFitEpsilon:t?1/64:.005,carryCJKAfterClosingQuote:o,breakKeepAllAfterPunctuation:!t,preferPrefixWidthsForBreakableRuns:t,preferEarlySoftHyphenBreak:t},J2}function ES(e){const t=e.match(/(\d+(?:\.\d+)?)\s*px/);return t?parseFloat(t[1]):16}function i9(){return fi===null&&(fi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),fi}function WS(e){return CS.test(e)||e.includes("️")}function LS(e){return RS.test(e)}function US(e,t){let o=E4.get(e);if(o!==void 0)return o;const r=Kn();r.font=e;const s=r.measureText("😀").width;if(o=0,s>t+.5&&typeof document<"u"&&document.body!==null){const i=document.createElement("span");i.style.font=e,i.style.display="inline-block",i.style.visibility="hidden",i.style.position="absolute",i.textContent="😀",document.body.appendChild(i);const n=i.getBoundingClientRect().width;document.body.removeChild(i),s-n>.5&&(o=s-n)}return E4.set(e,o),o}function OS(e){let t=0;const o=i9();for(const r of o.segment(e))WS(r.segment)&&t++;return t}function FS(e,t){return t.emojiCount===void 0&&(t.emojiCount=OS(e)),t.emojiCount}function f2(e,t,o){return o===0?t.width:t.width-FS(e,t)*o}function PS(e,t,o,r,s){if(t.breakableFitAdvances!==void 0&&t.breakableFitMode===s)return t.breakableFitAdvances;t.breakableFitMode=s;const i=i9(),n=[];for(const c of i.segment(e))n.push(c.segment);if(n.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(s==="sum-graphemes"){const c=[];for(const d of n){const h=Ut(d,o);c.push(f2(d,h,r))}return t.breakableFitAdvances=c,t.breakableFitAdvances}if(s==="pair-context"||n.length>AS){const c=[];let d=null,h=0;for(const f of n){const p=f2(f,Ut(f,o),r);if(d===null)c.push(p);else{const m=d+f,b=Ut(m,o);c.push(f2(m,b,r)-h)}d=f,h=p}return t.breakableFitAdvances=c,t.breakableFitAdvances}const a=[];let l="",u=0;for(const c of n){l+=c;const d=Ut(l,o),h=f2(l,d,r);a.push(h-u),u=h}return t.breakableFitAdvances=a,t.breakableFitAdvances}function DS(e,t){const o=Kn();o.font=e;const r=BS(e),s=ES(e);return{cache:r,fontSize:s,emojiCorrection:t?US(e,s):0}}function kS(e){return e==="space"||e==="zero-width-break"||e==="soft-hyphen"}function n9(e){return e==="space"||e==="preserved-space"||e==="tab"||e==="zero-width-break"||e==="soft-hyphen"}function a9(e,t,o=e.widths.length){for(;t0?e.letterSpacing:0}function Yn(e,t){return t===0?0:e+t}function GS(e,t){return e.letterSpacing!==0&&e.spacingGraphemeCounts[t]>0?e.letterSpacing:0}function zS(e,t,o,r,s){return Yn(r,t==="tab"?s+GS(e,o):e.lineEndFitAdvances[o])}function W4(e,t,o,r){return Yn(r,t==="tab"?0:e.lineEndFitAdvances[o])}function L4(e,t,o,r,s){return Yn(r,t==="tab"?s:e.lineEndPaintAdvances[o])}function $S(e,t,o){return e.letterSpacing!==0&&t?o+e.letterSpacing:o}function VS(e,t){return e.letterSpacing===0?t:t+e.letterSpacing}function Vr(e,t,o){let r=t;for(;r0)return e.spacingGraphemeCounts[r]>0?e.letterSpacing:0;for(let i=r-1;i>=t;i--){const n=e.kinds[i];if(!(n==="space"||n==="zero-width-break"||n==="hard-break")){if(n==="soft-hyphen"){if(i===r-1)return 0;continue}return i===t&&o>0||e.spacingGraphemeCounts[i]>0?e.letterSpacing:0}}return 0}function ZS(e,t,o,r,s,i){return t+QS(e,o,r,s,i)}function qS(e,t){return l9(e,t)}function HS(e,t,o){const{widths:r,kinds:s,breakableFitAdvances:i,breakablePreferredBreaks:n}=e;if(r.length===0)return 0;const a=t+us().lineFitEpsilon;let l=0,u=0,c=!1,d=0,h=0,f=0,p=0,m=-1,b=0;function N(){m=-1,b=0}function v(w=f,L=p,F=u){l++,o?.(F,d,h,w,L),u=0,c=!1,N()}function y(w,L){c=!0,d=w,h=0,f=w+1,p=0,u=L}function T(w,L,F){c=!0,d=w,h=L,f=w,p=L+1,u=F}function x(w,L){if(!c){y(w,L);return}u+=L,f=w+1,p=0}function S(w,L){const F=i[w],P=n[w]??null;let X=P===null?-1:Vr(P,0,L+1),V=-1,U=0,D=L;for(;Da){if(P!==null&&V>L){v(w,V,U),D=V,X=Vr(P,X,D+1),V=-1,U=0;continue}v(),T(w,D,Q)}else u+=Q,f=w,p=D+1;const k=D+1;P!==null&&P[X]===k&&(V=k,U=u,X++),D++}c&&f===w&&p===F.length&&(f=w+1,p=0)}let C=0;for(;C=r.length));){const w=r[C],L=s[C],F=n9(L);if(!c){w>a&&i[C]!==null?S(C,0):y(C,w),F&&(m=C+1,b=u-w),C++;continue}if(u+w>a){if(F){x(C,w),v(C+1,0,u-w),C++;continue}if(m>=0){if(f>m||f===m&&p>0){v();continue}v(m,0,b);continue}if(w>a&&i[C]!==null){v(),S(C,0),C++;continue}v();continue}x(C,w),F&&(m=C+1,b=u-w),C++}return c&&v(),l}function l9(e,t,o){if(e.simpleLineWalkFastPath)return HS(e,t,o);const{widths:r,kinds:s,breakableFitAdvances:i,breakablePreferredBreaks:n,discretionaryHyphenWidth:a,chunks:l}=e;if(r.length===0||l.length===0)return 0;const u=us(),c=t+u.lineFitEpsilon;let d=0,h=0,f=!1,p=0,m=0,b=0,N=0,v=-1,y=0,T=0,x=null;function S(){v=-1,y=0,T=0,x=null}function C(){return x==="soft-hyphen"&&v===b&&N===0?T:h}function w(D=b,Q=N,k){d++,o!==void 0&&o(ZS(e,k??C(),p,m,D,Q),p,m,D,Q),h=0,f=!1,S()}function L(D,Q){f=!0,p=D,m=0,b=D+1,N=0,h=Q}function F(D,Q,k){f=!0,p=D,m=Q,b=D,N=Q+1,h=k}function P(D,Q){if(!f){L(D,Q);return}h+=Q,b=D+1,N=0}function X(D,Q,k,c1,h1,g1){if(!Q)return;const L1=W4(e,D,k,h1),H=L4(e,D,k,h1,c1);v=k+1,y=h-g1+L1,T=h-g1+H,x=D}function V(D,Q){const k=i[D],c1=n[D]??null;let h1=c1===null?-1:Vr(c1,0,Q+1),g1=-1,L1=0,H=Q;for(;Hc){if(c1!==null&&g1>Q){w(D,g1,L1),H=g1,h1=Vr(c1,h1,H+1),g1=-1,L1=0;continue}w(),F(D,H,J)}else h=M1,b=D,N=H+1}const J1=H+1;c1!==null&&c1[h1]===J1&&(g1=J1,L1=h,h1++),H++}f&&b===D&&N===k.length&&(b=D+1,N=0)}function U(D){d++,o?.(0,D.startSegmentIndex,0,D.consumedEndSegmentIndex,0),S()}for(let D=0;D=Q.endSegmentIndex));){const c1=s[k],h1=n9(c1),g1=IS(e,f,k),L1=c1==="tab"?XS(h+g1,e.tabStopAdvance):r[k],H=g1+L1,J=zS(e,c1,k,g1,L1);if(c1==="soft-hyphen"){f&&(b=k+1,N=0,v=k+1,y=h+a,T=h+a,x=c1),k++;continue}if(!f){J>c&&i[k]!==null?V(k,0):L(k,L1),X(c1,h1,k,L1,g1,H),k++;continue}if(h+J>c){const J1=h+W4(e,c1,k,g1),$=h+L4(e,c1,k,g1,L1);if(x==="soft-hyphen"&&u.preferEarlySoftHyphenBreak&&y<=c){w(v,0,T);continue}if(h1&&J1<=c){P(k,H),w(k+1,0,$),k++;continue}if(v>=0&&y<=c){if(b>v||b===v&&N>0){w();continue}const M1=v;w(M1,0,T),k=M1;continue}if(J>c&&i[k]!==null){w(),V(k,0),k++;continue}w();continue}P(k,H),X(c1,h1,k,L1,g1,H),k++}if(f){const c1=v===Q.consumedEndSegmentIndex?T:h;w(Q.consumedEndSegmentIndex,0,c1)}}return d}var pi=null,U4=new WeakMap;function JS(){return pi===null&&(pi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),pi}function O4(e,t,o){let r=o.get(e);if(r!==void 0)return r;r=[];const s=JS();for(const i of s.segment(t[e]))r.push(i.segment);return o.set(e,r),r}function jS(e,t,o){return o>t&&e[o-1]==="soft-hyphen"}function F4(e,t,o,r){for(let s=o;s0){const u=O4(l,e.segments,t);n=F4(n,u,r,u.length)}else n+=e.segments[l];if(i>0){a&&(n+="-");const l=O4(s,e.segments,t);n=F4(n,l,o===s?r:0,i)}else a&&(n+="-");return n}var mi=null;function ea(){return mi===null&&(mi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),mi}function eT(e){return e?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],breakablePreferredBreaks:[],letterSpacing:0,spacingGraphemeCounts:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],breakablePreferredBreaks:[],letterSpacing:0,spacingGraphemeCounts:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function tT(e,t){const o=[];let r=[],s=0,i=!1,n=!1,a=!1;function l(){r.length!==0&&(o.push({text:r.length===1?r[0]:r.join(""),start:s}),r=[],i=!1,n=!1,a=!1)}function u(d,h,f){r=[d],s=h,i=f,n=Hi(d),a=ns.has(d)}function c(d,h){r.push(d),i=i||h;const f=Hi(d);d.length===1&&A2.has(d)?n=n||f:n=f,a=!1}for(const d of ea().segment(e)){const h=d.segment,f=Ye(h);if(r.length===0){u(h,d.index,f);continue}if(a||Hn.has(h)||A2.has(h)||t.carryCJKAfterClosingQuote&&f&&n){c(h,f);continue}if(!i&&!f){c(h,f);continue}l(),u(h,d.index,f)}return l(),o}function oT(e,t,o){if(t.length<=1)return t;const r=[];let s=-1,i=!1;function n(l,u){const c=t[l].start,d=u=0&&!o9(t[l-1].text,o)&&a(l),s<0&&(s=l),i=i||Ye(u.text)}return a(t.length),r}function P4(e,t){if(t==="zero-width-break"||t==="soft-hyphen"||t==="hard-break")return 0;if(t==="tab")return 1;let o=0;const r=ea();for(const s of r.segment(e))o++;return o}function rT(e){return e==="-"||e==="֊"||e==="‐"||e==="‒"||e==="–"||e==="—"}function sT(e){if(!/[-\u058A\u2010\u2012\u2013\u2014]/u.test(e))return null;const t=[];let o=0;for(const r of ea().segment(e))o++,rT(r.segment)&&t.push(o);return t.length===0?null:t}function iT(e,t,o){return t>1?e+(t-1)*o:e}function nT(e,t,o,r,s){const i=us(),{cache:n,emojiCorrection:a}=DS(t,LS(e.normalized)),l=f2("-",Ut("-",n),a)+(s===0?0:s*2),u=f2(" ",Ut(" ",n),a)*8,c=s!==0;if(e.len===0)return eT(o);const d=[],h=[],f=[],p=[];let m=e.chunks.length<=1&&!c;const b=o?[]:null,N=[],v=[],y=[],T=o?[]:null,x=Array.from({length:e.len});function S(F,P,X,V,U,D,Q,k,c1){U!=="text"&&U!=="space"&&U!=="zero-width-break"&&(m=!1),d.push(P),h.push(X),f.push(V),p.push(U),b?.push(D),N.push(Q),v.push(k),c&&y.push(c1),T!==null&&T.push(F)}function C(F,P,X,V,U){const D=Ut(F,n),Q=c?P4(F,P):0,k=iT(f2(F,D,a),Q,s),c1=P==="space"||P==="preserved-space"||P==="zero-width-break"?0:k,h1=c1===0?0:c1+(Q>0?s:0),g1=P==="space"||P==="zero-width-break"?0:k;if(U&&V&&F.length>1){let L1="sum-graphemes";s!==0?L1="segment-prefixes":$r(F)?L1="pair-context":i.preferPrefixWidthsForBreakableRuns&&(L1="segment-prefixes");const H=PS(F,D,n,a,L1);S(F,k,h1,g1,P,X,H,H===null||r==="keep-all"?null:sT(F),Q);return}S(F,k,h1,g1,P,X,null,null,Q)}for(let F=0;F{r.push(dT(e,s,n,a,l,u,c))});return{lineCount:i,height:i*o,lines:r}}var fT=e=>{const{text:t,font:o,fontSize:r=16,whiteSpace:s="normal"}=e,i=(0,_.useRef)(null),n=(0,_.useRef)(null),a=(0,_.useMemo)(()=>{try{const h=r?`${r}px ${o}`:o;return uT(t,h,{whiteSpace:s})}catch{return null}},[t,o,r,s]);i.current=a;const l=(0,_.useMemo)(()=>{if(!a)return null;try{const h=document.createElement("canvas").getContext("2d");if(!h)return null;h.font=r?`${r}px ${o}`:o;const f=h.measureText(t);return{width:f.width,height:r*1.2,ascent:f.actualBoundingBoxAscent||r*.8,descent:f.actualBoundingBoxDescent||r*.2,lineHeight:r*1.2}}catch{return null}},[a,t,o,r]);n.current=l;const u=(0,_.useCallback)((h,f)=>{if(!a)return{width:0,height:0,lineCount:0};try{const p=cT(a,h,f||r*1.2);return{width:h,height:p.height,lineCount:p.lineCount}}catch{return{width:0,height:0,lineCount:0}}},[a,r]),c=(0,_.useCallback)((h,f)=>{if(!a)return{width:0,height:0,lineCount:0,lines:[]};try{const p=hT(a,h,f||r*1.2);return{width:h,height:p.height,lineCount:p.lines.length,lines:p.lines.map(m=>({text:m.text,width:m.width,startIndex:0,endIndex:m.text.length}))}}catch{return{width:0,height:0,lineCount:0,lines:[]}}},[a,r]),d=(0,_.useCallback)((h=window.devicePixelRatio||1)=>l?{...l,width:l.width*h,height:l.height*h,ascent:l.ascent*h,descent:l.descent*h,lineHeight:l.lineHeight*h}:null,[l]);return{layout:u,layoutWithLines:c,metrics:n.current,isReady:!!a,getDPIScaledMetrics:d}},K1=_.forwardRef(({text:e,font:t="Inter, sans-serif",fontSize:o=16,color:r="#000000",maxWidth:s,lineHeight:i,whiteSpace:n="normal",x:a=0,y:l=0,anchorX:u="left",anchorY:c="top",rotation:d=0,opacity:h=1},f)=>{const{layout:p,layoutWithLines:m,metrics:b,isReady:N}=fT({text:e,font:t,fontSize:o,color:r,maxWidth:s,lineHeight:i,whiteSpace:n}),v=(0,_.useRef)({x:a,y:l,width:0,height:0}),y=(0,_.useCallback)(x=>{if(!N||!b)return;x.save(),x.translate(a,l),d!==0&&x.rotate(d*Math.PI/180),x.globalAlpha=h,x.font=`${o}px ${t}`,x.fillStyle=r,x.textAlign=u,x.textBaseline=c==="middle"?"middle":c==="bottom"?"bottom":"top";let S=0,C=0;if((u==="center"||u==="right")&&(S=0),(c==="middle"||c==="bottom")&&(C=0),s){const w=p(s,i||o*1.2);m(s,i||o*1.2).lines.forEach((L,F)=>{const P=C+F*(i||o*1.2);x.fillText(L.text,S,P)}),v.current={x:a,y:l,width:w.width,height:w.height}}else x.fillText(e,S,C),v.current={x:a,y:l,width:b.width,height:b.height};x.restore()},[e,t,o,r,s,i,n,a,l,u,c,d,h,p,b,N]),T=(0,_.useCallback)(()=>v.current,[]);return(0,_.useEffect)(()=>{f&&(typeof f=="function"?f({draw:y,getBounds:T}):f.current={draw:y,getBounds:T})},[f,y,T]),null});K1.displayName="PretextCanvasText";var D1="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/EndpointRangeCanvas.tsx",ge={bg:"#F3F4F6",text:"#111827",muted:"#6B7280",accent:"#3B82F6"},pT=a1.div` + width: 100%; + height: 100%; + position: relative; + overflow: hidden; +`,mT=Yi` + 0% { transform: translate(50%, -50%) scale(0.95); opacity: 0.8; } + 50% { transform: translate(50%, -50%) scale(1.05); opacity: 0.6; } + 100% { transform: translate(50%, -50%) scale(0.95); opacity: 0.8; } +`,gT=Yi` + 0% { transform: translate(50%, -50%) scale(0.6); opacity: 0; } + 30% { opacity: 1; } + 70% { opacity: 1; } + 100% { transform: translate(50%, -50%) scale(1.4); opacity: 0; } +`,vT=a1.div` + position: absolute; + right: 15%; + top: 50%; + width: ${e=>e.$size}%; + height: ${e=>e.$size*1.5}%; + background: ${e=>e.$color}; + box-shadow: 0 0 100px 50px ${e=>e.$color}; + border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%; + transform: translate(50%, -50%); + filter: blur(40px); + opacity: 0.85; + z-index: 1; + animation: ${mT} 4s ease-in-out infinite; +`,bT=a1.div` + position: absolute; + right: 15%; + top: 25%; /* align with tower antenna */ + width: ${e=>e.$range*1.2}%; + height: ${e=>e.$range*1.2*1.5}%; + transform: translate(50%, -50%); + border-radius: 50%; + background: radial-gradient( + circle, + rgba(255, 0, 0, 0.4) 0%, + rgba(255, 154, 0, 0.4) 20%, + rgba(208, 222, 33, 0.4) 40%, + rgba(79, 220, 74, 0.4) 60%, + rgba(63, 218, 216, 0.4) 80%, + rgba(47, 201, 226, 0.4) 100% + ); + filter: blur(20px); + z-index: 0; + pointer-events: none; + animation: ${gT} 2.5s ease-out infinite; +`,NT=a1.canvas` + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 8; +`;function d_(){const e=typeof process<"u"&&{}.JEST_WORKER_ID!==void 0,t=I4(),{freq:o,power:r,antWidth:s,antHeight:i,elevation:n,azimuth:a}=Ki({freq:{value:1.6,min:.1,max:3e3,step:.1,label:"Freq (MHz)"},power:{value:5,min:.1,max:100,step:.1,label:"Power (W)"},antWidth:{value:1.5,min:.5,max:10,step:.1,label:"Ant Width (ft)"},antHeight:{value:4,min:.5,max:20,step:.1,label:"Ant Height (ft)"},elevation:{value:25,min:1,max:500,step:1,label:"Elevation (ft)"},azimuth:{value:5,min:0,max:360,step:1,label:"Azimuth (ft/deg)"}},{store:t}),{losStr:l,multipathStr:u,skyStr:c,range0Val:d,range22Val:h,coverageSize:f,blobColor:p}=(0,_.useMemo)(()=>{let H="Somewhat no";o>=300?H="Yes":o<30&&(H="No");const J=o>10?"Yes":"No",J1=o<30?"Yes":"No",$=10*Math.log10(r*1e3),M1=$+(10*Math.log10(s*i*.5)+n/100),e0=M1- -40,E1=Math.pow(10,(e0-20*Math.log10(o)-32.44)/20),X1=M1- -22,l1=Math.pow(10,(X1-20*Math.log10(o)-32.44)/20);let e1=Math.round(E1*3280.84),U0=Math.round(l1*3280.84);o<30&&(e1=Math.round(e1*.05),U0=Math.round(U0*.05));const G0=30+Math.min(Math.max(($-20)/30,0),1)*70;let _0="rgba(100, 150, 255, 0.8)";return o<10?_0="rgba(147, 51, 234, 0.8)":o<100?_0="rgba(56, 189, 248, 0.8)":_0="rgba(16, 185, 129, 0.8)",{losStr:H,multipathStr:J,skyStr:J1,range0Val:isNaN(e1)?0:e1,range22Val:isNaN(U0)?0:U0,coverageSize:G0,blobColor:_0}},[o,r,s,i,n,a]),m=(0,_.useRef)(null),b=(0,_.useRef)(null),N=(0,_.useRef)({}),v=H=>J=>{J&&(N.current[H]=J)},[y,T]=(0,_.useState)({w:800,h:450}),x=(0,_.useRef)([]),S=(0,_.useRef)([]);(0,_.useEffect)(()=>{if(!m.current)return;const H=new ResizeObserver(J=>{J[0]&&T({w:J[0].contentRect.width,h:J[0].contentRect.height})});return H.observe(m.current),()=>H.disconnect()},[]);const C=(0,_.useCallback)(()=>{const H=b.current;if(!H)return;const J=H.getContext("2d");if(!J)return;(H.width!==y.w||H.height!==y.h)&&(H.width=y.w,H.height=y.h);const J1=window.devicePixelRatio||1;H.width!==y.w*J1&&(H.width=y.w*J1,H.height=y.h*J1),J.clearRect(0,0,H.width,H.height),J.save(),J.scale(J1,J1);const $={x:y.w*.932,y:y.h*.38,width:20,height:70,showDebugOutline:!1};if($.showDebugOutline&&(J.strokeStyle="rgba(255, 0, 0, 0.8)",J.lineWidth=2,J.strokeRect($.x-$.width/2,$.y-$.height/2,Math.max(1,$.width),Math.max(1,$.height))),Object.values(N.current).forEach(l1=>l1.draw(J)),J.font=`bold ${Math.min(24,y.w*.05)}px "JetBrains Mono", monospace`,J.fillStyle="#000",J.textAlign="center",J.textBaseline="bottom",J.fillText("How far away?",y.w/2,y.h*.12),J.font=`normal ${Math.min(12,y.w*.025)}px "JetBrains Mono", monospace`,J.fillStyle=ge.muted,J.textBaseline="top",J.fillText("The distance an endpoint's signal can reach",y.w/2,y.h*.12+10),S.current.length===0)for(let l1=0;l1<8;l1++)S.current.push({angle:Math.PI*2*l1/8+(Math.random()-.5)*.2,wavelength:.02+Math.random()*.05,amplitude:15+Math.random()*25,speed:.2+Math.random()*.4,offsetX:Math.random()-.5,offsetY:Math.random()-.5});const M1=Date.now()/200;J.lineWidth=1.5;const e0=y.w*.9,E1=80;S.current.forEach(l1=>{J.beginPath();const e1=M1*l1.speed,U0=$.x+l1.offsetX*$.width,G0=$.y+l1.offsetY*$.height;for(let _0=0;_0=0;l1--){let e1=x.current[l1];e1.x+=e1.vx,e1.y+=e1.vy,e1.xy.h&&e1.vy>0&&(e1.vy=-e1.vy),e1.opacity-=.003,e1.opacity<=0||e1.x>y.w+50?x.current.splice(l1,1):(J.fillStyle=`rgba(233, 233, 233, ${e1.opacity})`,J.fillText(e1.char,e1.x,e1.y))}J.restore()},[y]);(0,_.useEffect)(()=>{let H;const J=()=>{C(),H=requestAnimationFrame(J)};return J(),()=>cancelAnimationFrame(H)},[C]);const w=Math.max(20,y.w*.08),L=w+Math.max(280,y.w*.35),F=L+15,P=y.w<600?10:12,X=y.h*.28,V=P*1.8,U='"JetBrains Mono", monospace',D=t9(o),Q=Number(r.toFixed(3)),k=H=>{let J="room";H>26400?J="way out there":H>10560?J="across town":H>2640?J="neighborhood":H>660?J="block":H>100?J="floor":J="room";let J1="";return H>=5280?J1=`${(H/5280).toFixed(2)}mi`:J1=`${Math.round(H).toLocaleString()}ft`,{distStr:J1,scale:J}},{distStr:c1,scale:h1}=k(d),{distStr:g1,scale:L1}=k(h);return g(C2,{store:t,aspectRatio:"16/9",children:g(pT,{ref:m,children:[g(NT,{ref:b},void 0,!1,{fileName:D1,lineNumber:377,columnNumber:9},this),g(K1,{ref:v("row1L"),text:"Frequency",fontSize:P,color:"#000",x:w,y:X,font:U},void 0,!1,{fileName:D1,lineNumber:380,columnNumber:7},this),g(K1,{ref:v("row1V"),text:D,fontSize:P,color:"#000",x:L,y:X,anchorX:"right",font:U},void 0,!1,{fileName:D1,lineNumber:389,columnNumber:7},this),g(K1,{ref:v("row2L"),text:"Power (from antenna)",fontSize:P,color:"#000",x:w,y:X+V,font:U},void 0,!1,{fileName:D1,lineNumber:400,columnNumber:7},this),g(K1,{ref:v("row2V"),text:`${Q}W`,fontSize:P,color:"#000",x:L,y:X+V,anchorX:"right",font:U},void 0,!1,{fileName:D1,lineNumber:409,columnNumber:7},this),g(K1,{ref:v("row3L"),text:"Antenna Size",fontSize:P,color:"#000",x:w,y:X+V*2,font:U},void 0,!1,{fileName:D1,lineNumber:420,columnNumber:7},this),g(K1,{ref:v("row3V"),text:`${s}ft x ${i}ft`,fontSize:P,color:"#000",x:L,y:X+V*2,anchorX:"right",font:U},void 0,!1,{fileName:D1,lineNumber:429,columnNumber:7},this),g(K1,{ref:v("row4L"),text:"Elevation",fontSize:P,color:"#000",x:w,y:X+V*3,font:U},void 0,!1,{fileName:D1,lineNumber:440,columnNumber:7},this),g(K1,{ref:v("row4V"),text:`${n}ft`,fontSize:P,color:"#000",x:L,y:X+V*3,anchorX:"right",font:U},void 0,!1,{fileName:D1,lineNumber:449,columnNumber:7},this),g(K1,{ref:v("row5L"),text:"Azimuth",fontSize:P,color:"#000",x:w,y:X+V*4,font:U},void 0,!1,{fileName:D1,lineNumber:460,columnNumber:7},this),g(K1,{ref:v("row5V"),text:`${a}ft`,fontSize:P,color:"#000",x:L,y:X+V*4,anchorX:"right",font:U},void 0,!1,{fileName:D1,lineNumber:469,columnNumber:7},this),g(K1,{ref:v("row6L"),text:"Line of sight",fontSize:P,color:ge.muted,x:w,y:X+V*5.2,font:U},void 0,!1,{fileName:D1,lineNumber:481,columnNumber:7},this),g(K1,{ref:v("row6V"),text:l,fontSize:P,color:ge.muted,x:L,y:X+V*5.2,anchorX:"right",font:U},void 0,!1,{fileName:D1,lineNumber:490,columnNumber:7},this),g(K1,{ref:v("row7L"),text:"Multipath",fontSize:P,color:ge.muted,x:w,y:X+V*6.2,font:U},void 0,!1,{fileName:D1,lineNumber:501,columnNumber:7},this),g(K1,{ref:v("row7V"),text:u,fontSize:P,color:ge.muted,x:L,y:X+V*6.2,anchorX:"right",font:U},void 0,!1,{fileName:D1,lineNumber:510,columnNumber:7},this),g(K1,{ref:v("row8L"),text:"Sky interactions",fontSize:P,color:ge.muted,x:w,y:X+V*7.2,font:U},void 0,!1,{fileName:D1,lineNumber:521,columnNumber:7},this),g(K1,{ref:v("row8V"),text:c,fontSize:P,color:ge.muted,x:L,y:X+V*7.2,anchorX:"right",font:U},void 0,!1,{fileName:D1,lineNumber:530,columnNumber:7},this),g(K1,{ref:v("row9L"),text:"Range",fontSize:P+2,color:"#000",x:w,y:X+V*8.7,font:U},void 0,!1,{fileName:D1,lineNumber:542,columnNumber:7},this),g(K1,{ref:v("row9V"),text:`~${c1}`,fontSize:P+2,color:"#000",x:L,y:X+V*8.7,anchorX:"right",font:U},void 0,!1,{fileName:D1,lineNumber:551,columnNumber:7},this),g(K1,{ref:v("row9S"),text:`(${h1})`,fontSize:P,color:ge.muted,x:F,y:X+V*8.7,anchorX:"left",font:U},void 0,!1,{fileName:D1,lineNumber:561,columnNumber:7},this),g(K1,{ref:v("row10L"),text:"Range at -22dBm",fontSize:P,color:ge.muted,x:w,y:X+V*9.7,font:U},void 0,!1,{fileName:D1,lineNumber:572,columnNumber:7},this),g(K1,{ref:v("row10V"),text:`~${g1}`,fontSize:P,color:ge.muted,x:L,y:X+V*9.7,anchorX:"right",font:U},void 0,!1,{fileName:D1,lineNumber:581,columnNumber:7},this),g(K1,{ref:v("row10S"),text:`(${L1})`,fontSize:P,color:ge.muted,x:F,y:X+V*9.7,anchorX:"left",font:U},void 0,!1,{fileName:D1,lineNumber:591,columnNumber:7},this),g(bT,{$range:f*1.5},void 0,!1,{fileName:D1,lineNumber:603,columnNumber:7},this),g(vT,{$size:f,$color:p},void 0,!1,{fileName:D1,lineNumber:604,columnNumber:7},this),!e&&g(e9,{src:"omni-tower.svg",alt:"Endpoint Tower",right:"15%",bottom:"0px",height:"75%",zIndex:9,objectFit:"contain",transform:"translateX(50%)",pointerEvents:"none"},void 0,!1,{fileName:D1,lineNumber:607,columnNumber:9},this)]},void 0,!0,{fileName:D1,lineNumber:376,columnNumber:7},this)},void 0,!1,{fileName:D1,lineNumber:375,columnNumber:5},this)}var D4="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/ascii-motion-animation.tsx",k4=["#FFFFFF","#ffffff"],Yt=[{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[63,34,"%",0],[70,34,"&",0],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[70,34,"&",0],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[71,35,"&",0],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[23,14,"%",0],[50,14,"o",0],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[23,14,"%",0],[50,14,"o",0],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[71,35,"&",0],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1]]},{duration:83.33333333333333,cells:[[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[23,14,"%",0],[50,14,"o",0],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[71,35,"&",0],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1]]},{duration:83.33333333333333,cells:[[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1]]},{duration:83.33333333333333,cells:[[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[43,5,"o",0],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[108,35,"+",1],[109,35,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,37,"╳",1],[109,37,"╳",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,38,"╳",1],[109,38,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[50,14,"o",0],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[63,34,"%",0],[70,34,"&",0],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[70,34,"&",0],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[71,35,"&",0],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[23,14,"%",0],[50,14,"o",0],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[23,14,"%",0],[50,14,"o",0],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[71,35,"&",0],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1]]},{duration:83.33333333333333,cells:[[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[23,14,"%",0],[50,14,"o",0],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[71,35,"&",0],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1]]},{duration:83.33333333333333,cells:[[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1]]},{duration:83.33333333333333,cells:[[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[43,5,"o",0],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[108,35,"+",1],[109,35,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,37,"╳",1],[109,37,"╳",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,38,"╳",1],[109,38,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[50,14,"o",0],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[63,34,"%",0],[70,34,"&",0],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[70,34,"&",0],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[71,35,"&",0],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[23,14,"%",0],[50,14,"o",0],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[23,14,"%",0],[50,14,"o",0],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[71,35,"&",0],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1]]},{duration:83.33333333333333,cells:[[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[23,14,"%",0],[50,14,"o",0],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[71,35,"&",0],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1]]},{duration:83.33333333333333,cells:[[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1]]},{duration:83.33333333333333,cells:[[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[43,5,"o",0],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[108,35,"+",1],[109,35,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,37,"╳",1],[109,37,"╳",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[50,14,"o",0],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[63,34,"%",0],[70,34,"&",0],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[70,34,"&",0],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[71,35,"&",0],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[23,14,"%",0],[50,14,"o",0],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[23,14,"%",0],[50,14,"o",0],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[71,35,"&",0],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1]]},{duration:83.33333333333333,cells:[[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[23,14,"%",0],[50,14,"o",0],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[71,35,"&",0],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1]]},{duration:83.33333333333333,cells:[[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1]]},{duration:83.33333333333333,cells:[[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[108,35,"+",1],[109,35,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,37,"╳",1],[109,37,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[50,14,"o",0],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[63,34,"%",0],[70,34,"&",0],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[70,34,"&",0],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[71,35,"&",0],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[23,14,"%",0],[50,14,"o",0],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[23,14,"%",0],[50,14,"o",0],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[71,35,"&",0],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1]]},{duration:83.33333333333333,cells:[[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[23,14,"%",0],[50,14,"o",0],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[71,35,"&",0],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1]]}],gi=594,vi=360,mr=5.4,gr=9,yT=(e={})=>{const{showControls:t=!0,autoPlay:o=!0,onReady:r}=e,s=o!==!1,i=(0,_.useRef)(null),n=(0,_.useRef)(null),a=(0,_.useRef)(0),l=(0,_.useRef)(0),u=(0,_.useRef)(0),c=(0,_.useRef)(()=>{}),d=(0,_.useRef)(s),h=(0,_.useCallback)(N=>{d.current=N},[]),f=(0,_.useCallback)(()=>{h(!0)},[h]),p=(0,_.useCallback)(()=>{h(!1)},[h]),m=(0,_.useCallback)(()=>{h(!d.current)},[h]),b=(0,_.useCallback)(()=>{c.current&&c.current()},[]);return(0,_.useEffect)(()=>{d.current!==s&&h(s)},[s,h]),(0,_.useEffect)(()=>{const N=i.current;if(!N)return;const v=N.getContext("2d");if(!v)return;const y=window.devicePixelRatio||1;N.width=gi*y,N.height=vi*y,N.style.width="594px",N.style.height="360px",v.resetTransform(),v.scale(y,y),v.textAlign="center",v.textBaseline="middle",v.font="9px SF Mono, Monaco, Cascadia Code, Consolas, JetBrains Mono, Fira Code, Monaspace Neon, Geist Mono, Courier New, monospace",v.imageSmoothingEnabled=!1,a.current=0,l.current=0,u.current=0;const T=S=>{const C=Yt[S];if(v.clearRect(0,0,gi,vi),!!C)for(const w of C.cells){const L=w[0],F=w[1],P=w[2],X=k4[w[3]],V=w.length>4?k4[w[4]]:null;V&&(v.fillStyle=V,v.fillRect(L*mr,F*gr,mr,gr)),v.fillStyle=X||"#ffffff",v.fillText(P,L*mr+mr/2,F*gr+gr/2)}};if(T(a.current),Yt.length===0){c.current=()=>{T(0)};return}const x=S=>{if(Yt.length===0)return;u.current===0&&(u.current=S);const C=S-u.current;if(u.current=S,d.current){l.current+=C;let w=a.current,L=l.current,F=Yt[w]?.duration??16;for(;L>=F&&Yt.length>0;)L-=F,w=(w+1)%Yt.length,F=Yt[w]?.duration??F;l.current=L,w!==a.current?(a.current=w,T(w)):T(a.current)}else T(a.current);n.current=window.requestAnimationFrame(x)};return n.current=window.requestAnimationFrame(x),c.current=()=>{a.current=0,l.current=0,u.current=0,T(0)},()=>{n.current!==null&&(window.cancelAnimationFrame(n.current),n.current=null)}},[]),(0,_.useEffect)(()=>{typeof r=="function"&&r({play:f,pause:p,togglePlay:m,restart:b})},[r,f,p,m,b]),g("div",{style:{display:"inline-flex",flexDirection:"column",alignItems:"center",width:"100%"},children:g("canvas",{ref:i,width:gi,height:vi,style:{width:"594px",height:"360px",backgroundColor:"transparent",imageRendering:"pixelated"}},void 0,!1,{fileName:D4,lineNumber:218,columnNumber:7},void 0)},void 0,!1,{fileName:D4,lineNumber:210,columnNumber:5},void 0)},MT="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/app-article/components/canvas/HeroAsciiCanvas.tsx";function h_(e){return g(yT,{autoPlay:e.autoPlay??!0,showControls:e.showControls??!1},void 0,!1,{fileName:MT,lineNumber:6,columnNumber:10},this)}var xT={Row:R9,Label:_9,Portal:T9,Overlay:N9,String:M9,Number:C9,Boolean:S9,Select:y9,Vector:A9,InnerLabel:v9},ST=Qr(B9(),1),_t="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/shared/ui/FrequencyInput.tsx",TT=a1.div` + display: flex; + flex-direction: column; + gap: 4px; + width: 100%; + position: relative; + z-index: ${({$isOpen:e})=>e?1e3:"auto"}; +`,wT=a1.label` + font-size: 10px; + font-weight: 500; + color: ${({theme:e})=>e.colors.textSecondary}; + text-transform: uppercase; + letter-spacing: 0.05em; +`,_T=a1.div` + display: flex; + align-items: center; + gap: 6px; + width: 100%; +`,AT=a1.input` + background: ${({theme:e})=>e.colors.surface}; + border: 1px solid ${({theme:e})=>e.colors.border}; + border-radius: 4px; + padding: 4px 4px; + color: ${({theme:e})=>e.colors.textPrimary}; + font-size: 11px; + font-family: ${({theme:e})=>e.typography.mono}; + flex: 1; + min-width: 0; + cursor: ew-resize; + + &::placeholder { + color: ${({theme:e})=>e.colors.textMuted}; + opacity: 1; + } + + &:focus { + outline: none; + border-color: ${({theme:e})=>e.colors.primary}; + box-shadow: 0 0 0 2px ${({theme:e})=>e.colors.primary}22; + cursor: text; + } + + &:disabled { + opacity: 0.5; + cursor: not-allowed; + } + + &::-webkit-inner-spin-button, + &::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; + } +`,CT=a1.div` + position: relative; + z-index: ${({$isOpen:e})=>e?1e3:1}; +`,RT=a1.button` + background: ${({theme:e})=>e.colors.surface||"rgba(255, 255, 255, 0.05)"}; + border: 1px solid + ${({theme:e})=>e.colors.border||"rgba(255, 255, 255, 0.1)"}; + border-radius: 4px; + padding: 2px; + font-size: 9px; + font-family: ${({theme:e})=>e.typography.mono||"monospace"}; + color: ${({theme:e})=>e.colors.primary}; + min-width: 44px; + width: 44px; + height: 24px; + cursor: pointer; + text-align: center; + transition: all 0.2s ease; + + &:hover:not(:disabled) { + background: ${({theme:e})=>e.colors.border}44; + } + + &:disabled { + opacity: 0.5; + cursor: not-allowed; + } + + &:focus { + outline: none; + border-color: ${({theme:e})=>e.colors.primary}; + } +`,BT=a1.div` + position: absolute; + top: calc(100% + 4px); + right: 0; + display: flex; + flex-direction: column; + min-width: 60px; + border: 1px solid ${({theme:e})=>e.colors.border}; + border-radius: 6px; + background: ${({theme:e})=>e.colors.surface}; + box-shadow: 0 10px 24px + ${({theme:e})=>e.mode==="light"?"rgba(31, 37, 50, 0.14)":"rgba(0, 0, 0, 0.34)"}; + overflow: hidden; + z-index: 20; +`,ET=a1.button` + border: 0; + border-radius: 0; + background: ${({theme:e,$active:t})=>t?`${e.colors.primary}1f`:e.colors.surface}; + color: ${({theme:e,$active:t})=>t?e.colors.primary:e.colors.textPrimary}; + cursor: pointer; + font-family: ${({theme:e})=>e.typography.mono||"monospace"}; + font-size: 10px; + padding: 7px 10px; + text-align: left; + + &:hover { + background: ${({theme:e})=>e.colors.surfaceHover}; + } +`,WT=["Hz","kHz","MHz","GHz"],LT=_.memo(({valueHz:e,onChangeHz:t,minHz:o=0,maxHz:r=3e10,stepHz:s,label:i,id:n,placeholder:a,autoFocus:l,commitOnBlur:u,onBlur:c,onKeyDown:d,disabled:h,className:f,onMenuOpenChange:p})=>{const m=(0,_.useMemo)(()=>I3(e),[e]),[b,N]=(0,_.useState)(lt(wt(m.value))),[v,y]=(0,_.useState)(m.unit),[T,x]=(0,_.useState)(!1);(0,_.useEffect)(()=>{p?.(T)},[T,p]);const S=(0,_.useRef)(!1),C=(0,_.useRef)(null),w=(0,_.useRef)(null),L=(0,_.useRef)(e),F=(0,_.useRef)(e);(0,_.useEffect)(()=>{const $=li(e,o,r);if(Math.abs($-e)>.001){t($);return}if(!(Math.abs(e-L.current)<.001)&&(L.current=e,F.current=e,!S.current)){const{value:M1,unit:e0}=I3(e);N(lt(wt(M1))),y(e0)}},[e]);const P=(0,_.useCallback)(($,M1=!1,e0=!1)=>{const E1=li($,o,r);if(L.current=E1,F.current=E1,t(E1),M1)if(e0){const X1=E1/fr(v);N(v==="Hz"?pr(E1):lt(wt(X1)))}else{const{value:X1,unit:l1}=I3(E1);y(l1),N(l1==="Hz"?pr(E1):lt(wt(X1)))}},[o,r,t,v]),X=(0,_.useRef)(null),V=(0,_.useRef)(!1),U=(0,_.useCallback)($=>{h||$.button===0&&(X.current={x:$.clientX,value:L.current,unit:v},V.current=!1,$.currentTarget.setPointerCapture($.pointerId))},[h,v]),D=(0,_.useCallback)($=>{if(!X.current)return;const M1=$.clientX-X.current.x;if(V.current||Math.abs(M1)>3&&(V.current=!0,C.current?.focus()),V.current){$.preventDefault(),$.stopPropagation();let e0=1;const E1=X.current.unit;E1==="kHz"?e0=1e3:E1==="MHz"?e0=1e6:E1==="GHz"&&(e0=1e7);let X1=1;$.shiftKey?X1=10:$.altKey&&(X1=.1);const l1=$.movementX*e0*X1,e1=L.current+l1;P(e1,!0,!0)}},[v,P]),Q=(0,_.useCallback)($=>{X.current&&($.currentTarget.releasePointerCapture($.pointerId),X.current=null,V.current&&($.preventDefault(),$.stopPropagation(),C.current?.blur(),C.current?.focus()))},[]),k=$=>{if(!h&&($.key==="ArrowUp"||$.key==="ArrowDown")){$.stopPropagation(),$.preventDefault();const M1=$.key==="ArrowUp"?1:-1,e0=$.shiftKey?10:1,E1=L.current;let X1=1;Number.isFinite(s)&&s>0?X1=s:v==="kHz"?X1=1e3:v==="MHz"?X1=1e6:v==="GHz"&&(X1=1e9),P(E1+M1*X1*e0,!0,!0)}},c1=$=>{if(h)return;const M1=$.target.value.replace(/\s+/g,"");if(N(M1),u)return;const e0=parseFloat(M1);if(Number.isFinite(e0)){const E1=fr(v),X1=e0*E1,l1=li(X1,o,r);Math.abs(l1-X1)>.1&&N(lt(wt(l1/E1))),L.current=l1,F.current=l1,t(l1)}},h1=()=>{h||(S.current=!0)},g1=$=>{h||(y($),x(!1),N($==="Hz"?pr(L.current):lt(wt(L.current/fr($)))))},L1=$=>{if(h)return;const M1=$.relatedTarget;if(M1&&w.current?.contains(M1))return;if(x(!1),S.current=!1,u){const X1=parseFloat(b.replace(/\s+/g,""));if(Number.isFinite(X1)){const l1=X1*fr(v);P(l1,!0)}else{const{value:l1,unit:e1}=I3(L.current);N(lt(wt(l1))),y(e1)}c?.();return}const{value:e0,unit:E1}=I3(L.current);y(E1),N(E1==="Hz"?pr(L.current):lt(wt(e0))),c?.()},H=(0,_.useRef)(null),[J,J1]=(0,_.useState)({});return(0,_.useEffect)(()=>{if(T&&H.current){const $=H.current.getBoundingClientRect();J1({position:"fixed",top:$.bottom+4,right:window.innerWidth-$.right,zIndex:1e5})}},[T]),g(TT,{ref:w,className:`${f||""} ${T?"leva-unit-menu-open":""}`,onBlur:L1,$isOpen:T,children:[i&&g(wT,{htmlFor:n,children:i},void 0,!1,{fileName:_t,lineNumber:474,columnNumber:19},void 0),g(_T,{children:[g(AT,{id:n,ref:C,type:"text",value:b,onFocus:h1,onKeyDown:$=>{d?.($),$.defaultPrevented||k($)},onChange:c1,onPointerDown:U,onPointerMove:D,onPointerUp:Q,autoComplete:"off",spellCheck:!1,placeholder:a,autoFocus:l,disabled:h},void 0,!1,{fileName:_t,lineNumber:476,columnNumber:11},void 0),g(CT,{$isOpen:T,children:[g(RT,{ref:H,type:"button",disabled:h,"aria-haspopup":"listbox","aria-expanded":T,"aria-label":"Frequency unit",onPointerDown:$=>{$.preventDefault(),$.stopPropagation(),h||x(M1=>!M1)},onClick:$=>{$.preventDefault(),$.stopPropagation()},children:v},void 0,!1,{fileName:_t,lineNumber:499,columnNumber:13},void 0),T&&(0,ST.createPortal)(g(BT,{role:"listbox","aria-label":"Frequency unit options",style:J,children:WT.map($=>g(ET,{type:"button",role:"option","aria-selected":$===v,$active:$===v,onPointerDown:M1=>{M1.preventDefault(),M1.stopPropagation(),g1($)},onClick:M1=>{M1.preventDefault(),M1.stopPropagation()},children:$},$,!1,{fileName:_t,lineNumber:528,columnNumber:21},void 0))},void 0,!1,{fileName:_t,lineNumber:522,columnNumber:17},void 0),document.body)]},void 0,!0,{fileName:_t,lineNumber:498,columnNumber:11},void 0)]},void 0,!0,{fileName:_t,lineNumber:475,columnNumber:9},void 0)]},void 0,!0,{fileName:_t,lineNumber:468,columnNumber:7},void 0)}),G3="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/shared/ui/levaFrequencyPlugin.tsx",UT=a1.div` + position: relative; + z-index: ${e=>e.$isMenuOpen?1e5:1}; +`,OT=a1.div` + flex: 1; + display: flex; + overflow: visible; +`,FT=()=>{const{label:e,value:t,onUpdate:o,id:r}=x9(),{Row:s,Label:i}=xT,[n,a]=_.useState(!1);return g(UT,{$isMenuOpen:n,children:g(s,{input:!0,children:[g(i,{children:e},void 0,!1,{fileName:G3,lineNumber:25,columnNumber:9},void 0),g(OT,{onPointerDown:l=>l.stopPropagation(),onKeyDown:l=>l.stopPropagation(),children:g(LT,{valueHz:t,onChangeHz:o,id:r,stepHz:1e6,onMenuOpenChange:a},void 0,!1,{fileName:G3,lineNumber:30,columnNumber:11},void 0)},void 0,!1,{fileName:G3,lineNumber:26,columnNumber:9},void 0)]},void 0,!0,{fileName:G3,lineNumber:24,columnNumber:7},void 0)},void 0,!1,{fileName:G3,lineNumber:23,columnNumber:5},void 0)},X4=typeof window<"u",f_=X4&&window.__LEVA_FREQUENCY_PLUGIN__?window.__LEVA_FREQUENCY_PLUGIN__:(()=>{const e=w9({component:FT,normalize:t=>({value:Number(t)})});return X4&&(window.__LEVA_FREQUENCY_PLUGIN__=e),e})(),p_=a1.button` + position: absolute; + bottom: 16px; + right: 16px; + background: rgba(255, 255, 255, 0.85); + border: 1px solid rgba(0, 0, 0, 0.15); + color: #1f2937; + padding: 6px 12px; + border-radius: 6px; + font-family: inherit; + font-size: 0.8rem; + font-weight: 500; + cursor: pointer; + pointer-events: auto; + display: flex; + align-items: center; + gap: 6px; + box-shadow: 0 1px 3px rgba(0,0,0,0.08); + transition: all 0.2s ease; + + &:hover { + background: #ffffff; + box-shadow: 0 2px 4px rgba(0,0,0,0.12); + } + + &:active { + transform: scale(0.96); + } +`;export{i_ as AmplitudeModulationCanvas,c_ as BodyAttenuationCanvas,d_ as EndpointRangeCanvas,s_ as FrequencyModulationCanvas,h_ as HeroAsciiCanvas,a_ as HeterodyningCanvas,u_ as ImpedanceCanvas,n_ as MultipathCanvas,pw as PhaseShiftingCanvas,l_ as TimeOfFlightCanvas}; diff --git a/docs/assets/canvas-dPePUOFu.js b/docs/assets/canvas-dPePUOFu.js deleted file mode 100644 index d81ecaeb..00000000 --- a/docs/assets/canvas-dPePUOFu.js +++ /dev/null @@ -1,2472 +0,0 @@ -import{C as Z5,S as a1,T as q5,_ as Z0,a as H5,b as J5,c as j5,d as K5,f as Y5,g as Gi,h as e9,i as t9,k as kr,l as o9,m as r9,n as zi,o as s9,p as i9,r as w6,s as n9,t as A2,u as a9,v as g,w as l9,x as Vi,y as T1}from"./index-BRSQXCQh.js";import{$ as u2,$n as u9,$t as c9,A as d9,An as h9,At as fo,B as oe,Bn as f9,Bt as p9,C as C2,Cn as _6,Ct as m9,D as g9,Dn as v9,Dt as b9,E as Xr,En as A6,Et as ve,F as N9,Fn as yr,Ft as M9,G as y9,Gt as x9,H as S9,Hn as T9,Ht as Ge,I as w9,In as ht,It as _9,J as A9,Jn as C9,Jt as R9,K as B9,Kn as ze,Kt as E9,L as R2,Ln as U9,Lt as W9,M as f2,Mn as L9,Mt as C6,N as Ut,Nn as F0,Nt as O9,O as F9,On as R6,Ot as P9,P as ye,Pt as D9,Q as k9,Qn as be,Qt as X9,R as B6,Rn as dr,Rt as I9,S as e0,Sn as G9,St as z9,T as V9,Tn as Xt,Tt as E6,U as Q9,Un as Qi,Ut as U6,V as W6,Vn as $i,Vt as $9,W as se,Wn as po,Wt as Z9,X as xr,Xn as A1,Xt as q9,Y as H9,Yn as J9,Yt as j9,Z as Kt,Zn as $n,Zt as K9,_ as hr,_r as Sr,_t as r2,an as Y9,ar as X3,at as el,b as Ot,bn as c2,br as I1,bt as L6,c as tl,cn as ol,cr as S1,ct as rl,d as sl,dn as O6,dr as F6,dt as Tr,en as il,er as Wt,et as nl,f as c3,fn as al,fr as ll,ft as Ft,g as i3,gn as ul,gr as cl,gt as $e,h as p2,hn as dl,hr as G,ht as q0,i as A0,in as hl,it as fl,j as pl,jn as ml,jt as N2,k as P6,kn as gl,kt as vl,ln as bl,lr as D6,lt as Zi,m as k6,mn as Nl,mr as Ml,mt as mo,n as go,nn as yl,nr as E0,nt as xl,o as ce,or as p1,ot as Z1,p as qi,pn as Sl,pr as Tl,pt as X6,q as wl,qn as _l,qt as Al,r as Cl,rn as Rl,rt as Bl,s as Zn,sr as z,st as ui,t as L1,tn as El,tr as Ul,tt as Wl,u as Ll,un as Ol,ur as Te,ut as qn,v as I6,vr as Fl,vt as Pl,w as Dl,wn as G6,wt as kl,x as de,xn as z6,xr as V6,xt as Xl,y as Il,yn as Gl,yr as j,yt as zl,z as wr,zn as Hi,zt as Vl}from"./CanvasText-BY4b_hDf.js";import{t as Q6}from"./TriangulationCloseEnoughCanvas-DuTIU7cX.js";import"./TriangulationMapCanvas-DenpjNdi.js";function ro(){return ro=Object.assign?Object.assign.bind():function(e){for(var t=1;tMath.PI/2}function Hl(e,t,o,r){const s=vo.setFromMatrixPosition(e.matrixWorld),i=s.clone();i.project(t),Hn.set(i.x,i.y),o.setFromCamera(Hn,t);const n=o.intersectObjects(r,!0);if(n.length){const a=n[0].distance;return s.distanceTo(o.ray.origin)Math.abs(e)<1e-10?0:e;function $6(e,t,o=""){let r="matrix3d(";for(let s=0;s!==16;s++)r+=ci(t[s]*e.elements[s])+(s!==15?",":")");return o+r}var Kl=(e=>t=>$6(t,e))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),Yl=(e=>(t,o)=>$6(t,e(o),"translate(-50%,-50%)"))(e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1]);function eu(e){return e&&typeof e=="object"&&"current"in e}var tu=_.forwardRef(({children:e,eps:t=.001,style:o,className:r,prepend:s,center:i,fullscreen:n,portal:a,distanceFactor:l,sprite:u=!1,transform:c=!1,occlude:d,onOcclude:h,castShadow:f,receiveShadow:p,material:m,geometry:b,zIndexRange:N=[16777271,0],calculatePosition:v=Zl,as:M="div",wrapperClass:T,pointerEvents:x="auto",...S},R)=>{const{gl:w,camera:W,scene:O,size:F,raycaster:X,events:Q,viewport:L}=ce(),[D]=_.useState(()=>document.createElement(M)),$=_.useRef(null),k=_.useRef(null),c1=_.useRef(0),h1=_.useRef([0,0]),g1=_.useRef(null),E1=_.useRef(null),H=a?.current||Q.connected||w.domElement.parentNode,J=_.useRef(null),q1=_.useRef(!1),I=_.useMemo(()=>d&&d!=="blending"||Array.isArray(d)&&d.length&&eu(d[0]),[d]);_.useLayoutEffect(()=>{const l1=w.domElement;d&&d==="blending"?(l1.style.zIndex=`${Math.floor(N[0]/2)}`,l1.style.position="absolute",l1.style.pointerEvents="none"):(l1.style.zIndex=null,l1.style.position=null,l1.style.pointerEvents=null)},[d]),_.useLayoutEffect(()=>{if(k.current){const l1=$.current=Ql.createRoot(D);if(O.updateMatrixWorld(),c)D.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e1=v(k.current,W,F);D.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e1[0]}px,${e1[1]}px,0);transform-origin:0 0;`}return H&&(s?H.prepend(D):H.appendChild(D)),()=>{H&&H.removeChild(D),l1.unmount()}}},[H,c]),_.useLayoutEffect(()=>{T&&(D.className=T)},[T]);const y1=_.useMemo(()=>c?{position:"absolute",top:0,left:0,width:F.width,height:F.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:i?"translate3d(-50%,-50%,0)":"none",...n&&{top:-F.height/2,left:-F.width/2,width:F.width,height:F.height},...o},[o,i,n,F,c]),K1=_.useMemo(()=>({position:"absolute",pointerEvents:x}),[x]);_.useLayoutEffect(()=>{if(q1.current=!1,c){var l1;(l1=$.current)==null||l1.render(_.createElement("div",{ref:g1,style:y1},_.createElement("div",{ref:E1,style:K1},_.createElement("div",{ref:R,className:r,style:o,children:e}))))}else{var e1;(e1=$.current)==null||e1.render(_.createElement("div",{ref:R,style:y1,className:r,children:e}))}});const R1=_.useRef(!0);A0(l1=>{if(k.current){W.updateMatrixWorld(),k.current.updateWorldMatrix(!0,!1);const e1=c?h1.current:v(k.current,W,F);if(c||Math.abs(c1.current-W.zoom)>t||Math.abs(h1.current[0]-e1[0])>t||Math.abs(h1.current[1]-e1[1])>t){const B0=ql(k.current,W);let k0=!1;I&&(Array.isArray(d)?k0=d.map(_e=>_e.current):d!=="blending"&&(k0=[O]));const S0=R1.current;if(k0){const _e=Hl(k.current,W,X,k0);R1.current=_e&&!B0}else R1.current=!B0;S0!==R1.current&&(h?h(!R1.current):D.style.display=R1.current?"block":"none");const Ye=Math.floor(N[0]/2),os=d?I?[N[0],Ye]:[Ye-1,0]:N;if(D.style.zIndex=`${jl(k.current,W,os)}`,c){const[_e,M3]=[F.width/2,F.height/2],F2=W.projectionMatrix.elements[5]*M3,{isOrthographicCamera:Qn,top:I5,left:G5,bottom:z5,right:V5}=W,Q5=Kl(W.matrixWorldInverse),$5=Qn?`scale(${F2})translate(${ci(-(V5+G5)/2)}px,${ci((I5+z5)/2)}px)`:`translateZ(${F2}px)`;let $t=k.current.matrixWorld;u&&($t=W.matrixWorldInverse.clone().transpose().copyPosition($t).scale(k.current.scale),$t.elements[3]=$t.elements[7]=$t.elements[11]=0,$t.elements[15]=1),D.style.width=F.width+"px",D.style.height=F.height+"px",D.style.perspective=Qn?"":`${F2}px`,g1.current&&E1.current&&(g1.current.style.transform=`${$5}${Q5}translate(${_e}px,${M3}px)`,E1.current.style.transform=Yl($t,1/((l||10)/400)))}else{const _e=l===void 0?1:Jl(k.current,W)*l;D.style.transform=`translate3d(${e1[0]}px,${e1[1]}px,0) scale(${_e})`}h1.current=e1,c1.current=W.zoom}}if(!I&&J.current&&!q1.current)if(c){if(g1.current){const e1=g1.current.children[0];if(e1!=null&&e1.clientWidth&&e1!=null&&e1.clientHeight){const{isOrthographicCamera:B0}=W;if(B0||b)S.scale&&(Array.isArray(S.scale)?S.scale instanceof z?J.current.scale.copy(S.scale.clone().divideScalar(1)):J.current.scale.set(1/S.scale[0],1/S.scale[1],1/S.scale[2]):J.current.scale.setScalar(1/S.scale));else{const k0=(l||10)/400,S0=e1.clientWidth*k0,Ye=e1.clientHeight*k0;J.current.scale.set(S0,Ye,1)}q1.current=!0}}}else{const e1=D.children[0];if(e1!=null&&e1.clientWidth&&e1!=null&&e1.clientHeight){const B0=1/L.factor,k0=e1.clientWidth*B0,S0=e1.clientHeight*B0;J.current.scale.set(k0,S0,1),q1.current=!0}J.current.lookAt(l1.camera.position)}});const D1=_.useMemo(()=>({vertexShader:c?void 0:` - /* - This shader is from the THREE's SpriteMaterial. - We need to turn the backing plane into a Sprite - (make it always face the camera) if "transfrom" - is false. - */ - #include - - void main() { - vec2 center = vec2(0., 1.); - float rotation = 0.0; - - // This is somewhat arbitrary, but it seems to work well - // Need to figure out how to derive this dynamically if it even matters - float size = 0.03; - - vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); - vec2 scale; - scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); - scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); - - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) scale *= - mvPosition.z; - - vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size; - vec2 rotatedPosition; - rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; - rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; - mvPosition.xy += rotatedPosition; - - gl_Position = projectionMatrix * mvPosition; - } - `,fragmentShader:` - void main() { - gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); - } - `}),[c]);return _.createElement("group",ro({},S,{ref:k}),d&&!I&&_.createElement("mesh",{castShadow:f,receiveShadow:p,ref:J},b||_.createElement("planeGeometry",null),m||_.createElement("shaderMaterial",{side:2,vertexShader:D1.vertexShader,fragmentShader:D1.fragmentShader})))}),Z6=parseInt("185".replace(/\D+/g,"")),q6=Z6>=125?"uv1":"uv2",Jn=new qi,wo=new z,ji=class extends H9{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";const e=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],t=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2];this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new wr(e,3)),this.setAttribute("uv",new wr(t,2))}applyMatrix4(e){const t=this.attributes.instanceStart,o=this.attributes.instanceEnd;return t!==void 0&&(t.applyMatrix4(e),o.applyMatrix4(e),t.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));const o=new xr(t,6,1);return this.setAttribute("instanceStart",new u2(o,3,0)),this.setAttribute("instanceEnd",new u2(o,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e,t=3){let o;e instanceof Float32Array?o=e:Array.isArray(e)&&(o=new Float32Array(e));const r=new xr(o,t*2,1);return this.setAttribute("instanceColorStart",new u2(r,t,0)),this.setAttribute("instanceColorEnd",new u2(r,t,t)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new Tl(e.geometry)),this}fromLineSegments(e){const t=e.geometry;return this.setPositions(t.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new qi);const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;e!==void 0&&t!==void 0&&(this.boundingBox.setFromBufferAttribute(e),Jn.setFromBufferAttribute(t),this.boundingBox.union(Jn))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Hi),this.boundingBox===null&&this.computeBoundingBox();const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(e!==void 0&&t!==void 0){const o=this.boundingSphere.center;this.boundingBox.getCenter(o);let r=0;for(let s=0,i=e.count;s - #include - #include - #include - - uniform float linewidth; - uniform vec2 resolution; - - attribute vec3 instanceStart; - attribute vec3 instanceEnd; - - #ifdef USE_COLOR - #ifdef USE_LINE_COLOR_ALPHA - varying vec4 vLineColor; - attribute vec4 instanceColorStart; - attribute vec4 instanceColorEnd; - #else - varying vec3 vLineColor; - attribute vec3 instanceColorStart; - attribute vec3 instanceColorEnd; - #endif - #endif - - #ifdef WORLD_UNITS - - varying vec4 worldPos; - varying vec3 worldStart; - varying vec3 worldEnd; - - #ifdef USE_DASH - - varying vec2 vUv; - - #endif - - #else - - varying vec2 vUv; - - #endif - - #ifdef USE_DASH - - uniform float dashScale; - attribute float instanceDistanceStart; - attribute float instanceDistanceEnd; - varying float vLineDistance; - - #endif - - void trimSegment( const in vec4 start, inout vec4 end ) { - - // trim end segment so it terminates between the camera plane and the near plane - - // conservative estimate of the near plane - float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column - float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column - float nearEstimate = - 0.5 * b / a; - - float alpha = ( nearEstimate - start.z ) / ( end.z - start.z ); - - end.xyz = mix( start.xyz, end.xyz, alpha ); - - } - - void main() { - - #ifdef USE_COLOR - - vLineColor = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd; - - #endif - - #ifdef USE_DASH - - vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd; - vUv = uv; - - #endif - - float aspect = resolution.x / resolution.y; - - // camera space - vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 ); - vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 ); - - #ifdef WORLD_UNITS - - worldStart = start.xyz; - worldEnd = end.xyz; - - #else - - vUv = uv; - - #endif - - // special case for perspective projection, and segments that terminate either in, or behind, the camera plane - // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space - // but we need to perform ndc-space calculations in the shader, so we must address this issue directly - // perhaps there is a more elegant solution -- WestLangley - - bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column - - if ( perspective ) { - - if ( start.z < 0.0 && end.z >= 0.0 ) { - - trimSegment( start, end ); - - } else if ( end.z < 0.0 && start.z >= 0.0 ) { - - trimSegment( end, start ); - - } - - } - - // clip space - vec4 clipStart = projectionMatrix * start; - vec4 clipEnd = projectionMatrix * end; - - // ndc space - vec3 ndcStart = clipStart.xyz / clipStart.w; - vec3 ndcEnd = clipEnd.xyz / clipEnd.w; - - // direction - vec2 dir = ndcEnd.xy - ndcStart.xy; - - // account for clip-space aspect ratio - dir.x *= aspect; - dir = normalize( dir ); - - #ifdef WORLD_UNITS - - // get the offset direction as perpendicular to the view vector - vec3 worldDir = normalize( end.xyz - start.xyz ); - vec3 offset; - if ( position.y < 0.5 ) { - - offset = normalize( cross( start.xyz, worldDir ) ); - - } else { - - offset = normalize( cross( end.xyz, worldDir ) ); - - } - - // sign flip - if ( position.x < 0.0 ) offset *= - 1.0; - - float forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) ); - - // don't extend the line if we're rendering dashes because we - // won't be rendering the endcaps - #ifndef USE_DASH - - // extend the line bounds to encompass endcaps - start.xyz += - worldDir * linewidth * 0.5; - end.xyz += worldDir * linewidth * 0.5; - - // shift the position of the quad so it hugs the forward edge of the line - offset.xy -= dir * forwardOffset; - offset.z += 0.5; - - #endif - - // endcaps - if ( position.y > 1.0 || position.y < 0.0 ) { - - offset.xy += dir * 2.0 * forwardOffset; - - } - - // adjust for linewidth - offset *= linewidth * 0.5; - - // set the world position - worldPos = ( position.y < 0.5 ) ? start : end; - worldPos.xyz += offset; - - // project the worldpos - vec4 clip = projectionMatrix * worldPos; - - // shift the depth of the projected points so the line - // segments overlap neatly - vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd; - clip.z = clipPose.z * clip.w; - - #else - - vec2 offset = vec2( dir.y, - dir.x ); - // undo aspect ratio adjustment - dir.x /= aspect; - offset.x /= aspect; - - // sign flip - if ( position.x < 0.0 ) offset *= - 1.0; - - // endcaps - if ( position.y < 0.0 ) { - - offset += - dir; - - } else if ( position.y > 1.0 ) { - - offset += dir; - - } - - // adjust for linewidth - offset *= linewidth; - - // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ... - offset /= resolution.y; - - // select end - vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd; - - // back to clip space - offset *= clip.w; - - clip.xy += offset; - - #endif - - gl_Position = clip; - - vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation - - #include - #include - #include - - } - `,fragmentShader:` - uniform vec3 diffuse; - uniform float opacity; - uniform float linewidth; - - #ifdef USE_DASH - - uniform float dashOffset; - uniform float dashSize; - uniform float gapSize; - - #endif - - varying float vLineDistance; - - #ifdef WORLD_UNITS - - varying vec4 worldPos; - varying vec3 worldStart; - varying vec3 worldEnd; - - #ifdef USE_DASH - - varying vec2 vUv; - - #endif - - #else - - varying vec2 vUv; - - #endif - - #include - #include - #include - #include - - #ifdef USE_COLOR - #ifdef USE_LINE_COLOR_ALPHA - varying vec4 vLineColor; - #else - varying vec3 vLineColor; - #endif - #endif - - vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) { - - float mua; - float mub; - - vec3 p13 = p1 - p3; - vec3 p43 = p4 - p3; - - vec3 p21 = p2 - p1; - - float d1343 = dot( p13, p43 ); - float d4321 = dot( p43, p21 ); - float d1321 = dot( p13, p21 ); - float d4343 = dot( p43, p43 ); - float d2121 = dot( p21, p21 ); - - float denom = d2121 * d4343 - d4321 * d4321; - - float numer = d1343 * d4321 - d1321 * d4343; - - mua = numer / denom; - mua = clamp( mua, 0.0, 1.0 ); - mub = ( d1343 + d4321 * ( mua ) ) / d4343; - mub = clamp( mub, 0.0, 1.0 ); - - return vec2( mua, mub ); - - } - - void main() { - - #include - - #ifdef USE_DASH - - if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps - - if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX - - #endif - - float alpha = opacity; - - #ifdef WORLD_UNITS - - // Find the closest points on the view ray and the line segment - vec3 rayEnd = normalize( worldPos.xyz ) * 1e5; - vec3 lineDir = worldEnd - worldStart; - vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd ); - - vec3 p1 = worldStart + lineDir * params.x; - vec3 p2 = rayEnd * params.y; - vec3 delta = p1 - p2; - float len = length( delta ); - float norm = len / linewidth; - - #ifndef USE_DASH - - #ifdef USE_ALPHA_TO_COVERAGE - - float dnorm = fwidth( norm ); - alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm ); - - #else - - if ( norm > 0.5 ) { - - discard; - - } - - #endif - - #endif - - #else - - #ifdef USE_ALPHA_TO_COVERAGE - - // artifacts appear on some hardware if a derivative is taken within a conditional - float a = vUv.x; - float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; - float len2 = a * a + b * b; - float dlen = fwidth( len2 ); - - if ( abs( vUv.y ) > 1.0 ) { - - alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 ); - - } - - #else - - if ( abs( vUv.y ) > 1.0 ) { - - float a = vUv.x; - float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; - float len2 = a * a + b * b; - - if ( len2 > 1.0 ) discard; - - } - - #endif - - #endif - - vec4 diffuseColor = vec4( diffuse, alpha ); - #ifdef USE_COLOR - #ifdef USE_LINE_COLOR_ALPHA - diffuseColor *= vLineColor; - #else - diffuseColor.rgb *= vLineColor; - #endif - #endif - - #include - - gl_FragColor = diffuseColor; - - #include - #include <${Z6>=154?"colorspace_fragment":"encodings_fragment"}> - #include - #include - - } - `,clipping:!0}),this.isLineMaterial=!0,this.onBeforeCompile=function(){this.transparent?this.defines.USE_LINE_COLOR_ALPHA="1":delete this.defines.USE_LINE_COLOR_ALPHA},Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(t){this.uniforms.diffuse.value=t}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(t){t===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(t){this.uniforms.linewidth.value=t}},dashed:{enumerable:!0,get:function(){return"USE_DASH"in this.defines},set(t){!!t!="USE_DASH"in this.defines&&(this.needsUpdate=!0),t===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(t){this.uniforms.dashScale.value=t}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(t){this.uniforms.dashSize.value=t}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(t){this.uniforms.dashOffset.value=t}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(t){this.uniforms.gapSize.value=t}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(t){this.uniforms.opacity.value=t}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(t){this.uniforms.resolution.value.copy(t)}},alphaToCoverage:{enumerable:!0,get:function(){return"USE_ALPHA_TO_COVERAGE"in this.defines},set:function(t){!!t!="USE_ALPHA_TO_COVERAGE"in this.defines&&(this.needsUpdate=!0),t===!0?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(e)}},rs=new S1,jn=new z,Kn=new z,u0=new S1,c0=new S1,Ae=new S1,ss=new z,is=new q0,f0=new Bl,Yn=new z,_o=new qi,Ao=new Hi,Ce=new S1,De,m2;function ea(e,t,o){return Ce.set(0,0,-t,1).applyMatrix4(e.projectionMatrix),Ce.multiplyScalar(1/Ce.w),Ce.x=m2/o.width,Ce.y=m2/o.height,Ce.applyMatrix4(e.projectionMatrixInverse),Ce.multiplyScalar(1/Ce.w),Math.abs(Math.max(Ce.x,Ce.y))}function ou(e,t){const o=e.matrixWorld,r=e.geometry,s=r.attributes.instanceStart,i=r.attributes.instanceEnd,n=Math.min(r.instanceCount,s.count);for(let a=0,l=n;ac&&c0.z>c)continue;if(u0.z>c){const N=u0.z-c0.z,v=(u0.z-c)/N;u0.lerp(c0,v)}else if(c0.z>c){const N=c0.z-u0.z,v=(c0.z-c)/N;c0.lerp(u0,v)}u0.applyMatrix4(r),c0.applyMatrix4(r),u0.multiplyScalar(1/u0.w),c0.multiplyScalar(1/c0.w),u0.x*=s.x/2,u0.y*=s.y/2,c0.x*=s.x/2,c0.y*=s.y/2,f0.start.copy(u0),f0.start.z=0,f0.end.copy(c0),f0.end.z=0;const f=f0.closestPointToPointParameter(ss,!0);f0.at(f,Yn);const p=Ft.lerp(u0.z,c0.z,f),m=p>=-1&&p<=1,b=ss.distanceTo(Yn)N.size),f=_.useMemo(()=>n?new J6:new su,[n]),[p]=_.useState(()=>new Ki),m=(r==null||(c=r[0])==null?void 0:c.length)===4?4:3,b=_.useMemo(()=>{const N=n?new ji:new H6,v=t.map(M=>{const T=Array.isArray(M);return M instanceof z||M instanceof S1?[M.x,M.y,M.z]:M instanceof p1?[M.x,M.y,0]:T&&M.length===3?[M[0],M[1],M[2]]:T&&M.length===2?[M[0],M[1],0]:M});if(N.setPositions(v.flat()),r){o=16777215;const M=r.map(T=>T instanceof de?T.toArray():T);N.setColors(M.flat(),m)}return N},[t,n,r,m]);return _.useLayoutEffect(()=>{f.computeLineDistances()},[t,f]),_.useLayoutEffect(()=>{a?p.defines.USE_DASH="":delete p.defines.USE_DASH,p.needsUpdate=!0},[a,p]),_.useEffect(()=>()=>{b.dispose(),p.dispose()},[b]),_.createElement("primitive",ro({object:f,ref:u},l),_.createElement("primitive",{object:b,attach:"geometry"}),_.createElement("primitive",ro({object:p,attach:"material",color:o,vertexColors:!!r,resolution:[h.width,h.height],linewidth:(d=s??i)!==null&&d!==void 0?d:1,dashed:a,transparent:m===4},l)))}),di=kr(J5(),1),iu=(()=>{const e=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),t=new Float32Array([0,0,2,0,0,2]),o=new i3;return o.setAttribute("position",new p2(e,3)),o.setAttribute("uv",new p2(t,2)),o})(),D0=class hi{static get fullscreenGeometry(){return iu}constructor(t="Pass",o=new yr,r=new fo){this.name=t,this.renderer=null,this.scene=o,this.camera=r,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthBlit=!1,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(t){if(this.rtt===t){const o=this.fullscreenMaterial;o!==null&&(o.needsUpdate=!0),this.rtt=!t}}set mainScene(t){}set mainCamera(t){}setRenderer(t){this.renderer=t}isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}get fullscreenMaterial(){return this.screen!==null?this.screen.material:null}set fullscreenMaterial(t){let o=this.screen;o!==null?o.material=t:(o=new $e(hi.fullscreenGeometry,t),o.frustumCulled=!1,this.scene===null&&(this.scene=new yr),this.scene.add(o),this.screen=o)}getFullscreenMaterial(){return this.fullscreenMaterial}setFullscreenMaterial(t){this.fullscreenMaterial=t}getDepthTexture(){return null}setDepthTexture(t,o=c3){}render(t,o,r,s,i){throw new Error("Render method not implemented!")}setSize(t,o){}initialize(t,o,r){}dispose(){for(const t of Object.keys(this)){const o=this[t];(o instanceof Te||o instanceof Tr||o instanceof po||o instanceof hi)&&this[t].dispose()}this.fullscreenMaterial!==null&&this.fullscreenMaterial.dispose()}},nu=class extends D0{constructor(){super("ClearMaskPass",null,null),this.needsSwap=!1}render(e,t,o,r,s){const i=e.state.buffers.stencil;i.setLocked(!1),i.setTest(!1)}},au=`#ifdef COLOR_WRITE -#include -#include -#ifdef FRAMEBUFFER_PRECISION_HIGH -uniform mediump sampler2D inputBuffer; -#else -uniform lowp sampler2D inputBuffer; -#endif -#endif -#ifdef DEPTH_WRITE -#include -#ifdef GL_FRAGMENT_PRECISION_HIGH -uniform highp sampler2D depthBuffer; -#else -uniform mediump sampler2D depthBuffer; -#endif -float readDepth(const in vec2 uv){ -#if DEPTH_PACKING == 3201 -return unpackRGBAToDepth(texture2D(depthBuffer,uv)); -#else -return texture2D(depthBuffer,uv).r; -#endif -} -#endif -#ifdef USE_WEIGHTS -uniform vec4 channelWeights; -#endif -uniform float opacity;varying vec2 vUv;void main(){ -#ifdef COLOR_WRITE -vec4 texel=texture2D(inputBuffer,vUv); -#ifdef USE_WEIGHTS -texel*=channelWeights; -#endif -gl_FragColor=opacity*texel; -#ifdef COLOR_SPACE_CONVERSION -#include -#endif -#include -#else -gl_FragColor=vec4(0.0); -#endif -#ifdef DEPTH_WRITE -gl_FragDepth=readDepth(vUv); -#endif -}`,j6="varying vec2 vUv;void main(){vUv=position.xy*0.5+0.5;gl_Position=vec4(position.xy,1.0,1.0);}",K6=class extends ht{constructor(){super({name:"CopyMaterial",defines:{COLOR_SPACE_CONVERSION:"1",DEPTH_PACKING:"0",COLOR_WRITE:"1"},uniforms:{inputBuffer:new A1(null),depthBuffer:new A1(null),channelWeights:new A1(null),opacity:new A1(1)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:au,vertexShader:j6}),this.depthFunc=1}get inputBuffer(){return this.uniforms.inputBuffer.value}set inputBuffer(e){const t=e!==null;this.colorWrite!==t&&(t?this.defines.COLOR_WRITE=!0:delete this.defines.COLOR_WRITE,this.colorWrite=t,this.needsUpdate=!0),this.uniforms.inputBuffer.value=e}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(e){const t=e!==null;this.depthWrite!==t&&(t?this.defines.DEPTH_WRITE=!0:delete this.defines.DEPTH_WRITE,this.depthTest=t,this.depthWrite=t,this.needsUpdate=!0),this.uniforms.depthBuffer.value=e}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}get colorSpaceConversion(){return this.defines.COLOR_SPACE_CONVERSION!==void 0}set colorSpaceConversion(e){this.colorSpaceConversion!==e&&(e?this.defines.COLOR_SPACE_CONVERSION=!0:delete this.defines.COLOR_SPACE_CONVERSION,this.needsUpdate=!0)}get channelWeights(){return this.uniforms.channelWeights.value}set channelWeights(e){e!==null?(this.defines.USE_WEIGHTS="1",this.uniforms.channelWeights.value=e):delete this.defines.USE_WEIGHTS,this.needsUpdate=!0}setInputBuffer(e){this.uniforms.inputBuffer.value=e}getOpacity(e){return this.uniforms.opacity.value}setOpacity(e){this.uniforms.opacity.value=e}},lu=class extends D0{constructor(e,t=!0){super("CopyPass"),this.fullscreenMaterial=new K6,this.needsSwap=!1,this.renderTarget=e,e===void 0&&(this.renderTarget=new Te(1,1,{minFilter:Z1,magFilter:Z1,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="CopyPass.Target"),this.autoResize=t}get resize(){return this.autoResize}set resize(e){this.autoResize=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}setAutoResizeEnabled(e){this.autoResize=e}render(e,t,o,r,s){this.fullscreenMaterial.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){this.autoResize&&this.renderTarget.setSize(e,t)}initialize(e,t,o){o!==void 0&&(this.renderTarget.texture.type=o,o!==1009?this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1":e!==null&&e.outputColorSpace==="srgb"&&(this.renderTarget.texture.colorSpace=F0))}},ta=new de,Y6=class extends D0{constructor(e=!0,t=!0,o=!1){super("ClearPass",null,null),this.needsSwap=!1,this.color=e,this.depth=t,this.stencil=o,this.overrideClearColor=null,this.overrideClearAlpha=-1}setClearFlags(e,t,o){this.color=e,this.depth=t,this.stencil=o}getOverrideClearColor(){return this.overrideClearColor}setOverrideClearColor(e){this.overrideClearColor=e}getOverrideClearAlpha(){return this.overrideClearAlpha}setOverrideClearAlpha(e){this.overrideClearAlpha=e}render(e,t,o,r,s){const i=this.overrideClearColor,n=this.overrideClearAlpha,a=e.getClearAlpha(),l=i!==null,u=n>=0;l?(e.getClearColor(ta),e.setClearColor(i,u?n:a)):u&&e.setClearAlpha(n),e.setRenderTarget(this.renderToScreen?null:t),e.clear(this.color,this.depth,this.stencil),l?e.setClearColor(ta,a):u&&e.setClearAlpha(a)}},uu=class extends D0{constructor(e,t){super("MaskPass",e,t),this.needsSwap=!1,this.clearPass=new Y6(!1,!1,!0),this.inverse=!1}set mainScene(e){this.scene=e}set mainCamera(e){this.camera=e}get inverted(){return this.inverse}set inverted(e){this.inverse=e}get clear(){return this.clearPass.enabled}set clear(e){this.clearPass.enabled=e}getClearPass(){return this.clearPass}isInverted(){return this.inverted}setInverted(e){this.inverted=e}render(e,t,o,r,s){const i=e.getContext(),n=e.state.buffers,a=this.scene,l=this.camera,u=this.clearPass,c=this.inverted?0:1,d=1-c;n.color.setMask(!1),n.depth.setMask(!1),n.color.setLocked(!0),n.depth.setLocked(!0),n.stencil.setTest(!0),n.stencil.setOp(i.REPLACE,i.REPLACE,i.REPLACE),n.stencil.setFunc(i.ALWAYS,c,4294967295),n.stencil.setClear(d),n.stencil.setLocked(!0),this.clearPass.enabled&&(this.renderToScreen?u.render(e,null):(u.render(e,t),u.render(e,o))),this.renderToScreen?(e.setRenderTarget(null),e.render(a,l)):(e.setRenderTarget(t),e.render(a,l),e.setRenderTarget(o),e.render(a,l)),n.color.setLocked(!1),n.depth.setLocked(!1),n.stencil.setLocked(!1),n.stencil.setFunc(i.EQUAL,1,4294967295),n.stencil.setOp(i.KEEP,i.KEEP,i.KEEP),n.stencil.setLocked(!0)}},ns=1/1e3,cu=1e3,du=class{constructor(){this.startTime=performance.now(),this.previousTime=0,this.currentTime=0,this._delta=0,this._elapsed=0,this._fixedDelta=1e3/60,this.timescale=1,this.useFixedDelta=!1,this._autoReset=!1}get autoReset(){return this._autoReset}set autoReset(e){typeof document<"u"&&document.hidden!==void 0&&(e?document.addEventListener("visibilitychange",this):document.removeEventListener("visibilitychange",this),this._autoReset=e)}get delta(){return this._delta*ns}get fixedDelta(){return this._fixedDelta*ns}set fixedDelta(e){this._fixedDelta=e*cu}get elapsed(){return this._elapsed*ns}update(e){this.useFixedDelta?this._delta=this.fixedDelta:(this.previousTime=this.currentTime,this.currentTime=(e!==void 0?e:performance.now())-this.startTime,this._delta=this.currentTime-this.previousTime),this._delta*=this.timescale,this._elapsed+=this._delta}reset(){this._delta=0,this._elapsed=0,this.currentTime=performance.now()-this.startTime}getDelta(){return this.delta}getElapsed(){return this.elapsed}handleEvent(e){document.hidden||(this.currentTime=performance.now()-this.startTime)}dispose(){this.autoReset=!1}},hu=class{constructor(e=null,{depthBuffer:t=!0,stencilBuffer:o=!1,multisampling:r=0,frameBufferType:s}={}){this.renderer=null,this.inputBuffer=this.createBuffer(t,o,s,r),this.outputBuffer=this.inputBuffer.clone(),this.copyPass=new lu,this.depthTexture=null,this.depthRenderTarget=null,this.passes=[],this.timer=new du,this.autoRenderToScreen=!0,this.setRenderer(e)}get multisampling(){return this.inputBuffer.samples}set multisampling(e){const t=this.inputBuffer,o=this.multisampling;o>0&&e>0?(this.inputBuffer.samples=e,this.outputBuffer.samples=e,this.inputBuffer.dispose(),this.outputBuffer.dispose()):o!==e&&(this.inputBuffer.dispose(),this.outputBuffer.dispose(),this.inputBuffer=this.createBuffer(t.depthBuffer,t.stencilBuffer,t.texture.type,e),this.outputBuffer=this.inputBuffer.clone())}getTimer(){return this.timer}getRenderer(){return this.renderer}setRenderer(e){if(this.renderer=e,e!==null){const t=e.getSize(new p1),o=e.getContext().getContextAttributes().alpha,r=this.inputBuffer.texture.type;r===1009&&e.outputColorSpace==="srgb"&&(this.inputBuffer.texture.colorSpace=F0,this.outputBuffer.texture.colorSpace=F0,this.inputBuffer.dispose(),this.outputBuffer.dispose()),e.autoClear=!1,this.setSize(t.width,t.height);for(const s of this.passes)s.initialize(e,o,r)}}replaceRenderer(e,t=!0){const o=this.renderer,r=o.domElement.parentNode;return this.setRenderer(e),t&&r!==null&&(r.removeChild(o.domElement),r.appendChild(e.domElement)),o}createDepthTexture(){const e=this.inputBuffer,t=new ye;this.depthTexture=t,e.stencilBuffer?(t.format=Ut,t.type=Wt):t.type=oe;const o=t.clone();return o.name="EffectComposer.StableDepth",this.depthRenderTarget=new Te(e.width,e.height,{depthBuffer:!0,stencilBuffer:e.stencilBuffer,depthTexture:o}),o}blitDepthBuffer(e){const t=this.renderer,o=this.depthRenderTarget,r=t.properties,s=t.getContext();t.setRenderTarget(o);const i=r.get(e).__webglFramebuffer,n=r.get(o).__webglFramebuffer,a=e.stencilBuffer?s.DEPTH_BUFFER_BIT|s.STENCIL_BUFFER_BIT:s.DEPTH_BUFFER_BIT;s.bindFramebuffer(s.READ_FRAMEBUFFER,i),s.bindFramebuffer(s.DRAW_FRAMEBUFFER,n),s.blitFramebuffer(0,0,e.width,e.height,0,0,o.width,o.height,a,s.NEAREST),s.bindFramebuffer(s.READ_FRAMEBUFFER,null),s.bindFramebuffer(s.DRAW_FRAMEBUFFER,null),t.setRenderTarget(null)}deleteDepthTexture(){if(this.depthTexture!==null){this.depthTexture.dispose(),this.depthTexture=null,this.depthRenderTarget.dispose(),this.depthRenderTarget=null,this.inputBuffer.depthTexture=null,this.outputBuffer.depthTexture=null;for(const e of this.passes)e.setDepthTexture(null)}}createBuffer(e,t,o,r){const s=this.renderer,i=s===null?new p1:s.getDrawingBufferSize(new p1),n={minFilter:Z1,magFilter:Z1,stencilBuffer:t,depthBuffer:e,type:o},a=new Te(i.width,i.height,n);return r>0&&(a.samples=r),o===1009&&s!==null&&s.outputColorSpace==="srgb"&&(a.texture.colorSpace=F0),a.texture.name="EffectComposer.Buffer",a.texture.generateMipmaps=!1,a}setMainScene(e){for(const t of this.passes)t.mainScene=e}setMainCamera(e){for(const t of this.passes)t.mainCamera=e}addPass(e,t){const o=this.passes,r=this.renderer,s=r.getDrawingBufferSize(new p1),i=r.getContext().getContextAttributes().alpha,n=this.inputBuffer.texture.type;if(e.renderer=r,e.setSize(s.width,s.height),e.initialize(r,i,n),this.autoRenderToScreen&&(o.length>0&&(o[o.length-1].renderToScreen=!1),e.renderToScreen&&(this.autoRenderToScreen=!1)),t!==void 0?o.splice(t,0,e):o.push(e),this.autoRenderToScreen&&(o[o.length-1].renderToScreen=!0),e.needsDepthTexture||this.depthTexture!==null)if(this.depthTexture===null){const a=this.createDepthTexture();for(e of o)e.setDepthTexture(a)}else{const a=this.depthRenderTarget.depthTexture;e.setDepthTexture(a)}}removePass(e){const t=this.passes,o=t.indexOf(e);if(o!==-1&&t.splice(o,1).length>0){if(this.depthTexture!==null){const r=(s,i)=>s||i.needsDepthTexture;if(!t.reduce(r,!1)){const s=this.depthRenderTarget.depthTexture;e.getDepthTexture()===s&&e.setDepthTexture(null),this.deleteDepthTexture()}}this.autoRenderToScreen&&o===t.length&&(e.renderToScreen=!1,t.length>0&&(t[t.length-1].renderToScreen=!0))}}removeAllPasses(){const e=this.passes;this.deleteDepthTexture(),e.length>0&&(this.autoRenderToScreen&&(e[e.length-1].renderToScreen=!1),this.passes=[])}render(e){const t=this.renderer,o=this.copyPass;let r=this.inputBuffer,s=this.outputBuffer,i,n=!1;e===void 0&&(this.timer.update(),e=this.timer.getDelta());for(const a of this.passes)if(a.enabled){if(r.depthTexture=this.depthTexture,s.depthTexture=null,a.render(t,r,s,e,n),a.needsDepthBlit&&this.depthRenderTarget!==null&&this.blitDepthBuffer(r),a.needsSwap){if(n){o.renderToScreen=a.renderToScreen;const l=t.getContext(),u=t.state.buffers.stencil;u.setFunc(l.NOTEQUAL,1,4294967295),o.render(t,r,s,e,n),u.setFunc(l.EQUAL,1,4294967295)}i=r,r=s,s=i}a instanceof uu?n=!0:a instanceof nu&&(n=!1)}}setSize(e,t,o){const r=this.renderer,s=r.getSize(new p1);(e===void 0||t===void 0)&&(e=s.width,t=s.height),(s.width!==e||s.height!==t)&&r.setSize(e,t,o);const i=r.getDrawingBufferSize(new p1);this.inputBuffer.setSize(i.width,i.height),this.outputBuffer.setSize(i.width,i.height),this.depthRenderTarget!==null&&this.depthRenderTarget.setSize(i.width,i.height);for(const n of this.passes)n.setSize(i.width,i.height)}reset(){this.dispose(),this.autoRenderToScreen=!0}dispose(){for(const e of this.passes)e.dispose();this.passes=[],this.inputBuffer!==null&&this.inputBuffer.dispose(),this.outputBuffer!==null&&this.outputBuffer.dispose(),this.deleteDepthTexture(),this.copyPass.dispose(),this.timer.dispose(),D0.fullscreenGeometry.dispose()}},g2={NONE:0,DEPTH:1,CONVOLUTION:2},_1={FRAGMENT_HEAD:"FRAGMENT_HEAD",FRAGMENT_MAIN_UV:"FRAGMENT_MAIN_UV",FRAGMENT_MAIN_IMAGE:"FRAGMENT_MAIN_IMAGE",VERTEX_HEAD:"VERTEX_HEAD",VERTEX_MAIN_SUPPORT:"VERTEX_MAIN_SUPPORT"},fu=class{constructor(){this.shaderParts=new Map([[_1.FRAGMENT_HEAD,null],[_1.FRAGMENT_MAIN_UV,null],[_1.FRAGMENT_MAIN_IMAGE,null],[_1.VERTEX_HEAD,null],[_1.VERTEX_MAIN_SUPPORT,null]]),this.defines=new Map,this.uniforms=new Map,this.blendModes=new Map,this.extensions=new Set,this.attributes=g2.NONE,this.varyings=new Set,this.uvTransformation=!1,this.readDepth=!1,this.colorSpace=Zi}},as=!1,oa=class{constructor(e=null){this.originalMaterials=new Map,this.material=null,this.materials=null,this.materialsBackSide=null,this.materialsDoubleSide=null,this.materialsFlatShaded=null,this.materialsFlatShadedBackSide=null,this.materialsFlatShadedDoubleSide=null,this.setMaterial(e),this.meshCount=0,this.replaceMaterial=t=>{if(t.isMesh){let o;if(t.material.flatShading)switch(t.material.side){case 2:o=this.materialsFlatShadedDoubleSide;break;case 1:o=this.materialsFlatShadedBackSide;break;default:o=this.materialsFlatShaded;break}else switch(t.material.side){case 2:o=this.materialsDoubleSide;break;case 1:o=this.materialsBackSide;break;default:o=this.materials;break}this.originalMaterials.set(t,t.material),t.isSkinnedMesh?t.material=o[2]:t.isInstancedMesh?t.material=o[1]:t.material=o[0],++this.meshCount}}}cloneMaterial(e){if(!(e instanceof ht))return e.clone();const t=e.uniforms,o=new Map;for(const s in t){const i=t[s].value;i.isRenderTargetTexture&&(t[s].value=null,o.set(s,i))}const r=e.clone();for(const s of o)t[s[0]].value=s[1],r.uniforms[s[0]].value=s[1];return r}setMaterial(e){if(this.disposeMaterials(),this.material=e,e!==null){const t=this.materials=[this.cloneMaterial(e),this.cloneMaterial(e),this.cloneMaterial(e)];for(const o of t)o.uniforms=Object.assign({},e.uniforms),o.side=0;t[2].skinning=!0,this.materialsBackSide=t.map(o=>{const r=this.cloneMaterial(o);return r.uniforms=Object.assign({},e.uniforms),r.side=1,r}),this.materialsDoubleSide=t.map(o=>{const r=this.cloneMaterial(o);return r.uniforms=Object.assign({},e.uniforms),r.side=2,r}),this.materialsFlatShaded=t.map(o=>{const r=this.cloneMaterial(o);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r}),this.materialsFlatShadedBackSide=t.map(o=>{const r=this.cloneMaterial(o);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r.side=1,r}),this.materialsFlatShadedDoubleSide=t.map(o=>{const r=this.cloneMaterial(o);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r.side=2,r})}}render(e,t,o){const r=e.shadowMap.enabled;if(e.shadowMap.enabled=!1,as){const s=this.originalMaterials;this.meshCount=0,t.traverse(this.replaceMaterial),e.render(t,o);for(const i of s)i[0].material=i[1];this.meshCount!==s.size&&s.clear()}else{const s=t.overrideMaterial;t.overrideMaterial=this.material,e.render(t,o),t.overrideMaterial=s}e.shadowMap.enabled=r}disposeMaterials(){if(this.material!==null){const e=this.materials.concat(this.materialsBackSide).concat(this.materialsDoubleSide).concat(this.materialsFlatShaded).concat(this.materialsFlatShadedBackSide).concat(this.materialsFlatShadedDoubleSide);for(const t of e)t.dispose()}}dispose(){this.originalMaterials.clear(),this.disposeMaterials()}static get workaroundEnabled(){return as}static set workaroundEnabled(e){as=e}},pt=-1,x0=class extends R2{constructor(e=null,t=pt,o=pt,r=1){super(),e!==null&&this.addEventListener("change",()=>e.setSize(this.baseSize.width,this.baseSize.height)),this.baseSize=new p1(1,1),this.preferredSize=new p1(t,o),this.target=this.preferredSize,this.s=r,this.effectiveSize=new p1,this.addEventListener("change",()=>this.updateEffectiveSize()),this.updateEffectiveSize()}updateEffectiveSize(){const e=this.baseSize,t=this.preferredSize,o=this.effectiveSize,r=this.scale;t.width!==pt?o.width=t.width:t.height!==pt?o.width=Math.round(t.height*(e.width/Math.max(e.height,1))):o.width=Math.round(e.width*r),t.height!==pt?o.height=t.height:t.width!==pt?o.height=Math.round(t.width/Math.max(e.width/Math.max(e.height,1),1)):o.height=Math.round(e.height*r)}get width(){return this.effectiveSize.width}set width(e){this.preferredWidth=e}get height(){return this.effectiveSize.height}set height(e){this.preferredHeight=e}getWidth(){return this.width}getHeight(){return this.height}get scale(){return this.s}set scale(e){this.s!==e&&(this.s=e,this.preferredSize.setScalar(pt),this.dispatchEvent({type:"change"}))}getScale(){return this.scale}setScale(e){this.scale=e}get baseWidth(){return this.baseSize.width}set baseWidth(e){this.baseSize.width!==e&&(this.baseSize.width=e,this.dispatchEvent({type:"change"}))}getBaseWidth(){return this.baseWidth}setBaseWidth(e){this.baseWidth=e}get baseHeight(){return this.baseSize.height}set baseHeight(e){this.baseSize.height!==e&&(this.baseSize.height=e,this.dispatchEvent({type:"change"}))}getBaseHeight(){return this.baseHeight}setBaseHeight(e){this.baseHeight=e}setBaseSize(e,t){(this.baseSize.width!==e||this.baseSize.height!==t)&&(this.baseSize.set(e,t),this.dispatchEvent({type:"change"}))}get preferredWidth(){return this.preferredSize.width}set preferredWidth(e){this.preferredSize.width!==e&&(this.preferredSize.width=e,this.dispatchEvent({type:"change"}))}getPreferredWidth(){return this.preferredWidth}setPreferredWidth(e){this.preferredWidth=e}get preferredHeight(){return this.preferredSize.height}set preferredHeight(e){this.preferredSize.height!==e&&(this.preferredSize.height=e,this.dispatchEvent({type:"change"}))}getPreferredHeight(){return this.preferredHeight}setPreferredHeight(e){this.preferredHeight=e}setPreferredSize(e,t){(this.preferredSize.width!==e||this.preferredSize.height!==t)&&(this.preferredSize.set(e,t),this.dispatchEvent({type:"change"}))}copy(e){this.s=e.scale,this.baseSize.set(e.baseWidth,e.baseHeight),this.preferredSize.set(e.preferredWidth,e.preferredHeight),this.dispatchEvent({type:"change"})}static get AUTO_SIZE(){return pt}},N1={SKIP:9,SET:30,ADD:0,ALPHA:1,AVERAGE:2,COLOR:3,COLOR_BURN:4,COLOR_DODGE:5,DARKEN:6,DIFFERENCE:7,DIVIDE:8,DST:9,EXCLUSION:10,HARD_LIGHT:11,HARD_MIX:12,HUE:13,INVERT:14,INVERT_RGB:15,LIGHTEN:16,LINEAR_BURN:17,LINEAR_DODGE:18,LINEAR_LIGHT:19,LUMINOSITY:20,MULTIPLY:21,NEGATION:22,NORMAL:23,OVERLAY:24,PIN_LIGHT:25,REFLECT:26,SATURATION:27,SCREEN:28,SOFT_LIGHT:29,SRC:30,SUBTRACT:31,VIVID_LIGHT:32},pu=new Map([[N1.ADD,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb+src.rgb;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.ALPHA,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){return mix(dst,src,src.a*opacity);}"],[N1.AVERAGE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=(dst.rgb+src.rgb)*0.5;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.COLOR,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(b.xy,a.z));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.COLOR_BURN,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=dst.rgb,b=src.rgb;vec3 c=mix(step(0.0,b)*(1.0-min(vec3(1.0),(1.0-a)/max(b,1e-9))),vec3(1.0),step(1.0,a));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.COLOR_DODGE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=dst.rgb,b=src.rgb;vec3 c=step(0.0,a)*mix(min(vec3(1.0),a/max(1.0-b,1e-9)),vec3(1.0),step(1.0,b));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.DARKEN,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=min(dst.rgb,src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.DIFFERENCE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=abs(dst.rgb-src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.DIVIDE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb/max(src.rgb,1e-9);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.DST,null],[N1.EXCLUSION,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb+src.rgb-2.0*dst.rgb*src.rgb;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.HARD_LIGHT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=min(dst.rgb,1.0);vec3 b=min(src.rgb,1.0);vec3 c=mix(2.0*a*b,1.0-2.0*(1.0-a)*(1.0-b),step(0.5,b));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.HARD_MIX,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=step(1.0,dst.rgb+src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.HUE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(b.x,a.yz));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.INVERT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(1.0-src.rgb,0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.INVERT_RGB,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=src.rgb*max(1.0-dst.rgb,0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.LIGHTEN,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(dst.rgb,src.rgb);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.LINEAR_BURN,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=clamp(src.rgb+dst.rgb-1.0,0.0,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.LINEAR_DODGE,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=min(dst.rgb+src.rgb,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.LINEAR_LIGHT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=clamp(2.0*src.rgb+dst.rgb-1.0,0.0,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.LUMINOSITY,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(a.xy,b.z));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.MULTIPLY,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb*src.rgb;return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.NEGATION,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(1.0-abs(1.0-dst.rgb-src.rgb),0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.NORMAL,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){return mix(dst,src,opacity);}"],[N1.OVERLAY,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=2.0*src.rgb*dst.rgb;vec3 b=1.0-2.0*(1.0-src.rgb)*(1.0-dst.rgb);vec3 c=mix(a,b,step(0.5,dst.rgb));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.PIN_LIGHT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 src2=2.0*src.rgb;vec3 c=mix(mix(src2,dst.rgb,step(0.5*dst.rgb,src.rgb)),max(src2-1.0,vec3(0.0)),step(dst.rgb,src2-1.0));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.REFLECT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=min(dst.rgb*dst.rgb/max(1.0-src.rgb,1e-9),1.0);vec3 c=mix(a,src.rgb,step(1.0,src.rgb));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.SATURATION,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 a=RGBToHSL(dst.rgb);vec3 b=RGBToHSL(src.rgb);vec3 c=HSLToRGB(vec3(a.x,b.y,a.z));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.SCREEN,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=dst.rgb+src.rgb-min(dst.rgb*src.rgb,1.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.SOFT_LIGHT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 src2=2.0*src.rgb;vec3 d=dst.rgb+(src2-1.0);vec3 w=step(0.5,src.rgb);vec3 a=dst.rgb-(1.0-src2)*dst.rgb*(1.0-dst.rgb);vec3 b=mix(d*(sqrt(dst.rgb)-dst.rgb),d*dst.rgb*((16.0*dst.rgb-12.0)*dst.rgb+3.0),w*(1.0-step(0.25,dst.rgb)));vec3 c=mix(a,b,w);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.SRC,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){return src;}"],[N1.SUBTRACT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=max(dst.rgb-src.rgb,0.0);return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"],[N1.VIVID_LIGHT,"vec4 blend(const in vec4 dst,const in vec4 src,const in float opacity){vec3 c=mix(max(1.0-min((1.0-dst.rgb)/(2.0*src.rgb),1.0),0.0),min(dst.rgb/(2.0*(1.0-src.rgb)),1.0),step(0.5,src.rgb));return mix(dst,vec4(c,max(dst.a,src.a)),opacity);}"]]),mu=class extends R2{constructor(e,t=1){super(),this._blendFunction=e,this.opacity=new A1(t)}getOpacity(){return this.opacity.value}setOpacity(e){this.opacity.value=e}get blendFunction(){return this._blendFunction}set blendFunction(e){this._blendFunction=e,this.dispatchEvent({type:"change"})}getBlendFunction(){return this.blendFunction}setBlendFunction(e){this.blendFunction=e}getShaderCode(){return pu.get(this.blendFunction)}},fi=class extends R2{constructor(e,t,{attributes:o=g2.NONE,blendFunction:r=N1.NORMAL,defines:s=new Map,uniforms:i=new Map,extensions:n=null,vertexShader:a=null}={}){super(),this.name=e,this.renderer=null,this.attributes=o,this.fragmentShader=t,this.vertexShader=a,this.defines=s,this.uniforms=i,this.extensions=n,this.blendMode=new mu(r),this.blendMode.addEventListener("change",l=>this.setChanged()),this._inputColorSpace=Zi,this._outputColorSpace=""}get inputColorSpace(){return this._inputColorSpace}set inputColorSpace(e){this._inputColorSpace=e,this.setChanged()}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e,this.setChanged()}set mainScene(e){}set mainCamera(e){}getName(){return this.name}setRenderer(e){this.renderer=e}getDefines(){return this.defines}getUniforms(){return this.uniforms}getExtensions(){return this.extensions}getBlendMode(){return this.blendMode}getAttributes(){return this.attributes}setAttributes(e){this.attributes=e,this.setChanged()}getFragmentShader(){return this.fragmentShader}setFragmentShader(e){this.fragmentShader=e,this.setChanged()}getVertexShader(){return this.vertexShader}setVertexShader(e){this.vertexShader=e,this.setChanged()}setChanged(){this.dispatchEvent({type:"change"})}setDepthTexture(e,t=c3){}update(e,t,o){}setSize(e,t){}initialize(e,t,o){}dispose(){for(const e of Object.keys(this)){const t=this[e];(t instanceof Te||t instanceof Tr||t instanceof po||t instanceof D0)&&this[e].dispose()}}},Yi={VERY_SMALL:0,SMALL:1,MEDIUM:2,LARGE:3,VERY_LARGE:4,HUGE:5},gu=`#ifdef FRAMEBUFFER_PRECISION_HIGH -uniform mediump sampler2D inputBuffer; -#else -uniform lowp sampler2D inputBuffer; -#endif -varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec4 sum=texture2D(inputBuffer,vUv0);sum+=texture2D(inputBuffer,vUv1);sum+=texture2D(inputBuffer,vUv2);sum+=texture2D(inputBuffer,vUv3);gl_FragColor=sum*0.25; -#include -}`,vu="uniform vec4 texelSize;uniform float kernel;uniform float scale;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec2 uv=position.xy*0.5+0.5;vec2 dUv=(texelSize.xy*vec2(kernel)+texelSize.zw)*scale;vUv0=vec2(uv.x-dUv.x,uv.y+dUv.y);vUv1=vec2(uv.x+dUv.x,uv.y+dUv.y);vUv2=vec2(uv.x+dUv.x,uv.y-dUv.y);vUv3=vec2(uv.x-dUv.x,uv.y-dUv.y);gl_Position=vec4(position.xy,1.0,1.0);}",bu=[new Float32Array([0,0]),new Float32Array([0,1,1]),new Float32Array([0,1,1,2]),new Float32Array([0,1,2,2,3]),new Float32Array([0,1,2,3,4,4,5]),new Float32Array([0,1,2,3,4,5,7,8,9,10])],Nu=class extends ht{constructor(e=new S1){super({name:"KawaseBlurMaterial",uniforms:{inputBuffer:new A1(null),texelSize:new A1(new S1),scale:new A1(1),kernel:new A1(0)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:gu,vertexShader:vu}),this.setTexelSize(e.x,e.y),this.kernelSize=Yi.MEDIUM}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.inputBuffer=e}get kernelSequence(){return bu[this.kernelSize]}get scale(){return this.uniforms.scale.value}set scale(e){this.uniforms.scale.value=e}getScale(){return this.uniforms.scale.value}setScale(e){this.uniforms.scale.value=e}getKernel(){return null}get kernel(){return this.uniforms.kernel.value}set kernel(e){this.uniforms.kernel.value=e}setKernel(e){this.kernel=e}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t,e*.5,t*.5)}setSize(e,t){const o=1/e,r=1/t;this.uniforms.texelSize.value.set(o,r,o*.5,r*.5)}},Mu=class extends D0{constructor({kernelSize:e=Yi.MEDIUM,resolutionScale:t=.5,width:o=x0.AUTO_SIZE,height:r=x0.AUTO_SIZE,resolutionX:s=o,resolutionY:i=r}={}){super("KawaseBlurPass"),this.renderTargetA=new Te(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B";const n=this.resolution=new x0(this,s,i,t);n.addEventListener("change",a=>this.setSize(n.baseWidth,n.baseHeight)),this._blurMaterial=new Nu,this._blurMaterial.kernelSize=e,this.copyMaterial=new K6}getResolution(){return this.resolution}get blurMaterial(){return this._blurMaterial}set blurMaterial(e){this._blurMaterial=e}get dithering(){return this.copyMaterial.dithering}set dithering(e){this.copyMaterial.dithering=e}get kernelSize(){return this.blurMaterial.kernelSize}set kernelSize(e){this.blurMaterial.kernelSize=e}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get scale(){return this.blurMaterial.scale}set scale(e){this.blurMaterial.scale=e}getScale(){return this.blurMaterial.scale}setScale(e){this.blurMaterial.scale=e}getKernelSize(){return this.kernelSize}setKernelSize(e){this.kernelSize=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,o,r,s){const i=this.scene,n=this.camera,a=this.renderTargetA,l=this.renderTargetB,u=this.blurMaterial,c=u.kernelSequence;let d=t;this.fullscreenMaterial=u;for(let h=0,f=c.length;h -#ifdef FRAMEBUFFER_PRECISION_HIGH -uniform mediump sampler2D inputBuffer; -#else -uniform lowp sampler2D inputBuffer; -#endif -#ifdef RANGE -uniform vec2 range; -#elif defined(THRESHOLD) -uniform float threshold;uniform float smoothing; -#endif -varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);float mask=1.0; -#ifdef RANGE -float low=step(range.x,l);float high=step(l,range.y);mask=low*high; -#elif defined(THRESHOLD) -mask=smoothstep(threshold,threshold+smoothing,l); -#endif -#ifdef COLOR -gl_FragColor=texel*mask; -#else -gl_FragColor=vec4(l*mask); -#endif -}`,xu=class extends ht{constructor(e=!1,t=null){super({name:"LuminanceMaterial",defines:{THREE_REVISION:"185".replace(/\D+/g,"")},uniforms:{inputBuffer:new A1(null),threshold:new A1(0),smoothing:new A1(1),range:new A1(null)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:yu,vertexShader:j6}),this.colorOutput=e,this.luminanceRange=t}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get threshold(){return this.uniforms.threshold.value}set threshold(e){this.smoothing>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.threshold.value=e}getThreshold(){return this.threshold}setThreshold(e){this.threshold=e}get smoothing(){return this.uniforms.smoothing.value}set smoothing(e){this.threshold>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.smoothing.value=e}getSmoothingFactor(){return this.smoothing}setSmoothingFactor(e){this.smoothing=e}get useThreshold(){return this.threshold>0||this.smoothing>0}set useThreshold(e){}get colorOutput(){return this.defines.COLOR!==void 0}set colorOutput(e){e?this.defines.COLOR="1":delete this.defines.COLOR,this.needsUpdate=!0}isColorOutputEnabled(e){return this.colorOutput}setColorOutputEnabled(e){this.colorOutput=e}get useRange(){return this.luminanceRange!==null}set useRange(e){this.luminanceRange=null}get luminanceRange(){return this.uniforms.range.value}set luminanceRange(e){e!==null?this.defines.RANGE="1":delete this.defines.RANGE,this.uniforms.range.value=e,this.needsUpdate=!0}getLuminanceRange(){return this.luminanceRange}setLuminanceRange(e){this.luminanceRange=e}},Su=class extends D0{constructor({renderTarget:e,luminanceRange:t,colorOutput:o,resolutionScale:r=1,width:s=x0.AUTO_SIZE,height:i=x0.AUTO_SIZE,resolutionX:n=s,resolutionY:a=i}={}){super("LuminancePass"),this.fullscreenMaterial=new xu(o,t),this.needsSwap=!1,this.renderTarget=e,this.renderTarget===void 0&&(this.renderTarget=new Te(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="LuminancePass.Target");const l=this.resolution=new x0(this,n,a,r);l.addEventListener("change",u=>this.setSize(l.baseWidth,l.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}render(e,t,o,r,s){const i=this.fullscreenMaterial;i.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){const o=this.resolution;o.setBaseSize(e,t),this.renderTarget.setSize(o.width,o.height)}initialize(e,t,o){o!==void 0&&o!==1009&&(this.renderTarget.texture.type=o,this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},Tu=`#ifdef FRAMEBUFFER_PRECISION_HIGH -uniform mediump sampler2D inputBuffer; -#else -uniform lowp sampler2D inputBuffer; -#endif -#define WEIGHT_INNER 0.125 -#define WEIGHT_OUTER 0.05556 -varying vec2 vUv;varying vec2 vUv00;varying vec2 vUv01;varying vec2 vUv02;varying vec2 vUv03;varying vec2 vUv04;varying vec2 vUv05;varying vec2 vUv06;varying vec2 vUv07;varying vec2 vUv08;varying vec2 vUv09;varying vec2 vUv10;varying vec2 vUv11;float clampToBorder(const in vec2 uv){return float(uv.s>=0.0&&uv.s<=1.0&&uv.t>=0.0&&uv.t<=1.0);}void main(){vec4 c=vec4(0.0);vec4 w=WEIGHT_INNER*vec4(clampToBorder(vUv00),clampToBorder(vUv01),clampToBorder(vUv02),clampToBorder(vUv03));c+=w.x*texture2D(inputBuffer,vUv00);c+=w.y*texture2D(inputBuffer,vUv01);c+=w.z*texture2D(inputBuffer,vUv02);c+=w.w*texture2D(inputBuffer,vUv03);w=WEIGHT_OUTER*vec4(clampToBorder(vUv04),clampToBorder(vUv05),clampToBorder(vUv06),clampToBorder(vUv07));c+=w.x*texture2D(inputBuffer,vUv04);c+=w.y*texture2D(inputBuffer,vUv05);c+=w.z*texture2D(inputBuffer,vUv06);c+=w.w*texture2D(inputBuffer,vUv07);w=WEIGHT_OUTER*vec4(clampToBorder(vUv08),clampToBorder(vUv09),clampToBorder(vUv10),clampToBorder(vUv11));c+=w.x*texture2D(inputBuffer,vUv08);c+=w.y*texture2D(inputBuffer,vUv09);c+=w.z*texture2D(inputBuffer,vUv10);c+=w.w*texture2D(inputBuffer,vUv11);c+=WEIGHT_OUTER*texture2D(inputBuffer,vUv);gl_FragColor=c; -#include -}`,wu="uniform vec2 texelSize;varying vec2 vUv;varying vec2 vUv00;varying vec2 vUv01;varying vec2 vUv02;varying vec2 vUv03;varying vec2 vUv04;varying vec2 vUv05;varying vec2 vUv06;varying vec2 vUv07;varying vec2 vUv08;varying vec2 vUv09;varying vec2 vUv10;varying vec2 vUv11;void main(){vUv=position.xy*0.5+0.5;vUv00=vUv+texelSize*vec2(-1.0,1.0);vUv01=vUv+texelSize*vec2(1.0,1.0);vUv02=vUv+texelSize*vec2(-1.0,-1.0);vUv03=vUv+texelSize*vec2(1.0,-1.0);vUv04=vUv+texelSize*vec2(-2.0,2.0);vUv05=vUv+texelSize*vec2(0.0,2.0);vUv06=vUv+texelSize*vec2(2.0,2.0);vUv07=vUv+texelSize*vec2(-2.0,0.0);vUv08=vUv+texelSize*vec2(2.0,0.0);vUv09=vUv+texelSize*vec2(-2.0,-2.0);vUv10=vUv+texelSize*vec2(0.0,-2.0);vUv11=vUv+texelSize*vec2(2.0,-2.0);gl_Position=vec4(position.xy,1.0,1.0);}",_u=class extends ht{constructor(){super({name:"DownsamplingMaterial",uniforms:{inputBuffer:new A1(null),texelSize:new A1(new p1)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:Tu,vertexShader:wu})}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},Au=`#ifdef FRAMEBUFFER_PRECISION_HIGH -uniform mediump sampler2D inputBuffer;uniform mediump sampler2D supportBuffer; -#else -uniform lowp sampler2D inputBuffer;uniform lowp sampler2D supportBuffer; -#endif -uniform float radius;varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5;varying vec2 vUv6;varying vec2 vUv7;void main(){vec4 c=vec4(0.0);c+=texture2D(inputBuffer,vUv0)*0.0625;c+=texture2D(inputBuffer,vUv1)*0.125;c+=texture2D(inputBuffer,vUv2)*0.0625;c+=texture2D(inputBuffer,vUv3)*0.125;c+=texture2D(inputBuffer,vUv)*0.25;c+=texture2D(inputBuffer,vUv4)*0.125;c+=texture2D(inputBuffer,vUv5)*0.0625;c+=texture2D(inputBuffer,vUv6)*0.125;c+=texture2D(inputBuffer,vUv7)*0.0625;vec4 baseColor=texture2D(supportBuffer,vUv);gl_FragColor=mix(baseColor,c,radius); -#include -}`,Cu="uniform vec2 texelSize;varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5;varying vec2 vUv6;varying vec2 vUv7;void main(){vUv=position.xy*0.5+0.5;vUv0=vUv+texelSize*vec2(-1.0,1.0);vUv1=vUv+texelSize*vec2(0.0,1.0);vUv2=vUv+texelSize*vec2(1.0,1.0);vUv3=vUv+texelSize*vec2(-1.0,0.0);vUv4=vUv+texelSize*vec2(1.0,0.0);vUv5=vUv+texelSize*vec2(-1.0,-1.0);vUv6=vUv+texelSize*vec2(0.0,-1.0);vUv7=vUv+texelSize*vec2(1.0,-1.0);gl_Position=vec4(position.xy,1.0,1.0);}",Ru=class extends ht{constructor(){super({name:"UpsamplingMaterial",uniforms:{inputBuffer:new A1(null),supportBuffer:new A1(null),texelSize:new A1(new p1),radius:new A1(.85)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:Au,vertexShader:Cu})}set inputBuffer(e){this.uniforms.inputBuffer.value=e}set supportBuffer(e){this.uniforms.supportBuffer.value=e}get radius(){return this.uniforms.radius.value}set radius(e){this.uniforms.radius.value=e}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},Bu=class extends D0{constructor(){super("MipmapBlurPass"),this.needsSwap=!1,this.renderTarget=new Te(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="Upsampling.Mipmap0",this.downsamplingMipmaps=[],this.upsamplingMipmaps=[],this.downsamplingMaterial=new _u,this.upsamplingMaterial=new Ru,this.resolution=new p1}get texture(){return this.renderTarget.texture}get levels(){return this.downsamplingMipmaps.length}set levels(e){if(this.levels!==e){const t=this.renderTarget;this.dispose(),this.downsamplingMipmaps=[],this.upsamplingMipmaps=[];for(let o=0;o=0;--h){const f=c[h];l.setSize(d.width,d.height),l.inputBuffer=d.texture,l.supportBuffer=u[h].texture,e.setRenderTarget(f),e.render(i,n),d=f}}setSize(e,t){const o=this.resolution;o.set(e,t);let r=o.width,s=o.height;for(let i=0,n=this.downsamplingMipmaps.length;ithis.setSize(f.baseWidth,f.baseHeight))}get texture(){return this.mipmapBlurPass.enabled?this.mipmapBlurPass.texture:this.renderTarget.texture}getTexture(){return this.texture}getResolution(){return this.resolution}getBlurPass(){return this.blurPass}getLuminancePass(){return this.luminancePass}get luminanceMaterial(){return this.luminancePass.fullscreenMaterial}getLuminanceMaterial(){return this.luminancePass.fullscreenMaterial}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get dithering(){return this.blurPass.dithering}set dithering(e){this.blurPass.dithering=e}get kernelSize(){return this.blurPass.kernelSize}set kernelSize(e){this.blurPass.kernelSize=e}get distinction(){return 1}set distinction(e){}get intensity(){return this.uniforms.get("intensity").value}set intensity(e){this.uniforms.get("intensity").value=e}getIntensity(){return this.intensity}setIntensity(e){this.intensity=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}update(e,t,o){const r=this.renderTarget,s=this.luminancePass;s.enabled?(s.render(e,t),this.mipmapBlurPass.enabled?this.mipmapBlurPass.render(e,s.renderTarget):this.blurPass.render(e,s.renderTarget,r)):this.mipmapBlurPass.enabled?this.mipmapBlurPass.render(e,t):this.blurPass.render(e,t,r)}setSize(e,t){const o=this.resolution;o.setBaseSize(e,t),this.renderTarget.setSize(o.width,o.height),this.blurPass.resolution.copy(o),this.luminancePass.setSize(e,t),this.mipmapBlurPass.setSize(e,t)}initialize(e,t,o){this.blurPass.initialize(e,t,o),this.luminancePass.initialize(e,t,o),this.mipmapBlurPass.initialize(e,t,o),o!==void 0&&(this.renderTarget.texture.type=o,e!==null&&e.outputColorSpace==="srgb"&&(this.renderTarget.texture.colorSpace=F0))}},e4=class extends D0{constructor(e,t,o=null){super("RenderPass",e,t),this.needsSwap=!1,this.needsDepthBlit=!0,this.clearPass=new Y6,this.overrideMaterialManager=o===null?null:new oa(o),this.ignoreBackground=!1,this.skipShadowMapUpdate=!1,this.selection=null}set mainScene(e){this.scene=e}set mainCamera(e){this.camera=e}get renderToScreen(){return super.renderToScreen}set renderToScreen(e){super.renderToScreen=e,this.clearPass.renderToScreen=e}get overrideMaterial(){const e=this.overrideMaterialManager;return e!==null?e.material:null}set overrideMaterial(e){const t=this.overrideMaterialManager;e!==null?t!==null?t.setMaterial(e):this.overrideMaterialManager=new oa(e):t!==null&&(t.dispose(),this.overrideMaterialManager=null)}getOverrideMaterial(){return this.overrideMaterial}setOverrideMaterial(e){this.overrideMaterial=e}get clear(){return this.clearPass.enabled}set clear(e){this.clearPass.enabled=e}getSelection(){return this.selection}setSelection(e){this.selection=e}isBackgroundDisabled(){return this.ignoreBackground}setBackgroundDisabled(e){this.ignoreBackground=e}isShadowMapDisabled(){return this.skipShadowMapUpdate}setShadowMapDisabled(e){this.skipShadowMapUpdate=e}getClearPass(){return this.clearPass}render(e,t,o,r,s){const i=this.scene,n=this.camera,a=this.selection,l=n.layers.mask,u=i.background,c=e.shadowMap.autoUpdate,d=this.renderToScreen?null:t;a!==null&&n.layers.set(a.getLayer()),this.skipShadowMapUpdate&&(e.shadowMap.autoUpdate=!1),(this.ignoreBackground||this.clearPass.overrideClearColor!==null)&&(i.background=null),this.clearPass.enabled&&this.clearPass.render(e,t),e.setRenderTarget(d),this.overrideMaterialManager!==null?this.overrideMaterialManager.render(e,i,n):e.render(i,n),n.layers.mask=l,i.background=u,e.shadowMap.autoUpdate=c}},dT=Math.PI*.5,Wu=`#include -#ifdef GL_FRAGMENT_PRECISION_HIGH -uniform highp sampler2D depthBuffer; -#else -uniform mediump sampler2D depthBuffer; -#endif -#ifdef DOWNSAMPLE_NORMALS -uniform lowp sampler2D normalBuffer; -#endif -varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;float readDepth(const in vec2 uv){ -#if DEPTH_PACKING == 3201 -return unpackRGBAToDepth(texture2D(depthBuffer,uv)); -#else -return texture2D(depthBuffer,uv).r; -#endif -}int findBestDepth(const in float samples[4]){float c=(samples[0]+samples[1]+samples[2]+samples[3])*0.25;float distances[4];distances[0]=abs(c-samples[0]);distances[1]=abs(c-samples[1]);distances[2]=abs(c-samples[2]);distances[3]=abs(c-samples[3]);float maxDistance=max(max(distances[0],distances[1]),max(distances[2],distances[3]));int remaining[3];int rejected[3];int i,j,k;for(i=0,j=0,k=0;i<4;++i){if(distances[i]this.setSize(a.baseWidth,a.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}setDepthTexture(e,t=c3){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t}render(e,t,o,r,s){e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){const o=this.resolution;o.setBaseSize(e,t),this.renderTarget.setSize(o.width,o.height),this.fullscreenMaterial.setSize(e,t)}initialize(e,t,o){const r=e.getContext();if(!(r.getExtension("EXT_color_buffer_float")||r.getExtension("EXT_color_buffer_half_float")))throw new Error("Rendering to float texture is not supported.")}},Pu=`#include -#include -#include -#define packFloatToRGBA(v) packDepthToRGBA(v) -#define unpackRGBAToFloat(v) unpackRGBAToDepth(v) -#ifdef FRAMEBUFFER_PRECISION_HIGH -uniform mediump sampler2D inputBuffer; -#else -uniform lowp sampler2D inputBuffer; -#endif -#if DEPTH_PACKING == 3201 -uniform lowp sampler2D depthBuffer; -#elif defined(GL_FRAGMENT_PRECISION_HIGH) -uniform highp sampler2D depthBuffer; -#else -uniform mediump sampler2D depthBuffer; -#endif -uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;vec4 sRGBToLinear(const in vec4 value){return vec4(mix(pow(value.rgb*0.9478672986+vec3(0.0521327014),vec3(2.4)),value.rgb*0.0773993808,vec3(lessThanEqual(value.rgb,vec3(0.04045)))),value.a);}float readDepth(const in vec2 uv){ -#if DEPTH_PACKING == 3201 -float depth=unpackRGBAToDepth(texture2D(depthBuffer,uv)); -#else -float depth=texture2D(depthBuffer,uv).r; -#endif -#if defined(USE_LOGARITHMIC_DEPTH_BUFFER) || defined(LOG_DEPTH) -float d=pow(2.0,depth*log2(cameraFar+1.0))-1.0;float a=cameraFar/(cameraFar-cameraNear);float b=cameraFar*cameraNear/(cameraNear-cameraFar);depth=a+b/d; -#elif defined(USE_REVERSED_DEPTH_BUFFER) -depth=1.0-depth; -#endif -return depth;}float getViewZ(const in float depth){ -#ifdef PERSPECTIVE_CAMERA -return perspectiveDepthToViewZ(depth,cameraNear,cameraFar); -#else -return orthographicDepthToViewZ(depth,cameraNear,cameraFar); -#endif -}vec3 RGBToHCV(const in vec3 RGB){vec4 P=mix(vec4(RGB.bg,-1.0,2.0/3.0),vec4(RGB.gb,0.0,-1.0/3.0),step(RGB.b,RGB.g));vec4 Q=mix(vec4(P.xyw,RGB.r),vec4(RGB.r,P.yzx),step(P.x,RGB.r));float C=Q.x-min(Q.w,Q.y);float H=abs((Q.w-Q.y)/(6.0*C+EPSILON)+Q.z);return vec3(H,C,Q.x);}vec3 RGBToHSL(const in vec3 RGB){vec3 HCV=RGBToHCV(RGB);float L=HCV.z-HCV.y*0.5;float S=HCV.y/(1.0-abs(L*2.0-1.0)+EPSILON);return vec3(HCV.x,S,L);}vec3 HueToRGB(const in float H){float R=abs(H*6.0-3.0)-1.0;float G=2.0-abs(H*6.0-2.0);float B=2.0-abs(H*6.0-4.0);return clamp(vec3(R,G,B),0.0,1.0);}vec3 HSLToRGB(const in vec3 HSL){vec3 RGB=HueToRGB(HSL.x);float C=(1.0-abs(2.0*HSL.z-1.0))*HSL.y;return(RGB-0.5)*C+HSL.z;}FRAGMENT_HEAD void main(){FRAGMENT_MAIN_UV vec4 color0=texture2D(inputBuffer,UV);vec4 color1=vec4(0.0);FRAGMENT_MAIN_IMAGE color0.a=clamp(color0.a,0.0,1.0);gl_FragColor=color0; -#ifdef ENCODE_OUTPUT -#include -#endif -#include -}`,Du="uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;VERTEX_HEAD void main(){vUv=position.xy*0.5+0.5;VERTEX_MAIN_SUPPORT gl_Position=vec4(position.xy,1.0,1.0);}",ku=class extends ht{constructor(e,t,o,r,s=!1){super({name:"EffectMaterial",defines:{THREE_REVISION:"185".replace(/\D+/g,""),DEPTH_PACKING:"0",ENCODE_OUTPUT:"1"},uniforms:{inputBuffer:new A1(null),depthBuffer:new A1(null),resolution:new A1(new p1),texelSize:new A1(new p1),cameraNear:new A1(.3),cameraFar:new A1(1e3),aspect:new A1(1),time:new A1(0)},blending:0,toneMapped:!1,depthWrite:!1,depthTest:!1,dithering:s}),e&&this.setShaderParts(e),t&&this.setDefines(t),o&&this.setUniforms(o),this.copyCameraSettings(r)}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(e){this.uniforms.depthBuffer.value=e}get depthPacking(){return Number(this.defines.DEPTH_PACKING)}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=c3){this.depthBuffer=e,this.depthPacking=t}setShaderData(e){this.setShaderParts(e.shaderParts),this.setDefines(e.defines),this.setUniforms(e.uniforms),this.setExtensions(e.extensions)}setShaderParts(e){return this.fragmentShader=Pu.replace(_1.FRAGMENT_HEAD,e.get(_1.FRAGMENT_HEAD)||"").replace(_1.FRAGMENT_MAIN_UV,e.get(_1.FRAGMENT_MAIN_UV)||"").replace(_1.FRAGMENT_MAIN_IMAGE,e.get(_1.FRAGMENT_MAIN_IMAGE)||""),this.vertexShader=Du.replace(_1.VERTEX_HEAD,e.get(_1.VERTEX_HEAD)||"").replace(_1.VERTEX_MAIN_SUPPORT,e.get(_1.VERTEX_MAIN_SUPPORT)||""),this.needsUpdate=!0,this}setDefines(e){for(const t of e.entries())this.defines[t[0]]=t[1];return this.needsUpdate=!0,this}setUniforms(e){for(const t of e.entries())this.uniforms[t[0]]=t[1];return this}setExtensions(e){this.extensions={};for(const t of e)this.extensions[t]=!0;return this}get encodeOutput(){return this.defines.ENCODE_OUTPUT!==void 0}set encodeOutput(e){this.encodeOutput!==e&&(e?this.defines.ENCODE_OUTPUT="1":delete this.defines.ENCODE_OUTPUT,this.needsUpdate=!0)}isOutputEncodingEnabled(e){return this.encodeOutput}setOutputEncodingEnabled(e){this.encodeOutput=e}get time(){return this.uniforms.time.value}set time(e){this.uniforms.time.value=e}setDeltaTime(e){this.uniforms.time.value+=e}adoptCameraSettings(e){this.copyCameraSettings(e)}copyCameraSettings(e){e&&(this.uniforms.cameraNear.value=e.near,this.uniforms.cameraFar.value=e.far,e instanceof N2?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}setSize(e,t){const o=this.uniforms;o.resolution.value.set(e,t),o.texelSize.value.set(1/e,1/t),o.aspect.value=e/t}static get Section(){return _1}},hT=Number("185".replace(/\D+/g,"")),d2=255/256,fT=new Float32Array([d2/256**3,d2/256**2,d2/256,d2]),pT=new Float32Array([d2,d2/256,d2/256**2,1/256**3]);function ra(e,t,o){for(const r of t){const s="$1"+e+r.charAt(0).toUpperCase()+r.slice(1),i=new RegExp("([^\\.])(\\b"+r+"\\b)","g");for(const n of o.entries())n[1]!==null&&o.set(n[0],n[1].replace(i,s))}}function Xu(e,t,o){let r=t.getFragmentShader(),s=t.getVertexShader();const i=r!==void 0&&/mainImage/.test(r),n=r!==void 0&&/mainUv/.test(r);if(o.attributes|=t.getAttributes(),r===void 0)throw new Error(`Missing fragment shader (${t.name})`);if(n&&(o.attributes&g2.CONVOLUTION)!==0)throw new Error(`Effects that transform UVs are incompatible with convolution effects (${t.name})`);if(!i&&!n)throw new Error(`Could not find mainImage or mainUv function (${t.name})`);{const a=/\w+\s+(\w+)\([\w\s,]*\)\s*{/g,l=o.shaderParts;let u=l.get(_1.FRAGMENT_HEAD)||"",c=l.get(_1.FRAGMENT_MAIN_UV)||"",d=l.get(_1.FRAGMENT_MAIN_IMAGE)||"",h=l.get(_1.VERTEX_HEAD)||"",f=l.get(_1.VERTEX_MAIN_SUPPORT)||"";const p=new Set,m=new Set;if(n&&(c+=` ${e}MainUv(UV); -`,o.uvTransformation=!0),s!==null&&/mainSupport/.test(s)){const v=/mainSupport *\([\w\s]*?uv\s*?\)/.test(s);f+=` ${e}MainSupport(`,f+=v?`vUv); -`:`); -`;for(const M of s.matchAll(/(?:varying\s+\w+\s+([\S\s]*?);)/g))for(const T of M[1].split(/\s*,\s*/))o.varyings.add(T),p.add(T),m.add(T);for(const M of s.matchAll(a))m.add(M[1])}for(const v of r.matchAll(a))m.add(v[1]);for(const v of t.defines.keys())m.add(v.replace(/\([\w\s,]*\)/g,""));for(const v of t.uniforms.keys())m.add(v);m.delete("while"),m.delete("for"),m.delete("if"),t.uniforms.forEach((v,M)=>o.uniforms.set(e+M.charAt(0).toUpperCase()+M.slice(1),v)),t.defines.forEach((v,M)=>o.defines.set(e+M.charAt(0).toUpperCase()+M.slice(1),v));const b=new Map([["fragment",r],["vertex",s]]);ra(e,m,o.defines),ra(e,m,b),r=b.get("fragment"),s=b.get("vertex");const N=t.blendMode;if(o.blendModes.set(N.blendFunction,N),i){t.inputColorSpace!==null&&t.inputColorSpace!==o.colorSpace&&(d+=t.inputColorSpace==="srgb"?`color0 = sRGBTransferOETF(color0); - `:`color0 = sRGBToLinear(color0); - `),t.outputColorSpace!==""?o.colorSpace=t.outputColorSpace:t.inputColorSpace!==null&&(o.colorSpace=t.inputColorSpace);const v=/MainImage *\([\w\s,]*?depth[\w\s,]*?\)/;d+=`${e}MainImage(color0, UV, `,(o.attributes&g2.DEPTH)!==0&&v.test(r)&&(d+="depth, ",o.readDepth=!0),d+=`color1); - `;const M=e+"BlendOpacity";o.uniforms.set(M,N.opacity),d+=`color0 = blend${N.blendFunction}(color0, color1, ${M}); - - `,u+=`uniform float ${M}; - -`}if(u+=r+` -`,s!==null&&(h+=s+` -`),l.set(_1.FRAGMENT_HEAD,u),l.set(_1.FRAGMENT_MAIN_UV,c),l.set(_1.FRAGMENT_MAIN_IMAGE,d),l.set(_1.VERTEX_HEAD,h),l.set(_1.VERTEX_MAIN_SUPPORT,f),t.extensions!==null)for(const v of t.extensions)o.extensions.add(v)}}var Iu=class extends D0{constructor(e,...t){super("EffectPass"),this.fullscreenMaterial=new ku(null,null,null,e),this.listener=o=>this.handleEvent(o),this.effects=[],this.setEffects(t),this.skipRendering=!1,this.minTime=1,this.maxTime=Number.POSITIVE_INFINITY,this.timeScale=1}set mainScene(e){for(const t of this.effects)t.mainScene=e}set mainCamera(e){this.fullscreenMaterial.copyCameraSettings(e);for(const t of this.effects)t.mainCamera=e}get encodeOutput(){return this.fullscreenMaterial.encodeOutput}set encodeOutput(e){this.fullscreenMaterial.encodeOutput=e}get dithering(){return this.fullscreenMaterial.dithering}set dithering(e){const t=this.fullscreenMaterial;t.dithering=e,t.needsUpdate=!0}setEffects(e){for(const t of this.effects)t.removeEventListener("change",this.listener);this.effects=e.sort((t,o)=>o.attributes-t.attributes);for(const t of this.effects)t.addEventListener("change",this.listener)}updateMaterial(){const e=new fu;let t=0;for(const n of this.effects)if(n.blendMode.blendFunction===N1.DST)e.attributes|=n.getAttributes()&g2.DEPTH;else{if((e.attributes&n.getAttributes()&g2.CONVOLUTION)!==0)throw new Error(`Convolution effects cannot be merged (${n.name})`);Xu("e"+t++,n,e)}let o=e.shaderParts.get(_1.FRAGMENT_HEAD),r=e.shaderParts.get(_1.FRAGMENT_MAIN_IMAGE),s=e.shaderParts.get(_1.FRAGMENT_MAIN_UV);const i=/\bblend\b/g;for(const n of e.blendModes.values())o+=n.getShaderCode().replace(i,`blend${n.blendFunction}`)+` -`;(e.attributes&g2.DEPTH)!==0?(e.readDepth&&(r=`float depth = readDepth(UV); - - `+r),this.needsDepthTexture=this.getDepthTexture()===null):this.needsDepthTexture=!1,e.colorSpace==="srgb"&&(r+=`color0 = sRGBToLinear(color0); - `),e.uvTransformation?(s=`vec2 transformedUv = vUv; -`+s,e.defines.set("UV","transformedUv")):e.defines.set("UV","vUv"),e.shaderParts.set(_1.FRAGMENT_HEAD,o),e.shaderParts.set(_1.FRAGMENT_MAIN_IMAGE,r),e.shaderParts.set(_1.FRAGMENT_MAIN_UV,s);for(const[n,a]of e.shaderParts)a!==null&&e.shaderParts.set(n,a.trim().replace(/^#/,` -#`));this.skipRendering=t===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(e)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(e,t=c3){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t;for(const o of this.effects)o.setDepthTexture(e,t)}render(e,t,o,r,s){for(const i of this.effects)i.update(e,t,r);if(!this.skipRendering||this.renderToScreen){const i=this.fullscreenMaterial;i.inputBuffer=t.texture,i.time+=r*this.timeScale,e.setRenderTarget(this.renderToScreen?null:o),e.render(this.scene,this.camera)}}setSize(e,t){this.fullscreenMaterial.setSize(e,t);for(const o of this.effects)o.setSize(e,t)}initialize(e,t,o){this.renderer=e;for(const r of this.effects)r.initialize(e,t,o);this.updateMaterial(),o!==void 0&&o!==1009&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const e of this.effects)e.removeEventListener("change",this.listener),e.dispose()}handleEvent(e){e.type==="change"&&this.recompile()}},Gu=class extends D0{constructor(e,t,{renderTarget:o,resolutionScale:r=1,width:s=x0.AUTO_SIZE,height:i=x0.AUTO_SIZE,resolutionX:n=s,resolutionY:a=i}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new e4(e,t,new L6);const l=this.renderPass;l.ignoreBackground=!0,l.skipShadowMapUpdate=!0;const u=l.getClearPass();u.overrideClearColor=new de(7829503),u.overrideClearAlpha=1,this.renderTarget=o,this.renderTarget===void 0&&(this.renderTarget=new Te(1,1,{minFilter:ve,magFilter:ve}),this.renderTarget.texture.name="NormalPass.Target");const c=this.resolution=new x0(this,n,a,r);c.addEventListener("change",d=>this.setSize(c.baseWidth,c.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,o,r,s){const i=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,i,i)}setSize(e,t){const o=this.resolution;o.setBaseSize(e,t),this.renderTarget.setSize(o.width,o.height)}},mT=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]],gT=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),vT=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],bT=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],NT=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])],MT=new Map([[v0(0,0,0,0),new Float32Array([0,0,0,0])],[v0(0,0,0,1),new Float32Array([0,0,0,1])],[v0(0,0,1,0),new Float32Array([0,0,1,0])],[v0(0,0,1,1),new Float32Array([0,0,1,1])],[v0(0,1,0,0),new Float32Array([0,1,0,0])],[v0(0,1,0,1),new Float32Array([0,1,0,1])],[v0(0,1,1,0),new Float32Array([0,1,1,0])],[v0(0,1,1,1),new Float32Array([0,1,1,1])],[v0(1,0,0,0),new Float32Array([1,0,0,0])],[v0(1,0,0,1),new Float32Array([1,0,0,1])],[v0(1,0,1,0),new Float32Array([1,0,1,0])],[v0(1,0,1,1),new Float32Array([1,0,1,1])],[v0(1,1,0,0),new Float32Array([1,1,0,0])],[v0(1,1,0,1),new Float32Array([1,1,0,1])],[v0(1,1,1,0),new Float32Array([1,1,1,0])],[v0(1,1,1,1),new Float32Array([1,1,1,1])]]);function ls(e,t,o){return e+(t-e)*o}function v0(e,t,o,r){return ls(ls(e,t,.75),ls(o,r,.75),.875)}function $3(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var yT=new p1,xT=new p1;function t4(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var H0=function e(t,o,r){var s=this;t4(this,e),$3(this,"dot2",function(i,n){return s.x*i+s.y*n}),$3(this,"dot3",function(i,n,a){return s.x*i+s.y*n+s.z*a}),this.x=t,this.y=o,this.z=r},zu=[new H0(1,1,0),new H0(-1,1,0),new H0(1,-1,0),new H0(-1,-1,0),new H0(1,0,1),new H0(-1,0,1),new H0(1,0,-1),new H0(-1,0,-1),new H0(0,1,1),new H0(0,-1,1),new H0(0,1,-1),new H0(0,-1,-1)],sa=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],ia=new Array(512),na=new Array(512),Vu=function(t){t>0&&t<1&&(t*=65536),t=Math.floor(t),t<256&&(t|=t<<8);for(var o=0;o<256;o++){var r;o&1?r=sa[o]^t&255:r=sa[o]^t>>8&255,ia[o]=ia[o+256]=r,na[o]=na[o+256]=zu[r%12]}};Vu(0);var ST=.5*(Math.sqrt(3)-1),TT=(3-Math.sqrt(3))/6,wT=Math.PI*2;function Qu(e){if(typeof e=="number")e=Math.abs(e);else if(typeof e=="string"){var t=e;e=0;for(var o=0;o(e.getAttributes()&2)===2,qu=(0,_.memo)((0,_.forwardRef)(({children:e,camera:t,scene:o,resolutionScale:r,enabled:s=!0,renderPriority:i=1,autoClear:n=!0,depthBuffer:a,enableNormalPass:l,stencilBuffer:u,multisampling:c=8,frameBufferType:d=se},h)=>{const{gl:f,scene:p,camera:m,size:b}=ce(),N=o||p,v=t||m,[M,T,x]=(0,_.useMemo)(()=>{const w=new hu(f,{depthBuffer:a,stencilBuffer:u,multisampling:c,frameBufferType:d});w.addPass(new e4(N,v));let W=null,O=null;return l&&(O=new Gu(N,v),O.enabled=!1,w.addPass(O),r!==void 0&&(W=new Fu({normalBuffer:O.texture,resolutionScale:r}),W.enabled=!1,w.addPass(W))),[w,O,W]},[v,f,a,u,c,d,N,l,r]);(0,_.useEffect)(()=>M?.setSize(b.width,b.height),[M,b]),A0((w,W)=>{if(s){const O=f.autoClear;f.autoClear=n,u&&!n&&f.clearStencil(),M.render(W),f.autoClear=O}},s?i:0);const S=(0,_.useRef)(null);(0,_.useLayoutEffect)(()=>{const w=[],W=S.current.__r3f;if(W&&M){const O=W.children;for(let F=0;F{for(const O of w)M?.removePass(O);T&&(T.enabled=!1),x&&(x.enabled=!1)}},[M,e,v,T,x]),(0,_.useEffect)(()=>{const w=f.toneMapping;return f.toneMapping=0,()=>{f.toneMapping=w}},[f]);const R=(0,_.useMemo)(()=>({composer:M,normalPass:T,downSamplingPass:x,resolutionScale:r,camera:v,scene:N}),[M,T,x,r,v,N]);return(0,_.useImperativeHandle)(h,()=>M,[M]),(0,di.jsx)(Zu.Provider,{value:R,children:(0,di.jsx)("group",{ref:S,children:e})})})),Hu=0,ua=new WeakMap,Ju=(e,t)=>function({blendFunction:o=t?.blendFunction,opacity:r=t?.opacity,...s}){let i=ua.get(e);if(!i){const l=`@react-three/postprocessing/${e.name}-${Hu++}`;Cl({[l]:e}),ua.set(e,i=l)}const n=ce(l=>l.camera),a=_.useMemo(()=>[...t?.args??[],...s.args??[{...t,...s}]],[JSON.stringify(s)]);return(0,di.jsx)(i,{camera:n,"blendMode-blendFunction":o,"blendMode-opacity-value":r,...s,args:a})},ju=Ju(Uu,{blendFunction:0}),en=(e,t,o)=>Math.min(o,Math.max(t,e)),o4=(e,t)=>{const o=en(Math.abs(e)/Math.max(t,1e-4),0,1);return Math.log1p(o*8)/Math.log1p(8)},Ku=(e,t,o,r,s,i,n)=>{const a=o4(e,Math.max(Math.abs(t),Math.abs(o)));return en(r+a*(s-r),i,n)},Yu=(e,t,o,r,s,i,n)=>{const a=o4(e,Math.max(Math.abs(t),Math.abs(o)));return en(r+a*(s-r),i,n)};function ec(e,t){let o=Math.round(e*10),r=Math.round(4*t*10);const s=(a,l)=>l===0?a:s(l,a%l),i=s(Math.abs(o),Math.abs(r));if(o=o/i,r=r/i,o===0)return"0";let n="";return o===1?n="π":o===-1?n="-π":n=`${o}π`,r===1?n:`${n}/${r}`}var r4=(e=8,t="")=>{const o="0123456789ABCDEF";return Array.from({length:e},()=>o[Math.floor(Math.random()*16)]).join(t)},t1="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/PhaseShiftingCanvas.tsx",W1={bg:"#E0E0E2",grid:"#D1D5DB",axis:"#9CA3AF",dashed:"#6B7280",solid:"#8B5CF6",text:"#000000",axisText:"rgba(0, 0, 0, 0.08)",accent:"#1180FF"},tc=a1.div` - width: 100%; - height: 100%; - position: relative; - overflow: hidden; -`,oc=a1.div` - position: absolute; - top: 14px; - left: 16px; - z-index: 2; - pointer-events: none; -`,rc=a1.h1` - font-size: clamp(0.2rem, 1vw, 1rem); - letter-spacing: 0.04em; - font-family: 'JetBrains Mono', 'DM Mono', monospace; - color: ${W1.text}; - margin: 0; - font-weight: 600; - - @media (max-width: 640px) { - top: 10px; - left: 12px; - font-size: 0.78rem; - } -`,sc=a1.div` - font-size: clamp(0.72rem, 1.2vw, 1rem); - font-weight: 600; - color: ${W1.text}; - margin: 0.25rem 0; - font-family: 'JetBrains Mono', 'DM Mono', monospace; -`,us=a1.div` - font-size: clamp(0.55rem, 1vw, 0.78rem); - color: #6B7280; - margin: 0.25rem 0; - font-family: 'JetBrains Mono', 'DM Mono', monospace; -`;function ic({frequency:e}){const t=[],o=Math.PI/(4*e),r=Math.ceil(10*Math.PI/o);for(let s=-r;s<=r;s++){const i=s*o,n=s%4===0;t.push(g(me,{points:[[i,-20,-1],[i,20,-1]],color:W1.grid,lineWidth:n?1:.5,opacity:n?.08:.03,transparent:!0},`v${s}`,!1,{fileName:t1,lineNumber:83,columnNumber:7},this))}for(let s=-40;s<=40;s++){const i=s*.5,n=s%2===0;t.push(g(me,{points:[[-35,i,-1],[35,i,-1]],color:W1.grid,lineWidth:n?1:.5,opacity:n?.08:.03,transparent:!0},`h${s}`,!1,{fileName:t1,lineNumber:99,columnNumber:7},this))}return g("group",{children:t},void 0,!1,{fileName:t1,lineNumber:109,columnNumber:10},this)}function nc({frequency:e}){const t=[],o=Math.PI/(4*e),r=Math.ceil(10*Math.PI/o);for(let i=-r;i<=r;i++){if(i===0)continue;const n=i*o;let a=!1;e<=1.2?i%2===0&&(a=!0):i%4===0&&(a=!0),t.push({pos:n,label:a?ec(i,e):""})}const s=[];for(let i=-3;i<=3;i++)i!==0&&s.push({pos:i,label:i.toString()});return g("group",{children:[g(me,{points:[[-35,0,0],[35,0,0]],color:W1.axis,lineWidth:1.5,opacity:.08,transparent:!0},void 0,!1,{fileName:t1,lineNumber:145,columnNumber:7},this),g(me,{points:[[0,-15,0],[0,15,0]],color:W1.axis,lineWidth:1.5,opacity:.08,transparent:!0},void 0,!1,{fileName:t1,lineNumber:147,columnNumber:7},this),g(L1,{position:[33.5,.4,0],fontSize:.3,color:W1.axisText,text:"x"},void 0,!1,{fileName:t1,lineNumber:150,columnNumber:7},this),g(L1,{position:[.4,14.5,0],fontSize:.3,color:W1.axisText,text:"y"},void 0,!1,{fileName:t1,lineNumber:151,columnNumber:7},this),g(L1,{position:[-.4,-.4,0],fontSize:.2,color:W1.axisText,text:"0"},void 0,!1,{fileName:t1,lineNumber:152,columnNumber:7},this),t.map(({pos:i,label:n},a)=>g("group",{position:[i,0,0],children:[g(me,{points:[[0,-.06,0],[0,.06,0]],color:W1.axis,lineWidth:1,opacity:.08,transparent:!0},void 0,!1,{fileName:t1,lineNumber:157,columnNumber:11},this),n&&g(L1,{position:[0,-.5,0],fontSize:.2,color:W1.axisText,text:n},void 0,!1,{fileName:t1,lineNumber:158,columnNumber:21},this)]},`x-${a}`,!0,{fileName:t1,lineNumber:156,columnNumber:9},this)),s.map(({pos:i,label:n},a)=>g("group",{position:[0,i,0],children:[g(me,{points:[[-.06,0,0],[.06,0,0]],color:W1.axis,lineWidth:1,opacity:.08,transparent:!0},void 0,!1,{fileName:t1,lineNumber:165,columnNumber:11},this),g(L1,{position:[-.6,0,0],fontSize:.2,color:W1.axisText,text:n},void 0,!1,{fileName:t1,lineNumber:166,columnNumber:11},this)]},`y-${a}`,!0,{fileName:t1,lineNumber:164,columnNumber:9},this))]},void 0,!0,{fileName:t1,lineNumber:143,columnNumber:5},this)}function ac({frequency:e,store:t}){const{phaseShift:o,amplitude:r,animate:s,speed:i}=zi({phaseShift:{value:90,min:-360,max:360,step:1,label:"Phase Shift (Phi, φ)"},amplitude:{value:1,min:.1,max:3,step:.1},animate:{value:!1,label:"Auto Animate"},speed:{value:1,min:.1,max:5,step:.1,render:N=>N("animate")}},{store:t}),[n,a]=(0,_.useState)(o*Math.PI/180),l=(0,_.useRef)(0);A0((N,v)=>{s&&(l.current=(l.current+v*i)%(Math.PI*2));const M=o*Math.PI/180+l.current;a(M)});const u=(0,_.useMemo)(()=>{const N=[];for(let v=-35;v<=35;v+=.02)N.push(new z(v,Math.sin(e*v)*r,-.1));return N},[r,e]),c=(0,_.useMemo)(()=>{const N=[];for(let v=-35;v<=35;v+=.02)N.push(new z(v,Math.sin(e*v-n)*r,.1));return N},[r,e,n]),d=1.25,h=0;let f=n%(Math.PI*2);f>Math.PI&&(f-=Math.PI*2),f<-Math.PI&&(f+=Math.PI*2);const p=f/e,m=(0,_.useMemo)(()=>{if(Math.abs(p-h)<.01)return null;const N=Math.sign(p-h),v=.15;return[new z(h,d,1),new z(p,d,1),new z(p-N*v,1.325,1),new z(p,d,1),new z(p-N*v,d-v*.5,1)]},[h,p,d]),b=Math.round(f*180/Math.PI);return g("group",{children:[g(me,{points:u,color:W1.dashed,lineWidth:3,dashed:!0,dashSize:.15,gapSize:.1,opacity:.6,transparent:!0},void 0,!1,{fileName:t1,lineNumber:236,columnNumber:7},this),g(me,{points:c,color:W1.solid,lineWidth:5,toneMapped:!1},void 0,!1,{fileName:t1,lineNumber:248,columnNumber:7},this),m&&g("group",{children:[g(me,{points:m,color:W1.accent,lineWidth:2,toneMapped:!1},void 0,!1,{fileName:t1,lineNumber:258,columnNumber:11},this),g(me,{points:[[h,0,1],[h,d,1]],color:W1.dashed,lineWidth:1,dashed:!0,dashSize:.05,gapSize:.05,opacity:.5,transparent:!0},void 0,!1,{fileName:t1,lineNumber:264,columnNumber:11},this),g(me,{points:[[p,0,1],[p,d,1]],color:W1.accent,lineWidth:1,dashed:!0,dashSize:.05,gapSize:.05,opacity:.5,transparent:!0},void 0,!1,{fileName:t1,lineNumber:270,columnNumber:11},this),g(L1,{position:[h,1.65,1],fontSize:.4,color:W1.dashed,text:"0°"},void 0,!1,{fileName:t1,lineNumber:276,columnNumber:11},this),g(L1,{position:[p,1.65,1],fontSize:.4,color:W1.accent,text:`${b}°`},void 0,!1,{fileName:t1,lineNumber:277,columnNumber:11},this)]},void 0,!0,{fileName:t1,lineNumber:257,columnNumber:9},this)]},void 0,!0,{fileName:t1,lineNumber:234,columnNumber:5},this)}function lc({store:e}){const{frequency:t}=zi({frequency:{value:1,min:.1,max:3,step:.1}},{store:e});return g(Z0,{children:[g("color",{attach:"background",args:[W1.bg]},void 0,!1,{fileName:t1,lineNumber:291,columnNumber:7},this),g("ambientLight",{intensity:1},void 0,!1,{fileName:t1,lineNumber:292,columnNumber:7},this),g(ic,{frequency:t},void 0,!1,{fileName:t1,lineNumber:293,columnNumber:7},this),g(nc,{frequency:t},void 0,!1,{fileName:t1,lineNumber:294,columnNumber:7},this),g(ac,{frequency:t,store:e},void 0,!1,{fileName:t1,lineNumber:295,columnNumber:7},this),g(qu,{children:g(ju,{luminanceThreshold:.8,luminanceSmoothing:.9,intensity:.5,mipmapBlur:!0},void 0,!1,{fileName:t1,lineNumber:298,columnNumber:9},this)},void 0,!1,{fileName:t1,lineNumber:297,columnNumber:7},this)]},void 0,!0,{fileName:t1,lineNumber:290,columnNumber:5},this)}function uc(){return g("svg",{width:"900",height:"506",viewBox:"0 0 900 506",children:[g("rect",{width:"900",height:"506",fill:"transparent"},void 0,!1,{fileName:t1,lineNumber:307,columnNumber:7},this),g("path",{d:"M 0 253 H 900",stroke:W1.axis,strokeWidth:"2"},void 0,!1,{fileName:t1,lineNumber:308,columnNumber:7},this),g("path",{d:"M 450 40 V 466",stroke:W1.axis,strokeWidth:"2"},void 0,!1,{fileName:t1,lineNumber:309,columnNumber:7},this),g("path",{d:"M 40 253 C 140 180, 240 326, 340 253 S 540 180, 640 253 S 840 326, 860 253",fill:"none",stroke:W1.dashed,strokeWidth:"4",strokeDasharray:"10 8"},void 0,!1,{fileName:t1,lineNumber:310,columnNumber:7},this),g("path",{d:"M 40 253 C 140 140, 240 366, 340 253 S 540 140, 640 253 S 840 366, 860 253",fill:"none",stroke:W1.solid,strokeWidth:"6"},void 0,!1,{fileName:t1,lineNumber:311,columnNumber:7},this),g("path",{d:"M 450 96 H 600",stroke:W1.accent,strokeWidth:"3"},void 0,!1,{fileName:t1,lineNumber:312,columnNumber:7},this),g("path",{d:"M 600 96 L 586 88 M 600 96 L 586 104",stroke:W1.accent,strokeWidth:"3"},void 0,!1,{fileName:t1,lineNumber:313,columnNumber:7},this),g("text",{x:"40",y:"48",fill:W1.text,fontSize:"20",fontFamily:"JetBrains Mono, monospace",children:"Phase Shifting"},void 0,!1,{fileName:t1,lineNumber:314,columnNumber:7},this),g("text",{x:"40",y:"470",fill:W1.text,fontSize:"18",fontFamily:"JetBrains Mono, monospace",children:"y = A · sin(f·x - φ)"},void 0,!1,{fileName:t1,lineNumber:315,columnNumber:7},this),g("text",{x:"40",y:"492",fill:"#6B7280",fontSize:"14",fontFamily:"JetBrains Mono, monospace",children:"φ (Phi) = Phase Shift"},void 0,!1,{fileName:t1,lineNumber:316,columnNumber:7},this),g("text",{x:"740",y:"115",fill:W1.accent,fontSize:"18",fontFamily:"JetBrains Mono, monospace",children:"90°"},void 0,!1,{fileName:t1,lineNumber:317,columnNumber:7},this)]},void 0,!0,{fileName:t1,lineNumber:306,columnNumber:5},this)}function AT(){const e=typeof process<"u"&&{}.JEST_WORKER_ID!==void 0,t=w6();return g(A2,{store:t,aspectRatio:"16/9",children:g(tc,{children:g(Z0,{children:[g(oc,{children:g(rc,{style:{fontSize:"20px",top:"10px",left:"12px",margin:"0",fontFamily:"JetBrains Mono, monospace",color:"black"},children:"Phase Shifting"},void 0,!1,{fileName:t1,lineNumber:331,columnNumber:13},this)},void 0,!1,{fileName:t1,lineNumber:330,columnNumber:11},this),g("div",{style:{position:"absolute",bottom:"10px",left:"16px",zIndex:2,pointerEvents:"none"},children:[g(sc,{children:"y = A · sin(f·x - φ)"},void 0,!1,{fileName:t1,lineNumber:350,columnNumber:13},this),g(us,{children:"φ (Phi) = Phase Shift"},void 0,!1,{fileName:t1,lineNumber:351,columnNumber:13},this),g(us,{children:"f = Frequency"},void 0,!1,{fileName:t1,lineNumber:352,columnNumber:13},this),g(us,{children:"A = Amplitude"},void 0,!1,{fileName:t1,lineNumber:353,columnNumber:13},this)]},void 0,!0,{fileName:t1,lineNumber:343,columnNumber:11},this),e?g(Z0,{children:[g(uc,{},void 0,!1,{fileName:t1,lineNumber:360,columnNumber:15},this),g("div",{"data-testid":"r3f-canvas",style:{position:"absolute",top:-9999,left:-9999,visibility:"hidden"},children:g("canvas",{},void 0,!1,{fileName:t1,lineNumber:362,columnNumber:17},this)},void 0,!1,{fileName:t1,lineNumber:361,columnNumber:15},this)]},void 0,!0,{fileName:t1,lineNumber:359,columnNumber:13},this):g(go,{"data-testid":"r3f-canvas",orthographic:!0,camera:{position:[0,0,10],zoom:90},children:g(_.Suspense,{fallback:null,children:g(lc,{store:t},void 0,!1,{fileName:t1,lineNumber:368,columnNumber:19},this)},void 0,!1,{fileName:t1,lineNumber:367,columnNumber:17},this)},void 0,!1,{fileName:t1,lineNumber:366,columnNumber:15},this)]},void 0,!0,{fileName:t1,lineNumber:329,columnNumber:9},this)},void 0,!1,{fileName:t1,lineNumber:328,columnNumber:7},this)},void 0,!1,{fileName:t1,lineNumber:327,columnNumber:5},this)}var cc=["alphaMap","alphaTest","anisotropy","anisotropyMap","anisotropyRotation","aoMap","aoMapIntensity","attenuationColor","attenuationDistance","bumpMap","clearcoat","clearcoatMap","clearcoatNormalMap","clearcoatNormalScale","clearcoatRoughness","color","dispersion","displacementMap","emissive","emissiveIntensity","emissiveMap","envMap","envMapIntensity","envMapRotation","gradientMap","ior","iridescence","iridescenceIOR","iridescenceMap","iridescenceThicknessMap","lightMap","lightMapIntensity","map","matcap","metalness","metalnessMap","normalMap","normalScale","opacity","roughness","roughnessMap","sheen","sheenColor","sheenColorMap","sheenRoughnessMap","shininess","specular","specularColor","specularColorMap","specularIntensity","specularIntensityMap","specularMap","thickness","transmission","transmissionMap"],ca=new WeakMap,da=new WeakMap,ha=new WeakMap,dc=class{constructor(e){this.renderObjects=new WeakMap,this.hasNode=this.containsNode(e),this.hasAnimation=e.object.isSkinnedMesh===!0,this.refreshUniforms=cc,this.renderId=0}firstInitialization(e){return this.renderObjects.has(e)===!1?(this.getRenderObjectData(e),!0):!1}needsVelocity(e){const t=e.getMRT();return t!==null&&t.has("velocity")}getRenderObjectData(e){let t=this.renderObjects.get(e);if(t===void 0){const{geometry:o,object:r}=e;if(t={geometryId:o.id,worldMatrix:r.matrixWorld.clone()},r.center&&(t.center=r.center.clone()),r.morphTargetInfluences&&(t.morphTargetInfluences=r.morphTargetInfluences.slice()),e.bundle!==null&&(t.version=e.bundle.version),e.material.transmission>0){const{width:n,height:a}=e.context;t.bufferWidth=n,t.bufferHeight=a}const{environmentIntensity:s,environmentRotation:i}=e.scene;t.environmentIntensity=s,t.environmentRotation=i.clone(),t.lights=this.getLightsData(e.lightsNode.getLights(),[]),this.renderObjects.set(e,t)}return t}getAttributesData(e){const t={};for(const o in e){const r=e[o];t[o]={id:r.isInterleavedBufferAttribute?r.data.uuid:r.id,version:r.isInterleavedBufferAttribute?r.data.version:r.version}}return t}containsNode(e){const t=e.material;for(const o in t)if(t[o]&&t[o].isNode)return!0;return!!(e.context.modelViewMatrix||e.context.modelNormalViewMatrix||e.context.getAO||e.context.getShadow)}getGeometryData(e){let t=ha.get(e);return t===void 0&&(t={_renderId:-1,_equal:!1,attributes:this.getAttributesData(e.attributes),indexId:e.index?e.index.id:null,indexVersion:e.index?e.index.version:null,drawRange:{start:e.drawRange.start,count:e.drawRange.count}},ha.set(e,t)),t}getMaterialData(e){let t=da.get(e);if(t===void 0){t={_renderId:-1,_equal:!1};for(const o of this.refreshUniforms){const r=e[o];r!=null&&(typeof r=="object"&&r.clone!==void 0?r.isTexture===!0?t[o]={id:r.id,version:0}:t[o]=r.clone():t[o]=r)}da.set(e,t)}return t}equals(e,t,o){const{object:r,material:s,geometry:i}=e,n=this.getRenderObjectData(e);if(n.worldMatrix.equals(r.matrixWorld)!==!0)return n.worldMatrix.copy(r.matrixWorld),!1;const a=this.getMaterialData(e.material);if(a._renderId!==o){a._renderId=o;for(const c in a){const d=a[c],h=s[c];if(c!=="_renderId"&&c!=="_equal"){if(d.equals!==void 0){if(d.equals(h)===!1)return d.copy(h),a._equal=!1,!1}else if(h.isTexture===!0){if(d.id!==h.id||d.version!==h.version)return d.id=h.id,d.version=h.version,a._equal=!1,!1}else if(d!==h)return a[c]=h,a._equal=!1,!1}}if(a.transmission>0){const{width:c,height:d}=e.context;if(n.bufferWidth!==c||n.bufferHeight!==d)return n.bufferWidth=c,n.bufferHeight=d,a._equal=!1,!1}a._equal=!0}else if(a._equal===!1)return!1;if(n.geometryId!==i.id)return n.geometryId=i.id,!1;const l=this.getGeometryData(e.geometry);if(l._renderId!==o){l._renderId=o;const c=i.attributes,d=l.attributes;let h=0,f=0;for(const M in c)h++;for(const M in d){f++;const T=d[M],x=c[M];if(x===void 0)return delete d[M],l._equal=!1,!1;const S=x.isInterleavedBufferAttribute?x.data.uuid:x.id,R=x.isInterleavedBufferAttribute?x.data.version:x.version;if(T.id!==S||T.version!==R)return T.id=S,T.version=R,l._equal=!1,!1}if(f!==h)return l.attributes=this.getAttributesData(c),l._equal=!1,!1;const p=i.index,m=l.indexId,b=l.indexVersion,N=p?p.id:null,v=p?p.version:null;if(m!==N||b!==v)return l.indexId=N,l.indexVersion=v,l._equal=!1,!1;if(l.drawRange.start!==i.drawRange.start||l.drawRange.count!==i.drawRange.count)return l.drawRange.start=i.drawRange.start,l.drawRange.count=i.drawRange.count,l._equal=!1,!1;l._equal=!0}else if(l._equal===!1)return!1;if(n.morphTargetInfluences){let c=!1;for(let d=0;d{const r=o.match(t);if(!r)return null;const s=r[1]||r[2]||"",i=r[3].split("?")[0],n=parseInt(r[4],10),a=parseInt(r[5],10);return{fn:s,file:i.split("/").pop(),line:n,column:a}}).filter(o=>o&&!hc.some(r=>r.test(o.file)))}var C0=class{constructor(e=null){this.isStackTrace=!0,this.stack=fc(e||new Error().stack)}getLocation(){if(this.stack.length===0)return"[Unknown location]";const e=this.stack[0],t=e.fn;return`${t?`"${t}()" at `:""}"${e.file}:${e.line}"`}getError(e){return this.stack.length===0?e:`${e} -${this.stack.map(t=>{const o=`${t.file}:${t.line}:${t.column}`;return t.fn?` at ${t.fn} (${o})`:` at ${o}`}).join(` -`)}`}};function tn(e,t=0){let o=3735928559^t,r=1103547991^t;if(Array.isArray(e))for(let s=0,i;s>>16,2246822507),o^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(o^o>>>13,3266489909),4294967296*(2097151&r)+(o>>>0)}var d3=e=>tn(e),bo=e=>tn(e),Z3=(...e)=>tn(e),pc=new Map([[1,"float"],[2,"vec2"],[3,"vec3"],[4,"vec4"],[9,"mat3"],[16,"mat4"]]),fa=new WeakMap;function s4(e){return pc.get(e)}function _r(e){if(e==null)return null;const t=typeof e;return e.isNode===!0?"node":t==="number"?"float":t==="boolean"?"bool":t==="string"?"string":t==="function"?"shader":e.isVector2===!0?"vec2":e.isVector3===!0?"vec3":e.isVector4===!0?"vec4":e.isMatrix2===!0?"mat2":e.isMatrix3===!0?"mat3":e.isMatrix4===!0?"mat4":e.isColor===!0?"color":e instanceof ArrayBuffer?"ArrayBuffer":null}function on(e,...t){const o=e?e.slice(-4):void 0;return t.length===1&&(o==="vec2"?t=[t[0],t[0]]:o==="vec3"?t=[t[0],t[0],t[0]]:o==="vec4"&&(t=[t[0],t[0],t[0],t[0]])),e==="color"?new de(...t):o==="vec2"?new p1(...t):o==="vec3"?new z(...t):o==="vec4"?new S1(...t):o==="mat2"?new X6(...t):o==="mat3"?new mo(...t):o==="mat4"?new q0(...t):e==="bool"?t[0]||!1:e==="float"||e==="int"||e==="uint"?t[0]||0:e==="string"?t[0]||"":e==="ArrayBuffer"?gc(t[0]):null}function i4(e){let t=fa.get(e);return t===void 0&&(t={},fa.set(e,t)),t}function mc(e){let t="";const o=new Uint8Array(e);for(let r=0;rt.charCodeAt(0)).buffer}var y3={VERTEX:"vertex",FRAGMENT:"fragment"},u1={NONE:"none",FRAME:"frame",RENDER:"render",OBJECT:"object"},ie={READ_ONLY:"readOnly",WRITE_ONLY:"writeOnly",READ_WRITE:"readWrite"},vc=["fragment","vertex"],cs=["setup","analyze","generate"],ds=[...vc,"compute"],h3=["x","y","z","w"],bc={analyze:"setup",generate:"analyze"},Nc=0,i1=class n4 extends R2{static get type(){return"Node"}constructor(t=null){super(),this.nodeType=t,this.updateType=u1.NONE,this.updateBeforeType=u1.NONE,this.updateAfterType=u1.NONE,this.version=0,this.name="",this.global=!1,this.parents=!1,this.isNode=!0,this._beforeNodes=null,this._cacheKey=null,this._uuid=null,this._cacheKeyVersion=0,this.id=Nc++,this.stackTrace=null,n4.captureStackTrace===!0&&(this.stackTrace=new C0)}set needsUpdate(t){t===!0&&this.version++}get uuid(){return this._uuid===null&&(this._uuid=Ft.generateUUID()),this._uuid}get type(){return this.constructor.type}onUpdate(t,o){return this.updateType=o,this.update=t.bind(this),this}onFrameUpdate(t){return this.onUpdate(t,u1.FRAME)}onRenderUpdate(t){return this.onUpdate(t,u1.RENDER)}onObjectUpdate(t){return this.onUpdate(t,u1.OBJECT)}onReference(t){return this.updateReference=t.bind(this),this}updateReference(){return this}isGlobal(){return this.global}*getChildren(){for(const{childNode:t}of this._getChildren())yield t}dispose(){this.dispatchEvent({type:"dispose"})}traverse(t){t(this);for(const o of this.getChildren())o.traverse(t)}_getChildren(t=new Set){const o=[];t.add(this);for(const r of Object.getOwnPropertyNames(this)){const s=this[r];if(!(r.startsWith("_")===!0||t.has(s))){if(Array.isArray(s)===!0)for(let i=0;i0&&(t.inputNodes=r)}deserialize(t){if(t.inputNodes!==void 0){const o=t.meta.nodes;for(const r in t.inputNodes)if(Array.isArray(t.inputNodes[r])){const s=[];for(const i of t.inputNodes[r])s.push(o[i]);this[r]=s}else if(typeof t.inputNodes[r]=="object"){const s={};for(const i in t.inputNodes[r])s[i]=o[t.inputNodes[r][i]];this[r]=s}else{const s=t.inputNodes[r];this[r]=o[s]}}}toJSON(t){const{uuid:o,type:r}=this,s=t===void 0||typeof t=="string";s&&(t={textures:{},images:{},nodes:{}});let i=t.nodes[o];i===void 0&&(i={uuid:o,type:r,meta:t,metadata:{version:4.7,type:"Node",generator:"Node.toJSON"}},s!==!0&&(t.nodes[i.uuid]=i),this.serialize(i),delete i.meta);function n(a){const l=[];for(const u in a){const c=a[u];delete c.metadata,l.push(c)}return l}if(s){const a=n(t.textures),l=n(t.images),u=n(t.nodes);a.length>0&&(i.textures=a),l.length>0&&(i.images=l),u.length>0&&(i.nodes=u)}return i}};i1.captureStackTrace=!1;var f3=class extends i1{static get type(){return"ArrayElementNode"}constructor(e,t){super(),this.node=e,this.indexNode=t,this.isArrayElementNode=!0}generateNodeType(e){return this.node.getElementType(e)}getMemberType(e,t){return this.node.getMemberType(e,t)}generate(e){const t=this.indexNode.getNodeType(e);return`${this.node.build(e)}[ ${this.indexNode.build(e,!e.isVector(t)&&e.isInteger(t)?t:"uint")} ]`}},a4=class extends i1{static get type(){return"ConvertNode"}constructor(e,t){super(),this.node=e,this.convertTo=t}generateNodeType(e){const t=this.node.getNodeType(e);let o=null;for(const r of this.convertTo.split("|"))(o===null||e.getTypeLength(t)===e.getTypeLength(r))&&(o=r);return o}serialize(e){super.serialize(e),e.convertTo=this.convertTo}deserialize(e){super.deserialize(e),this.convertTo=e.convertTo}generate(e,t){const o=this.node,r=this.getNodeType(e),s=o.build(e,r);return e.format(s,r,t)}},s0=class extends i1{static get type(){return"TempNode"}constructor(e=null){super(e),this.isTempNode=!0}hasDependencies(e){return e.getDataFromNode(this).usageCount>1}build(e,t){if(e.getBuildStage()==="generate"){const o=e.getVectorType(this.getNodeType(e,t)),r=e.getDataFromNode(this);if(r.propertyName!==void 0)return e.format(r.propertyName,o,t);if(o!=="void"&&t!=="void"&&this.hasDependencies(e)){const s=super.build(e,o),i=e.getVarFromNode(this,null,o),n=e.getPropertyName(i);return e.addLineFlowCode(`${n} = ${s}`,this),r.snippet=s,r.propertyName=n,e.format(r.propertyName,o,t)}}return super.build(e,t)}},Mc=class extends s0{static get type(){return"JoinNode"}constructor(e=[],t=null){super(t),this.nodes=e}generateNodeType(e){return this.nodeType!==null?e.getVectorType(this.nodeType):e.getTypeFromLength(this.nodes.reduce((t,o)=>t+e.getTypeLength(o.getNodeType(e)),0))}generate(e,t){const o=this.getNodeType(e),r=e.getTypeLength(o),s=this.nodes,i=e.getComponentType(o),n=[];let a=0;for(const u of s){if(a>=r){G(`TSL: Length of parameters exceeds maximum length of function '${o}()' type.`,this.stackTrace);break}let c=u.getNodeType(e),d=e.getTypeLength(c),h;if(a+d>r&&(G(`TSL: Length of '${o}()' data exceeds maximum length of output type.`,this.stackTrace),d=r-a,c=e.getTypeFromLength(d)),a+=d,h=u.build(e,c),e.getComponentType(c)!==i){const f=e.getTypeFromLength(d,i);h=e.format(h,c,f)}n.push(h)}const l=`${e.getType(o)}( ${n.join(", ")} )`;return e.format(l,o,t)}},yc=h3.join(""),xc=class extends i1{static get type(){return"SplitNode"}constructor(e,t="x"){super(),this.node=e,this.components=t,this.isSplitNode=!0}getVectorLength(){let e=this.components.length;for(const t of this.components)e=Math.max(h3.indexOf(t)+1,e);return e}getComponentType(e){return e.getComponentType(this.node.getNodeType(e))}generateNodeType(e){return e.getTypeFromLength(this.components.length,this.getComponentType(e))}getScope(){return this.node.getScope()}generate(e,t){const o=this.node,r=e.getTypeLength(o.getNodeType(e));let s=null;if(r>1){let i=null;this.getVectorLength()>=r&&(i=e.getTypeFromLength(this.getVectorLength(),this.getComponentType(e)));const n=o.build(e,i);this.components.length===r&&this.components===yc.slice(0,this.components.length)?s=e.format(n,i,t):s=e.format(`${n}.${this.components}`,this.getNodeType(e),t)}else s=o.build(e,t);return s}serialize(e){super.serialize(e),e.components=this.components}deserialize(e){super.deserialize(e),this.components=e.components}},Sc=class extends s0{static get type(){return"SetNode"}constructor(e,t,o){super(),this.sourceNode=e,this.components=t,this.targetNode=o}generateNodeType(e){return this.sourceNode.getNodeType(e)}generate(e){const{sourceNode:t,components:o,targetNode:r}=this,s=this.getNodeType(e),i=e.getComponentType(r.getNodeType(e)),n=e.getTypeFromLength(o.length,i),a=r.build(e,n),l=t.build(e,s),u=e.getTypeLength(s),c=[];for(let d=0;de.replace(/r|s/g,"x").replace(/g|t/g,"y").replace(/b|p/g,"z").replace(/a|q/g,"w"),ma=e=>_c(e).split("").sort().join("");i1.prototype.assign=function(...e){if(this.isStackNode!==!0)return M2!==null?M2.assign(this,...e):G("TSL: No stack defined for assign operation. Make sure the assign is inside a Fn().",new C0),this;{const t=pi.get("assign");return this.addToStack(t(...e))}};i1.prototype.toVarIntent=function(){return this};i1.prototype.get=function(e){return new wc(this,e)};var q3={};function Co(e,t,o){q3[e]=q3[t]=q3[o]={get(){this._cache=this._cache||{};let n=this._cache[e];return n===void 0&&(n=new xc(this,e),this._cache[e]=n),n},set(n){this[e].assign(K(n))}};const r=e.toUpperCase(),s=t.toUpperCase(),i=o.toUpperCase();i1.prototype["set"+r]=i1.prototype["set"+s]=i1.prototype["set"+i]=function(n){const a=ma(e);return new Sc(this,a,K(n))},i1.prototype["flip"+r]=i1.prototype["flip"+s]=i1.prototype["flip"+i]=function(){const n=ma(e);return new Tc(this,n)}}var Re=["x","y","z","w"],Be=["r","g","b","a"],Ee=["s","t","p","q"];for(let e=0;e<4;e++){let t=Re[e],o=Be[e],r=Ee[e];Co(t,o,r);for(let s=0;s<4;s++){t=Re[e]+Re[s],o=Be[e]+Be[s],r=Ee[e]+Ee[s],Co(t,o,r);for(let i=0;i<4;i++){t=Re[e]+Re[s]+Re[i],o=Be[e]+Be[s]+Be[i],r=Ee[e]+Ee[s]+Ee[i],Co(t,o,r);for(let n=0;n<4;n++)t=Re[e]+Re[s]+Re[i]+Re[n],o=Be[e]+Be[s]+Be[i]+Be[n],r=Ee[e]+Ee[s]+Ee[i]+Ee[n],Co(t,o,r)}}}for(let e=0;e<32;e++)q3[e]={get(){this._cache=this._cache||{};let t=this._cache[e];return t===void 0&&(t=new f3(this,new je(e,"uint")),this._cache[e]=t),t},set(t){this[e].assign(K(t))}};Object.defineProperties(i1.prototype,q3);var Ac=function(e,t=null){const o=_r(e);return o==="node"?e:t===null&&(o==="float"||o==="boolean")||o&&o!=="shader"&&o!=="string"?K(mi(e,t)):o==="shader"?e.isFn?e:B(e):e},Cc=function(e,t=null){for(const o in e)e[o]=K(e[o],t);return e},Rc=function(e,t=null){const o=e.length;for(let r=0;rl?(G(`TSL: "${d}" parameter length exceeds limit.`,new C0),c.slice(0,l)):c}return t===null?i=(...c)=>s(new e(...e3(u(c)))):o!==null?(o=K(o),i=(...c)=>s(new e(t,...e3(u(c)),o))):i=(...c)=>s(new e(t,...e3(u(c)))),i.setParameterLength=(...c)=>(c.length===1?a=l=c[0]:c.length===2&&([a,l]=c),i),i.setName=c=>(n=c,i),i},Bc=function(e,...t){return new e(...e3(t))},Ec=class extends i1{constructor(e,t){super(),this.shaderNode=e,this.rawInputs=t,this.isShaderCallNodeInternal=!0}generateNodeType(e){return this.shaderNode.nodeType||this.getOutputNode(e).getNodeType(e)}getElementType(e){return this.getOutputNode(e).getElementType(e)}getMemberType(e,t){return this.getOutputNode(e).getMemberType(e,t)}call(e){const{shaderNode:t,rawInputs:o}=this,r=e.getNodeProperties(t),s=e.getClosestSubBuild(t.subBuilds)||"",i=s||"default";if(r[i])return r[i];const n=e.subBuildFn,a=e.fnCall;e.subBuildFn=s,e.fnCall=this;let l=null;if(t.layout){if(o){const d=t.layout.inputs;if(u4(o)){const h=o;for(let f=0;f{let N;return Symbol.iterator===m?N=function*(){yield void 0}:N=Reflect.get(p,m,b),N}}),c=o?Wc(o):null,d=Array.isArray(o)?o.length>0:o!==null,h=t.jsFunc,f=d||h.length>1?h(c,u):h(u);l=K(f)}return e.subBuildFn=n,e.fnCall=a,t.once&&(r[i]=l),l}setupOutput(e){return e.addStack(),e.stack.outputNode=this.call(e),e.removeStack()}getOutputNode(e){const t=e.getNodeProperties(this),o=e.getSubBuildOutput(this);return t[o]=t[o]||this.setupOutput(e),t[o].subBuild=e.getClosestSubBuild(this),t[o]}build(e,t=null){let o=null;const r=e.getBuildStage(),s=e.getNodeProperties(this),i=e.getSubBuildOutput(this),n=this.getOutputNode(e),a=e.fnCall;if(e.fnCall=this,r==="setup"){const l=e.getSubBuildProperty("initialized",this);if(s[l]!==!0&&(s[l]=!0,s[i]=this.getOutputNode(e),s[i].build(e),this.shaderNode.subBuilds))for(const u of e.chaining){const c=e.getDataFromNode(u,"any");c.subBuilds=c.subBuilds||new Set;for(const d of this.shaderNode.subBuilds)c.subBuilds.add(d)}o=s[i]}else r==="analyze"?n.build(e,t):r==="generate"&&(o=n.build(e,t)||"");return e.fnCall=a,o}};function u4(e){return e[0]&&(e[0].isNode||Object.getPrototypeOf(e[0])!==Object.prototype)}function Uc(e){let t;return ln(e),u4(e)?t=[...e]:t=e[0],t}function Wc(e){let t=0;return ln(e),new Proxy(e,{get:(o,r,s)=>{let i;if(r==="length")return i=e.length,i;if(Symbol.iterator===r)i=function*(){for(const n of e)yield K(n)};else{if(e.length>0)if(Object.getPrototypeOf(e[0])===Object.prototype){const n=e[0];n[r]===void 0?i=n[t++]:i=Reflect.get(n,r,s)}else e[0]instanceof i1&&(e[r]===void 0?i=e[t++]:i=Reflect.get(e,r,s));else i=Reflect.get(o,r,s);i=K(i)}return i}})}var Lc=class extends i1{constructor(e,t){super(t),this.jsFunc=e,this.layout=null,this.global=!0,this.once=!1}setLayout(e){return this.layout=e,this}getLayout(){return this.layout}call(e=null){return new Ec(this,e)}setup(){return this.call()}},Oc=[!1,!0],Fc=[0,1,2,3],Pc=[-1,-2],c4=[.5,1.5,1/3,1e-6,1e6,Math.PI,Math.PI*2,1/Math.PI,2/Math.PI,1/(Math.PI*2),Math.PI/2],sn=new Map;for(const e of Oc)sn.set(e,new je(e));var nn=new Map;for(const e of Fc)nn.set(e,new je(e,"uint"));var an=new Map([...nn].map(e=>new je(e.value,"int")));for(const e of Pc)an.set(e,new je(e,"int"));var Ir=new Map([...an].map(e=>new je(e.value)));for(const e of c4)Ir.set(e,new je(e));for(const e of c4)Ir.set(-e,new je(-e));var Gr={bool:sn,uint:nn,ints:an,float:Ir},ga=new Map([...sn,...Ir]),mi=(e,t)=>ga.has(e)?ga.get(e):e.isNode===!0?e:new je(e,t),i0=function(e,t=null){return(...o)=>{for(const s of o)if(s===void 0)return G(`TSL: Invalid parameter for the type "${e}".`,new C0),new je(0,e);if((o.length===0||!["bool","float","int","uint"].includes(e)&&o.every(s=>{const i=typeof s;return i!=="object"&&i!=="function"}))&&(o=[on(e,...o)]),o.length===1&&t!==null&&t.has(o[0]))return Ro(t.get(o[0]));if(o.length===1){const s=mi(o[0],e);return s.nodeType===e?Ro(s):Ro(new a4(s,e))}const r=o.map(s=>mi(s));return Ro(new Mc(r,e))}};function gi(e){return e&&e.isNode&&e.traverse(t=>{t.isConstNode&&(e=t.value)}),!!e}var Dc=e=>e!=null?e.nodeType||e.convertTo||(typeof e=="string"?e:null):null;function I3(e,t){return new Lc(e,t)}var K=(e,t=null)=>Ac(e,t),Ro=(e,t=null)=>K(e,t).toVarIntent(),ln=(e,t=null)=>new Cc(e,t),e3=(e,t=null)=>new Rc(e,t),G1=(e,t=null,o=null,r=null)=>new l4(e,t,o,r),V=(e,...t)=>new Bc(e,...t),Z=(e,t=null,o=null,r={})=>new l4(e,t,o,{...r,intent:!0}),kc=0,Xc=class extends i1{constructor(e,t=null){super();let o=null;t!==null&&(typeof t=="object"?o=t.return:(typeof t=="string"?o=t:G("TSL: Invalid layout type.",new C0),t=null)),this.shaderNode=new I3(e,o),t!==null&&this.setLayout(t),this.isFn=!0}setLayout(e){const t=this.shaderNode.nodeType;if(typeof e.inputs!="object"){const o={name:"fn"+kc++,type:t,inputs:[]};for(const r in e)r!=="return"&&o.inputs.push({name:r,type:e[r]});e=o}return this.shaderNode.setLayout(e),this}generateNodeType(e){return this.shaderNode.getNodeType(e)||"float"}call(...e){const t=this.shaderNode.call(e);return this.shaderNode.nodeType==="void"&&t.toStack(),t.toVarIntent()}once(e=null){return this.shaderNode.once=!0,this.shaderNode.subBuilds=e,this}generate(e){const t=this.getNodeType(e);return G('TSL: "Fn()" was declared but not invoked. Try calling it like "Fn()( ...params )".',this.stackTrace),e.generateConst(t)}};function B(e,t=null){const o=new Xc(e,t);return new Proxy(()=>{},{apply(r,s,i){return o.call(...i)},get(r,s,i){return Reflect.get(o,s,i)},set(r,s,i,n){return Reflect.set(o,s,i,n)}})}var Ar=e=>{M2=e},d4=()=>M2,x1=(...e)=>M2.If(...e);function h4(e){return M2&&M2.addToStack(e),e}E("toStack",h4);var Ic=new i0("color"),C=new i0("float",Gr.float),Q1=new i0("int",Gr.ints),m1=new i0("uint",Gr.uint),zr=new i0("bool",Gr.bool),n1=new i0("vec2"),O0=new i0("ivec2"),f4=new i0("uvec2"),Gc=new i0("bvec2"),U=new i0("vec3"),p4=new i0("ivec3"),m4=new i0("uvec3"),zc=new i0("bvec3"),Y=new i0("vec4"),g4=new i0("ivec4"),v4=new i0("uvec4"),Vc=new i0("bvec4"),un=new i0("mat2"),m0=new i0("mat3"),v2=new i0("mat4");E("toColor",Ic);E("toFloat",C);E("toInt",Q1);E("toUint",m1);E("toBool",zr);E("toVec2",n1);E("toIVec2",O0);E("toUVec2",f4);E("toBVec2",Gc);E("toVec3",U);E("toIVec3",p4);E("toUVec3",m4);E("toBVec3",zc);E("toVec4",Y);E("toIVec4",g4);E("toUVec4",v4);E("toBVec4",Vc);E("toMat2",un);E("toMat3",m0);E("toMat4",v2);var Qc=G1(f3).setParameterLength(2),$c=(e,t)=>new a4(K(e),t);E("element",Qc);E("convert",$c);E("append",e=>(j("TSL: .append() has been renamed to .toStack().",new C0),h4(e)));var w1=class extends i1{static get type(){return"PropertyNode"}constructor(e,t=null,o=!1,r=null){super(e),this.name=t,this.varying=o,this.placeholderNode=K(r),this.isPropertyNode=!0,this.global=!0}getNodeType(e){const t=super.getNodeType(e);return t==="output"?e.getOutputType():t}customCacheKey(){return d3(this.type+":"+(this.name||"")+":"+(this.varying?"1":"0"))}getHash(e){return this.name||super.getHash(e)}generate(e){let t;if(this.varying===!0)t=e.getVaryingFromNode(this,this.name),t.needsInterpolation=!0;else if(t=e.getVarFromNode(this,this.name),this.placeholderNode!==null&&e.hasWriteUsage(this)===!1){const o=this.placeholderNode.build(e,this.getNodeType(e));e.addLineFlowCode(`${e.getPropertyName(t)} = ${o}`,this)}return e.getPropertyName(t)}},It=(e,t,o=null)=>new w1(e,t,!1,o),p3=(e,t,o=null)=>new w1(e,t,!0,o),U1=V(w1,"vec4","DiffuseColor"),J2=V(w1,"vec3","DiffuseContribution"),va=V(w1,"vec3","EmissiveColor"),nt=V(w1,"float","Roughness"),_t=V(w1,"float","Metalness"),vi=V(w1,"float","Clearcoat"),H3=V(w1,"float","ClearcoatRoughness"),Y0=V(w1,"vec3","Sheen"),s2=V(w1,"float","SheenRoughness"),cn=V(w1,"float","Iridescence"),bi=V(w1,"float","IridescenceIOR"),Ni=V(w1,"float","IridescenceThickness"),Mi=V(w1,"float","AlphaT"),Yt=V(w1,"float","Anisotropy"),fr=V(w1,"vec3","AnisotropyT"),t3=V(w1,"vec3","AnisotropyB"),y2=V(w1,"color","SpecularColor"),j2=V(w1,"color","SpecularColorBlended"),K2=V(w1,"float","SpecularF90"),yi=V(w1,"float","Shininess"),J3=V(w1,"output","Output"),o3=V(w1,"float","dashSize"),Cr=V(w1,"float","gapSize"),pr=V(w1,"float","IOR"),xi=V(w1,"float","Transmission"),b4=V(w1,"float","Thickness"),N4=V(w1,"float","AttenuationDistance"),M4=V(w1,"color","AttenuationColor"),y4=V(w1,"float","Dispersion"),ba=V(w1,"float","AmbientOcclusion",!1,1),x4=class extends i1{static get type(){return"UniformGroupNode"}constructor(e,t=!1,o=1,r=null){super("string"),this.name=e,this.shared=t,this.order=o,this.updateType=r,this.isUniformGroup=!0}update(){this.needsUpdate=!0}serialize(e){super.serialize(e),e.name=this.name,e.version=this.version,e.shared=this.shared}deserialize(e){super.deserialize(e),this.name=e.name,this.version=e.version,this.shared=e.shared}},Zc=(e,t=1,o=null)=>new x4(e,!1,t,o),dn=(e,t=0,o=null)=>new x4(e,!0,t,o),CT=dn("frame",0,u1.FRAME),s1=dn("render",0,u1.RENDER),qc=Zc("object",1,u1.OBJECT),No=class extends rn{static get type(){return"UniformNode"}constructor(e,t=null){super(e,t),this.isUniformNode=!0,this.name="",this.groupNode=qc}setName(e){return this.name=e,this}label(e){return j('TSL: "label()" has been deprecated. Use "setName()" instead.',new C0),this.setName(e)}setGroup(e){return this.groupNode=e,this}getGroup(){return this.groupNode}getUniformHash(e){return this.getHash(e)}onUpdate(e,t){return e=e.bind(this),super.onUpdate(o=>{const r=e(o,this);r!==void 0&&(this.value=r)},t)}getInputType(e){let t=super.getInputType(e);return t==="bool"&&(t="uint"),t}generate(e,t){const o=this.getNodeType(e),r=this.getUniformHash(e);let s=e.getNodeFromHash(r);s===void 0&&(e.setHashNode(this,r),s=this);const i=s.getInputType(e),n=e.getUniformFromNode(s,i,e.shaderStage,this.name||e.context.nodeName),a=e.getPropertyName(n);e.context.nodeName!==void 0&&delete e.context.nodeName;let l=a;if(o==="bool"){const u=e.getDataFromNode(this);let c=u.propertyName;if(c===void 0){const d=e.getVarFromNode(this,null,"bool");c=e.getPropertyName(d),u.propertyName=c,l=e.format(a,i,o),e.addLineFlowCode(`${c} = ${l}`,this)}l=c}return e.format(l,o,t)}},o1=(e,t)=>{const o=Dc(t||e);if(o===e&&(e=on(o)),e&&e.isNode===!0){let r=e.value;e.traverse(s=>{s.isConstNode===!0&&(r=s.value)}),e=r}return new No(e,o)},Na=class extends s0{static get type(){return"ArrayNode"}constructor(e,t,o=null){super(e),this.count=t,this.values=o,this.isArrayNode=!0}getArrayCount(){return this.count}generateNodeType(e){return this.nodeType===null?this.values[0].getNodeType(e):this.nodeType}getElementType(e){return this.getNodeType(e)}getMemberType(e,t){return this.nodeType===null?this.values[0].getMemberType(e,t):super.getMemberType(e,t)}generate(e){const t=this.getNodeType(e);return e.generateArray(t,this.count,this.values)}},Hc=(...e)=>{let t;if(e.length===1){const o=e[0];t=new Na(null,o.length,o)}else{const o=e[0],r=e[1];t=new Na(o,r)}return K(t)};E("toArray",(e,t)=>Hc(Array(t).fill(e)));var Jc=class extends s0{static get type(){return"AssignNode"}constructor(e,t){super(),this.targetNode=e,this.sourceNode=t,this.isAssignNode=!0}hasDependencies(){return!1}generateNodeType(e,t){return t!=="void"?this.targetNode.getNodeType(e):"void"}needsSplitAssign(e){const{targetNode:t}=this;if(e.isAvailable("swizzleAssign")===!1&&t.isSplitNode&&t.components.length>1){const o=e.getTypeLength(t.node.getNodeType(e));return h3.join("").slice(0,o)!==t.components}return!1}setup(e){const{targetNode:t,sourceNode:o}=this,r=t.getScope(),s=e.getDataFromNode(r);s.assign=!0;const i=e.getNodeProperties(this);i.sourceNode=o,i.targetNode=t.context({assign:!0})}generate(e,t){const{targetNode:o,sourceNode:r}=e.getNodeProperties(this),s=this.needsSplitAssign(e),i=o.build(e),n=o.getNodeType(e),a=r.build(e,n),l=r.getNodeType(e),u=e.getDataFromNode(this);let c;if(u.initialized===!0)t!=="void"&&(c=i);else if(s){const d=e.getVarFromNode(this,null,n),h=e.getPropertyName(d);e.addLineFlowCode(`${h} = ${a}`,this);const f=o.node,p=f.node.context({assign:!0}).build(e);for(let m=0;m{const l=a.type,u=l==="pointer";let c;return u?c="&"+n.build(e):c=n.build(e,l),c};if(Array.isArray(s)){if(s.length>r.length)G("TSL: The number of provided parameters exceeds the expected number of inputs in 'Fn()'."),s.length=r.length;else if(s.length(t=t.length>1||t[0]&&t[0].isNode===!0?e3(t):ln(t[0]),new Kc(K(e),t));E("call",Yc);var ed={"==":"equal","!=":"notEqual","<":"lessThan",">":"greaterThan","<=":"lessThanEqual",">=":"greaterThanEqual","%":"mod"},r0=class Si extends s0{static get type(){return"OperatorNode"}constructor(t,o,r,...s){if(super(),s.length>0){let i=new Si(t,o,r);for(let n=0;n>"||r==="<<")return t.getIntegerType(n);if(r==="&&"||r==="||"||r==="^^")return"bool";if(r==="!"){const l=t.getTypeLength(n);return l>1?`bvec${l}`:"bool"}else if(r==="=="||r==="!="||r==="<"||r===">"||r==="<="||r===">="){const l=Math.max(t.getTypeLength(n),t.getTypeLength(a));return l>1?`bvec${l}`:"bool"}else{if(t.isMatrix(n)){if(a==="float")return n;if(t.isVector(a))return t.getVectorFromMatrix(n);if(t.isMatrix(a))return n}else if(t.isMatrix(a)){if(n==="float")return a;if(t.isVector(n))return t.getVectorFromMatrix(a)}return t.getTypeLength(a)>t.getTypeLength(n)?a:n}}generate(t,o){const r=this.op,{aNode:s,bNode:i}=this,n=this.getNodeType(t,o);let a=null,l=null;n!=="void"?(a=s.getNodeType(t),l=i?i.getNodeType(t):null,r==="<"||r===">"||r==="<="||r===">="||r==="=="||r==="!="?t.isVector(a)?l=a:t.isVector(l)?a=l:a!==l&&(a=l="float"):r===">>"||r==="<<"?(a=n,l=t.changeComponentType(l,"uint")):r==="%"?(a=n,l=t.isInteger(a)&&t.isInteger(l)?l:a):t.isMatrix(a)?l==="float"?l="float":t.isVector(l)?l=t.getVectorFromMatrix(a):t.isMatrix(l)||(a=l=n):t.isMatrix(l)?a==="float"?a="float":t.isVector(a)?a=t.getVectorFromMatrix(l):a=l=n:a=l=n):a=l=n;const u=s.build(t,a),c=i?i.build(t,l):null,d=t.getFunctionOperator(r);if(o!=="void"){const h=t.renderer.coordinateSystem===D6;if(r==="=="||r==="!="||r==="<"||r===">"||r==="<="||r===">=")return h?t.isVector(a)?t.format(`${this.getOperatorMethod(t,o)}( ${u}, ${c} )`,n,o):t.format(`( ${u} ${r} ${c} )`,n,o):t.format(`( ${u} ${r} ${c} )`,n,o);if(r==="%")return t.isInteger(l)?t.format(`( ${u} % ${c} )`,n,o):t.format(`${this.getOperatorMethod(t,n)}( ${u}, ${c} )`,n,o);if(r==="!")return h&&t.isVector(a)?t.format(`not( ${u} )`,o):t.format(`( ${r} ${u} )`,a,o);if(r==="~")return t.format(`( ${r} ${u} )`,a,o);if(d)return t.format(`${d}( ${u}, ${c} )`,n,o);if(t.isMatrix(a)&&l==="float")return t.format(`( ${c} ${r} ${u} )`,n,o);if(a==="float"&&t.isMatrix(l))return t.format(`${u} ${r} ${c}`,n,o);{let f=`( ${u} ${r} ${c} )`;return!h&&n==="bool"&&t.isVector(a)&&t.isVector(l)&&(f=`all${f}`),t.format(f,n,o)}}else if(a!=="void")return d?t.format(`${d}( ${u}, ${c} )`,n,o):t.isMatrix(a)&&l==="float"?t.format(`${c} ${r} ${u}`,n,o):t.format(`${u} ${r} ${c}`,n,o)}serialize(t){super.serialize(t),t.op=this.op}deserialize(t){super.deserialize(t),this.op=t.op}},P0=Z(r0,"+").setParameterLength(2,1/0).setName("add"),U0=Z(r0,"-").setParameterLength(2,1/0).setName("sub"),d1=Z(r0,"*").setParameterLength(2,1/0).setName("mul"),Ze=Z(r0,"/").setParameterLength(2,1/0).setName("div"),S4=Z(r0,"%").setParameterLength(2).setName("mod"),td=Z(r0,"==").setParameterLength(2).setName("equal"),od=Z(r0,"!=").setParameterLength(2).setName("notEqual"),rd=Z(r0,"<").setParameterLength(2).setName("lessThan"),sd=Z(r0,">").setParameterLength(2).setName("greaterThan"),id=Z(r0,"<=").setParameterLength(2).setName("lessThanEqual"),nd=Z(r0,">=").setParameterLength(2).setName("greaterThanEqual"),ad=Z(r0,"&&").setParameterLength(2,1/0).setName("and"),ld=Z(r0,"||").setParameterLength(2,1/0).setName("or"),ud=Z(r0,"!").setParameterLength(1).setName("not"),cd=Z(r0,"^^").setParameterLength(2).setName("xor"),dd=Z(r0,"&").setParameterLength(2).setName("bitAnd"),hd=Z(r0,"~").setParameterLength(1).setName("bitNot"),fd=Z(r0,"|").setParameterLength(2).setName("bitOr"),pd=Z(r0,"^").setParameterLength(2).setName("bitXor"),md=Z(r0,"<<").setParameterLength(2).setName("shiftLeft"),gd=Z(r0,">>").setParameterLength(2).setName("shiftRight"),vd=B(([e])=>(e.addAssign(1),e)),bd=B(([e])=>(e.subAssign(1),e)),Nd=B(([e])=>{const t=Q1(e).toConst();return e.addAssign(1),t}),Md=B(([e])=>{const t=Q1(e).toConst();return e.subAssign(1),t});E("add",P0);E("sub",U0);E("mul",d1);E("div",Ze);E("mod",S4);E("equal",td);E("notEqual",od);E("lessThan",rd);E("greaterThan",sd);E("lessThanEqual",id);E("greaterThanEqual",nd);E("and",ad);E("or",ld);E("not",ud);E("xor",cd);E("bitAnd",dd);E("bitNot",hd);E("bitOr",fd);E("bitXor",pd);E("shiftLeft",md);E("shiftRight",gd);E("incrementBefore",vd);E("decrementBefore",bd);E("increment",Nd);E("decrement",Md);var A=class k1 extends s0{static get type(){return"MathNode"}constructor(t,o,r=null,s=null){if(super(),(t===k1.MAX||t===k1.MIN)&&arguments.length>3){let i=new k1(t,o,r);for(let n=3;nn&&i>a?o:n>a?r:a>i?s:o}generateNodeType(t){const o=this.method;return o===k1.LENGTH||o===k1.DISTANCE||o===k1.DOT?"float":o===k1.CROSS?"vec3":o===k1.ALL||o===k1.ANY?"bool":o===k1.EQUALS?t.changeComponentType(this.aNode.getNodeType(t),"bool"):this.getInputType(t)}setup(t){const{aNode:o,bNode:r,method:s}=this;let i=null;if(s===k1.ONE_MINUS)i=U0(1,o);else if(s===k1.RECIPROCAL)i=Ze(1,o);else if(s===k1.DIFFERENCE)i=Q0(U0(o,r));else if(s===k1.TRANSFORM_DIRECTION){let n,a;t.isMatrix(o.getNodeType(t))?(n=o,a=r):(n=r,a=o),i=le(d1(n,Y(U(a),0)).xyz)}return i!==null?i:super.setup(t)}generate(t,o){if(t.getNodeProperties(this).outputNode)return super.generate(t,o);let r=this.method;const s=this.getNodeType(t),i=this.getInputType(t),n=this.aNode,a=this.bNode,l=this.cNode,u=t.renderer.coordinateSystem;if(r===k1.NEGATE)return t.format("( - "+n.build(t,i)+" )",s,o);{const c=[];return r===k1.CROSS?c.push(n.build(t,s),a.build(t,s)):u===2e3&&r===k1.STEP?c.push(n.build(t,t.getTypeLength(n.getNodeType(t))===1?"float":i),a.build(t,i)):u===2e3&&(r===k1.MIN||r===k1.MAX)?c.push(n.build(t,i),a.build(t,t.getTypeLength(a.getNodeType(t))===1?"float":i)):r===k1.REFRACT?c.push(n.build(t,i),a.build(t,i),l.build(t,"float")):r===k1.MIX?c.push(n.build(t,i),a.build(t,i),l.build(t,t.getTypeLength(l.getNodeType(t))===1?"float":i)):(u===2001&&r===k1.ATAN&&a!==null&&(r="atan2"),t.shaderStage!=="fragment"&&(r===k1.DFDX||r===k1.DFDY)&&(j(`TSL: '${r}' is not supported in the ${t.shaderStage} stage.`,this.stackTrace),r="/*"+r+"*/"),c.push(n.build(t,i)),a!==null&&c.push(a.build(t,i)),l!==null&&c.push(l.build(t,i))),t.format(`${t.getMethod(r,s)}( ${c.join(", ")} )`,s,o)}}serialize(t){super.serialize(t),t.method=this.method}deserialize(t){super.deserialize(t),this.method=t.method}};A.ALL="all";A.ANY="any";A.RADIANS="radians";A.DEGREES="degrees";A.EXP="exp";A.EXP2="exp2";A.LOG="log";A.LOG2="log2";A.SQRT="sqrt";A.INVERSE_SQRT="inversesqrt";A.FLOOR="floor";A.CEIL="ceil";A.NORMALIZE="normalize";A.FRACT="fract";A.SIN="sin";A.SINH="sinh";A.COS="cos";A.COSH="cosh";A.TAN="tan";A.TANH="tanh";A.ASIN="asin";A.ASINH="asinh";A.ACOS="acos";A.ACOSH="acosh";A.ATAN="atan";A.ATANH="atanh";A.ABS="abs";A.SIGN="sign";A.LENGTH="length";A.NEGATE="negate";A.ONE_MINUS="oneMinus";A.DFDX="dFdx";A.DFDY="dFdy";A.ROUND="round";A.RECIPROCAL="reciprocal";A.TRUNC="trunc";A.FWIDTH="fwidth";A.TRANSPOSE="transpose";A.DETERMINANT="determinant";A.INVERSE="inverse";A.EQUALS="equals";A.MIN="min";A.MAX="max";A.STEP="step";A.REFLECT="reflect";A.DISTANCE="distance";A.DIFFERENCE="difference";A.DOT="dot";A.CROSS="cross";A.POW="pow";A.TRANSFORM_DIRECTION="transformDirection";A.MIX="mix";A.CLAMP="clamp";A.REFRACT="refract";A.SMOOTHSTEP="smoothstep";A.FACEFORWARD="faceforward";var hn=C(1e-6),yd=C(Math.PI),RT=C(Math.PI*2),BT=C(Math.PI*2),ET=C(Math.PI*.5),xd=Z(A,A.ALL).setParameterLength(1),Sd=Z(A,A.ANY).setParameterLength(1),Td=Z(A,A.RADIANS).setParameterLength(1),wd=Z(A,A.DEGREES).setParameterLength(1),T4=Z(A,A.EXP).setParameterLength(1),so=Z(A,A.EXP2).setParameterLength(1),w4=Z(A,A.LOG).setParameterLength(1),ut=Z(A,A.LOG2).setParameterLength(1),Lt=Z(A,A.SQRT).setParameterLength(1),_d=Z(A,A.INVERSE_SQRT).setParameterLength(1),b2=Z(A,A.FLOOR).setParameterLength(1),fn=Z(A,A.CEIL).setParameterLength(1),le=Z(A,A.NORMALIZE).setParameterLength(1),qe=Z(A,A.FRACT).setParameterLength(1),V0=Z(A,A.SIN).setParameterLength(1),Ad=Z(A,A.SINH).setParameterLength(1),Pe=Z(A,A.COS).setParameterLength(1),Cd=Z(A,A.COSH).setParameterLength(1),Rd=Z(A,A.TAN).setParameterLength(1),Bd=Z(A,A.TANH).setParameterLength(1),Ed=Z(A,A.ASIN).setParameterLength(1),Ud=Z(A,A.ASINH).setParameterLength(1),_4=Z(A,A.ACOS).setParameterLength(1),Wd=Z(A,A.ACOSH).setParameterLength(1),Ld=Z(A,A.ATAN).setParameterLength(1,2),Od=Z(A,A.ATANH).setParameterLength(1),Q0=Z(A,A.ABS).setParameterLength(1),A4=Z(A,A.SIGN).setParameterLength(1),ct=Z(A,A.LENGTH).setParameterLength(1),C4=Z(A,A.NEGATE).setParameterLength(1),Fd=Z(A,A.ONE_MINUS).setParameterLength(1),R4=Z(A,A.DFDX).setParameterLength(1),B4=Z(A,A.DFDY).setParameterLength(1),Pd=Z(A,A.ROUND).setParameterLength(1),Dd=Z(A,A.RECIPROCAL).setParameterLength(1),kd=Z(A,A.TRUNC).setParameterLength(1),E4=Z(A,A.FWIDTH).setParameterLength(1),Xd=Z(A,A.TRANSPOSE).setParameterLength(1),Id=Z(A,A.DETERMINANT).setParameterLength(1),Gd=Z(A,A.INVERSE).setParameterLength(1),n3=Z(A,A.MIN).setParameterLength(2,1/0),g0=Z(A,A.MAX).setParameterLength(2,1/0),io=Z(A,A.STEP).setParameterLength(2),zd=Z(A,A.REFLECT).setParameterLength(2),Vd=Z(A,A.DISTANCE).setParameterLength(2),Qd=Z(A,A.DIFFERENCE).setParameterLength(2),x2=Z(A,A.DOT).setParameterLength(2),S2=Z(A,A.CROSS).setParameterLength(2),Vr=Z(A,A.POW).setParameterLength(2),U4=e=>d1(e,e),$d=e=>d1(e,e,e),W4=e=>d1(e,e,e,e),Zd=Z(A,A.TRANSFORM_DIRECTION).setParameterLength(2),qd=(e,t)=>le(d1(t,Y(U(e),0)).xyz),Hd=(e,t)=>le(Y(U(e),0).mul(t).xyz),Jd=e=>d1(A4(e),Vr(Q0(e),1/3)),L4=e=>x2(e,e),C1=Z(A,A.MIX).setParameterLength(3),Pt=(e,t=0,o=1)=>new A(A.CLAMP,K(e),K(t),K(o)),pn=e=>Pt(e),O4=Z(A,A.REFRACT).setParameterLength(3),we=Z(A,A.SMOOTHSTEP).setParameterLength(3),jd=Z(A,A.FACEFORWARD).setParameterLength(3),Kd=B(([e])=>{const r=43758.5453,s=x2(e.xy,n1(12.9898,78.233)),i=S4(s,yd);return qe(V0(i).mul(r))}),Yd=(e,t,o)=>C1(t,o,e),eh=(e,t,o)=>we(t,o,e),th=(e,t)=>io(t,e);E("all",xd);E("any",Sd);E("radians",Td);E("degrees",wd);E("exp",T4);E("exp2",so);E("log",w4);E("log2",ut);E("sqrt",Lt);E("inverseSqrt",_d);E("floor",b2);E("ceil",fn);E("normalize",le);E("fract",qe);E("sin",V0);E("sinh",Ad);E("cos",Pe);E("cosh",Cd);E("tan",Rd);E("tanh",Bd);E("asin",Ed);E("asinh",Ud);E("acos",_4);E("acosh",Wd);E("atan",Ld);E("atanh",Od);E("abs",Q0);E("sign",A4);E("length",ct);E("lengthSq",L4);E("negate",C4);E("oneMinus",Fd);E("dFdx",R4);E("dFdy",B4);E("round",Pd);E("reciprocal",Dd);E("trunc",kd);E("fwidth",E4);E("min",n3);E("max",g0);E("step",th);E("reflect",zd);E("distance",Vd);E("dot",x2);E("cross",S2);E("pow",Vr);E("pow2",U4);E("pow3",$d);E("pow4",W4);E("transformDirection",Zd);E("transformNormalByViewMatrix",qd);E("transformNormalByInverseViewMatrix",Hd);E("mix",Yd);E("clamp",Pt);E("refract",O4);E("smoothstep",eh);E("faceForward",jd);E("difference",Qd);E("saturate",pn);E("cbrt",Jd);E("transpose",Xd);E("determinant",Id);E("inverse",Gd);E("rand",Kd);var oh=class extends i1{static get type(){return"ConditionalNode"}constructor(e,t,o=null){super(),this.condNode=e,this.ifNode=t,this.elseNode=o}generateNodeType(e){const{ifNode:t,elseNode:o}=e.getNodeProperties(this);if(t===void 0)return e.flowBuildStage(this,"setup"),this.getNodeType(e);const r=t.getNodeType(e);if(o!==null){const s=o.getNodeType(e);if(e.getTypeLength(s)>e.getTypeLength(r))return s}return r}setup(e){const t=this.condNode,o=this.ifNode.isolate(),r=this.elseNode?this.elseNode.isolate():null,s=e.context.nodeBlock;e.getDataFromNode(o).parentNodeBlock=s,r!==null&&(e.getDataFromNode(r).parentNodeBlock=s);const i=e.context.uniformFlow,n=e.getNodeProperties(this);n.condNode=t,n.ifNode=i?o:o.context({nodeBlock:o}),n.elseNode=r?i?r:r.context({nodeBlock:r}):null}generate(e,t){const o=this.getNodeType(e),r=e.getDataFromNode(this);if(r.nodeProperty!==void 0)return r.nodeProperty;const{condNode:s,ifNode:i,elseNode:n}=e.getNodeProperties(this),a=e.currentFunctionNode,l=t!=="void",u=l?It(o).build(e):"";r.nodeProperty=u;const c=s.build(e,"bool");if(e.context.uniformFlow&&n!==null){const h=i.build(e,o),f=n.build(e,o),p=e.getTernary(c,h,f);return e.format(p,o,t)}e.addFlowCode(` -${e.tab}if ( ${c} ) { - -`).addFlowTab();let d=i.build(e,o);if(d&&(l?d=u+" = "+d+";":(d="return "+d+";",a===null&&(j("TSL: Return statement used in an inline 'Fn()'. Define a layout struct to allow return values.",this.stackTrace),d="// "+d))),e.removeFlowTab().addFlowCode(e.tab+" "+d+` - -`+e.tab+"}"),n!==null){e.addFlowCode(` else { - -`).addFlowTab();let h=n.build(e,o);h&&(l?h=u+" = "+h+";":(h="return "+h+";",a===null&&(j("TSL: Return statement used in an inline 'Fn()'. Define a layout struct to allow return values.",this.stackTrace),h="// "+h))),e.removeFlowTab().addFlowCode(e.tab+" "+h+` - -`+e.tab+`} - -`)}else e.addFlowCode(` - -`);return e.format(u,o,t)}},$0=G1(oh).setParameterLength(2,3);E("select",$0);var mn=class extends i1{static get type(){return"ContextNode"}constructor(e=null,t={}){super(),this.isContextNode=!0,this.node=e,this.value=t}getScope(){return this.node.getScope()}generateNodeType(e){return this.node.getNodeType(e)}getFlowContextData(){const e=[];return this.traverse(t=>{t.isContextNode===!0&&e.push(t.value)}),Object.assign({},...e)}getMemberType(e,t){return this.node.getMemberType(e,t)}analyze(e){const t=e.addContext(this.value);this.node.build(e),e.setContext(t)}setup(e){const t=e.addContext(this.value);this.node.build(e),e.setContext(t)}generate(e,t){const o=e.addContext(this.value),r=this.node.build(e,t);return e.setContext(o),r}},B2=(e=null,t={})=>{let o=e;return(o===null||o.isNode!==!0)&&(t=o||t,o=null),new mn(o,t)},rh=e=>B2(e,{uniformFlow:!0}),F4=(e,t)=>B2(e,{nodeName:t});function sh(e,t,o=null){return B2(o,{getShadow:({light:r,shadowColorNode:s})=>t===r?s.mul(e):s})}function ih(e,t=null){return B2(t,{getAO:(o,{material:r})=>r.transparent===!0?o:o!==null?o.mul(e):e})}function nh(e,t){return j('TSL: "label()" has been deprecated. Use "setName()" instead.'),F4(e,t)}E("context",B2);E("label",nh);E("uniformFlow",rh);E("setName",F4);E("builtinShadowContext",(e,t,o)=>sh(t,o,e));E("builtinAOContext",(e,t)=>ih(t,e));var mr=class extends i1{static get type(){return"VarNode"}constructor(e,t=null,o=!1){super(),this.node=e,this.name=t,this.global=!0,this.isVarNode=!0,this.readOnly=o,this.parents=!0,this.intent=!1}setIntent(e){return this.intent=e,this}isIntent(e){return e.getDataFromNode(this).forceDeclaration===!0?!1:this.intent}getIntent(){return this.intent}getMemberType(e,t){return this.node.getMemberType(e,t)}getElementType(e){return this.node.getElementType(e)}generateNodeType(e){return this.node.getNodeType(e)}getArrayCount(e){return this.node.getArrayCount(e)}isAssign(e){return e.getDataFromNode(this).assign}build(...e){const t=e[0],o=this.getShared(t);if(this!==o)return o.build(...e);if(this._hasStack(t)===!1&&t.buildStage==="setup"&&(t.context.nodeLoop||t.context.nodeBlock)){let r=!1;if(this.node.isShaderCallNodeInternal&&this.node.shaderNode.getLayout()===null&&t.fnCall&&t.fnCall.shaderNode&&t.getDataFromNode(this.node.shaderNode).hasLoop){const i=t.getDataFromNode(this);i.forceDeclaration=!0,r=!0}const s=t.getBaseStack();r?s.addToStackBefore(this):s.addToStack(this)}return this.isIntent(t)&&this.isAssign(t)!==!0?this.node.build(...e):super.build(...e)}generate(e){const{node:t,name:o,readOnly:r}=this,{renderer:s}=e,i=s.backend.isWebGPUBackend===!0;let n=!1,a=!1;r&&(n=e.isDeterministic(t),a=i?r:n);const l=this.getNodeType(e);if(l=="void")return this.isIntent(e)!==!0&&G('TSL: ".toVar()" can not be used with void type.',this.stackTrace),t.build(e);const u=e.getVectorType(l),c=t.build(e,u),d=e.getVarFromNode(this,o,u,void 0,a),h=e.getPropertyName(d);let f=h;if(a)if(i)f=n?`const ${h}`:`let ${h}`;else{const p=t.getArrayCount(e);f=`const ${e.getVar(d.type,h,p)}`}return e.addLineFlowCode(`${f} = ${c}`,this),h}_hasStack(e){return e.getDataFromNode(this).stack!==void 0}},gn=G1(mr),ah=(e,t=null)=>gn(e,t).toStack(),lh=(e,t=null)=>gn(e,t,!0).toStack(),uh=e=>gn(e).setIntent(!0).toStack();E("toVar",ah);E("toConst",lh);E("toVarIntent",uh);var ch=class extends i1{static get type(){return"SubBuild"}constructor(e,t,o=null){super(o),this.node=e,this.name=t,this.isSubBuildNode=!0}generateNodeType(e){if(this.nodeType!==null)return this.nodeType;e.addSubBuild(this.name);const t=this.node.getNodeType(e);return e.removeSubBuild(),t}build(e,...t){e.addSubBuild(this.name);const o=this.node.build(e,...t);return e.removeSubBuild(),o}},r3=(e,t,o=null)=>new ch(K(e),t,o),dh=class extends i1{static get type(){return"VaryingNode"}constructor(e,t=null){super(),this.node=r3(e,"VERTEX"),this.name=t,this.isVaryingNode=!0,this.interpolationType=null,this.interpolationSampling=null,this.global=!0}setInterpolation(e,t=null){return this.interpolationType=e,this.interpolationSampling=t,this}getHash(e){return this.name||super.getHash(e)}generateNodeType(e){return this.node.getNodeType(e)}setupVarying(e){const t=e.getNodeProperties(this);let o=t.varying;if(o===void 0){const r=this.name,s=this.getNodeType(e),i=this.interpolationType,n=this.interpolationSampling;t.varying=o=e.getVaryingFromNode(this,r,s,i,n),t.node=r3(this.node,"VERTEX")}return o.needsInterpolation||(o.needsInterpolation=e.shaderStage==="fragment"),o}setup(e){this.setupVarying(e),e.flowNodeFromShaderStage(y3.VERTEX,this.node)}analyze(e){this.setupVarying(e),e.flowNodeFromShaderStage(y3.VERTEX,this.node)}generate(e){const t=e.getSubBuildProperty("property",e.currentStack),o=e.getNodeProperties(this),r=this.setupVarying(e);if(o[t]===void 0){const s=this.getNodeType(e),i=e.getPropertyName(r,y3.VERTEX);if(e.shaderStage===y3.VERTEX){const n=o.node.build(e,s);e.addLineFlowCode(`${i} = ${n}`,this)}else e.flowNodeFromShaderStage(y3.VERTEX,o.node,s,i);o[t]=i}return e.getPropertyName(r)}},E2=G1(dh).setParameterLength(1,2),hh=e=>E2(e);E("toVarying",E2);E("toVertexStage",hh);var fh=B(([e])=>{const t=e.mul(.9478672986).add(.0521327014).pow(2.4),o=e.mul(.0773993808),r=e.lessThanEqual(.04045);return C1(t,o,r)}).setLayout({name:"sRGBTransferEOTF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),ph=B(([e])=>{const t=e.pow(.41666).mul(1.055).sub(.055),o=e.mul(12.92),r=e.lessThanEqual(.0031308);return C1(t,o,r)}).setLayout({name:"sRGBTransferOETF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),vn="WorkingColorSpace",mh="OutputColorSpace",P4=class extends s0{static get type(){return"ColorSpaceNode"}constructor(e,t,o){super("vec4"),this.colorNode=e,this.source=t,this.target=o}resolveColorSpace(e,t){return t===vn?e0.workingColorSpace:t===mh?e.context.outputColorSpace||e.renderer.outputColorSpace:t}setup(e){const{colorNode:t}=this,o=this.resolveColorSpace(e,this.source),r=this.resolveColorSpace(e,this.target);let s=t;return e0.enabled===!1||o===r||!o||!r||(e0.getTransfer(o)==="srgb"&&(s=Y(fh(s.rgb),s.a)),e0.getPrimaries(o)!==e0.getPrimaries(r)&&(s=Y(m0(e0._getMatrix(new mo,o,r)).mul(s.rgb),s.a)),e0.getTransfer(r)==="srgb"&&(s=Y(ph(s.rgb),s.a))),s}},gh=(e,t)=>new P4(K(e),vn,t),bn=(e,t)=>new P4(K(e),t,vn);E("workingToColorSpace",gh);E("colorSpaceToWorking",bn);var vh=class extends f3{static get type(){return"ReferenceElementNode"}constructor(t,o){super(t,o),this.referenceNode=t,this.isReferenceElementNode=!0}generateNodeType(){return this.referenceNode.uniformType}generate(t){const o=super.generate(t),r=this.referenceNode.getNodeType(),s=this.getNodeType();return t.format(o,r,s)}},D4=class extends i1{static get type(){return"ReferenceBaseNode"}constructor(e,t,o=null,r=null){super(),this.property=e,this.uniformType=t,this.object=o,this.count=r,this.properties=e.split("."),this.reference=o,this.node=null,this.group=null,this.updateType=u1.OBJECT}setGroup(e){return this.group=e,this}element(e){return new vh(this,K(e))}setNodeType(e){const t=o1(null,e);this.group!==null&&t.setGroup(this.group),this.node=t}generateNodeType(e){return this.node===null&&(this.updateReference(e),this.updateValue()),this.node.getNodeType(e)}getValueFromReference(e=this.reference){const{properties:t}=this;let o=e[t[0]];for(let r=1;rnew D4(e,t,o),Nh=class extends D4{static get type(){return"RendererReferenceNode"}constructor(e,t,o=null){super(e,t,o),this.renderer=o,this.setGroup(s1)}updateReference(e){return this.reference=this.renderer!==null?this.renderer:e.renderer,this.reference}},Mh=(e,t,o=null)=>new Nh(e,t,o),yh=class extends s0{static get type(){return"ToneMappingNode"}constructor(e,t=Sh,o=null){super("vec3"),this._toneMapping=e,this.exposureNode=t,this.colorNode=o}customCacheKey(){return Z3(this._toneMapping)}setToneMapping(e){return this._toneMapping=e,this}getToneMapping(){return this._toneMapping}setup(e){const t=this.colorNode||e.context.color,o=this._toneMapping;if(o===0)return t;let r=null;const s=e.renderer.library.getToneMappingFunction(o);return s!==null?r=Y(s(t.rgb,this.exposureNode),t.a):(G("ToneMappingNode: Unsupported Tone Mapping configuration.",o),r=t),r}},xh=(e,t,o)=>new yh(e,K(t),K(o)),Sh=Mh("toneMappingExposure","float");E("toneMapping",(e,t,o)=>xh(t,o,e));var Ma=new WeakMap;function ya(e,t){let o=Ma.get(e);return o===void 0&&(o=new k9(e,t),Ma.set(e,o)),o}var mt=class extends rn{static get type(){return"BufferAttributeNode"}constructor(e,t=null,o=0,r=0){super(e,t),this.isBufferNode=!0,this.bufferType=t,this.bufferStride=o,this.bufferOffset=r,this.usage=Qi,this.instanced=!1,this.attribute=null,this.global=!0,e&&e.isBufferAttribute===!0&&e.itemSize<=4&&(this.attribute=e,this.usage=e.usage,this.instanced=e.isInstancedBufferAttribute)}getHash(e){let t;if(this.bufferStride===0&&this.bufferOffset===0){let o=e.globalCache.getData(this.value);o===void 0&&(o={node:this},e.globalCache.setData(this.value,o)),t=o.node.id}else t=this.id;return String(t)}generateNodeType(e){return this.bufferType===null&&(this.bufferType=e.getTypeFromAttribute(this.attribute)),this.bufferType}setup(e){if(this.attribute!==null)return;const t=this.getNodeType(e),o=e.getTypeLength(t),r=this.value,s=this.bufferStride||o,i=this.bufferOffset;let n;r.isInterleavedBuffer===!0?n=r:r.isBufferAttribute===!0?n=ya(r.array,s):n=ya(r,s);const a=new u2(n,o,i);n.setUsage(this.usage),this.attribute=a,this.attribute.isInstancedBufferAttribute=this.instanced}generate(e){const t=this.getNodeType(e),o=e.context.nodeName;o!==void 0&&delete e.context.nodeName;const r=e.getBufferAttributeFromNode(this,t,o),s=e.getPropertyName(r);let i=null;if(e.shaderStage==="vertex"||e.shaderStage==="compute")this.name=s,i=s;else{let n;o&&(n=o+"Varying"),i=E2(this,n).build(e,t)}return i}getInputType(){return"bufferAttribute"}setUsage(e){return this.usage=e,this.attribute&&this.attribute.isBufferAttribute===!0&&(this.attribute.usage=e),this}setInstanced(e){return this.instanced=e,this}};function Nn(e,t=null,o=0,r=0,s=Qi,i=!1){return t==="mat3"||t===null&&e.itemSize===9?m0(new mt(e,"vec3",9,0).setUsage(s).setInstanced(i),new mt(e,"vec3",9,3).setUsage(s).setInstanced(i),new mt(e,"vec3",9,6).setUsage(s).setInstanced(i)):t==="mat4"||t===null&&e.itemSize===16?v2(new mt(e,"vec4",16,0).setUsage(s).setInstanced(i),new mt(e,"vec4",16,4).setUsage(s).setInstanced(i),new mt(e,"vec4",16,8).setUsage(s).setInstanced(i),new mt(e,"vec4",16,12).setUsage(s).setInstanced(i)):new mt(e,t,o,r).setUsage(s)}var k4=(e,t=null,o=0,r=0)=>Nn(e,t,o,r),X4=(e,t=null,o=0,r=0)=>Nn(e,t,o,r,Qi,!0),I4=(e,t=null,o=0,r=0)=>Nn(e,t,o,r,w9,!0);E("toAttribute",e=>k4(e.value));var l0=class e2 extends i1{static get type(){return"IndexNode"}constructor(t){super("uint"),this.scope=t,this.isIndexNode=!0}generate(t){const o=this.getNodeType(t),r=this.scope;let s;if(r===e2.VERTEX)s=t.getVertexIndex();else if(r===e2.INSTANCE)s=t.getInstanceIndex();else if(r===e2.DRAW)s=t.getDrawIndex();else if(r===e2.INVOCATION_LOCAL)s=t.getInvocationLocalIndex();else if(r===e2.INVOCATION_SUBGROUP)s=t.getInvocationSubgroupIndex();else if(r===e2.SUBGROUP)s=t.getSubgroupIndex();else throw new Error("THREE.IndexNode: Unknown scope: "+r);let i;return t.shaderStage==="vertex"||t.shaderStage==="compute"?i=s:i=E2(this).build(t,o),i}};l0.VERTEX="vertex";l0.INSTANCE="instance";l0.SUBGROUP="subgroup";l0.INVOCATION_LOCAL="invocationLocal";l0.INVOCATION_SUBGROUP="invocationSubgroup";l0.DRAW="draw";var Th=V(l0,l0.VERTEX),a3=V(l0,l0.INSTANCE),WT=V(l0,l0.SUBGROUP),LT=V(l0,l0.INVOCATION_SUBGROUP),OT=V(l0,l0.INVOCATION_LOCAL),wh=V(l0,l0.DRAW),_h=class extends i1{static get type(){return"ComputeNode"}constructor(e,t){super("void"),this.isComputeNode=!0,this.computeNode=e,this.workgroupSize=t,this.count=null,this.dispatchSize=null,this.version=1,this.name="",this.updateBeforeType=u1.OBJECT,this.onInitFunction=null,this.countNode=null}dispose(){this.dispatchEvent({type:"dispose"})}setName(e){return this.name=e,this}label(e){return j('TSL: "label()" has been deprecated. Use "setName()" instead.',new C0),this.setName(e)}onInit(e){return this.onInitFunction=e,this}updateBefore({renderer:e}){e.compute(this)}setup(e){this.count!==null&&this.countNode===null&&(this.countNode=o1(this.count,"uint").onObjectUpdate(()=>this.count));const t=this.computeNode.build(e);if(t){const o=e.getNodeProperties(this);o.outputComputeNode=t.outputNode,t.outputNode=null}return t}generate(e,t){const{shaderStage:o}=e;if(o==="compute"){const r=this.computeNode.build(e,"void");if(r!==""&&e.addLineFlowCode(r,this),this.count!==null&&e.allowEarlyReturns===!0){const s=this.countNode.build(e,"uint"),i=a3.build(e,"uint");e.flow.code=`${e.tab}if ( ${i} >= ${s} ) { return; } - -${e.flow.code}`}}else{const r=e.getNodeProperties(this).outputComputeNode;if(r)return r.build(e,t)}}},G4=(e,t=[64])=>{(t.length===0||t.length>3)&&G("TSL: compute() workgroupSize must have 1, 2, or 3 elements",new C0);for(let o=0;o{const r=G4(e,o);return typeof t=="number"?r.count=t:r.dispatchSize=t,r};E("compute",Ah);E("computeKernel",G4);var Ch=class extends i1{static get type(){return"IsolateNode"}constructor(e,t=!0){super(),this.node=e,this.parent=t,this.isIsolateNode=!0}generateNodeType(e){const t=e.getCache(),o=e.getCacheFromNode(this,this.parent);e.setCache(o);const r=this.node.getNodeType(e);return e.setCache(t),r}build(e,...t){const o=e.getCache(),r=e.getCacheFromNode(this,this.parent);e.setCache(r);const s=this.node.build(e,...t);return e.setCache(o),s}setParent(e){return this.parent=e,this}getParent(){return this.parent}},j3=e=>new Ch(K(e));function Rh(e,t=!0){return j('TSL: "cache()" has been deprecated. Use "isolate()" instead.'),j3(e).setParent(t)}E("cache",Rh);E("isolate",j3);var Bh=class extends i1{static get type(){return"BypassNode"}constructor(e,t){super(),this.isBypassNode=!0,this.outputNode=e,this.callNode=t}generateNodeType(e){return this.outputNode.getNodeType(e)}generate(e){const t=this.callNode.build(e,"void");return t!==""&&e.addLineFlowCode(t,this),this.outputNode.build(e)}},Eh=G1(Bh).setParameterLength(2);E("bypass",Eh);var z4=B(([e,t,o,r=C(0),s=C(1),i=zr(!1)])=>{let n=e.sub(t).div(o.sub(t));return gi(i)&&(n=n.clamp()),n.mul(s.sub(r)).add(r)});function Uh(e,t,o,r=C(0),s=C(1)){return z4(e,t,o,r,s,!0)}E("remap",z4);E("remapClamp",Uh);var gr=class extends i1{static get type(){return"ExpressionNode"}constructor(e="",t="void"){super(t),this.snippet=e}generate(e,t){const o=this.getNodeType(e),r=this.snippet;if(o==="void")e.addLineFlowCode(r,this);else return e.format(r,o,t)}},ke=G1(gr).setParameterLength(1,2),Wh=e=>(e?$0(e,ke("discard")):ke("discard")).toStack();E("discard",Wh);var V4=B(([e])=>Y(e.rgb.mul(e.a),e.a),{color:"vec4",return:"vec4"}),Lh=B(([e])=>e.a.equal(0).select(Y(0),Y(e.rgb.div(e.a),e.a)),{color:"vec4",return:"vec4"}),Oh=class extends s0{static get type(){return"RenderOutputNode"}constructor(e,t,o){super("vec4"),this.colorNode=e,this._toneMapping=t,this.outputColorSpace=o,this.isRenderOutputNode=!0}setToneMapping(e){return this._toneMapping=e,this}getToneMapping(){return this._toneMapping}setup({context:e}){let t=this.colorNode||e.color;t=Y(t.rgb,t.a.clamp(0,1)),t=Lh(t);const o=(this._toneMapping!==null?this._toneMapping:e.toneMapping)||0,r=(this.outputColorSpace!==null?this.outputColorSpace:e.outputColorSpace)||"";return o!==0&&(t=t.toneMapping(o)),r!==""&&r!==e0.workingColorSpace&&(t=t.workingToColorSpace(r)),t=V4(t),t}},Q4=(e,t=null,o=null)=>new Oh(K(e),t,o);E("renderOutput",Q4);var Fh=class extends s0{static get type(){return"DebugNode"}constructor(e,t=null){super(),this.node=e,this.callback=t}generateNodeType(e){return this.node.getNodeType(e)}setup(e){return this.node.build(e)}analyze(e){return this.node.build(e)}generate(e){const t=this.callback,o=this.node.build(e);if(t!==null)t(e,o);else{const r="--- TSL debug - "+e.shaderStage+" shader ---",s="-".repeat(r.length);let i="";i+="// #"+r+`# -`,i+=e.flow.code.replace(/^\t/gm,"")+` -`,i+="/* ... */ "+o+` /* ... */ -`,i+="// #"+s+`# -`,Fl(i)}return o}},Ph=(e,t=null)=>new Fh(K(e),t).toStack();E("debug",Ph);var $4=class extends R2{constructor(){super(),this._renderer=null,this.currentFrame=null}get nodeFrame(){return this._renderer._nodes.nodeFrame}setRenderer(e){return this._renderer=e,this}getRenderer(){return this._renderer}init(){}begin(){}finish(){}inspect(){}computeAsync(){}beginCompute(){}finishCompute(){}beginRender(){}finishRender(){}copyTextureToTexture(){}copyFramebufferToTexture(){}},Dh=class extends i1{static get type(){return"InspectorNode"}constructor(e,t="",o=null){super(),this.node=e,this.name=t,this.callback=o,this.updateType=u1.FRAME,this.isInspectorNode=!0}getName(){return this.name||this.node.name}update(e){e.renderer.inspector.inspect(this)}generateNodeType(e){return this.node.getNodeType(e)}setup(e){let t=this.node;return e.context.inspector===!0&&this.callback!==null&&(t=this.callback(t)),e.renderer.backend.isWebGPUBackend!==!0&&e.renderer.inspector.constructor!==$4&&I1('TSL: ".toInspector()" is only available with WebGPU.'),t}};function kh(e,t="",o=null){return e=K(e),e.before(new Dh(e,t,o))}E("toInspector",kh);var Z4=class extends i1{static get type(){return"AttributeNode"}constructor(e,t=null){super(t),this.global=!0,this._attributeName=e}getHash(e){return this.getAttributeName(e)}generateNodeType(e){let t=this.nodeType;if(t===null){const o=this.getAttributeName(e);if(e.hasGeometryAttribute(o)){const r=e.geometry.getAttribute(o);t=e.getTypeFromAttribute(r)}else t="float"}return t}setAttributeName(e){return this._attributeName=e,this}getAttributeName(){return this._attributeName}generate(e){const t=this.getAttributeName(e),o=this.getNodeType(e);if(e.hasGeometryAttribute(t)===!0){const r=e.geometry.getAttribute(t),s=e.getTypeFromAttribute(r),i=e.getAttribute(t,s);return e.shaderStage==="vertex"?e.format(i.name,s,o):E2(this).build(e,o)}else return j(`AttributeNode: Vertex attribute "${t}" not found on geometry.`),e.generateConst(o)}serialize(e){super.serialize(e),e.global=this.global,e._attributeName=this._attributeName}deserialize(e){super.deserialize(e),this.global=e.global,this._attributeName=e._attributeName}},ne=(e,t=null)=>new Z4(e,t),U2=(e=0)=>ne("uv"+(e>0?e:""),"vec2"),Xh=class extends i1{static get type(){return"TextureSizeNode"}constructor(e,t=null){super("uvec2"),this.isTextureSizeNode=!0,this.textureNode=e,this.levelNode=t}generate(e,t){const o=this.textureNode.build(e,"property"),r=this.levelNode===null?"0":this.levelNode.build(e,"int");return e.format(`${e.getMethod("textureDimensions")}( ${o}, ${r} )`,this.getNodeType(e),t)}},no=G1(Xh).setParameterLength(1,2),Ih=class extends No{static get type(){return"MaxMipLevelNode"}constructor(e){super(0),this._textureNode=e,this.updateType=u1.FRAME}get textureNode(){return this._textureNode}get texture(){return this._textureNode.value}update(){const e=this.texture,t=e.images,o=t&&t.length>0?t[0]&&t[0].image||t[0]:e.image;if(o&&o.width!==void 0){const{width:r,height:s}=o;this.value=Math.log2(Math.max(r,s))}}},Gh=G1(Ih).setParameterLength(1),zh=class extends Error{constructor(e,t=null){super(e),this.name="NodeError",this.stackTrace=t}},q4=new po,Mo=class extends No{static get type(){return"TextureNode"}constructor(e=q4,t=null,o=null,r=null){super(e),this.isTextureNode=!0,this.uvNode=t,this.levelNode=o,this.biasNode=r,this.compareNode=null,this.depthNode=null,this.gradNode=null,this.gatherNode=null,this.offsetNode=null,this.sampler=!0,this.updateMatrix=!1,this.updateType=u1.NONE,this.referenceNode=null,this._value=e,this._matrixUniform=null,this._flipYUniform=null,this.setUpdateMatrix(t===null)}set value(e){this.referenceNode?this.referenceNode.value=e:this._value=e}get value(){return this.referenceNode?this.referenceNode.value:this._value}getUniformHash(){return this.value.uuid}generateNodeType(){return this.value.isDepthTexture===!0?this.gatherNode===null?"float":"vec4":this.value.type===1014?"uvec4":this.value.type===1013?"ivec4":"vec4"}getInputType(){return"texture"}getDefaultUV(){return U2(this.value.channel)}updateReference(){return this.value}getTransformedUV(e){return this._matrixUniform===null&&(this._matrixUniform=o1(this.value.matrix)),this._matrixUniform.mul(U(e,1)).xy}setUpdateMatrix(e){return this.updateMatrix=e,this}setupUV(e,t){return e.isFlipY()&&(this._flipYUniform===null&&(this._flipYUniform=o1(!1)),t=t.toVar(),this.sampler?t=this._flipYUniform.select(t.flipY(),t):t=this._flipYUniform.select(t.setY(Q1(no(this,this.levelNode).y).sub(t.y).sub(1)),t)),t}setup(e){const t=e.getNodeProperties(this);t.referenceNode=this.referenceNode;const o=this.value;if(!o||o.isTexture!==!0)throw new zh("THREE.TSL: `texture( value )` function expects a valid instance of THREE.Texture().",this.stackTrace);const r=B(()=>{let a=this.uvNode;return(a===null||e.context.forceUVContext===!0)&&e.context.getUV&&(a=e.context.getUV(this,e)),a||(a=this.getDefaultUV()),this.updateMatrix===!0&&(a=this.getTransformedUV(a)),a=this.setupUV(e,a),this.updateType=this._matrixUniform!==null||this._flipYUniform!==null?u1.OBJECT:u1.NONE,a})();let s=this.levelNode;s===null&&e.context.getTextureLevel&&(s=e.context.getTextureLevel(this));let i=null,n=null;if(this.compareNode!==null)if(e.renderer.hasCompatibility(C2.TEXTURE_COMPARE))i=this.compareNode;else{const a=o.compareFunction;a===null||a===513||a===515||a===516||a===518?n=this.compareNode:(i=this.compareNode,I1('TSL: Only "LessCompare", "LessEqualCompare", "GreaterCompare" and "GreaterEqualCompare" are supported for depth texture comparison fallback.'))}t.uvNode=r,t.levelNode=s,t.biasNode=this.biasNode,t.compareNode=i,t.compareStepNode=n,t.gradNode=this.gradNode,t.gatherNode=this.gatherNode,t.depthNode=this.depthNode,t.offsetNode=this.offsetNode}generateUV(e,t){return t.build(e,this.sampler===!0?"vec2":"ivec2")}generateOffset(e,t){return t.build(e,"ivec2")}generateSnippet(e,t,o,r,s,i,n,a,l,u,c){const d=this.value;let h;return s?h=e.generateTextureBias(d,t,o,s,i,u):a?h=e.generateTextureGrad(d,t,o,a,i,u):l?n?h=e.generateTextureGatherCompare(d,t,o,n,i,u,c):h=e.generateTextureGather(d,t,o,l,i,u,c):n?h=e.generateTextureCompare(d,t,o,n,i,u):this.sampler===!1?h=e.generateTextureLoad(d,t,o,r,i,u):r?h=e.generateTextureLevel(d,t,o,r,i,u):h=e.generateTexture(d,t,o,i,u),h}generate(e,t){const o=this.value,r=e.getNodeProperties(this),s=super.generate(e,"property");if(/^sampler/.test(t))return s+"_sampler";if(e.isReference(t))return s;{const i=e.getDataFromNode(this);let n=this.getNodeType(e),a=i.propertyName;if(a===void 0){const{uvNode:u,levelNode:c,biasNode:d,compareNode:h,compareStepNode:f,depthNode:p,gradNode:m,gatherNode:b,offsetNode:N}=r,v=this.generateUV(e,u),M=c?c.build(e,"float"):null,T=d?d.build(e,"float"):null,x=p?p.build(e,"int"):null,S=h?h.build(e,"float"):null,R=f?f.build(e,"float"):null,w=m?[m[0].build(e,"vec2"),m[1].build(e,"vec2")]:null,W=b?b.build(e,"int"):null,O=N?this.generateOffset(e,N):null,F=this._flipYUniform?this._flipYUniform.build(e,"bool"):null;W&&(n="vec4");let X=x;X===null&&o.isArrayTexture&&this.isTexture3DNode!==!0&&(X="0");const Q=e.getVarFromNode(this);a=e.getPropertyName(Q);let L=this.generateSnippet(e,s,v,M,T,X,S,w,W,O,F);if(R!==null){const D=o.compareFunction;D===516||D===518?L=io(ke(L,n),ke(R,"float")).build(e,n):L=io(ke(R,"float"),ke(L,n)).build(e,n)}e.addLineFlowCode(`${a} = ${L}`,this),i.snippet=L,i.propertyName=a}let l=a;return e.needsToWorkingColorSpace(o)&&(l=bn(ke(l,n),o.colorSpace).setup(e).build(e,n)),e.format(l,n,t)}}setSampler(e){return this.sampler=e,this}getSampler(){return this.sampler}sample(e){const t=this.clone();return t.uvNode=K(e),t.referenceNode=this.getBase(),K(t)}load(e){return this.sample(e).setSampler(!1)}blur(e){const t=this.clone();t.biasNode=K(e).mul(Gh(t)),t.referenceNode=this.getBase();const o=t.value;return t.generateMipmaps===!1&&(o&&o.generateMipmaps===!1||o.minFilter===1003||o.magFilter===1003)&&(j("TSL: texture().blur() requires mipmaps and sampling. Use .generateMipmaps=true and .minFilter/.magFilter=THREE.LinearFilter in the Texture."),t.biasNode=null),K(t)}level(e){const t=this.clone();return t.levelNode=K(e),t.referenceNode=this.getBase(),K(t)}size(e){return no(this,e)}bias(e){const t=this.clone();return t.biasNode=K(e),t.referenceNode=this.getBase(),K(t)}getBase(){return this.referenceNode?this.referenceNode.getBase():this}compare(e){const t=this.clone();return t.compareNode=K(e),t.referenceNode=this.getBase(),K(t)}grad(e,t){const o=this.clone();return o.gradNode=[K(e),K(t)],o.referenceNode=this.getBase(),K(o)}gather(e=0){const t=this.clone();return t.gatherNode=K(e),t.referenceNode=this.getBase(),K(t)}depth(e){const t=this.clone();return t.depthNode=K(e),t.referenceNode=this.getBase(),K(t)}offset(e){const t=this.clone();return t.offsetNode=K(e),t.referenceNode=this.getBase(),K(t)}serialize(e){super.serialize(e),e.value=this.value.toJSON(e.meta).uuid,e.sampler=this.sampler,e.updateMatrix=this.updateMatrix,e.updateType=this.updateType}deserialize(e){super.deserialize(e),this.value=e.meta.textures[e.value],this.sampler=e.sampler,this.updateMatrix=e.updateMatrix,this.updateType=e.updateType}update(){const e=this.value,t=this._matrixUniform;t!==null&&(t.value=e.matrix),e.matrixAutoUpdate===!0&&e.updateMatrix();const o=this._flipYUniform;o!==null&&(o.value=e.image instanceof ImageBitmap&&e.flipY===!0||e.isRenderTargetTexture===!0||e.isFramebufferTexture===!0||e.isDepthTexture===!0)}clone(){const e=new this.constructor(this.value,this.uvNode,this.levelNode,this.biasNode);return e.sampler=this.sampler,e.depthNode=this.depthNode,e.compareNode=this.compareNode,e.gradNode=this.gradNode,e.gatherNode=this.gatherNode,e.offsetNode=this.offsetNode,e}},Vh=G1(Mo).setParameterLength(1,4).setName("texture"),O1=(e=q4,t=null,o=null,r=null)=>{let s;return e&&e.isTextureNode===!0?(s=K(e.clone()),s.referenceNode=e.getBase(),t!==null&&(s.uvNode=K(t)),o!==null&&(s.levelNode=K(o)),r!==null&&(s.biasNode=K(r))):s=Vh(e,t,o,r),s},ge=(...e)=>O1(...e).setSampler(!1),Mn=class extends No{static get type(){return"BufferNode"}constructor(e,t,o=0){super(e,t),this.isBufferNode=!0,this.bufferType=t,this.bufferCount=o,this.updateRanges=[]}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}getElementType(e){return this.getNodeType(e)}getInputType(){return"buffer"}},yn=(e,t,o)=>new Mn(e,t,o),Qh=class extends f3{static get type(){return"UniformArrayElementNode"}constructor(e,t){super(e,t),this.isArrayBufferElementNode=!0}generate(e){const t=super.generate(e),o=this.getNodeType(e),r=this.node.getPaddedType();return e.format(t,r,o)}},$h=class extends Mn{static get type(){return"UniformArrayNode"}constructor(e,t=null){super(null),this.array=e,this.elementType=t===null?_r(e[0]):t,this.paddedType=this.getPaddedType(),this.updateType=u1.RENDER,this.isArrayBufferNode=!0}generateNodeType(){return this.paddedType}getElementType(){return this.elementType}getPaddedType(){const e=this.elementType;let t="vec4";return e==="mat2"?t="mat2":/mat/.test(e)===!0?t="mat4":e.charAt(0)==="i"?t="ivec4":e.charAt(0)==="u"&&(t="uvec4"),t}update(){const{array:e,value:t}=this,o=this.elementType;if(o==="float"||o==="int"||o==="uint")for(let r=0;rnew $h(e,t),Zh=class extends i1{constructor(e){super("float"),this.name=e,this.isBuiltinNode=!0}generate(){return this.name}},W2=G1(Zh).setParameterLength(1),x3,S3,R0=class K0 extends i1{static get type(){return"ScreenNode"}constructor(t){super(),this.scope=t,this._output=null,this.isViewportNode=!0}generateNodeType(){return this.scope===K0.DPR?"float":this.scope===K0.VIEWPORT?"vec4":"vec2"}getUpdateType(){let t=u1.NONE;return(this.scope===K0.SIZE||this.scope===K0.VIEWPORT||this.scope===K0.DPR)&&(t=u1.RENDER),this.updateType=t,t}update({renderer:t}){const o=t.getRenderTarget();this.scope===K0.VIEWPORT?o!==null?S3.copy(o.viewport):(t.getViewport(S3),S3.multiplyScalar(t.getPixelRatio())):this.scope===K0.DPR?this._output.value=t.getPixelRatio():o!==null?(x3.width=o.width,x3.height=o.height):t.getDrawingBufferSize(x3)}setup(){const t=this.scope;let o=null;return t===K0.SIZE?o=o1(x3||(x3=new p1)):t===K0.VIEWPORT?o=o1(S3||(S3=new S1)):t===K0.DPR?o=o1(1):o=n1(m3.div(Ti)),this._output=o,o}generate(t){if(this.scope===K0.COORDINATE){let o=t.getFragCoord();if(t.isFlipY()){const r=t.getNodeProperties(Ti).outputNode.build(t);o=`${t.getType("vec2")}( ${o}.x, ${r}.y - ${o}.y )`}return o}return super.generate(t)}};R0.COORDINATE="coordinate";R0.VIEWPORT="viewport";R0.SIZE="size";R0.UV="uv";R0.DPR="dpr";var H4=V(R0,R0.DPR),At=V(R0,R0.UV),Ti=V(R0,R0.SIZE),m3=V(R0,R0.COORDINATE),K3=V(R0,R0.VIEWPORT),qh=K3.zw,FT=m3.sub(K3.xy),hs=null,Bo=null,fs=null,Eo=null,ps=null,Uo=null,ms=null,Wo=null,gs=null,Lo=null,yo=o1(0,"uint").setName("u_cameraIndex").setGroup(dn("cameraIndex")).toVarying("v_cameraIndex"),i2=o1("float").setName("cameraNear").setGroup(s1).onRenderUpdate(({camera:e})=>e.near),n2=o1("float").setName("cameraFar").setGroup(s1).onRenderUpdate(({camera:e})=>e.far),Ne=B(({camera:e})=>{let t;if(e.isArrayCamera&&e.cameras.length>0){const o=[];for(const r of e.cameras)o.push(r.projectionMatrix);Bo===null?Bo=W0(o).setGroup(s1).setName("cameraProjectionMatrices"):Bo.array=o,t=Bo.element(e.isMultiViewCamera?W2("gl_ViewID_OVR"):yo)}else hs===null&&(hs=o1(e.projectionMatrix).setName("cameraProjectionMatrix").setGroup(s1).onRenderUpdate(({camera:o})=>o.projectionMatrix)),t=hs;return t}).once()(),Hh=B(({camera:e})=>{let t;if(e.isArrayCamera&&e.cameras.length>0){const o=[];for(const r of e.cameras)o.push(r.projectionMatrixInverse);Eo===null?Eo=W0(o).setGroup(s1).setName("cameraProjectionMatricesInverse"):Eo.array=o,t=Eo.element(e.isMultiViewCamera?W2("gl_ViewID_OVR"):yo)}else fs===null&&(fs=o1(e.projectionMatrixInverse).setName("cameraProjectionMatrixInverse").setGroup(s1).onRenderUpdate(({camera:o})=>o.projectionMatrixInverse)),t=fs;return t}).once()(),g3=B(({camera:e})=>{let t;if(e.isArrayCamera&&e.cameras.length>0){const o=[];for(const r of e.cameras)o.push(r.matrixWorldInverse);Uo===null?Uo=W0(o).setGroup(s1).setName("cameraViewMatrices"):Uo.array=o,t=Uo.element(e.isMultiViewCamera?W2("gl_ViewID_OVR"):yo)}else ps===null&&(ps=o1(e.matrixWorldInverse).setName("cameraViewMatrix").setGroup(s1).onRenderUpdate(({camera:o})=>o.matrixWorldInverse)),t=ps;return t}).once()(),xn=B(({camera:e})=>{let t;if(e.isArrayCamera&&e.cameras.length>0){const o=[];for(const r of e.cameras)o.push(r.matrixWorld);Wo===null?Wo=W0(o).setGroup(s1).setName("cameraWorldMatrices"):Wo.array=o,t=Wo.element(e.isMultiViewCamera?W2("gl_ViewID_OVR"):yo)}else ms===null&&(ms=o1(e.matrixWorld).setName("cameraWorldMatrix").setGroup(s1).onRenderUpdate(({camera:o})=>o.matrixWorld)),t=ms;return t}).once()(),Jh=B(({camera:e})=>{let t;if(e.isArrayCamera&&e.cameras.length>0){const o=[];for(let r=0,s=e.cameras.length;r{const i=r.cameras,n=s.array;for(let a=0,l=i.length;ar.value.setFromMatrixPosition(o.matrixWorld))),t=gs;return t}).once()(),xa=new Hi,L2=class n0 extends i1{static get type(){return"Object3DNode"}constructor(t,o=null){super(),this.scope=t,this.object3d=o,this.updateType=u1.OBJECT,this.uniformNode=new No(null)}generateNodeType(){const t=this.scope;if(t===n0.WORLD_MATRIX)return"mat4";if(t===n0.POSITION||t===n0.VIEW_POSITION||t===n0.DIRECTION||t===n0.SCALE)return"vec3";if(t===n0.RADIUS)return"float"}update(t){const o=this.object3d,r=this.uniformNode,s=this.scope;if(s===n0.WORLD_MATRIX)r.value=o.matrixWorld;else if(s===n0.POSITION)r.value=r.value||new z,r.value.setFromMatrixPosition(o.matrixWorld);else if(s===n0.SCALE)r.value=r.value||new z,r.value.setFromMatrixScale(o.matrixWorld);else if(s===n0.DIRECTION)r.value=r.value||new z,o.getWorldDirection(r.value);else if(s===n0.VIEW_POSITION){const i=t.camera;r.value=r.value||new z,r.value.setFromMatrixPosition(o.matrixWorld),r.value.applyMatrix4(i.matrixWorldInverse)}else if(s===n0.RADIUS){const i=t.object.geometry;i.boundingSphere===null&&i.computeBoundingSphere(),xa.copy(i.boundingSphere).applyMatrix4(o.matrixWorld),r.value=xa.radius}}generate(t){const o=this.scope;return o===n0.WORLD_MATRIX?this.uniformNode.nodeType="mat4":o===n0.POSITION||o===n0.VIEW_POSITION||o===n0.DIRECTION||o===n0.SCALE?this.uniformNode.nodeType="vec3":o===n0.RADIUS&&(this.uniformNode.nodeType="float"),this.uniformNode.build(t)}serialize(t){super.serialize(t),t.scope=this.scope}deserialize(t){super.deserialize(t),this.scope=t.scope}};L2.WORLD_MATRIX="worldMatrix";L2.POSITION="position";L2.SCALE="scale";L2.VIEW_POSITION="viewPosition";L2.DIRECTION="direction";L2.RADIUS="radius";var ue=class extends L2{static get type(){return"ModelNode"}constructor(e){super(e)}update(e){this.object3d=e.object,super.update(e)}},PT=V(ue,ue.DIRECTION),T2=V(ue,ue.WORLD_MATRIX),DT=V(ue,ue.POSITION),kT=V(ue,ue.SCALE),XT=V(ue,ue.VIEW_POSITION),IT=V(ue,ue.RADIUS),jh=o1(new mo).onObjectUpdate(({object:e},t)=>t.value.getNormalMatrix(e.matrixWorld)),w2=B(e=>e.context.modelViewMatrix||Kh).once()().toVar("modelViewMatrix"),Kh=g3.mul(T2),Sa=B(e=>(e.context.isHighPrecisionModelViewMatrix=!0,o1("mat4").onObjectUpdate(({object:t,camera:o})=>t.modelViewMatrix.multiplyMatrices(o.matrixWorldInverse,t.matrixWorld)))).once()().toVar("highpModelViewMatrix"),Ta=B(e=>{const t=e.context.isHighPrecisionModelViewMatrix;return o1("mat3").onObjectUpdate(({object:o,camera:r})=>(t!==!0&&o.modelViewMatrix.multiplyMatrices(r.matrixWorldInverse,o.matrixWorld),o.normalMatrix.getNormalMatrix(o.modelViewMatrix)))}).once()().toVar("highpModelNormalViewMatrix"),Yh=B(e=>e.shaderStage!=="fragment"?(I1("TSL: `clipSpace` is only available in fragment stage."),Y()):e.context.clipSpace.toVarying("v_clipSpace")).once()(),_0=ne("position","vec3"),a0=_0.toVarying("positionLocal"),Rr=_0.toVarying("positionPrevious"),l3=B(e=>T2.mul(a0).xyz.toVarying(e.getSubBuildProperty("v_positionWorld")),"vec3").once(["POSITION"])(),J4=B(()=>a0.transformDirection(T2).toVarying("v_positionWorldDirection").normalize().toVar("positionWorldDirection"),"vec3").once(["POSITION"])(),t0=B(e=>{if(e.shaderStage==="fragment"&&e.material.vertexNode){const t=Hh.mul(Yh);return t.xyz.div(t.w).toVar("positionView")}return e.context.setupPositionView().toVarying("v_positionView")},"vec3").once(["POSITION","VERTEX"])(),P1=B(e=>{let t;return e.camera.isOrthographicCamera?t=U(0,0,1):t=t0.negate().toVarying("v_positionViewDirection").normalize(),t.toVar("positionViewDirection")},"vec3").once(["POSITION"])(),ef=class extends i1{static get type(){return"FrontFacingNode"}constructor(){super("bool"),this.isFrontFacingNode=!0}generate(e){if(e.shaderStage!=="fragment")return"true";const{material:t}=e;return t.side===1?"false":e.getFrontFacing()}},tf=V(ef),j4=C(tf).mul(2).sub(1),xo=B(([e],{material:t})=>{const o=t.side;return o===1?e=e.mul(-1):o===2&&(e=e.mul(j4)),e}),K4=ne("normal","vec3"),He=B(e=>e.geometry.hasAttribute("normal")===!1?(j('TSL: Vertex attribute "normal" not found on geometry.'),U(0,1,0)):K4,"vec3").once()().toVar("normalLocal"),of=t0.dFdx().cross(t0.dFdy()).normalize().toVar("normalFlat"),ao=B(e=>{let t;return e.isFlatShading()?t=of:t=e8(He).toVarying("v_normalViewGeometry").normalize(),t},"vec3").once()().toVar("normalViewGeometry"),rf=B(e=>{let t=ao.transformNormalByInverseViewMatrix(g3);return e.isFlatShading()!==!0&&(t=t.toVarying("v_normalWorldGeometry")),t.normalize().toVar("normalWorldGeometry")},"vec3").once()(),M1=B(e=>{let t;return e.subBuildFn==="NORMAL"||e.subBuildFn==="VERTEX"?(t=ao,e.isFlatShading()!==!0&&(t=xo(t))):t=e.context.setupNormal().context({getUV:null,getTextureLevel:null}),t},"vec3").once(["NORMAL","VERTEX"])().toVar("normalView"),v3=M1.transformNormalByInverseViewMatrix(g3).toVar("normalWorld"),a2=B(({subBuildFn:e,context:t})=>{let o;return e==="NORMAL"||e==="VERTEX"?o=M1:o=t.setupClearcoatNormal().context({getUV:null,getTextureLevel:null}),o},"vec3").once(["NORMAL","VERTEX"])().toVar("clearcoatNormalView"),Y4=B(([e,t=T2])=>m0(t).inverse().transpose().mul(e).normalize());E("transformNormal",Y4);var e8=B(([e],t)=>{const o=t.context.modelNormalViewMatrix;return o?e.transformNormalByViewMatrix(o):jh.mul(e).transformNormalByViewMatrix(g3)}),GT=B(()=>(j('TSL: "transformedNormalView" is deprecated. Use "normalView" instead.'),M1)).once(["NORMAL","VERTEX"])(),zT=B(()=>(j('TSL: "transformedNormalWorld" is deprecated. Use "normalWorld" instead.'),v3)).once(["NORMAL","VERTEX"])(),VT=B(()=>(j('TSL: "transformedClearcoatNormalView" is deprecated. Use "clearcoatNormalView" instead.'),a2)).once(["NORMAL","VERTEX"])(),vs=new q0,sf=o1(0).onReference(({material:e})=>e).onObjectUpdate(({material:e})=>e.refractionRatio),bs=o1(1).onReference(({material:e})=>e).onObjectUpdate(function({material:e,scene:t}){return e.envMap?e.envMapIntensity:t.environmentIntensity}),wi=o1(new q0).onReference(function(e){return e.material}).onObjectUpdate(function({material:e,scene:t}){const o=(t.environment!==null||t.environmentNode&&t.environmentNode.isNode)&&e.envMap===null?t.environmentRotation:e.envMapRotation;return o?vs.makeRotationFromEuler(o).transpose():vs.identity(),vs}),nf=P1.negate().reflect(M1),af=P1.negate().refract(M1,sf),lf=nf.transformDirection(xn).toVar("reflectVector"),uf=af.transformDirection(xn).toVar("refractVector"),cf=new Xr,df=class extends Mo{static get type(){return"CubeTextureNode"}constructor(e,t=null,o=null,r=null){super(e,t,o,r),this.isCubeTextureNode=!0}getInputType(){return this.value.isDepthTexture===!0?"cubeDepthTexture":"cubeTexture"}getDefaultUV(){const e=this.value;return e.mapping===301?lf:e.mapping===302?uf:(G('CubeTextureNode: Mapping "%s" not supported.',e.mapping),U(0,0,0))}setUpdateMatrix(){}setupUV(e,t){const o=this.value;return o.isDepthTexture===!0?e.renderer.coordinateSystem===2001?U(t.x,t.y.negate(),t.z):t:(t=wi.mul(t),(e.renderer.coordinateSystem===2001||!o.isRenderTargetTexture)&&(t=U(t.x.negate(),t.yz)),t)}generateUV(e,t){return t.build(e,this.sampler===!0?"vec3":"ivec3")}},hf=G1(df).setParameterLength(1,4).setName("cubeTexture"),L0=(e=cf,t=null,o=null,r=null)=>{let s;return e&&e.isCubeTextureNode===!0?(s=K(e.clone()),s.referenceNode=e,t!==null&&(s.uvNode=K(t)),o!==null&&(s.levelNode=K(o)),r!==null&&(s.biasNode=K(r))):s=hf(e,t,o,r),s},ff=class extends f3{static get type(){return"ReferenceElementNode"}constructor(e,t){super(e,t),this.referenceNode=e,this.isReferenceElementNode=!0}generateNodeType(){return this.referenceNode.uniformType}generate(e){const t=super.generate(e),o=this.referenceNode.getNodeType(e),r=this.getNodeType(e);return e.format(t,o,r)}},Sn=class extends i1{static get type(){return"ReferenceNode"}constructor(e,t,o=null,r=null){super(),this.property=e,this.uniformType=t,this.object=o,this.count=r,this.properties=e.split("."),this.reference=o,this.node=null,this.group=null,this.name=null,this.updateType=u1.OBJECT}element(e){return new ff(this,K(e))}setGroup(e){return this.group=e,this}setName(e){return this.name=e,this}label(e){return j('TSL: "label()" has been deprecated. Use "setName()" instead.'),this.setName(e)}setNodeType(e){let t=null;this.count!==null?t=yn(null,e,this.count):Array.isArray(this.getValueFromReference())?(t=W0(null,e),t.updateType=u1.OBJECT):e==="texture"?t=O1(null):e==="cubeTexture"?t=L0(null):t=o1(null,e),this.group!==null&&t.setGroup(this.group),this.name!==null&&t.setName(this.name),this.node=t}generateNodeType(e){return this.node===null&&(this.updateReference(e),this.updateValue()),this.node.getNodeType(e)}getValueFromReference(e=this.reference){const{properties:t}=this;let o=e[t[0]];for(let r=1;rnew Sn(e,t,o),pf=(e,t,o,r)=>new Sn(e,t,r,o),mf=class extends Sn{static get type(){return"MaterialReferenceNode"}constructor(e,t,o=null){super(e,t,o),this.material=o,this.isMaterialReferenceNode=!0}updateReference(e){return this.reference=this.material!==null?this.material:e.material,this.reference}},Tt=(e,t,o=null)=>new mf(e,t,o),t8=U2(),gf=t0.dFdx(),vf=t0.dFdy(),o8=t8.dFdx(),r8=t8.dFdy(),s8=M1,i8=vf.cross(s8),n8=s8.cross(gf),_i=i8.mul(o8.x).add(n8.mul(r8.x)),Ai=i8.mul(o8.y).add(n8.mul(r8.y)),wa=_i.dot(_i).max(Ai.dot(Ai)),a8=wa.equal(0).select(0,wa.inverseSqrt()),bf=_i.mul(a8).toVar("tangentViewFrame"),Nf=Ai.mul(a8).toVar("bitangentViewFrame"),l8=ne("tangent","vec4"),Br=l8.xyz.toVar("tangentLocal"),u8=B(e=>{let t;return e.subBuildFn==="VERTEX"||e.geometry.hasAttribute("tangent")?t=w2.mul(Y(Br,0)).xyz.toVarying("v_tangentView").normalize():t=bf,e.isFlatShading()!==!0&&(t=xo(t)),t},"vec3").once(["NORMAL","VERTEX"])().toVar("tangentView"),Mf=B(([e,t],o)=>{let r=e.mul(l8.w).xyz;return o.subBuildFn==="NORMAL"&&o.isFlatShading()!==!0&&(r=r.toVarying(t)),r}).once(["NORMAL"]),yf=B(e=>{let t;return e.subBuildFn==="VERTEX"||e.geometry.hasAttribute("tangent")?t=Mf(M1.cross(u8),"v_bitangentView").normalize():t=Nf,e.isFlatShading()!==!0&&(t=xo(t)),t},"vec3").once(["NORMAL","VERTEX"])().toVar("bitangentView"),G3=m0(u8,yf,M1).toVar("TBNViewMatrix"),xf=B(()=>{let e=t3.cross(P1);return e=e.cross(t3).normalize(),e=C1(e,M1,Yt.mul(nt.oneMinus()).oneMinus().pow2().pow2()).normalize(),e}).once()(),Sf=e=>K(e).mul(.5).add(.5),_a=e=>U(e,Lt(pn(C(1).sub(x2(e,e))))),Tf=class extends s0{static get type(){return"NormalMapNode"}constructor(e,t=null){super("vec3"),this.node=e,this.scaleNode=t,this.normalMapType=0,this.unpackNormalMode=""}setup(e){const{normalMapType:t,scaleNode:o,unpackNormalMode:r}=this;let s=this.node.mul(2).sub(1);if(t===0?r==="rg"?s=_a(s.xy):r==="ga"?s=_a(s.yw):r!==""&&G(`THREE.NodeMaterial: Unexpected unpack normal mode: ${r}`):r!==""&&G(`THREE.NodeMaterial: Normal map type '${t}' is not compatible with unpack normal mode '${r}'`),o!==null){let n=o;e.isFlatShading()===!0&&(n=xo(n)),s=U(s.xy.mul(n),s.z)}let i=null;return t===1?i=e8(s):t===0?i=G3.mul(s).normalize():(G(`NodeMaterial: Unsupported normal map type: ${t}`),i=M1),i}},Aa=G1(Tf).setParameterLength(1,2),wf=B(({textureNode:e,bumpScale:t})=>{const o=s=>e.isolate().context({getUV:i=>s(i.uvNode||U2()),forceUVContext:!0}),r=C(o(s=>s));return n1(C(o(s=>s.add(s.dFdx()))).sub(r),C(o(s=>s.add(s.dFdy()))).sub(r)).mul(t)}),_f=B(e=>{const{surf_pos:t,surf_norm:o,dHdxy:r}=e,s=t.dFdx().normalize(),i=t.dFdy().normalize(),n=o,a=i.cross(n),l=n.cross(s),u=s.dot(a).mul(j4),c=u.sign().mul(r.x.mul(a).add(r.y.mul(l)));return u.abs().mul(o).sub(c).normalize()}),Af=class extends s0{static get type(){return"BumpMapNode"}constructor(e,t=null){super("vec3"),this.textureNode=e,this.scaleNode=t}setup(e){if(e.material.wireframe===!0)return M1;const t=this.scaleNode!==null?this.scaleNode:1,o=wf({textureNode:this.textureNode,bumpScale:t});return _f({surf_pos:t0,surf_norm:M1,dHdxy:o})}},Cf=G1(Af).setParameterLength(1,2),Ca=new Map,P=class H1 extends i1{static get type(){return"MaterialNode"}constructor(t){super(),this.scope=t}getCache(t,o){let r=Ca.get(t);return r===void 0&&(r=Tt(t,o),Ca.set(t,r)),r}getFloat(t){return this.getCache(t,"float")}getColor(t){return this.getCache(t,"color")}getTexture(t){return this.getCache(t==="map"?"map":t+"Map","texture")}setup(t){const o=t.context.material,r=this.scope;let s=null;if(r===H1.COLOR){const i=o.color!==void 0?this.getColor(r):U();o.map&&o.map.isTexture===!0?s=i.mul(this.getTexture("map")):s=i}else if(r===H1.OPACITY){const i=this.getFloat(r);o.alphaMap&&o.alphaMap.isTexture===!0?s=i.mul(this.getTexture("alpha")):s=i}else if(r===H1.SPECULAR_STRENGTH)o.specularMap&&o.specularMap.isTexture===!0?s=this.getTexture("specular").r:s=C(1);else if(r===H1.SPECULAR_INTENSITY){const i=this.getFloat(r);o.specularIntensityMap&&o.specularIntensityMap.isTexture===!0?s=i.mul(this.getTexture(r).a):s=i}else if(r===H1.SPECULAR_COLOR){const i=this.getColor(r);o.specularColorMap&&o.specularColorMap.isTexture===!0?s=i.mul(this.getTexture(r).rgb):s=i}else if(r===H1.ROUGHNESS){const i=this.getFloat(r);o.roughnessMap&&o.roughnessMap.isTexture===!0?s=i.mul(this.getTexture(r).g):s=i}else if(r===H1.METALNESS){const i=this.getFloat(r);o.metalnessMap&&o.metalnessMap.isTexture===!0?s=i.mul(this.getTexture(r).b):s=i}else if(r===H1.EMISSIVE){const i=this.getFloat("emissiveIntensity"),n=this.getColor(r).mul(i);o.emissiveMap&&o.emissiveMap.isTexture===!0?s=n.mul(this.getTexture(r)):s=n}else if(r===H1.NORMAL)o.normalMap?(s=Aa(this.getTexture("normal"),this.getCache("normalScale","vec2")),s.normalMapType=o.normalMapType,(o.normalMap.format==1030||o.normalMap.format==36285||o.normalMap.format==37490)&&(s.unpackNormalMode="rg")):o.bumpMap?s=Cf(this.getTexture("bump").r,this.getFloat("bumpScale")):s=M1;else if(r===H1.CLEARCOAT){const i=this.getFloat(r);o.clearcoatMap&&o.clearcoatMap.isTexture===!0?s=i.mul(this.getTexture(r).r):s=i}else if(r===H1.CLEARCOAT_ROUGHNESS){const i=this.getFloat(r);o.clearcoatRoughnessMap&&o.clearcoatRoughnessMap.isTexture===!0?s=i.mul(this.getTexture(r).r):s=i}else if(r===H1.CLEARCOAT_NORMAL)o.clearcoatNormalMap?s=Aa(this.getTexture(r),this.getCache(r+"Scale","vec2")):s=M1;else if(r===H1.SHEEN){const i=this.getColor("sheenColor").mul(this.getFloat("sheen"));o.sheenColorMap&&o.sheenColorMap.isTexture===!0?s=i.mul(this.getTexture("sheenColor").rgb):s=i}else if(r===H1.SHEEN_ROUGHNESS){const i=this.getFloat(r);o.sheenRoughnessMap&&o.sheenRoughnessMap.isTexture===!0?s=i.mul(this.getTexture(r).a):s=i,s=s.clamp(1e-4,1)}else if(r===H1.ANISOTROPY)if(o.anisotropyMap&&o.anisotropyMap.isTexture===!0){const i=this.getTexture(r);s=un(T3.x,T3.y,T3.y.negate(),T3.x).mul(i.rg.mul(2).sub(n1(1)).normalize().mul(i.b))}else s=T3;else if(r===H1.IRIDESCENCE_THICKNESS){const i=X1("1","float",o.iridescenceThicknessRange);if(o.iridescenceThicknessMap){const n=X1("0","float",o.iridescenceThicknessRange);s=i.sub(n).mul(this.getTexture(r).g).add(n)}else s=i}else if(r===H1.TRANSMISSION){const i=this.getFloat(r);o.transmissionMap?s=i.mul(this.getTexture(r).r):s=i}else if(r===H1.THICKNESS){const i=this.getFloat(r);o.thicknessMap?s=i.mul(this.getTexture(r).g):s=i}else if(r===H1.IOR)s=this.getFloat(r);else if(r===H1.LIGHT_MAP)o.lightMap?s=this.getTexture(r).rgb.mul(this.getFloat("lightMapIntensity")):s=U(0);else if(r===H1.AO)o.aoMap?s=this.getTexture(r).r.sub(1).mul(this.getFloat("aoMapIntensity")).add(1):s=C(1);else if(r===H1.LINE_DASH_OFFSET)s=o.dashOffset?this.getFloat(r):C(0);else{const i=this.getNodeType(t);s=this.getCache(r,i)}return s}};P.ALPHA_TEST="alphaTest";P.COLOR="color";P.OPACITY="opacity";P.SHININESS="shininess";P.SPECULAR="specular";P.SPECULAR_STRENGTH="specularStrength";P.SPECULAR_INTENSITY="specularIntensity";P.SPECULAR_COLOR="specularColor";P.REFLECTIVITY="reflectivity";P.ROUGHNESS="roughness";P.METALNESS="metalness";P.NORMAL="normal";P.CLEARCOAT="clearcoat";P.CLEARCOAT_ROUGHNESS="clearcoatRoughness";P.CLEARCOAT_NORMAL="clearcoatNormal";P.EMISSIVE="emissive";P.ROTATION="rotation";P.SHEEN="sheen";P.SHEEN_ROUGHNESS="sheenRoughness";P.ANISOTROPY="anisotropy";P.IRIDESCENCE="iridescence";P.IRIDESCENCE_IOR="iridescenceIOR";P.IRIDESCENCE_THICKNESS="iridescenceThickness";P.IOR="ior";P.TRANSMISSION="transmission";P.THICKNESS="thickness";P.ATTENUATION_DISTANCE="attenuationDistance";P.ATTENUATION_COLOR="attenuationColor";P.LINE_SCALE="scale";P.LINE_DASH_SIZE="dashSize";P.LINE_GAP_SIZE="gapSize";P.LINE_WIDTH="linewidth";P.LINE_DASH_OFFSET="dashOffset";P.POINT_SIZE="size";P.DISPERSION="dispersion";P.LIGHT_MAP="light";P.AO="ao";var Rf=V(P,P.ALPHA_TEST),Bf=V(P,P.COLOR),Ef=V(P,P.SHININESS),Uf=V(P,P.EMISSIVE),c8=V(P,P.OPACITY),Wf=V(P,P.SPECULAR),Ra=V(P,P.SPECULAR_INTENSITY),Lf=V(P,P.SPECULAR_COLOR),vr=V(P,P.SPECULAR_STRENGTH),Ns=V(P,P.REFLECTIVITY),Of=V(P,P.ROUGHNESS),Ff=V(P,P.METALNESS),Pf=V(P,P.NORMAL),Df=V(P,P.CLEARCOAT),kf=V(P,P.CLEARCOAT_ROUGHNESS),Xf=V(P,P.CLEARCOAT_NORMAL),If=V(P,P.ROTATION),Gf=V(P,P.SHEEN),zf=V(P,P.SHEEN_ROUGHNESS),Vf=V(P,P.ANISOTROPY),Qf=V(P,P.IRIDESCENCE),$f=V(P,P.IRIDESCENCE_IOR),Zf=V(P,P.IRIDESCENCE_THICKNESS),qf=V(P,P.TRANSMISSION),Hf=V(P,P.THICKNESS),Jf=V(P,P.IOR),jf=V(P,P.ATTENUATION_DISTANCE),Kf=V(P,P.ATTENUATION_COLOR),d8=V(P,P.LINE_SCALE),h8=V(P,P.LINE_DASH_SIZE),f8=V(P,P.LINE_GAP_SIZE),Ci=V(P,P.LINE_WIDTH),p8=V(P,P.LINE_DASH_OFFSET),Yf=V(P,P.POINT_SIZE),ep=V(P,P.DISPERSION),m8=V(P,P.LIGHT_MAP),tp=V(P,P.AO),T3=o1(new p1).onReference(function(e){return e.material}).onRenderUpdate(function({material:e}){this.value.set(e.anisotropy*Math.cos(e.anisotropyRotation),e.anisotropy*Math.sin(e.anisotropyRotation))}),op=B(e=>e.context.setupModelViewProjection(),"vec4").once()().toVarying("v_modelViewProjection"),ft=class t2 extends i1{static get type(){return"EventNode"}constructor(t,o){super("void"),this.eventType=t,this.callback=o,t===t2.OBJECT?this.updateType=u1.OBJECT:t===t2.MATERIAL?this.updateType=u1.RENDER:t===t2.FRAME?this.updateType=u1.FRAME:t===t2.BEFORE_OBJECT?this.updateBeforeType=u1.OBJECT:t===t2.BEFORE_MATERIAL?this.updateBeforeType=u1.RENDER:t===t2.BEFORE_FRAME&&(this.updateBeforeType=u1.FRAME)}update(t){this.callback(t)}updateBefore(t){this.callback(t)}};ft.OBJECT="object";ft.MATERIAL="material";ft.FRAME="frame";ft.BEFORE_OBJECT="beforeObject";ft.BEFORE_MATERIAL="beforeMaterial";ft.BEFORE_FRAME="beforeFrame";var g8=(e,t)=>new ft(e,t).toStack(),Tn=e=>g8(ft.OBJECT,e),rp=e=>g8(ft.FRAME,e),sp=class extends f3{static get type(){return"StorageArrayElementNode"}constructor(e,t){super(e,t),this.isStorageArrayElementNode=!0}set storageBufferNode(e){this.node=e}get storageBufferNode(){return this.node}getMemberType(e,t){const o=this.storageBufferNode.structTypeNode;return o?o.getMemberType(e,t):"void"}setup(e){return e.isAvailable("storageBuffer")===!1&&this.node.isPBO===!0&&e.setupPBO(this.node),super.setup(e)}generate(e,t){let o;const r=e.isContextAssign();if(e.isAvailable("storageBuffer")===!1?this.node.isPBO===!0&&r!==!0&&(this.node.value.isInstancedBufferAttribute||e.shaderStage!=="compute")?o=e.generatePBO(this):o=this.node.build(e):o=super.generate(e),r!==!0){const s=this.getNodeType(e);o=e.format(o,s,t)}return o}},ip=G1(sp).setParameterLength(2),np=class extends Mn{static get type(){return"StorageBufferNode"}constructor(e,t=null,o=0){let r,s=null;t&&t.isStructTypeNode?(r="struct",s=t,(e.isStorageBufferAttribute||e.isStorageInstancedBufferAttribute)&&(o=e.count)):t===null&&(e.isStorageBufferAttribute||e.isStorageInstancedBufferAttribute)?(r=s4(e.itemSize),o=e.count):r=t,super(e,r,o),this.isStorageBufferNode=!0,this.structTypeNode=s,this.access=ie.READ_WRITE,this.isAtomic=!1,this.isPBO=!1,this._attribute=null,this._varying=null,this.global=!0,e.isStorageBufferAttribute!==!0&&e.isStorageInstancedBufferAttribute!==!0&&(e.isInstancedBufferAttribute?e.isStorageInstancedBufferAttribute=!0:e.isStorageBufferAttribute=!0)}getHash(e){let t;if(this.bufferCount===0){let o=e.globalCache.getData(this.value);o===void 0&&(o={node:this},e.globalCache.setData(this.value,o)),t=o.node.id}else t=this.id;return String(t)}getInputType(){return this.value.isIndirectStorageBufferAttribute?"indirectStorageBuffer":"storageBuffer"}element(e){return ip(this,e)}setPBO(e){return this.isPBO=e,this}getPBO(){return this.isPBO}setAccess(e){return this.access=e,this}toReadOnly(){return this.setAccess(ie.READ_ONLY)}setAtomic(e){return this.isAtomic=e,this}toAtomic(){return this.setAtomic(!0)}getAttributeData(){return this._attribute===null&&(this._attribute=k4(this.value),this._varying=E2(this._attribute)),{attribute:this._attribute,varying:this._varying}}generateNodeType(e){if(this.structTypeNode!==null)return this.structTypeNode.getNodeType(e);if(e.isAvailable("storageBuffer")||e.isAvailable("indirectStorageBuffer"))return super.generateNodeType(e);const{attribute:t}=this.getAttributeData();return t.getNodeType(e)}getMemberType(e,t){return this.structTypeNode!==null?this.structTypeNode.getMemberType(e,t):"void"}generate(e){if(this.structTypeNode!==null&&this.structTypeNode.build(e),e.isAvailable("storageBuffer")||e.isAvailable("indirectStorageBuffer"))return super.generate(e);const{attribute:t,varying:o}=this.getAttributeData(),r=o.build(e);return e.registerTransform(r,t),r}},v8=(e,t=null,o=0)=>new np(e,t,o),Ri=new WeakMap,Ba=new WeakMap,Bi=new WeakMap;function b8(e,t){let o;const r=Math.max(t.count,1);if(t.isStorageInstancedBufferAttribute===!0)o=v8(t,"mat4",r).element(a3);else if(r*16*4<=e.getUniformBufferLimit())o=yn(t.array,"mat4",r).element(a3);else{let s=Ri.get(t);s||(s=new xr(t.array,16,1),Ri.set(t,s));const i=t.usage===35048?I4:X4,n=[i(s,"vec4",16,0),i(s,"vec4",16,4),i(s,"vec4",16,8),i(s,"vec4",16,12)];o=v2(...n)}return o}function ap(e,t,o){let r=Bi.get(e);if(r===void 0){const s=t.clone();r={previousInstanceMatrix:s,node:b8(o,s)},Bi.set(e,r)}return r.node}var N8=p3("vec3","vInstanceColor"),lp=B(([e,t=null],o)=>{const r=e.isStorageInstancedBufferAttribute===!0,s=t&&t.isStorageInstancedBufferAttribute===!0,i=b8(o,e);let n=null;r||Math.max(e.count,1)*16*4>o.getUniformBufferLimit()&&(n=Ri.get(e));let a=null,l=null;if(t)if(s)a=v8(t,"vec3",Math.max(t.count,1)).element(a3);else{let c=Ba.get(t);c||(c=new A9(t.array,3),Ba.set(t,c)),l=c;const d=t.usage===35048?I4:X4;a=U(d(c,"vec3",3,0))}(n!==null||l!==null)&&rp(()=>{n!==null&&(n.clearUpdateRanges(),n.updateRanges.push(...e.updateRanges),e.version!==n.version&&(n.version=e.version)),t&&l!==null&&(l.clearUpdateRanges(),l.updateRanges.push(...t.updateRanges),t.version!==l.version&&(l.version=t.version))});const u=i.mul(a0).xyz;if(a0.assign(u),o.needsPreviousData()){const c=o.object;Tn(({object:h})=>{Bi.get(h).previousInstanceMatrix.array.set(e.array)});const d=ap(c,e,o);Rr.assign(d.mul(Rr).xyz)}if(o.hasGeometryAttribute("normal")){const c=Y4(He,i);He.assign(c)}a!==null&&N8.assign(a)},"void"),up=B(([e])=>{const{instanceMatrix:t,instanceColor:o}=e;lp(t,o)},"void"),cp=B(([e,t])=>{const o=Q1(no(ge(e),0).x).toConst(),r=Q1(t),s=r.mod(o).toConst(),i=r.div(o).toConst();return ge(e,O0(s,i))}),dp=B(([e,t])=>{const o=Q1(no(ge(e),0).x).toConst(),r=Q1(t).mod(o).toConst(),s=Q1(t).div(o).toConst();return ge(e,O0(r,s)).x}),M8=p3("vec4","vBatchColor"),hp=B(([e],t)=>{const o=t.getDrawIndex()===null?a3:wh,r=dp(e._indirectTexture,Q1(o)),s=e._matricesTexture,i=Q1(no(ge(s),0).x).toConst(),n=C(r).mul(4).toInt().toConst(),a=n.mod(i).toConst(),l=n.div(i).toConst(),u=v2(ge(s,O0(a,l)),ge(s,O0(a.add(1),l)),ge(s,O0(a.add(2),l)),ge(s,O0(a.add(3),l))),c=e._colorsTexture;if(c!==null){const p=cp(c,r);M8.assign(p)}const d=m0(u);a0.assign(u.mul(a0));const h=He.div(U(d[0].dot(d[0]),d[1].dot(d[1]),d[2].dot(d[2]))),f=d.mul(h).xyz;He.assign(f),t.hasGeometryAttribute("tangent")&&Br.mulAssign(d)},"void"),Ea=new WeakMap,Ei=new WeakMap;function y8(e,t,o,r,s,i){const n=e.element(s.x),a=e.element(s.y),l=e.element(s.z),u=e.element(s.w),c=o.mul(t),d=P0(n.mul(i.x).mul(c),a.mul(i.y).mul(c),l.mul(i.z).mul(c),u.mul(i.w).mul(c));return r.mul(d).xyz}function fp(e,t,o,r,s,i,n){const a=e.element(i.x),l=e.element(i.y),u=e.element(i.z),c=e.element(i.w);let d=P0(n.x.mul(a),n.y.mul(l),n.z.mul(u),n.w.mul(c));return d=s.mul(d).mul(r),{skinNormal:d.transformDirection(t).xyz,skinTangent:d.transformDirection(o).xyz}}function pp(e,t,o,r,s){const i=e.skeleton;let n=Ei.get(i);if(n===void 0){i.update();const a=new Float32Array(i.boneMatrices);n={previousBoneMatrices:a,node:yn(a,"mat4",i.bones.length)},Ei.set(i,n)}return y8(n.node,Rr,t,o,r,s)}var mp=B(([e],t)=>{const o=ne("skinIndex","uvec4"),r=ne("skinWeight","vec4"),s=X1("bindMatrix","mat4"),i=X1("bindMatrixInverse","mat4"),n=pf("skeleton.boneMatrices","mat4",e.skeleton.bones.length);if(Tn(({object:l,frameId:u})=>{const c=l.skeleton;if(Ea.get(c)!==u){Ea.set(c,u);const d=Ei.get(c);d!==void 0&&d.previousBoneMatrices.set(c.boneMatrices),c.update()}}),t.needsPreviousData()){const l=pp(e,s,i,o,r);Rr.assign(l)}const a=y8(n,a0,s,i,o,r);if(a0.assign(a),t.hasGeometryAttribute("normal")){const{skinNormal:l,skinTangent:u}=fp(n,He,Br,s,i,o,r);He.assign(l),t.hasGeometryAttribute("tangent")&&Br.assign(u)}},"void"),gp=class extends i1{static get type(){return"LoopNode"}constructor(e=[]){super("void"),this.params=e}getVarName(e){return String.fromCharCode(105+e)}getProperties(e){const t=e.getNodeProperties(this);if(t.stackNode!==void 0)return t;const o={};for(let n=0,a=this.params.length-1;nNumber(c)?f=">=":f="<"));let m;if(l)m=`while ( ${c} )`;else{const b={start:u,end:c},N=b.start,v=b.end;let M;const T=()=>f.includes("<")?"+=":"-=";if(p!=null)switch(typeof p){case"function":M=e.flowStagesNode(t.updateNode,"void").code.replace(/\t|;/g,"");break;case"number":M=d+" "+T()+" "+e.generateConst(h,p);break;case"string":M=d+" "+p;break;default:p.isNode?M=d+" "+T()+" "+p.build(e):(G("TSL: 'Loop( { update: ... } )' is not a function, string or number.",this.stackTrace),M="break /* invalid update */")}else h==="int"||h==="uint"?p=f.includes("<")?"++":"--":p=T()+" 1.",M=d+" "+p;m=`for ( ${e.getVar(h,d)+" = "+N}; ${d+" "+f+" "+v}; ${M} )`}e.addFlowCode((i===0?` -`:"")+e.tab+m+` { - -`).addFlowTab()}const s=r.build(e,"void");t.returnsNode.build(e,"void"),e.removeFlowTab().addFlowCode(` -`+e.tab+s);for(let i=0,n=this.params.length-1;inew gp(e3(e,"int")).toStack(),vp=()=>ke("break").toStack(),Ms=new WeakMap,X0=new S1,Ua=new WeakMap,Wa=B(({bufferMap:e,influence:t,stride:o,width:r,depth:s,offset:i})=>{const n=Q1(Th).mul(o).add(i),a=n.div(r),l=n.sub(a.mul(r));return ge(e,O0(l,a)).depth(s).xyz.mul(t)});function bp(e){const t=e.morphAttributes.position!==void 0,o=e.morphAttributes.normal!==void 0,r=e.morphAttributes.color!==void 0,s=e.morphAttributes.position||e.morphAttributes.normal||e.morphAttributes.color,i=s!==void 0?s.length:0;let n=Ms.get(e);if(n===void 0||n.count!==i){let N=function(){m.dispose(),Ms.delete(e),e.removeEventListener("dispose",N)};n!==void 0&&n.texture.dispose();const a=e.morphAttributes.position||[],l=e.morphAttributes.normal||[],u=e.morphAttributes.color||[];let c=0;t===!0&&(c=1),o===!0&&(c=2),r===!0&&(c=3);let d=e.attributes.position.count*c,h=1;const f=4096;d>f&&(h=Math.ceil(d/f),d=f);const p=new Float32Array(d*h*4*i),m=new F9(p,d,h,i);m.type=oe,m.needsUpdate=!0;const b=c*4;for(let v=0;v{const{geometry:t}=e,o=t.morphAttributes.position!==void 0,r=t.hasAttribute("normal")&&t.morphAttributes.normal!==void 0,s=t.morphAttributes.position||t.morphAttributes.normal||t.morphAttributes.color,i=s!==void 0?s.length:0;if(i===0)return;let n=Ua.get(e);(n===void 0||n.count!==i)&&(n={base:o1(1),influences:e.morphTargetInfluences?W0(e.morphTargetInfluences,"float"):null,count:i},Ua.set(e,n));const{base:a,influences:l}=n,{texture:u,stride:c,size:d}=bp(t);o===!0&&a0.mulAssign(a),r===!0&&He.mulAssign(a);const h=Q1(d.width);re(i,({i:f})=>{const p=C(0).toVar();e.count>1&&e.morphTexture!==null&&e.morphTexture!==void 0?p.assign(ge(e.morphTexture,O0(Q1(f).add(1),Q1(a3))).r):p.assign(l.element(f).toVar()),x1(p.notEqual(0),()=>{o===!0&&a0.addAssign(Wa({bufferMap:u,influence:p,stride:c,width:h,depth:f,offset:Q1(0)})),r===!0&&He.addAssign(Wa({bufferMap:u,influence:p,stride:c,width:h,depth:f,offset:Q1(1)}))})}),Tn(({object:f})=>{const{base:p,influences:m}=n;f.geometry.morphTargetsRelative?p.value=1:p.value=1-f.morphTargetInfluences.reduce((b,N)=>b+N,0),m&&(m.array=f.morphTargetInfluences,m.update())})},"void"),b3=class extends i1{static get type(){return"LightingNode"}constructor(){super("vec3"),this.isLightingNode=!0}},Mp=class extends b3{static get type(){return"AONode"}constructor(e=null){super(),this.aoNode=e}setup(e){e.context.ambientOcclusion.mulAssign(this.aoNode)}},yp=class extends mn{static get type(){return"LightingContextNode"}constructor(e,t=null,o=[],r=null,s=null){super(e),this.lightingModel=t,this.materialLightings=o,this.backdropNode=r,this.backdropAlphaNode=s,this._value=null}getContext(){const{materialLightings:e,backdropNode:t,backdropAlphaNode:o}=this,r={directDiffuse:U().toVar("directDiffuse"),directSpecular:U().toVar("directSpecular"),indirectDiffuse:U().toVar("indirectDiffuse"),indirectSpecular:U().toVar("indirectSpecular")};return{radiance:U().toVar("radiance"),irradiance:U().toVar("irradiance"),iblIrradiance:U().toVar("iblIrradiance"),ambientOcclusion:C(1).toVar("ambientOcclusion"),reflectedLight:r,materialLightings:e,backdrop:t,backdropAlpha:o}}setup(e){return this.value=this._value||(this._value=this.getContext()),this.value.lightingModel=this.lightingModel||e.context.lightingModel,super.setup(e)}},xp=G1(yp),Sp=class extends b3{static get type(){return"IrradianceNode"}constructor(e){super(),this.node=e}setup(e){e.context.irradiance.addAssign(this.node)}},Zt=new p1,x8=class extends Mo{static get type(){return"ViewportTextureNode"}constructor(e=At,t=null,o=null){let r=null;o===null?(r=new W6,r.minFilter=ui,o=r):r=o,super(o,e,t),this.generateMipmaps=!1,this.defaultFramebuffer=r,this.isOutputTextureNode=!0,this.updateBeforeType=u1.RENDER,this._cacheTextures=new WeakMap}getTextureForReference(e=null){let t,o;if(this.referenceNode?(t=this.referenceNode.defaultFramebuffer,o=this.referenceNode._cacheTextures):(t=this.defaultFramebuffer,o=this._cacheTextures),e===null)return t;if(o.has(e)===!1){const r=t.clone();o.set(e,r)}return o.get(e)}updateReference(e){const t=e.renderer,o=t.getRenderTarget(),r=t.getCanvasTarget(),s=o||r;return this.value=this.getTextureForReference(s),this.value}updateBefore(e){const t=e.renderer,o=t.getRenderTarget(),r=t.getCanvasTarget(),s=o||r;s===null?t.getDrawingBufferSize(Zt):s.getDrawingBufferSize?s.getDrawingBufferSize(Zt):Zt.set(s.width,s.height);const i=this.getTextureForReference(s);(i.image.width!==Zt.width||i.image.height!==Zt.height)&&(i.image.width=Zt.width,i.image.height=Zt.height,i.needsUpdate=!0);const n=i.generateMipmaps;i.generateMipmaps=this.generateMipmaps,t.copyFramebufferToTexture(i),i.generateMipmaps=n}clone(){const e=new this.constructor(this.uvNode,this.levelNode,this.value);return e.generateMipmaps=this.generateMipmaps,e}},S8=G1(x8,null,null,{generateMipmaps:!0}).setParameterLength(0,3),Tp=S8(),wp=(e=At,t=null)=>Tp.sample(e,t),ys=null,_p=class extends x8{static get type(){return"ViewportDepthTextureNode"}constructor(e=At,t=null,o=null){o===null&&(ys===null&&(ys=new ye),o=ys),super(e,t,o)}},Ap=G1(_p).setParameterLength(0,3),dt=class z3 extends i1{static get type(){return"ViewportDepthNode"}constructor(t,o=null){super("float"),this.scope=t,this.valueNode=o,this.isViewportDepthNode=!0}generate(t){const{scope:o}=this;return o===z3.DEPTH_BASE?t.getFragDepth():super.generate(t)}setup({camera:t}){const{scope:o}=this,r=this.valueNode;let s=null;if(o===z3.DEPTH_BASE)r!==null&&(s=w8().assign(r));else if(o===z3.DEPTH)t.isPerspectiveCamera?s=T8(t0.z,i2,n2):s=s3(t0.z,i2,n2);else if(o===z3.LINEAR_DEPTH)if(r!==null)if(t.isPerspectiveCamera){const i=wn(r,i2,n2);s=s3(i,i2,n2)}else s=r;else s=s3(t0.z,i2,n2);return s}};dt.DEPTH_BASE="depthBase";dt.DEPTH="depth";dt.LINEAR_DEPTH="linearDepth";var s3=(e,t,o)=>e.add(t).div(t.sub(o)),Cp=B(([e,t,o],r)=>r.renderer.reversedDepthBuffer===!0?o.sub(t).mul(e).sub(o):t.sub(o).mul(e).sub(t)),T8=(e,t,o)=>t.add(e).mul(o).div(o.sub(t).mul(e)),Rp=(e,t,o)=>t.mul(e.add(o)).div(e.mul(t.sub(o))),wn=B(([e,t,o],r)=>r.renderer.reversedDepthBuffer===!0?t.mul(o).div(t.sub(o).mul(e).sub(t)):t.mul(o).div(o.sub(t).mul(e).sub(o))),_n=(e,t,o)=>{t=t.max(1e-6).toVar();const r=ut(e.negate().div(t)),s=ut(o.div(t));return r.div(s)},w8=G1(dt,dt.DEPTH_BASE),_8=V(dt,dt.DEPTH),Bp=G1(dt,dt.LINEAR_DEPTH).setParameterLength(0,1),QT=Bp(Ap());_8.assign=e=>w8(e);var Dt=class br extends i1{static get type(){return"ClippingNode"}constructor(t=br.DEFAULT){super(),this.scope=t}setup(t){super.setup(t);const{intersectionPlanes:o,unionPlanes:r}=t.clippingContext;return this.hardwareClipping=t.hardwareClipping,this.scope===br.ALPHA_TO_COVERAGE?this.setupAlphaToCoverage(o,r):this.scope===br.HARDWARE?this.setupHardwareClipping(r,t):this.setupDefault(o,r)}setupAlphaToCoverage(t,o){return B(()=>{const r=C().toVar("distanceToPlane"),s=C().toVar("distanceToGradient"),i=C(1).toVar("clipOpacity"),n=o.length;if(this.hardwareClipping===!1&&n>0){const l=W0(o).setGroup(s1);re(n,({i:u})=>{const c=l.element(u);r.assign(t0.dot(c.xyz).negate().add(c.w)),s.assign(r.fwidth().div(2)),i.mulAssign(we(s.negate(),s,r))})}const a=t.length;if(a>0){const l=W0(t).setGroup(s1),u=C(1).toVar("intersectionClipOpacity");re(a,({i:c})=>{const d=l.element(c);r.assign(t0.dot(d.xyz).negate().add(d.w)),s.assign(r.fwidth().div(2)),u.mulAssign(we(s.negate(),s,r).oneMinus())}),i.mulAssign(u.oneMinus())}U1.a.mulAssign(i),U1.a.equal(0).discard()})()}setupDefault(t,o){return B(()=>{const r=o.length;if(this.hardwareClipping===!1&&r>0){const i=W0(o).setGroup(s1);re(r,({i:n})=>{const a=i.element(n);t0.dot(a.xyz).greaterThan(a.w).discard()})}const s=t.length;if(s>0){const i=W0(t).setGroup(s1),n=zr(!0).toVar("clipped");re(s,({i:a})=>{const l=i.element(a);n.assign(t0.dot(l.xyz).greaterThan(l.w).and(n))}),n.discard()}})()}setupHardwareClipping(t,o){const r=t.length;return o.enableHardwareClipping(r),B(()=>{const s=W0(t).setGroup(s1),i=W2(o.getClipDistance());re(r,({i:n})=>{const a=s.element(n),l=t0.dot(a.xyz).sub(a.w).negate();i.element(n).assign(l)})})()}};Dt.ALPHA_TO_COVERAGE="alphaToCoverage";Dt.DEFAULT="default";Dt.HARDWARE="hardware";var Ep=()=>new Dt,Up=()=>new Dt(Dt.ALPHA_TO_COVERAGE),Wp=()=>new Dt(Dt.HARDWARE),Lp=.05,La=B(([e])=>qe(d1(1e4,V0(d1(17,e.x).add(d1(.1,e.y)))).mul(P0(.1,Q0(V0(d1(13,e.y).add(e.x))))))),Oa=B(([e])=>La(n1(La(e.xy),e.z))),Op=B(([e])=>{const t=g0(ct(R4(e.xyz)),ct(B4(e.xyz))),o=C(1).div(C(Lp).mul(t)).toVar("pixScale"),r=n1(so(b2(ut(o))),so(fn(ut(o)))),s=n1(Oa(b2(r.x.mul(e.xyz))),Oa(b2(r.y.mul(e.xyz)))),i=qe(ut(o)),n=P0(d1(i.oneMinus(),s.x),d1(i,s.y)),a=n3(i,i.oneMinus()),l=U(n.mul(n).div(d1(2,a).mul(U0(1,a))),n.sub(d1(.5,a)).div(U0(1,a)),U0(1,U0(1,n).mul(U0(1,n)).div(d1(2,a).mul(U0(1,a))))),u=n.lessThan(a.oneMinus()).select(n.lessThan(a).select(l.x,l.y),l.z);return Pt(u,1e-6,1)}).setLayout({name:"getAlphaHashThreshold",type:"float",inputs:[{name:"position",type:"vec3"}]}),Fp=class extends Z4{static get type(){return"VertexColorNode"}constructor(e){super(null,"vec4"),this.isVertexColorNode=!0,this.index=e}getAttributeName(){const e=this.index;return"color"+(e>0?e:"")}generate(e){const t=this.getAttributeName(e),o=e.hasGeometryAttribute(t);let r;return o===!0?r=super.generate(e):r=e.generateConst(this.nodeType,new S1(1,1,1,1)),r}serialize(e){super.serialize(e),e.index=this.index}deserialize(e){super.deserialize(e),this.index=e.index}},Pp=(e=0)=>new Fp(e),o0=class extends Tr{static get type(){return"NodeMaterial"}get type(){return this.constructor.type}set type(e){}constructor(){super(),this.isNodeMaterial=!0,this.fog=!0,this.lights=!1,this.lightsNode=null,this.envNode=null,this.aoNode=null,this.colorNode=null,this.normalNode=null,this.opacityNode=null,this.backdropNode=null,this.backdropAlphaNode=null,this.alphaTestNode=null,this.maskNode=null,this.maskShadowNode=null,this.positionNode=null,this.geometryNode=null,this.depthNode=null,this.receivedShadowPositionNode=null,this.castShadowPositionNode=null,this.receivedShadowNode=null,this.castShadowNode=null,this.outputNode=null,this.mrtNode=null,this.fragmentNode=null,this.vertexNode=null,this.contextNode=null}_getNodeChildren(){const e=[];for(const t of Object.getOwnPropertyNames(this)){if(t.startsWith("_")===!0)continue;const o=this[t];o&&o.isNode===!0&&e.push({property:t,childNode:o})}return e}customProgramCacheKey(){const e=[];for(const{property:t,childNode:o}of this._getNodeChildren())e.push(d3(t.slice(0,-4)),o.getCacheKey());return this.type+bo(e)}build(e){this.setup(e)}setupObserver(e){return new dc(e)}setup(e){e.context.setupNormal=()=>r3(this.setupNormal(e),"NORMAL","vec3"),e.context.setupPositionView=()=>this.setupPositionView(e),e.context.setupModelViewProjection=()=>this.setupModelViewProjection(e);const t=e.renderer,o=t.getRenderTarget();e.addStack();const r=this.setupVertex(e),s=r3(this.vertexNode||r,"VERTEX");e.context.clipSpace=s,e.stack.outputNode=s,this.setupHardwareClipping(e),this.geometryNode!==null&&(e.stack.outputNode=e.stack.outputNode.bypass(this.geometryNode)),e.addFlow("vertex",e.removeStack()),e.addStack();let i;const n=this.setupClipping(e);if((this.depthWrite===!0||this.depthTest===!0)&&(o!==null?o.depthBuffer===!0&&this.setupDepth(e):t.depth===!0&&this.setupDepth(e)),this.fragmentNode===null){this.setupDiffuseColor(e),this.setupAmbientOcclusion(e),this.setupVariants(e);const a=this.setupLighting(e);n!==null&&e.stack.addToStack(n);const l=Y(a,U1.a).max(0);i=this.setupOutput(e,l),J3.assign(i);const u=this.outputNode!==null;if(u&&(i=this.outputNode),e.context.getOutput&&(i=e.context.getOutput(i,e)),o!==null){const c=t.getMRT(),d=this.mrtNode;c!==null?(u&&J3.assign(i),i=c,d!==null&&(i=c.merge(d))):d!==null&&(i=d)}}else{let a=this.fragmentNode;a.isOutputStructNode!==!0&&(a=a.convert(e.getOutputType())),i=this.setupOutput(e,a)}e.stack.outputNode=i,e.addFlow("fragment",e.removeStack()),e.observer=this.setupObserver(e)}setupClipping(e){if(e.clippingContext===null)return null;const{unionPlanes:t,intersectionPlanes:o}=e.clippingContext;let r=null;if(t.length>0||o.length>0){const s=e.renderer.currentSamples;this.alphaToCoverage&&s>1?r=Up():e.stack.addToStack(Ep())}return r}setupHardwareClipping(e){if(e.hardwareClipping=!1,e.clippingContext===null)return;const t=e.clippingContext.unionPlanes.length;t>0&&t<=8&&e.isAvailable("clipDistance")&&(e.stack.addToStack(Wp()),e.hardwareClipping=!0)}setupDepth(e){const{renderer:t,camera:o}=e;let r=this.depthNode;if(r===null){const s=t.getMRT();s&&s.has("depth")?r=s.get("depth"):t.logarithmicDepthBuffer===!0&&(o.isPerspectiveCamera?r=_n(t0.z,i2,n2):r=s3(t0.z,i2,n2))}r!==null&&_8.assign(r).toStack()}setupPositionView(){return w2.mul(a0).xyz}setupModelViewProjection(){return Ne.mul(t0)}setupVertex(e){return e.addStack(),this.setupPosition(e),e.context.position=e.removeStack(),op}setupPosition(e){const{object:t,geometry:o}=e;if((o.morphAttributes.position||o.morphAttributes.normal||o.morphAttributes.color)&&Np(t),t.isSkinnedMesh===!0&&mp(t),this.displacementMap){const r=Tt("displacementMap","texture"),s=Tt("displacementScale","float"),i=Tt("displacementBias","float");a0.addAssign(He.normalize().mul(r.x.mul(s).add(i)))}return t.isBatchedMesh&&hp(t),t.isInstancedMesh&&t.instanceMatrix&&t.instanceMatrix.isInstancedBufferAttribute===!0&&up(t),this.positionNode!==null&&a0.assign(r3(this.positionNode,"POSITION","vec3")),a0}setupDiffuseColor(e){const{object:t,geometry:o}=e;this.maskNode!==null&&zr(this.maskNode).not().discard();let r=this.colorNode?Y(this.colorNode):Bf;this.vertexColors===!0&&o.hasAttribute("color")&&(r=r.mul(Pp())),t.instanceColor&&(r=N8.mul(r)),t.isBatchedMesh&&t._colorsTexture&&(r=M8.mul(r)),U1.assign(r);const s=this.opacityNode?C(this.opacityNode):c8;U1.a.assign(U1.a.mul(s));let i=null;(this.alphaTestNode!==null||this.alphaTest>0)&&(i=this.alphaTestNode!==null?C(this.alphaTestNode):Rf,this.alphaToCoverage===!0?(U1.a=we(i,i.add(E4(U1.a)),U1.a),U1.a.lessThanEqual(0).discard()):U1.a.lessThanEqual(i).discard()),this.alphaHash===!0&&U1.a.lessThan(Op(a0)).discard(),e.isOpaque()&&U1.a.assign(1)}setupVariants(){}setupOutgoingLight(){return this.lights===!0?U(0):U1.rgb}setupNormal(){return this.normalNode?U(this.normalNode):Pf}setupEnvironment(){let e=null;return this.envNode?e=this.envNode:this.envMap&&(e=this.envMap.isCubeTexture?Tt("envMap","cubeTexture"):Tt("envMap","texture")),e}setupLightMap(e){let t=null;return e.material.lightMap&&(t=new Sp(m8)),t}setupMaterialLightings(e){const t=[];if(e.renderer.lighting.enabled===!1)return t;const o=this.setupEnvironment(e);o&&o.isLightingNode&&t.push(o);const r=this.setupLightMap(e);return r&&r.isLightingNode&&t.push(r),e.context.ambientOcclusion&&t.push(new Mp(e.context.ambientOcclusion)),t}setupAmbientOcclusion(e){let t=this.aoNode;t===null&&e.material.aoMap&&(t=tp),e.context.getAO&&(t=e.context.getAO(t,e)),t!==null&&(ba.assign(t),e.context.ambientOcclusion=ba)}setupLightingModel(){}setupLighting(e){const{material:t}=e,{backdropNode:o,backdropAlphaNode:r,emissiveNode:s}=this,i=this.lights===!0||this.lightsNode!==null,n=this.lights===!0?this.setupMaterialLightings(e):[],a=i?this.lightsNode||e.lightsNode:null;let l=this.setupOutgoingLight(e);if(a&&(n.length>0||a.getScope().hasLights)){const u=this.setupLightingModel(e)||null;l=xp(a,u,n,o,r)}else o!==null&&(l=U(r!==null?C1(l,o,r):o));return(s&&s.isNode===!0||t.emissive&&t.emissive.isColor===!0)&&(va.assign(U(s||Uf)),l=l.add(va)),l}setupFog(e,t){const o=e.fogNode;return o&&(J3.assign(t),t=Y(o.toVar())),t}setupPremultipliedAlpha(e,t){return V4(t)}setupOutput(e,t){return this.fog===!0&&(t=this.setupFog(e,t)),this.premultipliedAlpha===!0&&(t=this.setupPremultipliedAlpha(e,t)),t}setDefaultValues(e){for(const o in e){const r=e[o];this[o]===void 0&&(this[o]=r,r&&r.clone&&(this[o]=r.clone()))}const t=Object.getOwnPropertyDescriptors(e.constructor.prototype);for(const o in t)Object.getOwnPropertyDescriptor(this.constructor.prototype,o)===void 0&&t[o].get!==void 0&&Object.defineProperty(this.constructor.prototype,o,t[o])}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{},nodes:{}});const o=Tr.prototype.toJSON.call(this,e);o.inputNodes={};for(const{property:s,childNode:i}of this._getNodeChildren())o.inputNodes[s]=i.toJSON(e).uuid;function r(s){const i=[];for(const n in s){const a=s[n];delete a.metadata,i.push(a)}return i}if(t){const s=r(e.textures),i=r(e.images),n=r(e.nodes);s.length>0&&(o.textures=s),i.length>0&&(o.images=i),n.length>0&&(o.nodes=n)}return o}copy(e){const t=Object.getOwnPropertyDescriptors(this.constructor.prototype);for(const o in t)if(t[o].set!==void 0&&e[o]!==void 0){const r=e[o];this[o]&&this[o].copy!==void 0?this[o].copy(r):this[o]=r}for(const o in this)if(!/^(?:is[A-Z]|_)|^(?:id|uuid|version|type|userData|clippingPlanes)$/.test(o)&&this[o]!==void 0&&e[o]!==void 0){const r=e[o];this[o]&&this[o].copy!==void 0?this[o].copy(r):this[o]=r}return this.clippingPlanes=e.clippingPlanes?e.clippingPlanes.map(o=>o.clone()):null,this.userData=JSON.parse(JSON.stringify(e.userData)),this}},Dp=new fl,kp=class extends o0{static get type(){return"LineBasicNodeMaterial"}constructor(e){super(),this.isLineBasicNodeMaterial=!0,this.setDefaultValues(Dp),this.setValues(e)}},Xp=new el,Ip=class extends o0{static get type(){return"LineDashedNodeMaterial"}constructor(e){super(),this.isLineDashedNodeMaterial=!0,this.setDefaultValues(Xp),this.dashOffset=0,this.offsetNode=null,this.dashScaleNode=null,this.dashSizeNode=null,this.gapSizeNode=null,this.setValues(e)}setupVariants(){const e=this.offsetNode?C(this.offsetNode):p8,t=this.dashScaleNode?C(this.dashScaleNode):d8,o=this.dashSizeNode?C(this.dashSizeNode):h8,r=this.gapSizeNode?C(this.gapSizeNode):f8;o3.assign(o),Cr.assign(r);const s=E2(ne("lineDistance").mul(t));(e?s.add(e):s).mod(o3.add(Cr)).greaterThan(o3).discard()}},Nr=p3("vec3","worldStart"),Ui=p3("vec3","worldEnd"),A8=p3("float","lineDistance"),o2=p3("vec4","worldPos"),Fa=B(({start:e,end:t})=>{const o=Ne.element(2).element(2),r=Ne.element(3).element(2);return o.greaterThan(0).select(r.negate().div(o.add(1)),r.mul(-.5).div(o)).sub(e.z).div(t.z.sub(e.z))},{start:"vec4",end:"vec4",return:"float"}),Gp=B(({p1:e,p2:t,p3:o,p4:r})=>{const s=e.sub(o),i=r.sub(o),n=t.sub(e),a=s.dot(i),l=i.dot(n),u=s.dot(n),c=i.dot(i),d=n.dot(n).mul(c).sub(l.mul(l)),h=a.mul(l).sub(u.mul(c)).div(d).clamp(),f=a.add(l.mul(h)).div(c).clamp();return n1(h,f)},{p1:"vec3",p2:"vec3",p3:"vec3",p4:"vec3",return:"vec2"}),$T=B(({material:e})=>{const t=e._useDash,o=e._useWorldUnits,r=ne("instanceStart"),s=ne("instanceEnd"),i=Y(w2.mul(Y(r,1))).toVar("start"),n=Y(w2.mul(Y(s,1))).toVar("end");let a,l;t&&(a=C(ne("instanceDistanceStart")).toVar("distanceStart"),l=C(ne("instanceDistanceEnd")).toVar("distanceEnd")),o&&(Nr.assign(i.xyz),Ui.assign(n.xyz));const u=K3.z.div(K3.w),c=Ne.element(2).element(3).equal(-1);if(x1(c,()=>{x1(i.z.lessThan(0).and(n.z.greaterThan(0)),()=>{const N=Fa({start:i,end:n});n.assign(Y(C1(i.xyz,n.xyz,N),n.w)),t&&l.assign(C1(a,l,N))}).ElseIf(n.z.lessThan(0).and(i.z.greaterThanEqual(0)),()=>{const N=Fa({start:n,end:i});i.assign(Y(C1(n.xyz,i.xyz,N),i.w)),t&&a.assign(C1(l,a,N))})}),t){const N=e.dashScaleNode?C(e.dashScaleNode):d8,v=e.offsetNode?C(e.offsetNode):p8;let M=_0.y.lessThan(.5).select(N.mul(a),N.mul(l));M=M.add(v),A8.assign(M)}const d=Ne.mul(i),h=Ne.mul(n),f=d.xyz.div(d.w),p=h.xyz.div(h.w),m=p.xy.sub(f.xy).toVar();m.x.assign(m.x.mul(u)),m.assign(m.normalize());const b=Y().toVar();if(o){const N=n.xyz.sub(i.xyz).normalize(),v=C1(i.xyz,n.xyz,.5).normalize(),M=N.cross(v).normalize(),T=N.cross(M);o2.assign(_0.y.lessThan(.5).select(i,n));const x=Ci.mul(.5);o2.addAssign(Y(_0.x.lessThan(0).select(M.mul(x),M.mul(x).negate()),0)),t||(o2.addAssign(Y(_0.y.lessThan(.5).select(N.mul(x).negate(),N.mul(x)),0)),o2.addAssign(Y(T.mul(x),0)),x1(_0.y.greaterThan(1).or(_0.y.lessThan(0)),()=>{o2.subAssign(Y(T.mul(2).mul(x),0))})),b.assign(Ne.mul(o2));const S=U().toVar();S.assign(_0.y.lessThan(.5).select(f,p)),b.z.assign(S.z.mul(b.w))}else{const N=n1(m.y,m.x.negate()).toVar("offset");m.x.assign(m.x.div(u)),N.x.assign(N.x.div(u)),N.assign(_0.x.lessThan(0).select(N.negate(),N)),x1(_0.y.lessThan(0),()=>{N.assign(N.sub(m))}).ElseIf(_0.y.greaterThan(1),()=>{N.assign(N.add(m))}),N.assign(N.mul(Ci)),N.assign(N.div(K3.w.div(H4))),b.assign(_0.y.lessThan(.5).select(d,h)),N.assign(N.mul(b.w)),b.assign(b.add(Y(N,0,0)))}return b})(),ZT=B(({material:e,renderer:t})=>{const o=e._useAlphaToCoverage,r=e._useDash,s=e._useWorldUnits,i=U2();if(r){const a=e.dashSizeNode?C(e.dashSizeNode):h8,l=e.gapSizeNode?C(e.gapSizeNode):f8;o3.assign(a),Cr.assign(l),i.y.lessThan(-1).or(i.y.greaterThan(1)).discard(),A8.mod(o3.add(Cr)).greaterThan(o3).discard()}const n=C(1).toVar("alpha");if(s){const a=o2.xyz.normalize().mul(1e5),l=Ui.sub(Nr),u=Gp({p1:Nr,p2:Ui,p3:U(0,0,0),p4:a}),c=Nr.add(l.mul(u.x)),d=a.mul(u.y),h=c.sub(d).length().div(Ci);if(!r)if(o&&t.currentSamples>0){const f=h.fwidth();n.assign(we(f.negate().add(.5),f.add(.5),h).oneMinus())}else h.greaterThan(.5).discard()}else if(o&&t.currentSamples>0){const a=i.x,l=i.y.greaterThan(0).select(i.y.sub(1),i.y.add(1)),u=a.mul(a).add(l.mul(l)),c=C(u.fwidth()).toVar("dlen");x1(i.y.abs().greaterThan(1),()=>{n.assign(we(c.oneMinus(),c.add(1),u).oneMinus())})}else x1(i.y.abs().greaterThan(1),()=>{const a=i.x,l=i.y.greaterThan(0).select(i.y.sub(1),i.y.add(1));a.mul(a).add(l.mul(l)).greaterThan(1).discard()});return n})(),zp=new L6,Vp=class extends o0{static get type(){return"MeshNormalNodeMaterial"}constructor(e){super(),this.isMeshNormalNodeMaterial=!0,this.setDefaultValues(zp),this.setValues(e)}setupDiffuseColor(){const e=this.opacityNode?C(this.opacityNode):c8;U1.assign(bn(Y(Sf(M1),e),F0))}},C8=B(([e=J4])=>{const t=e.z.atan(e.x).mul(1/(Math.PI*2)).add(.5),o=e.y.clamp(-1,1).asin().mul(1/Math.PI).add(.5);return n1(t,o)}),Pa=B(([e=U2()])=>{const t=e.x.sub(.5).mul(Math.PI*2),o=e.y.sub(.5).mul(Math.PI),r=o.cos(),s=r.mul(t.cos()),i=o.sin(),n=r.mul(t.sin());return U(s,i,n)}),R8=class extends Xt{constructor(e=1,t={}){super(e,e,t),this.isCubeRenderTarget=!0;const o={width:e,height:e,depth:1},r=[o,o,o,o,o,o];this.texture=new Xr(r),this._setTextureOptions(t),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,t){const o=t.minFilter,r=t.generateMipmaps;t.generateMipmaps=!0,this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const s=new k6(5,5,5),i=C8(J4),n=new o0;n.colorNode=O1(t,i,0),n.side=1,n.blending=0;const a=new $e(s,n),l=new yr;l.add(a),t.minFilter===1008&&(t.minFilter=Z1);const u=new Dl(1,10,this),c=e.getMRT();return e.setMRT(null),u.update(e,l),e.setMRT(c),t.minFilter=o,t.generateMipmaps=r,a.geometry.dispose(),a.material.dispose(),this}clear(e,t=!0,o=!0,r=!0){const s=e.getRenderTarget();for(let i=0;i<6;i++)e.setRenderTarget(this,i),e.clear(t,o,r);e.setRenderTarget(s)}},Y3=new WeakMap,Qp=class extends s0{static get type(){return"CubeMapNode"}constructor(e){super("vec3"),this.envNode=e,this._cubeTexture=null,this._cubeTextureNode=L0(null);const t=new Xr;t.isRenderTargetTexture=!0,this._defaultTexture=t,this.updateBeforeType=u1.RENDER}updateBefore(e){const{renderer:t,material:o}=e,r=this.envNode;if(r.isTextureNode||r.isMaterialReferenceNode){const s=r.isTextureNode?r.value:o[r.property];if(s&&s.isTexture){const i=s.mapping;if(i===303||i===304){if(Y3.has(s)){const n=Y3.get(s);Da(n,s.mapping),this._cubeTexture=n}else{const n=s.image;if($p(n)){const a=new R8(n.height);a.fromEquirectangularTexture(t,s),Da(a.texture,s.mapping),this._cubeTexture=a.texture,Y3.set(s,a.texture),s.addEventListener("dispose",B8)}else this._cubeTexture=this._defaultTexture}this._cubeTextureNode.value=this._cubeTexture}else this._cubeTextureNode=this.envNode}}}setup(e){return this.updateBefore(e),this._cubeTextureNode}};function $p(e){return e==null?!1:e.height>0}function B8(e){const t=e.target;t.removeEventListener("dispose",B8);const o=Y3.get(t);o!==void 0&&(Y3.delete(t),o.dispose())}function Da(e,t){t===303?e.mapping=301:t===304&&(e.mapping=302)}var E8=G1(Qp).setParameterLength(1),An=class extends b3{static get type(){return"BasicEnvironmentNode"}constructor(e=null){super(),this.envNode=e}setup(e){e.context.environment=E8(this.envNode)}},Zp=class extends b3{static get type(){return"BasicLightMapNode"}constructor(e=null){super(),this.lightMapNode=e}setup(e){const t=C(1/Math.PI);e.context.irradianceLightMap=this.lightMapNode.mul(t)}},Qr=class{start(e){e.lightsNode.setupLights(e,e.lightsNode.getLightNodes(e)),this.indirect(e)}finish(){}direct(){}directRectArea(){}indirect(){}ambientOcclusion(){}},U8=class extends Qr{constructor(){super()}indirect({context:e}){const t=e.ambientOcclusion,o=e.reflectedLight,r=e.irradianceLightMap;o.indirectDiffuse.assign(Y(0)),r?o.indirectDiffuse.addAssign(r):o.indirectDiffuse.addAssign(Y(1,1,1,0)),o.indirectDiffuse.mulAssign(t),o.indirectDiffuse.mulAssign(U1.rgb)}finish(e){const{material:t,context:o}=e,r=o.outgoingLight,s=e.context.environment;if(s)switch(t.combine){case 0:r.rgb.assign(C1(r.rgb,r.rgb.mul(s.rgb),vr.mul(Ns)));break;case 1:r.rgb.assign(C1(r.rgb,s.rgb,vr.mul(Ns)));break;case 2:r.rgb.addAssign(s.rgb.mul(vr.mul(Ns)));break;default:j("BasicLightingModel: Unsupported .combine value:",t.combine);break}}},qp=new r2,Hp=class extends o0{static get type(){return"MeshBasicNodeMaterial"}constructor(e){super(),this.isMeshBasicNodeMaterial=!0,this.lights=!0,this.setDefaultValues(qp),this.setValues(e)}setupNormal(){return xo(ao)}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new An(t):null}setupLightMap(e){let t=null;return e.material.lightMap&&(t=new Zp(m8)),t}setupOutgoingLight(){return U1.rgb}setupLightingModel(){return new U8}},lo=B(({f0:e,f90:t,dotVH:o})=>{const r=o.mul(-5.55473).sub(6.98316).mul(o).exp2();return e.mul(r.oneMinus()).add(t.mul(r))}),u3=B(e=>e.diffuseColor.mul(1/Math.PI)),Jp=()=>C(.25),jp=B(({dotNH:e})=>yi.mul(C(.5)).add(1).mul(C(1/Math.PI)).mul(e.pow(yi))),Kp=B(({lightDirection:e})=>{const t=e.add(P1).normalize(),o=M1.dot(t).clamp(),r=P1.dot(t).clamp(),s=lo({f0:y2,f90:1,dotVH:r}),i=Jp(),n=jp({dotNH:o});return s.mul(i).mul(n)}),W8=class extends U8{constructor(e=!0){super(),this.specular=e}direct({lightDirection:e,lightColor:t,reflectedLight:o}){const r=M1.dot(e).clamp().mul(t);o.directDiffuse.addAssign(r.mul(u3({diffuseColor:U1.rgb}))),this.specular===!0&&o.directSpecular.addAssign(r.mul(Kp({lightDirection:e})).mul(vr))}indirect(e){const{ambientOcclusion:t,irradiance:o,reflectedLight:r}=e.context;r.indirectDiffuse.addAssign(o.mul(u3({diffuseColor:U1}))),r.indirectDiffuse.mulAssign(t)}},Yp=new Pl,em=class extends o0{static get type(){return"MeshLambertNodeMaterial"}constructor(e){super(),this.isMeshLambertNodeMaterial=!0,this.lights=!0,this.setDefaultValues(Yp),this.setValues(e)}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new An(t):null}setupLightingModel(){return new W8(!1)}},tm=new Xl,om=class extends o0{static get type(){return"MeshPhongNodeMaterial"}constructor(e){super(),this.isMeshPhongNodeMaterial=!0,this.lights=!0,this.shininessNode=null,this.specularNode=null,this.setDefaultValues(tm),this.setValues(e)}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new An(t):null}setupLightingModel(){return new W8}setupVariants(){const e=(this.shininessNode?C(this.shininessNode):Ef).max(1e-4);yi.assign(e);const t=this.specularNode||Wf;y2.assign(t)}},rm=B(e=>{if(e.geometry.hasAttribute("normal")===!1)return C(0);const t=ao.dFdx().abs().max(ao.dFdy().abs());return t.x.max(t.y).max(t.z)}),L8=B(e=>{const{roughness:t}=e,o=rm();let r=t.max(.0525);return r=r.add(o),r=r.min(1),r}),sm=B(({alpha:e,dotNL:t,dotNV:o})=>{const r=e.pow2(),s=t.mul(r.add(r.oneMinus().mul(o.pow2())).sqrt()),i=o.mul(r.add(r.oneMinus().mul(t.pow2())).sqrt());return Ze(.5,s.add(i).max(hn))}).setLayout({name:"V_GGX_SmithCorrelated",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNL",type:"float"},{name:"dotNV",type:"float"}]}),im=B(({alphaT:e,alphaB:t,dotTV:o,dotBV:r,dotTL:s,dotBL:i,dotNV:n,dotNL:a})=>{const l=a.mul(U(e.mul(o),t.mul(r),n).length()),u=n.mul(U(e.mul(s),t.mul(i),a).length());return Ze(.5,l.add(u).max(hn))}).setLayout({name:"V_GGX_SmithCorrelated_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotTV",type:"float",qualifier:"in"},{name:"dotBV",type:"float",qualifier:"in"},{name:"dotTL",type:"float",qualifier:"in"},{name:"dotBL",type:"float",qualifier:"in"},{name:"dotNV",type:"float",qualifier:"in"},{name:"dotNL",type:"float",qualifier:"in"}]}),nm=B(({alpha:e,dotNH:t})=>{const o=e.pow2(),r=t.pow2().mul(o.oneMinus()).oneMinus();return o.div(r.pow2()).mul(1/Math.PI)}).setLayout({name:"D_GGX",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNH",type:"float"}]}),am=C(1/Math.PI),lm=B(({alphaT:e,alphaB:t,dotNH:o,dotTH:r,dotBH:s})=>{const i=e.mul(t),n=U(t.mul(r),e.mul(s),i.mul(o)),a=n.dot(n),l=i.div(a);return am.mul(i.mul(l.pow2()))}).setLayout({name:"D_GGX_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotNH",type:"float",qualifier:"in"},{name:"dotTH",type:"float",qualifier:"in"},{name:"dotBH",type:"float",qualifier:"in"}]}),O8=B(({lightDirection:e,f0:t,f90:o,roughness:r,f:s,normalView:i=M1,USE_IRIDESCENCE:n,USE_ANISOTROPY:a})=>{const l=r.pow2(),u=e.add(P1).normalize(),c=i.dot(e).clamp(),d=i.dot(P1).clamp(),h=i.dot(u).clamp(),f=P1.dot(u).clamp();let p=lo({f0:t,f90:o,dotVH:f}),m,b;if(gi(n)&&(p=cn.mix(p,s)),gi(a)){const N=fr.dot(e),v=fr.dot(P1),M=fr.dot(u),T=t3.dot(e),x=t3.dot(P1),S=t3.dot(u);m=im({alphaT:Mi,alphaB:l,dotTV:v,dotBV:x,dotTL:N,dotBL:T,dotNV:d,dotNL:c}),b=lm({alphaT:Mi,alphaB:l,dotNH:h,dotTH:M,dotBH:S})}else m=sm({alpha:l,dotNL:c,dotNV:d}),b=nm({alpha:l,dotNH:h});return p.mul(m).mul(b)}),um=new Uint16Array([12469,15057,12620,14925,13266,14620,13807,14376,14323,13990,14545,13625,14713,13328,14840,12882,14931,12528,14996,12233,15039,11829,15066,11525,15080,11295,15085,10976,15082,10705,15073,10495,13880,14564,13898,14542,13977,14430,14158,14124,14393,13732,14556,13410,14702,12996,14814,12596,14891,12291,14937,11834,14957,11489,14958,11194,14943,10803,14921,10506,14893,10278,14858,9960,14484,14039,14487,14025,14499,13941,14524,13740,14574,13468,14654,13106,14743,12678,14818,12344,14867,11893,14889,11509,14893,11180,14881,10751,14852,10428,14812,10128,14765,9754,14712,9466,14764,13480,14764,13475,14766,13440,14766,13347,14769,13070,14786,12713,14816,12387,14844,11957,14860,11549,14868,11215,14855,10751,14825,10403,14782,10044,14729,9651,14666,9352,14599,9029,14967,12835,14966,12831,14963,12804,14954,12723,14936,12564,14917,12347,14900,11958,14886,11569,14878,11247,14859,10765,14828,10401,14784,10011,14727,9600,14660,9289,14586,8893,14508,8533,15111,12234,15110,12234,15104,12216,15092,12156,15067,12010,15028,11776,14981,11500,14942,11205,14902,10752,14861,10393,14812,9991,14752,9570,14682,9252,14603,8808,14519,8445,14431,8145,15209,11449,15208,11451,15202,11451,15190,11438,15163,11384,15117,11274,15055,10979,14994,10648,14932,10343,14871,9936,14803,9532,14729,9218,14645,8742,14556,8381,14461,8020,14365,7603,15273,10603,15272,10607,15267,10619,15256,10631,15231,10614,15182,10535,15118,10389,15042,10167,14963,9787,14883,9447,14800,9115,14710,8665,14615,8318,14514,7911,14411,7507,14279,7198,15314,9675,15313,9683,15309,9712,15298,9759,15277,9797,15229,9773,15166,9668,15084,9487,14995,9274,14898,8910,14800,8539,14697,8234,14590,7790,14479,7409,14367,7067,14178,6621,15337,8619,15337,8631,15333,8677,15325,8769,15305,8871,15264,8940,15202,8909,15119,8775,15022,8565,14916,8328,14804,8009,14688,7614,14569,7287,14448,6888,14321,6483,14088,6171,15350,7402,15350,7419,15347,7480,15340,7613,15322,7804,15287,7973,15229,8057,15148,8012,15046,7846,14933,7611,14810,7357,14682,7069,14552,6656,14421,6316,14251,5948,14007,5528,15356,5942,15356,5977,15353,6119,15348,6294,15332,6551,15302,6824,15249,7044,15171,7122,15070,7050,14949,6861,14818,6611,14679,6349,14538,6067,14398,5651,14189,5311,13935,4958,15359,4123,15359,4153,15356,4296,15353,4646,15338,5160,15311,5508,15263,5829,15188,6042,15088,6094,14966,6001,14826,5796,14678,5543,14527,5287,14377,4985,14133,4586,13869,4257,15360,1563,15360,1642,15358,2076,15354,2636,15341,3350,15317,4019,15273,4429,15203,4732,15105,4911,14981,4932,14836,4818,14679,4621,14517,4386,14359,4156,14083,3795,13808,3437,15360,122,15360,137,15358,285,15355,636,15344,1274,15322,2177,15281,2765,15215,3223,15120,3451,14995,3569,14846,3567,14681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]),Ue=null,Er=B(({roughness:e,dotNV:t})=>{Ue===null&&(Ue=new P6(um,16,16,c2,se),Ue.name="DFG_LUT",Ue.minFilter=Z1,Ue.magFilter=Z1,Ue.wrapS=Ot,Ue.wrapT=Ot,Ue.generateMipmaps=!1,Ue.needsUpdate=!0);const o=n1(e,t);return O1(Ue,o).rg}),cm=B(({lightDirection:e,f0:t,f90:o,roughness:r,f:s,USE_IRIDESCENCE:i,USE_ANISOTROPY:n})=>{const a=O8({lightDirection:e,f0:t,f90:o,roughness:r,f:s,USE_IRIDESCENCE:i,USE_ANISOTROPY:n}),l=M1.dot(e).clamp(),u=M1.dot(P1).clamp(),c=Er({roughness:r,dotNV:u}),d=Er({roughness:r,dotNV:l}),h=t.mul(c.x).add(o.mul(c.y)),f=t.mul(d.x).add(o.mul(d.y)),p=c.x.add(c.y),m=d.x.add(d.y),b=C(1).sub(p),N=C(1).sub(m),v=t.add(t.oneMinus().mul(.047619)),M=h.mul(f).mul(v).div(C(1).sub(b.mul(N).mul(v).mul(v)).add(hn)),T=b.mul(N),x=M.mul(T);return a.add(x)}),F8=B(e=>{const{dotNV:t,specularColor:o,specularF90:r,roughness:s}=e,i=Er({dotNV:t,roughness:s});return o.mul(i.x).add(r.mul(i.y))}),ka=B(({f:e,f90:t,dotVH:o})=>{const r=o.oneMinus().saturate(),s=r.mul(r),i=r.mul(s,s).clamp(0,.9999);return e.sub(U(t).mul(i)).div(i.oneMinus())}).setLayout({name:"Schlick_to_F0",type:"vec3",inputs:[{name:"f",type:"vec3"},{name:"f90",type:"float"},{name:"dotVH",type:"float"}]}),dm=B(({roughness:e,dotNH:t})=>{const o=e.pow2(),r=C(1).div(o),s=t.pow2().oneMinus().max(.0078125);return C(2).add(r).mul(s.pow(r.mul(.5))).div(2*Math.PI)}).setLayout({name:"D_Charlie",type:"float",inputs:[{name:"roughness",type:"float"},{name:"dotNH",type:"float"}]}),hm=B(({dotNV:e,dotNL:t})=>C(1).div(C(4).mul(t.add(e).sub(t.mul(e))))).setLayout({name:"V_Neubelt",type:"float",inputs:[{name:"dotNV",type:"float"},{name:"dotNL",type:"float"}]}),fm=B(({lightDirection:e})=>{const t=e.add(P1).normalize(),o=M1.dot(e).clamp(),r=M1.dot(P1).clamp(),s=M1.dot(t).clamp(),i=dm({roughness:s2,dotNH:s}),n=hm({dotNV:r,dotNL:o});return Y0.mul(i).mul(n)}),Xa=B(({N:e,V:t,roughness:o})=>{const i=.0078125,n=e.dot(t).saturate(),a=n1(o,n.oneMinus().sqrt());return a.assign(a.mul(.984375).add(i)),a}).setLayout({name:"LTC_Uv",type:"vec2",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"roughness",type:"float"}]}),pm=B(({f:e})=>{const t=e.length();return g0(t.mul(t).add(e.z).div(t.add(1)),0)}).setLayout({name:"LTC_ClippedSphereFormFactor",type:"float",inputs:[{name:"f",type:"vec3"}]}),Oo=B(({v1:e,v2:t})=>{const o=e.dot(t),r=o.abs().toVar(),s=r.mul(.0145206).add(.4965155).mul(r).add(.8543985).toVar(),i=r.add(4.1616724).mul(r).add(3.417594).toVar(),n=s.div(i),a=o.greaterThan(0).select(n,g0(o.mul(o).oneMinus(),1e-7).inverseSqrt().mul(.5).sub(n));return e.cross(t).mul(a)}).setLayout({name:"LTC_EdgeVectorFormFactor",type:"vec3",inputs:[{name:"v1",type:"vec3"},{name:"v2",type:"vec3"}]}),xs=B(({N:e,V:t,P:o,mInv:r,p0:s,p1:i,p2:n,p3:a})=>{const l=i.sub(s).toVar(),u=a.sub(s).toVar(),c=l.cross(u),d=U().toVar();return x1(c.dot(o.sub(s)).greaterThanEqual(0),()=>{const h=t.sub(e.mul(t.dot(e))).normalize(),f=e.cross(h).negate(),p=r.mul(m0(h,f,e).transpose()).toVar(),m=p.mul(s.sub(o)).normalize().toVar(),b=p.mul(i.sub(o)).normalize().toVar(),N=p.mul(n.sub(o)).normalize().toVar(),v=p.mul(a.sub(o)).normalize().toVar(),M=U(0).toVar();M.addAssign(Oo({v1:m,v2:b})),M.addAssign(Oo({v1:b,v2:N})),M.addAssign(Oo({v1:N,v2:v})),M.addAssign(Oo({v1:v,v2:m})),d.assign(U(pm({f:M})))}),d}).setLayout({name:"LTC_Evaluate",type:"vec3",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"P",type:"vec3"},{name:"mInv",type:"mat3"},{name:"p0",type:"vec3"},{name:"p1",type:"vec3"},{name:"p2",type:"vec3"},{name:"p3",type:"vec3"}]}),$r=1/6,P8=e=>d1($r,d1(e,d1(e,e.negate().add(3)).sub(3)).add(1)),Wi=e=>d1($r,d1(e,d1(e,d1(3,e).sub(6))).add(4)),D8=e=>d1($r,d1(e,d1(e,d1(-3,e).add(3)).add(3)).add(1)),Li=e=>d1($r,Vr(e,3)),Ia=e=>P8(e).add(Wi(e)),Ga=e=>D8(e).add(Li(e)),za=e=>P0(-1,Wi(e).div(P8(e).add(Wi(e)))),Va=e=>P0(1,Li(e).div(D8(e).add(Li(e)))),Qa=(e,t,o)=>{const r=e.uvNode,s=d1(r,t.zw).add(.5),i=b2(s),n=qe(s),a=Ia(n.x),l=Ga(n.x),u=za(n.x),c=Va(n.x),d=za(n.y),h=Va(n.y),f=n1(i.x.add(u),i.y.add(d)).sub(.5).mul(t.xy),p=n1(i.x.add(c),i.y.add(d)).sub(.5).mul(t.xy),m=n1(i.x.add(u),i.y.add(h)).sub(.5).mul(t.xy),b=n1(i.x.add(c),i.y.add(h)).sub(.5).mul(t.xy),N=Ia(n.y).mul(P0(a.mul(e.sample(f).level(o)),l.mul(e.sample(p).level(o)))),v=Ga(n.y).mul(P0(a.mul(e.sample(m).level(o)),l.mul(e.sample(b).level(o))));return N.add(v)},mm=B(([e,t])=>{const o=n1(e.size(Q1(t))),r=n1(e.size(Q1(t.add(1)))),s=Ze(1,o),i=Ze(1,r),n=Qa(e,Y(s,o),b2(t)),a=Qa(e,Y(i,r),fn(t));return qe(t).mix(n,a)}),$a=B(([e,t,o,r,s])=>{const i=U(O4(t.negate(),le(e),Ze(1,r))),n=U(ct(s[0].xyz),ct(s[1].xyz),ct(s[2].xyz));return le(i).mul(o.mul(n))}).setLayout({name:"getVolumeTransmissionRay",type:"vec3",inputs:[{name:"n",type:"vec3"},{name:"v",type:"vec3"},{name:"thickness",type:"float"},{name:"ior",type:"float"},{name:"modelMatrix",type:"mat4"}]}),gm=B(([e,t])=>e.mul(Pt(t.mul(2).sub(2),0,1))).setLayout({name:"applyIorToRoughness",type:"float",inputs:[{name:"roughness",type:"float"},{name:"ior",type:"float"}]}),vm=S8(),bm=wp(),Za=B(([e,t,o],{material:r})=>{const s=(r.side===1?vm:bm).sample(e),i=ut(Ti.x).mul(gm(t,o));return mm(s,i)}),qa=B(([e,t,o])=>(x1(o.notEqual(0),()=>{const r=w4(t).negate().div(o);return T4(r.negate().mul(e))}),U(1))).setLayout({name:"volumeAttenuation",type:"vec3",inputs:[{name:"transmissionDistance",type:"float"},{name:"attenuationColor",type:"vec3"},{name:"attenuationDistance",type:"float"}]}),Nm=B(([e,t,o,r,s,i,n,a,l,u,c,d,h,f,p])=>{let m,b;if(p){m=Y().toVar(),b=U().toVar();const x=c.sub(1).mul(p.mul(.025)),S=U(c.sub(x),c,c.add(x));re({start:0,end:3},({i:R})=>{const w=S.element(R),W=$a(e,t,d,w,a),O=n.add(W),F=u.mul(l.mul(Y(O,1))),X=n1(F.xy.div(F.w)).toVar();X.addAssign(1),X.divAssign(2),X.assign(n1(X.x,X.y.oneMinus()));const Q=Za(X,o,w);m.element(R).assign(Q.element(R)),m.a.addAssign(Q.a),b.element(R).assign(r.element(R).mul(qa(ct(W),h,f).element(R)))}),m.a.divAssign(3)}else{const x=$a(e,t,d,c,a),S=n.add(x),R=u.mul(l.mul(Y(S,1))),w=n1(R.xy.div(R.w)).toVar();w.addAssign(1),w.divAssign(2),w.assign(n1(w.x,w.y.oneMinus())),m=Za(w,o,c),b=r.mul(qa(ct(x),h,f))}const N=b.rgb.mul(m.rgb),v=e.dot(t).clamp(),M=U(F8({dotNV:v,specularColor:s,specularF90:i,roughness:o})),T=b.r.add(b.g,b.b).div(3);return Y(M.oneMinus().mul(N),m.a.oneMinus().mul(T).oneMinus())}),Mm=m0(3.2404542,-.969266,.0556434,-1.5371385,1.8760108,-.2040259,-.4985314,.041556,1.0572252),ym=e=>{const t=e.sqrt();return U(1).add(t).div(U(1).sub(t))},Ha=(e,t)=>e.sub(t).div(e.add(t)).pow2(),xm=(e,t)=>{const o=e.mul(2*Math.PI*1e-9),r=U(54856e-17,44201e-17,52481e-17),s=U(1681e3,1795300,2208400),i=U(43278e5,93046e5,66121e5),n=C(9747e-17*Math.sqrt(2*Math.PI*45282e5)).mul(o.mul(2239900).add(t.x).cos()).mul(o.pow2().mul(-45282e5).exp());let a=r.mul(i.mul(2*Math.PI).sqrt()).mul(s.mul(o).add(t).cos()).mul(o.pow2().negate().mul(i).exp());return a=U(a.x.add(n),a.y,a.z).div(10685e-11),Mm.mul(a)},Ja=B(({outsideIOR:e,eta2:t,cosTheta1:o,thinFilmThickness:r,baseF0:s})=>{const i=C1(e,t,we(0,.03,r)),n=e.div(i).pow2().mul(o.pow2().oneMinus()).oneMinus();x1(n.lessThan(0),()=>U(1));const a=n.sqrt(),l=Ha(i,e),u=lo({f0:l,f90:1,dotVH:o}),c=u.oneMinus(),d=i.lessThan(e).select(Math.PI,0),h=C(Math.PI).sub(d),f=ym(s.clamp(0,.9999)),p=Ha(f,i.toVec3()),m=lo({f0:p,f90:1,dotVH:a}),b=U(f.x.lessThan(i).select(Math.PI,0),f.y.lessThan(i).select(Math.PI,0),f.z.lessThan(i).select(Math.PI,0)),N=i.mul(r,a,2),v=U(h).add(b),M=u.mul(m).clamp(1e-5,.9999),T=M.sqrt(),x=c.pow2().mul(m).div(U(1).sub(M)),S=u.add(x).toVar(),R=x.sub(c).toVar();return re({start:1,end:2,condition:"<=",name:"m"},({m:w})=>{R.mulAssign(T);const W=xm(C(w).mul(N),C(w).mul(v)).mul(2);S.addAssign(R.mul(W))}),S.max(U(0))}).setLayout({name:"evalIridescence",type:"vec3",inputs:[{name:"outsideIOR",type:"float"},{name:"eta2",type:"float"},{name:"cosTheta1",type:"float"},{name:"thinFilmThickness",type:"float"},{name:"baseF0",type:"vec3"}]}),w3=B(({normal:e,viewDir:t,roughness:o})=>{const r=e.dot(t).saturate(),s=o.mul(o),i=o.add(.1).reciprocal(),n=C(-1.9362).add(o.mul(1.0678)).add(s.mul(.4573)).sub(i.mul(.8469)),a=C(-.6014).add(o.mul(.5538)).sub(s.mul(.467)).sub(i.mul(.1255));return n.mul(r).add(a).exp().saturate()}),_3=U(.04),Fo=C(1),k8=class extends Qr{constructor(e=!1,t=!1,o=!1,r=!1,s=!1,i=!1){super(),this.clearcoat=e,this.sheen=t,this.iridescence=o,this.anisotropy=r,this.transmission=s,this.dispersion=i,this.clearcoatRadiance=null,this.clearcoatSpecularDirect=null,this.clearcoatSpecularIndirect=null,this.sheenSpecularDirect=null,this.sheenSpecularIndirect=null,this.iridescenceFresnel=null,this.iridescenceF0=null,this.iridescenceF0Dielectric=null,this.iridescenceF0Metallic=null}start(e){if(this.clearcoat===!0&&(this.clearcoatRadiance=U().toVar("clearcoatRadiance"),this.clearcoatSpecularDirect=U().toVar("clearcoatSpecularDirect"),this.clearcoatSpecularIndirect=U().toVar("clearcoatSpecularIndirect")),this.sheen===!0&&(this.sheenSpecularDirect=U().toVar("sheenSpecularDirect"),this.sheenSpecularIndirect=U().toVar("sheenSpecularIndirect")),this.iridescence===!0){const t=M1.dot(P1).clamp(),o=Ja({outsideIOR:C(1),eta2:bi,cosTheta1:t,thinFilmThickness:Ni,baseF0:y2}),r=Ja({outsideIOR:C(1),eta2:bi,cosTheta1:t,thinFilmThickness:Ni,baseF0:U1.rgb});this.iridescenceFresnel=C1(o,r,_t),this.iridescenceF0Dielectric=ka({f:o,f90:1,dotVH:t}),this.iridescenceF0Metallic=ka({f:r,f90:1,dotVH:t}),this.iridescenceF0=C1(this.iridescenceF0Dielectric,this.iridescenceF0Metallic,_t)}if(this.transmission===!0){const t=l3,o=Jh.sub(l3).normalize(),r=v3,s=e.context;s.backdrop=Nm(r,o,nt,J2,j2,K2,t,T2,g3,Ne,pr,b4,M4,N4,this.dispersion?y4:null),s.backdropAlpha=xi,U1.a.mulAssign(C1(1,s.backdrop.a,xi))}super.start(e)}computeMultiscattering(e,t,o,r,s=null){const i=M1.dot(P1).clamp(),n=Er({roughness:nt,dotNV:i}),a=s?cn.mix(r,s):r,l=a.mul(n.x).add(o.mul(n.y)),u=n.x.add(n.y).oneMinus(),c=a.add(a.oneMinus().mul(.047619)),d=l.mul(c).div(u.mul(c).oneMinus());e.addAssign(l),t.addAssign(d.mul(u))}direct({lightDirection:e,lightColor:t,reflectedLight:o}){const r=M1.dot(e).clamp().mul(t).toVar();if(this.sheen===!0){this.sheenSpecularDirect.addAssign(r.mul(fm({lightDirection:e})));const s=w3({normal:M1,viewDir:P1,roughness:s2}),i=w3({normal:M1,viewDir:e,roughness:s2}),n=Y0.r.max(Y0.g).max(Y0.b).mul(s.max(i)).oneMinus();r.mulAssign(n)}if(this.clearcoat===!0){const s=a2.dot(e).clamp().mul(t);this.clearcoatSpecularDirect.addAssign(s.mul(O8({lightDirection:e,f0:_3,f90:Fo,roughness:H3,normalView:a2})))}o.directDiffuse.addAssign(r.mul(u3({diffuseColor:J2}))),o.directSpecular.addAssign(r.mul(cm({lightDirection:e,f0:j2,f90:1,roughness:nt,f:this.iridescenceFresnel,USE_IRIDESCENCE:this.iridescence,USE_ANISOTROPY:this.anisotropy})))}directRectArea({lightColor:e,lightPosition:t,halfWidth:o,halfHeight:r,reflectedLight:s,ltc_1:i,ltc_2:n}){const a=t.add(o).sub(r),l=t.sub(o).sub(r),u=t.sub(o).add(r),c=t.add(o).add(r),d=M1,h=P1,f=t0.toVar(),p=Xa({N:d,V:h,roughness:nt}),m=i.sample(p).toVar(),b=n.sample(p).toVar(),N=m0(U(m.x,0,m.y),U(0,1,0),U(m.z,0,m.w)).toVar(),v=j2.mul(b.x).add(K2.sub(j2).mul(b.y)).toVar();if(s.directSpecular.addAssign(e.mul(v).mul(xs({N:d,V:h,P:f,mInv:N,p0:a,p1:l,p2:u,p3:c}))),s.directDiffuse.addAssign(e.mul(J2).mul(xs({N:d,V:h,P:f,mInv:m0(1,0,0,0,1,0,0,0,1),p0:a,p1:l,p2:u,p3:c}))),this.clearcoat===!0){const M=a2,T=Xa({N:M,V:h,roughness:H3}),x=i.sample(T),S=n.sample(T),R=m0(U(x.x,0,x.y),U(0,1,0),U(x.z,0,x.w)),w=_3.mul(S.x).add(Fo.sub(_3).mul(S.y));this.clearcoatSpecularDirect.addAssign(e.mul(w).mul(xs({N:M,V:h,P:f,mInv:R,p0:a,p1:l,p2:u,p3:c})))}}indirect(e){this.indirectDiffuse(e),this.indirectSpecular(e),this.ambientOcclusion(e)}indirectDiffuse(e){const{irradiance:t,reflectedLight:o}=e.context,r=t.mul(u3({diffuseColor:J2})).toVar();if(this.sheen===!0){const s=w3({normal:M1,viewDir:P1,roughness:s2}),i=Y0.r.max(Y0.g).max(Y0.b).mul(s).oneMinus();r.mulAssign(i)}o.indirectDiffuse.addAssign(r)}indirectSpecular(e){const{radiance:t,iblIrradiance:o,reflectedLight:r}=e.context;if(this.sheen===!0&&this.sheenSpecularIndirect.addAssign(o.mul(Y0,w3({normal:M1,viewDir:P1,roughness:s2}))),this.clearcoat===!0){const m=a2.dot(P1).clamp(),b=F8({dotNV:m,specularColor:_3,specularF90:Fo,roughness:H3});this.clearcoatSpecularIndirect.addAssign(this.clearcoatRadiance.mul(b))}const s=U().toVar("singleScatteringDielectric"),i=U().toVar("multiScatteringDielectric"),n=U().toVar("singleScatteringMetallic"),a=U().toVar("multiScatteringMetallic");this.computeMultiscattering(s,i,K2,y2,this.iridescenceF0Dielectric),this.computeMultiscattering(n,a,K2,U1.rgb,this.iridescenceF0Metallic);const l=C1(s,n,_t),u=C1(i,a,_t),c=s.add(i),d=J2.mul(c.oneMinus()),h=o.mul(1/Math.PI),f=t.mul(l).add(u.mul(h)).toVar(),p=d.mul(h).toVar();if(this.sheen===!0){const m=w3({normal:M1,viewDir:P1,roughness:s2}),b=Y0.r.max(Y0.g).max(Y0.b).mul(m).oneMinus();f.mulAssign(b),p.mulAssign(b)}r.indirectSpecular.addAssign(f),r.indirectDiffuse.addAssign(p)}ambientOcclusion(e){const{ambientOcclusion:t,reflectedLight:o}=e.context,r=M1.dot(P1).clamp().add(t),s=nt.mul(-16).oneMinus().negate().exp2(),i=t.sub(r.pow(s).oneMinus()).clamp();this.clearcoat===!0&&this.clearcoatSpecularIndirect.mulAssign(t),this.sheen===!0&&this.sheenSpecularIndirect.mulAssign(t),o.indirectDiffuse.mulAssign(t),o.indirectSpecular.mulAssign(i)}finish({context:e}){const{outgoingLight:t}=e;if(this.clearcoat===!0){const o=a2.dot(P1).clamp(),r=lo({dotVH:o,f0:_3,f90:Fo}),s=t.mul(vi.mul(r).oneMinus()).add(this.clearcoatSpecularDirect.add(this.clearcoatSpecularIndirect).mul(vi));t.assign(s)}if(this.sheen===!0){const o=t.add(this.sheenSpecularDirect,this.sheenSpecularIndirect.mul(1/Math.PI));t.assign(o)}}},ja=C(1),Oi=C(-2),Po=C(.8),Ss=C(-1),Do=C(.4),Ts=C(2),ko=C(.305),ws=C(3),Ka=C(.21),Sm=C(4),Ya=C(4),Tm=C(16),wm=B(([e])=>{const t=U(Q0(e)).toVar(),o=C(-1).toVar();return x1(t.x.greaterThan(t.z),()=>{x1(t.x.greaterThan(t.y),()=>{o.assign($0(e.x.greaterThan(0),0,3))}).Else(()=>{o.assign($0(e.y.greaterThan(0),1,4))})}).Else(()=>{x1(t.z.greaterThan(t.y),()=>{o.assign($0(e.z.greaterThan(0),2,5))}).Else(()=>{o.assign($0(e.y.greaterThan(0),1,4))})}),o}).setLayout({name:"getFace",type:"float",inputs:[{name:"direction",type:"vec3"}]}),_m=B(([e,t])=>{const o=n1().toVar();return x1(t.equal(0),()=>{o.assign(n1(e.z,e.y).div(Q0(e.x)))}).ElseIf(t.equal(1),()=>{o.assign(n1(e.x.negate(),e.z.negate()).div(Q0(e.y)))}).ElseIf(t.equal(2),()=>{o.assign(n1(e.x.negate(),e.y).div(Q0(e.z)))}).ElseIf(t.equal(3),()=>{o.assign(n1(e.z.negate(),e.y).div(Q0(e.x)))}).ElseIf(t.equal(4),()=>{o.assign(n1(e.x.negate(),e.z).div(Q0(e.y)))}).Else(()=>{o.assign(n1(e.x,e.y).div(Q0(e.z)))}),d1(.5,o.add(1))}).setLayout({name:"getUV",type:"vec2",inputs:[{name:"direction",type:"vec3"},{name:"face",type:"float"}]}),Am=B(([e])=>{const t=C(0).toVar();return x1(e.greaterThanEqual(Po),()=>{t.assign(ja.sub(e).mul(Ss.sub(Oi)).div(ja.sub(Po)).add(Oi))}).ElseIf(e.greaterThanEqual(Do),()=>{t.assign(Po.sub(e).mul(Ts.sub(Ss)).div(Po.sub(Do)).add(Ss))}).ElseIf(e.greaterThanEqual(ko),()=>{t.assign(Do.sub(e).mul(ws.sub(Ts)).div(Do.sub(ko)).add(Ts))}).ElseIf(e.greaterThanEqual(Ka),()=>{t.assign(ko.sub(e).mul(Sm.sub(ws)).div(ko.sub(Ka)).add(ws))}).Else(()=>{t.assign(C(-2).mul(ut(d1(1.16,e))))}),t}).setLayout({name:"roughnessToMip",type:"float",inputs:[{name:"roughness",type:"float"}]}),Cm=B(([e,t])=>{const o=e.toVar();o.assign(d1(2,o).sub(1));const r=U(o,1).toVar();return x1(t.equal(0),()=>{r.assign(r.zyx)}).ElseIf(t.equal(1),()=>{r.assign(r.xzy),r.xz.mulAssign(-1)}).ElseIf(t.equal(2),()=>{r.x.mulAssign(-1)}).ElseIf(t.equal(3),()=>{r.assign(r.zyx),r.xz.mulAssign(-1)}).ElseIf(t.equal(4),()=>{r.assign(r.xzy),r.xy.mulAssign(-1)}).ElseIf(t.equal(5),()=>{r.z.mulAssign(-1)}),r}).setLayout({name:"getDirection",type:"vec3",inputs:[{name:"uv",type:"vec2"},{name:"face",type:"float"}]}),Rm=B(([e,t,o,r,s,i])=>{const n=C(o),a=U(t),l=Pt(Am(n),Oi,i),u=qe(l),c=b2(l),d=U(uo(e,a,c,r,s,i)).toVar();return x1(u.notEqual(0),()=>{const h=U(uo(e,a,c.add(1),r,s,i)).toVar();d.assign(C1(d,h,u))}),d}),uo=B(([e,t,o,r,s,i])=>{const n=C(o).toVar(),a=U(t),l=C(wm(a)).toVar(),u=C(g0(Ya.sub(n),0)).toVar();n.assign(g0(n,Ya));const c=C(so(n)).toVar(),d=n1(_m(a,l).mul(c.sub(2)).add(1)).toVar();return x1(l.greaterThan(2),()=>{d.y.addAssign(c),l.subAssign(3)}),d.x.addAssign(l.mul(c)),d.x.addAssign(u.mul(d1(3,Tm))),d.y.addAssign(d1(4,so(i).sub(c))),d.x.mulAssign(r),d.y.mulAssign(s),e.sample(d).grad(n1(),n1())}),_s=B(({envMap:e,mipInt:t,outputDirection:o,theta:r,axis:s,CUBEUV_TEXEL_WIDTH:i,CUBEUV_TEXEL_HEIGHT:n,CUBEUV_MAX_MIP:a})=>{const l=Pe(r),u=o.mul(l).add(s.cross(o).mul(V0(r))).add(s.mul(s.dot(o).mul(l.oneMinus())));return uo(e,u,t,i,n,a)}),Bm=B(({n:e,latitudinal:t,poleAxis:o,outputDirection:r,weights:s,samples:i,dTheta:n,mipInt:a,envMap:l,CUBEUV_TEXEL_WIDTH:u,CUBEUV_TEXEL_HEIGHT:c,CUBEUV_MAX_MIP:d})=>{const h=U($0(t,o,S2(o,r))).toVar();x1(h.equal(U(0)),()=>{h.assign(U(r.z,0,r.x.negate()))}),h.assign(le(h));const f=U().toVar();return f.addAssign(s.element(0).mul(_s({theta:0,axis:h,outputDirection:r,mipInt:a,envMap:l,CUBEUV_TEXEL_WIDTH:u,CUBEUV_TEXEL_HEIGHT:c,CUBEUV_MAX_MIP:d}))),re({start:Q1(1),end:e},({i:p})=>{x1(p.greaterThanEqual(i),()=>{vp()});const m=C(n.mul(C(p))).toVar();f.addAssign(s.element(p).mul(_s({theta:m.mul(-1),axis:h,outputDirection:r,mipInt:a,envMap:l,CUBEUV_TEXEL_WIDTH:u,CUBEUV_TEXEL_HEIGHT:c,CUBEUV_MAX_MIP:d}))),f.addAssign(s.element(p).mul(_s({theta:m,axis:h,outputDirection:r,mipInt:a,envMap:l,CUBEUV_TEXEL_WIDTH:u,CUBEUV_TEXEL_HEIGHT:c,CUBEUV_MAX_MIP:d})))}),Y(f,1)}),Em=B(([e])=>{const t=m1(e).toVar();return t.assign(t.shiftLeft(m1(16)).bitOr(t.shiftRight(m1(16)))),t.assign(t.bitAnd(m1(1431655765)).shiftLeft(m1(1)).bitOr(t.bitAnd(m1(2863311530)).shiftRight(m1(1)))),t.assign(t.bitAnd(m1(858993459)).shiftLeft(m1(2)).bitOr(t.bitAnd(m1(3435973836)).shiftRight(m1(2)))),t.assign(t.bitAnd(m1(252645135)).shiftLeft(m1(4)).bitOr(t.bitAnd(m1(4042322160)).shiftRight(m1(4)))),t.assign(t.bitAnd(m1(16711935)).shiftLeft(m1(8)).bitOr(t.bitAnd(m1(4278255360)).shiftRight(m1(8)))),C(t).mul(23283064365386963e-26)}),Um=B(([e,t])=>n1(C(e).div(C(t)),Em(e))),Wm=B(([e,t,o])=>{const r=o.mul(o).toConst(),s=U(1,0,0).toConst(),i=S2(t,s).toConst(),n=Lt(e.x).toConst(),a=d1(2,3.14159265359).mul(e.y).toConst(),l=n.mul(Pe(a)).toConst(),u=n.mul(V0(a)).toVar(),c=d1(.5,t.z.add(1)).toConst();u.assign(c.oneMinus().mul(Lt(l.mul(l).oneMinus())).add(c.mul(u)));const d=s.mul(l).add(i.mul(u)).add(t.mul(Lt(g0(0,l.mul(l).add(u.mul(u)).oneMinus()))));return le(U(r.mul(d.x),r.mul(d.y),g0(0,d.z)))}),Lm=B(({roughness:e,mipInt:t,envMap:o,N_immutable:r,GGX_SAMPLES:s,CUBEUV_TEXEL_WIDTH:i,CUBEUV_TEXEL_HEIGHT:n,CUBEUV_MAX_MIP:a})=>{const l=U(r).toVar(),u=U(0).toVar(),c=C(0).toVar();return x1(e.lessThan(.001),()=>{u.assign(uo(o,l,t,i,n,a))}).Else(()=>{const d=$0(Q0(l.z).lessThan(.999),U(0,0,1),U(1,0,0)),h=le(S2(d,l)).toVar(),f=S2(l,h).toVar();re({start:m1(0),end:s},({i:p})=>{const m=Um(p,s),b=Wm(m,U(0,0,1),e),N=le(h.mul(b.x).add(f.mul(b.y)).add(l.mul(b.z))),v=le(N.mul(x2(l,N).mul(2)).sub(l)),M=g0(x2(l,v),0);x1(M.greaterThan(0),()=>{const T=uo(o,v,t,i,n,a);u.addAssign(T.mul(M)),c.addAssign(M)})}),x1(c.greaterThan(0),()=>{u.assign(u.div(c))})}),Y(u,1)}),Ct=4,e7=[.125,.215,.35,.446,.526,.582],l2=20,Om=512,A3=new fo(-1,1,1,-1,0,1),Fm=new N2(90,1),t7=new de,As=null,Cs=0,Rs=0,Pm=new z,Ur=new WeakMap,Dm=[3,1,5,0,4,2],Bs=Cm(U2(),ne("faceIndex")).normalize(),Zr=U(Bs.x,Bs.y,Bs.z),km=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._sizeLods=[],this._sigmas=[],this._lodMeshes=[],this._blurMaterial=null,this._ggxMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._backgroundBox=null}get _hasInitialized(){return this._renderer.hasInitialized()}fromScene(e,t=0,o=.1,r=100,s={}){const{size:i=256,position:n=Pm,renderTarget:a=null}=s;if(this._setSize(i),this._hasInitialized===!1)throw new Error('THREE.PMREMGenerator: .fromScene() called before the backend is initialized. Use "await renderer.init();" before using this method.');As=this._renderer.getRenderTarget(),Cs=this._renderer.getActiveCubeFace(),Rs=this._renderer.getActiveMipmapLevel();const l=a||this._allocateTarget(!0);return this._init(l),this._sceneToCubeUV(e,o,r,l,n),t>0&&this._blur(l,0,0,t),this._applyPMREM(l),this._cleanup(l),l}async fromSceneAsync(e,t=0,o=.1,r=100,s={}){return I1('PMREMGenerator: ".fromSceneAsync()" is deprecated. Use "await renderer.init()" instead.'),await this._renderer.init(),this.fromScene(e,t,o,r,s)}fromEquirectangular(e,t=null){if(this._hasInitialized===!1)throw new Error('THREE.PMREMGenerator: .fromEquirectangular() called before the backend is initialized. Use "await renderer.init();" before using this method.');return this._fromTexture(e,t)}async fromEquirectangularAsync(e,t=null){return I1('PMREMGenerator: ".fromEquirectangularAsync()" is deprecated. Use "await renderer.init()" instead.'),await this._renderer.init(),this._fromTexture(e,t)}fromCubemap(e,t=null){if(this._hasInitialized===!1)throw new Error('THREE.PMREMGenerator: .fromCubemap() called before the backend is initialized. Use "await renderer.init();" before using this method.');return this._fromTexture(e,t)}async fromCubemapAsync(e,t=null){return I1('PMREMGenerator: ".fromCubemapAsync()" is deprecated. Use "await renderer.init()" instead.'),await this._renderer.init(),this._fromTexture(e,t)}async compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=r7(),await this._compileMaterial(this._cubemapMaterial))}async compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=s7(),await this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSizeFromTexture(e){e.mapping===301||e.mapping===302?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4)}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._ggxMaterial!==null&&this._ggxMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?b:0,b,b),l.render(e,i)}l.autoClear=u,e.background=f}_textureToCubeUV(e,t){const o=this._renderer,r=e.mapping===301||e.mapping===302;r?this._cubemapMaterial===null&&(this._cubemapMaterial=r7(e)):this._equirectMaterial===null&&(this._equirectMaterial=s7(e));const s=r?this._cubemapMaterial:this._equirectMaterial;s.fragmentNode.value=e;const i=this._lodMeshes[0];i.material=s;const n=this._cubeSize;this._setViewport(t,0,0,3*n,2*n),o.setRenderTarget(t),o.render(i,A3)}_applyPMREM(e){const t=this._renderer,o=t.autoClear;t.autoClear=!1;const r=this._lodMeshes.length;for(let s=1;sd-Ct?o-d+Ct:0),p=4*(this._cubeSize-h);e.texture.frame=(e.texture.frame||0)+1,a.envMap.value=e.texture,a.roughness.value=c,a.mipInt.value=d-t,this._setViewport(s,f,p,3*h,2*h),r.setRenderTarget(s),r.render(n,A3),s.texture.frame=(s.texture.frame||0)+1,a.envMap.value=s.texture,a.roughness.value=0,a.mipInt.value=d-o,this._setViewport(e,f,p,3*h,2*h),r.setRenderTarget(e),r.render(n,A3)}_blur(e,t,o,r,s){const i=this._pingPongRenderTarget;this._halfBlur(e,i,t,o,r,"latitudinal",s),this._halfBlur(i,e,o,o,r,"longitudinal",s)}_halfBlur(e,t,o,r,s,i,n){const a=this._renderer,l=this._blurMaterial;i!=="latitudinal"&&i!=="longitudinal"&&G("blur direction must be either latitudinal or longitudinal!");const u=3,c=this._lodMeshes[r];c.material=l;const d=Ur.get(l),h=this._sizeLods[o]-1,f=isFinite(s)?Math.PI/(2*h):2*Math.PI/(2*l2-1),p=s/f,m=isFinite(s)?1+Math.floor(u*p):l2;m>l2&&j(`sigmaRadians, ${s}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${l2}`);const b=[];let N=0;for(let S=0;Sv-Ct?r-v+Ct:0),x=4*(this._cubeSize-M);this._setViewport(t,T,x,3*M,2*M),a.setRenderTarget(t),a.render(c,A3)}_setViewport(e,t,o,r,s){this._renderer.isWebGLRenderer?(e.viewport.set(t,e.height-s-o,r,s),e.scissor.set(t,e.height-s-o,r,s)):(e.viewport.set(t,o,r,s),e.scissor.set(t,o,r,s))}};function Xm(e){const t=[],o=[],r=[];let s=e;const i=e-Ct+1+e7.length;for(let n=0;ne-Ct?l=e7[n-e+Ct-1]:n===0&&(l=0),o.push(l);const u=1/(a-2),c=-u,d=1+u,h=[c,c,d,c,d,d,c,c,d,d,c,d],f=6,p=6,m=3,b=2,N=1,v=new Float32Array(m*p*f),M=new Float32Array(b*p*f),T=new Float32Array(N*p*f);for(let S=0;S2?0:-1,W=[R,w,0,R+2/3,w,0,R+2/3,w+1,0,R,w,0,R+2/3,w+1,0,R,w+1,0],O=Dm[S];v.set(W,m*p*O),M.set(h,b*p*O);const F=[O,O,O,O,O,O];T.set(F,N*p*O)}const x=new i3;x.setAttribute("position",new p2(v,m)),x.setAttribute("uv",new p2(M,b)),x.setAttribute("faceIndex",new p2(T,N)),r.push(new $e(x,null)),s>Ct&&s--}return{lodMeshes:r,sizeLods:t,sigmas:o}}function o7(e,t,o){const r=new Xt(e,t,{magFilter:Z1,minFilter:Z1,generateMipmaps:!1,type:se,format:Ge,colorSpace:Zi,depthBuffer:o});return r.texture.mapping=306,r.texture.name="PMREM.cubeUv",r.texture.isPMREMTexture=!0,r.scissorTest=!0,r}function qr(e){const t=new o0;return t.depthTest=!1,t.depthWrite=!1,t.blending=0,t.name=`PMREM_${e}`,t}function Im(e,t,o){const r=W0(new Array(l2).fill(0)),s=o1(new z(0,1,0)),i=o1(0),n=C(l2),a=o1(0),l=o1(1),u=O1(),c=o1(0),d=C(1/t),h=C(1/o),f=C(e),p={n,latitudinal:a,weights:r,poleAxis:s,outputDirection:Zr,dTheta:i,samples:l,envMap:u,mipInt:c,CUBEUV_TEXEL_WIDTH:d,CUBEUV_TEXEL_HEIGHT:h,CUBEUV_MAX_MIP:f},m=qr("blur");return m.fragmentNode=Bm({...p,latitudinal:a.equal(1)}),Ur.set(m,p),m}function Gm(e,t,o){const r={envMap:O1(),roughness:o1(0),mipInt:o1(0),CUBEUV_TEXEL_WIDTH:C(1/t),CUBEUV_TEXEL_HEIGHT:C(1/o),CUBEUV_MAX_MIP:C(e)},s=qr("ggx");return s.fragmentNode=Lm({...r,N_immutable:Zr,GGX_SAMPLES:m1(Om)}),Ur.set(s,r),s}function r7(e){const t=qr("cubemap");return t.fragmentNode=L0(e,Zr),t}function s7(e){const t=qr("equirect");return t.fragmentNode=O1(e,C8(Zr),0),t}var i7=new WeakMap;function zm(e){const t=Math.log2(e)-2,o=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,t),112)),texelHeight:o,maxMip:t}}function Vm(e,t,o){const r=Qm(t);let s=r.get(e);if((s!==void 0?s.pmremVersion:-1)!==e.pmremVersion){const i=e.image;if(e.isCubeTexture)if(Zm(i))s=o.fromCubemap(e,s);else return null;else if(qm(i))s=o.fromEquirectangular(e,s);else return null;if(s.pmremVersion=e.pmremVersion,r.has(e)===!1){const n=()=>{e.removeEventListener("dispose",n);const a=r.get(e);a!==void 0&&(a.dispose(),r.delete(e))};e.addEventListener("dispose",n)}r.set(e,s)}return s.texture}function Qm(e){let t=i7.get(e);return t===void 0&&(t=new WeakMap,i7.set(e,t)),t}var $m=class extends s0{static get type(){return"PMREMNode"}constructor(e,t=null,o=null){super("vec3"),this._value=e,this._pmrem=null,this.uvNode=t,this.levelNode=o,this._generator=null;const r=new po;r.isRenderTargetTexture=!0,this._texture=O1(r),this._width=o1(0),this._height=o1(0),this._maxMip=o1(0),this.updateBeforeType=u1.RENDER}set value(e){this._value=e,this._pmrem=null}get value(){return this._value}updateFromTexture(e){const t=zm(e.image.height);this._texture.value=e,this._width.value=t.texelWidth,this._height.value=t.texelHeight,this._maxMip.value=t.maxMip}updateBefore(e){let t=this._pmrem;const o=t?t.pmremVersion:-1,r=this._value;o!==r.pmremVersion&&(r.isPMREMTexture===!0||r.mapping===306?t=r:t=Vm(r,e.renderer,this._generator),t!==null&&(this._pmrem=t,this.updateFromTexture(t)))}setup(e){this._generator===null&&(this._generator=new km(e.renderer)),this.updateBefore(e);let t=this.uvNode;t===null&&e.context.getUV&&(t=e.context.getUV(this,e)),t=this._pmrem.isRenderTargetTexture?wi.mul(U(t.x,t.y.negate(),t.z)):wi.mul(t);let o=this.levelNode;return o===null&&e.context.getTextureLevel&&(o=e.context.getTextureLevel(this)),Rm(this._texture,t,o,this._width,this._height,this._maxMip)}dispose(){super.dispose(),this._generator!==null&&this._generator.dispose()}};function Zm(e){if(e==null)return!1;let t=0;const o=6;for(let r=0;r0}var X8=G1($m).setParameterLength(1,3),n7=new WeakMap,Hm=class extends b3{static get type(){return"EnvironmentNode"}constructor(e=null){super(),this.envNode=e}setup(e){const{material:t}=e;let o=this.envNode;if(o.isTextureNode||o.isMaterialReferenceNode){const u=o.isTextureNode?o.value:t[o.property],c=this._getPMREMNodeCache(e.renderer);let d=c.get(u);d===void 0&&(d=X8(u),c.set(u,d)),o=d}const r=t.useAnisotropy===!0||t.anisotropy>0?xf:M1,s=o.context(a7(nt,r)).mul(bs),i=o.context(Jm(v3)).mul(Math.PI).mul(bs),n=j3(s),a=j3(i);e.context.radiance.addAssign(n),e.context.iblIrradiance.addAssign(a);const l=e.context.lightingModel.clearcoatRadiance;if(l){const u=o.context(a7(H3,a2)).mul(bs),c=j3(u);l.addAssign(c)}}_getPMREMNodeCache(e){let t=n7.get(e);return t===void 0&&(t=new WeakMap,n7.set(e,t)),t}},a7=(e,t)=>{let o=null;return{getUV:()=>(o===null&&(o=P1.negate().reflect(t),o=W4(e).mix(o,t).normalize(),o=o.transformDirection(xn)),o),getTextureLevel:()=>e}},Jm=e=>({getUV:()=>e,getTextureLevel:()=>C(1)}),jm=new m9,I8=class extends o0{static get type(){return"MeshStandardNodeMaterial"}constructor(e){super(),this.isMeshStandardNodeMaterial=!0,this.lights=!0,this.emissiveNode=null,this.metalnessNode=null,this.roughnessNode=null,this.setDefaultValues(jm),this.setValues(e)}setupEnvironment(e){let t=super.setupEnvironment(e);return t===null&&e.environmentNode&&(t=e.environmentNode),t?new Hm(t):null}setupLightingModel(){return new k8}setupSpecular(){const e=C1(U(.04),U1.rgb,_t);y2.assign(U(.04)),j2.assign(e),K2.assign(1)}setupVariants(){const e=this.metalnessNode?C(this.metalnessNode):Ff;_t.assign(e);let t=this.roughnessNode?C(this.roughnessNode):Of;t=L8({roughness:t}),nt.assign(t),this.setupSpecular(),J2.assign(U1.rgb.mul(e.oneMinus()))}},Km=new z9,Ym=class extends I8{static get type(){return"MeshPhysicalNodeMaterial"}constructor(e){super(),this.isMeshPhysicalNodeMaterial=!0,this.clearcoatNode=null,this.clearcoatRoughnessNode=null,this.clearcoatNormalNode=null,this.sheenNode=null,this.sheenRoughnessNode=null,this.iridescenceNode=null,this.iridescenceIORNode=null,this.iridescenceThicknessNode=null,this.specularIntensityNode=null,this.specularColorNode=null,this.iorNode=null,this.transmissionNode=null,this.thicknessNode=null,this.attenuationDistanceNode=null,this.attenuationColorNode=null,this.dispersionNode=null,this.anisotropyNode=null,this.setDefaultValues(Km),this.setValues(e)}get useClearcoat(){return this.clearcoat>0||this.clearcoatNode!==null}get useIridescence(){return this.iridescence>0||this.iridescenceNode!==null}get useSheen(){return this.sheen>0||this.sheenNode!==null}get useAnisotropy(){return this.anisotropy>0||this.anisotropyNode!==null}get useTransmission(){return this.transmission>0||this.transmissionNode!==null}get useDispersion(){return this.dispersion>0||this.dispersionNode!==null}setupSpecular(){const e=this.iorNode?C(this.iorNode):Jf;pr.assign(e),y2.assign(n3(U4(pr.sub(1).div(pr.add(1))).mul(Lf),U(1)).mul(Ra)),j2.assign(C1(y2,U1.rgb,_t)),K2.assign(C1(Ra,1,_t))}setupLightingModel(){return new k8(this.useClearcoat,this.useSheen,this.useIridescence,this.useAnisotropy,this.useTransmission,this.useDispersion)}setupVariants(e){if(super.setupVariants(e),this.useClearcoat){const t=this.clearcoatNode?C(this.clearcoatNode):Df,o=this.clearcoatRoughnessNode?C(this.clearcoatRoughnessNode):kf;vi.assign(t),H3.assign(L8({roughness:o}))}if(this.useSheen){const t=this.sheenNode?U(this.sheenNode):Gf,o=this.sheenRoughnessNode?C(this.sheenRoughnessNode):zf;Y0.assign(t),s2.assign(o)}if(this.useIridescence){const t=this.iridescenceNode?C(this.iridescenceNode):Qf,o=this.iridescenceIORNode?C(this.iridescenceIORNode):$f,r=this.iridescenceThicknessNode?C(this.iridescenceThicknessNode):Zf;cn.assign(t),bi.assign(o),Ni.assign(r)}if(this.useAnisotropy){const t=(this.anisotropyNode?n1(this.anisotropyNode):Vf).toVar();Yt.assign(t.length()),x1(Yt.equal(0),()=>{t.assign(n1(1,0))}).Else(()=>{t.divAssign(n1(Yt)),Yt.assign(Yt.saturate())}),Mi.assign(Yt.pow2().mix(nt.pow2(),1)),fr.assign(G3[0].mul(t.x).add(G3[1].mul(t.y))),t3.assign(G3[1].mul(t.x).sub(G3[0].mul(t.y)))}if(this.useTransmission){const t=this.transmissionNode?C(this.transmissionNode):qf,o=this.thicknessNode?C(this.thicknessNode):Hf,r=this.attenuationDistanceNode?C(this.attenuationDistanceNode):jf,s=this.attenuationColorNode?U(this.attenuationColorNode):Kf;if(xi.assign(t),b4.assign(o),N4.assign(r),M4.assign(s),this.useDispersion){const i=this.dispersionNode?C(this.dispersionNode):ep;y4.assign(i)}}}setupClearcoatNormal(){return this.clearcoatNormalNode?U(this.clearcoatNormalNode):Xf}setup(e){e.context.setupClearcoatNormal=()=>r3(this.setupClearcoatNormal(e),"NORMAL","vec3"),super.setup(e)}},eg=B(({normal:e,lightDirection:t,builder:o})=>{const r=e.dot(t),s=n1(r.mul(.5).add(.5),0);if(o.material.gradientMap){const i=Tt("gradientMap","texture").context({getUV:()=>s});return U(i.r)}else{const i=s.fwidth().mul(.5);return C1(U(.7),U(1),we(C(.7).sub(i.x),C(.7).add(i.x),s.x))}}),tg=class extends Qr{direct({lightDirection:e,lightColor:t,reflectedLight:o},r){const s=eg({normal:K4,lightDirection:e,builder:r}).mul(t);o.directDiffuse.addAssign(s.mul(u3({diffuseColor:U1.rgb})))}indirect(e){const{ambientOcclusion:t,irradiance:o,reflectedLight:r}=e.context;r.indirectDiffuse.addAssign(o.mul(u3({diffuseColor:U1}))),r.indirectDiffuse.mulAssign(t)}},og=new kl,rg=class extends o0{static get type(){return"MeshToonNodeMaterial"}constructor(e){super(),this.isMeshToonNodeMaterial=!0,this.lights=!0,this.setDefaultValues(og),this.setValues(e)}setupLightingModel(){return new tg}},sg=B(()=>{const e=U(P1.z,0,P1.x.negate()).normalize(),t=P1.cross(e);return n1(e.dot(M1),t.dot(M1)).mul(.495).add(.5)}).once(["NORMAL","VERTEX"])().toVar("matcapUV"),ig=new zl,ng=class extends o0{static get type(){return"MeshMatcapNodeMaterial"}constructor(e){super(),this.isMeshMatcapNodeMaterial=!0,this.setDefaultValues(ig),this.setValues(e)}setupVariants(e){const t=sg;let o;e.material.matcap?o=Tt("matcap","texture").context({getUV:()=>t}):o=U(C1(.2,.8,t.y)),U1.rgb.mulAssign(o.rgb)}},ag=class extends s0{static get type(){return"RotateNode"}constructor(e,t){super(),this.positionNode=e,this.rotationNode=t}generateNodeType(e){return this.positionNode.getNodeType(e)}setup(e){const{rotationNode:t,positionNode:o}=this;if(this.getNodeType(e)==="vec2"){const r=t.cos(),s=t.sin();return un(r,s,s.negate(),r).mul(o)}else{const r=t,s=v2(Y(1,0,0,0),Y(0,Pe(r.x),V0(r.x).negate(),0),Y(0,V0(r.x),Pe(r.x),0),Y(0,0,0,1)),i=v2(Y(Pe(r.y),0,V0(r.y),0),Y(0,1,0,0),Y(V0(r.y).negate(),0,Pe(r.y),0),Y(0,0,0,1)),n=v2(Y(Pe(r.z),V0(r.z).negate(),0,0),Y(V0(r.z),Pe(r.z),0,0),Y(0,0,1,0),Y(0,0,0,1));return s.mul(i).mul(n).mul(Y(o,1)).xyz}}},G8=G1(ag).setParameterLength(2),lg=new T9,z8=class extends o0{static get type(){return"SpriteNodeMaterial"}constructor(e){super(),this.isSpriteNodeMaterial=!0,this._useSizeAttenuation=!0,this.positionNode=null,this.rotationNode=null,this.scaleNode=null,this.transparent=!0,this.setDefaultValues(lg),this.setValues(e)}setupPositionView(e){const{object:t,camera:o}=e,{positionNode:r,rotationNode:s,scaleNode:i,sizeAttenuation:n}=this,a=w2.mul(U(r||0));let l=n1(T2[0].xyz.length(),T2[1].xyz.length());i!==null&&(l=l.mul(n1(i))),o.isPerspectiveCamera&&n===!1&&(l=l.mul(a.z.negate()));let u=_0.xy;if(t.center&&t.center.isVector2===!0){const h=bh("center","vec2",t);u=u.sub(h.sub(.5))}u=u.mul(l);const c=C(s||If),d=G8(u,c);return Y(a.xy.add(d),a.zw)}get sizeAttenuation(){return this._useSizeAttenuation}set sizeAttenuation(e){this._useSizeAttenuation!==e&&(this._useSizeAttenuation=e,this.needsUpdate=!0)}},ug=new M9,cg=new p1,dg=class extends z8{static get type(){return"PointsNodeMaterial"}constructor(e){super(),this.sizeNode=null,this.isPointsNodeMaterial=!0,this.setDefaultValues(ug),this.setValues(e)}setupPositionView(){const{positionNode:e}=this;return w2.mul(U(e||a0)).xyz}setupVertexSprite(e){const{material:t,camera:o}=e,{rotationNode:r,scaleNode:s,sizeNode:i,sizeAttenuation:n}=this;let a=super.setupVertex(e);if(t.isNodeMaterial!==!0)return a;let l=i!==null?n1(i):Yf;l=l.mul(H4),o.isPerspectiveCamera&&n===!0&&(l=l.mul(hg.div(t0.z.negate()))),s&&s.isNode&&(l=l.mul(n1(s)));let u=_0.xy;if(r&&r.isNode){const c=C(r);u=G8(u,c)}return u=u.mul(l),u=u.div(qh.div(2)),u=u.mul(a.w),a=a.add(Y(u,0,0)),a}setupVertex(e){return e.object.isPoints?super.setupVertex(e):this.setupVertexSprite(e)}get alphaToCoverage(){return this._useAlphaToCoverage}set alphaToCoverage(e){this._useAlphaToCoverage!==e&&(this._useAlphaToCoverage=e,this.needsUpdate=!0)}},hg=o1(1).onFrameUpdate(function({renderer:e}){const t=e.getSize(cg);this.value=.5*t.y}),fg=class extends Qr{constructor(){super(),this.shadowNode=C(1).toVar("shadowMask")}direct({lightNode:e}){e.shadowNode!==null&&this.shadowNode.mulAssign(e.shadowNode)}finish({context:e}){U1.a.mulAssign(this.shadowNode.oneMinus()),e.outgoingLight.rgb.assign(U1.rgb)}},pg=new U9,mg=class extends o0{static get type(){return"ShadowNodeMaterial"}constructor(e){super(),this.isShadowNodeMaterial=!0,this.lights=!0,this.transparent=!0,this.setDefaultValues(pg),this.setValues(e)}setupLightingModel(){return new fg}},qT=It("vec3"),HT=It("vec3"),JT=It("vec3"),gg=class{constructor(e,t,o){this.renderer=e,this.nodes=t,this.info=o,this._context=typeof self<"u"?self:null,this._animationLoop=null,this._requestId=null}start(){const e=(t,o)=>{this._requestId=this._context.requestAnimationFrame(e),this.info.autoReset===!0&&this.info.reset(),this.nodes.nodeFrame.update(),this.info.frame=this.nodes.nodeFrame.frameId,this.renderer._inspector.begin(),this._animationLoop!==null&&this._animationLoop(t,o),this.renderer._inspector.finish()};e()}stop(){this._context!==null&&this._context.cancelAnimationFrame(this._requestId),this._requestId=null}getAnimationLoop(){return this._animationLoop}setAnimationLoop(e){this._animationLoop=e}getContext(){return this._context}setContext(e){this._context=e}dispose(){this.stop()}},kt=class{constructor(){this.weakMaps={}}_getWeakMap(e){const t=e.length;let o=this.weakMaps[t];return o===void 0&&(o=new WeakMap,this.weakMaps[t]=o),o}get(e){let t=this._getWeakMap(e);for(let o=0;o{this.dispose()},this.onGeometryDispose=()=>{this.attributes=null,this.attributesId=null},this.material.addEventListener("dispose",this.onMaterialDispose),this.geometry.addEventListener("dispose",this.onGeometryDispose),this._sourceMaterial!==null&&this._sourceMaterial.addEventListener("dispose",this.onMaterialDispose)}updateClipping(e){this.clippingContext=e}get clippingNeedsUpdate(){return this.clippingContext===null||this.clippingContext.cacheKey===this.clippingContextCacheKey?!1:(this.clippingContextCacheKey=this.clippingContext.cacheKey,!0)}get hardwareClippingPlanes(){return this.getNodeBuilderState().hardwareClipping===!0?this.clippingContext.unionClippingCount:0}getNodeBuilderState(){return this._nodeBuilderState||(this._nodeBuilderState=this._nodes.getForRender(this))}getMonitor(){return this._monitor||(this._monitor=this.getNodeBuilderState().observer)}getBindings(){return this._bindings||(this._bindings=this.getNodeBuilderState().createBindings())}getBindingGroup(e){for(const t of this.getBindings())if(t.name===e)return t}getIndex(){return this._geometries.getIndex(this)}getIndirect(){return this._geometries.getIndirect(this)}getIndirectOffset(){return this._geometries.getIndirectOffset(this)}getChainArray(){return[this.object,this.material,this.context,this.lightsNode]}setGeometry(e){this.geometry=e,this.attributes=null,this.attributesId=null}getAttributes(){if(this.attributes!==null)return this.attributes;const e=this.getNodeBuilderState().nodeAttributes,t=this.geometry,o=[],r=new Set,s={};for(const i of e){let n;if(i.node&&i.node.attribute?n=i.node.attribute:(n=t.getAttribute(i.name),n!==void 0&&(n.isInterleavedBufferAttribute?s[i.name]=n.data.uuid:s[i.name]=n.id)),n===void 0)continue;o.push(n);const a=n.isInterleavedBufferAttribute?n.data:n;r.add(a)}return this.attributes=o,this.attributesId=s,this.vertexBuffers=Array.from(r.values()),o}getVertexBuffers(){return this.vertexBuffers===null&&this.getAttributes(),this.vertexBuffers}getDrawParameters(){const{object:e,material:t,geometry:o,group:r,drawRange:s}=this,i=this.drawParams||(this.drawParams={vertexCount:0,firstVertex:0,instanceCount:0,firstInstance:0}),n=this.getIndex(),a=n!==null;let l=1;if(o.isInstancedBufferGeometry===!0?l=o.instanceCount:e.count!==void 0&&(l=Math.max(0,e.count)),l===0)return null;if(i.instanceCount=l,e.isBatchedMesh===!0)return i;let u=1;t.wireframe===!0&&!e.isPoints&&!e.isLineSegments&&!e.isLine&&!e.isLineLoop&&(u=2);let c=s.start*u,d=(s.start+s.count)*u;r!==null&&(c=Math.max(c,r.start*u),d=Math.min(d,(r.start+r.count)*u));const h=o.attributes.position;let f=1/0;a?f=n.count:h!=null&&(f=h.count),c=Math.max(c,0),d=Math.min(d,f);const p=d-c;return p<0||p===1/0?null:(i.vertexCount=p,i.firstVertex=c,i)}getGeometryCacheKey(){const{geometry:e}=this;let t="";for(const o of Object.keys(e.attributes).sort()){const r=e.attributes[o];t+=o+",",r.data&&(t+=r.data.stride+","),r.offset&&(t+=r.offset+","),r.itemSize&&(t+=r.itemSize+","),r.normalized&&(t+="n,")}for(const o of Object.keys(e.morphAttributes).sort()){const r=e.morphAttributes[o];t+="morph-"+o+",";for(let s=0,i=r.length;s1)&&(r+=e.uuid+","),r+=this.context.id+",",r+=e.receiveShadow+",",d3(r)}get needsGeometryUpdate(){if(this.geometry.id!==this.object.geometry.id)return!0;if(this.attributes!==null){const e=this.attributesId;for(const t in e){const o=this.geometry.getAttribute(t);if(o===void 0)return!0;const r=o.isInterleavedBufferAttribute?o.data.uuid:o.id;if(e[t]!==r)return!0}}return!1}get needsUpdate(){return this.initialNodesCacheKey!==this.getDynamicCacheKey()||this.clippingNeedsUpdate}getDynamicCacheKey(){let e=0;return this.material.isShadowPassMaterial!==!0&&(e=this._nodes.getCacheKey(this.scene,this.lightsNode)),this.camera.isArrayCamera&&(e=Z3(e,this.camera.cameras.length)),this.object.receiveShadow&&(e=Z3(e,1)),e=Z3(e,this.renderer.contextNode.id,this.renderer.contextNode.version),e}getCacheKey(){return this.getMaterialCacheKey()+this.getDynamicCacheKey()}dispose(){this.material.removeEventListener("dispose",this.onMaterialDispose),this.geometry.removeEventListener("dispose",this.onGeometryDispose),this._sourceMaterial!==null&&this._sourceMaterial.removeEventListener("dispose",this.onMaterialDispose),this.onDispose()}},We=[],Mg=class{constructor(e,t,o,r,s,i){this.renderer=e,this.nodes=t,this.geometries=o,this.pipelines=r,this.bindings=s,this.info=i,this.chainMaps={}}get(e,t,o,r,s,i,n,a){const l=this.getChainMap(a);We[0]=e,We[1]=t,We[2]=i,We[3]=s;let u=l.get(We);return u===void 0?(u=this.createRenderObject(this.nodes,this.geometries,this.renderer,e,t,o,r,s,i,n,a),l.set(We,u)):(u.camera=r,u.updateClipping(n),u.needsGeometryUpdate&&u.setGeometry(e.geometry),(u.version!==t.version||u.needsUpdate)&&(u.initialCacheKey!==u.getCacheKey()?(u.dispose(),u=this.get(e,t,o,r,s,i,n,a)):u.version=t.version)),We[0]=null,We[1]=null,We[2]=null,We[3]=null,u}getChainMap(e="default"){return this.chainMaps[e]||(this.chainMaps[e]=new kt)}dispose(){this.chainMaps={}}createRenderObject(e,t,o,r,s,i,n,a,l,u,c){const d=this.getChainMap(c),h=new Ng(e,t,o,r,s,i,n,a,l,u);return h.onDispose=()=>{this.pipelines.delete(h),this.bindings.deleteForRender(h),this.nodes.delete(h),d.delete(h.getChainArray())},h}},Gt=class{constructor(){this.data=new WeakMap}get(e){let t=this.data.get(e);return t===void 0&&(t={},this.data.set(e,t)),t}delete(e){let t=null;return this.data.has(e)&&(t=this.data.get(e),this.data.delete(e)),t}has(e){return this.data.has(e)}dispose(){this.data=new WeakMap}},ae={VERTEX:1,INDEX:2,STORAGE:3,INDIRECT:4},wt=16,yg=211,xg=212,Sg=class extends Gt{constructor(e,t){super(),this.backend=e,this.info=t}delete(e){const t=super.delete(e);return t!==null&&(this.backend.destroyAttribute(e),this.info.destroyAttribute(e)),t}update(e,t){const o=this.get(e);if(o.version===void 0)t===ae.VERTEX?(this.backend.createAttribute(e),this.info.createAttribute(e)):t===ae.INDEX?(this.backend.createIndexAttribute(e),this.info.createIndexAttribute(e)):t===ae.STORAGE?(this.backend.createStorageAttribute(e),this.info.createStorageAttribute(e)):t===ae.INDIRECT&&(this.backend.createIndirectStorageAttribute(e),this.info.createIndirectStorageAttribute(e)),o.version=this._getBufferAttribute(e).version;else{const r=this._getBufferAttribute(e);(o.version=65535?J9:C9)(t,1);return s.version=V8(e),s.__id=Q8(e),s}var Tg=class extends Gt{constructor(e,t){super(),this.attributes=e,this.info=t,this.wireframes=new WeakMap,this.attributeCall=new WeakMap,this._geometryDisposeListeners=new Map}has(e){const t=e.geometry;return super.has(t)&&this.get(t).initialized===!0}updateForRender(e){this.has(e)===!1&&this.initGeometry(e),this.updateAttributes(e)}initGeometry(e){const t=e.geometry,o=this.get(t);o.initialized=!0,this.info.memory.geometries++;const r=()=>{this.info.memory.geometries--;const s=t.index,i=e.getAttributes();s!==null&&this.attributes.delete(s);for(const a of i)this.attributes.delete(a);const n=this.wireframes.get(t);n!==void 0&&this.attributes.delete(n),t.removeEventListener("dispose",r),this._geometryDisposeListeners.delete(t)};t.addEventListener("dispose",r),this._geometryDisposeListeners.set(t,r)}updateAttributes(e){const t=e.getAttributes();for(const s of t)s.isStorageBufferAttribute||s.isStorageInstancedBufferAttribute?this.updateAttribute(s,ae.STORAGE):this.updateAttribute(s,ae.VERTEX);const o=this.getIndex(e);o!==null&&this.updateAttribute(o,ae.INDEX);const r=e.geometry.indirect;r!==null&&this.updateAttribute(r,ae.INDIRECT)}updateAttribute(e,t){const o=this.info.render.calls;e.isInterleavedBufferAttribute?this.attributeCall.get(e)===void 0?(this.attributes.update(e,t),this.attributeCall.set(e,o)):this.attributeCall.get(e.data)!==o&&(this.attributes.update(e,t),this.attributeCall.set(e.data,o),this.attributeCall.set(e,o)):this.attributeCall.get(e)!==o&&(this.attributes.update(e,t),this.attributeCall.set(e,o))}getIndirect(e){return e.geometry.indirect}getIndirectOffset(e){return e.geometry.indirectOffset}getIndex(e){const{geometry:t,material:o}=e;let r=t.index;if(o.wireframe===!0){const s=this.wireframes;let i=s.get(t);i===void 0?(i=u7(t),s.set(t,i)):(i.version!==V8(t)||i.__id!==Q8(t))&&(this.attributes.delete(i),i=u7(t),s.set(t,i)),r=i}return r}dispose(){for(const[e,t]of this._geometryDisposeListeners.entries())e.removeEventListener("dispose",t);this._geometryDisposeListeners.clear()}},wg=class{constructor(){this.autoReset=!0,this.frame=0,this.calls=0,this.render={calls:0,frameCalls:0,drawCalls:0,triangles:0,points:0,lines:0,timestamp:0},this.compute={calls:0,frameCalls:0,timestamp:0},this.memory={attributes:0,attributesSize:0,geometries:0,indexAttributes:0,indexAttributesSize:0,indirectStorageAttributes:0,indirectStorageAttributesSize:0,programs:0,programsSize:0,readbackBuffers:0,readbackBuffersSize:0,renderTargets:0,storageAttributes:0,storageAttributesSize:0,textures:0,texturesSize:0,uniformBuffers:0,uniformBuffersSize:0,total:0},this.memoryMap=new Map}update(e,t,o){this.render.drawCalls++,e.isMesh||e.isSprite?this.render.triangles+=o*(t/3):e.isPoints?this.render.points+=o*t:e.isLineSegments?this.render.lines+=o*(t/2):e.isLine?this.render.lines+=o*(t-1):G("WebGPUInfo: Unknown object type.")}reset(){this.render.drawCalls=0,this.render.frameCalls=0,this.compute.frameCalls=0,this.render.triangles=0,this.render.points=0,this.render.lines=0}dispose(){this.reset(),this.calls=0,this.render.calls=0,this.compute.calls=0,this.render.timestamp=0,this.compute.timestamp=0;for(const e in this.memory)this.memory[e]=0;this.memoryMap.clear()}createTexture(e){const t=this._getTextureMemorySize(e);this.memoryMap.set(e,t),this.memory.textures++,this.memory.total+=t,this.memory.texturesSize+=t}destroyTexture(e){const t=this.memoryMap.get(e)||0;this.memoryMap.delete(e),this.memory.textures--,this.memory.total-=t,this.memory.texturesSize-=t}_createAttribute(e,t){const o=this._getAttributeMemorySize(e);this.memoryMap.set(e,{size:o,type:t}),this.memory[t]++,this.memory.total+=o,this.memory[t+"Size"]+=o}createAttribute(e){this._createAttribute(e,"attributes")}createIndexAttribute(e){this._createAttribute(e,"indexAttributes")}createStorageAttribute(e){this._createAttribute(e,"storageAttributes")}createIndirectStorageAttribute(e){this._createAttribute(e,"indirectStorageAttributes")}destroyAttribute(e){const t=this.memoryMap.get(e);t&&(this.memoryMap.delete(e),this.memory[t.type]--,this.memory.total-=t.size,this.memory[t.type+"Size"]-=t.size)}createReadbackBuffer(e){const t=e.maxByteLength;this.memoryMap.set(e,{size:t,type:"readbackBuffers"}),this.memory.readbackBuffers++,this.memory.total+=t,this.memory.readbackBuffersSize+=t}destroyReadbackBuffer(e){const{size:t}=this.memoryMap.get(e);this.memoryMap.delete(e),this.memory.readbackBuffers--,this.memory.total-=t,this.memory.readbackBuffersSize-=t}createUniformBuffer(e){const t=e.byteLength;this.memoryMap.set(e,{size:t,type:"uniformBuffers"}),this.memory.uniformBuffers++,this.memory.total+=t,this.memory.uniformBuffersSize+=t}destroyUniformBuffer(e){const t=this.memoryMap.get(e);t&&(this.memoryMap.delete(e),this.memory.uniformBuffers--,this.memory.total-=t.size,this.memory.uniformBuffersSize-=t.size)}createProgram(e){const t=e.code.length;this.memoryMap.set(e,t),this.memory.programs++,this.memory.total+=t,this.memory.programsSize+=t}destroyProgram(e){const t=this.memoryMap.get(e)||0;this.memoryMap.delete(e),this.memory.programs--,this.memory.total-=t,this.memory.programsSize-=t}_getTextureMemorySize(e){if(e.isCompressedTexture)return 1;let t=1;e.type===1010||e.type===1009?t=1:e.type===1011||e.type===1012||e.type===1016?t=2:(e.type===1013||e.type===1014||e.type===1015)&&(t=4);let o=4;e.format===1021||e.format===1028||e.format===1029||e.format===1026||e.format===1027?o=1:e.format===1030||e.format===1031?o=2:(e.format===1022||e.format===1032)&&(o=3);let r=t*o;e.type===1017||e.type===1018?r=2:(e.type===1020||e.type===35902||e.type===35899)&&(r=4);const s=e.width||1,i=e.height||1,n=e.isCubeTexture?6:e.depth||1;let a=s*i*n*r;const l=e.mipmaps;if(l&&l.length>0){let u=0;for(let c=0;c>c),f=d.height||Math.max(1,i>>c);u+=h*f*n*r}}a+=u}else e.generateMipmaps&&(a=a*1.333);return Math.round(a)}_getAttributeMemorySize(e){return e.isInterleavedBufferAttribute&&(e=e.data),e.array?e.array.byteLength:e.count&&e.itemSize?e.count*e.itemSize*4:0}},$8=class{constructor(e){this.cacheKey=e,this.usedTimes=0}},_g=class extends $8{constructor(e,t,o){super(e),this.vertexProgram=t,this.fragmentProgram=o}},Ag=class extends $8{constructor(e,t){super(e),this.computeProgram=t,this.isComputePipeline=!0}},Cg=0,Es=class{constructor(e,t,o,r=null,s=null){this.id=Cg++,this.code=e,this.stage=t,this.name=o,this.transforms=r,this.attributes=s,this.usedTimes=0}},Rg=class extends Gt{constructor(e,t,o){super(),this.backend=e,this.nodes=t,this.info=o,this.bindings=null,this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}getForCompute(e,t){const{backend:o}=this,r=this.get(e);if(this._needsComputeUpdate(e)){const s=r.pipeline;s&&(s.usedTimes--,s.computeProgram.usedTimes--);const i=this.nodes.getForCompute(e);let n=this.programs.compute.get(i.computeShader);n===void 0&&(s&&s.computeProgram.usedTimes===0&&this._releaseProgram(s.computeProgram),n=new Es(i.computeShader,"compute",e.name,i.transforms,i.nodeAttributes),this.programs.compute.set(i.computeShader,n),o.createProgram(n),this.info.createProgram(n));const a=this._getComputeCacheKey(e,n);let l=this.caches.get(a);l===void 0&&(s&&s.usedTimes===0&&this._releasePipeline(s),l=this._getComputePipeline(e,n,a,t)),l.usedTimes++,n.usedTimes++,r.version=e.version,r.pipeline=l}return r.pipeline}getForRender(e,t=null){const{backend:o}=this,r=this.get(e);if(this._needsRenderUpdate(e)){const s=r.pipeline;s&&(s.usedTimes--,s.vertexProgram.usedTimes--,s.fragmentProgram.usedTimes--);const i=e.getNodeBuilderState(),n=e.material?e.material.name:"";let a=this.programs.vertex.get(i.vertexShader);a===void 0&&(s&&s.vertexProgram.usedTimes===0&&this._releaseProgram(s.vertexProgram),a=new Es(i.vertexShader,"vertex",n),this.programs.vertex.set(i.vertexShader,a),o.createProgram(a),this.info.createProgram(a));let l=this.programs.fragment.get(i.fragmentShader);l===void 0&&(s&&s.fragmentProgram.usedTimes===0&&this._releaseProgram(s.fragmentProgram),l=new Es(i.fragmentShader,"fragment",n),this.programs.fragment.set(i.fragmentShader,l),o.createProgram(l),this.info.createProgram(l));const u=this._getRenderCacheKey(e,a,l);let c=this.caches.get(u);c===void 0?(s&&s.usedTimes===0&&this._releasePipeline(s),c=this._getRenderPipeline(e,a,l,u,t)):e.pipeline=c,c.usedTimes++,a.usedTimes++,l.usedTimes++,r.pipeline=c}return r.pipeline}isReady(e){const t=this.get(e).pipeline;if(t===void 0)return!1;const o=this.backend.get(t);return o.pipeline!==void 0&&o.pipeline!==null}delete(e){const t=this.get(e).pipeline;return t&&(t.usedTimes--,t.usedTimes===0&&this._releasePipeline(t),t.isComputePipeline?(t.computeProgram.usedTimes--,t.computeProgram.usedTimes===0&&this._releaseProgram(t.computeProgram)):(t.fragmentProgram.usedTimes--,t.vertexProgram.usedTimes--,t.vertexProgram.usedTimes===0&&this._releaseProgram(t.vertexProgram),t.fragmentProgram.usedTimes===0&&this._releaseProgram(t.fragmentProgram))),super.delete(e)}dispose(){super.dispose(),this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}updateForRender(e){this.getForRender(e)}_getComputePipeline(e,t,o,r){o=o||this._getComputeCacheKey(e,t);let s=this.caches.get(o);return s===void 0&&(s=new Ag(o,t),this.caches.set(o,s),this.backend.createComputePipeline(s,r)),s}_getRenderPipeline(e,t,o,r,s){r=r||this._getRenderCacheKey(e,t,o);let i=this.caches.get(r);return i===void 0&&(i=new _g(r,t,o),this.caches.set(r,i),e.pipeline=i,this.backend.createRenderPipeline(e,s)),i}_getComputeCacheKey(e,t){return e.id+","+t.id}_getRenderCacheKey(e,t,o){return t.id+","+o.id+","+this.backend.getRenderCacheKey(e)}_releasePipeline(e){this.caches.delete(e.cacheKey)}_releaseProgram(e){const t=e.code,o=e.stage;this.programs[o].delete(t),this.info.destroyProgram(e)}_needsComputeUpdate(e){const t=this.get(e);return t.pipeline===void 0||t.version!==e.version}_needsRenderUpdate(e){return this.get(e).pipeline===void 0||this.backend.needsRenderUpdate(e)}},Bg=class extends Gt{constructor(e,t,o,r,s,i){super(),this.backend=e,this.textures=o,this.pipelines=s,this.attributes=r,this.nodes=t,this.info=i,this.pipelines.bindings=this}getForRender(e){const t=e.getBindings(),o=this.get(e);return o.initialized!==!0&&(this._createBindings(t),o.initialized=!0),t}getForCompute(e){const t=this.nodes.getForCompute(e).bindings,o=this.get(e);return(o.initialized!==!0||o.bindings!==t)&&(o.bindings!==void 0&&this._destroyBindings(o.bindings),this._createBindings(t),o.initialized=!0,o.bindings=t),t}updateForCompute(e){this._updateBindings(this.getForCompute(e))}updateForRender(e){this._updateBindings(this.getForRender(e))}deleteForCompute(e){const t=this.get(e).bindings||this.nodes.getForCompute(e).bindings;this._destroyBindings(t),this.delete(e)}deleteForRender(e){const t=e.getBindings();this._destroyBindings(t),this.delete(e)}_createBindings(e){for(const t of e){const o=this.get(t);if(o.bindGroup===void 0){for(const r of t.bindings)if(r.isUniformBuffer)this.backend.createUniformBuffer(r),this.info.createUniformBuffer(r);else if(r.isSampledTexture)this.textures.updateTexture(r.texture);else if(r.isSampler)this.textures.updateSampler(r);else if(r.isStorageBuffer){const s=r.attribute,i=s.isIndirectStorageBufferAttribute?ae.INDIRECT:ae.STORAGE;this.attributes.update(s,i)}this.backend.createBindings(t,e,0),o.bindGroup=t,o.usedTimes=1}else o.usedTimes++}}_destroyBindings(e){for(const t of e){const o=this.get(t);if(o.usedTimes--,o.usedTimes===0){for(const r of t.bindings)r.isUniformBuffer?(this.backend.destroyUniformBuffer(r),this.info.destroyUniformBuffer(r),r.release()):r.isSampler&&(r.isSampledTexture!==!0&&this.backend.destroySampler(r),r.release());this.backend.deleteBindGroupData(t),this.delete(t)}}}_updateBindings(e){for(const t of e)this._update(t,e)}_update(e,t){const{backend:o}=this;let r=!1,s=!0,i=0,n=0;for(const a of e.bindings)if(this.nodes.updateGroup(a)!==!1){if(a.isStorageBuffer){const l=a.attribute,u=l.isIndirectStorageBufferAttribute?ae.INDIRECT:ae.STORAGE,c=o.get(a);this.attributes.update(l,u),c.attribute!==l&&(c.attribute=l,r=!0)}if(a.isUniformBuffer)a.update()&&o.updateBinding(a);else if(a.isSampledTexture){const l=a.update(),u=a.texture,c=this.textures.get(u);if(l&&(this.textures.updateTexture(u),a.generation!==c.generation&&(a.generation=c.generation,r=!0),c.bindGroups.add(e)),o.get(u).externalTexture!==void 0||c.isDefaultTexture?s=!1:(i=i*10+u.id,n+=u.version),u.isStorageTexture===!0&&u.mipmapsAutoUpdate===!0){const d=this.get(u);a.store===!0?d.needsMipmap=!0:this.textures.needsMipmaps(u)&&d.needsMipmap===!0&&(this.backend.generateMipmaps(u),d.needsMipmap=!1)}}else if(a.isSampler&&a.update()){const l=this.textures.updateSampler(a);a.samplerKey!==l&&(a.samplerKey=l,r=!0)}a.isBuffer&&a.updateRanges.length>0&&a.clearUpdateRanges()}r===!0&&this.backend.updateBindings(e,t,s?i:0,n)}},Eg=Object.freeze([]);function Ug(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?e.z-t.z:e.id-t.id}function c7(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id-t.id}function d7(e){return(e.transmission>0||e.transmissionNode&&e.transmissionNode.isNode)&&e.side===2&&e.forceSinglePass===!1}var Wg=class{constructor(e,t,o){this.renderItems=[],this.renderItemsIndex=0,this.opaque=[],this.transparentDoublePass=[],this.transparent=[],this.bundles=[],this.lighting=e,this.lightsNode=e.getNode(t),this.lightsArray=[],this.scene=t,this.camera=o,this.occlusionQueryCount=0,this._lastOcclusionObject=null}begin(){return this.renderItemsIndex=0,this.opaque.length=0,this.transparentDoublePass.length=0,this.transparent.length=0,this.bundles.length=0,this.lightsArray.length=0,this.occlusionQueryCount=0,this}getNextRenderItem(e,t,o,r,s,i,n){let a=this.renderItems[this.renderItemsIndex];return a===void 0?(a={id:e.id,object:e,geometry:t,material:o,groupOrder:r,renderOrder:e.renderOrder,z:s,group:i,clippingContext:n},this.renderItems[this.renderItemsIndex]=a):(a.id=e.id,a.object=e,a.geometry=t,a.material=o,a.groupOrder=r,a.renderOrder=e.renderOrder,a.z=s,a.group=i,a.clippingContext=n),this.renderItemsIndex++,a}push(e,t,o,r,s,i,n){const a=this.getNextRenderItem(e,t,o,r,s,i,n);e.occlusionTest===!0&&this._lastOcclusionObject!==e&&(this.occlusionQueryCount++,this._lastOcclusionObject=e),o.transparent===!0||o.transmission>0||o.transmissionNode&&o.transmissionNode.isNode||o.backdropNode&&o.backdropNode.isNode?(d7(o)&&this.transparentDoublePass.push(a),this.transparent.push(a)):this.opaque.push(a)}unshift(e,t,o,r,s,i,n){const a=this.getNextRenderItem(e,t,o,r,s,i,n);o.transparent===!0||o.transmission>0||o.transmissionNode&&o.transmissionNode.isNode||o.backdropNode&&o.backdropNode.isNode?(d7(o)&&this.transparentDoublePass.unshift(a),this.transparent.unshift(a)):this.opaque.unshift(a)}pushBundle(e){this.bundles.push(e)}pushLight(e){this.lightsArray.push(e)}sort(e,t,o){this.opaque.length>1&&this.opaque.sort(e||Ug),this.transparentDoublePass.length>1&&this.transparentDoublePass.sort(t||c7),this.transparent.length>1&&this.transparent.sort(t||c7),o&&(this.opaque.reverse(),this.transparentDoublePass.reverse(),this.transparent.reverse())}finish(){this.lightsNode.setLights(this.lighting.enabled?this.lightsArray:Eg);for(let e=this.renderItemsIndex,t=this.renderItems.length;e>t,l=n.height>>t;let u=e.depthTexture||s[t];const c=e.depthBuffer===!0||e.stencilBuffer===!0;let d=!1;const h=u!==void 0&&u.image!==void 0&&u.image.depth>1,f=n.depth>1&&(e.useArrayDepthTexture||e.multiview||h);u===void 0&&c&&(u=new ye,u.format=e.stencilBuffer?Ut:f2,u.type=e.stencilBuffer?Wt:E0,u.image.width=a,u.image.height=l,u.image.depth=n.depth,u.renderTarget=e,s[t]=u),u&&(u.isArrayTexture=f),(o.width!==n.width||n.height!==o.height)&&(d=!0,u&&(u.needsUpdate=!0,u.image.width=a,u.image.height=l,u.image.depth=f?n.depth:1)),o.width=n.width,o.height=n.height,o.textures=i,o.depthTexture=u||null,o.depth=e.depthBuffer,o.stencil=e.stencilBuffer,o.renderTarget=e,o.sampleCount!==r&&(d=!0,u&&(u.needsUpdate=!0),o.sampleCount=r);const p={sampleCount:r};if(e.isXRRenderTarget!==!0){for(let m=0;m{this._destroyRenderTarget(e)},e.addEventListener("dispose",o.onDispose))}updateTexture(e,t={}){const o=this.get(e);if(o.initialized===!0&&o.version===e.version)return;const r=e.isRenderTargetTexture||e.isDepthTexture||e.isFramebufferTexture,s=this.backend;if(r&&o.initialized===!0&&s.destroyTexture(e),e.isFramebufferTexture){const l=this.renderer.getRenderTarget();l?e.type=l.texture.type:e.type=be}if(e.isHTMLTexture&&e.image){const l=this.renderer.domElement;if("requestPaint"in l){if(l.hasAttribute("layoutsubtree")||l.setAttribute("layoutsubtree","true"),e.image.parentNode!==l&&l.appendChild(e.image),this._htmlTextures.size===0){const u=this._htmlTextures;l.onpaint=c=>{const d=c&&c.changedElements;for(const h of u)(!d||d.includes(h.image))&&(h.needsUpdate=!0)}}this._htmlTextures.add(e)}}const{width:i,height:n,depth:a}=this.getSize(e);if(t.width=i,t.height=n,t.depth=a,t.needsMipmaps=this.needsMipmaps(e),t.levels=t.needsMipmaps?this.getMipLevels(e,i,n):1,e.isCubeTexture&&e.mipmaps.length>0&&t.levels++,r||e.isStorageTexture===!0||e.isExternalTexture===!0)s.createTexture(e,t),o.generation=e.version;else if(e.version>0){const l=e.image;if(l===void 0)j("Renderer: Texture marked for update but image is undefined.");else if(l.complete===!1)j("Renderer: Texture marked for update but image is incomplete.");else{if(e.images){const c=[];for(const d of e.images)c.push(d);t.images=c}else t.image=l;(o.isDefaultTexture===void 0||o.isDefaultTexture===!0)&&(s.createTexture(e,t),o.isDefaultTexture=!1,o.generation=e.version),e.source.dataReady===!0&&s.updateTexture(e,t);const u=e.isStorageTexture===!0&&e.mipmapsAutoUpdate===!1;t.needsMipmaps&&e.mipmaps.length===0&&!u&&s.generateMipmaps(e),e.onUpdate&&e.onUpdate(e)}}else s.createDefaultTexture(e),o.isDefaultTexture=!0,o.generation=e.version;o.initialized!==!0&&(o.initialized=!0,o.generation=e.version,o.bindGroups=new Set,this.info.createTexture(e),e.isVideoTexture&&e0.enabled===!0&&e0.getTransfer(e.colorSpace)!=="srgb"&&j("WebGPURenderer: Video textures must use a color space with a sRGB transfer function, e.g. SRGBColorSpace."),o.onDispose=()=>{this._destroyTexture(e)},e.addEventListener("dispose",o.onDispose)),o.version=e.version}updateSampler(e){return this.backend.updateSampler(e)}getSize(e,t=Dg){let o=e.images?e.images[0]:e.image;return o?(o.image!==void 0&&(o=o.image),e.isHTMLTexture?(t.width=o.offsetWidth||1,t.height=o.offsetHeight||1,t.depth=1):typeof HTMLVideoElement<"u"&&o instanceof HTMLVideoElement?(t.width=o.videoWidth||1,t.height=o.videoHeight||1,t.depth=1):typeof VideoFrame<"u"&&o instanceof VideoFrame?(t.width=o.displayWidth||1,t.height=o.displayHeight||1,t.depth=1):(t.width=o.width||1,t.height=o.height||1,t.depth=e.isCubeTexture?6:o.depth||1)):t.width=t.height=t.depth=1,t}getMipLevels(e,t,o){let r;return e.mipmaps.length>0?r=e.mipmaps.length:e.isCompressedTexture===!0?r=1:r=Math.floor(Math.log2(Math.max(t,o)))+1,r}needsMipmaps(e){return e.generateMipmaps===!0||e.mipmaps.length>0}_destroyRenderTarget(e){if(this.has(e)===!0){const t=this.get(e),o=t.textures,r=t.depthTexture;e.removeEventListener("dispose",t.onDispose);for(let s=0;s{r.isOverrideContextNode===!0&&e.push(r.value.overrideNodes)});const t=new Map(e.flatMap(r=>Array.from(r.entries()))),o=super.getFlowContextData();return o.overrideNodes=t,o}};function Xg(e,t=null,o=null){if(t&&t.isNode){const r=t;t=()=>r}return new q8(new Map([[e,t]]),o)}E("overrideNode",(e,t,o)=>Xg(t,o,e));function Ig(e,t=null){const o=new Map;for(const[r,s]of e){const i=s!==null?typeof s=="function"?s:()=>s:null;o.set(r,i)}return new q8(o,t)}E("overrideNodes",(e,t)=>Ig(t,e));var Gg=class extends w1{static get type(){return"ParameterNode"}constructor(e,t=null){super(e,t),this.isParameterNode=!0}getMemberType(e,t){const o=this.getNodeType(e),r=e.getStructTypeNode(o);let s;return r!==null?s=r.getMemberType(e,t):(G(`TSL: Member "${t}" not found in struct "${o}".`,new C0),s="float"),s}getHash(){return String(this.id)}generate(){return this.name}},zg=class extends i1{static get type(){return"StackNode"}constructor(e=null){super(),this.nodes=[],this.outputNode=null,this.parent=e,this._currentCond=null,this._expressionNode=null,this._currentNode=null,this._nodeDataLibrary=new Map,this.isStackNode=!0}getElementType(e){return this.outputNode?this.outputNode.getElementType(e):"void"}generateNodeType(e){return this.outputNode?this.outputNode.getNodeType(e):"void"}getMemberType(e,t){return this.outputNode?this.outputNode.getMemberType(e,t):"void"}addToStack(e,t=-1){if(e.isNode!==!0)return G("TSL: Invalid node added to stack.",new C0),this;if(t===-1)if(this._currentNode){let o=this._nodeDataLibrary.get(this._currentNode);o===void 0&&(o={delta:0},this._nodeDataLibrary.set(this._currentNode,o)),o.delta++,t=this.nodes.indexOf(this._currentNode)+o.delta}else t=this.nodes.length;return this.nodes.splice(t,0,e),this}addToStackBefore(e){const t=this._currentNode?this.nodes.indexOf(this._currentNode):0;return this.addToStack(e,t)}If(e,t){const o=new I3(t);return this._currentCond=$0(e,o),this.addToStack(this._currentCond)}ElseIf(e,t){const o=new I3(t),r=$0(e,o);return this._currentCond.elseNode=r,this._currentCond=r,this}Else(e){return this._currentCond.elseNode=new I3(e),this}Switch(e){return this._expressionNode=K(e),this}Case(...e){const t=[];if(e.length>=2)for(let n=0;nnew J8(e,"uint","float"),Xo={},Rn=class Mr extends A{static get type(){return"BitcountNode"}constructor(t,o){super(t,o),this.isBitcountNode=!0}_resolveElementType(t,o,r){r==="int"?o.assign(Vg(t,"uint")):o.assign(t)}_returnDataNode(t){switch(t){case"uint":return m1;case"int":return Q1;case"uvec2":return f4;case"uvec3":return m4;case"uvec4":return v4;case"ivec2":return O0;case"ivec3":return p4;case"ivec4":return g4}}_createTrailingZerosBaseLayout(t,o){const r=this._returnDataNode(o);return B(([s])=>{const i=m1(0);this._resolveElementType(s,i,o);const n=C(i.bitAnd(C4(i))),a=Qg(n).shiftRight(23).sub(127);return r(a)}).setLayout({name:t,type:o,inputs:[{name:"value",type:o}]})}_createLeadingZerosBaseLayout(t,o){const r=this._returnDataNode(o);return B(([s])=>{x1(s.equal(m1(0)),()=>m1(32));const i=m1(0),n=m1(0);return this._resolveElementType(s,i,o),x1(i.shiftRight(16).equal(0),()=>{n.addAssign(16),i.shiftLeftAssign(16)}),x1(i.shiftRight(24).equal(0),()=>{n.addAssign(8),i.shiftLeftAssign(8)}),x1(i.shiftRight(28).equal(0),()=>{n.addAssign(4),i.shiftLeftAssign(4)}),x1(i.shiftRight(30).equal(0),()=>{n.addAssign(2),i.shiftLeftAssign(2)}),x1(i.shiftRight(31).equal(0),()=>{n.addAssign(1)}),r(n)}).setLayout({name:t,type:o,inputs:[{name:"value",type:o}]})}_createOneBitsBaseLayout(t,o){const r=this._returnDataNode(o);return B(([s])=>{const i=m1(0);this._resolveElementType(s,i,o),i.assign(i.sub(i.shiftRight(m1(1)).bitAnd(m1(1431655765)))),i.assign(i.bitAnd(m1(858993459)).add(i.shiftRight(m1(2)).bitAnd(m1(858993459))));const n=i.add(i.shiftRight(m1(4))).bitAnd(m1(252645135)).mul(m1(16843009)).shiftRight(m1(24));return r(n)}).setLayout({name:t,type:o,inputs:[{name:"value",type:o}]})}_createMainLayout(t,o,r,s){const i=this._returnDataNode(o);return B(([n])=>{if(r===1)return i(s(n));{const a=i(0),l=["x","y","z","w"];for(let u=0;ud(r))()}};Rn.COUNT_TRAILING_ZEROS="countTrailingZeros";Rn.COUNT_LEADING_ZEROS="countLeadingZeros";Rn.COUNT_ONE_BITS="countOneBits";var YT=new C6,ew=new z,tw=new z,ow=new z,rw=new q0,sw=new z(0,0,-1),iw=new S1,nw=new z,aw=new z,lw=new S1,uw=new p1,$g=new Xt,cw=At.flipX();$g.depthTexture=new ye(1,1);var Ws=new fo(-1,1,1,-1,0,1),Zg=class extends i3{constructor(e=!1){super();const t=e===!1?[0,-1,0,1,2,1]:[0,2,0,0,2,0];this.setAttribute("position",new wr([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new wr(t,2))}},qg=new Zg,j8=class extends $e{constructor(e=null){super(qg,e),this.camera=Ws,this.isQuadMesh=!0}async renderAsync(e){I1('QuadMesh: "renderAsync()" has been deprecated. Use "render()" and "await renderer.init();" when creating the renderer.'),await e.init(),e.render(this,Ws)}render(e){e.render(this,Ws)}},K8=B(([e])=>qe(C(52.9829189).mul(qe(x2(e,n1(.06711056,.00583715)))))).setLayout({name:"interleavedGradientNoise",type:"float",inputs:[{name:"position",type:"vec2"}]}),Xe=B(([e,t,o])=>{const r=C(2.399963229728653),s=Lt(C(e).add(.5).div(C(t))),i=C(e).mul(r).add(o);return n1(Pe(i),V0(i)).mul(s)}).setLayout({name:"vogelDiskSample",type:"vec2",inputs:[{name:"sampleIndex",type:"int"},{name:"samplesCount",type:"int"},{name:"phi",type:"float"}]}),Ls=new q0,Hg=o1(0).setGroup(s1).onRenderUpdate(({scene:e})=>e.backgroundBlurriness),h7=o1(1).setGroup(s1).onRenderUpdate(({scene:e})=>e.backgroundIntensity),Jg=o1(new q0).setGroup(s1).onRenderUpdate(({scene:e})=>{const t=e.background;return t!==null&&t.isTexture&&t.mapping!==300||e.backgroundNode&&e.backgroundNode.isNode?Ls.makeRotationFromEuler(e.backgroundRotation).transpose():Ls.identity(),Ls}),dw=B(({texture:e,uv:t})=>{const r=U().toVar();return x1(t.x.lessThan(1e-4),()=>{r.assign(U(1,0,0))}).ElseIf(t.y.lessThan(1e-4),()=>{r.assign(U(0,1,0))}).ElseIf(t.z.lessThan(1e-4),()=>{r.assign(U(0,0,1))}).ElseIf(t.x.greaterThan(1-1e-4),()=>{r.assign(U(-1,0,0))}).ElseIf(t.y.greaterThan(1-1e-4),()=>{r.assign(U(0,-1,0))}).ElseIf(t.z.greaterThan(1-1e-4),()=>{r.assign(U(0,0,-1))}).Else(()=>{const i=e.sample(t.add(U(-.01,0,0))).r.sub(e.sample(t.add(U(.01,0,0))).r),n=e.sample(t.add(U(0,-.01,0))).r.sub(e.sample(t.add(U(0,.01,0))).r),a=e.sample(t.add(U(0,0,-.01))).r.sub(e.sample(t.add(U(0,0,.01))).r);r.assign(U(i,n,a))}),r.normalize()}),hw=B(([e,t])=>e.mul(t).floor().div(t)),Io=new p1,jg=class extends Mo{static get type(){return"PassTextureNode"}constructor(e,t){super(t),this.passNode=e,this.isPassTextureNode=!0,this.setUpdateMatrix(!1)}setup(e){const t=e.getNodeProperties(this);return t.passNode=this.passNode,super.setup(e)}clone(){return new this.constructor(this.passNode,this.value)}},f7=class extends jg{static get type(){return"PassMultipleTextureNode"}constructor(e,t,o=!1){super(e,null),this.textureName=t,this.previousTexture=o,this.isPassMultipleTextureNode=!0}updateTexture(){this.value=this.previousTexture?this.passNode.getPreviousTexture(this.textureName):this.passNode.getTexture(this.textureName)}setup(e){return this.updateTexture(),super.setup(e)}clone(){const e=new this.constructor(this.passNode,this.textureName,this.previousTexture);return e.uvNode=this.uvNode,e.levelNode=this.levelNode,e.biasNode=this.biasNode,e.sampler=this.sampler,e.depthNode=this.depthNode,e.compareNode=this.compareNode,e.gradNode=this.gradNode,e.gatherNode=this.gatherNode,e.offsetNode=this.offsetNode,e}},Y8=class Fi extends s0{static get type(){return"PassNode"}constructor(t,o,r,s={}){super("vec4"),this.scope=t,this.scene=o,this.camera=r,this.options=s,this._width=1,this._height=1;const i=new Xt(this._width,this._height,{type:se,...s});i.texture.name="output";let n=null;(this.scope===Fi.DEPTH||s.depthBuffer!==!1)&&(n=new ye,n.isRenderTargetTexture=!0,n.name="depth",i.depthTexture=n),this.renderTarget=i,this.overrideMaterial=null,this.transparent=!0,this.opaque=!0,this.contextNode=null,this._contextNodeCache=null,this._textures={output:i.texture},n!==null&&(this._textures.depth=n),this._textureNodes={},this._linearDepthNodes={},this._viewZNodes={},this._previousTextures={},this._previousTextureNodes={},this._cameraNear=o1(0),this._cameraFar=o1(0),this._mrt=null,this._layers=null,this._resolutionScale=1,this._viewport=null,this._scissor=null,this.isPassNode=!0,this.updateBeforeType=u1.FRAME,this.global=!0}setResolutionScale(t){return this._resolutionScale=t,this}getResolutionScale(){return this._resolutionScale}setResolution(t){return j("PassNode: .setResolution() is deprecated. Use .setResolutionScale() instead."),this.setResolutionScale(t)}getResolution(){return j("PassNode: .getResolution() is deprecated. Use .getResolutionScale() instead."),this.getResolutionScale()}setLayers(t){return this._layers=t,this}getLayers(){return this._layers}setMRT(t){return this._mrt=t,this}getMRT(){return this._mrt}getTexture(t){let o=this._textures[t];if(o===void 0){if(t==="depth")throw new Error("THREE.PassNode: Depth texture is not available for this pass.");o=this.renderTarget.texture.clone(),o.name=t,this._textures[t]=o,this.renderTarget.textures.push(o)}return o}getPreviousTexture(t){let o=this._previousTextures[t];return o===void 0&&(o=this.getTexture(t).clone(),this._previousTextures[t]=o),o}toggleTexture(t){const o=this._previousTextures[t];if(o!==void 0){const r=this._textures[t],s=this.renderTarget.textures.indexOf(r);this.renderTarget.textures[s]=o,this._textures[t]=o,this._previousTextures[t]=r,this._textureNodes[t].updateTexture(),this._previousTextureNodes[t].updateTexture()}}getTextureNode(t="output"){let o=this._textureNodes[t];return o===void 0&&(o=new f7(this,t),o.updateTexture(),this._textureNodes[t]=o),o}getPreviousTextureNode(t="output"){let o=this._previousTextureNodes[t];return o===void 0&&(this._textureNodes[t]===void 0&&this.getTextureNode(t),o=new f7(this,t,!0),o.updateTexture(),this._previousTextureNodes[t]=o),o}getViewZNode(t="depth"){let o=this._viewZNodes[t];if(o===void 0){const r=this._cameraNear,s=this._cameraFar;this._viewZNodes[t]=o=wn(this.getTextureNode(t),r,s)}return o}getLinearDepthNode(t="depth"){let o=this._linearDepthNodes[t];if(o===void 0){const r=this._cameraNear,s=this._cameraFar,i=this.getViewZNode(t);this._linearDepthNodes[t]=o=s3(i,r,s)}return o}async compileAsync(t){const o=t.getRenderTarget(),r=t.getMRT();t.setRenderTarget(this.renderTarget),t.setMRT(this._mrt),await t.compileAsync(this.scene,this.camera),t.setRenderTarget(o),t.setMRT(r)}setup({renderer:t}){return this.renderTarget.samples=this.options.samples===void 0?t.samples:this.options.samples,this.renderTarget.texture.type=t.getOutputBufferType(),t.reversedDepthBuffer===!0&&this.renderTarget.depthTexture!==null&&(this.renderTarget.depthTexture.type=oe),this.scope===Fi.COLOR?this.getTextureNode():this.getLinearDepthNode()}updateBefore(t){const{renderer:o}=t,{scene:r}=this;let s;const i=o.getOutputRenderTarget();i&&i.isXRRenderTarget===!0?(s=o.xr.getCamera(),o.xr.updateCamera(s),Io.set(i.width,i.height)):(s=this.camera,o.getDrawingBufferSize(Io)),this.setSize(Io.width,Io.height);const n=o.getRenderTarget(),a=o.getMRT(),l=o.autoClear,u=o.transparent,c=o.opaque,d=s.layers.mask,h=o.contextNode,f=r.overrideMaterial;this._cameraNear.value=s.near,this._cameraFar.value=s.far,this._layers!==null&&(s.layers.mask=this._layers.mask);for(const m in this._previousTextures)this.toggleTexture(m);this.overrideMaterial!==null&&(r.overrideMaterial=this.overrideMaterial),o.setRenderTarget(this.renderTarget),o.setMRT(this._mrt),o.autoClear=!0,o.transparent=this.transparent,o.opaque=this.opaque,this.contextNode!==null&&((this._contextNodeCache===null||this._contextNodeCache.version!==this.version)&&(this._contextNodeCache={version:this.version,context:B2({...o.contextNode.getFlowContextData(),...this.contextNode.getFlowContextData()})}),o.contextNode=this._contextNodeCache.context);const p=r.name;r.name=this.name?this.name:r.name,o.render(r,s),r.name=p,r.overrideMaterial=f,o.setRenderTarget(n),o.setMRT(a),o.autoClear=l,o.transparent=u,o.opaque=c,o.contextNode=h,s.layers.mask=d}setSize(t,o){this._width=t,this._height=o;const r=Math.floor(this._width*this._resolutionScale),s=Math.floor(this._height*this._resolutionScale);this.renderTarget.setSize(r,s),this._scissor!==null?(this.renderTarget.scissor.copy(this._scissor).multiplyScalar(this._resolutionScale).floor(),this.renderTarget.scissorTest=!0):this.renderTarget.scissorTest=!1,this._viewport!==null&&this.renderTarget.viewport.copy(this._viewport).multiplyScalar(this._resolutionScale).floor()}setScissor(t,o,r,s){t===null?this._scissor=null:(this._scissor===null&&(this._scissor=new S1),t.isVector4?this._scissor.copy(t):this._scissor.set(t,o,r,s))}setViewport(t,o,r,s){t===null?this._viewport=null:(this._viewport===null&&(this._viewport=new S1),t.isVector4?this._viewport.copy(t):this._viewport.set(t,o,r,s))}dispose(){this.renderTarget.dispose()}};Y8.COLOR="color";Y8.DEPTH="depth";var Kg=B(([e,t])=>e.mul(t).clamp()).setLayout({name:"linearToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Yg=B(([e,t])=>(e=e.mul(t),e.div(e.add(1)).clamp())).setLayout({name:"reinhardToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),ev=B(([e,t])=>{e=e.mul(t),e=e.sub(.004).max(0);const o=e.mul(e.mul(6.2).add(.5)),r=e.mul(e.mul(6.2).add(1.7)).add(.06);return o.div(r).pow(2.2)}).setLayout({name:"cineonToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),tv=B(([e])=>{const t=e.mul(e.add(.0245786)).sub(90537e-9),o=e.mul(e.add(.432951).mul(.983729)).add(.238081);return t.div(o)}),ov=B(([e,t])=>{const o=m0(.59719,.35458,.04823,.076,.90834,.01566,.0284,.13383,.83777),r=m0(1.60475,-.53108,-.07367,-.10208,1.10813,-.00605,-.00327,-.07276,1.07602);return e=e.mul(t).div(.6),e=o.mul(e),e=tv(e),e=r.mul(e),e.clamp()}).setLayout({name:"acesFilmicToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),rv=m0(U(1.6605,-.1246,-.0182),U(-.5876,1.1329,-.1006),U(-.0728,-.0083,1.1187)),sv=m0(U(.6274,.0691,.0164),U(.3293,.9195,.088),U(.0433,.0113,.8956)),iv=B(([e])=>{const t=U(e).toVar(),o=U(t.mul(t)).toVar(),r=U(o.mul(o)).toVar();return C(15.5).mul(r.mul(o)).sub(d1(40.14,r.mul(t))).add(d1(31.96,r).sub(d1(6.868,o.mul(t))).add(d1(.4298,o).add(d1(.1191,t).sub(.00232))))}),nv=B(([e,t])=>{const o=U(e).toVar(),r=m0(U(.856627153315983,.137318972929847,.11189821299995),U(.0951212405381588,.761241990602591,.0767994186031903),U(.0482516061458583,.101439036467562,.811302368396859)),s=m0(U(1.1271005818144368,-.1413297634984383,-.14132976349843826),U(-.11060664309660323,1.157823702216272,-.11060664309660294),U(-.016493938717834573,-.016493938717834257,1.2519364065950405)),i=C(-12.47393),n=C(4.026069);return o.mulAssign(t),o.assign(sv.mul(o)),o.assign(r.mul(o)),o.assign(g0(o,1e-10)),o.assign(ut(o)),o.assign(o.sub(i).div(n.sub(i))),o.assign(Pt(o,0,1)),o.assign(iv(o)),o.assign(s.mul(o)),o.assign(Vr(g0(U(0),o),U(2.2))),o.assign(rv.mul(o)),o.assign(Pt(o,0,1)),o}).setLayout({name:"agxToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),av=B(([e,t])=>{const o=C(.76),r=C(.15);e=e.mul(t);const s=n3(e.r,n3(e.g,e.b)),i=$0(s.lessThan(.08),s.sub(d1(6.25,s.mul(s))),.04);e.subAssign(i);const n=g0(e.r,g0(e.g,e.b));x1(n.lessThan(o),()=>e);const a=U0(1,o),l=U0(1,a.mul(a).div(n.add(a.sub(o))));e.mulAssign(l.div(n));const u=U0(1,Ze(1,r.mul(n.sub(l)).add(1)));return C1(e,U(l),u)}).setLayout({name:"neutralToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),V1=class extends i1{static get type(){return"CodeNode"}constructor(e="",t=[],o=""){super("code"),this.isCodeNode=!0,this.global=!0,this.code=e,this.includes=t,this.language=o}setIncludes(e){return this.includes=e,this}getIncludes(){return this.includes}generate(e){const t=this.getIncludes(e);for(const r of t)r.build(e);const o=e.getCodeFromNode(this,this.getNodeType(e));return o.code=this.code,o.code}serialize(e){super.serialize(e),e.code=this.code,e.language=this.language}deserialize(e){super.deserialize(e),this.code=e.code,this.language=e.language}},lv=class extends V1{static get type(){return"FunctionNode"}constructor(e="",t=[],o=""){super(e,t,o)}generateNodeType(e){return this.getNodeFunction(e).type}getMemberType(e,t){const o=this.getNodeType(e);return e.getStructTypeNode(o).getMemberType(e,t)}getInputs(e){return this.getNodeFunction(e).inputs}getNodeFunction(e){const t=e.getDataFromNode(this);let o=t.nodeFunction;return o===void 0&&(o=e.parser.parseFunction(this.code),t.nodeFunction=o),o}generate(e,t){super.generate(e);const o=this.getNodeFunction(e),r=o.name,s=o.type,i=e.getCodeFromNode(this,s);r!==""&&(i.name=r);const n=e.getPropertyName(i);return i.code=this.getNodeFunction(e).getCode(n)+` -`,t==="property"?n:e.format(`${n}()`,s,t)}};function Bn(e){let t;const o=e.context.getViewZ;return o!==void 0&&(t=o(this)),(t||t0.z).negate()}var uv=B(([e,t],o)=>{const r=Bn(o);return we(e,t,r)}),cv=B(([e],t)=>{const o=Bn(t);return e.mul(e,o,o).negate().exp().oneMinus()}),fw=B(([e,t],o)=>{const r=Bn(o),s=t.sub(l3.y).max(0).toConst().mul(r).toConst();return e.mul(e,s,s).negate().exp().oneMinus()}),p7=B(([e,t])=>Y(t.toFloat().mix(J3.rgb,e.toVec3()),J3.a)),dv=class extends i1{constructor(e){super(),this.scope=e,this.isBarrierNode=!0}setup(e){e.allowEarlyReturns=!1,e.allowGlobalVariables=!1}generate(e){const{scope:t}=this,{renderer:o}=e;o.backend.isWebGLBackend===!0?e.addFlowCode(` // ${t}Barrier -`):e.addLineFlowCode(`${t}Barrier()`,this)}},pw=G1(dv),Ke=class extends i1{static get type(){return"AtomicFunctionNode"}constructor(e,t,o){super("uint"),this.method=e,this.pointerNode=t,this.valueNode=o,this.parents=!0}getInputType(e){return this.pointerNode.getNodeType(e)}generateNodeType(e){return this.getInputType(e)}generate(e){const t=e.getNodeProperties(this),o=t.parents,r=this.method,s=this.getNodeType(e),i=this.getInputType(e),n=this.pointerNode,a=this.valueNode,l=[];l.push(`&${n.build(e,i)}`),a!==null&&l.push(a.build(e,i));const u=`${e.getMethod(r,s)}( ${l.join(", ")} )`;if(o&&o.length===1&&o[0].isStackNode===!0)e.addLineFlowCode(u,this);else return t.constNode===void 0&&(t.constNode=ke(u,s).toConst()),t.constNode.build(e)}};Ke.ATOMIC_LOAD="atomicLoad";Ke.ATOMIC_STORE="atomicStore";Ke.ATOMIC_ADD="atomicAdd";Ke.ATOMIC_SUB="atomicSub";Ke.ATOMIC_MAX="atomicMax";Ke.ATOMIC_MIN="atomicMin";Ke.ATOMIC_AND="atomicAnd";Ke.ATOMIC_OR="atomicOr";Ke.ATOMIC_XOR="atomicXor";var mw=G1(Ke),$1=class st extends s0{static get type(){return"SubgroupFunctionNode"}constructor(t,o=null,r=null){super(),this.method=t,this.aNode=o,this.bNode=r}getInputType(t){const o=this.aNode?this.aNode.getNodeType(t):null,r=this.bNode?this.bNode.getNodeType(t):null;return(t.isMatrix(o)?0:t.getTypeLength(o))>(t.isMatrix(r)?0:t.getTypeLength(r))?o:r}generateNodeType(t){const o=this.method;return o===st.SUBGROUP_ELECT?"bool":o===st.SUBGROUP_BALLOT?"uvec4":this.getInputType(t)}generate(t,o){const r=this.method,s=this.getNodeType(t),i=this.getInputType(t),n=this.aNode,a=this.bNode,l=[];if(r===st.SUBGROUP_BROADCAST||r===st.SUBGROUP_SHUFFLE||r===st.QUAD_BROADCAST){const c=a.getNodeType(t);l.push(n.build(t,s),a.build(t,c==="float"?"int":s))}else r===st.SUBGROUP_SHUFFLE_XOR||r===st.SUBGROUP_SHUFFLE_DOWN||r===st.SUBGROUP_SHUFFLE_UP?l.push(n.build(t,s),a.build(t,"uint")):(n!==null&&l.push(n.build(t,i)),a!==null&&l.push(a.build(t,i)));const u=l.length===0?"()":`( ${l.join(", ")} )`;return t.format(`${t.getMethod(r,s)}${u}`,s,o)}serialize(t){super.serialize(t),t.method=this.method}deserialize(t){super.deserialize(t),this.method=t.method}};$1.SUBGROUP_ELECT="subgroupElect";$1.SUBGROUP_BALLOT="subgroupBallot";$1.SUBGROUP_ADD="subgroupAdd";$1.SUBGROUP_INCLUSIVE_ADD="subgroupInclusiveAdd";$1.SUBGROUP_EXCLUSIVE_AND="subgroupExclusiveAdd";$1.SUBGROUP_MUL="subgroupMul";$1.SUBGROUP_INCLUSIVE_MUL="subgroupInclusiveMul";$1.SUBGROUP_EXCLUSIVE_MUL="subgroupExclusiveMul";$1.SUBGROUP_AND="subgroupAnd";$1.SUBGROUP_OR="subgroupOr";$1.SUBGROUP_XOR="subgroupXor";$1.SUBGROUP_MIN="subgroupMin";$1.SUBGROUP_MAX="subgroupMax";$1.SUBGROUP_ALL="subgroupAll";$1.SUBGROUP_ANY="subgroupAny";$1.SUBGROUP_BROADCAST_FIRST="subgroupBroadcastFirst";$1.QUAD_SWAP_X="quadSwapX";$1.QUAD_SWAP_Y="quadSwapY";$1.QUAD_SWAP_DIAGONAL="quadSwapDiagonal";$1.SUBGROUP_BROADCAST="subgroupBroadcast";$1.SUBGROUP_SHUFFLE="subgroupShuffle";$1.SUBGROUP_SHUFFLE_XOR="subgroupShuffleXor";$1.SUBGROUP_SHUFFLE_UP="subgroupShuffleUp";$1.SUBGROUP_SHUFFLE_DOWN="subgroupShuffleDown";$1.QUAD_BROADCAST="quadBroadcast";var Go;function Hr(e){Go=Go||new WeakMap;let t=Go.get(e);return t===void 0&&Go.set(e,t={}),t}function En(e){const t=Hr(e);return t.shadowMatrix||(t.shadowMatrix=o1("mat4").setGroup(s1).onRenderUpdate(o=>((e.castShadow!==!0||o.renderer.shadowMap.enabled===!1)&&(e.shadow.camera.coordinateSystem!==o.camera.coordinateSystem&&(e.shadow.camera.coordinateSystem=o.camera.coordinateSystem,e.shadow.camera.updateProjectionMatrix()),e.shadow.updateMatrices(e)),e.shadow.matrix)))}function hv(e,t=l3){const o=En(e).mul(t);return o.xyz.div(o.w)}function e5(e){const t=Hr(e);return t.position||(t.position=o1(new z).setGroup(s1).onRenderUpdate((o,r)=>r.value.setFromMatrixPosition(e.matrixWorld)))}function fv(e){const t=Hr(e);return t.targetPosition||(t.targetPosition=o1(new z).setGroup(s1).onRenderUpdate((o,r)=>r.value.setFromMatrixPosition(e.target.matrixWorld)))}function t5(e){const t=Hr(e);return t.viewPosition||(t.viewPosition=o1(new z).setGroup(s1).onRenderUpdate(({camera:o},r)=>{r.value=r.value||new z,r.value.setFromMatrixPosition(e.matrixWorld),r.value.applyMatrix4(o.matrixWorldInverse)}))}var o5=e=>g3.transformDirection(e5(e).sub(fv(e))),pv=It("vec3","totalDiffuse"),mv=It("vec3","totalSpecular"),gv=It("vec3","outgoingLight"),vv=e=>e.sort((t,o)=>t.id-o.id),bv=(e,t)=>{for(const o of t)if(o.isAnalyticLightNode&&o.light.id===e)return o;return null},Os=new WeakMap,C3=[],r5=class extends i1{static get type(){return"LightsNode"}constructor(){super("vec3"),this.totalDiffuseNode=pv,this.totalSpecularNode=mv,this.outgoingLightNode=gv,this._lights=[],this.global=!0}customCacheKey(){const e=this._lights;for(let o=0;o0}},Nv=class extends i1{static get type(){return"ShadowBaseNode"}constructor(e){super(),this.light=e,this.updateBeforeType=u1.RENDER,this.isShadowBaseNode=!0}setupShadowPosition({context:e,material:t}){s5.assign(t.receivedShadowPositionNode||e.shadowPositionWorld||l3)}},s5=It("vec3","shadowPositionWorld");function Mv(e,t={}){return t.toneMapping=e.toneMapping,t.toneMappingExposure=e.toneMappingExposure,t.outputColorSpace=e.outputColorSpace,t.renderTarget=e.getRenderTarget(),t.activeCubeFace=e.getActiveCubeFace(),t.activeMipmapLevel=e.getActiveMipmapLevel(),t.renderObjectFunction=e.getRenderObjectFunction(),t.pixelRatio=e.getPixelRatio(),t.mrt=e.getMRT(),t.clearColor=e.getClearColor(t.clearColor||new de),t.clearAlpha=e.getClearAlpha(),t.autoClear=e.autoClear,t.scissorTest=e.getScissorTest(),t}function yv(e,t){return t=Mv(e,t),e.setMRT(null),e.setRenderObjectFunction(null),e.setClearColor(0,1),e.autoClear=!0,t}function xv(e,t){e.toneMapping=t.toneMapping,e.toneMappingExposure=t.toneMappingExposure,e.outputColorSpace=t.outputColorSpace,e.setRenderTarget(t.renderTarget,t.activeCubeFace,t.activeMipmapLevel),e.setRenderObjectFunction(t.renderObjectFunction),e.setPixelRatio(t.pixelRatio),e.setMRT(t.mrt),e.setClearColor(t.clearColor,t.clearAlpha),e.autoClear=t.autoClear,e.setScissorTest(t.scissorTest)}function Sv(e,t={}){return t.background=e.background,t.backgroundNode=e.backgroundNode,t.overrideMaterial=e.overrideMaterial,t}function Tv(e,t){return t=Sv(e,t),e.background=null,e.backgroundNode=null,e.overrideMaterial=null,t}function wv(e,t){e.background=t.background,e.backgroundNode=t.backgroundNode,e.overrideMaterial=t.overrideMaterial}function _v(e,t,o){return o=yv(e,o),o=Tv(t,o),o}function Av(e,t,o){xv(e,o),wv(t,o)}var Wr=new WeakMap,Cv=B(({depthTexture:e,shadowCoord:t,depthLayer:o})=>{let r=O1(e,t.xy).setName("t_basic");return e.isArrayTexture&&(r=r.depth(o)),r.compare(t.z)}),Rv=B(({depthTexture:e,shadowCoord:t,shadow:o,depthLayer:r})=>{const s=(c,d)=>{let h=O1(e,c);return e.isArrayTexture&&(h=h.depth(r)),h.compare(d)},i=X1("mapSize","vec2",o).setGroup(s1),n=X1("radius","float",o).setGroup(s1),a=n1(1).div(i),l=n.mul(a.x),u=K8(m3.xy).mul(6.28318530718);return P0(s(t.xy.add(Xe(0,5,u).mul(l)),t.z),s(t.xy.add(Xe(1,5,u).mul(l)),t.z),s(t.xy.add(Xe(2,5,u).mul(l)),t.z),s(t.xy.add(Xe(3,5,u).mul(l)),t.z),s(t.xy.add(Xe(4,5,u).mul(l)),t.z)).mul(1/5)}),Bv=B(({depthTexture:e,shadowCoord:t,shadow:o,depthLayer:r})=>{const s=X1("mapSize","vec2",o).setGroup(s1),i=n1(1).div(s),n=t.xy,a=qe(n.mul(s).add(.5)).toConst();n.subAssign(a.sub(.5).mul(i));const l=f=>{let p=O1(e,n).offset(f).gather();return e.isArrayTexture&&(p=p.depth(r)),p.compare(t.z)},u=l(O0(-1,1)).toConst(),c=l(O0(1,1)).toConst(),d=l(O0(-1,-1)).toConst(),h=l(O0(1,-1)).toConst();return P0(C1(u.x,c.y,a.x).add(u.y).add(c.x).mul(a.y),C1(u.w,c.z,a.x).add(u.z).add(c.w),C1(d.x,h.y,a.x).add(d.y).add(h.x),C1(d.w,h.z,a.x).add(d.z).add(h.w).mul(a.y.oneMinus())).mul(1/9)}),Ev=B(({depthTexture:e,shadowCoord:t,depthLayer:o},r)=>{let s=O1(e).sample(t.xy);e.isArrayTexture&&(s=s.depth(o)),s=s.rg;const i=s.x,n=g0(1e-7,s.y.mul(s.y)),a=r.renderer.reversedDepthBuffer?io(i,t.z):io(t.z,i),l=C(1).toVar();return x1(a.notEqual(1),()=>{const u=t.z.sub(i);let c=n.div(n.add(u.mul(u)));c=Pt(U0(c,.3).div(.65)),l.assign(g0(a,c))}),l}),Uv=e=>{let t=Wr.get(e);return t===void 0&&(t=new o0,t.colorNode=Y(0,0,0,1),t.isShadowPassMaterial=!0,t.name="ShadowMaterial",t.blending=0,t.fog=!1,Wr.set(e,t)),t},Wv=e=>{const t=Wr.get(e);t!==void 0&&(t.dispose(),Wr.delete(e))},m7=new kt,D2=[],Lv=(e,t,o,r)=>{D2[0]=e,D2[1]=t;let s=m7.get(D2);return(s===void 0||s.shadowType!==o||s.useVelocity!==r)&&(s=(i,n,a,l,u,c,d,h,f)=>{(i.castShadow===!0||i.receiveShadow&&o===3)&&(r&&(i4(i).useVelocity=!0),i.onBeforeShadow(e,i,a,t.camera,l,n.overrideMaterial,c),e.renderObject(i,n,a,l,u,c,d,h,f),i.onAfterShadow(e,i,a,t.camera,l,n.overrideMaterial,c))},s.shadowType=o,s.useVelocity=r,m7.set(D2,s)),D2[0]=null,D2[1]=null,s},Ov=B(({samples:e,radius:t,size:o,shadowPass:r,depthLayer:s})=>{const i=C(0).toVar("meanVertical"),n=C(0).toVar("squareMeanVertical"),a=e.lessThanEqual(C(1)).select(C(0),C(2).div(e.sub(1))),l=e.lessThanEqual(C(1)).select(C(0),C(-1));re({start:Q1(0),end:Q1(e),type:"int",condition:"<"},({i:c})=>{const d=l.add(C(c).mul(a));let h=r.sample(P0(m3.xy,n1(0,d).mul(t)).div(o));r.value.isArrayTexture&&(h=h.depth(s)),h=h.x,i.addAssign(h),n.addAssign(h.mul(h))}),i.divAssign(e),n.divAssign(e);const u=Lt(n.sub(i.mul(i)).max(0));return n1(i,u)}),Fv=B(({samples:e,radius:t,size:o,shadowPass:r,depthLayer:s})=>{const i=C(0).toVar("meanHorizontal"),n=C(0).toVar("squareMeanHorizontal"),a=e.lessThanEqual(C(1)).select(C(0),C(2).div(e.sub(1))),l=e.lessThanEqual(C(1)).select(C(0),C(-1));re({start:Q1(0),end:Q1(e),type:"int",condition:"<"},({i:c})=>{const d=l.add(C(c).mul(a));let h=r.sample(P0(m3.xy,n1(d,0).mul(t)).div(o));r.value.isArrayTexture&&(h=h.depth(s)),i.addAssign(h.x),n.addAssign(P0(h.y.mul(h.y),h.x.mul(h.x)))}),i.divAssign(e),n.divAssign(e);const u=Lt(n.sub(i.mul(i)).max(0));return n1(i,u)}),Pv=[Cv,Rv,Bv,Ev],Fs,zo=new j8,i5=class extends Nv{static get type(){return"ShadowNode"}constructor(e,t=null){super(e),this.shadow=t||e.shadow,this.shadowMap=null,this.vsmShadowMapVertical=null,this.vsmShadowMapHorizontal=null,this.vsmMaterialVertical=null,this.vsmMaterialHorizontal=null,this._node=null,this._currentShadowType=null,this._cameraFrameId=new WeakMap,this.isShadowNode=!0,this.depthLayer=0}setupShadowFilter(e,{filterFn:t,depthTexture:o,shadowCoord:r,shadow:s,depthLayer:i}){const n=r.x.greaterThanEqual(0).and(r.x.lessThanEqual(1)).and(r.y.greaterThanEqual(0)).and(r.y.lessThanEqual(1)).and(r.z.lessThanEqual(1)),a=t({depthTexture:o,shadowCoord:r,shadow:s,depthLayer:i});return n.select(a,C(1))}setupShadowCoord(e,t){const{shadow:o}=this,{renderer:r}=e,s=o.biasNode||X1("bias","float",o).setGroup(s1);let i=t,n;if(o.camera.isOrthographicCamera||r.logarithmicDepthBuffer!==!0)i=i.xyz.div(i.w),n=i.z;else{const a=i.w;i=i.xy.div(a);const l=X1("near","float",o.camera).setGroup(s1),u=X1("far","float",o.camera).setGroup(s1);n=_n(a.negate(),l,u)}return i=U(i.x,i.y.oneMinus(),r.reversedDepthBuffer?n.sub(s):n.add(s)),i}getShadowFilterFn(e){return Pv[e]}setupRenderTarget(e,t){const o=new ye(e.mapSize.width,e.mapSize.height);o.name="ShadowDepthTexture",o.compareFunction=t.renderer.reversedDepthBuffer?518:515;const r=t.createRenderTarget(e.mapSize.width,e.mapSize.height);return r.texture.name="ShadowMap",r.texture.type=e.mapType,r.depthTexture=o,{shadowMap:r,depthTexture:o}}setupShadow(e){const{renderer:t,camera:o}=e,{light:r,shadow:s}=this,{depthTexture:i,shadowMap:n}=this.setupRenderTarget(s,e),a=t.shadowMap.type,l=t.hasCompatibility(C2.TEXTURE_COMPARE);if((a===1||a===2)&&l?(i.minFilter=Z1,i.magFilter=Z1):(i.minFilter=ve,i.magFilter=ve),s.camera.coordinateSystem=o.coordinateSystem,s.camera.updateProjectionMatrix(),a===3&&s.isPointLightShadow!==!0){i.compareFunction=null,n.depth>1?(n._vsmShadowMapVertical||(n._vsmShadowMapVertical=e.createRenderTarget(s.mapSize.width,s.mapSize.height,{format:c2,type:se,depth:n.depth,depthBuffer:!1}),n._vsmShadowMapVertical.texture.name="VSMVertical"),this.vsmShadowMapVertical=n._vsmShadowMapVertical,n._vsmShadowMapHorizontal||(n._vsmShadowMapHorizontal=e.createRenderTarget(s.mapSize.width,s.mapSize.height,{format:c2,type:se,depth:n.depth,depthBuffer:!1}),n._vsmShadowMapHorizontal.texture.name="VSMHorizontal"),this.vsmShadowMapHorizontal=n._vsmShadowMapHorizontal):(this.vsmShadowMapVertical=e.createRenderTarget(s.mapSize.width,s.mapSize.height,{format:c2,type:se,depthBuffer:!1}),this.vsmShadowMapHorizontal=e.createRenderTarget(s.mapSize.width,s.mapSize.height,{format:c2,type:se,depthBuffer:!1}));let x=O1(i);i.isArrayTexture&&(x=x.depth(this.depthLayer));let S=O1(this.vsmShadowMapVertical.texture);i.isArrayTexture&&(S=S.depth(this.depthLayer));const R=X1("blurSamples","float",s).setGroup(s1),w=X1("radius","float",s).setGroup(s1),W=X1("mapSize","vec2",s).setGroup(s1);let O=this.vsmMaterialVertical||(this.vsmMaterialVertical=new o0);O.fragmentNode=Ov({samples:R,radius:w,size:W,shadowPass:x,depthLayer:this.depthLayer}).context(e.getSharedContext()),O.name="VSMVertical",O=this.vsmMaterialHorizontal||(this.vsmMaterialHorizontal=new o0),O.fragmentNode=Fv({samples:R,radius:w,size:W,shadowPass:S,depthLayer:this.depthLayer}).context(e.getSharedContext()),O.name="VSMHorizontal"}const u=X1("intensity","float",s).setGroup(s1),c=X1("normalBias","float",s).setGroup(s1),d=En(r),h=v3.mul(c);let f;!t.highPrecision||e.material.receivedShadowPositionNode||e.context.shadowPositionWorld?f=d.mul(s5.add(h)):f=o1("mat4").onObjectUpdate(({object:x},S)=>S.value.multiplyMatrices(d.value,x.matrixWorld)).mul(a0).add(d.mul(Y(h,0)));const p=this.setupShadowCoord(e,f),m=s.filterNode||this.getShadowFilterFn(t.shadowMap.type)||null;if(m===null)throw new Error("THREE.WebGPURenderer: Shadow map type not supported yet.");const b=a===3&&s.isPointLightShadow!==!0?this.vsmShadowMapHorizontal.texture:i,N=this.setupShadowFilter(e,{filterFn:m,shadowTexture:n.texture,depthTexture:b,shadowCoord:p,shadow:s,depthLayer:this.depthLayer});let v;t.shadowMap.transmitted===!0&&(n.texture.isCubeTexture?v=L0(n.texture,p.xyz):(v=O1(n.texture,p),i.isArrayTexture&&(v=v.depth(this.depthLayer))));let M;v?M=C1(1,N.rgb.mix(v,1),u.mul(v.a)).toVar():M=C1(1,N,u).toVar(),this.shadowMap=n,this.shadow.map=n;const T=`${this.light.type} Shadow [ ${this.light.name||"ID: "+this.light.id} ]`;return v&&M.toInspector(`${T} / Color`,()=>this.shadowMap.texture.isCubeTexture?L0(this.shadowMap.texture,Pa()):O1(this.shadowMap.texture)),M.toInspector(`${T} / Depth`,()=>{const x=X1("near","float",this.shadow.camera),S=X1("far","float",this.shadow.camera);let R;this.shadowMap.texture.isCubeTexture?R=L0(this.shadowMap.depthTexture,Pa()).r:R=O1(this.shadowMap.depthTexture).r;let w;return this.shadow.camera.isPerspectiveCamera?w=wn(R,x,S):w=Cp(R,x,S),w=s3(w,x,S),w.oneMinus()})}setup(e){if(e.renderer.shadowMap.enabled!==!1)return B(()=>{const t=e.renderer.shadowMap.type;this._currentShadowType!==t&&(this._reset(),this._node=null);let o=this._node;return this.setupShadowPosition(e),o===null&&(this._node=o=this.setupShadow(e),this._currentShadowType=t),e.material.receivedShadowNode&&(o=e.material.receivedShadowNode(o)),o})()}renderShadow(e){const{shadow:t,shadowMap:o,light:r}=this,{renderer:s,scene:i}=e;t.updateMatrices(r),o.setSize(t.mapSize.width,t.mapSize.height,o.depth);const n=i.name;i.name=`Shadow Map [ ${r.name||"ID: "+r.id} ]`,s.render(i,t.camera),i.name=n}updateShadow(e){const{shadowMap:t,light:o,shadow:r}=this,{renderer:s,scene:i,camera:n}=e,a=s.shadowMap.type,l=t.depthTexture.version;this._depthVersionCached=l;const u=r.camera.layers.mask;(r.camera.layers.mask&4294967294)===0&&(r.camera.layers.mask=n.layers.mask);const c=s.getRenderObjectFunction(),d=s.getMRT(),h=d?d.has("velocity"):!1;Fs=_v(s,i,Fs),i.overrideMaterial=Uv(o),s.setRenderObjectFunction(Lv(s,r,a,h)),s.setClearColor(0,0),s.setRenderTarget(t),this.renderShadow(e),s.setRenderObjectFunction(c),a===3&&r.isPointLightShadow!==!0&&this.vsmPass(s),r.camera.layers.mask=u,Av(s,i,Fs)}vsmPass(e){const{shadow:t}=this,o=this.shadowMap.depth;this.vsmShadowMapVertical.setSize(t.mapSize.width,t.mapSize.height,o),this.vsmShadowMapHorizontal.setSize(t.mapSize.width,t.mapSize.height,o),e.setRenderTarget(this.vsmShadowMapVertical),zo.material=this.vsmMaterialVertical,zo.render(e),e.setRenderTarget(this.vsmShadowMapHorizontal),zo.material=this.vsmMaterialHorizontal,zo.render(e)}dispose(){this._reset(),super.dispose()}_reset(){this._currentShadowType=null,Wv(this.light),this.shadowMap&&(this.shadowMap.dispose(),this.shadowMap=null),this.vsmShadowMapVertical!==null&&(this.vsmShadowMapVertical.dispose(),this.vsmShadowMapVertical=null,this.vsmMaterialVertical.dispose(),this.vsmMaterialVertical=null),this.vsmShadowMapHorizontal!==null&&(this.vsmShadowMapHorizontal.dispose(),this.vsmShadowMapHorizontal=null,this.vsmMaterialHorizontal.dispose(),this.vsmMaterialHorizontal=null)}updateBefore(e){const{shadow:t}=this;let o=t.needsUpdate||t.autoUpdate;o&&(this._cameraFrameId[e.camera]===e.frameId&&(o=!1),this._cameraFrameId[e.camera]=e.frameId),o&&(this.updateShadow(e),this.shadowMap.depthTexture.version===this._depthVersionCached&&(t.needsUpdate=!1))}},Dv=(e,t)=>new i5(e,t),kv=new de,g7=new q0,R3=new z,Ps=new z,Xv=[new z(1,0,0),new z(-1,0,0),new z(0,-1,0),new z(0,1,0),new z(0,0,1),new z(0,0,-1)],Iv=[new z(0,-1,0),new z(0,-1,0),new z(0,0,-1),new z(0,0,1),new z(0,-1,0),new z(0,-1,0)],Gv=[new z(1,0,0),new z(-1,0,0),new z(0,1,0),new z(0,-1,0),new z(0,0,1),new z(0,0,-1)],zv=[new z(0,-1,0),new z(0,-1,0),new z(0,0,1),new z(0,0,-1),new z(0,-1,0),new z(0,-1,0)],Vv=B(({depthTexture:e,bd3D:t,dp:o})=>L0(e,t).compare(o)),Qv=B(({depthTexture:e,bd3D:t,dp:o,shadow:r})=>{const s=X1("radius","float",r).setGroup(s1),i=X1("mapSize","vec2",r).setGroup(s1),n=s.div(i.x),a=Q0(t),l=le(S2(t,a.x.greaterThan(a.z).select(U(0,1,0),U(1,0,0)))),u=S2(t,l),c=K8(m3.xy).mul(6.28318530718),d=Xe(0,5,c),h=Xe(1,5,c),f=Xe(2,5,c),p=Xe(3,5,c),m=Xe(4,5,c);return L0(e,t.add(l.mul(d.x).add(u.mul(d.y)).mul(n))).compare(o).add(L0(e,t.add(l.mul(h.x).add(u.mul(h.y)).mul(n))).compare(o)).add(L0(e,t.add(l.mul(f.x).add(u.mul(f.y)).mul(n))).compare(o)).add(L0(e,t.add(l.mul(p.x).add(u.mul(p.y)).mul(n))).compare(o)).add(L0(e,t.add(l.mul(m.x).add(u.mul(m.y)).mul(n))).compare(o)).mul(1/5)}),$v=B(({filterFn:e,depthTexture:t,shadowCoord:o,shadow:r},s)=>{const i=o.xyz.toConst(),n=i.abs().toConst(),a=n.x.max(n.y).max(n.z),l=o1("float").setGroup(s1).onRenderUpdate(()=>r.camera.near),u=o1("float").setGroup(s1).onRenderUpdate(()=>r.camera.far),c=X1("bias","float",r).setGroup(s1),d=C(1).toVar();return x1(a.sub(u).lessThanEqual(0).and(a.sub(l).greaterThanEqual(0)),()=>{let h;s.renderer.reversedDepthBuffer?(h=Rp(a.negate(),l,u),h.subAssign(c)):s.renderer.logarithmicDepthBuffer?(h=_n(a.negate(),l,u),h.addAssign(c)):(h=T8(a.negate(),l,u),h.addAssign(c));const f=i.normalize();d.assign(e({depthTexture:t,bd3D:f,dp:h,shadow:r}))}),d}),Zv=class extends i5{static get type(){return"PointShadowNode"}constructor(e,t=null){super(e,t)}getShadowFilterFn(e){return e===0?Vv:Qv}setupShadowCoord(e,t){return t}setupShadowFilter(e,{filterFn:t,depthTexture:o,shadowCoord:r,shadow:s}){return $v({filterFn:t,depthTexture:o,shadowCoord:r,shadow:s})}setupRenderTarget(e,t){const o=new V9(e.mapSize.width);o.name="PointShadowDepthTexture",o.compareFunction=t.renderer.reversedDepthBuffer?518:515;const r=t.createCubeRenderTarget(e.mapSize.width);return r.texture.name="PointShadowMap",r.depthTexture=o,{shadowMap:r,depthTexture:o}}renderShadow(e){const{shadow:t,shadowMap:o,light:r}=this,{renderer:s,scene:i}=e,n=t.camera,a=t.matrix,l=s.coordinateSystem===F6,u=l?Xv:Gv,c=l?Iv:zv;o.setSize(t.mapSize.width,t.mapSize.width);const d=s.autoClear,h=s.getClearColor(kv),f=s.getClearAlpha();s.autoClear=!1,s.setClearColor(t.clearColor,t.clearAlpha);for(let p=0;p<6;p++){s.setRenderTarget(o,p),s.clear();const m=r.distance||n.far;m!==n.far&&(n.far=m,n.updateProjectionMatrix()),R3.setFromMatrixPosition(r.matrixWorld),n.position.copy(R3),Ps.copy(n.position),Ps.add(u[p]),n.up.copy(c[p]),n.lookAt(Ps),n.updateMatrixWorld(),a.makeTranslation(-R3.x,-R3.y,-R3.z),g7.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),t._frustum.setFromProjectionMatrix(g7,n.coordinateSystem,n.reversedDepth);const b=i.name;i.name=`Point Light Shadow [ ${r.name||"ID: "+r.id} ] - Face ${p+1}`,s.render(i,n),i.name=b}s.autoClear=d,s.setClearColor(h,f)}},qv=(e,t)=>new Zv(e,t),O2=class extends b3{static get type(){return"AnalyticLightNode"}constructor(e=null){super(),this.light=e,this.color=new de,this.colorNode=e&&e.colorNode||o1(this.color).setGroup(s1),this.baseColorNode=null,this.shadowNode=null,this.shadowColorNode=null,this.isAnalyticLightNode=!0,this.updateType=u1.FRAME,e&&e.shadow&&(this._shadowDisposeListener=()=>{this.disposeShadow()},e.addEventListener("dispose",this._shadowDisposeListener))}dispose(){this._shadowDisposeListener&&this.light.removeEventListener("dispose",this._shadowDisposeListener),super.dispose()}disposeShadow(){this.shadowNode!==null&&(this.shadowNode.dispose(),this.shadowNode=null),this.shadowColorNode=null,this.baseColorNode!==null&&(this.colorNode=this.baseColorNode,this.baseColorNode=null)}getHash(){return this.light.uuid}getLightVector(e){return t5(this.light).sub(e.context.positionView||t0)}setupDirect(){}setupDirectRectArea(){}setupShadowNode(){return Dv(this.light)}setupShadow(e){const{renderer:t}=e;if(t.shadowMap.enabled===!1)return;let o=this.shadowColorNode;if(o===null){const r=this.light.shadow.shadowNode;let s;r!==void 0?s=K(r):s=this.setupShadowNode(),this.shadowNode=s,this.shadowColorNode=o=this.colorNode.mul(s),this.baseColorNode=this.colorNode}e.context.getShadow&&(o=e.context.getShadow(this,e)),this.colorNode=o}setup(e){this.colorNode=this.baseColorNode||this.colorNode,this.light.castShadow?e.object.receiveShadow&&this.setupShadow(e):this.shadowNode!==null&&(this.shadowNode.dispose(),this.shadowNode=null,this.shadowColorNode=null);const t=this.setupDirect(e),o=this.setupDirectRectArea(e);t&&e.lightsNode.setupDirectLight(e,this,t),o&&e.lightsNode.setupDirectRectAreaLight(e,this,o)}update(){const{light:e}=this;this.color.copy(e.color).multiplyScalar(e.intensity)}},n5=B(({lightDistance:e,cutoffDistance:t,decayExponent:o})=>{const r=e.pow(o).max(.01).reciprocal();return t.greaterThan(0).select(r.mul(e.div(t).pow4().oneMinus().clamp().pow2()),r)}),Hv=({color:e,lightVector:t,cutoffDistance:o,decayExponent:r})=>{const s=t.normalize(),i=t.length(),n=n5({lightDistance:i,cutoffDistance:o,decayExponent:r});return{lightDirection:s,lightColor:e.mul(n)}},Jv=class extends O2{static get type(){return"PointLightNode"}constructor(e=null){super(e),this.cutoffDistanceNode=o1(0).setGroup(s1),this.decayExponentNode=o1(2).setGroup(s1)}update(e){const{light:t}=this;super.update(e),this.cutoffDistanceNode.value=t.distance,this.decayExponentNode.value=t.decay}setupShadowNode(){return qv(this.light)}setupDirect(e){return Hv({color:this.colorNode,lightVector:this.getLightVector(e),cutoffDistance:this.cutoffDistanceNode,decayExponent:this.decayExponentNode})}},gw=B(([e=U2()],{renderer:t,material:o})=>{const r=L4(e.mul(2).sub(1));let s;if(o.alphaToCoverage&&t.currentSamples>0){const i=C(r.fwidth()).toVar();s=we(i.oneMinus(),i.add(1),r).oneMinus()}else s=$0(r.greaterThan(1),0,1);return s}),jv=B(([e,t])=>{const o=e.x,r=e.y,s=e.z;let i=t.element(0).mul(.886227);return i=i.add(t.element(1).mul(2*.511664).mul(r)),i=i.add(t.element(2).mul(2*.511664).mul(s)),i=i.add(t.element(3).mul(2*.511664).mul(o)),i=i.add(t.element(4).mul(2*.429043).mul(o).mul(r)),i=i.add(t.element(5).mul(2*.429043).mul(r).mul(s)),i=i.add(t.element(6).mul(s.mul(s).mul(.743125).sub(.247708))),i=i.add(t.element(7).mul(2*.429043).mul(o).mul(s)),i=i.add(t.element(8).mul(.429043).mul(d1(o,o).sub(d1(r,r)))),i}),he=new Cn,Kv=class extends Gt{constructor(e,t){super(),this.renderer=e,this.nodes=t}update(e,t,o){const r=this.renderer,s=this.nodes.getBackgroundNode(e)||e.background;let i=!1;if(s===null)r._clearColor.getRGB(he),he.a=r._clearColor.a;else if(s.isColor===!0)s.getRGB(he),he.a=1,i=!0;else if(s.isNode===!0){const a=this.get(e),l=s;he.copy(r._clearColor);let u=a.backgroundMesh;if(u===void 0){let v=function(){s.removeEventListener("dispose",v),u.material.dispose(),u.geometry.dispose()};const d=Y(l).mul(h7).context({getUV:()=>Jg.mul(rf),getTextureLevel:()=>Hg}),h=Ne.element(3).element(3).equal(1),f=Ze(1,Ne.element(1).element(1)).mul(3),p=h.select(a0.mul(f),a0),m=w2.mul(Y(p,0));let b=Ne.mul(Y(m.xyz,1));b=b.setZ(b.w);const N=new o0;N.name="Background.material",N.side=1,N.depthTest=!1,N.depthWrite=!1,N.allowOverride=!1,N.fog=!1,N.lights=!1,N.vertexNode=b,N.colorNode=d,a.backgroundMeshNode=d,a.backgroundMesh=u=new $e(new f9(1,32,32),N),u.frustumCulled=!1,u.name="Background.mesh",s.addEventListener("dispose",v)}const c=l.getCacheKey();a.backgroundCacheKey!==c&&(a.backgroundMeshNode.node=Y(l).mul(h7),a.backgroundMeshNode.needsUpdate=!0,u.material.needsUpdate=!0,a.backgroundCacheKey=c),t.unshift(u,u.geometry,u.material,0,0,null,null)}else G("Renderer: Unsupported background configuration.",s);const n=r.xr.getEnvironmentBlendMode();if(n==="additive"?he.set(0,0,0,1):n==="alpha-blend"&&he.set(0,0,0,0),r.autoClear===!0||i===!0){const a=o.clearColorValue;a.r=he.r,a.g=he.g,a.b=he.b,a.a=he.a,(r.backend.isWebGLBackend===!0||r.alpha===!0)&&(a.r*=a.a,a.g*=a.a,a.b*=a.a),o.depthClearValue=r.getClearDepth(),o.stencilClearValue=r.getClearStencil(),o.clearColor=r.autoClearColor===!0,o.clearDepth=r.autoClearDepth===!0,o.clearStencil=r.autoClearStencil===!0}else o.clearColor=!1,o.clearDepth=!1,o.clearStencil=!1}},Yv=0,Pi=class{constructor(e="",t=[]){this.name=e,this.bindings=t,this.id=Yv++}},eb=class{constructor(e,t,o,r,s,i,n,a,l,u,c=[]){this.vertexShader=e,this.fragmentShader=t,this.computeShader=o,this.transforms=c,this.nodeAttributes=r,this.bindings=s,this.updateNodes=i,this.updateBeforeNodes=n,this.updateAfterNodes=a,this.observer=l,this.hardwareClipping=u,this.usedTimes=0}createBindings(){const e=[];for(const t of this.bindings)if(t.bindings[0].groupNode.shared!==!0){const o=new Pi(t.name,[]);e.push(o);for(const r of t.bindings)o.bindings.push(r.clone())}else e.push(t);return e}},v7=class{constructor(e,t,o=null){this.isNodeAttribute=!0,this.name=e,this.type=t,this.node=o}},tb=class{constructor(e,t,o){this.isNodeUniform=!0,this.name=e,this.type=t,this.node=o}get value(){return this.node.value}set value(e){this.node.value=e}get id(){return this.node.id}get groupNode(){return this.node.groupNode}},a5=class{constructor(e,t,o=!1,r=null){this.isNodeVar=!0,this.name=e,this.type=t,this.readOnly=o,this.count=r}},ob=class extends a5{constructor(e,t,o=null,r=null){super(e,t),this.needsInterpolation=!1,this.isNodeVarying=!0,this.interpolationType=o,this.interpolationSampling=r}},rb=class{constructor(e,t,o=""){this.name=e,this.type=t,this.code=o,Object.defineProperty(this,"isNodeCode",{value:!0})}},sb=0,Ds=class{constructor(e=null){this.id=sb++,this.nodesData=new WeakMap,this.parent=e}getData(e){let t=this.nodesData.get(e);return t===void 0&&this.parent!==null&&(t=this.parent.getData(e)),t}setData(e,t){this.nodesData.set(e,t)}},ib=class{constructor(e,t){this.name=e,this.members=t,this.output=!1}},zt=class{constructor(e,t){this.name=e,this.value=t,this.boundary=0,this.itemSize=0,this.offset=0,this.index=-1}setValue(e){this.value=e}getValue(){return this.value}},nb=class extends zt{constructor(e,t=0){super(e,t),this.isNumberUniform=!0,this.boundary=4,this.itemSize=1}},ab=class extends zt{constructor(e,t=new p1){super(e,t),this.isVector2Uniform=!0,this.boundary=8,this.itemSize=2}},lb=class extends zt{constructor(e,t=new z){super(e,t),this.isVector3Uniform=!0,this.boundary=16,this.itemSize=3}},ub=class extends zt{constructor(e,t=new S1){super(e,t),this.isVector4Uniform=!0,this.boundary=16,this.itemSize=4}},cb=class extends zt{constructor(e,t=new de){super(e,t),this.isColorUniform=!0,this.boundary=16,this.itemSize=3}},db=class extends zt{constructor(e,t=new X6){super(e,t),this.isMatrix2Uniform=!0,this.boundary=8,this.itemSize=4}},hb=class extends zt{constructor(e,t=new mo){super(e,t),this.isMatrix3Uniform=!0,this.boundary=48,this.itemSize=12}},fb=class extends zt{constructor(e,t=new q0){super(e,t),this.isMatrix4Uniform=!0,this.boundary=64,this.itemSize=16}},pb=class extends nb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},mb=class extends ab{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},gb=class extends lb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},vb=class extends ub{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},bb=class extends cb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},Nb=class extends db{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},Mb=class extends hb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},yb=class extends fb{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}},xb=0,b7=new WeakMap,N7=new WeakMap,Sb=new WeakMap,Tb=new Map([[Int8Array,"int"],[Int16Array,"int"],[Int32Array,"int"],[Uint8Array,"uint"],[Uint16Array,"uint"],[Uint32Array,"uint"],[Float32Array,"float"]]),Vo=e=>/e/g.test(e)?String(e).replace(/\+/g,""):(e=Number(e),e+(e%1?"":".0")),l5=e=>{if(e.writeUsageCount>0)return!0;if(e.subBuildsCache!==void 0){for(const t in e.subBuildsCache)if(l5(e.subBuildsCache[t]))return!0}return!1},u5=class{constructor(e,t,o){this.object=e,this.material=e&&e.material||null,this.geometry=e&&e.geometry||null,this.renderer=t,this.parser=o,this.scene=null,this.camera=null,this.nodes=new Set,this.sequentialNodes=new Set,this.updateNodes=[],this.updateBeforeNodes=[],this.updateAfterNodes=[],this.hashNodes={},this.observer=null,this.lightsNode=null,this.environmentNode=null,this.fogNode=null,this.clippingContext=null,this.hardwareClipping=!1,this.vertexShader=null,this.fragmentShader=null,this.computeShader=null,this.flowNodes={vertex:[],fragment:[],compute:[]},this.flowCode={vertex:"",fragment:"",compute:""},this.uniforms={vertex:[],fragment:[],compute:[],index:0},this.structs={vertex:[],fragment:[],compute:[],index:0},this.types={vertex:[],fragment:[],compute:[],index:0},this.bindings={vertex:{},fragment:{},compute:{}},this.bindingsIndexes={},this.bindGroups=null,this.attributes=[],this.bufferAttributes=[],this.varyings=[],this.codes={},this.vars={},this.declarations={},this.flow={code:""},this.chaining=[],this.stack=Us(),this.stacks=[],this.tab=" ",this.currentFunctionNode=null,this.context={material:this.material},this.cache=new Ds,this.globalCache=this.cache,this.flowsData=new WeakMap,this.shaderStage=null,this.buildStage=null,this.subBuildLayers=[],this.activeStacks=[],this.subBuildFn=null,this.fnCall=null,Object.defineProperty(this,"id",{value:xb++})}isFlatShading(){return this.material.flatShading===!0||this.geometry.hasAttribute("normal")===!1}isOpaque(){const e=this.material;return e.transparent===!1&&e.blending===1&&e.alphaToCoverage===!1}createRenderTarget(e,t,o){return new Xt(e,t,o)}createCubeRenderTarget(e,t){return new R8(e,t)}includes(e){return this.nodes.has(e)}getOutputType(e=0){let t="vec4";const o=this.renderer.getRenderTarget();if(o!==null){const r=o.textures[e].type,s=o.textures[e].format;let i="vec";r===1013?i="ivec":r===1014&&(i="uvec"),s===1028||s===1029?r===1013?t="int":r===1014?t="uint":t="float":s===1030||s===1031?t=`${i}2`:s===1022||s===1032?t=`${i}3`:t=`${i}4`}return t}getOutputStructName(){}_getBindGroup(e,t){const o=t[0].groupNode;let r=o.shared;if(r)for(let i=1;ic.nodeUniform.node.id-d.nodeUniform.node.id);for(const c of u.uniforms)i+=c.nodeUniform.node.id}else i+=u.nodeUniform.id;const n=this.renderer._currentRenderContext||this.renderer;let a=b7.get(n);a===void 0&&(a=new Map,b7.set(n,a));const l=d3(i);s=a.get(l),s===void 0&&(s=new Pi(e,t),a.set(l,s))}else s=new Pi(e,t);return s}getBindGroupArray(e,t){const o=this.bindings[t];let r=o[e];return r===void 0&&(this.bindingsIndexes[e]===void 0&&(this.bindingsIndexes[e]={binding:0,group:Object.keys(this.bindingsIndexes).length}),o[e]=r=[]),r}getBindings(){let e=this.bindGroups;if(e===null){const t={},o=this.bindings;for(const r of ds)for(const s in o[r]){const i=o[r][s],n=t[s]||(t[s]=[]);for(const a of i)n.includes(a)===!1&&n.push(a)}e=[];for(const r in t){const s=t[r],i=this._getBindGroup(r,s);e.push(i)}this.bindGroups=e}return e}sortBindingGroups(){const e=this.getBindings();e.sort((t,o)=>t.bindings[0].groupNode.order-o.bindings[0].groupNode.order);for(let t=0;t=0?`${Math.round(t)}u`:"0u";if(e==="bool")return t?"true":"false";if(e==="color")return`${this.getType("vec3")}( ${Vo(t.r)}, ${Vo(t.g)}, ${Vo(t.b)} )`;const o=this.getTypeLength(e),r=this.getComponentType(e),s=i=>this.generateConst(r,i);if(o===2)return`${this.getType(e)}( ${s(t.x)}, ${s(t.y)} )`;if(o===3)return`${this.getType(e)}( ${s(t.x)}, ${s(t.y)}, ${s(t.z)} )`;if(o===4&&e!=="mat2")return`${this.getType(e)}( ${s(t.x)}, ${s(t.y)}, ${s(t.z)}, ${s(t.w)} )`;if(o>=4&&t&&(t.isMatrix2||t.isMatrix3||t.isMatrix4))return`${this.getType(e)}( ${t.elements.map(s).join(", ")} )`;if(o>4)return`${this.getType(e)}()`;throw new Error(`THREE.NodeBuilder: Type '${e}' not found in generate constant attempt.`)}getType(e){return e==="color"?"vec3":e}hasGeometryAttribute(e){return this.geometry&&this.geometry.getAttribute(e)!==void 0}getAttribute(e,t){const o=this.attributes;for(const s of o)if(s.name===e)return s;const r=new v7(e,t);return this.registerDeclaration(r),o.push(r),r}getPropertyName(e){return e.name}isVector(e){return/vec\d/.test(e)}isMatrix(e){return/mat\d/.test(e)}isReference(e){return e==="void"||e==="property"||e==="sampler"||e==="samplerComparison"||e==="texture"||e==="cubeTexture"||e==="storageTexture"||e==="depthTexture"||e==="texture3D"}needsToWorkingColorSpace(){return!1}getComponentTypeFromTexture(e){const t=e.type;return e.isDepthTexture===!0?"float":t===1013?"int":t===1014?"uint":"float"}getElementType(e){return e==="mat2"?"vec2":e==="mat3"?"vec3":e==="mat4"?"vec4":this.getComponentType(e)}getComponentType(e){if(e=this.getVectorType(e),e==="float"||e==="bool"||e==="int"||e==="uint")return e;const t=/(b|i|u|)(vec|mat)([2-4])/.exec(e);return t===null?null:t[1]==="b"?"bool":t[1]==="i"?"int":t[1]==="u"?"uint":"float"}getVectorType(e){return e==="color"?"vec3":e==="texture"||e==="cubeTexture"||e==="storageTexture"||e==="texture3D"?"vec4":e}getTypeFromLength(e,t="float"){if(e===1)return t;let o=s4(e);const r=t==="float"?"":t[0];return/mat2/.test(t)===!0&&(o=o.replace("vec","mat")),r+o}getTypeFromArray(e){return Tb.get(e.constructor)}isInteger(e){return/int|uint|(i|u)vec/.test(e)}getTypeFromAttribute(e){let t=e;e.isInterleavedBufferAttribute&&(t=e.data);const o=t.array,r=e.itemSize,s=e.normalized;let i;return!(e instanceof B6)&&s!==!0&&(i=this.getTypeFromArray(o)),this.getTypeFromLength(r,i)}getTypeLength(e){const t=this.getVectorType(e),o=/vec([2-4])/.exec(t);return o!==null?Number(o[1]):t==="float"||t==="bool"||t==="int"||t==="uint"?1:/mat2/.test(e)===!0?4:/mat3/.test(e)===!0?9:/mat4/.test(e)===!0?16:0}getVectorFromMatrix(e){return e.replace("mat","vec")}changeComponentType(e,t){return this.getTypeFromLength(this.getTypeLength(e),t)}getIntegerType(e){const t=this.getComponentType(e);return t==="int"||t==="uint"?e:this.changeComponentType(e,"int")}setActiveStack(e){this.activeStacks.push(e)}removeActiveStack(e){if(this.activeStacks[this.activeStacks.length-1]===e)this.activeStacks.pop();else throw new Error("THREE.NodeBuilder: Invalid active stack removal.")}getActiveStack(){return this.activeStacks[this.activeStacks.length-1]}getBaseStack(){return this.activeStacks[0]}addStack(){this.stack=Us(this.stack);const e=d4();return this.stacks.push(e),Ar(this.stack),this.stack}removeStack(){const e=this.stack;for(const t of e.nodes){const o=this.getDataFromNode(t);o.stack=e}return this.stack=e.parent,Ar(this.stacks.pop()),e}getDataFromNode(e,t=this.shaderStage,o=null){o=o===null?e.isGlobal(this)?this.globalCache:this.cache:o;let r=o.getData(e);r===void 0&&(r={},o.setData(e,r)),r[t]===void 0&&(r[t]={});let s=r[t];if(this.subBuildLayers.length===0)return s;const i=r.any?r.any.subBuilds:null,n=this.getClosestSubBuild(i);return n&&(s.subBuildsCache===void 0&&(s.subBuildsCache={}),s=s.subBuildsCache[n]||(s.subBuildsCache[n]={}),s.subBuilds=i),s}getNodeProperties(e,t="any"){const o=this.getDataFromNode(e,t);return o.properties||(o.properties={outputNode:null})}getBufferAttributeFromNode(e,t,o=null){const r=this.getDataFromNode(e,"vertex");let s=r.bufferAttribute;if(s===void 0){const i=this.uniforms.index++;o===null&&(o="nodeAttribute"+i),s=new v7(o,t,e),this.bufferAttributes.push(s),r.bufferAttribute=s}return s}getStructTypeNode(e,t=this.shaderStage){return this.types[t][e]||null}getStructTypeFromNode(e,t,o=null,r=this.shaderStage){const s=this.getDataFromNode(e,r,this.globalCache);let i=s.structType;if(i===void 0){const n=this.structs.index++;o===null&&(o="StructType"+n),i=new ib(o,t),this.structs[r].push(i),this.types[r][o]=e,s.structType=i}return i}getOutputStructTypeFromNode(e,t){const o=this.getStructTypeFromNode(e,t,"OutputType","fragment");return o.output=!0,o}getUniformFromNode(e,t,o=this.shaderStage,r=null){const s=this.getDataFromNode(e,o,this.globalCache);let i=s.uniform;if(i===void 0){const n=this.uniforms.index++;i=new tb(r||"nodeUniform"+n,t,e),this.uniforms[o].push(i),this.registerDeclaration(i),s.uniform=i}return i}getVarFromNode(e,t=null,o=e.getNodeType(this),r=this.shaderStage,s=!1){const i=this.getDataFromNode(e,r),n=this.getSubBuildProperty("variable",i.subBuilds);let a=i[n];if(a===void 0){const l=s?"_const":"_var",u=this.vars[r]||(this.vars[r]=[]),c=this.vars[l]||(this.vars[l]=0);t===null&&(t=(s?"nodeConst":"nodeVar")+c,this.vars[l]++),n!=="variable"&&(t=this.getSubBuildProperty(t,i.subBuilds));const d=e.getArrayCount(this);a=new a5(t,o,s,d),s||u.push(a),this.registerDeclaration(a),i[n]=a}return a}isDeterministic(e){if(e.isMathNode)return this.isDeterministic(e.aNode)&&(e.bNode?this.isDeterministic(e.bNode):!0)&&(e.cNode?this.isDeterministic(e.cNode):!0);if(e.isOperatorNode)return this.isDeterministic(e.aNode)&&(e.bNode?this.isDeterministic(e.bNode):!0);if(e.isArrayNode){if(e.values!==null){for(const t of e.values)if(!this.isDeterministic(t))return!1}return!0}else if(e.isConstNode)return!0;return!1}getVaryingFromNode(e,t=null,o=e.getNodeType(this),r=null,s=null){const i=this.getDataFromNode(e,"any"),n=this.getSubBuildProperty("varying",i.subBuilds);let a=i[n];if(a===void 0){const l=this.varyings,u=l.length;t===null&&(t="nodeVarying"+u),n!=="varying"&&(t=this.getSubBuildProperty(t,i.subBuilds)),a=new ob(t,o,r,s),l.push(a),this.registerDeclaration(a),i[n]=a}return a}registerDeclaration(e){const t=this.shaderStage,o=this.declarations[t]||(this.declarations[t]={}),r=e.name;let s=r,i=this.getPropertyName(e),n=1;for(;o[i]!==void 0;)s=r+"_"+n++,e.name=s,i=this.getPropertyName(e);s!==r&&j(`TSL: Declaration name '${r}' of '${e.type}' already in use. Renamed to '${s}'.`),o[i]=e}getCodeFromNode(e,t,o=this.shaderStage){const r=this.getDataFromNode(e);let s=r.code;if(s===void 0){const i=this.codes[o]||(this.codes[o]=[]),n=i.length;s=new rb("nodeCode"+n,t),i.push(s),r.code=s}return s}addFlowCodeHierarchy(e,t){const{flowCodes:o,flowCodeBlock:r}=this.getDataFromNode(e);let s=!0,i=t;for(;i;){if(r.get(i)===!0){s=!1;break}i=this.getDataFromNode(i).parentNodeBlock}if(s)for(const n of o)this.addLineFlowCode(n)}addLineFlowCodeBlock(e,t,o){const r=this.getDataFromNode(e),s=r.flowCodes||(r.flowCodes=[]),i=r.flowCodeBlock||(r.flowCodeBlock=new WeakMap);s.push(t),i.set(o,!0)}addLineFlowCode(e,t=null){return e===""?this:(t!==null&&this.context.nodeBlock&&this.addLineFlowCodeBlock(t,e,this.context.nodeBlock),e=this.tab+e,/;\s*$/.test(e)||(e=e+`; -`),this.flow.code+=e,this)}addFlowCode(e){return this.flow.code+=e,this}addFlowTab(){return this.tab+=" ",this}removeFlowTab(){return this.tab=this.tab.slice(0,-1),this}getFlowData(e){return this.flowsData.get(e)}flowNode(e){const t=e.getNodeType(this),o=this.flowChildNode(e,t);return this.flowsData.set(e,o),o}addInclude(e){this.currentFunctionNode!==null&&this.currentFunctionNode.includes.push(e)}buildFunctionNode(e){const t=this.renderer.backend;let o=N7.get(t);o===void 0&&(o=new WeakMap,N7.set(t,o));let r=o.get(e);if(r===void 0){r=new lv;const s=this.currentFunctionNode;this.currentFunctionNode=r,r.code=this.buildFunctionCode(e),this.currentFunctionNode=s,o.set(e,r)}return r}flowShaderNode(e){const t=e.layout,o={[Symbol.iterator](){let i=0;const n=Object.values(this);return{next:()=>({value:n[i],done:i++>=n.length})}}};for(const i of t.inputs)o[i.name]=new Gg(i.type,i.name);e.layout=null;const r=e.call(o),s=this.flowStagesNode(r,t.type);return e.layout=t,s}flowBuildStage(e,t,o=null){const r=this.getBuildStage();this.setBuildStage(t);const s=e.build(this,o);return this.setBuildStage(r),s}flowStagesNode(e,t=null){const o=this.flow,r=this.vars,s=this.declarations,i=this.cache,n=this.buildStage,a=this.stack,l={code:""};this.flow=l,this.vars={},this.declarations={},this.cache=new Ds,this.stack=Us();for(const u of cs)this.setBuildStage(u),l.result=e.build(this,t);return l.vars=this.getVars(this.shaderStage),this.flow=o,this.vars=r,this.declarations=s,this.cache=i,this.stack=a,this.setBuildStage(n),l}getFunctionOperator(){return null}buildFunctionCode(){j("Abstract function.")}flowChildNode(e,t=null){const o=this.flow,r={code:""};return this.flow=r,r.result=e.build(this,t),this.flow=o,r}flowNodeFromShaderStage(e,t,o=null,r=null){const s=this.tab,i=this.cache,n=this.shaderStage,a=this.context;this.setShaderStage(e);const l={...this.context};delete l.nodeBlock,this.cache=this.globalCache,this.tab=" ",this.context=l;let u=null;if(this.buildStage==="generate"){const c=this.flowChildNode(t,o);r!==null&&(c.code+=`${this.tab+r} = ${c.result}; -`),this.flowCode[e]=this.flowCode[e]+c.code,u=c}else u=t.build(this);return this.setShaderStage(n),this.cache=i,this.tab=s,this.context=a,u}getAttributesArray(){return this.attributes.concat(this.bufferAttributes)}getAttributes(){j("Abstract function.")}getVaryings(){j("Abstract function.")}getVar(e,t,o=null){return`${o!==null?this.generateArrayDeclaration(e,o):this.getType(e)} ${t}`}getVars(e,t=!1){const o=[],r=this.vars[e];if(r!==void 0)for(const s of r)o.push(`${this.getVar(s.type,s.name,s.count)};`);return o.join(t?` -`:` - `)}getUniforms(){j("Abstract function.")}getCodes(e){const t=this.codes[e];let o="";if(t!==void 0)for(const r of t)o+=r.code+` -`;return o}getHash(){return this.vertexShader+this.fragmentShader+this.computeShader}setShaderStage(e){this.shaderStage=e}getShaderStage(){return this.shaderStage}setBuildStage(e){this.buildStage=e}getBuildStage(){return this.buildStage}buildCode(){j("Abstract function.")}get subBuild(){return this.subBuildLayers[this.subBuildLayers.length-1]||null}addSubBuild(e){this.subBuildLayers.push(e)}removeSubBuild(){return this.subBuildLayers.pop()}getClosestSubBuild(e){let t;if(e&&e.isNode?e.isShaderCallNodeInternal?t=e.shaderNode.subBuilds:e.isStackNode?t=[e.subBuild]:t=this.getDataFromNode(e,"any").subBuilds:e instanceof Set?t=[...e]:t=e,!t)return null;const o=this.subBuildLayers;for(let r=t.length-1;r>=0;r--){const s=t[r];if(o.includes(s))return s}return null}getSubBuildOutput(e){return this.getSubBuildProperty("outputNode",e)}getSubBuildProperty(e="",t=null){let o;t!==null?o=this.getClosestSubBuild(t):o=this.subBuildFn;let r;return o?r=e?o+"_"+e:o:r=e,r}prebuild(){const{object:e,renderer:t,material:o}=this;if(t.contextNode.isContextNode===!0?this.context={...this.context,...t.contextNode.getFlowContextData()}:G('NodeBuilder: "renderer.contextNode" must be an instance of `context()`.'),o&&o.contextNode&&(o.contextNode.isContextNode===!0?this.context={...this.context,...o.contextNode.getFlowContextData()}:G('NodeBuilder: "material.contextNode" must be an instance of `context()`.')),o!==null){let r=t.library.fromMaterial(o);r===null&&(G(`NodeBuilder: Material "${o.type}" is not compatible.`),r=new o0),r.build(this)}else this.addFlow("compute",e)}build(){this.prebuild();for(const e of cs){this.setBuildStage(e),this.context.position&&this.context.position.isNode&&this.flowNodeFromShaderStage("vertex",this.context.position);for(const t of ds){this.setShaderStage(t);const o=this.flowNodes[t];for(const r of o)e==="generate"?this.flowNode(r):r.build(this)}}return this.setBuildStage(null),this.setShaderStage(null),this.buildCode(),this.buildUpdateNodes(),this}async buildAsync(){this.prebuild();for(const e of cs){this.setBuildStage(e),this.context.position&&this.context.position.isNode&&this.flowNodeFromShaderStage("vertex",this.context.position);for(const t of ds){this.setShaderStage(t);const o=this.flowNodes[t];for(const r of o)e==="generate"?this.flowNode(r):r.build(this);await V6()}}return this.setBuildStage(null),this.setShaderStage(null),this.buildCode(),this.buildUpdateNodes(),this}getSharedDataFromNode(e){let t=Sb.get(e);return t===void 0&&(t={}),t}getNodeUniform(e,t){const o=this.getSharedDataFromNode(e);let r=o.cache;if(r===void 0){if(t==="float"||t==="int"||t==="uint")r=new pb(e);else if(t==="vec2"||t==="ivec2"||t==="uvec2")r=new mb(e);else if(t==="vec3"||t==="ivec3"||t==="uvec3")r=new gb(e);else if(t==="vec4"||t==="ivec4"||t==="uvec4")r=new vb(e);else if(t==="color")r=new bb(e);else if(t==="mat2")r=new Nb(e);else if(t==="mat3")r=new Mb(e);else if(t==="mat4")r=new yb(e);else throw new Error(`THREE.NodeBuilder: Uniform "${t}" not implemented.`);o.cache=r}return r}format(e,t,o){if(t=this.getVectorType(t),o=this.getVectorType(o),t===o||o===null||this.isReference(o))return e;const r=this.getTypeLength(t),s=this.getTypeLength(o);return r===16&&s===9?`${this.getType(o)}( ${e}[ 0 ].xyz, ${e}[ 1 ].xyz, ${e}[ 2 ].xyz )`:r===9&&s===4?`${this.getType(o)}( ${e}[ 0 ].xy, ${e}[ 1 ].xy )`:r>4||s>4||s===0?e:r===s?`${this.getType(o)}( ${e} )`:r>s?(e=o==="bool"?`all( ${e} )`:`${e}.${"xyz".slice(0,s)}`,this.format(e,this.getTypeFromLength(s,this.getComponentType(t)),o)):s===4&&r>1?`${this.getType(o)}( ${this.format(e,t,"vec3")}, 1.0 )`:r===2?`${this.getType(o)}( ${this.format(e,t,"vec2")}, 0.0 )`:(r===1&&s>1&&t!==this.getComponentType(o)&&(e=`${this.getType(this.getComponentType(o))}( ${e} )`),`${this.getType(o)}( ${e} )`)}getSignature(){return`// Three.js r185 - Node System -`}needsPreviousData(){const e=this.renderer.getMRT();return e&&e.has("velocity")||i4(this.object).useVelocity===!0}},M7=class{constructor(){this.time=0,this.deltaTime=0,this.frameId=0,this.renderId=0,this.updateMap=new WeakMap,this.updateBeforeMap=new WeakMap,this.updateAfterMap=new WeakMap,this.renderer=null,this.material=null,this.camera=null,this.object=null,this.scene=null}_getMaps(e,t){let o=e.get(t);return o===void 0&&(o={renderId:0,frameId:0},e.set(t,o)),o}updateBeforeNode(e){const t=e.getUpdateBeforeType(),o=e.updateReference(this);if(t===u1.FRAME){const r=this._getMaps(this.updateBeforeMap,o);if(r.frameId!==this.frameId){const s=r.frameId;r.frameId=this.frameId,e.updateBefore(this)===!1&&(r.frameId=s)}}else if(t===u1.RENDER){const r=this._getMaps(this.updateBeforeMap,o);if(r.renderId!==this.renderId){const s=r.renderId;r.renderId=this.renderId,e.updateBefore(this)===!1&&(r.renderId=s)}}else t===u1.OBJECT&&e.updateBefore(this)}updateAfterNode(e){const t=e.getUpdateAfterType(),o=e.updateReference(this);if(t===u1.FRAME){const r=this._getMaps(this.updateAfterMap,o);r.frameId!==this.frameId&&e.updateAfter(this)!==!1&&(r.frameId=this.frameId)}else if(t===u1.RENDER){const r=this._getMaps(this.updateAfterMap,o);r.renderId!==this.renderId&&e.updateAfter(this)!==!1&&(r.renderId=this.renderId)}else t===u1.OBJECT&&e.updateAfter(this)}updateNode(e){const t=e.getUpdateType(),o=e.updateReference(this);if(t===u1.FRAME){const r=this._getMaps(this.updateMap,o);r.frameId!==this.frameId&&e.update(this)!==!1&&(r.frameId=this.frameId)}else if(t===u1.RENDER){const r=this._getMaps(this.updateMap,o);r.renderId!==this.renderId&&e.update(this)!==!1&&(r.renderId=this.renderId)}else t===u1.OBJECT&&e.update(this)}update(){this.frameId++,this.lastTime===void 0&&(this.lastTime=performance.now()),this.deltaTime=(performance.now()-this.lastTime)/1e3,this.lastTime=performance.now(),this.time+=this.deltaTime}},Un=class{constructor(e,t,o=null,r="",s=!1){this.type=e,this.name=t,this.count=o,this.qualifier=r,this.isConst=s}};Un.isNodeFunctionInput=!0;var wb=class extends O2{static get type(){return"AmbientLightNode"}constructor(e=null){super(e)}setup({context:e}){e.irradiance.addAssign(this.colorNode)}},_b=class extends O2{static get type(){return"DirectionalLightNode"}constructor(e=null){super(e)}setupDirect(){const e=this.colorNode;return{lightDirection:o5(this.light),lightColor:e}}},Ab=class extends O2{static get type(){return"HemisphereLightNode"}constructor(e=null){super(e),this.lightPositionNode=e5(e),this.lightDirectionNode=this.lightPositionNode.normalize(),this.groundColorNode=o1(new de).setGroup(s1)}update(e){const{light:t}=this;super.update(e),this.lightPositionNode.object3d=t,this.groundColorNode.value.copy(t.groundColor).multiplyScalar(t.intensity)}setup(e){const{colorNode:t,groundColorNode:o,lightDirectionNode:r}=this,s=v3.dot(r).mul(.5).add(.5),i=C1(o,t,s);e.context.irradiance.addAssign(i)}},Wn=class extends O2{static get type(){return"SpotLightNode"}constructor(e=null){super(e),this.coneCosNode=o1(0).setGroup(s1),this.penumbraCosNode=o1(0).setGroup(s1),this.cutoffDistanceNode=o1(0).setGroup(s1),this.decayExponentNode=o1(0).setGroup(s1),this.colorNode=o1(this.color).setGroup(s1)}update(e){super.update(e);const{light:t}=this;this.coneCosNode.value=Math.cos(t.angle),this.penumbraCosNode.value=Math.cos(t.angle*(1-t.penumbra)),this.cutoffDistanceNode.value=t.distance,this.decayExponentNode.value=t.decay}getSpotAttenuation(e,t){const{coneCosNode:o,penumbraCosNode:r}=this;return we(o,r,t)}getLightCoord(e){const t=e.getNodeProperties(this);let o=t.projectionUV;return o===void 0&&(o=hv(this.light,e.context.positionWorld),t.projectionUV=o),o}setupDirect(e){const{colorNode:t,cutoffDistanceNode:o,decayExponentNode:r,light:s}=this,i=this.getLightVector(e),n=i.normalize(),a=n.dot(o5(s)),l=this.getSpotAttenuation(e,a),u=i.length(),c=n5({lightDistance:u,cutoffDistance:o,decayExponent:r});let d=t.mul(l).mul(c),h,f;return s.colorNode?(f=this.getLightCoord(e),h=s.colorNode(f)):s.map&&(f=this.getLightCoord(e),h=O1(s.map,f.xy).onRenderUpdate(()=>s.map)),h&&(d=f.mul(2).sub(1).abs().lessThan(1).all().select(d.mul(h),d)),{lightColor:d,lightDirection:n}}},Cb=class extends Wn{static get type(){return"IESSpotLightNode"}constructor(e=null){super(e),this._iesTextureNode=null}getSpotAttenuation(e,t){const o=this.light.iesMap;let r=null;if(o&&o.isTexture===!0){const s=t.acos().mul(1/Math.PI);this._iesTextureNode=O1(o,n1(s,0),0),r=this._iesTextureNode.r}else r=super.getSpotAttenuation(e,t);return r}update(e){super.update(e),this._iesTextureNode!==null&&this.light.iesMap&&(this._iesTextureNode.value=this.light.iesMap)}},Rb=class extends O2{static get type(){return"LightProbeNode"}constructor(e=null){super(e);const t=[];for(let o=0;o<9;o++)t.push(new z);this.lightProbe=W0(t)}update(e){const{light:t}=this;super.update(e);for(let o=0;o<9;o++)this.lightProbe.array[o].copy(t.sh.coefficients[o]).multiplyScalar(t.intensity)}setup(e){const t=jv(v3,this.lightProbe);e.context.irradiance.addAssign(t)}},Bb=B(([e,t])=>{const o=e.abs().sub(t);return ct(g0(o,0)).add(n3(g0(o.x,o.y),0))}),Eb=class extends Wn{static get type(){return"ProjectorLightNode"}update(e){super.update(e);const t=this.light;if(this.penumbraCosNode.value=Math.min(Math.cos(t.angle*(1-t.penumbra)),.99999),t.aspect===null){let o=1;t.map!==null&&(o=t.map.width/t.map.height),t.shadow.aspect=o}else t.shadow.aspect=t.aspect}getSpotAttenuation(e){const t=C(0),o=this.penumbraCosNode,r=En(this.light).mul(e.context.positionWorld||l3);return x1(r.w.greaterThan(0),()=>{const s=r.xyz.div(r.w),i=Bb(s.xy.sub(n1(.5)),n1(.5)),n=Ze(-1,U0(1,_4(o)).sub(1));t.assign(pn(i.mul(-2).mul(n)))}),t}},ks=new q0,Qo=new q0,B3=null,Ub=class extends O2{static get type(){return"RectAreaLightNode"}constructor(e=null){super(e),this.halfHeight=o1(new z).setGroup(s1),this.halfWidth=o1(new z).setGroup(s1),this.updateType=u1.RENDER}update(e){super.update(e);const{light:t}=this,o=e.camera.matrixWorldInverse;Qo.identity(),ks.copy(t.matrixWorld),ks.premultiply(o),Qo.extractRotation(ks),this.halfWidth.value.set(t.width*.5,0,0),this.halfHeight.value.set(0,t.height*.5,0),this.halfWidth.value.applyMatrix4(Qo),this.halfHeight.value.applyMatrix4(Qo)}setupDirectRectArea(e){let t,o;e.isAvailable("float32Filterable")?(t=O1(B3.LTC_FLOAT_1),o=O1(B3.LTC_FLOAT_2)):(t=O1(B3.LTC_HALF_1),o=O1(B3.LTC_HALF_2));const{colorNode:r,light:s}=this;return{lightColor:r,lightPosition:t5(s),halfWidth:this.halfWidth,halfHeight:this.halfHeight,ltc_1:t,ltc_2:o}}static setLTC(e){B3=e}},c5=class{parseFunction(){j("Abstract function.")}},Ln=class{constructor(e,t,o="",r=""){this.type=e,this.inputs=t,this.name=o,this.precision=r}getCode(){j("Abstract function.")}};Ln.isNodeFunction=!0;var Wb=/^\s*(highp|mediump|lowp)?\s*([a-z_0-9]+)\s*([a-z_0-9]+)?\s*\(([\s\S]*?)\)/i,Lb=/[a-z_0-9]+/gi,Ob="#pragma main",Fb=e=>{e=e.trim();const t=e.indexOf(Ob),o=t!==-1?e.slice(t+12):e,r=o.match(Wb);if(r!==null&&r.length===5){const s=r[4],i=[];let n=null;for(;(n=Lb.exec(s))!==null;)i.push(n);const a=[];let l=0;for(;l{let a=this._createNodeBuilder(e,e.material);try{t?await a.buildAsync():a.build()}catch(l){a=this._createNodeBuilder(e,new o0),t?await a.buildAsync():a.build(),G("TSL: "+l)}return a};if(t)return n().then(a=>(r=this._createNodeBuilderState(a),s.set(i,r),r.usedTimes++,o.nodeBuilderState=r,r));{let a=this._createNodeBuilder(e,e.material);try{a.build()}catch(l){a=this._createNodeBuilder(e,new o0),a.build();let u=l.stackTrace;!u&&l.stack&&(u=new C0(l.stack)),G("TSL: "+l,u)}r=this._createNodeBuilderState(a),s.set(i,r)}}r.usedTimes++,o.nodeBuilderState=r}return r}getForRenderAsync(e){const t=this.getForRender(e,!0);return t.then?t:Promise.resolve(t)}getForRenderDeferred(e){const t=this.get(e);if(t.nodeBuilderState!==void 0)return t.nodeBuilderState;const o=this.getForRenderCacheKey(e),r=this.nodeBuilderCache.get(o);return r!==void 0?(r.usedTimes++,t.nodeBuilderState=r,r):(t.pendingBuild!==!0&&(t.pendingBuild=!0,this._buildQueue.push(()=>this.getForRenderAsync(e).then(()=>{t.pendingBuild=!1})),this._processBuildQueue()),null)}_processBuildQueue(){this._buildInProgress||this._buildQueue.length===0||(this._buildInProgress=!0,this._buildQueue.shift()().then(()=>{this._buildInProgress=!1,this._processBuildQueue()}))}delete(e){if(e.isRenderObject){const t=this.get(e).nodeBuilderState;t!==void 0&&(t.usedTimes--,t.usedTimes===0&&this.nodeBuilderCache.delete(this.getForRenderCacheKey(e)))}return super.delete(e)}getForCompute(e){const t=this.get(e);let o=t.nodeBuilderState;if(o===void 0||t.version!==e.version){const r=this.backend.createNodeBuilder(e,this.renderer);r.build(),o=this._createNodeBuilderState(r),t.nodeBuilderState=o,t.version=e.version}return o}_createNodeBuilderState(e){return new eb(e.vertexShader,e.fragmentShader,e.computeShader,e.getAttributesArray(),e.getBindings(),e.updateNodes,e.updateBeforeNodes,e.updateAfterNodes,e.observer,e.hardwareClipping,e.transforms)}getEnvironmentNode(e){if(this.renderer.lighting.enabled===!1)return null;this.updateEnvironment(e);let t=null;if(e.environmentNode&&e.environmentNode.isNode)t=e.environmentNode;else{const o=this.get(e);o.environmentNode&&(t=o.environmentNode)}return t}getBackgroundNode(e){this.updateBackground(e);let t=null;if(e.backgroundNode&&e.backgroundNode.isNode)t=e.backgroundNode;else{const o=this.get(e);o.backgroundNode&&(t=o.backgroundNode)}return t}getFogNode(e){return this.updateFog(e),e.fogNode||this.get(e).fogNode||null}getCacheKey(e,t){J0[0]=e,J0[1]=t;const o=this.renderer.info.calls,r=this.callHashCache.get(J0)||{};if(r.callId!==o){if(et.push(this.renderer.getOutputRenderTarget()&&this.renderer.getOutputRenderTarget().multiview?1:0),et.push(this.renderer.lighting.enabled?1:0),this.renderer.lighting.enabled){et.push(t.getCacheKey(!0)),et.push(this.renderer.shadowMap.enabled?1:0),et.push(this.renderer.shadowMap.type);const i=this.getEnvironmentNode(e);i&&et.push(i.getCacheKey())}const s=this.getFogNode(e);s&&et.push(s.getCacheKey()),r.callId=o,r.cacheKey=bo(et),this.callHashCache.set(J0,r),et.length=0}return J0[0]=null,J0[1]=null,r.cacheKey}get isToneMappingState(){return!this.renderer.getRenderTarget()}updateBackground(e){const t=this.get(e),o=e.background;if(o){const r=e.backgroundBlurriness===0&&t.backgroundBlurriness>0||e.backgroundBlurriness>0&&t.backgroundBlurriness===0;(t.background!==o||r)&&(t.backgroundNode=this.getCacheNode("background",o,()=>{if(o.isCubeTexture===!0||o.mapping===303||o.mapping===304||o.mapping===306){if(e.backgroundBlurriness>0||o.mapping===306)return X8(o);{let s;return o.isCubeTexture===!0?s=L0(o):s=O1(o),E8(s)}}else{if(o.isTexture===!0)return O1(o,At.flipY()).setUpdateMatrix(!0);o.isColor!==!0&&G("WebGPUNodes: Unsupported background configuration.",o)}},r),t.background=o,t.backgroundBlurriness=e.backgroundBlurriness)}else t.backgroundNode&&(delete t.backgroundNode,delete t.background)}getCacheNode(e,t,o,r=!1){const s=this.cacheLib[e]||(this.cacheLib[e]=new WeakMap);let i=s.get(t);return(i===void 0||r)&&(i=o(),s.set(t,i)),i}updateFog(e){const t=this.get(e),o=e.fog;o?t.fog!==o&&(t.fogNode=this.getCacheNode("fog",o,()=>{if(o.isFogExp2){const r=X1("color","color",o).setGroup(s1),s=X1("density","float",o).setGroup(s1);return p7(r,cv(s))}else if(o.isFog){const r=X1("color","color",o).setGroup(s1),s=X1("near","float",o).setGroup(s1),i=X1("far","float",o).setGroup(s1);return p7(r,uv(s,i))}else G("Renderer: Unsupported fog configuration.",o)}),t.fog=o):(delete t.fogNode,delete t.fog)}updateEnvironment(e){const t=this.get(e),o=e.environment;o?t.environment!==o&&(t.environmentNode=this.getCacheNode("environment",o,()=>{if(o.isCubeTexture===!0)return L0(o);if(o.isTexture===!0)return O1(o);G("Nodes: Unsupported environment configuration.",o)}),t.environment=o):t.environmentNode&&(delete t.environmentNode,delete t.environment)}getNodeFrame(e=this.renderer,t=null,o=null,r=null,s=null){const i=this.nodeFrame;return i.renderer=e,i.scene=t,i.object=o,i.camera=r,i.material=s,i}getNodeFrameForRender(e){return this.getNodeFrame(e.renderer,e.scene,e.object,e.camera,e.material)}getOutputCacheKey(){const e=this.renderer;return e.toneMapping+","+e.currentColorSpace+","+e.xr.isPresenting}getOutputNode(e){const t=this.renderer;let o;return e.isArrayTexture?this.backend.isWebGLBackend?o=O1(e,At).depth(W2("gl_ViewID_OVR")).renderOutput(t.toneMapping,t.currentColorSpace):o=O1(e,At).depth(y7).renderOutput(t.toneMapping,t.currentColorSpace):o=O1(e,At).renderOutput(t.toneMapping,t.currentColorSpace),o}setOutputLayerIndex(e){y7.value=e}updateBefore(e){const t=e.getNodeBuilderState();for(const o of t.updateBeforeNodes)this.getNodeFrameForRender(e).updateBeforeNode(o)}updateAfter(e){const t=e.getNodeBuilderState();for(const o of t.updateAfterNodes)this.getNodeFrameForRender(e).updateAfterNode(o)}updateForCompute(e){const t=this.getNodeFrame(),o=this.getForCompute(e);for(const r of o.updateNodes)t.updateNode(r)}updateForRender(e){const t=this.getNodeFrameForRender(e),o=e.getNodeBuilderState();for(const r of o.updateNodes)t.updateNode(r)}needsRefresh(e){const t=this.getNodeFrameForRender(e);return e.getMonitor().needsRefresh(e,t)}dispose(){super.dispose(),this.nodeFrame=new M7,this.nodeBuilderCache=new Map,this.cacheLib={}}},Xs=new C6,x7=class d5{constructor(t=null){this.version=0,this.clipIntersection=null,this.cacheKey="",this.shadowPass=!1,this.viewMatrix=new q0,this.viewNormalMatrix=new mo,this.clippingGroupContexts=new WeakMap,this.intersectionPlanes=[],this.unionPlanes=[],this.parentVersion=null,t!==null&&(this.viewMatrix=t.viewMatrix,this.viewNormalMatrix=t.viewNormalMatrix,this.clippingGroupContexts=t.clippingGroupContexts,this.shadowPass=t.shadowPass)}projectPlanes(t,o,r){const s=t.length;for(let i=0;i0&&(I1("THREE.XRManager: WebGPU XR does not support MSAA yet. Disabling MSAA for this XR session."),this._currentSamples===null&&(this._currentSamples=e.samples),e._samples=0)}}async _initWebGPUSession(e){const t=this.getWebGPUBinding(),o=t.createProjectionLayer({colorFormat:t.getPreferredColorFormat(),depthStencilFormat:"depth24plus"});this._glProjLayer=o,e.updateRenderState({layers:[o]}),this._referenceSpace=await e.requestReferenceSpace(this.getReferenceSpaceType()),this._xrRenderTarget=new Xt(o.textureWidth,o.textureHeight,{depth:2,minFilter:Z1,magFilter:Z1,depthBuffer:!0,multiview:!1,useArrayDepthTexture:!0,samples:0}),this._xrRenderTarget.texture.isArrayTexture=!0,this._useMultiviewIfPossible===!0&&I1("THREE.XRManager: WebGPU XR does not support multiview yet. Disabling multiview for this XR session."),this._useMultiview=!1}_disposeWebGPUSession(){const e=this._renderer,t=this._xrRenderTarget;if(t===null||e.backend.isWebGPUBackend!==!0)return;const o=e.backend,r=e._textures,s=o.get?o.get(t):null;s&&(s.descriptors=void 0);const i=n=>{n!=null&&(o.delete&&o.delete(n),r.delete&&r.delete(n))};for(let n=0;nQ4(c,o.toneMapping,o.outputColorSpace)}),_7.set(a,l))}else l=a;o.contextNode=l,o.setRenderTarget(n.renderTarget),n.rendercall(),o.contextNode=a}o.setRenderTarget(i),o._setXRLayerSize(s.x,s.y),this.isPresenting=r}getSession(){return this._session}async setSession(e){const t=this._renderer;t.initialized===!1&&await t.init(),this._gl=t.getContext();const o=this._gl;if(this._session=e,e!==null){if(e.addEventListener("select",this._onSessionEvent),e.addEventListener("selectstart",this._onSessionEvent),e.addEventListener("selectend",this._onSessionEvent),e.addEventListener("squeeze",this._onSessionEvent),e.addEventListener("squeezestart",this._onSessionEvent),e.addEventListener("squeezeend",this._onSessionEvent),e.addEventListener("end",this._onSessionEnd),e.addEventListener("inputsourceschange",this._onInputSourcesChange),this._validateWebGPUSession(),this._currentPixelRatio=t.getPixelRatio(),t.getSize(this._currentSize),this._currentAnimationContext=t._animation.getContext(),this._currentAnimationLoop=t._animation.getAnimationLoop(),t._animation.stop(),this._isWebGPUSession())await this._initWebGPUSession(e);else if(this._supportsLayers===!0){let r=null,s=null,i=null;const n=o.getContextAttributes();await t.backend.makeXRCompatible(),this.setFoveation(this.getFoveation()),t.depth&&(i=t.stencil?o.DEPTH24_STENCIL8:o.DEPTH_COMPONENT24,r=t.stencil?Ut:f2,s=t.stencil?Wt:E0);const a={colorFormat:o.RGBA8,depthFormat:i,scaleFactor:this._framebufferScaleFactor,clearOnAccess:!1};this._useMultiviewIfPossible&&t.hasFeature("OVR_multiview2")&&(a.textureType="texture-array",this._useMultiview=!0),this._glBinding=this.getBinding();const l=this._glBinding.createProjectionLayer(a),u=[l];this._glProjLayer=l,t.setPixelRatio(1),t._setXRLayerSize(l.textureWidth,l.textureHeight);const c=this._useMultiview?2:1,d=new ye(l.textureWidth,l.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,r,c);if(this._xrRenderTarget=new V3(l.textureWidth,l.textureHeight,{format:Ge,type:be,colorSpace:t.outputColorSpace,depthTexture:d,stencilBuffer:t.stencil,samples:n.antialias?4:0,resolveDepthBuffer:l.ignoreDepthValues===!1,resolveStencilBuffer:l.ignoreDepthValues===!1,depth:this._useMultiview?2:1,multiview:this._useMultiview}),this._xrRenderTarget._hasExternalTextures=!0,this._xrRenderTarget.depth=this._useMultiview?2:1,this._sessionUsesLayers=e.enabledFeatures.includes("layers"),this._referenceSpace=await e.requestReferenceSpace(this.getReferenceSpaceType()),this._sessionUsesLayers)for(const h of this._layers)h.plane.material=new r2({color:16777215,side:h.type==="cylinder"?1:0}),h.plane.material.blending=5,h.plane.material.blendEquation=100,h.plane.material.blendSrc=200,h.plane.material.blendDst=200,h.xrlayer=this._createXRLayer(h),u.unshift(h.xrlayer);e.updateRenderState({layers:u})}else{await t.backend.makeXRCompatible(),this.setFoveation(this.getFoveation());const r={antialias:t.currentSamples>0,alpha:!0,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:this.getFramebufferScaleFactor()},s=new XRWebGLLayer(e,o,r);this._glBaseLayer=s,e.updateRenderState({baseLayer:s}),t.setPixelRatio(1),t._setXRLayerSize(s.framebufferWidth,s.framebufferHeight),this._xrRenderTarget=new V3(s.framebufferWidth,s.framebufferHeight,{format:Ge,type:be,colorSpace:t.outputColorSpace,stencilBuffer:t.stencil,resolveDepthBuffer:s.ignoreDepthValues===!1,resolveStencilBuffer:s.ignoreDepthValues===!1}),this._xrRenderTarget._isOpaqueFramebuffer=!0,this._referenceSpace=await e.requestReferenceSpace(this.getReferenceSpaceType())}t._animation.setAnimationLoop(this._onAnimationFrame),t._animation.setContext(e),t._animation.start(),this.isPresenting=!0,this.dispatchEvent({type:"sessionstart"})}}updateCamera(e){const t=this._session;if(t===null)return;const o=e.near,r=e.far,s=this._cameraXR,i=this._cameraL,n=this._cameraR;s.near=n.near=i.near=o,s.far=n.far=i.far=r,s.isMultiViewCamera=this._useMultiview,(this._currentDepthNear!==s.near||this._currentDepthFar!==s.far)&&(t.updateRenderState({depthNear:s.near,depthFar:s.far}),this._currentDepthNear=s.near,this._currentDepthFar=s.far),s.layers.mask=e.layers.mask|6,i.layers.mask=s.layers.mask&-5,n.layers.mask=s.layers.mask&-3;const a=e.parent,l=s.cameras;A7(s,a);for(let u=0;u=0&&(o[i]=null,t[i].disconnect(s))}for(let r=0;r=o.length){o.push(s),i=a;break}else if(o[a]===null){o[a]=s,i=a;break}if(i===-1)break}const n=t[i];n&&n.connect(s)}}function Jb(e){return e.type==="quad"?this._glBinding.createQuadLayer({transform:new XRRigidTransform(e.translation,e.quaternion),width:e.width/2,height:e.height/2,space:this._referenceSpace,viewPixelWidth:e.pixelwidth,viewPixelHeight:e.pixelheight,clearOnAccess:!1}):this._glBinding.createCylinderLayer({transform:new XRRigidTransform(e.translation,e.quaternion),radius:e.radius,centralAngle:e.centralAngle,aspectRatio:e.aspectRatio,space:this._referenceSpace,viewPixelWidth:e.pixelwidth,viewPixelHeight:e.pixelheight,clearOnAccess:!1})}function jb(e,t){if(t===void 0)return;const o=this._cameraXR,r=this._renderer,s=r.backend,i=this._glBaseLayer,n=this.getReferenceSpace(),a=t.getViewerPose(n);if(this._xrFrame=t,a!==null){const l=a.views,u=this._isWebGPUSession()?this._getWebGPUViewData(l):null;this._glBaseLayer!==null&&u===null&&s.setXRTarget(i.framebuffer);let c=!1;l.length!==o.cameras.length&&(o.cameras.length=0,c=!0);for(let h=0;h{await this.compileAsync(m,p,f);const b=this.needsFrameBufferTarget&&this._renderTarget===null?this._getFrameBufferTarget():this._renderTarget||this._outputRenderTarget,N=this._renderLists.get(f,p),v=this._renderContexts.get(b,this._mrt),M=f.overrideMaterial||m.material,{fragmentShader:T,vertexShader:x}=this._objects.get(m,M,f,p,N.lightsNode,v,v.clippingContext).getNodeBuilderState();return{fragmentShader:T,vertexShader:x}}}}async init(){return this._initPromise!==null?this._initPromise:(this._initPromise=new Promise(async(e,t)=>{let o=this.backend;try{await o.init(this)}catch(r){if(this._getFallback!==null)try{this.backend=o=this._getFallback(r),await o.init(this)}catch(s){t(s);return}else{t(r);return}}this._nodes=new kb(this,o),this._animation=new gg(this,this._nodes,this.info),this._attributes=new Sg(o,this.info),this._background=new Kv(this,this._nodes),this._geometries=new Tg(this._attributes,this.info),this._textures=new kg(this,o,this.info),this._pipelines=new Rg(o,this._nodes,this.info),this._bindings=new Bg(o,this._nodes,this._textures,this._attributes,this._pipelines,this.info),this._objects=new Mg(this,this._nodes,this._geometries,this._pipelines,this._bindings,this.info),this._renderLists=new Lg(this.lighting),this._bundles=new Ib,this._renderContexts=new Pg(this),this._animation.start(),this._initialized=!0,this._inspector.init(),e(this)}),this._initPromise)}get domElement(){return this._canvasTarget.domElement}get coordinateSystem(){return this.backend.coordinateSystem}async compileAsync(e,t,o=null){if(this._isDeviceLost===!0)return;this._initialized===!1&&await this.init();const r=this._nodes.nodeFrame,s=r.renderId,i=this._currentRenderContext,n=this._currentRenderObjectFunction,a=this._handleObjectFunction,l=this._compilationPromises;o===null&&(o=e);const u=e.isScene===!0?e:o.isScene===!0?o:C7,c=this.needsFrameBufferTarget&&this._renderTarget===null?this._getFrameBufferTarget():this._renderTarget||this._outputRenderTarget,d=this._renderContexts.get(c,this._mrt),h=this._activeMipmapLevel,f=[];this._currentRenderContext=d,this._currentRenderObjectFunction=this.renderObject,this._handleObjectFunction=this._createObjectPipeline,this._compilationPromises=f,r.renderId++,r.update(),d.depth=this.depth,d.stencil=this.stencil,d.clippingContext||(d.clippingContext=new x7),d.clippingContext.updateGlobal(u,t),e.matrixWorldAutoUpdate===!0&&e.updateMatrixWorld(),t=this._updateCamera(t),u.onBeforeRender(this,e,t,c);const p=t.isArrayCamera?Zo:$o;t.isArrayCamera?p.setFromArrayCamera(t):(X2.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),p.setFromProjectionMatrix(X2,t.coordinateSystem,t.reversedDepth));const m=this._renderLists.get(u,t);if(m.begin(),this._projectObject(e,t,0,m,d.clippingContext),o!==e&&o.traverseVisible(function(T){T.isLight&&T.layers.test(t.layers)&&m.pushLight(T)}),m.finish(),c!==null){this._textures.updateRenderTarget(c,h);const T=this._textures.get(c);d.textures=T.textures,d.depthTexture=T.depthTexture}else d.textures=null,d.depthTexture=null;o!==e?this._background.update(o,m,d):this._background.update(u,m,d);const b=m.opaque,N=m.transparent,v=m.transparentDoublePass,M=m.lightsNode;this.opaque===!0&&b.length>0&&this._renderObjects(b,t,u,M),this.transparent===!0&&N.length>0&&this._renderTransparents(N,v,t,u,M),r.renderId=s,this._currentRenderContext=i,this._currentRenderObjectFunction=n,this._handleObjectFunction=a,this._compilationPromises=l;for(const T of f){const x=this._objects.get(T.object,T.material,T.scene,T.camera,T.lightsNode,T.renderContext,T.clippingContext,T.passId);x.drawRange=T.object.geometry.drawRange,x.group=T.group,await this._nodes.getForRenderAsync(x),this._nodes.updateBefore(x),this._geometries.updateForRender(x),this._nodes.updateForRender(x),this._bindings.updateForRender(x);const S=[];this._pipelines.getForRender(x,S),S.length>0&&await Promise.all(S),this._nodes.updateAfter(x),await V6()}}async renderAsync(e,t){I1('Renderer: "renderAsync()" has been deprecated. Use "render()" and "await renderer.init();" when creating the renderer.'),await this.init(),this.render(e,t)}async waitForGPU(){G("Renderer: waitForGPU() has been removed. Read https://github.com/mrdoob/three.js/issues/32012 for more information.")}set inspector(e){this._inspector!==null&&this._inspector.setRenderer(null),this._inspector=e,this._inspector.setRenderer(this)}get inspector(){return this._inspector}set highPrecision(e){const t=this.contextNode.value;e===!0?(t.modelViewMatrix=Sa,t.modelNormalViewMatrix=Ta):this.highPrecision&&(delete t.modelViewMatrix,delete t.modelNormalViewMatrix)}get highPrecision(){const e=this.contextNode.value;return e.modelViewMatrix===Sa&&e.modelNormalViewMatrix===Ta}setMRT(e){return this._mrt=e,this}getMRT(){return this._mrt}getOutputBufferType(){return this._outputBufferType}getColorBufferType(){return I1('Renderer: ".getColorBufferType()" has been renamed to ".getOutputBufferType()".'),this.getOutputBufferType()}_onDeviceLost(e){let t=`THREE.WebGPURenderer: ${e.api} Device Lost: - -Message: ${e.message}`;e.reason&&(t+=` -Reason: ${e.reason}`),G(t),this._isDeviceLost=!0}_onError(e){let t=`WebGPURenderer: Uncaptured ${e.api} ${e.type}`;e.message&&(t+=`: ${e.message}`),G(t)}_bundleNeedsUpdate(e,t){return t.bundleGPU===void 0||e.version!==t.version}_renderBundle(e,t,o){const{bundleGroup:r,camera:s,renderList:i}=e,n=this._currentRenderContext,a=this._bundles.get(r,s,n),l=this.backend.get(a);if(this._bundleNeedsUpdate(r,l)){this.backend.beginBundle(n),this._currentRenderBundle=a;const{transparentDoublePass:u,transparent:c,opaque:d}=i;this.opaque===!0&&d.length>0&&this._renderObjects(d,s,t,o),this.transparent===!0&&c.length>0&&this._renderTransparents(c,u,s,t,o),this._currentRenderBundle=null,this.backend.finishBundle(n,a),l.version=r.version}else{const{renderObjects:u}=l;for(let c=0,d=u.length;c{l.removeEventListener("dispose",m),u.dispose(),this._frameBufferTargets.delete(l)};l.addEventListener("dispose",m),this._frameBufferTargets.set(l,u)}const c=this.getOutputRenderTarget();u.depthBuffer=n,u.stencilBuffer=a,c!==null?u.setSize(c.width,c.height,c.depth):u.setSize(s,i,1);const d=this._outputRenderTarget?this._outputRenderTarget.viewport:l._viewport,h=this._outputRenderTarget?this._outputRenderTarget.scissor:l._scissor,f=this._outputRenderTarget?1:l._pixelRatio,p=this._outputRenderTarget?this._outputRenderTarget.scissorTest:l._scissorTest;return u.viewport.copy(d),u.scissor.copy(h),u.viewport.multiplyScalar(f),u.scissor.multiplyScalar(f),u.scissorTest=p,u.multiview=c!==null?c.multiview:!1,u.useArrayDepthTexture=c!==null?c.useArrayDepthTexture:!1,u.resolveDepthBuffer=c!==null?c.resolveDepthBuffer:!0,u._autoAllocateDepthBuffer=c!==null?c._autoAllocateDepthBuffer:!1,u}_renderScene(e,t,o=!0){if(this._isDeviceLost===!0)return;const r=o?this._getFrameBufferTarget():null,s=this._nodes.nodeFrame,i=s.renderId,n=this._currentRenderContext,a=this._currentRenderObjectFunction,l=this._handleObjectFunction;this.lighting.beginRender(e),this._callDepth++;const u=e.isScene===!0?e:C7,c=this._renderTarget||this._outputRenderTarget,d=this._activeCubeFace,h=this._activeMipmapLevel;let f;if(r!==null?(f=r,this.setRenderTarget(f)):f=c,f!==null&&f.depthBuffer===!0){const X=this._textures.get(f);X.depthInitialized!==!0&&((this.autoClear===!1||this.autoClear===!0&&this.autoClearDepth===!1)&&this.clearDepth(),X.depthInitialized=!0)}const p=this._renderContexts.get(f,this._mrt,this._callDepth);this._currentRenderContext=p,this._currentRenderObjectFunction=this._renderObjectFunction||this.renderObject,this._handleObjectFunction=this._renderObjectDirect,this.info.calls++,this.info.render.calls++,this.info.render.frameCalls++,s.renderId=this.info.calls,this.backend.updateTimeStampUID(p),this.inspector.beginRender(this.backend.getTimestampUID(p),e,t,f),e.matrixWorldAutoUpdate===!0&&e.updateMatrixWorld(),t=this._updateCamera(t);const m=this._canvasTarget;let b=m._viewport,N=m._scissor,v=m._pixelRatio;f!==null&&(b=f.viewport,N=f.scissor,v=1),this.getDrawingBufferSize(k2),Is.set(0,0,k2.width,k2.height);const M=b.minDepth===void 0?0:b.minDepth,T=b.maxDepth===void 0?1:b.maxDepth;p.viewportValue.copy(b).multiplyScalar(v).floor(),p.viewportValue.width>>=h,p.viewportValue.height>>=h,p.viewportValue.minDepth=M,p.viewportValue.maxDepth=T,p.viewport=p.viewportValue.equals(Is)===!1,p.scissorValue.copy(N).multiplyScalar(v).floor(),p.scissor=m._scissorTest&&p.scissorValue.equals(Is)===!1,p.scissorValue.width>>=h,p.scissorValue.height>>=h,p.clippingContext||(p.clippingContext=new x7),p.clippingContext.updateGlobal(u,t),u.onBeforeRender(this,e,t,f);const x=t.isArrayCamera?Zo:$o;t.isArrayCamera?x.setFromArrayCamera(t):(X2.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),x.setFromProjectionMatrix(X2,t.coordinateSystem,t.reversedDepth));const S=this._renderLists.get(e,t);if(S.begin(),this._projectObject(e,t,0,S,p.clippingContext),S.finish(),this.sortObjects===!0&&S.sort(this._opaqueSort,this._transparentSort,t.reversedDepth),f!==null){this._textures.updateRenderTarget(f,h);const X=this._textures.get(f);p.textures=X.textures,p.depthTexture=X.depthTexture,p.width=X.width,p.height=X.height,p.renderTarget=f,p.depth=f.depthBuffer,p.stencil=f.stencilBuffer}else p.textures=null,p.depthTexture=null,p.width=k2.width,p.height=k2.height,p.depth=this.depth,p.stencil=this.stencil;p.width>>=h,p.height>>=h,p.activeCubeFace=d,p.activeMipmapLevel=h,p.occlusionQueryCount=S.occlusionQueryCount,p.scissorValue.max(tt.set(0,0,0,0)),p.scissorValue.x+p.scissorValue.width>p.width&&(p.scissorValue.width=Math.max(p.width-p.scissorValue.x,0)),p.scissorValue.y+p.scissorValue.height>p.height&&(p.scissorValue.height=Math.max(p.height-p.scissorValue.y,0)),this._background.update(u,S,p),p.camera=t,this.backend.beginRender(p);const{bundles:R,lightsNode:w,transparentDoublePass:W,transparent:O,opaque:F}=S;return R.length>0&&this._renderBundles(R,u,w),this.opaque===!0&&F.length>0&&this._renderObjects(F,t,u,w),this.transparent===!0&&O.length>0&&this._renderTransparents(O,W,t,u,w),this.backend.finishRender(p),s.renderId=i,this._currentRenderContext=n,this._currentRenderObjectFunction=a,this._handleObjectFunction=l,this.lighting.finishRender(e),this._callDepth--,r!==null&&(this.setRenderTarget(c,d,h),this._renderOutput(f)),u.onAfterRender(this,e,t,f),this.inspector.finishRender(this.backend.getTimestampUID(p)),p}_setXRLayerSize(e,t){this._canvasTarget._width=e,this._canvasTarget._height=t,this.setViewport(0,0,e,t)}_renderOutput(e){const t=this._nodes.getOutputCacheKey();let o=this._quadCache.get(e.texture),r;if(o===void 0){r=new j8(new o0),r.name="Output Color Transform",r.material.name="outputColorTransform",r.material.fragmentNode=this._nodes.getOutputNode(e.texture),o={quad:r,cacheKey:t},this._quadCache.set(e.texture,o);const n=()=>{r.material.dispose(),this._quadCache.delete(e.texture),e.texture.removeEventListener("dispose",n)};e.texture.addEventListener("dispose",n)}else r=o.quad,o.cacheKey!==t&&(r.material.fragmentNode=this._nodes.getOutputNode(e.texture),r.material.needsUpdate=!0,o.cacheKey=t);const s=this.autoClear,i=this.xr.enabled;this.autoClear=!1,this.xr.enabled=!1,this._renderOutputLayers(r,e),this.autoClear=s,this.xr.enabled=i}getMaxAnisotropy(){return this.backend.capabilities.getMaxAnisotropy()}getActiveCubeFace(){return this._activeCubeFace}getActiveMipmapLevel(){return this._activeMipmapLevel}async setAnimationLoop(e){this._initialized===!1&&await this.init(),this._animation.setAnimationLoop(e)}getAnimationLoop(){return this._animation.getAnimationLoop()}async getArrayBufferAsync(e,t=null,o=0,r=-1){if(t!==null&&t.isReadbackBuffer&&this.info.memoryMap.has(t)===!1){this.info.createReadbackBuffer(t);const s=()=>{t.removeEventListener("dispose",s),this.info.destroyReadbackBuffer(t)};t.addEventListener("dispose",s)}if(o%4!==0||r>0&&r%4!==0)throw new Error('THREE.Renderer: "getArrayBufferAsync()" offset and count must be a multiple of 4.');return await this.backend.getArrayBufferAsync(e,t,o,r)}getContext(){return this.backend.getContext()}getPixelRatio(){return this._canvasTarget.getPixelRatio()}getDrawingBufferSize(e){return this._canvasTarget.getDrawingBufferSize(e)}getSize(e){return this._canvasTarget.getSize(e)}setPixelRatio(e=1){this._canvasTarget.setPixelRatio(e)}setDrawingBufferSize(e,t,o){this.xr&&this.xr.isPresenting||this._canvasTarget.setDrawingBufferSize(e,t,o)}setSize(e,t,o=!0){this.xr&&this.xr.isPresenting||this._canvasTarget.setSize(e,t,o)}setOpaqueSort(e){this._opaqueSort=e}setTransparentSort(e){this._transparentSort=e}getScissor(e){return this._canvasTarget.getScissor(e)}setScissor(e,t,o,r){this._canvasTarget.setScissor(e,t,o,r)}getScissorTest(){return this._canvasTarget.getScissorTest()}setScissorTest(e){this._canvasTarget.setScissorTest(e),this.backend.setScissorTest(e)}getViewport(e){return this._canvasTarget.getViewport(e)}setViewport(e,t,o,r,s=0,i=1){this._canvasTarget.setViewport(e,t,o,r,s,i)}getClearColor(e){return e.copy(this._clearColor)}setClearColor(e,t=1){this._clearColor.set(e),this._clearColor.a=t}getClearAlpha(){return this._clearColor.a}setClearAlpha(e){this._clearColor.a=e}getClearDepth(){return this.reversedDepthBuffer===!0?1-this._clearDepth:this._clearDepth}setClearDepth(e){this._clearDepth=e}getClearStencil(){return this._clearStencil}setClearStencil(e){this._clearStencil=e}isOccluded(e){const t=this._currentRenderContext;return t&&this.backend.isOccluded(t,e)}clear(e=!0,t=!0,o=!0){if(this._initialized===!1)throw new Error('THREE.Renderer: .clear() called before the backend is initialized. Use "await renderer.init();" before using this method.');const r=this._renderTarget||this._getFrameBufferTarget();let s=null;if(r!==null){this._textures.updateRenderTarget(r);const i=this._textures.get(r);s=this._renderContexts.get(r,null,-1),s.textures=i.textures,s.depthTexture=i.depthTexture,s.width=i.width,s.height=i.height,s.renderTarget=r,s.depth=r.depthBuffer,s.stencil=r.stencilBuffer;const n=this.backend.getClearColor();s.clearColorValue.r=n.r,s.clearColorValue.g=n.g,s.clearColorValue.b=n.b,s.clearColorValue.a=n.a,s.clearDepthValue=this.getClearDepth(),s.clearStencilValue=this.getClearStencil(),s.activeCubeFace=this.getActiveCubeFace(),s.activeMipmapLevel=this.getActiveMipmapLevel(),r.depthBuffer===!0&&(i.depthInitialized=!0)}this.backend.clear(e,t,o,s),r!==null&&this._renderTarget===null&&this._renderOutput(r)}clearColor(){this.clear(!0,!1,!1)}clearDepth(){this.clear(!1,!0,!1)}clearStencil(){this.clear(!1,!1,!0)}async clearAsync(e=!0,t=!0,o=!0){I1('Renderer: "clearAsync()" has been deprecated. Use "clear()" and "await renderer.init();" when creating the renderer.'),await this.init(),this.clear(e,t,o)}async clearColorAsync(){I1('Renderer: "clearColorAsync()" has been deprecated. Use "clearColor()" and "await renderer.init();" when creating the renderer.'),this.clear(!0,!1,!1)}async clearDepthAsync(){I1('Renderer: "clearDepthAsync()" has been deprecated. Use "clearDepth()" and "await renderer.init();" when creating the renderer.'),this.clear(!1,!0,!1)}async clearStencilAsync(){I1('Renderer: "clearStencilAsync()" has been deprecated. Use "clearStencil()" and "await renderer.init();" when creating the renderer.'),this.clear(!1,!1,!0)}get needsFrameBufferTarget(){const e=this.currentToneMapping!==0,t=this.currentColorSpace!==e0.workingColorSpace;return e||t}get samples(){return this._samples}get currentSamples(){let e=this._samples;return this._renderTarget!==null?e=this._renderTarget.samples:this.needsFrameBufferTarget&&(e=0),e}get currentToneMapping(){return this.isOutputTarget?this.toneMapping:0}get currentColorSpace(){return this.isOutputTarget?this.outputColorSpace:e0.workingColorSpace}get isOutputTarget(){return this._renderTarget===this._outputRenderTarget||this._renderTarget===null}dispose(){if(this._initialized===!0){this.info.dispose(),this.backend.dispose(),this._animation.dispose(),this._objects.dispose(),this._geometries.dispose(),this._pipelines.dispose(),this._nodes.dispose(),this._bindings.dispose(),this._renderLists.dispose(),this._renderContexts.dispose(),this._textures.dispose();for(const e of this._frameBufferTargets.keys())e.dispose();Object.values(this.backend.timestampQueryPool).forEach(e=>{e!==null&&e.dispose()})}this.setRenderTarget(null),this.setAnimationLoop(null)}setRenderTarget(e,t=0,o=0){this._renderTarget=e,this._activeCubeFace=t,this._activeMipmapLevel=o}getRenderTarget(){return this._renderTarget}setOutputRenderTarget(e){this._outputRenderTarget=e}getOutputRenderTarget(){return this._outputRenderTarget}setCanvasTarget(e){this._canvasTarget.removeEventListener("resize",this._onCanvasTargetResize),this._canvasTarget=e,this._canvasTarget.addEventListener("resize",this._onCanvasTargetResize)}getCanvasTarget(){return this._canvasTarget}_resetXRState(){this.backend.setXRTarget(null),this.setOutputRenderTarget(null),this.setRenderTarget(null);for(const e of this._frameBufferTargets.keys())e.dispose()}setRenderObjectFunction(e){this._renderObjectFunction=e}getRenderObjectFunction(){return this._renderObjectFunction}compute(e,t=null){if(this._isDeviceLost===!0)return;if(this._initialized===!1)return j("Renderer: .compute() called before the backend is initialized. Try using .computeAsync() instead."),this.computeAsync(e,t);const o=this._nodes.nodeFrame,r=o.renderId;this.info.calls++,this.info.compute.calls++,this.info.compute.frameCalls++,o.renderId=this.info.calls,this.backend.updateTimeStampUID(e),this.inspector.beginCompute(this.backend.getTimestampUID(e),e);const s=this.backend,i=this._pipelines,n=this._bindings,a=this._nodes,l=Array.isArray(e)?e:[e];if(l[0]===void 0||l[0].isComputeNode!==!0)throw new Error("THREE.Renderer: .compute() expects a ComputeNode.");s.beginCompute(e);for(const u of l){if(i.has(u)===!1){const h=()=>{u.removeEventListener("dispose",h),i.delete(u),n.deleteForCompute(u),a.delete(u)};u.addEventListener("dispose",h);const f=u.onInitFunction;f!==null&&f.call(u,{renderer:this})}a.updateForCompute(u),n.updateForCompute(u);const c=n.getForCompute(u),d=i.getForCompute(u,c);s.compute(e,u,c,d,t)}s.finishCompute(e),o.renderId=r,this.inspector.finishCompute(this.backend.getTimestampUID(e))}async computeAsync(e,t=null){this._initialized===!1&&await this.init(),this.compute(e,t)}async hasFeatureAsync(e){return I1('Renderer: "hasFeatureAsync()" has been deprecated. Use "hasFeature()" and "await renderer.init();" when creating the renderer.'),await this.init(),this.hasFeature(e)}async resolveTimestampsAsync(e="render"){return this._initialized===!1&&await this.init(),this.backend.resolveTimestampsAsync(e)}hasFeature(e){if(this._initialized===!1)throw new Error('THREE.Renderer: .hasFeature() called before the backend is initialized. Use "await renderer.init();" before using this method.');return this.backend.hasFeature(e)}hasInitialized(){return this._initialized}async initTextureAsync(e){I1('Renderer: "initTextureAsync()" has been deprecated. Use "initTexture()" and "await renderer.init();" when creating the renderer.'),await this.init(),this.initTexture(e)}initTexture(e){if(this._initialized===!1)throw new Error('THREE.Renderer: .initTexture() called before the backend is initialized. Use "await renderer.init();" before using this method.');this._textures.updateTexture(e)}initRenderTarget(e){if(this._initialized===!1)throw new Error('THREE.Renderer: .initRenderTarget() called before the backend is initialized. Use "await renderer.init();" before using this method.');this._textures.updateRenderTarget(e);const t=this._textures.get(e),o=this._renderContexts.get(e);o.textures=t.textures,o.depthTexture=t.depthTexture,o.width=t.width,o.height=t.height,o.renderTarget=e,o.depth=e.depthBuffer,o.stencil=e.stencilBuffer,this.backend.initRenderTarget(o)}copyFramebufferToTexture(e,t=null){if(t!==null)if(t.isVector2)t=tt.set(t.x,t.y,e.image.width,e.image.height).floor();else if(t.isVector4)t=tt.copy(t).floor();else{G("Renderer.copyFramebufferToTexture: Invalid rectangle.");return}else t=tt.set(0,0,e.image.width,e.image.height);let o=this._currentRenderContext,r;o!==null?r=o.renderTarget:(r=this._renderTarget||this._getFrameBufferTarget(),r!==null&&(this._textures.updateRenderTarget(r),o=this._textures.get(r))),this._textures.updateTexture(e,{renderTarget:r}),this.backend.copyFramebufferToTexture(e,o,t),this._inspector.copyFramebufferToTexture(e)}copyTextureToTexture(e,t,o=null,r=null,s=0,i=0){this._textures.updateTexture(e),this._textures.updateTexture(t),this.backend.copyTextureToTexture(e,t,o,r,s,i),this._inspector.copyTextureToTexture(e,t)}async readRenderTargetPixelsAsync(e,t,o,r,s,i=0,n=0){return this.backend.copyTextureToBuffer(e.textures[i],t,o,r,s,n)}_projectObject(e,t,o,r,s){if(e.visible===!1)return;if(e.layers.test(t.layers)){if(e.isGroup)o=e.renderOrder,e.isClippingGroup&&e.enabled&&(s=s.getGroupContext(e));else if(e.isLOD)e.autoUpdate===!0&&e.update(t);else if(e.isLight)r.pushLight(e);else if(e.isSprite){const n=t.isArrayCamera?Zo:$o;if(!e.frustumCulled||n.intersectsSprite(e)){this.sortObjects===!0&&tt.setFromMatrixPosition(e.matrixWorld).applyMatrix4(X2);const{geometry:a,material:l}=e;l.visible&&r.push(e,a,l,o,tt.z,null,s)}}else if(e.isLineLoop)G("Renderer: Objects of type THREE.LineLoop are not supported. Please use THREE.Line or THREE.LineSegments.");else if(e.isMesh||e.isLine||e.isPoints){const n=t.isArrayCamera?Zo:$o;if(!e.frustumCulled||n.intersectsObject(e)){const{geometry:a,material:l}=e;if(this.sortObjects===!0&&(a.boundingSphere===null&&a.computeBoundingSphere(),tt.copy(a.boundingSphere.center).applyMatrix4(e.matrixWorld).applyMatrix4(X2)),Array.isArray(l)){const u=a.groups;for(let c=0,d=u.length;c0){for(const{material:i}of t)i.side=1;this._renderObjects(t,o,r,s,"backSide");for(const{material:i}of t)i.side=0;this._renderObjects(e,o,r,s);for(const{material:i}of t)i.side=2}else this._renderObjects(e,o,r,s)}_renderObjects(e,t,o,r,s=null){for(let i=0,n=e.length;i(h.not().discard(),f))(l)}}e.depthNode&&e.depthNode.isNode&&(u=e.depthNode),e.castShadowPositionNode&&e.castShadowPositionNode.isNode?a=e.castShadowPositionNode:e.positionNode&&e.positionNode.isNode&&(a=e.positionNode),o={version:t,colorNode:l,depthNode:u,positionNode:a},this._cacheShadowNodes.set(e,o)}return o}_updateCamera(e){const t=this.xr;if(t.isPresenting===!1){let o=!1;if(this.reversedDepthBuffer===!0&&e.reversedDepth!==!0){if(e._reversedDepth=!0,e.isArrayCamera)for(const s of e.cameras)s._reversedDepth=!0;o=!0}const r=this.coordinateSystem;if(e.coordinateSystem!==r){if(e.coordinateSystem=r,e.isArrayCamera)for(const s of e.cameras)s.coordinateSystem=r;o=!0}if(o===!0&&(e.updateProjectionMatrix(),e.isArrayCamera))for(const s of e.cameras)s.updateProjectionMatrix()}return e.parent===null&&e.matrixWorldAutoUpdate===!0&&e.updateMatrixWorld(),t.enabled===!0&&t.isPresenting===!0&&(t.cameraAutoUpdate===!0&&t.updateCamera(e),e=t.getCamera()),e}renderObject(e,t,o,r,s,i,n,a=null,l=null){let u=!1,c,d,h,f,p,m,b;const N=this._currentSourceMaterial;if(e.onBeforeRender(this,t,o,r,s,i),s.allowOverride===!0&&t.overrideMaterial!==null){this._currentSourceMaterial=s;const v=t.overrideMaterial;if(u=!0,c=v.isNodeMaterial?v.colorNode:null,d=v.isNodeMaterial?v.depthNode:null,h=v.isNodeMaterial?v.positionNode:null,f=t.overrideMaterial.side,p=v.displacementMap,m=v.displacementScale,b=v.displacementBias,s.positionNode&&s.positionNode.isNode&&(v.positionNode=s.positionNode),v.alphaTest=s.alphaTest,v.alphaMap=s.alphaMap,v.displacementMap=s.displacementMap,v.displacementScale=s.displacementScale,v.displacementBias=s.displacementBias,v.transparent=s.transparent||s.transmission>0||s.transmissionNode&&s.transmissionNode.isNode||s.backdropNode&&s.backdropNode.isNode,v.isShadowPassMaterial){const{colorNode:M,depthNode:T,positionNode:x}=this._getShadowNodes(s);this.shadowMap.type===3?v.side=s.shadowSide!==null?s.shadowSide:s.side:v.side=s.shadowSide!==null?s.shadowSide:Yb[s.side],M!==null&&(v.colorNode=M),T!==null&&(v.depthNode=T),x!==null&&(v.positionNode=x)}s=v}s.transparent===!0&&s.side===2&&s.forceSinglePass===!1?(s.side=1,this._handleObjectFunction(e,s,t,o,n,i,a,"backSide"),s.side=0,this._handleObjectFunction(e,s,t,o,n,i,a,l),s.side=2):this._handleObjectFunction(e,s,t,o,n,i,a,l),u&&(t.overrideMaterial.colorNode=c,t.overrideMaterial.depthNode=d,t.overrideMaterial.positionNode=h,t.overrideMaterial.side=f,t.overrideMaterial.displacementMap=p,t.overrideMaterial.displacementScale=m,t.overrideMaterial.displacementBias=b),this._currentSourceMaterial=N,e.onAfterRender(this,t,o,r,s,i)}hasCompatibility(e){if(this._initialized===!1)throw new Error('THREE.Renderer: .hasCompatibility() called before the backend is initialized. Use "await renderer.init();" before using this method.');return this.backend.hasCompatibility(e)}_renderObjectDirect(e,t,o,r,s,i,n,a){const l=this._objects.get(e,t,o,r,s,this._currentRenderContext,n,a);l.drawRange=e.geometry.drawRange,l.group=i,this._currentRenderBundle!==null&&(this.backend.get(this._currentRenderBundle).renderObjects.push(l),l.bundle=this._currentRenderBundle.bundleGroup);const u=this._nodes.needsRefresh(l);u&&(this._nodes.updateBefore(l),this._geometries.updateForRender(l),this._nodes.updateForRender(l),this._bindings.updateForRender(l)),this._pipelines.updateForRender(l),this._pipelines.isReady(l)&&(this.backend.draw(l,this.info),u&&this._nodes.updateAfter(l))}_createObjectPipeline(e,t,o,r,s,i,n,a){if(this._compilationPromises!==null){this._compilationPromises.push({object:e,material:t,scene:o,camera:r,lightsNode:s,group:i,clippingContext:n,passId:a,renderContext:this._currentRenderContext});return}const l=this._objects.get(e,t,o,r,s,this._currentRenderContext,n,a);l.drawRange=e.geometry.drawRange,l.group=i,this._nodes.updateBefore(l),this._geometries.updateForRender(l),this._nodes.updateForRender(l),this._bindings.updateForRender(l),this._pipelines.getForRender(l,this._compilationPromises),this._nodes.updateAfter(l)}_onCanvasTargetResize(){this._initialized&&this.backend.updateSize()}get compile(){return this.compileAsync}},f5=class{constructor(e=""){this.name=e,this.visibility=0}setVisibility(e){this.visibility|=e}getVisibility(){return this.visibility}clone(){return Object.assign(new this.constructor,this)}};function p5(e){return e+(wt-e%wt)%wt}var m5=class extends f5{constructor(e,t=null){super(e),this.isBuffer=!0,this.bytesPerElement=Float32Array.BYTES_PER_ELEMENT,this._buffer=t,this._updateRanges=[]}get updateRanges(){return this._updateRanges}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}get byteLength(){return p5(this._buffer.byteLength)}get buffer(){return this._buffer}update(){return!0}release(){this._buffer=null}},g5=class extends m5{constructor(e,t=null){super(e,t),this.isUniformBuffer=!0}},tN=0,v5=class extends g5{constructor(e,t){super("UniformBuffer_"+tN++,e?e.value:null),this.nodeUniform=e,this.groupNode=t,this.isNodeUniformBuffer=!0}set updateRanges(e){this.nodeUniform.updateRanges=e}get updateRanges(){return this.nodeUniform.updateRanges}addUpdateRange(e,t){this.nodeUniform.addUpdateRange(e,t)}clearUpdateRanges(){this.nodeUniform.clearUpdateRanges()}get byteLength(){return p5(this.buffer.byteLength)}get buffer(){return this.nodeUniform.value}},oN=class extends g5{constructor(e){super(e),this.isUniformsGroup=!0,this._values=null,this.uniforms=[],this._updateRangeCache=new Map,this._addedIndices=new Set}addUniformUpdateRange(e){const t=e.index;if(this._addedIndices.has(t))return;let o=this._updateRangeCache.get(t);o===void 0&&(o={start:0,count:0},this._updateRangeCache.set(t,o)),o.start=e.offset,o.count=e.itemSize,this._addedIndices.add(t),this.updateRanges.push(o)}clearUpdateRanges(){this._addedIndices.clear(),super.clearUpdateRanges()}addUniform(e){return this.uniforms.push(e),this}removeUniform(e){const t=this.uniforms.indexOf(e);return t!==-1&&this.uniforms.splice(t,1),this}get values(){return this._values===null&&(this._values=Array.from(this.buffer)),this._values}get buffer(){let e=this._buffer;if(e===null){const t=this.byteLength;e=new Float32Array(new ArrayBuffer(t)),this._buffer=e}return e}get byteLength(){const e=this.bytesPerElement;let t=0;for(let o=0,r=this.uniforms.length;o0?c:"";n=`${l.name} { - ${u} ${i.name}[${d}]; -}; -`}else{const l=i.groupNode.name;if(r[l]===void 0){const u=this.uniformGroups[l];if(u!==void 0){const c=[];for(const d of u.uniforms){const h=d.getType(),f=this.getVectorType(h),p=d.nodeUniform.node.precision;let m=`${f} ${d.name};`;p!==null&&(m=B7[p]+" "+m),c.push(" "+m)}r[l]=c}}a=!0}if(!a){const l=i.node.precision;l!==null&&(n=B7[l]+" "+n),n="uniform "+n,o.push(n)}}let s="";for(const i in r){const n=r[i];s+=this._getGLSLUniformStruct(i,n.join(` -`))+` -`}return s+=o.join(` -`),s}getTypeFromAttribute(e){let t=super.getTypeFromAttribute(e);if(/^[iu]/.test(t)&&e.gpuType!==1013){let o=e;e.isInterleavedBufferAttribute&&(o=e.data);const r=o.array;r instanceof Uint32Array||r instanceof Int32Array||(t=t.slice(1))}return t}getAttributes(e){let t="";if(e==="vertex"||e==="compute"){const o=this.getAttributesArray();let r=0;for(const s of o)t+=`layout( location = ${r++} ) in ${s.type} ${s.name}; -`}return t}getStructMembers(e){const t=[];for(const o of e.members)t.push(` ${o.type} ${o.name};`);return t.join(` -`)}getStructs(e){const t=[],o=this.structs[e],r=[];for(const s of o)if(s.output)for(const i of s.members)r.push(`layout( location = ${i.index} ) out ${i.type} ${i.name};`);else{let i="struct "+s.name+` { -`;i+=this.getStructMembers(s),i+=` -}; -`,t.push(i)}return e==="fragment"&&r.length===0&&r.push(`layout( location = 0 ) out ${this.getOutputType()} fragColor;`),` -`+r.join(` -`)+` - -`+t.join(` -`)}getVaryings(e){let t="";const o=this.varyings;if(e==="vertex"||e==="compute")for(const r of o){e==="compute"&&(r.needsInterpolation=!0);const s=this.getType(r.type);if(r.needsInterpolation)if(r.interpolationType){const i=U7[r.interpolationType]||r.interpolationType,n=W7[r.interpolationSampling]||"";t+=`${i} ${n} out ${s} ${r.name}; -`}else{const i=s.includes("int")||s.includes("uv")||s.includes("iv")?"flat ":"";t+=`${i}out ${s} ${r.name}; -`}else t+=`${s} ${r.name}; -`}else if(e==="fragment"){for(const r of o)if(r.needsInterpolation){const s=this.getType(r.type);if(r.interpolationType){const i=U7[r.interpolationType]||r.interpolationType,n=W7[r.interpolationSampling]||"";t+=`${i} ${n} in ${s} ${r.name}; -`}else{const i=s.includes("int")||s.includes("uv")||s.includes("iv")?"flat ":"";t+=`${i}in ${s} ${r.name}; -`}}}for(const r of this.builtins[e])t+=`${r}; -`;return t}getVertexIndex(){return"uint( gl_VertexID )"}getInstanceIndex(){return"uint( gl_InstanceID )"}getInvocationLocalIndex(){return`uint( gl_InstanceID ) % ${this.object.workgroupSize.reduce((e,t)=>e*t,1)}u`}getSubgroupSize(){G("GLSLNodeBuilder: WebGLBackend does not support the subgroupSize node")}getInvocationSubgroupIndex(){G("GLSLNodeBuilder: WebGLBackend does not support the invocationSubgroupIndex node")}getSubgroupIndex(){G("GLSLNodeBuilder: WebGLBackend does not support the subgroupIndex node")}getDrawIndex(){return this.renderer.backend.extensions.has("WEBGL_multi_draw")?"uint( gl_DrawID )":"nodeUniformDrawId"}getFrontFacing(){return"gl_FrontFacing"}getFragCoord(){return"gl_FragCoord.xy"}getFragDepth(){return"gl_FragDepth"}enableExtension(e,t,o=this.shaderStage){const r=this.extensions[o]||(this.extensions[o]=new Map);r.has(e)===!1&&r.set(e,{name:e,behavior:t})}getExtensions(e){const t=[];if(e==="vertex"){const r=this.renderer.backend.extensions;this.object.isBatchedMesh&&r.has("WEBGL_multi_draw")&&this.enableExtension("GL_ANGLE_multi_draw","require",e)}const o=this.extensions[e];if(o!==void 0)for(const{name:r,behavior:s}of o.values())t.push(`#extension ${r} : ${s}`);return t.join(` -`)}getClipDistance(){return"gl_ClipDistance"}isAvailable(e){let t=E7[e];if(t===void 0){let o;switch(t=!1,e){case"float32Filterable":o="OES_texture_float_linear";break;case"clipDistance":o="WEBGL_clip_cull_distance";break}if(o!==void 0){const r=this.renderer.backend.extensions;r.has(o)&&(r.get(o),t=!0)}E7[e]=t}return t}isFlipY(){return!0}enableHardwareClipping(e){this.enableExtension("GL_ANGLE_clip_cull_distance","require"),this.builtins.vertex.push(`out float gl_ClipDistance[ ${e} ]`)}enableMultiview(){this.enableExtension("GL_OVR_multiview2","require","fragment"),this.enableExtension("GL_OVR_multiview2","require","vertex"),this.builtins.vertex.push("layout(num_views = 2) in")}registerTransform(e,t){this.transforms.push({varyingName:e,attributeNode:t})}getTransforms(){const e=this.transforms;let t="";for(let o=0;o0&&(o+=` -`),o+=` // flow -> ${l} - `),o+=`${a.code} - `,n===s&&t!=="compute"&&(o+=`// result - `,t==="vertex"?(o+="gl_Position = ",o+=`${this.format(a.result,s.getNodeType(this),"vec4")};`):t==="fragment"&&(n.outputNode.isOutputStructNode||(o+="fragColor = ",o+=`${this.format(a.result,s.getNodeType(this),this.getOutputType())};`)))}const i=e[t];if(i.extensions=this.getExtensions(t),i.uniforms=this.getUniforms(t),i.attributes=this.getAttributes(t),i.varyings=this.getVaryings(t),i.vars=this.getVars(t,!0),i.structs=this.getStructs(t),i.codes=this.getCodes(t),i.transforms=this.getTransforms(t),i.flow=o,t==="vertex"){const n=this.renderer.backend.extensions;this.object.isBatchedMesh&&n.has("WEBGL_multi_draw")===!1&&(i.uniforms+=` -uniform uint nodeUniformDrawId; -`)}}this.material!==null?(this.vertexShader=this._getGLSLVertexCode(e.vertex),this.fragmentShader=this._getGLSLFragmentCode(e.fragment)):this.computeShader=this._getGLSLVertexCode(e.compute)}getUniformFromNode(e,t,o,r=null){const s=super.getUniformFromNode(e,t,o,r),i=this.getDataFromNode(e,o,this.globalCache);let n=i.uniformGPU;if(n===void 0){const a=e.groupNode,l=a.name,u=this.getBindGroupArray(l,o);if(t==="texture")n=new Jr(s.name,s.node,a),u.push(n);else if(t==="cubeTexture"||t==="cubeDepthTexture")n=new M5(s.name,s.node,a),u.push(n);else if(t==="texture3D")n=new Di(s.name,s.node,a),u.push(n);else if(t==="buffer"){s.name=`buffer${e.id}`;const c=this.getSharedDataFromNode(e);let d=c.buffer;d===void 0&&(e.name=`NodeBuffer_${e.id}`,d=new v5(e,a),d.name=e.name,c.buffer=d),u.push(d),n=d}else{let c=this.uniformGroups[l];c===void 0?(c=new b5(l,a),this.uniformGroups[l]=c,u.push(c)):u.indexOf(c)===-1&&u.push(c),n=this.getNodeUniform(s,t);const d=n.name;c.uniforms.some(h=>h.name===d)||c.addUniform(n)}i.uniformGPU=n}return s}},Gs=null,I2=null,y5=class{constructor(e={}){this.parameters=Object.assign({},e),this.data=new WeakMap,this.renderer=null,this.domElement=null,this.timestampQueryPool={[ze.RENDER]:null,[ze.COMPUTE]:null},this.trackTimestamp=e.trackTimestamp===!0}async init(e){this.renderer=e}get coordinateSystem(){}beginRender(){}finishRender(){}setXRTarget(){}beginCompute(){}finishCompute(){}draw(){}compute(){}createProgram(){}destroyProgram(){}createBindings(){}updateBindings(){}updateBinding(){}createRenderPipeline(){}createComputePipeline(){}needsRenderUpdate(){}getRenderCacheKey(){}createNodeBuilder(){}updateSampler(){}destroySampler(){}createDefaultTexture(){}createTexture(){}updateTexture(){}generateMipmaps(){}destroyTexture(){}async copyTextureToBuffer(){}copyTextureToTexture(){}copyFramebufferToTexture(){}createAttribute(){}createIndexAttribute(){}createStorageAttribute(){}createUniformBuffer(){}destroyUniformBuffer(){}updateAttribute(){}destroyAttribute(){}getContext(){}updateSize(){}updateViewport(){}updateTimeStampUID(e){const t=this.get(e),o=this.renderer.info.frame;let r;e.isComputeNode===!0?r="c:"+this.renderer.info.compute.frameCalls:r="r:"+this.renderer.info.render.frameCalls,t.timestampUID=r+":"+e.id+":f"+o}getTimestampUID(e){return this.get(e).timestampUID}getTimestampFrames(e){const t=this.timestampQueryPool[e];return t?t.getTimestampFrames():[]}_getQueryPool(e){const t=e.startsWith("c:")?ze.COMPUTE:ze.RENDER;return this.timestampQueryPool[t]}getTimestamp(e){return this._getQueryPool(e).getTimestamp(e)}get hasTimestamp(){return!1}hasTimestampQuery(e){return this._getQueryPool(e).hasTimestampQuery(e)}isOccluded(){}async resolveTimestampsAsync(e="render"){if(!this.trackTimestamp){I1("WebGPURenderer: Timestamp tracking is disabled.");return}const t=this.timestampQueryPool[e];if(!t)return;const o=await t.resolveQueriesAsync();return this.renderer.info[e].timestamp=o,o}async getArrayBufferAsync(){}async hasFeatureAsync(){}hasFeature(){}getDrawingBufferSize(){return Gs=Gs||new p1,this.renderer.getDrawingBufferSize(Gs)}setScissorTest(){}getClearColor(){const e=this.renderer;return I2=I2||new Cn,e.getClearColor(I2),I2.getRGB(I2),I2}getDomElement(){let e=this.domElement;return e===null&&(e=this.parameters.canvas!==void 0?this.parameters.canvas:Ml(),"setAttribute"in e&&e.setAttribute("data-engine","three.js r185 webgpu"),this.domElement=e),e}hasCompatibility(){return!1}initRenderTarget(){}set(e,t){this.data.set(e,t)}get(e){let t=this.data.get(e);return t===void 0&&(t={},this.data.set(e,t)),t}has(e){return this.data.has(e)}delete(e){this.data.delete(e)}deleteBindGroupData(){}dispose(){}},cN=0,dN=class{constructor(e,t){this.buffers=[e.bufferGPU,t],this.type=e.type,this.bufferType=e.bufferType,this.pbo=e.pbo,this.byteLength=e.byteLength,this.bytesPerElement=e.BYTES_PER_ELEMENT,this.version=e.version,this.isInteger=e.isInteger,this.activeBufferIndex=0,this.baseId=e.id}get id(){return`${this.baseId}|${this.activeBufferIndex}`}get bufferGPU(){return this.buffers[this.activeBufferIndex]}get transformBuffer(){return this.buffers[this.activeBufferIndex^1]}switchBuffers(){this.activeBufferIndex^=1}},hN=class{constructor(e){this.backend=e}createAttribute(e,t){const o=this.backend,{gl:r}=o,s=e.array,i=e.usage||r.STATIC_DRAW,n=e.isInterleavedBufferAttribute?e.data:e,a=o.get(n);let l=a.bufferGPU;l===void 0&&(l=this._createBuffer(r,t,s,i),a.bufferGPU=l,a.bufferType=t,a.version=n.version);let u;if(s instanceof Float32Array)u=r.FLOAT;else if(typeof Float16Array<"u"&&s instanceof Float16Array)u=r.HALF_FLOAT;else if(s instanceof Uint16Array)e.isFloat16BufferAttribute?u=r.HALF_FLOAT:u=r.UNSIGNED_SHORT;else if(s instanceof Int16Array)u=r.SHORT;else if(s instanceof Uint32Array)u=r.UNSIGNED_INT;else if(s instanceof Int32Array)u=r.INT;else if(s instanceof Int8Array)u=r.BYTE;else if(s instanceof Uint8Array)u=r.UNSIGNED_BYTE;else if(s instanceof Uint8ClampedArray)u=r.UNSIGNED_BYTE;else throw new Error("THREE.WebGLBackend: Unsupported buffer data format: "+s);let c={bufferGPU:l,bufferType:t,type:u,byteLength:s.byteLength,bytesPerElement:s.BYTES_PER_ELEMENT,version:e.version,pbo:e.pbo,isInteger:u===r.INT||u===r.UNSIGNED_INT||e.gpuType===1013,id:cN++};if(e.isStorageBufferAttribute||e.isStorageInstancedBufferAttribute){const d=this._createBuffer(r,t,s,i);c=new dN(c,d)}o.set(e,c)}updateAttribute(e){const t=this.backend,{gl:o}=t,r=e.array,s=e.isInterleavedBufferAttribute?e.data:e,i=t.get(s),n=i.bufferType,a=e.isInterleavedBufferAttribute?e.data.updateRanges:e.updateRanges;if(o.bindBuffer(n,i.bufferGPU),a.length===0)o.bufferSubData(n,0,r);else{for(let l=0,u=a.length;l{t.buffer=null,t._mapped=!1,t.removeEventListener("release",d),t.removeEventListener("dispose",d)};t.addEventListener("release",d),t.addEventListener("dispose",d),c=new Uint8Array(new ArrayBuffer(u)),t.buffer=c.buffer}else c=new Uint8Array(t);return i.bindBuffer(i.COPY_READ_BUFFER,l),i.getBufferSubData(i.COPY_READ_BUFFER,o,c),i.bindBuffer(i.COPY_READ_BUFFER,null),i.bindBuffer(i.COPY_WRITE_BUFFER,null),t&&t.isReadbackBuffer?t:c.buffer}_createBuffer(e,t,o,r){const s=e.createBuffer();return e.bindBuffer(t,s),e.bufferData(t,o,r),e.bindBuffer(t,null),s}},E3,ot,fN=class{constructor(e){this.backend=e,this.gl=this.backend.gl,this.enabled={},this.parameters={},this.currentFlipSided=null,this.currentCullFace=null,this.currentProgram=null,this.currentBlendingEnabled=!1,this.currentBlending=null,this.currentBlendSrc=null,this.currentBlendDst=null,this.currentBlendSrcAlpha=null,this.currentBlendDstAlpha=null,this.currentPremultipledAlpha=null,this.currentPolygonOffsetFactor=null,this.currentPolygonOffsetUnits=null,this.currentColorMask=null,this.currentDepthReversed=!1,this.currentDepthFunc=null,this.currentDepthMask=null,this.currentStencilFunc=null,this.currentStencilRef=null,this.currentStencilFuncMask=null,this.currentStencilFail=null,this.currentStencilZFail=null,this.currentStencilZPass=null,this.currentStencilMask=null,this.currentLineWidth=null,this.currentClippingPlanes=0,this.currentVAO=null,this.currentIndex=null,this.currentBoundFramebuffers={},this.currentDrawbuffers=new WeakMap,this.maxTextures=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS),this.currentTextureSlot=null,this.currentBoundTextures={},this.currentBoundBufferBases={},this._init()}_init(){const e=this.gl;E3={100:e.FUNC_ADD,101:e.FUNC_SUBTRACT,102:e.FUNC_REVERSE_SUBTRACT},ot={200:e.ZERO,201:e.ONE,202:e.SRC_COLOR,204:e.SRC_ALPHA,210:e.SRC_ALPHA_SATURATE,208:e.DST_COLOR,206:e.DST_ALPHA,203:e.ONE_MINUS_SRC_COLOR,205:e.ONE_MINUS_SRC_ALPHA,209:e.ONE_MINUS_DST_COLOR,207:e.ONE_MINUS_DST_ALPHA};const t=e.getParameter(e.SCISSOR_BOX),o=e.getParameter(e.VIEWPORT);this.currentScissor=new S1().fromArray(t),this.currentViewport=new S1().fromArray(o),this._tempVec4=new S1}enable(e){const{enabled:t}=this;t[e]!==!0&&(this.gl.enable(e),t[e]=!0)}disable(e){const{enabled:t}=this;t[e]!==!1&&(this.gl.disable(e),t[e]=!1)}setFlipSided(e){if(this.currentFlipSided!==e){const{gl:t}=this;e?t.frontFace(t.CW):t.frontFace(t.CCW),this.currentFlipSided=e}}setCullFace(e){const{gl:t}=this;e!==0?(this.enable(t.CULL_FACE),e!==this.currentCullFace&&(e===1?t.cullFace(t.BACK):e===2?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))):this.disable(t.CULL_FACE),this.currentCullFace=e}setLineWidth(e){const{currentLineWidth:t,gl:o}=this;e!==t&&(o.lineWidth(e),this.currentLineWidth=e)}setMRTBlending(e,t,o){const r=this.gl,s=this.backend.drawBuffersIndexedExt;if(!s){I1("WebGPURenderer: Multiple Render Targets (MRT) blending configuration is not fully supported in compatibility mode. The material blending will be used for all render targets.");return}for(let i=0;i0?this.enable(r.SAMPLE_ALPHA_TO_COVERAGE):this.disable(r.SAMPLE_ALPHA_TO_COVERAGE),o>0&&this.currentClippingPlanes!==o)for(let a=0;a<8;a++)a{function s(){const i=e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0);if(i===e.WAIT_FAILED){e.deleteSync(t),r();return}if(i===e.TIMEOUT_EXPIRED){requestAnimationFrame(s);return}e.deleteSync(t),o()}s()})}},O7=!1,qo,zs,F7,mN=class{constructor(e){this.backend=e,this.gl=e.gl,this.extensions=e.extensions,this.defaultTextures={},this._srcFramebuffer=null,this._dstFramebuffer=null,O7===!1&&(this._init(),O7=!0)}_init(){const e=this.gl;qo={[A6]:e.REPEAT,[Ot]:e.CLAMP_TO_EDGE,[E6]:e.MIRRORED_REPEAT},zs={[ve]:e.NEAREST,[P9]:e.NEAREST_MIPMAP_NEAREST,[b9]:e.NEAREST_MIPMAP_LINEAR,[Z1]:e.LINEAR,[rl]:e.LINEAR_MIPMAP_NEAREST,[ui]:e.LINEAR_MIPMAP_LINEAR},F7={512:e.NEVER,519:e.ALWAYS,513:e.LESS,515:e.LEQUAL,514:e.EQUAL,518:e.GEQUAL,516:e.GREATER,517:e.NOTEQUAL}}getGLTextureType(e){const{gl:t}=this;let o;return e.isCubeTexture===!0?o=t.TEXTURE_CUBE_MAP:e.isArrayTexture===!0||e.isDataArrayTexture===!0||e.isCompressedArrayTexture===!0?o=t.TEXTURE_2D_ARRAY:e.isData3DTexture===!0?o=t.TEXTURE_3D:o=t.TEXTURE_2D,o}getInternalFormat(e,t,o,r,s,i=!1){const{gl:n,extensions:a}=this;if(e!==null){if(n[e]!==void 0)return n[e];j("WebGLBackend: Attempt to use non-existing WebGL internal format '"+e+"'")}let l=null;r&&(l=a.get("EXT_texture_norm16"),l||j("WebGLRenderer: Unable to use normalized textures without EXT_texture_norm16 extension"));let u=t;if(t===n.RED&&(o===n.FLOAT&&(u=n.R32F),o===n.HALF_FLOAT&&(u=n.R16F),o===n.UNSIGNED_BYTE&&(u=n.R8),o===n.BYTE&&(u=n.R8_SNORM),o===n.UNSIGNED_SHORT&&l&&(u=l.R16_EXT),o===n.SHORT&&l&&(u=l.R16_SNORM_EXT)),t===n.RED_INTEGER&&(o===n.UNSIGNED_BYTE&&(u=n.R8UI),o===n.UNSIGNED_SHORT&&(u=n.R16UI),o===n.UNSIGNED_INT&&(u=n.R32UI),o===n.BYTE&&(u=n.R8I),o===n.SHORT&&(u=n.R16I),o===n.INT&&(u=n.R32I)),t===n.RG&&(o===n.FLOAT&&(u=n.RG32F),o===n.HALF_FLOAT&&(u=n.RG16F),o===n.UNSIGNED_BYTE&&(u=n.RG8),o===n.BYTE&&(u=n.RG8_SNORM),o===n.UNSIGNED_SHORT&&l&&(u=l.RG16_EXT),o===n.SHORT&&l&&(u=l.RG16_SNORM_EXT)),t===n.RG_INTEGER&&(o===n.UNSIGNED_BYTE&&(u=n.RG8UI),o===n.UNSIGNED_SHORT&&(u=n.RG16UI),o===n.UNSIGNED_INT&&(u=n.RG32UI),o===n.BYTE&&(u=n.RG8I),o===n.SHORT&&(u=n.RG16I),o===n.INT&&(u=n.RG32I)),t===n.RGB){const c=i?qn:e0.getTransfer(s);o===n.FLOAT&&(u=n.RGB32F),o===n.HALF_FLOAT&&(u=n.RGB16F),o===n.UNSIGNED_BYTE&&(u=c==="srgb"?n.SRGB8:n.RGB8),o===n.BYTE&&(u=n.RGB8_SNORM),o===n.UNSIGNED_SHORT&&l&&(u=l.RGB16_EXT),o===n.SHORT&&l&&(u=l.RGB16_SNORM_EXT),o===n.UNSIGNED_SHORT_5_6_5&&(u=n.RGB565),o===n.UNSIGNED_SHORT_5_5_5_1&&(u=n.RGB5_A1),o===n.UNSIGNED_SHORT_4_4_4_4&&(u=n.RGB4),o===n.UNSIGNED_INT_5_9_9_9_REV&&(u=n.RGB9_E5),o===n.UNSIGNED_INT_10F_11F_11F_REV&&(u=n.R11F_G11F_B10F)}if(t===n.RGB_INTEGER&&(o===n.UNSIGNED_BYTE&&(u=n.RGB8UI),o===n.UNSIGNED_SHORT&&(u=n.RGB16UI),o===n.UNSIGNED_INT&&(u=n.RGB32UI),o===n.BYTE&&(u=n.RGB8I),o===n.SHORT&&(u=n.RGB16I),o===n.INT&&(u=n.RGB32I)),t===n.RGBA){const c=i?qn:e0.getTransfer(s);o===n.FLOAT&&(u=n.RGBA32F),o===n.HALF_FLOAT&&(u=n.RGBA16F),o===n.UNSIGNED_BYTE&&(u=c==="srgb"?n.SRGB8_ALPHA8:n.RGBA8),o===n.BYTE&&(u=n.RGBA8_SNORM),o===n.UNSIGNED_SHORT&&l&&(u=l.RGBA16_EXT),o===n.SHORT&&l&&(u=l.RGBA16_SNORM_EXT),o===n.UNSIGNED_SHORT_4_4_4_4&&(u=n.RGBA4),o===n.UNSIGNED_SHORT_5_5_5_1&&(u=n.RGB5_A1)}return t===n.RGBA_INTEGER&&(o===n.UNSIGNED_BYTE&&(u=n.RGBA8UI),o===n.UNSIGNED_SHORT&&(u=n.RGBA16UI),o===n.UNSIGNED_INT&&(u=n.RGBA32UI),o===n.BYTE&&(u=n.RGBA8I),o===n.SHORT&&(u=n.RGBA16I),o===n.INT&&(u=n.RGBA32I)),t===n.DEPTH_COMPONENT&&(o===n.UNSIGNED_SHORT&&(u=n.DEPTH_COMPONENT16),o===n.UNSIGNED_INT&&(u=n.DEPTH_COMPONENT24),o===n.FLOAT&&(u=n.DEPTH_COMPONENT32F)),t===n.DEPTH_STENCIL&&o===n.UNSIGNED_INT_24_8&&(u=n.DEPTH24_STENCIL8),(u===n.R16F||u===n.R32F||u===n.RG16F||u===n.RG32F||u===n.RGBA16F||u===n.RGBA32F)&&a.get("EXT_color_buffer_float"),u}setTextureParameters(e,t){const{gl:o,extensions:r,backend:s}=this,{state:i}=this.backend,n=e0.getPrimaries(e0.workingColorSpace),a=t.colorSpace===""?null:e0.getPrimaries(t.colorSpace),l=t.colorSpace===""||n===a?o.NONE:o.BROWSER_DEFAULT_WEBGL;i.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,t.flipY),i.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.premultiplyAlpha),i.pixelStorei(o.UNPACK_ALIGNMENT,t.unpackAlignment),i.pixelStorei(o.UNPACK_COLORSPACE_CONVERSION_WEBGL,l),o.texParameteri(e,o.TEXTURE_WRAP_S,qo[t.wrapS]),o.texParameteri(e,o.TEXTURE_WRAP_T,qo[t.wrapT]),(e===o.TEXTURE_3D||e===o.TEXTURE_2D_ARRAY)&&(t.isArrayTexture||o.texParameteri(e,o.TEXTURE_WRAP_R,qo[t.wrapR])),o.texParameteri(e,o.TEXTURE_MAG_FILTER,zs[t.magFilter]);const u=t.mipmaps!==void 0&&t.mipmaps.length>0,c=t.minFilter===1006&&u?ui:t.minFilter;if(o.texParameteri(e,o.TEXTURE_MIN_FILTER,zs[c]),t.compareFunction&&(o.texParameteri(e,o.TEXTURE_COMPARE_MODE,o.COMPARE_REF_TO_TEXTURE),o.texParameteri(e,o.TEXTURE_COMPARE_FUNC,F7[t.compareFunction])),r.has("EXT_texture_filter_anisotropic")===!0){if(t.magFilter===1003||t.minFilter!==1005&&t.minFilter!==1008||t.type===1015&&r.has("OES_texture_float_linear")===!1)return;if(t.anisotropy>1){const d=r.get("EXT_texture_filter_anisotropic");o.texParameterf(e,d.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(t.anisotropy,s.capabilities.getMaxAnisotropy()))}}}createDefaultTexture(e){const{gl:t,backend:o,defaultTextures:r}=this,s=this.getGLTextureType(e);let i=r[s];i===void 0&&(i=t.createTexture(),o.state.bindTexture(s,i),t.texParameteri(s,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(s,t.TEXTURE_MAG_FILTER,t.NEAREST),r[s]=i),o.set(e,{textureGPU:i,glTextureType:s})}createTexture(e,t){const{gl:o,backend:r}=this;let s,i,n,a,l;if(e.isExternalTexture===!0)s=e.sourceTexture,i=this.getGLTextureType(e);else{const{levels:u,width:c,height:d,depth:h}=t;n=r.utils.convert(e.format,e.colorSpace),a=r.utils.convert(e.type),l=this.getInternalFormat(e.internalFormat,n,a,e.normalized,e.colorSpace,e.isVideoTexture),s=o.createTexture(),i=this.getGLTextureType(e),r.state.bindTexture(i,s),this.setTextureParameters(i,e),e.isArrayTexture||e.isDataArrayTexture||e.isCompressedArrayTexture?o.texStorage3D(o.TEXTURE_2D_ARRAY,u,l,c,d,h):e.isData3DTexture?o.texStorage3D(o.TEXTURE_3D,u,l,c,d,h):e.isVideoTexture||o.texStorage2D(i,u,l,c,d)}r.set(e,{textureGPU:s,glTextureType:i,glFormat:n,glType:a,glInternalFormat:l})}copyBufferToTexture(e,t){const{gl:o,backend:r}=this,{state:s}=r,{textureGPU:i,glTextureType:n,glFormat:a,glType:l}=r.get(t),{width:u,height:c}=t.source.data;o.bindBuffer(o.PIXEL_UNPACK_BUFFER,e),r.state.bindTexture(n,i),s.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),s.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.texSubImage2D(n,0,0,0,u,c,a,l,0),o.bindBuffer(o.PIXEL_UNPACK_BUFFER,null),r.state.unbindTexture()}updateTexture(e,t){const{gl:o}=this,{width:r,height:s}=t,{textureGPU:i,glTextureType:n,glFormat:a,glType:l,glInternalFormat:u}=this.backend.get(e);if(!(e.isRenderTargetTexture||i===void 0))if(this.backend.state.bindTexture(n,i),this.setTextureParameters(n,e),e.isCompressedTexture){const c=e.mipmaps,d=t.image;for(let h=0;h0){const d=cl(c.width,c.height,e.format,e.type);for(const h of e.layerUpdates){const f=c.data.subarray(h*d/c.data.BYTES_PER_ELEMENT,(h+1)*d/c.data.BYTES_PER_ELEMENT);o.texSubImage3D(o.TEXTURE_2D_ARRAY,0,0,0,h,c.width,c.height,1,a,l,f)}e.clearLayerUpdates()}else o.texSubImage3D(o.TEXTURE_2D_ARRAY,0,0,0,0,c.width,c.height,c.depth,a,l,c.data)}else if(e.isData3DTexture){const c=t.image;o.texSubImage3D(o.TEXTURE_3D,0,0,0,0,c.width,c.height,c.depth,a,l,c.data)}else if(e.isVideoTexture)e.update(),o.texImage2D(n,0,u,a,l,t.image);else if(e.isHTMLTexture)typeof o.texElementImage2D=="function"&&(o.texElementImage2D.length===3?o.texElementImage2D(o.TEXTURE_2D,o.RGBA8,t.image):o.texElementImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,t.image));else{const c=e.mipmaps;if(c.length>0)for(let d=0,h=c.length;d0,d=t.renderTarget?t.renderTarget.height:this.backend.getDrawingBufferSize().y;if(c){const h=n!==0||a!==0;let f,p;if(e.isDepthTexture===!0?(f=r.DEPTH_BUFFER_BIT,p=r.DEPTH_ATTACHMENT,t.stencil&&(f|=r.STENCIL_BUFFER_BIT)):(f=r.COLOR_BUFFER_BIT,p=r.COLOR_ATTACHMENT0),h){const m=this.backend.get(t.renderTarget),b=m.framebuffers[t.getCacheKey()],N=m.msaaFrameBuffer;s.bindFramebuffer(r.DRAW_FRAMEBUFFER,b),s.bindFramebuffer(r.READ_FRAMEBUFFER,N);const v=d-a-u;r.blitFramebuffer(n,v,n+l,v+u,n,v,n+l,v+u,f,r.NEAREST),s.bindFramebuffer(r.READ_FRAMEBUFFER,b),s.bindTexture(r.TEXTURE_2D,i),r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,n,v,l,u),s.unbindTexture()}else{const m=r.createFramebuffer();s.bindFramebuffer(r.DRAW_FRAMEBUFFER,m),r.framebufferTexture2D(r.DRAW_FRAMEBUFFER,p,r.TEXTURE_2D,i,0),r.blitFramebuffer(0,0,l,u,0,0,l,u,f,r.NEAREST),r.deleteFramebuffer(m)}}else s.bindTexture(r.TEXTURE_2D,i),r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,n,d-u-a,l,u),s.unbindTexture();e.generateMipmaps&&this.generateMipmaps(e),this.backend._setFramebuffer(t)}setupRenderBufferStorage(e,t,o,r=!1){const{gl:s}=this,i=t.renderTarget,{depthTexture:n,depthBuffer:a,stencilBuffer:l,width:u,height:c}=i;if(s.bindRenderbuffer(s.RENDERBUFFER,e),a&&!l){let d=s.DEPTH_COMPONENT24;r===!0?this.extensions.get("WEBGL_multisampled_render_to_texture").renderbufferStorageMultisampleEXT(s.RENDERBUFFER,i.samples,d,u,c):o>0?(n&&n.isDepthTexture&&n.type===s.FLOAT&&(d=s.DEPTH_COMPONENT32F),s.renderbufferStorageMultisample(s.RENDERBUFFER,o,d,u,c)):s.renderbufferStorage(s.RENDERBUFFER,d,u,c),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,e)}else a&&l&&(o>0?s.renderbufferStorageMultisample(s.RENDERBUFFER,o,s.DEPTH24_STENCIL8,u,c):s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_STENCIL,u,c),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_STENCIL_ATTACHMENT,s.RENDERBUFFER,e));s.bindRenderbuffer(s.RENDERBUFFER,null)}async copyTextureToBuffer(e,t,o,r,s,i){const{backend:n,gl:a}=this,{textureGPU:l,glFormat:u,glType:c}=this.backend.get(e),d=a.createFramebuffer();n.state.bindFramebuffer(a.READ_FRAMEBUFFER,d);const h=e.isCubeTexture?a.TEXTURE_CUBE_MAP_POSITIVE_X+i:a.TEXTURE_2D;a.framebufferTexture2D(a.READ_FRAMEBUFFER,a.COLOR_ATTACHMENT0,h,l,0);const f=this._getTypedArrayType(c),p=this._getBytesPerTexel(c,u),m=r*s*p,b=a.createBuffer();a.bindBuffer(a.PIXEL_PACK_BUFFER,b),a.bufferData(a.PIXEL_PACK_BUFFER,m,a.STREAM_READ),a.readPixels(t,o,r,s,u,c,0),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),await n.utils._clientWaitAsync();const N=new f(m/f.BYTES_PER_ELEMENT);return a.bindBuffer(a.PIXEL_PACK_BUFFER,b),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,N),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),n.state.bindFramebuffer(a.READ_FRAMEBUFFER,null),a.deleteFramebuffer(d),N}_getTypedArrayType(e){const{gl:t}=this;if(e===t.UNSIGNED_BYTE)return Uint8Array;if(e===t.UNSIGNED_SHORT_4_4_4_4||e===t.UNSIGNED_SHORT_5_5_5_1||e===t.UNSIGNED_SHORT_5_6_5||e===t.UNSIGNED_SHORT)return Uint16Array;if(e===t.UNSIGNED_INT)return Uint32Array;if(e===t.HALF_FLOAT)return Uint16Array;if(e===t.FLOAT)return Float32Array;throw new Error(`THREE.WebGLTextureUtils: Unsupported WebGL type: ${e}`)}_getBytesPerTexel(e,t){const{gl:o}=this;let r=0;if(e===o.UNSIGNED_BYTE&&(r=1),(e===o.UNSIGNED_SHORT_4_4_4_4||e===o.UNSIGNED_SHORT_5_5_5_1||e===o.UNSIGNED_SHORT_5_6_5||e===o.UNSIGNED_SHORT||e===o.HALF_FLOAT)&&(r=2),(e===o.UNSIGNED_INT||e===o.FLOAT)&&(r=4),t===o.RGBA)return r*4;if(t===o.RGB)return r*3;if(t===o.ALPHA)return r}dispose(){const{gl:e}=this;this._srcFramebuffer!==null&&e.deleteFramebuffer(this._srcFramebuffer),this._dstFramebuffer!==null&&e.deleteFramebuffer(this._dstFramebuffer)}};function Ho(e){return e.isDataTexture?e.image.data:typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas?e:e.data}var gN=class{constructor(e){this.backend=e,this.gl=this.backend.gl,this.availableExtensions=this.gl.getSupportedExtensions(),this.extensions={}}get(e){let t=this.extensions[e];return t===void 0&&(t=this.gl.getExtension(e),this.extensions[e]=t),t}has(e){return this.availableExtensions.includes(e)}},vN=class{constructor(e){this.backend=e,this.maxAnisotropy=null,this.maxUniformBlockSize=null}getMaxAnisotropy(){if(this.maxAnisotropy!==null)return this.maxAnisotropy;const e=this.backend.gl,t=this.backend.extensions;if(t.has("EXT_texture_filter_anisotropic")===!0){const o=t.get("EXT_texture_filter_anisotropic");this.maxAnisotropy=e.getParameter(o.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else this.maxAnisotropy=0;return this.maxAnisotropy}getUniformBufferLimit(){if(this.maxUniformBlockSize!==null)return this.maxUniformBlockSize;const e=this.backend.gl;return this.maxUniformBlockSize=e.getParameter(e.MAX_UNIFORM_BLOCK_SIZE),this.maxUniformBlockSize}},P7={WEBGL_multi_draw:"WEBGL_multi_draw",WEBGL_compressed_texture_astc:"texture-compression-astc",WEBGL_compressed_texture_etc:"texture-compression-etc2",WEBGL_compressed_texture_etc1:"texture-compression-etc1",WEBGL_compressed_texture_pvrtc:"texture-compression-pvrtc",WEBGL_compressed_texture_s3tc:"texture-compression-s3tc",EXT_texture_compression_bptc:"texture-compression-bc",EXT_disjoint_timer_query_webgl2:"timestamp-query",OVR_multiview2:"OVR_multiview2"},bN=class{constructor(e){this.gl=e.gl,this.extensions=e.extensions,this.info=e.renderer.info,this.mode=null,this.index=0,this.type=null,this.object=null}render(e,t){const{gl:o,mode:r,object:s,type:i,info:n,index:a}=this;a!==0?o.drawElements(r,t,i,e):o.drawArrays(r,e,t),n.update(s,t,1)}renderInstances(e,t,o){const{gl:r,mode:s,type:i,index:n,object:a,info:l}=this;o!==0&&(n!==0?r.drawElementsInstanced(s,t,i,e,o):r.drawArraysInstanced(s,e,t,o),l.update(a,t,o))}renderMultiDraw(e,t,o){const{extensions:r,mode:s,object:i,info:n}=this;if(o===0)return;const a=r.get("WEBGL_multi_draw");if(a===null)for(let l=0;lthis.maxQueries)return I1(`WebGLTimestampQueryPool [${this.type}]: Maximum number of queries exceeded, when using trackTimestamp it is necessary to resolves the queries via renderer.resolveTimestampsAsync( THREE.TimestampQuery.${this.type.toUpperCase()} ).`),null;const t=this.currentQueryIndex;return this.currentQueryIndex+=2,this.queryStates.set(t,"inactive"),this.queryOffsets.set(e,t),t}beginQuery(e){if(!this.trackTimestamp||this.isDisposed)return;const t=this.queryOffsets.get(e);if(t==null||this.activeQuery!==null)return;const o=this.queries[t];if(o)try{this.queryStates.get(t)==="inactive"&&(this.gl.beginQuery(this.ext.TIME_ELAPSED_EXT,o),this.activeQuery=t,this.queryStates.set(t,"started"))}catch(r){G("Error in beginQuery:",r),this.activeQuery=null,this.queryStates.set(t,"inactive")}}endQuery(e){if(!this.trackTimestamp||this.isDisposed)return;const t=this.queryOffsets.get(e);if(t!=null&&this.activeQuery===t)try{this.gl.endQuery(this.ext.TIME_ELAPSED_EXT),this.queryStates.set(t,"ended"),this.activeQuery=null}catch(o){G("Error in endQuery:",o),this.queryStates.set(t,"inactive"),this.activeQuery=null}}async resolveQueriesAsync(){if(!this.trackTimestamp||this.pendingResolve)return this.lastValue;this.pendingResolve=!0;try{const e=new Map;for(const[s,i]of this.queryOffsets)if(this.queryStates.get(i)==="ended"){const n=this.queries[i];e.set(s,this.resolveQuery(n))}if(e.size===0)return this.lastValue;const t={},o=[];for(const[s,i]of e){const n=s.match(/^(.*):f(\d+)$/),a=parseInt(n[2]);o.includes(a)===!1&&o.push(a),t[a]===void 0&&(t[a]=0);const l=await i;this.timestamps.set(s,l),t[a]+=l}const r=t[o[o.length-1]];return this.lastValue=r,this.frames=o,this.currentQueryIndex=0,this.queryOffsets.clear(),this.queryStates.clear(),this.activeQuery=null,r}catch(e){return G("Error resolving queries:",e),this.lastValue}finally{this.pendingResolve=!1}}async resolveQuery(e){return new Promise(t=>{if(this.isDisposed){t(this.lastValue);return}let o,r=!1;const s=()=>{o&&(clearTimeout(o),o=null)},i=a=>{r||(r=!0,s(),t(a))},n=()=>{if(this.isDisposed){i(this.lastValue);return}try{if(this.gl.getParameter(this.ext.GPU_DISJOINT_EXT)){i(this.lastValue);return}if(!this.gl.getQueryParameter(e,this.gl.QUERY_RESULT_AVAILABLE)){o=setTimeout(n,1);return}const a=this.gl.getQueryParameter(e,this.gl.QUERY_RESULT);t(Number(a)/1e6)}catch(a){G("Error checking query:",a),t(this.lastValue)}};n()})}dispose(){if(!this.isDisposed&&(this.isDisposed=!0,!!this.trackTimestamp)){for(const e of this.queries)this.gl.deleteQuery(e);this.queries=[],this.queryStates.clear(),this.queryOffsets.clear(),this.lastValue=0,this.activeQuery=null}}},D7=class extends y5{constructor(e={}){super(e),this.isWebGLBackend=!0,this.attributeUtils=null,this.extensions=null,this.capabilities=null,this.textureUtils=null,this.bufferRenderer=null,this.gl=null,this.state=null,this.utils=null,this.vaoCache={},this.transformFeedbackCache={},this.discard=!1,this.disjoint=null,this.parallel=null,this._currentContext=null,this._knownBindings=new WeakSet,this._supportsInvalidateFramebuffer=typeof navigator>"u"?!1:/OculusBrowser/g.test(navigator.userAgent),this._xrFramebuffer=null}init(e){super.init(e);const t=this.parameters,o={antialias:e.currentSamples>0,alpha:!0,depth:e.depth,stencil:e.stencil},r=t.context!==void 0?t.context:e.domElement.getContext("webgl2",o);function s(i){i.preventDefault();const n={api:"WebGL",message:i.statusMessage||"Unknown reason",reason:null,originalEvent:i};e.onDeviceLost(n)}this._onContextLost=s,e.domElement.addEventListener("webglcontextlost",s,!1),this.gl=r,this.extensions=new gN(this),this.capabilities=new vN(this),this.attributeUtils=new hN(this),this.textureUtils=new mN(this),this.bufferRenderer=new bN(this),this.state=new fN(this),this.utils=new pN(this),this.extensions.get("EXT_color_buffer_float"),this.extensions.get("WEBGL_clip_cull_distance"),this.extensions.get("OES_texture_float_linear"),this.extensions.get("EXT_color_buffer_half_float"),this.extensions.get("WEBGL_multisampled_render_to_texture"),this.extensions.get("WEBGL_render_shared_exponent"),this.extensions.get("WEBGL_multi_draw"),this.extensions.get("OVR_multiview2"),this.extensions.get("EXT_clip_control"),this.disjoint=this.extensions.get("EXT_disjoint_timer_query_webgl2"),this.parallel=this.extensions.get("KHR_parallel_shader_compile"),this.drawBuffersIndexedExt=this.extensions.get("OES_draw_buffers_indexed"),t.reversedDepthBuffer&&(this.extensions.has("EXT_clip_control")?e.reversedDepthBuffer=!0:(j("WebGPURenderer: Unable to use reversed depth buffer due to missing EXT_clip_control extension. Fallback to default depth buffer."),e.reversedDepthBuffer=!1)),e.reversedDepthBuffer&&this.state.setReversedDepth(!0)}get coordinateSystem(){return D6}get hasTimestamp(){return this.disjoint!==null}async getArrayBufferAsync(e,t=null,o=0,r=-1){return await this.attributeUtils.getArrayBufferAsync(e,t,o,r)}async makeXRCompatible(){this.gl.getContextAttributes().xrCompatible!==!0&&await this.gl.makeXRCompatible()}setXRTarget(e){this._xrFramebuffer=e}setXRRenderTargetTextures(e,t,o=null){const r=this.gl;if(this.set(e.texture,{textureGPU:t,glInternalFormat:r.RGBA8}),o!==null){const s=e.stencilBuffer?r.DEPTH24_STENCIL8:r.DEPTH_COMPONENT24;this.set(e.depthTexture,{textureGPU:o,glInternalFormat:s}),this.extensions.has("WEBGL_multisampled_render_to_texture")===!0&&e._autoAllocateDepthBuffer===!0&&e.multiview===!1&&j("WebGLBackend: Render-to-texture extension was disabled because an external texture was provided"),e._autoAllocateDepthBuffer=!1}}initTimestampQuery(e,t){if(!this.disjoint||!this.trackTimestamp)return;this.timestampQueryPool[e]||(this.timestampQueryPool[e]=new NN(this.gl,e,2048));const o=this.timestampQueryPool[e];o.allocateQueriesForContext(t)!==null&&o.beginQuery(t)}prepareTimestampBuffer(e,t){!this.disjoint||!this.trackTimestamp||this.timestampQueryPool[e].endQuery(t)}getContext(){return this.gl}beginRender(e){const{state:t}=this,o=this.get(e);if(e.viewport)this.updateViewport(e);else{const{width:s,height:i}=this.getDrawingBufferSize();t.viewport(0,0,s,i)}if(e.scissor)this.updateScissor(e);else{const{width:s,height:i}=this.getDrawingBufferSize();t.scissor(0,0,s,i)}this.initTimestampQuery(ze.RENDER,this.getTimestampUID(e)),o.previousContext=this._currentContext,this._currentContext=e,this._setFramebuffer(e),this.clear(e.clearColor,e.clearDepth,e.clearStencil,e,!1);const r=e.occlusionQueryCount;r>0&&(o.currentOcclusionQueries=o.occlusionQueries,o.currentOcclusionQueryObjects=o.occlusionQueryObjects,o.lastOcclusionObject=null,o.occlusionQueries=new Array(r),o.occlusionQueryObjects=new Array(r),o.occlusionQueryIndex=0)}finishRender(e){const{gl:t,state:o}=this,r=this.get(e),s=r.previousContext;o.resetVertexState();const i=e.occlusionQueryCount;i>0&&(i>r.occlusionQueryIndex&&t.endQuery(t.ANY_SAMPLES_PASSED),this.resolveOccludedAsync(e));const n=e.textures;if(n!==null)for(let a=0;a{let a=0;for(let l=0;l1?t.renderInstances(o,r,s):t.render(o,r)}draw(e){const{object:t,pipeline:o,material:r,context:s,hardwareClippingPlanes:i}=e,{programGPU:n}=this.get(o),{gl:a,state:l}=this,u=this.get(s),c=e.getDrawParameters();if(c===null)return;this._bindUniforms(e.getBindings());const d=t.isMesh&&t.matrixWorld.determinantAffine()<0;l.setMaterial(r,d,i),s.mrt!==null&&s.textures!==null&&l.setMRTBlending(s.textures,s.mrt,r),l.useProgram(n);const h=e.getAttributes(),f=this.get(h);let p=f.vaoGPU;if(p===void 0){const S=this._getVaoKey(h);p=this.vaoCache[S],p===void 0&&(p=this._createVao(h),this.vaoCache[S]=p,f.vaoGPU=p)}const m=e.getIndex(),b=m!==null?this.get(m).bufferGPU:null;l.setVertexState(p,b);const N=u.lastOcclusionObject;if(N!==t&&N!==void 0){if(N!==null&&N.occlusionTest===!0&&(a.endQuery(a.ANY_SAMPLES_PASSED),u.occlusionQueryIndex++),t.occlusionTest===!0){const S=a.createQuery();a.beginQuery(a.ANY_SAMPLES_PASSED,S),u.occlusionQueries[u.occlusionQueryIndex]=S,u.occlusionQueryObjects[u.occlusionQueryIndex]=t}u.lastOcclusionObject=t}const v=this.bufferRenderer;t.isPoints?v.mode=a.POINTS:t.isLineSegments?v.mode=a.LINES:t.isLine?v.mode=a.LINE_STRIP:t.isLineLoop?v.mode=a.LINE_LOOP:r.wireframe===!0?(l.setLineWidth(r.wireframeLinewidth*this.renderer.getPixelRatio()),v.mode=a.LINES):v.mode=a.TRIANGLES;const{vertexCount:M,instanceCount:T}=c;let{firstVertex:x}=c;if(v.object=t,m!==null){x*=m.array.BYTES_PER_ELEMENT;const S=this.get(m);v.index=m.count,v.type=S.type}else v.index=0;if(e.camera.isArrayCamera===!0&&e.camera.cameras.length>0&&e.camera.isMultiViewCamera===!1){const S=this.get(e.camera),R=e.camera.cameras,w=e.getBindingGroup("cameraIndex").bindings[0];if(S.indexesGPU===void 0||S.indexesGPU.length!==R.length){const L=new Uint32Array([0,0,0,0]),D=[];for(let $=0,k=R.length;${const d=this.parallel,h=()=>{o.getProgramParameter(n,d.COMPLETION_STATUS_KHR)?(this._completeCompile(e,r),c()):requestAnimationFrame(h)};h()});t.push(u);return}this._completeCompile(e,r)}_handleSource(e,t){const o=e.split(` -`),r=[],s=Math.max(t-6,0),i=Math.min(t+6,o.length);for(let n=s;n":" "} ${a}: ${o[n]}`)}return r.join(` -`)}_getShaderErrors(e,t,o){const r=e.getShaderParameter(t,e.COMPILE_STATUS),s=(e.getShaderInfoLog(t)||"").trim();if(r&&s==="")return"";const i=/ERROR: 0:(\d+)/.exec(s);if(i){const n=parseInt(i[1]);return o.toUpperCase()+` - -`+s+` - -`+this._handleSource(e.getShaderSource(t),n)}else return s}_logProgramError(e,t,o){if(this.renderer.debug.checkShaderErrors){const r=this.gl,s=(r.getProgramInfoLog(e)||"").trim();if(r.getProgramParameter(e,r.LINK_STATUS)===!1)if(typeof this.renderer.debug.onShaderError=="function")this.renderer.debug.onShaderError(r,e,o,t);else{const i=this._getShaderErrors(r,o,"vertex"),n=this._getShaderErrors(r,t,"fragment");G("WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(e,r.VALIDATE_STATUS)+` - -Program Info Log: `+s+` -`+i+` -`+n)}else s!==""&&j("WebGLProgram: Program Info Log:",s)}}_completeCompile(e,t){const{state:o,gl:r}=this,{programGPU:s,fragmentShader:i,vertexShader:n}=this.get(t);r.getProgramParameter(s,r.LINK_STATUS)===!1&&this._logProgramError(s,i,n),o.useProgram(s);const a=e.getBindings();this._setupBindings(a,s),this.set(t,{programGPU:s,pipeline:s})}createComputePipeline(e,t){const{state:o,gl:r}=this,s={stage:"fragment",code:`#version 300 es -precision highp float; -void main() {}`};this.createProgram(s);const{computeProgram:i}=e,n=r.createProgram(),a=this.get(s).shaderGPU,l=this.get(i).shaderGPU,u=i.transforms,c=[],d=[];for(let m=0;mP7[r]===e),o=this.extensions;for(let r=0;r1,h=s.isXRRenderTarget===!0,f=h===!0&&s._hasExternalTextures===!0;let p=i.msaaFrameBuffer,m=i.depthRenderbuffer;const b=this.extensions.get("WEBGL_multisampled_render_to_texture"),N=this.extensions.get("OVR_multiview2"),v=this._useMultisampledExtension(s),M=Z8(e);let T;if(u?(i.cubeFramebuffers||(i.cubeFramebuffers={}),T=i.cubeFramebuffers[M]):h&&f===!1?T=this._xrFramebuffer:(i.framebuffers||(i.framebuffers={}),T=i.framebuffers[M]),T===void 0){T=t.createFramebuffer(),o.bindFramebuffer(t.FRAMEBUFFER,T);const x=e.textures,S=[];if(u){i.cubeFramebuffers[M]=T;const{textureGPU:w}=this.get(x[0]),W=this.renderer._activeCubeFace,O=this.renderer._activeMipmapLevel;t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+W,w,O)}else{i.framebuffers[M]=T;for(let w=0;w0&&v===!1&&!s.multiview){if(p===void 0){const x=[];p=t.createFramebuffer(),o.bindFramebuffer(t.FRAMEBUFFER,p);const S=[],R=e.textures;for(let w=0;w0&&this._useMultisampledExtension(r)===!1){const i=s.framebuffers[e.getCacheKey()];let n=t.COLOR_BUFFER_BIT;r.resolveDepthBuffer&&(r.depthBuffer&&(n|=t.DEPTH_BUFFER_BIT),r.stencilBuffer&&r.resolveStencilBuffer&&(n|=t.STENCIL_BUFFER_BIT));const a=s.msaaFrameBuffer,l=s.msaaRenderbuffers,u=e.textures,c=u.length>1;if(o.bindFramebuffer(t.READ_FRAMEBUFFER,a),o.bindFramebuffer(t.DRAW_FRAMEBUFFER,i),c)for(let d=0;d0&&this.extensions.has("WEBGL_multisampled_render_to_texture")===!0&&e._autoAllocateDepthBuffer!==!1}dispose(){this.textureUtils!==null&&this.textureUtils.dispose();const e=this.extensions.get("WEBGL_lose_context");e&&e.loseContext(),this.renderer.domElement.removeEventListener("webglcontextlost",this._onContextLost)}},Q3={PointList:"point-list",LineList:"line-list",LineStrip:"line-strip",TriangleList:"triangle-list"},Qe=typeof self<"u"&&self.GPUShaderStage?self.GPUShaderStage:{VERTEX:1,FRAGMENT:2,COMPUTE:4},d0={Never:"never",Less:"less",Equal:"equal",LessEqual:"less-equal",Greater:"greater",NotEqual:"not-equal",GreaterEqual:"greater-equal",Always:"always"},w0={Store:"store"},B1={Load:"load",Clear:"clear"},k7={CCW:"ccw",CW:"cw"},X7={None:"none",Back:"back"},Lr={Uint16:"uint16",Uint32:"uint32"},y={R8Unorm:"r8unorm",R8Snorm:"r8snorm",R8Uint:"r8uint",R8Sint:"r8sint",R16Uint:"r16uint",R16Sint:"r16sint",R16Float:"r16float",RG8Unorm:"rg8unorm",RG8Snorm:"rg8snorm",RG8Uint:"rg8uint",RG8Sint:"rg8sint",R16Unorm:"r16unorm",R16Snorm:"r16snorm",R32Uint:"r32uint",R32Sint:"r32sint",R32Float:"r32float",RG16Uint:"rg16uint",RG16Sint:"rg16sint",RG16Float:"rg16float",RGBA8Unorm:"rgba8unorm",RGBA8UnormSRGB:"rgba8unorm-srgb",RGBA8Snorm:"rgba8snorm",RGBA8Uint:"rgba8uint",RGBA8Sint:"rgba8sint",BGRA8Unorm:"bgra8unorm",BGRA8UnormSRGB:"bgra8unorm-srgb",RG16Unorm:"rg16unorm",RG16Snorm:"rg16snorm",RGB9E5UFloat:"rgb9e5ufloat",RGB10A2Unorm:"rgb10a2unorm",RG11B10UFloat:"rg11b10ufloat",RG32Uint:"rg32uint",RG32Sint:"rg32sint",RG32Float:"rg32float",RGBA16Uint:"rgba16uint",RGBA16Sint:"rgba16sint",RGBA16Float:"rgba16float",RGBA16Unorm:"rgba16unorm",RGBA16Snorm:"rgba16snorm",RGBA32Uint:"rgba32uint",RGBA32Sint:"rgba32sint",RGBA32Float:"rgba32float",Depth16Unorm:"depth16unorm",Depth24Plus:"depth24plus",Depth24PlusStencil8:"depth24plus-stencil8",Depth32Float:"depth32float",Depth32FloatStencil8:"depth32float-stencil8",BC1RGBAUnorm:"bc1-rgba-unorm",BC1RGBAUnormSRGB:"bc1-rgba-unorm-srgb",BC2RGBAUnorm:"bc2-rgba-unorm",BC2RGBAUnormSRGB:"bc2-rgba-unorm-srgb",BC3RGBAUnorm:"bc3-rgba-unorm",BC3RGBAUnormSRGB:"bc3-rgba-unorm-srgb",BC4RUnorm:"bc4-r-unorm",BC4RSnorm:"bc4-r-snorm",BC5RGUnorm:"bc5-rg-unorm",BC5RGSnorm:"bc5-rg-snorm",BC6HRGBUFloat:"bc6h-rgb-ufloat",BC6HRGBFloat:"bc6h-rgb-float",BC7RGBAUnorm:"bc7-rgba-unorm",BC7RGBAUnormSRGB:"bc7-rgba-unorm-srgb",ETC2RGB8Unorm:"etc2-rgb8unorm",ETC2RGB8UnormSRGB:"etc2-rgb8unorm-srgb",ETC2RGB8A1Unorm:"etc2-rgb8a1unorm",ETC2RGB8A1UnormSRGB:"etc2-rgb8a1unorm-srgb",ETC2RGBA8Unorm:"etc2-rgba8unorm",ETC2RGBA8UnormSRGB:"etc2-rgba8unorm-srgb",EACR11Unorm:"eac-r11unorm",EACR11Snorm:"eac-r11snorm",EACRG11Unorm:"eac-rg11unorm",EACRG11Snorm:"eac-rg11snorm",ASTC4x4Unorm:"astc-4x4-unorm",ASTC4x4UnormSRGB:"astc-4x4-unorm-srgb",ASTC5x4Unorm:"astc-5x4-unorm",ASTC5x4UnormSRGB:"astc-5x4-unorm-srgb",ASTC5x5Unorm:"astc-5x5-unorm",ASTC5x5UnormSRGB:"astc-5x5-unorm-srgb",ASTC6x5Unorm:"astc-6x5-unorm",ASTC6x5UnormSRGB:"astc-6x5-unorm-srgb",ASTC6x6Unorm:"astc-6x6-unorm",ASTC6x6UnormSRGB:"astc-6x6-unorm-srgb",ASTC8x5Unorm:"astc-8x5-unorm",ASTC8x5UnormSRGB:"astc-8x5-unorm-srgb",ASTC8x6Unorm:"astc-8x6-unorm",ASTC8x6UnormSRGB:"astc-8x6-unorm-srgb",ASTC8x8Unorm:"astc-8x8-unorm",ASTC8x8UnormSRGB:"astc-8x8-unorm-srgb",ASTC10x5Unorm:"astc-10x5-unorm",ASTC10x5UnormSRGB:"astc-10x5-unorm-srgb",ASTC10x6Unorm:"astc-10x6-unorm",ASTC10x6UnormSRGB:"astc-10x6-unorm-srgb",ASTC10x8Unorm:"astc-10x8-unorm",ASTC10x8UnormSRGB:"astc-10x8-unorm-srgb",ASTC10x10Unorm:"astc-10x10-unorm",ASTC10x10UnormSRGB:"astc-10x10-unorm-srgb",ASTC12x10Unorm:"astc-12x10-unorm",ASTC12x10UnormSRGB:"astc-12x10-unorm-srgb",ASTC12x12Unorm:"astc-12x12-unorm",ASTC12x12UnormSRGB:"astc-12x12-unorm-srgb"},Vs={ClampToEdge:"clamp-to-edge",Repeat:"repeat",MirrorRepeat:"mirror-repeat"},ee={Linear:"linear",Nearest:"nearest"},v1={Zero:"zero",One:"one",Src:"src",OneMinusSrc:"one-minus-src",SrcAlpha:"src-alpha",OneMinusSrcAlpha:"one-minus-src-alpha",Dst:"dst",OneMinusDst:"one-minus-dst",DstAlpha:"dst-alpha",OneMinusDstAlpha:"one-minus-dst-alpha",SrcAlphaSaturated:"src-alpha-saturated",Constant:"constant",OneMinusConstant:"one-minus-constant"},qt={Add:"add",Subtract:"subtract",ReverseSubtract:"reverse-subtract",Min:"min",Max:"max"},I7={None:0,All:15},vt={Keep:"keep",Zero:"zero",Replace:"replace",Invert:"invert",IncrementClamp:"increment-clamp",DecrementClamp:"decrement-clamp",IncrementWrap:"increment-wrap",DecrementWrap:"decrement-wrap"},Qs={Storage:"storage",ReadOnlyStorage:"read-only-storage"},$s={WriteOnly:"write-only",ReadOnly:"read-only",ReadWrite:"read-write"},G7={NonFiltering:"non-filtering",Comparison:"comparison"},Ht={Float:"float",UnfilterableFloat:"unfilterable-float",Depth:"depth",SInt:"sint",UInt:"uint"},z7={TwoD:"2d",ThreeD:"3d"},p0={TwoD:"2d",TwoDArray:"2d-array",Cube:"cube",ThreeD:"3d"},MN={All:"all"},Jo={Vertex:"vertex",Instance:"instance"},Or={CoreFeaturesAndLimits:"core-features-and-limits",DepthClipControl:"depth-clip-control",Depth32FloatStencil8:"depth32float-stencil8",TextureCompressionBC:"texture-compression-bc",TextureCompressionBCSliced3D:"texture-compression-bc-sliced-3d",TextureCompressionETC2:"texture-compression-etc2",TextureCompressionASTC:"texture-compression-astc",TextureCompressionASTCSliced3D:"texture-compression-astc-sliced-3d",TimestampQuery:"timestamp-query",IndirectFirstInstance:"indirect-first-instance",ShaderF16:"shader-f16",RG11B10UFloat:"rg11b10ufloat-renderable",BGRA8UNormStorage:"bgra8unorm-storage",Float32Filterable:"float32-filterable",Float32Blendable:"float32-blendable",ClipDistances:"clip-distances",DualSourceBlending:"dual-source-blending",Subgroups:"subgroups",TextureFormatsTier1:"texture-formats-tier1",TextureFormatsTier2:"texture-formats-tier2"},V7={"texture-compression-s3tc":"texture-compression-bc","texture-compression-etc1":"texture-compression-etc2"},yN=class extends N5{constructor(e,t,o){super(e,t?t.value:null),this.textureNode=t,this.groupNode=o}update(){const{textureNode:e}=this;return this.texture!==e.value?(this.texture=e.value,!0):super.update()}},xN=class extends m5{constructor(e,t){super(e,t?t.array:null),this._attribute=t,this.isStorageBuffer=!0}get attribute(){return this._attribute}},SN=0,TN=class extends xN{constructor(e,t){super("StorageBuffer_"+SN++,e?e.value:null),this.nodeUniform=e,this.access=e?e.access:ie.READ_WRITE,this.groupNode=t}get attribute(){return this.nodeUniform.value}get buffer(){return this.nodeUniform.value.array}},Zs=[null],wN=class{constructor(e){this.backend=e,this._preferredCanvasFormat=null}getCurrentDepthStencilFormat(e){let t;return e.depth&&(e.depthTexture!==null?t=this.getTextureFormatGPU(e.depthTexture):e.stencil?this.backend.renderer.reversedDepthBuffer===!0?t=y.Depth32FloatStencil8:t=y.Depth24PlusStencil8:this.backend.renderer.reversedDepthBuffer===!0?t=y.Depth32Float:t=y.Depth24Plus),t}getTextureFormatGPU(e){return this.backend.get(e).format}getTextureSampleData(e){let t;if(e.isFramebufferTexture)t=1;else if(e.isDepthTexture&&!e.renderTarget){const r=this.backend.renderer,s=r.getRenderTarget();t=s?s.samples:r.currentSamples}else e.renderTarget&&(t=e.renderTarget.samples);t=this.getSampleCount(t||1);const o=t>1&&e.renderTarget!==null&&e.isDepthTexture!==!0&&e.isFramebufferTexture!==!0;return{samples:t,primarySamples:o?1:t,isMSAA:o}}getCurrentColorFormat(e){let t;return e.textures!==null?t=this.getTextureFormatGPU(e.textures[0]):t=this.getPreferredCanvasFormat(),t}getCurrentColorFormats(e){return e.textures!==null?e.textures.map(t=>this.getTextureFormatGPU(t)):[this.getPreferredCanvasFormat()]}getCurrentColorSpace(e){return e.textures!==null?e.textures[0].colorSpace:this.backend.renderer.outputColorSpace}getPrimitiveTopology(e,t){if(e.isPoints)return Q3.PointList;if(e.isLineSegments||e.isMesh&&t.wireframe===!0)return Q3.LineList;if(e.isLine)return Q3.LineStrip;if(e.isMesh)return Q3.TriangleList}getSampleCount(e){return e>=4?4:1}getSampleCountRenderContext(e){return e.textures!==null?this.getSampleCount(e.sampleCount):this.getSampleCount(this.backend.renderer.currentSamples)}getPreferredCanvasFormat(){const e=this.backend.parameters.outputType;if(e===void 0)return this._preferredCanvasFormat===null&&(this._preferredCanvasFormat=navigator.gpu.getPreferredCanvasFormat()),this._preferredCanvasFormat;if(e===1009)return y.BGRA8Unorm;if(e===1016)return y.RGBA16Float;throw new Error("THREE.WebGPUUtils: Unsupported output buffer type.")}};function Ie(e,t){Zs[0]=t,e.queue.submit(Zs),Zs[0]=null}var S5=class{constructor(){this.label="",this.layout=null,this.entries=[]}reset(){this.label="",this.layout=null,this.entries.length=0}},N3=class{constructor(){this.label="",this.size=0,this.usage=0,this.mappedAtCreation=!1}reset(){this.label="",this.size=0,this.usage=0,this.mappedAtCreation=!1}},So=class{constructor(){this.label=""}reset(){this.label=""}},T5=class{constructor(){this.label="",this.colorFormats=null,this.depthStencilFormat=void 0,this.sampleCount=1,this.depthReadOnly=!1,this.stencilReadOnly=!1}reset(){this.label="",this.colorFormats=null,this.depthStencilFormat=void 0,this.sampleCount=1,this.depthReadOnly=!1,this.stencilReadOnly=!1}},eo=class{constructor(){this.view=null,this.depthSlice=void 0,this.resolveTarget=void 0,this.clearValue=void 0,this.loadOp=void 0,this.storeOp=void 0}reset(){this.view=null,this.depthSlice=void 0,this.resolveTarget=void 0,this.clearValue=void 0,this.loadOp=void 0,this.storeOp=void 0}},to=class{constructor(){this.label="",this.colorAttachments=[],this.depthStencilAttachment=void 0,this.occlusionQuerySet=void 0,this.timestampWrites=void 0,this.maxDrawCount=5e7}reset(){this.label="",this.colorAttachments.length=0,this.depthStencilAttachment=void 0,this.occlusionQuerySet=void 0,this.timestampWrites=void 0,this.maxDrawCount=5e7}},w5=class{constructor(){this.label="",this.layout=null,this.vertex=null,this.primitive={},this.depthStencil=void 0,this.multisample=new _N,this.fragment=null}reset(){this.label="",this.layout=null,this.vertex=null,this.primitive={},this.depthStencil=void 0,this.multisample.reset(),this.fragment=null}},_N=class{constructor(){this.count=1,this.mask=4294967295,this.alphaToCoverageEnabled=!1}reset(){this.count=1,this.mask=4294967295,this.alphaToCoverageEnabled=!1}},_5=class{constructor(){this.label="",this.code="",this.compilationHints=[]}reset(){this.label="",this.code="",this.compilationHints.length=0}},On=class{constructor(){this.label="",this.size={width:0,height:1,depthOrArrayLayers:1},this.mipLevelCount=1,this.sampleCount=1,this.dimension="2d",this.format=void 0,this.usage=void 0,this.viewFormats=[],this.textureBindingViewDimension=void 0}reset(){this.label="",this.size.width=0,this.size.height=1,this.size.depthOrArrayLayers=1,this.mipLevelCount=1,this.sampleCount=1,this.dimension="2d",this.format=void 0,this.usage=void 0,this.viewFormats.length=0,this.textureBindingViewDimension=void 0}},Fn=class{constructor(){this.label="",this.format=void 0,this.dimension=void 0,this.usage=0,this.aspect="all",this.baseMipLevel=0,this.mipLevelCount=void 0,this.baseArrayLayer=0,this.arrayLayerCount=void 0,this.swizzle="rgba"}reset(){this.label="",this.format=void 0,this.dimension=void 0,this.usage=0,this.aspect="all",this.baseMipLevel=0,this.mipLevelCount=void 0,this.baseArrayLayer=0,this.arrayLayerCount=void 0,this.swizzle="rgba"}},bt=new S5,Nt=new N3,jo=new So,qs=new T5,Hs=new to,G2=new w5,U3=new eo,Ko=new _5,z2=new On,j1=new Fn,AN=class extends Gt{constructor(e){super(),this.device=e;const t=` -struct VarysStruct { - @builtin( position ) Position: vec4f, - @location( 0 ) vTex : vec2f, - @location( 1 ) @interpolate(flat, either) vBaseArrayLayer: u32, -}; - -@group( 0 ) @binding ( 2 ) -var flipY: u32; - -@vertex -fn mainVS( - @builtin( vertex_index ) vertexIndex : u32, - @builtin( instance_index ) instanceIndex : u32 ) -> VarysStruct { - - var Varys : VarysStruct; - - var pos = array( - vec2f( -1, -1 ), - vec2f( -1, 3 ), - vec2f( 3, -1 ), - ); - - let p = pos[ vertexIndex ]; - let mult = select( vec2f( 0.5, -0.5 ), vec2f( 0.5, 0.5 ), flipY != 0 ); - Varys.vTex = p * mult + vec2f( 0.5 ); - Varys.Position = vec4f( p, 0, 1 ); - Varys.vBaseArrayLayer = instanceIndex; - - return Varys; - -} - -@group( 0 ) @binding( 0 ) -var imgSampler : sampler; - -@group( 0 ) @binding( 1 ) -var img2d : texture_2d; - -@fragment -fn main_2d( Varys: VarysStruct ) -> @location( 0 ) vec4 { - - return textureSample( img2d, imgSampler, Varys.vTex ); - -} - -@group( 0 ) @binding( 1 ) -var img2dArray : texture_2d_array; - -@fragment -fn main_2d_array( Varys: VarysStruct ) -> @location( 0 ) vec4 { - - return textureSample( img2dArray, imgSampler, Varys.vTex, Varys.vBaseArrayLayer ); - -} - -const faceMat = array( - mat3x3f( 0, 0, -2, 0, -2, 0, 1, 1, 1 ), // pos-x - mat3x3f( 0, 0, 2, 0, -2, 0, -1, 1, -1 ), // neg-x - mat3x3f( 2, 0, 0, 0, 0, 2, -1, 1, -1 ), // pos-y - mat3x3f( 2, 0, 0, 0, 0, -2, -1, -1, 1 ), // neg-y - mat3x3f( 2, 0, 0, 0, -2, 0, -1, 1, 1 ), // pos-z - mat3x3f( -2, 0, 0, 0, -2, 0, 1, 1, -1 ), // neg-z -); - -@group( 0 ) @binding( 1 ) -var imgCube : texture_cube; - -@fragment -fn main_cube( Varys: VarysStruct ) -> @location( 0 ) vec4 { - - return textureSample( imgCube, imgSampler, faceMat[ Varys.vBaseArrayLayer ] * vec3f( fract( Varys.vTex ), 1 ) ); - -} -`;this.mipmapSampler=e.createSampler({minFilter:ee.Linear}),this.flipYSampler=e.createSampler({minFilter:ee.Nearest}),Nt.size=4,Nt.usage=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,this.flipUniformBuffer=e.createBuffer(Nt),Nt.reset(),e.queue.writeBuffer(this.flipUniformBuffer,0,new Uint32Array([1])),Nt.size=4,Nt.usage=GPUBufferUsage.UNIFORM,this.noFlipUniformBuffer=e.createBuffer(Nt),Nt.reset(),this.transferPipelines={},Ko.label="mipmap",Ko.code=t,this.mipmapShaderModule=e.createShaderModule(Ko),Ko.reset()}getTransferPipeline(e,t){t=t||"2d-array";const o=`${e}-${t}`;let r=this.transferPipelines[o];return r===void 0&&(G2.label=`mipmap-${e}-${t}`,G2.vertex={module:this.mipmapShaderModule},G2.fragment={module:this.mipmapShaderModule,entryPoint:`main_${t.replace("-","_")}`,targets:[{format:e}]},G2.layout="auto",r=this.device.createRenderPipeline(G2),G2.reset(),this.transferPipelines[o]=r),r}flipY(e,t,o=0){const r=t.format,{width:s,height:i}=t.size;z2.size.width=s,z2.size.height=i,z2.format=r,z2.usage=GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING;const n=this.device.createTexture(z2);z2.reset();const a=this.getTransferPipeline(r,e.textureBindingViewDimension),l=this.getTransferPipeline(r,n.textureBindingViewDimension),u=this.device.createCommandEncoder(jo),c=(d,h,f,p,m,b)=>{const N=d.getBindGroupLayout(0);j1.dimension=h.textureBindingViewDimension||"2d-array",j1.mipLevelCount=1;const v=h.createView(j1);j1.reset(),bt.layout=N,bt.entries.push({binding:0,resource:this.flipYSampler},{binding:1,resource:v},{binding:2,resource:{buffer:b?this.flipUniformBuffer:this.noFlipUniformBuffer}});const M=this.device.createBindGroup(bt);bt.reset(),j1.dimension="2d",j1.mipLevelCount=1,j1.baseArrayLayer=m,j1.arrayLayerCount=1;const T=p.createView(j1);j1.reset(),U3.view=T,U3.loadOp=B1.Clear,U3.storeOp=w0.Store,Hs.colorAttachments.push(U3);const x=u.beginRenderPass(Hs);Hs.reset(),U3.reset(),x.setPipeline(d),x.setBindGroup(0,M),x.draw(3,1,0,f),x.end()};c(a,e,o,n,0,!1),c(l,n,0,e,o,!0),Ie(this.device,u.finish()),n.destroy()}generateMipmaps(e,t=null){const o=this.get(e),r=o.layers||this._mipmapCreateBundles(e);let s=t;s===null&&(jo.label="mipmapEncoder",s=this.device.createCommandEncoder(jo),jo.reset()),this._mipmapRunBundles(s,r),t===null&&Ie(this.device,s.finish()),o.layers=r}_mipmapCreateBundles(e){const t=e.textureBindingViewDimension||"2d-array",o=this.getTransferPipeline(e.format,t),r=o.getBindGroupLayout(0),s=[];for(let i=1;i0)for(let i=0,n=r.length;i0){for(const i of e.layerUpdates)this._copyBufferToTexture(t.image,o.texture,s,i,e.flipY,i);e.clearLayerUpdates()}else for(let i=0;i0?(this._copyCompressedBufferToTexture(e.mipmaps,o.texture,s,e.layerUpdates),e.clearLayerUpdates()):this._copyCompressedBufferToTexture(e.mipmaps,o.texture,s);else if(e.isCubeTexture)this._copyCubeMapToTexture(e,o.texture,s);else if(e.isHTMLTexture){const i=this.backend.device,n=this.backend.renderer.domElement,a=e.image;if(typeof i.queue.copyElementImageToTexture!="function")return;if(!o.hasPaintCallback){o.hasPaintCallback=!0,n.requestPaint();return}const l=s.size.width,u=s.size.height;i.queue.copyElementImageToTexture.length===2?i.queue.copyElementImageToTexture({source:a},{destination:{texture:o.texture},width:l,height:u}):i.queue.copyElementImageToTexture(a,l,u,{texture:o.texture}),e.flipY&&this._flipY(o.texture,s)}else if(r.length>0)for(let i=0,n=r.length;i0?e.width:o.size.width,u=n>0?e.height:o.size.height;tr.source=e,tr.flipY=s,V2.texture=t,V2.mipLevel=n,V2.origin.z=r,V2.premultipliedAlpha=i,M0.width=l,M0.height=u;try{a.queue.copyExternalImageToTexture(tr,V2,M0)}catch{}finally{tr.reset(),V2.reset(),M0.reset()}}_getPassUtils(){let e=this._passUtils;return e===null&&(this._passUtils=e=new AN(this.backend.device)),e}_generateMipmaps(e,t=null){this._getPassUtils().generateMipmaps(e,t)}_flipY(e,t,o=0){this._getPassUtils().flipY(e,t,o)}_copyBufferToTexture(e,t,o,r,s,i=0,n=0){const a=this.backend.device,l=e.data,u=this._getBytesPerTexel(o.format),c=e.width*u;y0.texture=t,y0.mipLevel=n,y0.origin.z=r,at.offset=e.width*e.height*u*i,at.bytesPerRow=c,M0.width=e.width,M0.height=e.height,a.queue.writeTexture(y0,l,at,M0),y0.reset(),at.reset(),M0.reset(),s===!0&&this._flipY(t,o,r)}_copyCompressedBufferToTexture(e,t,o,r=null){const s=this.backend.device,i=this._getBlockData(o.format),n=o.size.depthOrArrayLayers>1,a=r&&r.size>0?r:null;for(let l=0;l]*\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/i,DN=/([a-z_0-9]+)\s*:\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/gi,$7={f32:"float",i32:"int",u32:"uint",bool:"bool","vec2":"vec2","vec2":"ivec2","vec2":"uvec2","vec2":"bvec2",vec2f:"vec2",vec2i:"ivec2",vec2u:"uvec2",vec2b:"bvec2","vec3":"vec3","vec3":"ivec3","vec3":"uvec3","vec3":"bvec3",vec3f:"vec3",vec3i:"ivec3",vec3u:"uvec3",vec3b:"bvec3","vec4":"vec4","vec4":"ivec4","vec4":"uvec4","vec4":"bvec4",vec4f:"vec4",vec4i:"ivec4",vec4u:"uvec4",vec4b:"bvec4","mat2x2":"mat2",mat2x2f:"mat2","mat3x3":"mat3",mat3x3f:"mat3","mat4x4":"mat4",mat4x4f:"mat4",sampler:"sampler",texture_1d:"texture",texture_2d:"texture",texture_2d_array:"texture",texture_multisampled_2d:"cubeTexture",texture_depth_2d:"depthTexture",texture_depth_2d_array:"depthTexture",texture_depth_multisampled_2d:"depthTexture",texture_depth_cube:"depthTexture",texture_depth_cube_array:"depthTexture",texture_3d:"texture3D",texture_cube:"cubeTexture",texture_cube_array:"cubeTexture",texture_storage_1d:"storageTexture",texture_storage_2d:"storageTexture",texture_storage_2d_array:"storageTexture",texture_storage_3d:"storageTexture"},kN=e=>{e=e.trim();const t=e.match(PN);if(t!==null&&t.length===4){const o=t[2],r=[];let s=null;for(;(s=DN.exec(o))!==null;)r.push({name:s[1],type:s[2]});const i=[];for(let u=0;u "+this.outputType:"";return`fn ${e} ( ${this.inputsCode.trim()} ) ${t}`+this.blockCode}},IN=class extends c5{parseFunction(e){return new XN(e)}},GN={[ie.READ_ONLY]:"read",[ie.WRITE_ONLY]:"write",[ie.READ_WRITE]:"read_write"},Z7={[A6]:"repeat",[Ot]:"clamp",[E6]:"mirror"},Js={vertex:Qe.VERTEX,fragment:Qe.FRAGMENT,compute:Qe.COMPUTE},q7={instance:!0,swizzleAssign:!1,storageBuffer:!0},zN={"^^":"tsl_xor"},VN={float:"f32",int:"i32",uint:"u32",bool:"bool",color:"vec3",vec2:"vec2",ivec2:"vec2",uvec2:"vec2",bvec2:"vec2",vec3:"vec3",ivec3:"vec3",uvec3:"vec3",bvec3:"vec3",vec4:"vec4",ivec4:"vec4",uvec4:"vec4",bvec4:"vec4",mat2:"mat2x2",mat3:"mat3x3",mat4:"mat4x4"},H7={},W3={tsl_xor:new V1("fn tsl_xor( a : bool, b : bool ) -> bool { return ( a || b ) && !( a && b ); }"),mod_float:new V1("fn tsl_mod_float( x : f32, y : f32 ) -> f32 { return x - y * floor( x / y ); }"),mod_vec2:new V1("fn tsl_mod_vec2( x : vec2f, y : vec2f ) -> vec2f { return x - y * floor( x / y ); }"),mod_vec3:new V1("fn tsl_mod_vec3( x : vec3f, y : vec3f ) -> vec3f { return x - y * floor( x / y ); }"),mod_vec4:new V1("fn tsl_mod_vec4( x : vec4f, y : vec4f ) -> vec4f { return x - y * floor( x / y ); }"),equals_bool:new V1("fn tsl_equals_bool( a : bool, b : bool ) -> bool { return a == b; }"),equals_bvec2:new V1("fn tsl_equals_bvec2( a : vec2f, b : vec2f ) -> vec2 { return vec2( a.x == b.x, a.y == b.y ); }"),equals_bvec3:new V1("fn tsl_equals_bvec3( a : vec3f, b : vec3f ) -> vec3 { return vec3( a.x == b.x, a.y == b.y, a.z == b.z ); }"),equals_bvec4:new V1("fn tsl_equals_bvec4( a : vec4f, b : vec4f ) -> vec4 { return vec4( a.x == b.x, a.y == b.y, a.z == b.z, a.w == b.w ); }"),repeatWrapping_float:new V1("fn tsl_repeatWrapping_float( coord: f32 ) -> f32 { return fract( coord ); }"),mirrorWrapping_float:new V1("fn tsl_mirrorWrapping_float( coord: f32 ) -> f32 { let mirrored = fract( coord * 0.5 ) * 2.0; return 1.0 - abs( 1.0 - mirrored ); }"),clampWrapping_float:new V1("fn tsl_clampWrapping_float( coord: f32 ) -> f32 { return clamp( coord, 0.0, 1.0 ); }"),inverse_mat2:new V1(` -fn tsl_inverse_mat2( m : mat2x2 ) -> mat2x2 { - - let det = m[ 0 ][ 0 ] * m[ 1 ][ 1 ] - m[ 0 ][ 1 ] * m[ 1 ][ 0 ]; - - return mat2x2( - m[ 1 ][ 1 ], - m[ 0 ][ 1 ], - - m[ 1 ][ 0 ], m[ 0 ][ 0 ] - ) * ( 1.0 / det ); - -} -`),inverse_mat3:new V1(` -fn tsl_inverse_mat3( m : mat3x3 ) -> mat3x3 { - - let a00 = m[ 0 ][ 0 ]; let a01 = m[ 0 ][ 1 ]; let a02 = m[ 0 ][ 2 ]; - let a10 = m[ 1 ][ 0 ]; let a11 = m[ 1 ][ 1 ]; let a12 = m[ 1 ][ 2 ]; - let a20 = m[ 2 ][ 0 ]; let a21 = m[ 2 ][ 1 ]; let a22 = m[ 2 ][ 2 ]; - - let b01 = a22 * a11 - a12 * a21; - let b11 = - a22 * a10 + a12 * a20; - let b21 = a21 * a10 - a11 * a20; - - let det = a00 * b01 + a01 * b11 + a02 * b21; - - return mat3x3( - b01, ( - a22 * a01 + a02 * a21 ), ( a12 * a01 - a02 * a11 ), - b11, ( a22 * a00 - a02 * a20 ), ( - a12 * a00 + a02 * a10 ), - b21, ( - a21 * a00 + a01 * a20 ), ( a11 * a00 - a01 * a10 ) - ) * ( 1.0 / det ); - -} -`),inverse_mat4:new V1(` -fn tsl_inverse_mat4( m : mat4x4 ) -> mat4x4 { - - let a00 = m[ 0 ][ 0 ]; let a01 = m[ 0 ][ 1 ]; let a02 = m[ 0 ][ 2 ]; let a03 = m[ 0 ][ 3 ]; - let a10 = m[ 1 ][ 0 ]; let a11 = m[ 1 ][ 1 ]; let a12 = m[ 1 ][ 2 ]; let a13 = m[ 1 ][ 3 ]; - let a20 = m[ 2 ][ 0 ]; let a21 = m[ 2 ][ 1 ]; let a22 = m[ 2 ][ 2 ]; let a23 = m[ 2 ][ 3 ]; - let a30 = m[ 3 ][ 0 ]; let a31 = m[ 3 ][ 1 ]; let a32 = m[ 3 ][ 2 ]; let a33 = m[ 3 ][ 3 ]; - - let b00 = a00 * a11 - a01 * a10; - let b01 = a00 * a12 - a02 * a10; - let b02 = a00 * a13 - a03 * a10; - let b03 = a01 * a12 - a02 * a11; - let b04 = a01 * a13 - a03 * a11; - let b05 = a02 * a13 - a03 * a12; - let b06 = a20 * a31 - a21 * a30; - let b07 = a20 * a32 - a22 * a30; - let b08 = a20 * a33 - a23 * a30; - let b09 = a21 * a32 - a22 * a31; - let b10 = a21 * a33 - a23 * a31; - let b11 = a22 * a33 - a23 * a32; - - let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; - - return mat4x4( - a11 * b11 - a12 * b10 + a13 * b09, - a02 * b10 - a01 * b11 - a03 * b09, - a31 * b05 - a32 * b04 + a33 * b03, - a22 * b04 - a21 * b05 - a23 * b03, - a12 * b08 - a10 * b11 - a13 * b07, - a00 * b11 - a02 * b08 + a03 * b07, - a32 * b02 - a30 * b05 - a33 * b01, - a20 * b05 - a22 * b02 + a23 * b01, - a10 * b10 - a11 * b08 + a13 * b06, - a01 * b08 - a00 * b10 - a03 * b06, - a30 * b04 - a31 * b02 + a33 * b00, - a21 * b02 - a20 * b04 - a23 * b00, - a11 * b07 - a10 * b09 - a12 * b06, - a00 * b09 - a01 * b07 + a02 * b06, - a31 * b01 - a30 * b03 - a32 * b00, - a20 * b03 - a21 * b01 + a22 * b00 - ) * ( 1.0 / det ); - -} -`),biquadraticTexture:new V1(` -fn tsl_biquadraticTexture( map : texture_2d, coord : vec2f, iRes : vec2u, level : u32 ) -> vec4f { - - let res = vec2f( iRes ); - - let uvScaled = coord * res; - let uvWrapping = ( ( uvScaled % res ) + res ) % res; - - // https://www.shadertoy.com/view/WtyXRy - - let uv = uvWrapping - 0.5; - let iuv = floor( uv ); - let f = fract( uv ); - - let rg1 = textureLoad( map, vec2u( iuv + vec2( 0.5, 0.5 ) ) % iRes, level ); - let rg2 = textureLoad( map, vec2u( iuv + vec2( 1.5, 0.5 ) ) % iRes, level ); - let rg3 = textureLoad( map, vec2u( iuv + vec2( 0.5, 1.5 ) ) % iRes, level ); - let rg4 = textureLoad( map, vec2u( iuv + vec2( 1.5, 1.5 ) ) % iRes, level ); - - return mix( mix( rg1, rg2, f.x ), mix( rg3, rg4, f.x ), f.y ); - -} -`),biquadraticTextureArray:new V1(` -fn tsl_biquadraticTexture_array( map : texture_2d_array, coord : vec2f, iRes : vec2u, layer : u32, level : u32 ) -> vec4f { - - let res = vec2f( iRes ); - - let uvScaled = coord * res; - let uvWrapping = ( ( uvScaled % res ) + res ) % res; - - // https://www.shadertoy.com/view/WtyXRy - - let uv = uvWrapping - 0.5; - let iuv = floor( uv ); - let f = fract( uv ); - - let rg1 = textureLoad( map, vec2u( iuv + vec2( 0.5, 0.5 ) ) % iRes, layer, level ); - let rg2 = textureLoad( map, vec2u( iuv + vec2( 1.5, 0.5 ) ) % iRes, layer, level ); - let rg3 = textureLoad( map, vec2u( iuv + vec2( 0.5, 1.5 ) ) % iRes, layer, level ); - let rg4 = textureLoad( map, vec2u( iuv + vec2( 1.5, 1.5 ) ) % iRes, layer, level ); - - return mix( mix( rg1, rg2, f.x ), mix( rg3, rg4, f.x ), f.y ); - -} -`)},QN={dFdx:"dpdx",dFdy:"- dpdy",mod_float:"tsl_mod_float",mod_vec2:"tsl_mod_vec2",mod_vec3:"tsl_mod_vec3",mod_vec4:"tsl_mod_vec4",equals_bool:"tsl_equals_bool",equals_bvec2:"tsl_equals_bvec2",equals_bvec3:"tsl_equals_bvec3",equals_bvec4:"tsl_equals_bvec4",inverse_mat2:"tsl_inverse_mat2",inverse_mat3:"tsl_inverse_mat3",inverse_mat4:"tsl_inverse_mat4",inversesqrt:"inverseSqrt",bitcast:"bitcast",floatpack_snorm_2x16:"pack2x16snorm",floatpack_unorm_2x16:"pack2x16unorm",floatpack_float16_2x16:"pack2x16float",floatunpack_snorm_2x16:"unpack2x16snorm",floatunpack_unorm_2x16:"unpack2x16unorm",floatunpack_float16_2x16:"unpack2x16float"},C5="";(typeof navigator<"u"&&/Firefox|Deno/g.test(navigator.userAgent))!==!0&&(C5+=`diagnostic( off, derivative_uniformity ); -`);var $N=class extends u5{constructor(e,t){super(e,t,new IN),this.uniformGroups={},this.uniformGroupsBindings={},this.builtins={},this.directives={},this.scopedArrays=new Map,this.allowEarlyReturns=!0,this.allowGlobalVariables=!0}_generateTextureSample(e,t,o,r,s,i=this.shaderStage){return i==="fragment"?r?s?`textureSample( ${t}, ${t}_sampler, ${o}, ${r}, ${s} )`:`textureSample( ${t}, ${t}_sampler, ${o}, ${r} )`:s?`textureSample( ${t}, ${t}_sampler, ${o}, ${s} )`:`textureSample( ${t}, ${t}_sampler, ${o} )`:this.generateTextureSampleLevel(e,t,o,"0",r)}generateTextureSampleLevel(e,t,o,r,s,i){return this.isUnfilterable(e)===!1?s?i?`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${s}, ${r}, ${i} )`:`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${s}, ${r} )`:i?`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${r}, ${i} )`:`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${r} )`:this.isFilteredTexture(e)?this.generateFilteredTexture(e,t,o,i,r,s):this.generateTextureLod(e,t,o,s,i,r)}generateWrapFunction(e){const t=`tsl_coord_${Z7[e.wrapS]}S_${Z7[e.wrapT]}T_${e.is3DTexture||e.isData3DTexture?"3d":"2d"}`;let o=H7[t];if(o===void 0){const r=[],s=e.is3DTexture||e.isData3DTexture?"vec3f":"vec2f";let i=`fn ${t}( coord : ${s} ) -> ${s} { - - return ${s}( -`;const n=(a,l)=>{a===1e3?(r.push(W3.repeatWrapping_float),i+=` tsl_repeatWrapping_float( coord.${l} )`):a===1001?(r.push(W3.clampWrapping_float),i+=` tsl_clampWrapping_float( coord.${l} )`):a===1002?(r.push(W3.mirrorWrapping_float),i+=` tsl_mirrorWrapping_float( coord.${l} )`):(i+=` coord.${l}`,j(`WebGPURenderer: Unsupported texture wrap type "${a}" for vertex shader.`))};n(e.wrapS,"x"),i+=`, -`,n(e.wrapT,"y"),(e.is3DTexture||e.isData3DTexture)&&(i+=`, -`,n(e.wrapR,"z")),i+=` - ); - -} -`,H7[t]=o=new V1(i,r)}return o.build(this),t}generateArrayDeclaration(e,t){return`array< ${this.getType(e)}, ${t} >`}generateTextureDimension(e,t,o){const r=this.getDataFromNode(e,this.shaderStage,this.cache);r.dimensionsSnippet===void 0&&(r.dimensionsSnippet={});let s=r.dimensionsSnippet[o];if(r.dimensionsSnippet[o]===void 0){let i,n;const{primarySamples:a}=this.renderer.backend.utils.getTextureSampleData(e),l=a>1;e.is3DTexture||e.isData3DTexture?n="vec3":n="vec2",l||e.isStorageTexture?i=t:i=`${t}${o?`, u32( ${o} )`:""}`,s=new mr(new gr(`textureDimensions( ${i} )`,n)),r.dimensionsSnippet[o]=s,(e.isArrayTexture||e.isDataArrayTexture||e.is3DTexture||e.isData3DTexture)&&(r.arrayLayerCount=new mr(new gr(`textureNumLayers(${t})`,"u32"))),e.isTextureCube&&(r.cubeFaceCount=new mr(new gr("6u","u32")))}return s.build(this)}generateFilteredTexture(e,t,o,r,s="0u",i){const n=this.generateWrapFunction(e),a=this.generateTextureDimension(e,t,s);return r&&(o=`${o} + vec2(${r}) / ${a}`),i?(this._include("biquadraticTextureArray"),`tsl_biquadraticTexture_array( ${t}, ${n}( ${o} ), ${a}, u32( ${i} ), u32( ${s} ) )`):(this._include("biquadraticTexture"),`tsl_biquadraticTexture( ${t}, ${n}( ${o} ), ${a}, u32( ${s} ) )`)}generateTextureLod(e,t,o,r,s,i="0u"){if(e.isCubeTexture===!0){s&&(o=`${o} + vec3(${s})`);const h=e.isDepthTexture?"u32":"f32";return`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${h}( ${i} ) )`}const n=this.generateWrapFunction(e),a=this.generateTextureDimension(e,t,i),l=e.is3DTexture||e.isData3DTexture?"vec3":"vec2",u=l==="vec3"?"vec3( 1, 1, 1 )":"vec2( 1, 1 )";s&&(o=`${o} + ${l}(${s}) / ${l}( ${a} )`);const c=`${l}( 0 )`,d=`${l}( ${a} - ${u} )`;return o=`${l}( clamp( floor( ${n}( ${o} ) * ${l}( ${a} ) ), ${c}, ${d} ) )`,this.generateTextureLoad(e,t,o,i,r,null)}generateStorageTextureLoad(e,t,o,r,s,i){i&&(o=`${o} + ${i}`);let n;return s?n=`textureLoad( ${t}, ${o}, ${s} )`:n=`textureLoad( ${t}, ${o} )`,n}generateTextureLoad(e,t,o,r,s,i){r===null&&(r="0u"),i&&(o=`${o} + ${i}`);let n;return s?n=`textureLoad( ${t}, ${o}, ${s}, u32( ${r} ) )`:(n=`textureLoad( ${t}, ${o}, u32( ${r} ) )`,this.renderer.backend.compatibilityMode&&e.isDepthTexture&&(n+=".x")),n}generateTextureStore(e,t,o,r,s){let i;return r?i=`textureStore( ${t}, ${o}, ${r}, ${s} )`:i=`textureStore( ${t}, ${o}, ${s} )`,i}isSampleCompare(e){return e.isDepthTexture===!0&&e.compareFunction!==null&&this.renderer.hasCompatibility(C2.TEXTURE_COMPARE)}isUnfilterable(e){return this.getComponentTypeFromTexture(e)!=="float"||!this.isAvailable("float32Filterable")&&e.type===1015||this.isSampleCompare(e)===!1&&e.minFilter===1003&&e.magFilter===1003||this.renderer.backend.utils.getTextureSampleData(e).primarySamples>1}generateTexture(e,t,o,r,s,i=this.shaderStage){let n=null;return this.isUnfilterable(e)?n=this.generateTextureLod(e,t,o,r,s,"0",i):n=this._generateTextureSample(e,t,o,r,s,i),n}generateTextureGrad(e,t,o,r,s,i,n=this.shaderStage){if(n==="fragment")return s?i?`textureSampleGrad( ${t}, ${t}_sampler, ${o}, ${s}, ${r[0]}, ${r[1]}, ${i} )`:`textureSampleGrad( ${t}, ${t}_sampler, ${o}, ${s}, ${r[0]}, ${r[1]} )`:i?`textureSampleGrad( ${t}, ${t}_sampler, ${o}, ${r[0]}, ${r[1]}, ${i} )`:`textureSampleGrad( ${t}, ${t}_sampler, ${o}, ${r[0]}, ${r[1]} )`;G(`WebGPURenderer: THREE.TextureNode.gradient() does not support ${n} shader.`)}generateTextureCompare(e,t,o,r,s,i,n=this.shaderStage){if(n==="fragment")return e.isDepthTexture===!0&&e.isArrayTexture===!0?i?`textureSampleCompare( ${t}, ${t}_sampler, ${o}, ${s}, ${r}, ${i} )`:`textureSampleCompare( ${t}, ${t}_sampler, ${o}, ${s}, ${r} )`:i?`textureSampleCompare( ${t}, ${t}_sampler, ${o}, ${r}, ${i} )`:`textureSampleCompare( ${t}, ${t}_sampler, ${o}, ${r} )`;G(`WebGPURenderer: THREE.DepthTexture.compareFunction() does not support ${n} shader.`)}generateTextureGather(e,t,o,r,s,i){const n=e.isDepthTexture===!0?"":`${r}, `;return s?i?`textureGather( ${n}${t}, ${t}_sampler, ${o}, ${s}, ${i} )`:`textureGather( ${n}${t}, ${t}_sampler, ${o}, ${s} )`:i?`textureGather( ${n}${t}, ${t}_sampler, ${o}, ${i} )`:`textureGather( ${n}${t}, ${t}_sampler, ${o})`}generateTextureGatherCompare(e,t,o,r,s,i){return s?i?`textureGatherCompare( ${t}, ${t}_sampler, ${o}, ${s}, ${r}, ${i} )`:`textureGatherCompare( ${t}, ${t}_sampler, ${o}, ${s}, ${r})`:i?`textureGatherCompare( ${t}, ${t}_sampler, ${o}, ${r}, ${i} )`:`textureGatherCompare( ${t}, ${t}_sampler, ${o}, ${r})`}generateTextureLevel(e,t,o,r,s,i){return this.isUnfilterable(e)===!1?s?i?`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${s}, ${r}, ${i} )`:`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${s}, ${r} )`:i?`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${r}, ${i} )`:`textureSampleLevel( ${t}, ${t}_sampler, ${o}, ${r} )`:this.isFilteredTexture(e)?this.generateFilteredTexture(e,t,o,i,r,s):this.generateTextureLod(e,t,o,s,i,r)}generateTextureBias(e,t,o,r,s,i,n=this.shaderStage){if(n==="fragment")return s?i?`textureSampleBias( ${t}, ${t}_sampler, ${o}, ${s}, ${r}, ${i} )`:`textureSampleBias( ${t}, ${t}_sampler, ${o}, ${s}, ${r} )`:i?`textureSampleBias( ${t}, ${t}_sampler, ${o}, ${r}, ${i} )`:`textureSampleBias( ${t}, ${t}_sampler, ${o}, ${r} )`;G(`WebGPURenderer: THREE.TextureNode.biasNode does not support ${n} shader.`)}getPropertyName(e,t=this.shaderStage){if(e.isNodeVarying===!0&&e.needsInterpolation===!0){if(t==="vertex")return`varyings.${e.name}`}else if(e.isNodeUniform===!0){const o=e.name,r=e.type;return r==="texture"||r==="cubeTexture"||r==="cubeDepthTexture"||r==="storageTexture"||r==="texture3D"?o:r==="buffer"||r==="storageBuffer"||r==="indirectStorageBuffer"?this.isCustomStruct(e)?o:o+".value":e.groupNode.name+"."+o}return super.getPropertyName(e)}getOutputStructName(){return"output"}getFunctionOperator(e){const t=zN[e];return t!==void 0?(this._include(t),t):null}getNodeAccess(e,t){return t!=="compute"?e.isAtomic===!0?(j("WebGPURenderer: Atomic operations are only supported in compute shaders."),ie.READ_WRITE):ie.READ_ONLY:e.access}getStorageAccess(e,t){return GN[this.getNodeAccess(e,t)]}getUniformFromNode(e,t,o,r=null){const s=super.getUniformFromNode(e,t,o,r),i=this.getDataFromNode(e,o,this.globalCache);if(i.uniformGPU===void 0){let n;const a=e.groupNode,l=a.name,u=this.getBindGroupArray(l,o);if(t==="texture"||t==="cubeTexture"||t==="cubeDepthTexture"||t==="storageTexture"||t==="texture3D"){let c=null;const d=this.getNodeAccess(e,o);if(t==="texture"||t==="storageTexture"?e.value.is3DTexture===!0?c=new Di(s.name,s.node,a,d):c=new Jr(s.name,s.node,a,d):t==="cubeTexture"||t==="cubeDepthTexture"?c=new M5(s.name,s.node,a,d):t==="texture3D"&&(c=new Di(s.name,s.node,a,d)),c.store=e.isStorageTextureNode===!0,c.mipLevel=c.store?e.mipLevel:0,c.setVisibility(Js[o]),e.value.isCubeTexture===!0||this.isUnfilterable(e.value)===!1&&c.store===!1||e.gatherNode!==null){const h=new yN(`${s.name}_sampler`,s.node,a);h.setVisibility(Js[o]),u.push(h,c),n=[h,c]}else u.push(c),n=[c]}else if(t==="buffer"||t==="storageBuffer"||t==="indirectStorageBuffer"){const c=this.getSharedDataFromNode(e);let d=c.buffer;d===void 0&&(d=new(t==="buffer"?v5:TN)(e,a),c.buffer=d),d.setVisibility(d.getVisibility()|Js[o]),u.push(d),n=d,s.name=r||"NodeBuffer_"+s.id}else{let c=this.uniformGroups[l];c===void 0&&(c=new b5(l,a),c.setVisibility(Qe.VERTEX|Qe.FRAGMENT|Qe.COMPUTE),this.uniformGroups[l]=c),u.indexOf(c)===-1&&u.push(c),n=this.getNodeUniform(s,t);const d=n.name;c.uniforms.some(h=>h.name===d)||c.addUniform(n)}i.uniformGPU=n}return s}getBuiltin(e,t,o,r=this.shaderStage){const s=this.builtins[r]||(this.builtins[r]=new Map);return s.has(e)===!1&&s.set(e,{name:e,property:t,type:o}),t}hasBuiltin(e,t=this.shaderStage){return this.builtins[t]!==void 0&&this.builtins[t].has(e)}getVertexIndex(){return this.shaderStage==="vertex"?this.getBuiltin("vertex_index","vertexIndex","u32","attribute"):"vertexIndex"}buildFunctionCode(e){const t=e.layout,o=this.flowShaderNode(e),r=[];for(const i of t.inputs)r.push(i.name+" : "+this.getType(i.type));let s=`fn ${t.name}( ${r.join(", ")} ) -> ${this.getType(t.type)} { -${o.vars} -${o.code} -`;return o.result&&(s+=` return ${o.result}; -`),s+=` -} -`,s}getInstanceIndex(){return this.shaderStage==="vertex"?this.getBuiltin("instance_index","instanceIndex","u32","attribute"):"instanceIndex"}getInvocationLocalIndex(){return this.getBuiltin("local_invocation_index","invocationLocalIndex","u32","attribute")}getSubgroupSize(){return this.enableSubGroups(),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute")}getInvocationSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_invocation_id","invocationSubgroupIndex","u32","attribute")}getSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_id","subgroupIndex","u32","attribute")}getDrawIndex(){return null}getFrontFacing(){return this.getBuiltin("front_facing","isFront","bool")}getFragCoord(){return this.getBuiltin("position","fragCoord","vec4")+".xy"}getFragDepth(){return"output."+this.getBuiltin("frag_depth","depth","f32","output")}getClipDistance(){return"varyings.hw_clip_distances"}isFlipY(){return!1}enableDirective(e,t=this.shaderStage){(this.directives[t]||(this.directives[t]=new Set)).add(e)}getDirectives(e){const t=[],o=this.directives[e];if(o!==void 0)for(const r of o)t.push(`enable ${r};`);return t.join(` -`)}enableSubGroups(){this.enableDirective("subgroups")}enableSubgroupsF16(){this.enableDirective("subgroups-f16")}enableClipDistances(){this.enableDirective("clip_distances")}enableShaderF16(){this.enableDirective("f16")}enableDualSourceBlending(){this.enableDirective("dual_source_blending")}enableHardwareClipping(e){this.enableClipDistances(),this.getBuiltin("clip_distances","hw_clip_distances",`array`,"vertex")}getBuiltins(e){const t=[],o=this.builtins[e];if(o!==void 0)for(const{name:r,property:s,type:i}of o.values())t.push(`@builtin( ${r} ) ${s} : ${i}`);return t.join(`, - `)}getScopedArray(e,t,o,r){return this.scopedArrays.has(e)===!1&&this.scopedArrays.set(e,{name:e,scope:t,bufferType:o,bufferCount:r}),e}getScopedArrays(e){if(e!=="compute")return;const t=[];for(const{name:o,scope:r,bufferType:s,bufferCount:i}of this.scopedArrays.values()){const n=this.getType(s);t.push(`var<${r}> ${o}: array< ${n}, ${i} >;`)}return t.join(` -`)}getAttributes(e){const t=[];if(e==="compute"&&(this.getBuiltin("global_invocation_id","globalId","vec3","attribute"),this.getBuiltin("workgroup_id","workgroupId","vec3","attribute"),this.getBuiltin("local_invocation_id","localId","vec3","attribute"),this.getBuiltin("num_workgroups","numWorkgroups","vec3","attribute"),this.renderer.hasFeature("subgroups")&&(this.enableDirective("subgroups",e),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute"))),e==="vertex"||e==="compute"){const o=this.getBuiltins("attribute");o&&t.push(o);const r=this.getAttributesArray();for(let s=0,i=r.length;s"),t.push(` ${r+o.name} : ${s}`)}return e.output&&t.push(` ${this.getBuiltins("output")}`),t.join(`, -`)}getStructs(e){let t="";const o=this.structs[e];if(o.length>0){const r=[];for(const s of o){let i=`struct ${s.name} { -`;i+=this.getStructMembers(s),i+=` -};`,r.push(i)}t=` -`+r.join(` - -`)+` -`}return t}getVar(e,t,o=null,r=""){let s=`var${r} ${t} : `;return o!==null?s+=this.generateArrayDeclaration(e,o):s+=this.getType(e),s}getVars(e,t=!1){let o="";t&&(o="");const r=[],s=this.vars[e];if(s!==void 0)for(const i of s)r.push(`${this.getVar(i.type,i.name,i.count,o)};`);return t?r.join(` -`):` - ${r.join(` - `)} -`}getVaryings(e){const t=[];if(e==="vertex"&&this.getBuiltin("position","builtinClipSpace","vec4","vertex"),e==="vertex"||e==="fragment"){const s=this.varyings,i=this.vars[e];let n=0;for(let a=0;ao.value.itemSize;return r&&!s}getUniforms(e){const t=this.renderer.backend,o=this.uniforms[e],r=[],s=[],i=[],n={};for(const a of o){const l=a.groupNode.name,u=this.bindingsIndexes[l];if(a.type==="texture"||a.type==="cubeTexture"||a.type==="cubeDepthTexture"||a.type==="storageTexture"||a.type==="texture3D"){const c=a.node,d=c.value;(d.isCubeTexture===!0||this.isUnfilterable(d)===!1&&c.isStorageTextureNode!==!0||c.gatherNode!==null)&&(this.isSampleCompare(d)&&c.compareNode!==null?r.push(`@binding( ${u.binding++} ) @group( ${u.group} ) var ${a.name}_sampler : sampler_comparison;`):r.push(`@binding( ${u.binding++} ) @group( ${u.group} ) var ${a.name}_sampler : sampler;`));let h,f="";const{primarySamples:p}=t.utils.getTextureSampleData(d);if(p>1&&(f="_multisampled"),d.isCubeTexture===!0&&d.isDepthTexture===!0)h="texture_depth_cube";else if(d.isCubeTexture===!0)h="texture_cube";else if(d.isDepthTexture===!0)t.compatibilityMode&&d.compareFunction===null?h=`texture${f}_2d`:h=`texture_depth${f}_2d${d.isArrayTexture===!0?"_array":""}`;else if(a.node.isStorageTextureNode===!0){const m=ki(d,t.device),b=this.getStorageAccess(a.node,e),N=a.node.value.is3DTexture,v=a.node.value.isArrayTexture;h=`texture_storage_${N?"3d":`2d${v?"_array":""}`}<${m}, ${b}>`}else if(d.isArrayTexture===!0||d.isDataArrayTexture===!0||d.isCompressedArrayTexture===!0)h="texture_2d_array";else if(d.is3DTexture===!0||d.isData3DTexture===!0)h="texture_3d";else{const m=this.getComponentTypeFromTexture(d).charAt(0);h=`texture${f}_2d<${m}32>`}r.push(`@binding( ${u.binding++} ) @group( ${u.group} ) var ${a.name} : ${h};`)}else if(a.type==="buffer"||a.type==="storageBuffer"||a.type==="indirectStorageBuffer"){const c=a.node,d=this.getType(c.getNodeType(this)),h=c.bufferCount,f=h>0&&a.type==="buffer"?", "+h:"",p=c.isStorageBufferNode?`storage, ${this.getStorageAccess(c,e)}`:"uniform";if(this.isCustomStruct(a))s.push(`@binding( ${u.binding++} ) @group( ${u.group} ) var<${p}> ${a.name} : ${d};`);else{const m=` value : array< ${c.isAtomic?`atomic<${d}>`:`${d}`}${f} >`;s.push(this._getWGSLStructBinding(a.name,m,p,u.binding++,u.group))}}else{const c=a.groupNode.name;if(n[c]===void 0){const d=this.uniformGroups[c];if(d!==void 0){const h=[];for(const p of d.uniforms){const m=p.getType(),b=this.getType(this.getVectorType(m));h.push(` ${p.name} : ${b}`)}let f=this.uniformGroupsBindings[c];f===void 0&&(f={index:u.binding++,id:u.group},this.uniformGroupsBindings[c]=f),n[c]={index:f.index,id:f.id,snippets:h}}}}}for(const a in n){const l=n[a];i.push(this._getWGSLStructBinding(a,l.snippets.join(`, -`),"uniform",l.index,l.id))}return[...r,...s,...i].join(` -`)}buildCode(){const e=this.material!==null?{fragment:{},vertex:{}}:{compute:{}};this.sortBindingGroups();for(const t in e){this.shaderStage=t;const o=this.allowGlobalVariables,r=e[t];r.uniforms=this.getUniforms(t),r.attributes=this.getAttributes(t),r.varyings=this.getVaryings(t),r.structs=this.getStructs(t),r.vars=this.getVars(t,o),r.codes=this.getCodes(t),r.directives=this.getDirectives(t),r.scopedArrays=this.getScopedArrays(t);let s=`// code - -`;s+=this.flowCode[t];const i=this.flowNodes[t],n=i[i.length-1],a=n.outputNode,l=a!==void 0&&a.isOutputStructNode===!0;for(const u of i){const c=this.getFlowData(u),d=u.name;if(d&&(s.length>0&&(s+=` -`),s+=` // flow -> ${d} -`),s+=`${c.code} - `,u===n&&t!=="compute"){if(s+=`// result - - `,t==="vertex")s+=`varyings.builtinClipSpace = ${c.result};`;else if(t==="fragment")if(l)r.returnType=a.getNodeType(this),r.structs+="var output : "+r.returnType+";",s+=`return ${c.result};`;else{let h=` @location( 0 ) color: ${this.getType(this.getOutputType())}`;const f=this.getBuiltins("output");f&&(h+=`, - `+f),r.returnType="OutputStruct",r.structs+=this._getWGSLStruct("OutputStruct",h),r.structs+=` -var output : OutputStruct;`,s+=`output.color = ${this.format(c.result,n.getNodeType(this),this.getOutputType())}; - - return output;`}}}r.flow=s}if(this.shaderStage=null,this.material!==null)this.vertexShader=this._getWGSLVertexCode(e.vertex),this.fragmentShader=this._getWGSLFragmentCode(e.fragment);else{const t=this.object.workgroupSize;this.computeShader=this._getWGSLComputeCode(e.compute,t)}}getMethod(e,t=null){let o;return t!==null&&(o=this._getWGSLMethod(e+"_"+t)),o===void 0&&(o=this._getWGSLMethod(e)),o||e}getBitcastMethod(e){return`bitcast<${this.getType(e)}>`}getFloatPackingMethod(e){return this.getMethod(`floatpack_${e}_2x16`)}getFloatUnpackingMethod(e){return this.getMethod(`floatunpack_${e}_2x16`)}getTernary(e,t,o){return`select( ${o}, ${t}, ${e} )`}getType(e){return VN[e]||e}isAvailable(e){let t=q7[e];return t===void 0&&(e==="float32Filterable"?t=this.renderer.hasFeature("float32-filterable"):e==="clipDistance"&&(t=this.renderer.hasFeature("clip-distances")),q7[e]=t),t}_getWGSLMethod(e){return W3[e]!==void 0&&this._include(e),QN[e]}_include(e){const t=W3[e];return t.build(this),this.addInclude(t),t}_getWGSLVertexCode(e){return`${this.getSignature()} -// directives -${e.directives} - -// structs -${e.structs} - -// uniforms -${e.uniforms} - -// varyings -${e.varyings} -var varyings : VaryingsStruct; - -// vars -${e.vars} - -// codes -${e.codes} - -@vertex -fn main( ${e.attributes} ) -> VaryingsStruct { - - // flow - ${e.flow} - - return varyings; - -} -`}_getWGSLFragmentCode(e){return`${this.getSignature()} -// global -${C5} - -// structs -${e.structs} - -// uniforms -${e.uniforms} - -// vars -${e.vars} - -// codes -${e.codes} - -@fragment -fn main( ${e.varyings} ) -> ${e.returnType} { - - // flow - ${e.flow} - -} -`}_getWGSLComputeCode(e,t){const[o,r,s]=t;return`${this.getSignature()} -// directives -${e.directives} - -// system -var instanceIndex : u32; - -// locals -${e.scopedArrays} - -// structs -${e.structs} - -// uniforms -${e.uniforms} - -// vars -${this.allowGlobalVariables?e.vars:""} - -// codes -${e.codes} - -@compute @workgroup_size( ${o}, ${r}, ${s} ) -fn main( ${e.attributes} ) { - - // local vars - ${this.allowGlobalVariables?"":e.vars} - - // system - instanceIndex = globalId.x - + globalId.y * ( ${o} * numWorkgroups.x ) - + globalId.z * ( ${o} * numWorkgroups.x ) * ( ${r} * numWorkgroups.y ); - - // flow - ${e.flow} - -} -`}_getWGSLStruct(e,t){return` -struct ${e} { -${t} -};`}_getWGSLStructBinding(e,t,o,r=0,s=0){const i=e+"Struct";return`${this._getWGSLStruct(i,t)} -@binding( ${r} ) @group( ${s} ) -var<${o}> ${e} : ${i};`}},N0=new N3,js=new So,R5=new Map([[Int8Array,["sint8","snorm8"]],[Uint8Array,["uint8","unorm8"]],[Int16Array,["sint16","snorm16"]],[Uint16Array,["uint16","unorm16"]],[Int32Array,["sint32","snorm32"]],[Uint32Array,["uint32","unorm32"]],[Float32Array,["float32"]]]);typeof Float16Array<"u"&&R5.set(Float16Array,["float16"]);var ZN=new Map([[B6,["float16"]]]),qN=new Map([[Int32Array,"sint32"],[Int16Array,"sint32"],[Uint32Array,"uint32"],[Uint16Array,"uint32"],[Float32Array,"float32"]]),HN=class{constructor(e){this.backend=e}createAttribute(e,t){const o=this._getBufferAttribute(e),r=this.backend,s=r.get(o);let i=s.buffer;if(i===void 0){const n=r.device;let a=o.array;if(e.normalized===!1){if(a.constructor===Int16Array||a.constructor===Int8Array)a=new Int32Array(a);else if((a.constructor===Uint16Array||a.constructor===Uint8Array)&&(a=new Uint32Array(a),t&GPUBufferUsage.INDEX))for(let d=0;d1&&o.itemSize*a.BYTES_PER_ELEMENT%4!==0){const d=o.itemSize*a.BYTES_PER_ELEMENT;l=Math.floor((d+3)/4)*4/a.BYTES_PER_ELEMENT}if(l!==void 0){const d=o.itemSize,h=new a.constructor(o.count*l);for(let f=0;f1&&c%4!==0&&(c=Math.floor((c+3)/4)*4)),s.normalized===!1&&(s.array.constructor===Int16Array||s.array.constructor===Uint16Array)&&(c=4),a={arrayStride:c,attributes:[],stepMode:d},o.set(n,a)}const l=this._getVertexFormat(s),u=s.isInterleavedBufferAttribute===!0?s.offset*i:0;a.attributes.push({shaderLocation:r,offset:u,format:l})}return Array.from(o.values())}destroyAttribute(e){const t=this.backend;t.get(this._getBufferAttribute(e)).buffer.destroy(),t.delete(e)}async getArrayBufferAsync(e,t=null,o=0,r=-1){const s=this.backend,i=s.device,n=s.get(this._getBufferAttribute(e)).buffer,a=r===-1?n.size-o:r;let l;if(t!==null&&t.isReadbackBuffer){const c=s.get(t);if(t._mapped===!0)throw new Error("THREE.WebGPUAttributeUtils: ReadbackBuffer must be released before being used again.");if(t._mapped=!0,c.readBufferGPU===void 0){N0.label=`${t.name}_readback`,N0.size=t.maxByteLength,N0.usage=GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,l=i.createBuffer(N0),N0.reset();const d=()=>{t.buffer=null,t._mapped=!1,l.unmap()},h=()=>{t.buffer=null,t._mapped=!1,l.destroy(),s.delete(t),t.removeEventListener("release",d),t.removeEventListener("dispose",h)};t.addEventListener("release",d),t.addEventListener("dispose",h),c.readBufferGPU=l}else l=c.readBufferGPU}else N0.label=`${e.name}_readback`,N0.size=a,N0.usage=GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,l=i.createBuffer(N0),N0.reset();js.label=`readback_encoder_${e.name}`;const u=i.createCommandEncoder(js);if(js.reset(),u.copyBufferToBuffer(n,o,l,0,a),Ie(i,u.finish()),await l.mapAsync(GPUMapMode.READ,0,a),t===null){const c=l.getMappedRange(0,a).slice();return l.destroy(),c}else{if(t.isReadbackBuffer)return t.buffer=l.getMappedRange(0,a),t;{const c=l.getMappedRange(0,a);return new Uint8Array(t).set(new Uint8Array(c)),l.destroy(),t}}}_getVertexFormat(e){const{itemSize:t,normalized:o}=e,r=e.array.constructor,s=e.constructor;let i;if(t===1)i=qN.get(r);else{const n=(ZN.get(s)||R5.get(r))[o?1:0];if(n){const a=r.BYTES_PER_ELEMENT*t,l=Math.floor((a+3)/4)*4/r.BYTES_PER_ELEMENT;if(l%1)throw new Error("THREE.WebGPUAttributeUtils: Bad vertex format item size.");i=`${n}x${l}`}}return i||G("WebGPUAttributeUtils: Vertex format not supported yet."),i}_getBufferAttribute(e){return e.isInterleavedBufferAttribute&&(e=e.data),e}},I0=new S5,L3=new N3,Q2=new Fn,JN=class{constructor(e){this.layoutGPU=e,this.usedTimes=0}},jN=class{constructor(e){this.backend=e,this._bindGroupLayoutCache=new Map}createBindingsLayout(e){const t=this.backend,o=t.device,r=t.get(e);if(r.layout)return r.layout.layoutGPU;const s=this._createLayoutEntries(e),i=d3(JSON.stringify(s));let n=this._bindGroupLayoutCache.get(i);return n===void 0&&(n=new JN(o.createBindGroupLayout({entries:s})),this._bindGroupLayoutCache.set(i,n)),n.usedTimes++,r.layout=n,r.layoutKey=i,n.layoutGPU}createBindings(e,t,o,r=0){const{backend:s}=this,i=s.get(e),n=this.createBindingsLayout(e);let a;o>0&&(i.groups===void 0&&(i.groups=[],i.versions=[]),i.versions[o]===r&&(a=i.groups[o])),a===void 0&&(a=this.createBindGroup(e,n),o>0&&(i.groups[o]=a,i.versions[o]=r)),i.group=a}updateBinding(e){const t=this.backend,o=t.device,r=e.buffer,s=t.get(e).buffer,i=e.updateRanges;if(i.length===0)o.queue.writeBuffer(s,0,r,0);else{const n=Sr(r),a=n?1:r.BYTES_PER_ELEMENT;let l=i[0].start;for(let u=0,c=i.length;u1&&(d+=`-${a.texture.depthOrArrayLayers}`),d+=`-${u}-${c}`,l=a[d],l===void 0){const h=MN.All;let f;n.isSampledCubeTexture?f=p0.Cube:n.texture.isArrayTexture||n.texture.isDataArrayTexture||n.texture.isCompressedArrayTexture?f=p0.TwoDArray:n.isSampledTexture3D?f=p0.ThreeD:f=p0.TwoD,Q2.aspect=h,Q2.dimension=f,Q2.mipLevelCount=u,Q2.baseMipLevel=c,l=a[d]=a.texture.createView(Q2),Q2.reset()}}I0.entries.push({binding:s,resource:l})}else if(n.isSampler){const a=o.get(n);I0.entries.push({binding:s,resource:a.sampler})}s++}const i=r.createBindGroup(I0);return I0.reset(),i}_createLayoutEntries(e){const t=[];let o=0;for(const r of e.bindings){const s=this.backend,i={binding:o,visibility:r.visibility};if(r.isUniformBuffer||r.isStorageBuffer){const n={};r.isStorageBuffer&&(r.visibility&Qe.COMPUTE&&(r.access===ie.READ_WRITE||r.access===ie.WRITE_ONLY)?n.type=Qs.Storage:n.type=Qs.ReadOnlyStorage),i.buffer=n}else if(r.isSampledTexture&&r.store){const n={};n.format=this.backend.get(r.texture).texture.format;const a=r.access;a===ie.READ_WRITE?n.access=$s.ReadWrite:a===ie.WRITE_ONLY?n.access=$s.WriteOnly:n.access=$s.ReadOnly,r.texture.isArrayTexture?n.viewDimension=p0.TwoDArray:r.texture.is3DTexture&&(n.viewDimension=p0.ThreeD),i.storageTexture=n}else if(r.isSampledTexture){const n={},{primarySamples:a}=s.utils.getTextureSampleData(r.texture);if(a>1&&(n.multisampled=!0,r.texture.isDepthTexture||(n.sampleType=Ht.UnfilterableFloat)),r.texture.isDepthTexture)s.compatibilityMode&&r.texture.compareFunction===null?n.sampleType=Ht.UnfilterableFloat:n.sampleType=Ht.Depth;else{const l=r.texture.type;l===1013?n.sampleType=Ht.SInt:l===1014?n.sampleType=Ht.UInt:l===1015&&(this.backend.hasFeature("float32-filterable")?n.sampleType=Ht.Float:n.sampleType=Ht.UnfilterableFloat)}r.isSampledCubeTexture?n.viewDimension=p0.Cube:r.texture.isArrayTexture||r.texture.isDataArrayTexture||r.texture.isCompressedArrayTexture?n.viewDimension=p0.TwoDArray:r.isSampledTexture3D&&(n.viewDimension=p0.ThreeD),i.texture=n}else if(r.isSampler){const n={};r.texture.isDepthTexture&&(r.texture.compareFunction!==null&&r.textureNode.compareNode!==null&&s.hasCompatibility(C2.TEXTURE_COMPARE)?n.type=G7.Comparison:n.type=G7.NonFiltering),i.sampler=n}else G(`WebGPUBindingUtils: Unsupported binding "${r}".`);t.push(i),o++}return t}deleteBindGroupData(e){const{backend:t}=this,o=t.get(e);o.layout&&(o.layout.usedTimes--,o.layout.usedTimes===0&&this._bindGroupLayoutCache.delete(o.layoutKey),o.layout=void 0,o.layoutKey=void 0)}dispose(){this._bindGroupLayoutCache.clear()}},KN=class{constructor(e){this.backend=e}getMaxAnisotropy(){return 16}getUniformBufferLimit(){return this.backend.device.limits.maxUniformBufferBindingSize}},YN=class{constructor(){this.label="",this.layout=null,this.compute=null}reset(){this.label="",this.layout=null,this.compute=null}},eM=class{constructor(){this.label="",this.bindGroupLayouts=null}reset(){this.label="",this.bindGroupLayouts=null}},O3=new YN,$2=new eM,Z2=new T5,G0=new w5,tM=class{constructor(e){this.backend=e}_getSampleCount(e){return this.backend.utils.getSampleCountRenderContext(e)}createRenderPipeline(e,t){const{object:o,material:r,geometry:s,pipeline:i}=e,{vertexProgram:n,fragmentProgram:a}=i,l=this.backend,u=l.device,c=l.utils,d=l.get(i),h=[];for(const L of e.getBindings()){const{layoutGPU:D}=l.get(L).layout;h.push(D)}const f=l.attributeUtils.createShaderVertexBuffers(e);let p;r.blending!==0&&(r.blending!==1||r.transparent!==!1)&&(p=this._getBlending(r));let m={};r.stencilWrite===!0&&(m={compare:this._getStencilCompare(r),failOp:this._getStencilOperation(r.stencilFail),depthFailOp:this._getStencilOperation(r.stencilZFail),passOp:this._getStencilOperation(r.stencilZPass)});const b=this._getColorWriteMask(r),N=[];if(e.context.textures!==null){const L=e.context.textures,D=e.context.mrt;for(let $=0;$1,G0.layout=w;const W={},O=e.context.depth,F=e.context.stencil;(O===!0||F===!0)&&(O===!0&&(W.format=S,W.depthWriteEnabled=r.depthWrite,W.depthCompare=x),F===!0&&(W.stencilFront=m,W.stencilBack=m,W.stencilReadMask=r.stencilFuncMask,W.stencilWriteMask=r.stencilWriteMask),r.polygonOffset===!0&&T.topology===Q3.TriangleList&&(W.depthBias=r.polygonOffsetUnits,W.depthBiasSlopeScale=r.polygonOffsetFactor,W.depthBiasClamp=0),G0.depthStencil=W),u.pushErrorScope("validation");const X=[{program:n,module:v.module},{program:a,module:M.module}],Q=G0.label;if(t===null)d.pipeline=u.createRenderPipeline(G0),G0.reset(),u.popErrorScope().then(L=>{L!==null&&(d.error=!0,G(`WebGPURenderer: Render pipeline creation failed (${Q}): ${L.message}`),this._reportShaderDiagnostics(X,Q))});else{const L=new Promise(async D=>{try{let $=null,k=null;try{k=u.createRenderPipelineAsync(G0)}catch(h1){$=h1}if(G0.reset(),k!==null)try{d.pipeline=await k}catch(h1){$=h1}const c1=await u.popErrorScope();if(c1!==null||$!==null){d.error=!0;const h1=c1&&c1.message||$&&$.message||"unknown";G(`WebGPURenderer: Async render pipeline creation failed (${Q}): ${h1}`),await this._reportShaderDiagnostics(X,Q)}}finally{D()}});t.push(L)}}createBundleEncoder(e,t="renderBundleEncoder"){const{utils:o,device:r}=this.backend,s=o.getCurrentDepthStencilFormat(e),i=o.getCurrentColorFormats(e),n=this._getSampleCount(e);Z2.label=t,Z2.colorFormats=i,Z2.depthStencilFormat=s,Z2.sampleCount=n;const a=r.createRenderBundleEncoder(Z2);return Z2.reset(),a}createComputePipeline(e,t){const o=this.backend,r=o.device,s=o.get(e.computeProgram).module,i=o.get(e),n=[];for(const c of t){const{layoutGPU:d}=o.get(c).layout;n.push(d)}const a=e.computeProgram,l=`computePipeline_${a.stage}${a.name?`_${a.name}`:""}`;r.pushErrorScope("validation"),$2.bindGroupLayouts=n;const u=r.createPipelineLayout($2);$2.reset(),O3.label=l,O3.compute=s,O3.layout=u,i.pipeline=r.createComputePipeline(O3),O3.reset(),r.popErrorScope().then(c=>{c!==null&&(i.error=!0,G(`WebGPURenderer: Compute pipeline creation failed (${l}): ${c.message}`),this._reportShaderDiagnostics([{program:a,module:s.module}],l))})}async _reportShaderDiagnostics(e,t){for(const{program:o,module:r}of e){const s=await r.getCompilationInfo();if(s.messages.length===0)continue;const i=o.code.split(` -`);for(const n of s.messages){const a=n.lineNum>0?` at line ${n.lineNum}${n.linePos>0?`:${n.linePos}`:""}`:"",l=`WebGPURenderer [${t} / ${o.stage} ${n.type}]${a}: ${n.message}`;let u="";n.lineNum>0&&n.lineNum<=i.length&&(u=` - ${i[n.lineNum-1]}`,n.linePos>0&&(u+=` - ${" ".repeat(n.linePos-1)}^`)),(n.type==="error"?G:j)(l+u)}}}_getBlending(e){let t,o;const r=e.blending,s=e.blendSrc,i=e.blendDst,n=e.blendEquation;if(r===5){const a=e.blendSrcAlpha!==null?e.blendSrcAlpha:s,l=e.blendDstAlpha!==null?e.blendDstAlpha:i,u=e.blendEquationAlpha!==null?e.blendEquationAlpha:n;t={srcFactor:this._getBlendFactor(s),dstFactor:this._getBlendFactor(i),operation:this._getBlendOperation(n)},o={srcFactor:this._getBlendFactor(a),dstFactor:this._getBlendFactor(l),operation:this._getBlendOperation(u)}}else{const a=e.premultipliedAlpha,l=(u,c,d,h)=>{t={srcFactor:u,dstFactor:c,operation:qt.Add},o={srcFactor:d,dstFactor:h,operation:qt.Add}};if(a)switch(r){case 1:l(v1.One,v1.OneMinusSrcAlpha,v1.One,v1.OneMinusSrcAlpha);break;case 2:l(v1.One,v1.One,v1.One,v1.One);break;case 3:l(v1.Zero,v1.OneMinusSrc,v1.Zero,v1.One);break;case 4:l(v1.Dst,v1.OneMinusSrcAlpha,v1.Zero,v1.One);break}else switch(r){case 1:l(v1.SrcAlpha,v1.OneMinusSrcAlpha,v1.One,v1.OneMinusSrcAlpha);break;case 2:l(v1.SrcAlpha,v1.One,v1.One,v1.One);break;case 3:G(`WebGPURenderer: "SubtractiveBlending" requires "${e.isMaterial?"material":"blendMode"}.premultipliedAlpha = true".`);break;case 4:G(`WebGPURenderer: "MultiplyBlending" requires "${e.isMaterial?"material":"blendMode"}.premultipliedAlpha = true".`);break}}if(t!==void 0&&o!==void 0)return{color:t,alpha:o};G("WebGPURenderer: Invalid blending: ",r)}_getBlendFactor(e){let t;switch(e){case 200:t=v1.Zero;break;case 201:t=v1.One;break;case 202:t=v1.Src;break;case 203:t=v1.OneMinusSrc;break;case 204:t=v1.SrcAlpha;break;case 205:t=v1.OneMinusSrcAlpha;break;case 208:t=v1.Dst;break;case 209:t=v1.OneMinusDst;break;case 206:t=v1.DstAlpha;break;case 207:t=v1.OneMinusDstAlpha;break;case 210:t=v1.SrcAlphaSaturated;break;case yg:t=v1.Constant;break;case xg:t=v1.OneMinusConstant;break;default:G("WebGPURenderer: Blend factor not supported.",e)}return t}_getStencilCompare(e){let t;const o=e.stencilFunc;switch(o){case 512:t=d0.Never;break;case 519:t=d0.Always;break;case 513:t=d0.Less;break;case 515:t=d0.LessEqual;break;case 514:t=d0.Equal;break;case 518:t=d0.GreaterEqual;break;case 516:t=d0.Greater;break;case 517:t=d0.NotEqual;break;default:G("WebGPURenderer: Invalid stencil function.",o)}return t}_getStencilOperation(e){let t;switch(e){case Wl:t=vt.Keep;break;case 0:t=vt.Zero;break;case v9:t=vt.Replace;break;case nl:t=vt.Invert;break;case B9:t=vt.IncrementClamp;break;case d9:t=vt.DecrementClamp;break;case wl:t=vt.IncrementWrap;break;case pl:t=vt.DecrementWrap;break;default:G("WebGPURenderer: Invalid stencil operation.",t)}return t}_getBlendOperation(e){let t;switch(e){case 100:t=qt.Add;break;case 101:t=qt.Subtract;break;case 102:t=qt.ReverseSubtract;break;case 103:t=qt.Min;break;case 104:t=qt.Max;break;default:G("WebGPUPipelineUtils: Blend equation not supported.",e)}return t}_getPrimitiveState(e,t,o){const r={};r.topology=this.backend.utils.getPrimitiveTopology(e,o),t.index!==null&&e.isLine===!0&&e.isLineSegments!==!0&&(r.stripIndexFormat=t.index.array instanceof Uint16Array?Lr.Uint16:Lr.Uint32);let s=o.side===1;return e.isMesh&&e.matrixWorld.determinantAffine()<0&&(s=!s),r.frontFace=s===!0?k7.CW:k7.CCW,r.cullMode=o.side===2?X7.None:X7.Back,r}_getColorWriteMask(e){return e.colorWrite===!0?I7.All:I7.None}_getDepthCompare(e){let t;if(e.depthTest===!1)t=d0.Always;else{const o=this.backend.parameters.reversedDepthBuffer?R6[e.depthFunc]:e.depthFunc;switch(o){case 0:t=d0.Never;break;case 1:t=d0.Always;break;case 2:t=d0.Less;break;case 3:t=d0.LessEqual;break;case 4:t=d0.Equal;break;case 5:t=d0.GreaterEqual;break;case 6:t=d0.Greater;break;case 7:t=d0.NotEqual;break;default:G("WebGPUPipelineUtils: Invalid depth function.",o)}}return t}},B5=class{constructor(){this.label="",this.type=void 0,this.count=0}reset(){this.label="",this.type=void 0,this.count=0}},Le=new N3,oM=new So,F3=new B5,rM=class extends x5{constructor(e,t,o=2048){super(o),this.device=e,this.type=t,F3.label=`queryset_global_timestamp_${t}`,F3.type="timestamp",F3.count=this.maxQueries,this.querySet=this.device.createQuerySet(F3),F3.reset();const r=this.maxQueries*8;Le.label=`buffer_timestamp_resolve_${t}`,Le.size=r,Le.usage=GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC,this.resolveBuffer=this.device.createBuffer(Le),Le.reset(),Le.label=`buffer_timestamp_result_${t}`,Le.size=r,Le.usage=GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,this.resultBuffer=this.device.createBuffer(Le),Le.reset()}allocateQueriesForContext(e){if(!this.trackTimestamp||this.isDisposed)return null;if(this.currentQueryIndex+2>this.maxQueries)return I1(`WebGPUTimestampQueryPool [${this.type}]: Maximum number of queries exceeded, when using trackTimestamp it is necessary to resolves the queries via renderer.resolveTimestampsAsync( THREE.TimestampQuery.${this.type.toUpperCase()} ).`),null;const t=this.currentQueryIndex;return this.currentQueryIndex+=2,this.queryOffsets.set(e,t),t}async resolveQueriesAsync(){if(!this.trackTimestamp||this.currentQueryIndex===0||this.isDisposed)return this.lastValue;if(this.pendingResolve)return this.pendingResolve;this.pendingResolve=this._resolveQueries();try{return await this.pendingResolve}finally{this.pendingResolve=null}}async _resolveQueries(){if(this.isDisposed)return this.lastValue;try{if(this.resultBuffer.mapState!=="unmapped")return this.lastValue;const e=new Map(this.queryOffsets),t=this.currentQueryIndex,o=t*8;this.currentQueryIndex=0,this.queryOffsets.clear();const r=this.device.createCommandEncoder(oM);r.resolveQuerySet(this.querySet,0,t,this.resolveBuffer,0),r.copyBufferToBuffer(this.resolveBuffer,0,this.resultBuffer,0,o);const s=r.finish();if(Ie(this.device,s),this.resultBuffer.mapState!=="unmapped")return this.lastValue;if(await this.resultBuffer.mapAsync(GPUMapMode.READ,0,o),this.isDisposed)return this.resultBuffer.mapState==="mapped"&&this.resultBuffer.unmap(),this.lastValue;const i=new BigUint64Array(this.resultBuffer.getMappedRange(0,o)),n={},a=[];for(const[u,c]of e){const d=u.match(/^(.*):f(\d+)$/),h=parseInt(d[2]);a.includes(h)===!1&&a.push(h),n[h]===void 0&&(n[h]=0);const f=i[c],p=i[c+1],m=Number(p-f)/1e6;this.timestamps.set(u,m),n[h]+=m}const l=n[a[a.length-1]];return this.resultBuffer.unmap(),this.lastValue=l,this.frames=a,l}catch(e){return G("Error resolving queries:",e),this.resultBuffer.mapState==="mapped"&&this.resultBuffer.unmap(),this.lastValue}}async dispose(){if(!this.isDisposed){if(this.isDisposed=!0,this.pendingResolve)try{await this.pendingResolve}catch(e){G("Error waiting for pending resolve:",e)}if(this.resultBuffer&&this.resultBuffer.mapState==="mapped")try{this.resultBuffer.unmap()}catch(e){G("Error unmapping buffer:",e)}this.querySet&&(this.querySet.destroy(),this.querySet=null),this.resolveBuffer&&(this.resolveBuffer.destroy(),this.resolveBuffer=null),this.resultBuffer&&(this.resultBuffer.destroy(),this.resultBuffer=null),this.queryOffsets.clear(),this.pendingResolve=null}}},sM=class{constructor(){this.label="",this.timestampWrites=void 0}reset(){this.label="",this.timestampWrites=void 0}},or=class{constructor(){this.view=null,this.depthLoadOp=void 0,this.depthStoreOp=void 0,this.depthClearValue=void 0,this.depthReadOnly=!1,this.stencilLoadOp=void 0,this.stencilStoreOp=void 0,this.stencilClearValue=0,this.stencilReadOnly=!1}reset(){this.view=null,this.depthLoadOp=void 0,this.depthStoreOp=void 0,this.depthClearValue=void 0,this.depthReadOnly=!1,this.stencilLoadOp=void 0,this.stencilStoreOp=void 0,this.stencilClearValue=0,this.stencilReadOnly=!1}},iM=class{constructor(){this.querySet=null,this.beginningOfPassWriteIndex=void 0,this.endOfPassWriteIndex=void 0}reset(){this.querySet=null,this.beginningOfPassWriteIndex=void 0,this.endOfPassWriteIndex=void 0}},fe={r:0,g:0,b:0,a:1},z0=new N3,T0=new So,rr=new sM,P3=new B5,sr=new _5,ir=new iM,j0=new jr,Oe=new jr,z1=new Fn,rt=new A5,nM=class extends y5{constructor(e={}){super(e),this.isWebGPUBackend=!0,this.parameters.alpha=e.alpha===void 0?!0:e.alpha,this.parameters.requiredLimits=e.requiredLimits===void 0?{}:e.requiredLimits,this.compatibilityMode=null,this.device=null,this.defaultRenderPassdescriptor=null,this.utils=new wN(this),this.attributeUtils=new HN(this),this.bindingUtils=new jN(this),this.capabilities=new KN(this),this.pipelineUtils=new tM(this),this.textureUtils=new FN(this),this.occludedResolveCache=new Map;const t=typeof navigator>"u"?!0:/Android/.test(navigator.userAgent)===!1;this._compatibility={[C2.TEXTURE_COMPARE]:t}}async init(e){await super.init(e);const t=this.parameters;let o;if(t.device===void 0){const r={powerPreference:t.powerPreference,featureLevel:"compatibility",xrCompatible:e.xr.enabled},s=typeof navigator<"u"?await navigator.gpu.requestAdapter(r):null;if(s===null)throw new Error("THREE.WebGPUBackend: Unable to create WebGPU adapter.");const i=Object.values(Or),n=[];for(const l of i)s.features.has(l)&&n.push(l);const a={requiredFeatures:n,requiredLimits:t.requiredLimits};o=await s.requestDevice(a)}else o=t.device;this.compatibilityMode=!o.features.has("core-features-and-limits"),this.compatibilityMode&&(e._samples=0),o.lost.then(r=>{if(r.reason==="destroyed")return;const s={api:"WebGPU",message:r.message||"Unknown reason",reason:r.reason||null,originalEvent:r};e.onDeviceLost(s)}),o.onuncapturederror=r=>{const s=r.error,i=s&&s.constructor?s.constructor.name:"GPUError",n=s&&s.message||"Unknown uncaptured GPU error";e.onError({api:"WebGPU",type:i,message:n,originalEvent:r})},this.device=o,this.trackTimestamp=this.trackTimestamp&&this.hasFeature(Or.TimestampQuery),this.updateSize()}setXRRenderTargetTextures(e,t,o=null){this.set(e.texture,{texture:t,format:t.format,externalTexture:!0,xrViewDescriptors:o,initialized:!0})}get context(){const e=this.renderer.getCanvasTarget(),t=this.get(e);let o=t.context;if(o===void 0){const r=this.parameters;e.isDefaultCanvasTarget===!0&&r.context!==void 0?o=r.context:o=e.domElement.getContext("webgpu"),"setAttribute"in e.domElement&&e.domElement.setAttribute("data-engine","three.js r185 webgpu");const s=r.alpha?"premultiplied":"opaque",i=r.outputType===1016?"extended":"standard";o.configure({device:this.device,format:this.utils.getPreferredCanvasFormat(),usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,alphaMode:s,toneMapping:{mode:i}}),t.context=o}return o}get coordinateSystem(){return F6}get hasTimestamp(){return!0}async getArrayBufferAsync(e,t=null,o=0,r=-1){return await this.attributeUtils.getArrayBufferAsync(e,t,o,r)}getContext(){return this.context}_getDefaultRenderPassDescriptor(){const e=this.renderer,t=e.getCanvasTarget(),o=this.get(t),r=e.currentSamples;let s=o.descriptor;if(s===void 0||o.samples!==r){if(s=new to,s.colorAttachments.push(new eo),e.depth===!0||e.stencil===!0){const a=new or;a.view=this.textureUtils.getDepthBuffer(e.depth,e.stencil).createView(),s.depthStencilAttachment=a}const n=s.colorAttachments[0];r>0?n.view=this.textureUtils.getColorBuffer().createView():n.resolveTarget=void 0,o.descriptor=s,o.samples=r}const i=s.colorAttachments[0];return r>0?i.resolveTarget=this.context.getCurrentTexture().createView():i.view=this.context.getCurrentTexture().createView(),s}_isRenderCameraDepthArray(e){const t=e.camera;return e.depthTexture&&e.depthTexture.isArrayTexture===!0&&t!==null&&t.isArrayCamera===!0}_hasExternalTexture(e){const t=e.textures;if(t===null)return!1;for(let o=0;o1)if(h===!0){const b=e.camera.cameras;for(let N=0;N0&&(t.currentOcclusionQuerySet&&t.currentOcclusionQuerySet.destroy(),t.currentOcclusionQueryBuffer&&t.currentOcclusionQueryBuffer.destroy(),t.currentOcclusionQuerySet=t.occlusionQuerySet,t.currentOcclusionQueryBuffer=t.occlusionQueryBuffer,t.currentOcclusionQueryObjects=t.occlusionQueryObjects,P3.label=`occlusionQuerySet_${e.id}`,P3.type="occlusion",P3.count=r,s=o.createQuerySet(P3),P3.reset(),t.occlusionQuerySet=s,t.occlusionQueryIndex=0,t.occlusionQueryObjects=new Array(r),t.lastOcclusionObject=null);let i;e.textures===null?i=this._getDefaultRenderPassDescriptor():i=this._getRenderPassDescriptor(e,{loadOp:B1.Load}),this.initTimestampQuery(ze.RENDER,this.getTimestampUID(e),i),i.occlusionQuerySet=s;const n=i.depthStencilAttachment;if(e.textures!==null){const l=i.colorAttachments;for(let u=0;u0&&t.currentPass.executeBundles(t.renderBundles),o>t.occlusionQueryIndex&&t.currentPass.endOcclusionQuery();const r=t.encoder;if(this._isRenderCameraDepthArray(e)===!0){const s=[];for(let i=0;i0){const s=o*8;let i=this.occludedResolveCache.get(s);i===void 0&&(z0.size=s,z0.usage=GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC,i=this.device.createBuffer(z0),z0.reset(),this.occludedResolveCache.set(s,i)),z0.size=s,z0.usage=GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ;const n=this.device.createBuffer(z0);z0.reset(),t.encoder.resolveQuerySet(t.occlusionQuerySet,0,o,i,0),t.encoder.copyBufferToBuffer(i,0,n,0,s),t.occlusionQueryBuffer=n,this.resolveOccludedAsync(e)}if(Ie(this.device,t.encoder.finish()),e.textures!==null){const s=e.textures;for(let i=0;if&&(s[0]=Math.min(h,f),s[1]=Math.ceil(h/f)),i.dispatchSize=s}s=i.dispatchSize}a.dispatchWorkgroups(s[0],s[1]||1,s[2]||1)}finishCompute(e){const t=this.get(e);t.passEncoderGPU.end(),Ie(this.device,t.cmdEncoderGPU.finish())}_draw(e,t,o,r,s,i,n,a,l){const{object:u,material:c,context:d}=e,h=e.getIndex(),f=h!==null;l.pipeline!==r&&(a.setPipeline(r),l.pipeline=r);const p=l.bindingGroups;for(let m=0,b=s.length;m65535?4:2);for(let M=0;M0){const d=this.get(e.camera),h=e.camera.cameras,f=e.getBindingGroup("cameraIndex");if(d.indexesGPU===void 0||d.indexesGPU.length!==h.length){const m=this.get(f),b=[],N=new Uint32Array([0,0,0,0]);for(let v=0,M=h.length;v(j("WebGPURenderer: WebGPU is not available, running under WebGL2 backend."),new D7(e)));const o=new t(e);super(o,e),this.library=new uM,this.isWebGPURenderer=!0,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}},Rt="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/shared/Layouts.tsx",dM=a1.div` - position: absolute; - top: 14px; - left: 16px; - font-size: ${T1.fontSizes.canvasTitle}; - letter-spacing: 0.04em; - font-family: ${T1.fonts.mono}; - color: ${T1.colors.text}; - z-index: 2; - pointer-events: none; - - @media (max-width: 640px) { - top: 10px; - left: 12px; - font-size: 0.78rem; - } -`,hM=a1.div` - position: absolute; - inset: 0; - z-index: 2; - pointer-events: none; -`,Pn=({children:e,title:t,overlay:o,hideTitle:r})=>g(A2,{aspectRatio:T1.layout.aspectRatio,children:[g(fM,{children:e},void 0,!1,{fileName:Rt,lineNumber:41,columnNumber:5},void 0),g(hM,{children:[!r&&g(dM,{children:t},void 0,!1,{fileName:Rt,lineNumber:43,columnNumber:22},void 0),o]},void 0,!0,{fileName:Rt,lineNumber:42,columnNumber:5},void 0)]},void 0,!0,{fileName:Rt,lineNumber:40,columnNumber:3},void 0),fM=({children:e})=>{const[t,o]=(0,_.useState)(!1);return g(go,{orthographic:!0,dpr:[1,2],camera:{position:[0,0,10],zoom:68},gl:async r=>{try{const s=new cM(r);return await s.init(),s.setClearColor(T1.colors.background),s}catch{o(!0);const s=new tl(r);return s.setClearColor(T1.colors.background),s}},children:[g("color",{attach:"background",args:[T1.colors.background]},void 0,!1,{fileName:Rt,lineNumber:86,columnNumber:7},void 0),g("ambientLight",{intensity:.9},void 0,!1,{fileName:Rt,lineNumber:88,columnNumber:7},void 0),e,g("group",{visible:!1,userData:{fallback:t}},void 0,!1,{fileName:Rt,lineNumber:91,columnNumber:7},void 0)]},void 0,!0,{fileName:Rt,lineNumber:67,columnNumber:5},void 0)},pM=a1.div` - position: absolute; - top: ${({$top:e})=>e??"auto"}; - right: ${({$right:e})=>e??"auto"}; - bottom: ${({$bottom:e})=>e??"auto"}; - left: ${({$left:e})=>e??"auto"}; - transform: ${({$align:e,$left:t})=>e==="center"&&t==="50%"?"translateX(-50%)":"none"}; - font-family: ${T1.fonts.mono}; - font-size: ${({$fontSize:e})=>e??T1.fontSizes.normal}; - line-height: 1.2; - color: ${({$color:e})=>e??T1.colors.textSecondary}; - font-weight: ${({$weight:e})=>e??500}; - text-align: ${({$align:e})=>e??"left"}; - max-width: min(32vw, 260px); - - @media (max-width: 640px) { - font-size: 0.68rem; - max-width: 42vw; - } -`,Y2=a1.span` - position: absolute; - transform: translateX(-50%); - color: ${T1.colors.text}; - font-family: ${T1.fonts.mono}; - font-size: ${T1.fontSizes.small}; - font-weight: 700; - white-space: nowrap; - pointer-events: none; - z-index: 2; - text-align: center; -`,J7=a1.span` - font-weight: normal; -`,E5=a1.div` - position: absolute; - left: 0; - right: 0; - top: 50%; - border-top: 1px solid ${T1.colors.borderSecondary}; - pointer-events: none; - z-index: 1; -`,oo="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/shared/Waves.tsx",Ks=(e=0,t=1,o=1,r=0,s=220,i=Math.PI*2)=>{const{viewport:n}=ce();return(0,_.useMemo)(()=>{const a=-n.width*.56,l=n.width*.56,u=[];for(let c=0;c<=s;c+=1){const d=c/s,h=Ft.lerp(a,l,d),f=d*i*o+e,p=Math.sin(f)*t+r;u.push(new z(h,p,0))}return u},[e,t,o,r,s,i,n.width])},mM=(e,t,o=420)=>(0,_.useMemo)(()=>{if(!e.length||e.length<4)return null;const r=Math.max(t,.01),s=new Il(e);s.curveType="centripetal",s.tension=.5;const i=Math.max(8,Math.min(o,Math.floor(e.length/2)));return new _l(s,i,r,6,!1)},[e,t,o]),Fr=({points:e,color:t,thickness:o=.055,opacity:r=1,z:s=0,segments:i=420})=>{const n=mM(e,o,i);return(0,_.useEffect)(()=>()=>n?.dispose(),[n]),!n||!e.length?null:g("mesh",{geometry:n,position:[0,0,s],frustumCulled:!1,children:g("meshBasicMaterial",{color:t,transparent:!0,opacity:r,toneMapped:!1},void 0,!1,{fileName:oo,lineNumber:64,columnNumber:7},void 0)},void 0,!1,{fileName:oo,lineNumber:63,columnNumber:5},void 0)},gM=({points:e,color:t,step:o=10,size:r=.055,opacity:s=.8,z:i=.12})=>{const n=(0,_.useRef)(null),a=(0,_.useMemo)(()=>new vl,[]),l=(0,_.useMemo)(()=>e.length?e.filter((u,c)=>c%o===0):[],[e,o]);return(0,_.useEffect)(()=>{!n.current||l.length===0||(l.forEach((u,c)=>{a.position.set(u.x,u.y,i),a.updateMatrix(),n.current.setMatrixAt(c,a.matrix)}),n.current.instanceMatrix.needsUpdate=!0,n.current.count=l.length)},[l,i,a]),g("instancedMesh",{ref:n,args:[null,null,500],frustumCulled:!1,children:[g("sphereGeometry",{args:[Math.max(r,.01),8,8]},void 0,!1,{fileName:oo,lineNumber:102,columnNumber:7},void 0),g("meshBasicMaterial",{color:t,transparent:!0,opacity:s,toneMapped:!1},void 0,!1,{fileName:oo,lineNumber:103,columnNumber:7},void 0)]},void 0,!0,{fileName:oo,lineNumber:101,columnNumber:5},void 0)},vM="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/shared/CanvasImage.tsx",bM=a1.img` - position: ${e=>e.$position||"absolute"}; - right: ${e=>e.$right||"auto"}; - left: ${e=>e.$left||"auto"}; - top: ${e=>e.$top||"auto"}; - bottom: ${e=>e.$bottom||"auto"}; - height: ${e=>e.$height||"auto"}; - width: ${e=>e.$width||"auto"}; - max-height: ${e=>e.$maxHeight||"none"}; - max-width: ${e=>e.$maxWidth||"none"}; - object-fit: ${e=>e.$objectFit||"contain"}; - transform: ${e=>e.$transform||"none"}; - z-index: ${e=>e.$zIndex||1}; - pointer-events: ${e=>e.$pointerEvents||"auto"}; - opacity: ${e=>e.$opacity||1}; -`,U5=({src:e,alt:t,position:o,right:r,left:s,top:i,bottom:n,height:a,width:l,maxHeight:u,maxWidth:c,objectFit:d,transform:h,zIndex:f,pointerEvents:p,opacity:m})=>{const b=Gi(e);return g(bM,{src:b,alt:t,$position:o,$right:r,$left:s,$top:i,$bottom:n,$height:a,$width:l,$maxHeight:u,$maxWidth:c,$objectFit:d,$transform:h,$zIndex:f,$pointerEvents:p,$opacity:m,loading:"lazy"},void 0,!1,{fileName:vM,lineNumber:77,columnNumber:5},void 0)},te="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/FrequencyModulationCanvas.tsx",NM=()=>{const{viewport:e}=ce();return g(Z0,{children:g(Fr,{points:(0,_.useMemo)(()=>{const o=-e.width*.56,r=e.width*.56,s=[];let i=0,n=o;const a=-.8;for(let l=0;l<=2400;l+=1){const u=l/2400,c=Ft.lerp(o,r,u),d=Ft.lerp(8,.8,u),h=1.2;l===0?i=0:i+=(c-n)*Math.PI*d*.25;const f=Math.sin(i)*h;s.push(new z(c,f+a,0)),n=c}return s},[e.width]),color:T1.colors.accent,thickness:.028,z:.12,segments:2200},void 0,!1,{fileName:te,lineNumber:39,columnNumber:7},void 0)},void 0,!1,{fileName:te,lineNumber:38,columnNumber:5},void 0)},vw=()=>g(Pn,{title:"Frequency Modulation",overlay:g(Z0,{children:[g(E5,{style:{top:"65%"},"aria-hidden":"true"},void 0,!1,{fileName:te,lineNumber:50,columnNumber:11},void 0),g(Y2,{style:{left:"22%",top:"25%"},children:["Higher frequency ",g("br",{},void 0,!1,{fileName:te,lineNumber:52,columnNumber:30},void 0),g(J7,{children:"(thinner, more cycles/second)"},void 0,!1,{fileName:te,lineNumber:53,columnNumber:13},void 0)]},void 0,!0,{fileName:te,lineNumber:51,columnNumber:11},void 0),g(Y2,{style:{left:"72%",top:"25%"},children:["Lower frequency ",g("br",{},void 0,!1,{fileName:te,lineNumber:56,columnNumber:29},void 0),g(J7,{children:"(wider, less cycles/second)"},void 0,!1,{fileName:te,lineNumber:57,columnNumber:13},void 0)]},void 0,!0,{fileName:te,lineNumber:55,columnNumber:11},void 0)]},void 0,!0,{fileName:te,lineNumber:49,columnNumber:9},void 0),children:g(NM,{},void 0,!1,{fileName:te,lineNumber:62,columnNumber:7},void 0)},void 0,!1,{fileName:te,lineNumber:46,columnNumber:5},void 0),Fe="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/AmplitudeModulationCanvas.tsx",MM=()=>{const{viewport:e}=ce();return g(Z0,{children:g(Fr,{points:(0,_.useMemo)(()=>{const o=-e.width*.56,r=e.width*.56,s=[],i=4;for(let n=0;n<=2400;n+=1){const a=n/2400,l=Ft.lerp(o,r,a),u=Ft.lerp(1.72,.18,a),c=a*Math.PI*2*i,d=Math.sin(c)*u;s.push(new z(l,d,0))}return s},[e.width]),color:T1.colors.accent,thickness:.028,z:.12,segments:2200},void 0,!1,{fileName:Fe,lineNumber:30,columnNumber:7},void 0)},void 0,!1,{fileName:Fe,lineNumber:29,columnNumber:5},void 0)},bw=()=>g(Pn,{title:"Amplitude Modulation",overlay:g(Z0,{children:[g(Y2,{style:{left:"22%",top:"18%"},children:"Higher amplitude"},void 0,!1,{fileName:Fe,lineNumber:41,columnNumber:11},void 0),g(Y2,{style:{left:"72%",top:"33%"},children:"Lower amplitude"},void 0,!1,{fileName:Fe,lineNumber:42,columnNumber:11},void 0),g(Y2,{style:{left:"39%",top:"27%",color:"#858585",fontWeight:"normal"},children:"Peak (crest)"},void 0,!1,{fileName:Fe,lineNumber:43,columnNumber:11},void 0),g(Y2,{style:{left:"43%",top:"70%",color:"#858585",fontWeight:"normal"},children:"Trough"},void 0,!1,{fileName:Fe,lineNumber:44,columnNumber:11},void 0),g(E5,{"aria-hidden":"true"},void 0,!1,{fileName:Fe,lineNumber:45,columnNumber:11},void 0)]},void 0,!0,{fileName:Fe,lineNumber:40,columnNumber:9},void 0),children:g(MM,{},void 0,!1,{fileName:Fe,lineNumber:49,columnNumber:7},void 0)},void 0,!1,{fileName:Fe,lineNumber:37,columnNumber:5},void 0),b1="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/MultipathReflectionCanvas.tsx",yM=(e=1)=>{const[t,o]=(0,_.useState)(0);return(0,_.useEffect)(()=>{let r,s;const i=n=>{if(s!==void 0){let a=(n-s)/1e3;a>.1&&(a=.1),a<0&&(a=0),o(l=>l+a*e)}s=n,r=requestAnimationFrame(i)};return r=requestAnimationFrame(i),()=>cancelAnimationFrame(r)},[e]),t},yt=({start:e,end:t,time:o,amplitude:r=6,frequency:s=.15,color:i="#c026d3",speed:n=150})=>{const a=t.x-e.x,l=t.y-e.y,u=Math.sqrt(a*a+l*l),c=Math.atan2(l,a),d=200,h=100,f=Math.ceil((u+h)/d)+1,p=[];for(let m=0;m0&&N-hM){const T=Math.max(M,v-10),x=Math.max(2,Math.ceil((T-M)/2)),S=[];for(let R=0;R<=x;R++){const w=M+R/x*(T-M),W=Math.min(1,(w-M)/10,(T-w)/10),O=Math.sin(w*s-o*15)*r*W,F=e.x+w*Math.cos(c)-O*Math.sin(c),X=e.y+w*Math.sin(c)+O*Math.cos(c);S.push(`${F},${X}`)}p.push({pathData:S.length>0?`M ${S.join(" L ")}`:"",headX:e.x+v*Math.cos(c),headY:e.y+v*Math.sin(c),showArrow:v0})}}}return g("g",{children:[g("line",{x1:e.x,y1:e.y,x2:t.x,y2:t.y,stroke:i,strokeWidth:"1",opacity:"0.3"},void 0,!1,{fileName:b1,lineNumber:72,columnNumber:7},void 0),p.map((m,b)=>g("g",{children:[m.pathData&&g("path",{d:m.pathData,fill:"none",stroke:i,strokeWidth:"2"},void 0,!1,{fileName:b1,lineNumber:81,columnNumber:28},void 0),m.showArrow&&g("g",{transform:`translate(${m.headX}, ${m.headY}) rotate(${c*180/Math.PI})`,children:g("path",{d:"M -8 -5 L 2 0 L -8 5 z",fill:i},void 0,!1,{fileName:b1,lineNumber:84,columnNumber:15},void 0)},void 0,!1,{fileName:b1,lineNumber:83,columnNumber:13},void 0)]},b,!0,{fileName:b1,lineNumber:80,columnNumber:9},void 0))]},void 0,!0,{fileName:b1,lineNumber:71,columnNumber:5},void 0)},j7=({x:e,y:t,label:o,sublabel:r,time:s})=>{const i=s*15%40,n=(s*15+20)%40;return g("g",{children:[g("circle",{cx:e,cy:t,r:10+i,fill:"none",stroke:"#94a3b8",strokeWidth:"2",opacity:1-i/40},void 0,!1,{fileName:b1,lineNumber:99,columnNumber:7},void 0),g("circle",{cx:e,cy:t,r:10+n,fill:"none",stroke:"#94a3b8",strokeWidth:"2",opacity:1-n/40},void 0,!1,{fileName:b1,lineNumber:100,columnNumber:7},void 0),g("circle",{cx:e,cy:t,r:"12",fill:"#3b82f6"},void 0,!1,{fileName:b1,lineNumber:101,columnNumber:7},void 0),g("text",{x:e,y:t+50,textAnchor:"middle",className:"font-bold text-3xl fill-slate-800",children:o},void 0,!1,{fileName:b1,lineNumber:102,columnNumber:7},void 0),r&&g("text",{x:e,y:t+75,textAnchor:"middle",className:"text-sm fill-slate-600 font-mono",children:r},void 0,!1,{fileName:b1,lineNumber:104,columnNumber:9},void 0)]},void 0,!0,{fileName:b1,lineNumber:98,columnNumber:5},void 0)};function Nw(){const e=yM(1);return g(A2,{aspectRatio:"16/9",children:g("div",{className:"w-full h-full",children:g("svg",{viewBox:"0 0 900 506.25",className:"w-full h-auto block",children:[g("defs",{children:g("pattern",{id:"grid",width:"40",height:"40",patternUnits:"userSpaceOnUse",children:g("path",{d:"M 40 0 L 0 0 0 40",fill:"none",stroke:"#DBDCDE",strokeWidth:"1"},void 0,!1,{fileName:b1,lineNumber:119,columnNumber:15},this)},void 0,!1,{fileName:b1,lineNumber:118,columnNumber:13},this)},void 0,!1,{fileName:b1,lineNumber:117,columnNumber:11},this),g("rect",{width:"100%",height:"100%",fill:"url(#grid)"},void 0,!1,{fileName:b1,lineNumber:124,columnNumber:11},this),g("rect",{x:"540",y:"150",width:"100",height:"200",fill:"#cbd5e1",rx:"4"},void 0,!1,{fileName:b1,lineNumber:127,columnNumber:11},this),g("text",{x:"590",y:"255",textAnchor:"middle",className:"text-sm font-mono fill-slate-500",children:"Obstacle"},void 0,!1,{fileName:b1,lineNumber:128,columnNumber:11},this),g("line",{x1:"520",y1:"75",x2:"660",y2:"75",stroke:"#94a3b8",strokeWidth:"8",strokeLinecap:"round"},void 0,!1,{fileName:b1,lineNumber:131,columnNumber:11},this),g("text",{x:"680",y:"80",className:"text-sm font-mono fill-slate-500",children:"Reflection"},void 0,!1,{fileName:b1,lineNumber:132,columnNumber:11},this),g("line",{x1:"520",y1:"425",x2:"660",y2:"425",stroke:"#94a3b8",strokeWidth:"8",strokeLinecap:"round"},void 0,!1,{fileName:b1,lineNumber:134,columnNumber:11},this),g("text",{x:"680",y:"430",className:"text-sm font-mono fill-slate-500",children:"Reflection"},void 0,!1,{fileName:b1,lineNumber:135,columnNumber:11},this),g("circle",{cx:"300",cy:"250",r:"45",fill:"#d1d5db"},void 0,!1,{fileName:b1,lineNumber:138,columnNumber:11},this),g("text",{x:"300",y:"185",textAnchor:"middle",className:"font-bold text-xl fill-slate-700",children:"Target"},void 0,!1,{fileName:b1,lineNumber:139,columnNumber:11},this),g(yt,{start:{x:115,y:250},end:{x:250,y:250},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:142,columnNumber:11},this),g(yt,{start:{x:339,y:231},end:{x:540,y:183},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:145,columnNumber:11},this),g(yt,{start:{x:345,y:250},end:{x:540,y:250},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:146,columnNumber:11},this),g(yt,{start:{x:339,y:269},end:{x:540,y:317},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:147,columnNumber:11},this),g(yt,{start:{x:335,y:221},end:{x:590,y:75},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:150,columnNumber:11},this),g(yt,{start:{x:590,y:75},end:{x:785,y:238},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:151,columnNumber:11},this),g(yt,{start:{x:335,y:279},end:{x:590,y:425},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:153,columnNumber:11},this),g(yt,{start:{x:590,y:425},end:{x:785,y:263},time:e,color:"#c026d3"},void 0,!1,{fileName:b1,lineNumber:154,columnNumber:11},this),g(j7,{x:100,y:250,label:"Tx",sublabel:"(transmitter / source)",time:e},void 0,!1,{fileName:b1,lineNumber:157,columnNumber:11},this),g(j7,{x:800,y:250,label:"Rx",sublabel:"(receiver / destination)",time:e},void 0,!1,{fileName:b1,lineNumber:158,columnNumber:11},this)]},void 0,!0,{fileName:b1,lineNumber:116,columnNumber:9},this)},void 0,!1,{fileName:b1,lineNumber:115,columnNumber:7},this)},void 0,!1,{fileName:b1,lineNumber:114,columnNumber:5},this)}var h0="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/HeterodyningCanvas.tsx",xM="#d282e3",SM="#1180ff",TM="#06b6d4",nr=a1(pM)` - font-size: ${T1.fontSizes.small}; - font-weight: 700; - color: ${T1.colors.text}; - max-width: min(36vw, 320px); - white-space: nowrap; -`,wM=a1.div` - position: absolute; - left: 62%; - top: 14.5%; - transform: translateX(-50%); - font-family: ${T1.fonts.mono}; - font-size: 0.72rem; - font-weight: 700; - color: #4b5563; - letter-spacing: 0.02em; - pointer-events: none; - z-index: 2; -`,_M=a1.div` - position: absolute; - left: 65.4%; - top: 25.5%; - width: 24px; - height: 48.8%; - pointer-events: none; - z-index: 2; -`,AM=a1.div` - position: absolute; - left: 50%; - top: 0; - bottom: 0; - width: 1.5px; - transform: translateX(-50%); - background: #4b5563; -`,K7=a1.div` - position: absolute; - left: 50%; - width: 14px; - height: 2px; - transform: translateX(-50%); - background: #4b5563; - ${({$top:e})=>e?"top: 0;":"bottom: 0;"} -`,CM=a1.div` - position: absolute; - left: 0; - right: 0; - top: 49.8%; - border-top: 1px solid rgba(92, 92, 92, 0.24); - pointer-events: none; - z-index: 1; -`,RM=()=>{const[e,t]=(0,_.useState)(0);(0,_.useEffect)(()=>{let i=0;const n=()=>{t(a=>a-.01),i=requestAnimationFrame(n)};return i=requestAnimationFrame(n),()=>cancelAnimationFrame(i)},[]);const o=Ks(e*.8,.95,1.35,0),r=Ks(e*.8+Math.PI/2.5,.95,1.85,0),s=Ks(e*.8,.72,.75,0,280);return g(Z0,{children:[g(Fr,{points:o,color:xM,z:.12,opacity:.7,thickness:.06},void 0,!1,{fileName:h0,lineNumber:91,columnNumber:7},void 0),g(Fr,{points:r,color:SM,z:.1,opacity:.7,thickness:.06},void 0,!1,{fileName:h0,lineNumber:92,columnNumber:7},void 0),g(gM,{points:s,color:TM,step:8,size:.06,opacity:.95,z:.14},void 0,!1,{fileName:h0,lineNumber:93,columnNumber:7},void 0)]},void 0,!0,{fileName:h0,lineNumber:90,columnNumber:5},void 0)},Mw=()=>g(Pn,{title:"Heterodyning",overlay:g(Z0,{children:[g(CM,{},void 0,!1,{fileName:h0,lineNumber:104,columnNumber:11},void 0),g(wM,{children:"Amplitude (A)"},void 0,!1,{fileName:h0,lineNumber:105,columnNumber:11},void 0),g(_M,{"aria-hidden":"true",children:[g(AM,{},void 0,!1,{fileName:h0,lineNumber:107,columnNumber:13},void 0),g(K7,{$top:!0},void 0,!1,{fileName:h0,lineNumber:108,columnNumber:13},void 0),g(K7,{},void 0,!1,{fileName:h0,lineNumber:109,columnNumber:13},void 0)]},void 0,!0,{fileName:h0,lineNumber:106,columnNumber:11},void 0),g(nr,{$bottom:"96px",$left:"16px",$color:T1.colors.text,children:"Sideband: 30 Hz (diff) ⚡ Sideband at peak A²"},void 0,!1,{fileName:h0,lineNumber:111,columnNumber:11},void 0),g(nr,{$bottom:"72px",$left:"16px",$color:T1.colors.text,children:"Wave B: 3,000,000 Hz"},void 0,!1,{fileName:h0,lineNumber:112,columnNumber:11},void 0),g(nr,{$bottom:"48px",$left:"16px",$color:T1.colors.text,children:"Wave A: 3,000,030 Hz (30Hz more)"},void 0,!1,{fileName:h0,lineNumber:113,columnNumber:11},void 0),g(nr,{$bottom:"16px",$left:"16px",$color:T1.colors.text,$weight:700,children:"Energy / ⚡ Waves at peak in sync: 4A²"},void 0,!1,{fileName:h0,lineNumber:114,columnNumber:11},void 0)]},void 0,!0,{fileName:h0,lineNumber:103,columnNumber:9},void 0),children:g(RM,{},void 0,!1,{fileName:h0,lineNumber:118,columnNumber:7},void 0)},void 0,!1,{fileName:h0,lineNumber:100,columnNumber:5},void 0),f1="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/TimeOfFlightCanvas.tsx",BM=Gi("body-attenuation-character.png"),Ve={width:2.91,height:5.32},EM=` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); - } -`,UM=` - uniform float uTime; - uniform sampler2D uBodyTexture; - uniform vec4 uBodyRect; - uniform vec2 uAntennaCenter; - varying vec2 vUv; - - float sampleBody(vec2 uv) { - vec2 bodyUv = (uv - uBodyRect.xy) / uBodyRect.zw; - if (bodyUv.x < 0.0 || bodyUv.x > 1.0 || bodyUv.y < 0.0 || bodyUv.y > 1.0) return 0.0; - return texture2D(uBodyTexture, bodyUv).a; - } - - float bodyEdge(vec2 uv, float radius) { - float center = sampleBody(uv); - float maxNeighbor = 0.0; - for (float dx = -1.0; dx <= 1.0; dx += 1.0) { - for (float dy = -1.0; dy <= 1.0; dy += 1.0) { - if (dx == 0.0 && dy == 0.0) continue; - maxNeighbor = max(maxNeighbor, sampleBody(uv + vec2(dx, dy) * radius)); - } - } - return maxNeighbor * (1.0 - center); - } - - // Single radial wave ring contribution - float waveRing(float distToAntenna, float radius) { - float thickness = 0.025; - float ring = smoothstep(thickness, 0.0, abs(distToAntenna - radius)); - // Fade in near antenna, fade out at distance - float fadeIn = smoothstep(0.0, 0.08, radius); - float fadeOut = smoothstep(1.1, 0.4, radius); - return ring * fadeIn * fadeOut; - } - - void main() { - float bodyAlpha = sampleBody(vUv); - bool insideBody = bodyAlpha > 0.15; - - float distToAntenna = distance(vUv, uAntennaCenter); - - float speed = 0.5; - float pulsePhase = mod(uTime * speed, 3.0); - float waveR = 0.0; - if (pulsePhase <= 1.0) waveR = pulsePhase; - else if (pulsePhase <= 2.0) waveR = 2.0 - pulsePhase; - - float combinedRing = pulsePhase <= 2.0 ? waveRing(distToAntenna, waveR) : 0.0; - - // Subtle ripple texture - float ripple = 0.5 + 0.5 * sin(distToAntenna * 60.0 - uTime * 6.0); - float detail = combinedRing * (0.7 + 0.3 * ripple); - - // Suppress inside body silhouette - if (insideBody) { - detail = 0.0; - } - - // Edge outline glow when any wave front is near the body - float edgeDetect = bodyEdge(vUv, 0.008); - float nearWave = smoothstep(0.15, 0.0, abs(distToAntenna - waveR)); - float outlineAlpha = edgeDetect * nearWave * 0.6; - - // Color: subtle grey-white arcs - vec3 waveColor = mix(vec3(0.55, 0.56, 0.60), vec3(0.95, 0.96, 0.98), combinedRing); - vec3 outlineColor = vec3(0.98, 0.98, 1.0); - vec3 color = mix(waveColor, outlineColor, clamp(outlineAlpha, 0.0, 1.0)); - - float alpha = clamp(detail * 0.55 + outlineAlpha, 0.0, 0.75); - - gl_FragColor = vec4(color, alpha); - } -`,WM=` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); - } -`,LM=` - uniform sampler2D uBodyTexture; - uniform vec4 uBodyRect; - uniform float uTime; - uniform float uWaveProgress; - uniform vec2 uAntennaCenter; - varying vec2 vUv; - - float sampleBody(vec2 uv) { - vec2 bodyUv = (uv - uBodyRect.xy) / uBodyRect.zw; - if (bodyUv.x < 0.0 || bodyUv.x > 1.0 || bodyUv.y < 0.0 || bodyUv.y > 1.0) return 0.0; - return texture2D(uBodyTexture, bodyUv).a; - } - - // Approximate distance from the nearest silhouette edge by marching outward - // in 16 directions and finding the shortest distance to a transparent pixel. - float edgeDistance(vec2 uv) { - float maxDist = 0.08; // max search radius in UV space - float minFound = maxDist; - const int DIRS = 16; - const int STEPS = 12; - for (int d = 0; d < DIRS; d++) { - float angle = float(d) * 6.2831853 / float(DIRS); - vec2 dir = vec2(cos(angle), sin(angle)); - for (int s = 1; s <= STEPS; s++) { - float r = maxDist * float(s) / float(STEPS); - vec2 samplePos = uv + dir * r; - float a = sampleBody(samplePos); - if (a < 0.15) { - minFound = min(minFound, r); - break; - } - } - } - return minFound / maxDist; // normalize 0..1 - } - - vec3 thermalColor(float t) { - // Thermal palette: dark blue -> blue -> green -> yellow -> red -> pink/white - // Matching the reference image's color ramp - vec3 color; - if (t < 0.15) { - // Dark blue/indigo edge glow - color = mix(vec3(0.08, 0.0, 0.42), vec3(0.0, 0.15, 0.85), t / 0.15); - } else if (t < 0.35) { - // Blue to green - color = mix(vec3(0.0, 0.15, 0.85), vec3(0.0, 0.9, 0.2), (t - 0.15) / 0.20); - } else if (t < 0.55) { - // Green to yellow - color = mix(vec3(0.0, 0.9, 0.2), vec3(1.0, 1.0, 0.0), (t - 0.35) / 0.20); - } else if (t < 0.75) { - // Yellow to red - color = mix(vec3(1.0, 1.0, 0.0), vec3(1.0, 0.15, 0.0), (t - 0.55) / 0.20); - } else { - // Red to hot pink/magenta for the very core - color = mix(vec3(1.0, 0.15, 0.0), vec3(1.0, 0.3, 0.6), (t - 0.75) / 0.25); - } - return color; - } - - void main() { - float bodyAlpha = sampleBody(vUv); - - if (bodyAlpha < 0.15) { - discard; - } - - // Core idea: distance from edge determines heat. - float dist = edgeDistance(vUv); - - // Boost head and chest regions slightly — they have denser tissue - vec2 bodyUv = (vUv - uBodyRect.xy) / uBodyRect.zw; - float headBoost = smoothstep(0.72, 0.92, bodyUv.y) * smoothstep(0.15, 0.45, 1.0 - abs(bodyUv.x - 0.5)) * 0.18; - float chestBoost = smoothstep(0.42, 0.72, bodyUv.y) * smoothstep(0.10, 0.50, 1.0 - abs(bodyUv.x - 0.5)) * 0.12; - - float density = clamp(dist + headBoost + chestBoost, 0.0, 1.0); - - vec3 heatColor = thermalColor(density); - - // Wave-driven reveal - float speed = 0.5; - float pulsePhase = mod(uTime * speed, 3.0); - float waveR = 0.0; - if (pulsePhase <= 1.0) waveR = pulsePhase; - else if (pulsePhase <= 2.0) waveR = 2.0 - pulsePhase; - float distToAntenna = distance(vUv, uAntennaCenter); - - float revealAlpha = 0.0; - if (pulsePhase <= 1.0) { - revealAlpha = 0.0; - } else if (pulsePhase <= 2.0) { - float hasPassedBack = smoothstep(0.05, -0.05, waveR - distToAntenna); - float waveProximity = smoothstep(0.18, 0.0, abs(distToAntenna - waveR)); - revealAlpha = max(waveProximity, hasPassedBack); - } else { - revealAlpha = 1.0 - (pulsePhase - 2.0); - } - - float alpha = smoothstep(0.15, 0.30, bodyAlpha) * 0.92 * revealAlpha; - - gl_FragColor = vec4(heatColor, alpha); - } -`,OM=({bodyTexture:e})=>{const t=(0,_.useRef)(null),o=(0,_.useMemo)(()=>{const i=Ve.width/2,n=Ve.height/2,a=(2.8-i+5)/10,l=(-.55-n+3.25)/6.5,u=Ve.width/10,c=Ve.height/6.5;return{uTime:{value:0},uBodyTexture:{value:e},uBodyRect:{value:new S1(a,l,u,c)},uAntennaCenter:{value:new p1(.08,.61)}}},[e]);return(0,_.useEffect)(()=>{t.current&&(t.current.uniforms.uBodyTexture.value=e)},[e]),A0(r=>{t.current&&(t.current.uniforms.uTime.value=r.clock.elapsedTime)}),g("mesh",{position:[0,0,-.5],frustumCulled:!1,children:[g("planeGeometry",{args:[10,6.5]},void 0,!1,{fileName:f1,lineNumber:251,columnNumber:7},void 0),g("shaderMaterial",{ref:t,uniforms:o,vertexShader:EM,fragmentShader:UM,transparent:!0,depthWrite:!1,blending:2},void 0,!1,{fileName:f1,lineNumber:252,columnNumber:7},void 0)]},void 0,!0,{fileName:f1,lineNumber:250,columnNumber:5},void 0)},FM=` - varying vec2 vUv; - varying vec3 vWorldPosition; - void main() { - vUv = uv; - vec4 worldPos = modelMatrix * vec4(position, 1.0); - vWorldPosition = worldPos.xyz; - gl_Position = projectionMatrix * viewMatrix * worldPos; - } -`,PM=` - uniform sampler2D uTexture; - uniform float uTime; - uniform vec2 uAntennaCenter; - varying vec2 vUv; - varying vec3 vWorldPosition; - - void main() { - vec4 texColor = texture2D(uTexture, vUv); - if (texColor.a < 0.1) discard; - - vec2 screenUv = vec2(vWorldPosition.x / 10.0 + 0.5, vWorldPosition.y / 6.5 + 0.5); - float distToAntenna = distance(screenUv, uAntennaCenter); - - float speed = 0.5; - float pulsePhase = mod(uTime * speed, 3.0); - float waveR = 0.0; - if (pulsePhase <= 1.0) waveR = pulsePhase; - else if (pulsePhase <= 2.0) waveR = 2.0 - pulsePhase; - - float revealed = 0.0; - if (pulsePhase <= 1.0) { - revealed = 0.0; - } else if (pulsePhase <= 2.0) { - revealed = smoothstep(0.05, -0.05, waveR - distToAntenna); - } else { - revealed = 1.0 - (pulsePhase - 2.0); - } - - float hit = clamp(revealed, 0.0, 1.0); - - vec3 a = vec3(0.5, 0.5, 0.5); - vec3 b = vec3(0.5, 0.5, 0.5); - vec3 c = vec3(1.0, 1.0, 1.0); - vec3 d = vec3(0.263, 0.416, 0.557); - vec3 litColor = a + b * cos(6.28318 * (c * (uTime * 0.4 + vWorldPosition.x * 0.1 + vWorldPosition.y * 0.1) + d)); - - gl_FragColor = vec4(litColor, texColor.a * hit); - } -`,DM=({text:e,x:t,y:o,widthWorld:r})=>{const[s,i]=(0,_.useState)(0),{texture:n,width:a,height:l}=(0,_.useMemo)(()=>{const d=document.createElement("canvas"),h=d.getContext("2d");if(!h)return{texture:null,width:1,height:1};const f="0123456789ABCDEF";let p="";for(let M=0;M({uTexture:{value:n},uTime:{value:0},uAntennaCenter:{value:new p1(.08,.61)}}),[n]);return A0(d=>{u.current&&(u.current.uniforms.uTime.value=d.clock.elapsedTime);const h=Math.floor(d.clock.elapsedTime/6);h!==s&&i(h)}),n?g("mesh",{position:[t+a/2,o,.18],children:[g("planeGeometry",{args:[a,l]},void 0,!1,{fileName:f1,lineNumber:377,columnNumber:7},void 0),g("shaderMaterial",{ref:u,uniforms:c,vertexShader:FM,fragmentShader:PM,transparent:!0,depthWrite:!1,blending:2},void 0,!1,{fileName:f1,lineNumber:378,columnNumber:7},void 0)]},void 0,!0,{fileName:f1,lineNumber:376,columnNumber:5},void 0):null},kM=()=>g("group",{children:(0,_.useMemo)(()=>{const t=[],n=2.1100000000000003,a=-.55-2.66;let l=n-.35;for(;l>a;){const u=(l- -.55)/2.66,c=2.8-1.6*Math.sqrt(Math.max(0,1-u*u))-.2-.3;t.push({y:l,x:c,text:"00",widthWorld:.3}),l-=.35}return t},[]).map((e,t)=>g(DM,{text:e.text,x:e.x,y:e.y,widthWorld:e.widthWorld},t,!1,{fileName:f1,lineNumber:428,columnNumber:9},void 0))},void 0,!1,{fileName:f1,lineNumber:426,columnNumber:5},void 0),XM=({bodyTexture:e})=>{const t=(0,_.useRef)(null),o=(0,_.useMemo)(()=>{const i=Ve.width/2,n=Ve.height/2,a=(2.8-i+5)/10,l=(-.55-n+3.25)/6.5,u=Ve.width/10,c=Ve.height/6.5;return{uBodyTexture:{value:e},uBodyRect:{value:new S1(a,l,u,c)},uTime:{value:0},uWaveProgress:{value:0},uAntennaCenter:{value:new p1(.08,.61)}}},[e]);return(0,_.useEffect)(()=>{t.current&&(t.current.uniforms.uBodyTexture.value=e)},[e]),A0(r=>{if(t.current){const s=r.clock.elapsedTime,i=(s*.4%2.5-.5)/2.5+.5;t.current.uniforms.uTime.value=s,t.current.uniforms.uWaveProgress.value=i}}),g("mesh",{position:[0,0,.1],frustumCulled:!1,children:[g("planeGeometry",{args:[10,6.5]},void 0,!1,{fileName:f1,lineNumber:474,columnNumber:7},void 0),g("shaderMaterial",{ref:t,uniforms:o,vertexShader:WM,fragmentShader:LM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:f1,lineNumber:475,columnNumber:7},void 0)]},void 0,!0,{fileName:f1,lineNumber:473,columnNumber:5},void 0)},IM=({texture:e})=>g("mesh",{position:[2.8,-.55,.15],children:[g("planeGeometry",{args:[Ve.width,Ve.height]},void 0,!1,{fileName:f1,lineNumber:490,columnNumber:7},void 0),g("meshBasicMaterial",{map:e,transparent:!0,opacity:.8},void 0,!1,{fileName:f1,lineNumber:491,columnNumber:7},void 0)]},void 0,!0,{fileName:f1,lineNumber:489,columnNumber:5},void 0),GM=()=>{const e=Q6(BM),{size:t,camera:o}=ce();return(0,_.useEffect)(()=>{if(o.type==="OrthographicCamera"){const r=o;r.zoom=t.width/10,r.updateProjectionMatrix()}},[t,o]),(0,_.useEffect)(()=>{e.colorSpace=F0,e.anisotropy=8,e.wrapS=Ot,e.wrapT=Ot,e.minFilter=Z1,e.magFilter=Z1,e.generateMipmaps=!1,e.needsUpdate=!0},[e]),g(Z0,{children:[g("ambientLight",{intensity:1.8},void 0,!1,{fileName:f1,lineNumber:525,columnNumber:7},void 0),g("directionalLight",{position:[0,0,3],intensity:1.25,color:"#ffffff"},void 0,!1,{fileName:f1,lineNumber:526,columnNumber:7},void 0),g(OM,{bodyTexture:e},void 0,!1,{fileName:f1,lineNumber:531,columnNumber:7},void 0),g(kM,{},void 0,!1,{fileName:f1,lineNumber:534,columnNumber:7},void 0),g(IM,{texture:e},void 0,!1,{fileName:f1,lineNumber:537,columnNumber:7},void 0),g(XM,{bodyTexture:e},void 0,!1,{fileName:f1,lineNumber:540,columnNumber:7},void 0),g(L1,{position:[-3.3,2.05,.35],fontSize:.24,color:"#1e1e26",anchorX:"center",anchorY:"middle",fontWeight:700,text:"Antenna"},void 0,!1,{fileName:f1,lineNumber:543,columnNumber:7},void 0),g(L1,{position:[2.8,2.5,.35],fontSize:.24,color:"#1e1e26",anchorX:"center",anchorY:"middle",fontWeight:700,text:"Target"},void 0,!1,{fileName:f1,lineNumber:544,columnNumber:7},void 0),g(zM,{},void 0,!1,{fileName:f1,lineNumber:546,columnNumber:7},void 0)]},void 0,!0,{fileName:f1,lineNumber:524,columnNumber:5},void 0)},zM=()=>{const[e,t]=(0,_.useState)({distance:"500m",frequency:"15 MHz",phase:"0°",aperture:"50.00 m²"}),o=(0,_.useRef)(-1);return A0(r=>{const s=Math.floor(r.clock.elapsedTime/6);if(o.current!==s){o.current=s;const i=.01+Math.random()*.99,n=1+Math.random()*29,a=20*Math.log10(i)+20*Math.log10(n)+32.44-22-24;let l=Math.pow(10,a/10)*9e4/(4*Math.PI*n*n),u=l>1e4?`${(l/1e4).toFixed(2)} ha`:`${l.toFixed(2)} m²`;const c=i<1?`${Math.round(i*1e3)} m`:`${i.toFixed(2)} km`,d=`${n.toFixed(2)} MHz`,h=`${Math.round(Math.random()*360)}°`;t({distance:c,frequency:d,phase:h,aperture:u})}}),g("group",{position:[-4.1,-1.6,.4],children:[g(L1,{position:[0,.5,0],fontSize:.16,color:"#3a3a42",anchorX:"left",fontWeight:700,text:"Distance:"},void 0,!1,{fileName:f1,lineNumber:588,columnNumber:7},void 0),g(L1,{position:[2.7,.5,0],fontSize:.16,color:"#1a1a22",anchorX:"right",text:e.distance},void 0,!1,{fileName:f1,lineNumber:589,columnNumber:7},void 0),g(L1,{position:[0,.1,0],fontSize:.16,color:"#3a3a42",anchorX:"left",fontWeight:700,text:"Frequency:"},void 0,!1,{fileName:f1,lineNumber:591,columnNumber:7},void 0),g(L1,{position:[2.7,.1,0],fontSize:.16,color:"#1a1a22",anchorX:"right",text:e.frequency},void 0,!1,{fileName:f1,lineNumber:592,columnNumber:7},void 0),g(L1,{position:[0,-.3,0],fontSize:.16,color:"#3a3a42",anchorX:"left",fontWeight:700,text:"Phase:"},void 0,!1,{fileName:f1,lineNumber:594,columnNumber:7},void 0),g(L1,{position:[2.7,-.3,0],fontSize:.16,color:"#1a1a22",anchorX:"right",text:e.phase},void 0,!1,{fileName:f1,lineNumber:595,columnNumber:7},void 0),g(L1,{position:[0,-.7,0],fontSize:.16,color:"#3a3a42",anchorX:"left",fontWeight:700,text:"Aperture (for -22dBm):"},void 0,!1,{fileName:f1,lineNumber:597,columnNumber:7},void 0),g(L1,{position:[2.7,-1,0],fontSize:.18,color:"#1a1a22",anchorX:"right",fontWeight:700,text:e.aperture},void 0,!1,{fileName:f1,lineNumber:598,columnNumber:7},void 0)]},void 0,!0,{fileName:f1,lineNumber:587,columnNumber:5},void 0)},yw=()=>g(A2,{aspectRatio:"10 / 6.4",children:g("div",{style:{width:"100%",height:"100%",position:"relative"},children:[g(VM,{children:"Time of Flight"},void 0,!1,{fileName:f1,lineNumber:607,columnNumber:9},void 0),g(U5,{src:"hex-small-cell-tower.svg",alt:"Antenna",position:"absolute",left:"4%",bottom:"0px",height:"65%",zIndex:10,pointerEvents:"none"},void 0,!1,{fileName:f1,lineNumber:608,columnNumber:9},void 0),g(go,{style:{position:"relative",zIndex:20},orthographic:!0,dpr:[1,2],camera:{position:[0,0,10]},gl:{antialias:!0,alpha:!0},children:g(_.Suspense,{fallback:null,children:g(GM,{},void 0,!1,{fileName:f1,lineNumber:626,columnNumber:13},void 0)},void 0,!1,{fileName:f1,lineNumber:625,columnNumber:11},void 0)},void 0,!1,{fileName:f1,lineNumber:618,columnNumber:9},void 0)]},void 0,!0,{fileName:f1,lineNumber:606,columnNumber:7},void 0)},void 0,!1,{fileName:f1,lineNumber:605,columnNumber:5},void 0),VM=a1.div` - position: absolute; - top: 14px; - left: 16px; - font-size: ${T1.fontSizes.canvasTitle}; - letter-spacing: 0.04em; - font-family: ${T1.fonts.mono}; - color: ${T1.colors.text}; - z-index: 20; - pointer-events: none; -`,q="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/ImpedanceCanvas.tsx",xe={background:T1.colors.background,textPrimary:T1.colors.text,textSecondary:"rgba(42, 42, 42, 0.8)",textTertiary:"rgba(42, 42, 42, 0.6)",textMuted:"rgba(92, 92, 92, 0.7)",textLight:"rgba(92, 92, 92, 0.6)",borderPrimary:"rgba(42, 42, 42, 0.3)",borderSecondary:"rgba(42, 42, 42, 0.2)",backgroundLight:"rgba(255, 255, 255, 0.8)",backgroundMedium:"rgba(255, 255, 255, 0.6)",dot:"rgba(42, 42, 42, 0.5)"},Vt={mono:T1.fonts.mono,monoShort:T1.fonts.mono,serif:'"Cambria Math", "Georgia", "Times New Roman", serif'},co=` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); - } -`,QM=` - uniform float uTime; - uniform float uObjectCenter; - uniform float uObjectRadius; - uniform vec2 uResolution; - varying vec2 vUv; - - float sdSegment(vec2 p, vec2 a, vec2 b) { - vec2 pa = p - a, ba = b - a; - float h = clamp(dot(pa, ba) / dot(ba, ba), 0.0, 1.0); - return length(pa - ba * h); - } - - void main() { - float x = vUv.x; - float aspect = uResolution.x / uResolution.y; - - float objDist = abs(x - uObjectCenter) / uObjectRadius; - float inObj = 1.0 - smoothstep(0.78, 1.12, objDist); - - float baseFreq = 2.1; - float localFreq = mix(baseFreq, baseFreq * 2.8, inObj); - float baseAmp = 0.4; - float localAmp = mix(baseAmp, baseAmp * 0.35, inObj); - - vec2 uv = vUv * 2.0 - 1.0; - uv.x *= aspect; - - float x0 = uv.x * 3.5; - float y0 = uv.y; - - float minDist = 1e9; - const int N = 6; - float span = 0.35; - - for (int i = 0; i < N; i++) { - float tSample = float(i) / float(N - 1); - float xSample = x0 + mix(-span, span, tSample); - float ySample = sin(xSample * localFreq - uTime * 2.4) * localAmp; - float d = length(vec2((xSample - x0) / 6.28318, ySample - y0)); - minDist = min(minDist, d); - } - - float thickness = 0.03; - float aa = fwidth(minDist); - float line = smoothstep(thickness + aa, thickness - aa, minDist); - - // Color: vibrant purple-magenta left → softer lavender right - vec3 leftColor = vec3(0.76, 0.22, 1.0); - vec3 midColor = vec3(0.58, 0.36, 0.96); - vec3 rightColor = vec3(0.62, 0.55, 0.82); - float t = smoothstep(0.0, 1.0, x); - vec3 color = mix(leftColor, midColor, smoothstep(0.0, 0.42, t)); - color = mix(color, rightColor, smoothstep(0.42, 1.0, t)); - - // Inside object: deeper blue shift - vec3 objColor = vec3(0.35, 0.30, 0.78); - color = mix(color, objColor, inObj * 0.65); - - gl_FragColor = vec4(color, line); - } -`,$M=` - uniform float uTime; - uniform float uIndex; - uniform float uObjectCenter; - uniform float uObjectRadius; - varying vec2 vUv; - - void main() { - float x = vUv.x; - float worldX = x * 12.0 - 6.0; - - float objDist = abs(x - uObjectCenter) / uObjectRadius; - float inObj = 1.0 - smoothstep(0.78, 1.12, objDist); - - float freq = mix(3.8, 3.8 * 2.8, inObj); - float amp = mix(0.17, 0.17 * 0.35, inObj); - - float phaseOff = uIndex * 0.45; - float ampScale = 0.5 - uIndex * 0.15; - - float wave = sin(worldX * freq * (0.98 + uIndex * 0.04) - uTime * 2.4 + phaseOff) * amp * ampScale; - float y = 0.5 + wave; - - float thickness = 0.008; - float dist = abs(vUv.y - y); - float line = smoothstep(thickness, thickness * 0.1, dist); - float glow = smoothstep(thickness * 12.0, thickness * 0.5, dist) * 0.15; - - vec3 color = vec3(0.6, 0.35, 0.95); - color = mix(color, vec3(0.35, 0.28, 0.72), inObj * 0.6); - - float t = smoothstep(0.0, 1.0, x); - float alphaGrad = mix(0.45, 0.08, t); - alphaGrad = mix(alphaGrad, max(alphaGrad, 0.35), inObj); - float edgeFade = smoothstep(0.0, 0.04, x) * smoothstep(1.0, 0.96, x); - - float alpha = (line * 0.3 + glow) * alphaGrad * edgeFade; - - gl_FragColor = vec4(color, alpha); - } -`,ZM=` - uniform float uTime; - varying vec2 vUv; - - void main() { - vec2 p = vUv - 0.5; - float r = length(p); - - float circleMask = 1.0 - smoothstep(0.42, 0.47, r); - - // Multiple internal resonance lines - float totalAlpha = 0.0; - vec3 totalColor = vec3(0.0); - - for (int i = 0; i < 5; i++) { - float fi = float(i); - float freq = 18.0 + fi * 1.0; - float speed = 1.4 + fi * 0.2 + sin(fract(uTime * 0.7 + fi * 1.3) * 6.28318) * 0.15; - float amp = 0.035 - fi * 0.018; - float yOff = (fi - 2.0) * 0.19; - - float phaseOffset = fract(uTime * 0.4 + fi * 0.9) * 6.28318; - float wave = sin(p.x * freq + uTime * speed + fi * 1.2 + phaseOffset) * amp; - float dist = abs(p.y - yOff - wave); - float line = smoothstep(0.010, 0.009, dist); - float glow = smoothstep(0.05, 0.002, dist) * 0.25; - - vec3 col = mix(vec3(0.35, 0.38, 0.62), vec3(0.5, 0.45, 0.75), fi / 2.0); - totalColor += col * (line + glow); - totalAlpha += (line * 0.6 + glow) * (0.7 - fi * 0.15); - } - - totalAlpha *= circleMask; - - gl_FragColor = vec4(totalColor, totalAlpha); - } -`,qM=` - uniform float uTime; - varying vec2 vUv; - - void main() { - vec2 p = vUv - 0.5; - float r = length(p); - - // Soft ring glow - float ring = smoothstep(0.50, 0.44, r) * smoothstep(0.38, 0.44, r); - float outerGlow = smoothstep(0.55, 0.42, r) * 0.15; - - // Subtle pulse - float pulse = 0.85 + 0.15 * sin(uTime * 1.2); - - vec3 color = vec3(0.5, 0.45, 0.72); - float alpha = (ring * 0.5 + outerGlow) * pulse; - - gl_FragColor = vec4(color, alpha); - } -`,HM=` - uniform float uTime; - uniform vec2 uResolution; - varying vec2 vUv; - - float hash(vec2 p) { - return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); - } - - void main() { - vec2 uv = vUv; - float aspect = uResolution.x / uResolution.y; - uv.x *= aspect; - - float brightness = 0.0; - - for (int i = 0; i < 60; i++) { - float fi = float(i); - vec2 seed = vec2(fi * 0.173, fi * 0.391); - vec2 pos = vec2(hash(seed) * aspect, hash(seed + 1.0)); - - // Gentle drift - pos.x += sin(uTime * 0.15 + fi * 0.5) * 0.02; - pos.y += cos(uTime * 0.12 + fi * 0.7) * 0.015; - - float d = length(uv - pos); - float size = 0.001 + hash(seed + 2.0) * 0.002; - float twinkle = 0.5 + 0.5 * sin(uTime * (0.5 + hash(seed + 3.0) * 1.5) + fi); - brightness += smoothstep(size, 0.0, d) * twinkle * (0.3 + hash(seed + 4.0) * 0.7); - } - - vec3 color = vec3(0.5, 0.45, 0.75) * brightness; - gl_FragColor = vec4(color, brightness * 0.5); - } -`,JM=Vi` - 0%, 100% { opacity: 0.6; } - 50% { opacity: 1; } -`,jM=a1.div` - position: absolute; - top: 14px; - left: 16px; - font-size: ${T1.fontSizes.canvasTitle}; - letter-spacing: 0.04em; - font-family: ${T1.fonts.mono}; - color: ${T1.colors.text}; - z-index: 20; - pointer-events: none; -`,KM=a1.div` - width: 100%; - height: 100%; - position: relative; - overflow: hidden; -`,YM=a1.div` - position: absolute; - inset: 0; - pointer-events: none; - display: flex; - flex-direction: column; -`,ey=a1.div` - display: flex; - align-items: flex-start; - justify-content: space-between; - padding: 1.5% 4% 0; - gap: 2%; - margin-top: 5%; -`,Y7=a1.div` - display: flex; - flex-direction: column; - align-items: ${({$align:e})=>e==="left"?"flex-start":"flex-end"}; - text-align: ${({$align:e})=>e}; - flex-shrink: 0; -`,e6=a1.span` - font-family: ${Vt.mono}; - font-size: clamp(1.2rem, 4vw, 2.7rem); - font-weight: 700; - color: ${xe.textPrimary}; - line-height: 1.2; -`,t6=a1.span` - font-family: ${Vt.monoShort}; - font-size: clamp(0.55rem, 1vw, 0.78rem); - font-weight: 400; - color: ${xe.textMuted}; - line-height: 1.2; -`,ty=a1.div` - position: absolute; - top: 35%; - right: 16%; -`,oy=a1.div` - position: absolute; - top: 35%; - left: 16%; -`,o6=a1.span` - font-family: ${Vt.monoShort}; - font-size: clamp(0.55rem, 1vw, 0.78rem); - font-weight: 500; - color: ${xe.textSecondary}; - background: ${xe.backgroundMedium}; - border: 1px solid ${xe.borderSecondary}; - border-radius: 6px; - padding: 3px 10px; - letter-spacing: 0.03em; -`,ry=a1.div` - position: absolute; - bottom: 15%; - right: 5%; - display: flex; - flex-direction: column; - align-items: flex-end; - gap: 2px; -`,sy=a1.span` - font-family: ${Vt.monoShort}; - font-size: clamp(0.42rem, 0.7vw, 0.55rem); - font-weight: 500; - color: ${xe.textTertiary}; - letter-spacing: 0.12em; - text-transform: uppercase; -`,iy=a1.div` - font-family: ${Vt.serif}; - font-size: clamp(.5rem, 2vw, 1.6rem); - color: ${xe.textPrimary}; - letter-spacing: 0.02em; - - i { - font-style: italic; - } -`,ny=a1.div` - position: absolute; - bottom: 9%; - left: 4%; - display: flex; - align-items: center; - gap: 8px; - font-family: ${Vt.monoShort}; - font-size: clamp(.3rem, 1.4vw, 10px); - color: ${xe.textLight}; - letter-spacing: 0.02em; -`,ay=a1.div` - display: flex; - flex-direction: column; - align-items: center; - text-align: center; - width: max-content; - max-width: min(42vw, 22rem); - padding: clamp(2px, 0.6vw, 6px) clamp(6px, 1vw, 12px); - border-radius: 8px; -`,ly=a1.span` - font-family: ${Vt.mono}; - font-size: clamp(.5rem, 0.8vw, 1rem); - font-weight: 700; - color: ${xe.textPrimary}; - line-height: 1.2; - margin-bottom: clamp(1px, 0.2vw, 3px); -`,uy=a1.span` - font-family: ${Vt.monoShort}; - font-size: clamp(0.4rem, .75vw, 0.88rem); - font-weight: 400; - color: ${xe.textMuted}; - line-height: 1.2; -`,r6=a1.span` - /* Additional styling if needed */ -`,s6=a1.span` - width: 4px; - height: 4px; - border-radius: 50%; - background: ${xe.dot}; - animation: ${JM} 3s ease-in-out infinite; -`,cy=()=>{const e=(0,_.useRef)(null),{size:t}=ce(),o=(0,_.useMemo)(()=>({uTime:{value:0},uResolution:{value:new p1(t.width,t.height)}}),[]);return A0(({clock:r})=>{e.current&&(e.current.uniforms.uTime.value=r.elapsedTime)}),(0,_.useEffect)(()=>{e.current&&e.current.uniforms.uResolution.value.set(t.width,t.height)},[t]),g("mesh",{position:[0,0,-.5],frustumCulled:!1,children:[g("planeGeometry",{args:[14,8]},void 0,!1,{fileName:q,lineNumber:449,columnNumber:7},void 0),g("shaderMaterial",{ref:e,uniforms:o,vertexShader:co,fragmentShader:HM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:q,lineNumber:450,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:448,columnNumber:5},void 0)},dy=()=>{const e=(0,_.useRef)(null),{size:t}=ce(),o=(0,_.useMemo)(()=>({uTime:{value:0},uObjectCenter:{value:.5},uObjectRadius:{value:.115},uResolution:{value:new p1(t.width,t.height)}}),[]);return A0(({clock:r})=>{e.current&&(e.current.uniforms.uTime.value=r.elapsedTime)}),g("mesh",{position:[0,-.35,.1],frustumCulled:!1,children:[g("planeGeometry",{args:[11.5,4]},void 0,!1,{fileName:q,lineNumber:481,columnNumber:7},void 0),g("shaderMaterial",{ref:e,uniforms:o,vertexShader:co,fragmentShader:QM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:q,lineNumber:482,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:480,columnNumber:5},void 0)},i6=({index:e})=>{const t=(0,_.useRef)(null),o=(0,_.useMemo)(()=>({uTime:{value:0},uIndex:{value:e},uObjectCenter:{value:.5},uObjectRadius:{value:.115}}),[e]);return A0(({clock:r})=>{t.current&&(t.current.uniforms.uTime.value=r.elapsedTime)}),g("mesh",{position:[0,-.35,.08-e*.01],frustumCulled:!1,children:[g("planeGeometry",{args:[11.5,4]},void 0,!1,{fileName:q,lineNumber:512,columnNumber:7},void 0),g("shaderMaterial",{ref:t,uniforms:o,vertexShader:co,fragmentShader:$M,transparent:!0,depthWrite:!1},void 0,!1,{fileName:q,lineNumber:513,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:511,columnNumber:5},void 0)},hy=()=>{const e=(0,_.useRef)(null),t=(0,_.useRef)(null),o=(0,_.useMemo)(()=>({uTime:{value:0}}),[]),r=(0,_.useMemo)(()=>({uTime:{value:0}}),[]);return A0(({clock:s})=>{e.current&&(e.current.uniforms.uTime.value=s.elapsedTime),t.current&&(t.current.uniforms.uTime.value=s.elapsedTime)}),g("group",{position:[0,-.35,.2],children:[g("mesh",{position:[0,0,-.02],children:[g("circleGeometry",{args:[1.55,128]},void 0,!1,{fileName:q,lineNumber:541,columnNumber:9},void 0),g("meshBasicMaterial",{color:"#2a2545",transparent:!0,opacity:.3},void 0,!1,{fileName:q,lineNumber:542,columnNumber:9},void 0)]},void 0,!0,{fileName:q,lineNumber:540,columnNumber:7},void 0),g("mesh",{children:[g("circleGeometry",{args:[1.28,128]},void 0,!1,{fileName:q,lineNumber:546,columnNumber:9},void 0),g("meshBasicMaterial",{color:"#181828",transparent:!0,opacity:.88},void 0,!1,{fileName:q,lineNumber:547,columnNumber:9},void 0)]},void 0,!0,{fileName:q,lineNumber:545,columnNumber:7},void 0),g("mesh",{position:[0,0,.03],children:[g("planeGeometry",{args:[3.2,3.2]},void 0,!1,{fileName:q,lineNumber:551,columnNumber:9},void 0),g("shaderMaterial",{ref:t,uniforms:r,vertexShader:co,fragmentShader:qM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:q,lineNumber:552,columnNumber:9},void 0)]},void 0,!0,{fileName:q,lineNumber:550,columnNumber:7},void 0),g("mesh",{position:[0,0,.05],children:[g("planeGeometry",{args:[2.56,2.56]},void 0,!1,{fileName:q,lineNumber:563,columnNumber:9},void 0),g("shaderMaterial",{ref:e,uniforms:o,vertexShader:co,fragmentShader:ZM,transparent:!0,depthWrite:!1},void 0,!1,{fileName:q,lineNumber:564,columnNumber:9},void 0)]},void 0,!0,{fileName:q,lineNumber:562,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:538,columnNumber:5},void 0)},fy=({from:e,to:t,headSize:o=.22,color:r="#4a4570",glowColor:s="#6b5acd"})=>{const i=(0,_.useMemo)(()=>{const n=new z(t[0]-e[0],t[1]-e[1],0).normalize(),a=new z(-n.y,n.x,0),l=new z(...t),u=l.clone().sub(n.clone().multiplyScalar(o)).add(a.clone().multiplyScalar(o*.48)),c=l.clone().sub(n.clone().multiplyScalar(o)).sub(a.clone().multiplyScalar(o*.48)),d=Math.max(.012,o*.08),h=new z(...e),f=l.clone().sub(n.clone().multiplyScalar(o*.15)),p=h.clone().add(a.clone().multiplyScalar(d)),m=h.clone().sub(a.clone().multiplyScalar(d)),b=f.clone().add(a.clone().multiplyScalar(d)),N=f.clone().sub(a.clone().multiplyScalar(d)),v=new Float32Array([p.x,p.y,0,m.x,m.y,0,b.x,b.y,0,m.x,m.y,0,N.x,N.y,0,b.x,b.y,0,l.x,l.y,0,u.x,u.y,0,c.x,c.y,0]),M=new i3;return M.setAttribute("position",new p2(v,3)),M.computeVertexNormals(),M},[e,t,o]);return g("group",{children:[g("mesh",{geometry:(0,_.useMemo)(()=>{const n=new z(t[0]-e[0],t[1]-e[1],0).normalize(),a=new z(-n.y,n.x,0),l=new z(...t),u=new z(...e),c=l.clone().sub(n.clone().multiplyScalar(o*.15)),d=Math.max(.04,o*.28),h=u.clone().add(a.clone().multiplyScalar(d)),f=u.clone().sub(a.clone().multiplyScalar(d)),p=c.clone().add(a.clone().multiplyScalar(d)),m=c.clone().sub(a.clone().multiplyScalar(d)),b=new Float32Array([h.x,h.y,0,f.x,f.y,0,p.x,p.y,0,f.x,f.y,0,m.x,m.y,0,p.x,p.y,0]),N=new i3;return N.setAttribute("position",new p2(b,3)),N},[e,t,o]),position:[0,0,.11],children:g("meshBasicMaterial",{color:s,transparent:!0,opacity:.08,side:2},void 0,!1,{fileName:q,lineNumber:633,columnNumber:9},void 0)},void 0,!1,{fileName:q,lineNumber:632,columnNumber:7},void 0),g("mesh",{geometry:i,position:[0,0,.12],children:g("meshBasicMaterial",{color:r,transparent:!0,opacity:.7,side:2},void 0,!1,{fileName:q,lineNumber:636,columnNumber:9},void 0)},void 0,!1,{fileName:q,lineNumber:635,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:631,columnNumber:5},void 0)},py=()=>g(fy,{from:[2.78,-1.85,0],to:[2.78,-1.38,0],headSize:.13,color:"#4a4570",glowColor:"#6b5acd"},void 0,!1,{fileName:q,lineNumber:643,columnNumber:3},void 0),my=()=>g(tu,{position:[0,1.7,0],transform:!0,center:!0,children:g(ay,{children:[g(ly,{children:"Target"},void 0,!1,{fileName:q,lineNumber:655,columnNumber:7},void 0),g(uy,{children:"(with its own electrical activity)"},void 0,!1,{fileName:q,lineNumber:656,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:654,columnNumber:5},void 0)},void 0,!1,{fileName:q,lineNumber:653,columnNumber:3},void 0),gy=()=>{const{camera:e,size:t}=ce(),o=t.width>=500;return(0,_.useEffect)(()=>{if(e.type==="OrthographicCamera"){const r=e;r.zoom=t.width/11,r.updateProjectionMatrix()}},[e,t]),g(Z0,{children:[g(cy,{},void 0,!1,{fileName:q,lineNumber:676,columnNumber:7},void 0),g(i6,{index:1},void 0,!1,{fileName:q,lineNumber:677,columnNumber:7},void 0),g(i6,{index:2},void 0,!1,{fileName:q,lineNumber:678,columnNumber:7},void 0),g(dy,{},void 0,!1,{fileName:q,lineNumber:679,columnNumber:7},void 0),g(hy,{},void 0,!1,{fileName:q,lineNumber:680,columnNumber:7},void 0),g(my,{},void 0,!1,{fileName:q,lineNumber:681,columnNumber:7},void 0),o?g(py,{},void 0,!1,{fileName:q,lineNumber:682,columnNumber:22},void 0):null]},void 0,!0,{fileName:q,lineNumber:675,columnNumber:5},void 0)},xw=()=>{const[e,t]=(0,_.useState)(()=>typeof window>"u"?!0:window.innerWidth>=500);return(0,_.useEffect)(()=>{const o=()=>t(window.innerWidth>=500);return o(),window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[]),g(A2,{aspectRatio:"1.7 / 1",children:g(KM,{children:[g(jM,{children:"Impedance"},void 0,!1,{fileName:q,lineNumber:707,columnNumber:9},void 0),g(go,{orthographic:!0,dpr:[1,2],camera:{position:[0,0,10]},gl:{antialias:!0,alpha:!0},children:g(gy,{},void 0,!1,{fileName:q,lineNumber:714,columnNumber:11},void 0)},void 0,!1,{fileName:q,lineNumber:708,columnNumber:9},void 0),g(YM,{children:[g(ey,{children:[g(Y7,{$align:"left",children:[g(e6,{children:"Tx"},void 0,!1,{fileName:q,lineNumber:721,columnNumber:13},void 0),g(t6,{children:"(transmit)"},void 0,!1,{fileName:q,lineNumber:722,columnNumber:13},void 0)]},void 0,!0,{fileName:q,lineNumber:720,columnNumber:11},void 0),g(Y7,{$align:"right",children:[g(e6,{children:"Rx"},void 0,!1,{fileName:q,lineNumber:725,columnNumber:13},void 0),g(t6,{children:"(receive)"},void 0,!1,{fileName:q,lineNumber:726,columnNumber:13},void 0)]},void 0,!0,{fileName:q,lineNumber:724,columnNumber:11},void 0)]},void 0,!0,{fileName:q,lineNumber:719,columnNumber:9},void 0),e?g(Z0,{children:[g(ty,{children:g(o6,{children:"Original + Imprint"},void 0,!1,{fileName:q,lineNumber:733,columnNumber:15},void 0)},void 0,!1,{fileName:q,lineNumber:732,columnNumber:13},void 0),g(oy,{children:g(o6,{children:"Original"},void 0,!1,{fileName:q,lineNumber:736,columnNumber:15},void 0)},void 0,!1,{fileName:q,lineNumber:735,columnNumber:13},void 0)]},void 0,!0,{fileName:q,lineNumber:731,columnNumber:11},void 0):null,g(ry,{children:[g(sy,{children:"Differential / Difference"},void 0,!1,{fileName:q,lineNumber:742,columnNumber:11},void 0),g(iy,{children:[g("i",{children:"dx"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:13},void 0)," = ",g("i",{children:"x"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:35},void 0),"(",g("i",{children:"t"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:44},void 0)," + ",g("i",{children:"dt"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:65},void 0),") − ",g("i",{children:"x"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:88},void 0),"(",g("i",{children:"t"},void 0,!1,{fileName:q,lineNumber:744,columnNumber:97},void 0),")"]},void 0,!0,{fileName:q,lineNumber:743,columnNumber:11},void 0)]},void 0,!0,{fileName:q,lineNumber:741,columnNumber:9},void 0),g(ny,{children:[g(s6,{},void 0,!1,{fileName:q,lineNumber:749,columnNumber:11},void 0),g(r6,{children:"λ (wavelength) compresses inside medium"},void 0,!1,{fileName:q,lineNumber:750,columnNumber:11},void 0),g(s6,{},void 0,!1,{fileName:q,lineNumber:751,columnNumber:11},void 0),g(r6,{children:"Amplitude attenuates"},void 0,!1,{fileName:q,lineNumber:752,columnNumber:11},void 0)]},void 0,!0,{fileName:q,lineNumber:748,columnNumber:9},void 0)]},void 0,!0,{fileName:q,lineNumber:717,columnNumber:7},void 0)]},void 0,!0,{fileName:q,lineNumber:706,columnNumber:7},void 0)},void 0,!1,{fileName:q,lineNumber:705,columnNumber:5},void 0)},Ys=(e,t,o)=>{const r=Number.isFinite(t)?t:0,s=Number.isFinite(o)?o:Number.MAX_VALUE,i=Math.min(r,s),n=Math.max(r,s);return Number.isFinite(e)?Math.max(i,Math.min(e,n)):i},ar=e=>{switch(e){case"GHz":return 1e9;case"MHz":return 1e6;case"kHz":return 1e3;default:return 1}},D3=e=>{const t=Math.abs(e);return t>=1e9?{value:e/1e9,unit:"GHz"}:t>=1e6?{value:e/1e6,unit:"MHz"}:t>=1e3?{value:e/1e3,unit:"kHz"}:{value:e,unit:"Hz"}},it=e=>e.includes(".")?e.replace(/\.?0+$/,""):e,vy=e=>Math.round(e).toLocaleString("en-US"),W5=(e,t=!0)=>{const o=typeof t=="boolean"?{showUnits:t}:t,r=o.showUnits??!0,s=o.precisionMHz??1,i=o.precisionGHz??1,n=o.precisionKHz??0,a=o.trimTrailingZeros??!1;if(e==null||Number.isNaN(e)||!Number.isFinite(e))return"---"+(r?"Hz":"");const l=Object.is(e,-0)?0:e,u=Math.abs(l);let c,d,h;l===0?(c=0,d="Hz",h=0):u<1e3?(c=l,d="Hz",h=0):u<1e6?(c=l/1e3,d="kHz",h=n):u<1e9?(c=l/1e6,d="MHz",h=s):(c=l/1e9,d="GHz",h=i);const f=Number(c.toFixed(h))===0?0:c;return(a?it(f.toFixed(h)):f.toFixed(h))+(r?d:"")},lr=e=>Number.isFinite(e)?vy(e):"0",xt=e=>Number.isFinite(e)?e.toFixed(3):"0",by=e=>e<3e5?"LF":e<3e6?"MF":e<3e7?"HF":e<3e8?"VHF":e<1e9?"Low end microwave (pre L band)":e<2e9?"L-band Microwave (1-2GHz)":e<4e9?"S-band Microwave (2-4GHz)":e<12e9?"X-band (8-12GHz)":"Microwave",r1="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/BodyAttenuationCanvas.tsx",Ny=Gi("body-attenuation-character.png"),Y1={transmitPowerDbm:-8,receivePowerDbm:-52,skinThicknessCm:.22,skullThicknessCm:.68,frequencyHz:1618e3,referenceFrequencyHz:1e6,exponent:.5,skinLossRefDbPerCm:1.1,skullLossRefDbPerCm:2.35,mediumLossRefDbPerCm:.09,minDistanceCm:3e3,maxDistanceCm:5e4},lt={width:2.91,height:5.32},My=1100,n6=` - uniform float uProgress; - uniform float uDirection; - uniform float uLift; - uniform float uCurlStrength; - - varying vec2 vUv; - varying float vPeel; - - void main() { - vUv = uv; - - float peelEdge = uDirection > 0.0 ? uv.x : 1.0 - uv.x; - float edgeWindow = pow(clamp(peelEdge, 0.0, 1.0), 0.72); - float verticalWindow = pow(sin(uv.y * 3.14159265), 0.8); - float progressWindow = pow(sin(uProgress * 3.14159265), 0.82); - float peel = edgeWindow * verticalWindow * progressWindow; - float hingeBias = smoothstep(0.08, 0.88, peelEdge); - - vec3 transformedPosition = position; - transformedPosition.z += peel * uLift + hingeBias * uCurlStrength * 0.22; - transformedPosition.x += uDirection * peel * (0.24 + uCurlStrength * 0.32); - transformedPosition.y += peel * peel * (0.14 + uCurlStrength * 0.22); - - vPeel = peel; - - gl_Position = projectionMatrix * modelViewMatrix * vec4(transformedPosition, 1.0); - } -`,yy=` - uniform sampler2D uTexture; - uniform float uProgress; - uniform float uGleamStrength; - - varying vec2 vUv; - varying float vPeel; - - vec3 rainbowGradient(float t) { - vec3 pink = vec3(1.0, 0.33, 0.76); - vec3 violet = vec3(0.72, 0.42, 1.0); - vec3 cyan = vec3(0.25, 0.9, 1.0); - vec3 lime = vec3(0.9, 1.0, 0.42); - vec3 gold = vec3(1.0, 0.82, 0.34); - - if (t < 0.25) { - return mix(pink, violet, smoothstep(0.0, 0.25, t)); - } - - if (t < 0.5) { - return mix(violet, cyan, smoothstep(0.25, 0.5, t)); - } - - if (t < 0.75) { - return mix(cyan, lime, smoothstep(0.5, 0.75, t)); - } - - return mix(lime, gold, smoothstep(0.75, 1.0, t)); - } - - void main() { - vec4 sampleColor = texture2D(uTexture, vUv); - if (sampleColor.a < 0.01) { - discard; - } - - float t = uProgress * 6.2831853; - float yCurve = pow(abs(vUv.y - 0.5) * 2.0, 1.9); - float archCenter = 0.22 + 0.10 * yCurve + 0.008 * sin(t * 0.21); - float archBand = exp(-pow((vUv.x - archCenter) * 5.8, 2.0)); - float innerGlow = exp(-pow((vUv.x - (archCenter - 0.035)) * 10.0, 2.0)); - float outerGlow = exp(-pow((vUv.x - (archCenter + 0.04)) * 8.2, 2.0)); - - float rippleA = sin(vUv.x * 10.0 + vUv.y * 4.0 + t * 0.22); - float rippleB = sin(vUv.x * 5.0 - vUv.y * 7.5 - t * 0.14); - float rippleC = sin(vUv.x * 2.8 + vUv.y * 11.0 + t * 0.08); - float ripple = 0.5 + 0.10 * rippleA + 0.07 * rippleB + 0.05 * rippleC; - float peelMask = smoothstep(0.03, 0.2, vPeel); - float edgeGlow = pow(1.0 - clamp(abs(vUv.y - 0.5) * 1.8, 0.0, 1.0), 3.2); - float fresnel = pow(edgeGlow, 1.6); - float highlight = pow(clamp(ripple, 0.0, 1.0), 2.8) * (0.12 + fresnel * 0.32); - float shimmerShape = (archBand * 0.46 + innerGlow * 0.24 + outerGlow * 0.20 + highlight * 0.28) * peelMask; - float alphaMask = sampleColor.a * uGleamStrength; - - vec3 paperShadow = vec3(0.80, 0.82, 0.84); - vec3 paperMid = vec3(0.88, 0.90, 0.92); - vec3 paperLight = vec3(0.95, 0.96, 0.97); - vec3 tint = mix(paperShadow, paperMid, clamp(archBand * 0.75 + ripple * 0.20, 0.0, 1.0)); - tint = mix(tint, paperLight, fresnel * 0.24 + highlight * 0.42); - - float alpha = clamp((0.035 + shimmerShape * 0.20 + fresnel * 0.08) * alphaMask, 0.0, 0.34); - vec3 color = tint * (0.74 + shimmerShape * 0.18) + paperLight * (fresnel * 0.10 + highlight * 0.12); - color *= smoothstep(0.0, 0.02, sampleColor.a); - - gl_FragColor = vec4(color, alpha); - } -`,xy=` - uniform sampler2D uTexture; - uniform float uProgress; - uniform float uGleamStrength; - - varying vec2 vUv; - varying float vPeel; - - vec3 iridescentGradient(float t) { - vec3 white = vec3(1.0, 1.0, 1.0); - vec3 pearl = vec3(0.95, 0.92, 1.0); - vec3 silver = vec3(0.88, 0.90, 0.94); - vec3 blush = vec3(1.0, 0.94, 0.96); - vec3 ice = vec3(0.92, 0.97, 1.0); - - if (t < 0.25) return mix(white, pearl, smoothstep(0.0, 0.25, t)); - if (t < 0.5) return mix(pearl, ice, smoothstep(0.25, 0.5, t)); - if (t < 0.75) return mix(ice, blush, smoothstep(0.5, 0.75, t)); - return mix(blush, silver, smoothstep(0.75, 1.0, t)); - } - - void main() { - vec4 sampleColor = texture2D(uTexture, vUv); - float alphaFactor = smoothstep(0.0, 0.02, sampleColor.a); - - float peelMask = smoothstep(0.02, 0.18, vPeel); - float edgeLight = pow(clamp(vPeel, 0.0, 1.0), 1.15) * 0.2 * alphaFactor; - - // Vertical gleam sweep (top to bottom) during flip - float shimmerHead = mix(-0.2, 1.2, smoothstep(0.0, 1.0, uProgress)); - float shimmerBand = exp(-pow((vUv.y - shimmerHead) * 8.5, 2.0)); - float shimmerCore = exp(-pow((vUv.y - shimmerHead) * 18.0, 2.0)); - float shimmerTrail = exp(-pow((vUv.y - (shimmerHead - 0.16)) * 5.5, 2.0)); - - float shimmerMask = (shimmerBand * 0.9 + shimmerCore * 0.85 + shimmerTrail * 0.5) * peelMask * uGleamStrength * alphaFactor; - - // Iridescent tint - float iridCoord = clamp(vUv.x * 0.5 + vUv.y * 0.8 + uProgress * 0.3, 0.0, 1.0); - vec3 iridColor = iridescentGradient(iridCoord); - - vec3 shimmerOverlay = iridColor * shimmerMask; - vec3 specular = vec3(1.0, 0.99, 0.96) * shimmerCore * peelMask * uGleamStrength * 0.8 * alphaFactor; - - vec3 finalColor = sampleColor.rgb + shimmerOverlay + specular + vec3(edgeLight); - - gl_FragColor = vec4(finalColor, sampleColor.a); - } -`,Sy=` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); - } -`,Ty=` - uniform float uTime; - uniform float uFlipX; - uniform float uFlipFromSide; - uniform float uFlipProgress; - uniform sampler2D uBodyTexture; - uniform vec4 uBodyRect; - varying vec2 vUv; - - float sampleBodyOriented(vec2 uv, float side) { - vec2 bodyUv = (uv - uBodyRect.xy) / uBodyRect.zw; - if (bodyUv.x < 0.0 || bodyUv.x > 1.0 || bodyUv.y < 0.0 || bodyUv.y > 1.0) return 0.0; - if (side < 0.0) bodyUv.x = 1.0 - bodyUv.x; - return texture2D(uBodyTexture, bodyUv).a; - } - - float sampleBody(vec2 uv) { - if (uFlipProgress < 0.01) { - return sampleBodyOriented(uv, uFlipX); - } - // Blend between from-side and to-side silhouettes during flip - float fromAlpha = sampleBodyOriented(uv, uFlipFromSide); - float toAlpha = sampleBodyOriented(uv, -uFlipFromSide); - return mix(fromAlpha, toAlpha, uFlipProgress); - } - - float bodyEdge(vec2 uv, float radius) { - float center = sampleBody(uv); - float maxNeighbor = 0.0; - for (float dx = -1.0; dx <= 1.0; dx += 1.0) { - for (float dy = -1.0; dy <= 1.0; dy += 1.0) { - if (dx == 0.0 && dy == 0.0) continue; - maxNeighbor = max(maxNeighbor, sampleBody(uv + vec2(dx, dy) * radius)); - } - } - return maxNeighbor * (1.0 - center); - } - - void main() { - float speed = 0.35; - float progress = mod(uTime * speed, 2.2) - 0.6; - - float bodyAlpha = sampleBody(vUv); - bool insideBody = bodyAlpha > 0.15; // Two Radio wave arc ripples (Double Pulse) - float arcOffset = 0.25 * pow(abs(vUv.y - 0.5) * 2.0, 2.2); - float dist1 = (vUv.x + arcOffset) - progress; - float dist2 = (vUv.x + arcOffset) - (progress - 0.12); - - float bodyStrength1 = smoothstep(0.015, 0.0, dist1) * smoothstep(-0.35, 0.0, dist1); - float bodyStrength2 = smoothstep(0.015, 0.0, dist2) * smoothstep(-0.35, 0.0, dist2); - float bodyStrength = max(bodyStrength1, bodyStrength2); - - // Background center line that ripples into two diverging/converging sine waves - float centerY = 0.5; - // They peak together at vUv.x = 0.48 (body position) with longer wavelengths (approx 1 cycle shown) - float sineDist1 = sin((vUv.x - 0.48) * 7.5 - uTime * 8.0) * bodyStrength * 0.15; - float sineDist2 = sin((vUv.x - 0.48) * 5.0 - uTime * 8.0) * bodyStrength * 0.15; - - float lineMask1 = smoothstep(0.007, 0.0, abs(vUv.y - centerY - sineDist1)); - float lineMask2 = smoothstep(0.007, 0.0, abs(vUv.y - centerY - sineDist2)); - - // Brighten the intersection point for constructive interference feel - float intersection = lineMask1 * lineMask2; - vec3 lineColor = mix(vec3(0.66, 0.18, 0.9) * 0.48, vec3(1.0, 0.88, 1.0), intersection * 0.82); - float bgLineAlpha = max(lineMask1, lineMask2) * 0.65; - - // Rippling distortion for volume - float ripple1 = sin((vUv.x * 7.5) - (uTime * 2.6) + (vUv.y * 2.8)); - float ripple2 = sin((vUv.x * 13.0) + (vUv.y * 4.0) - (uTime * 4.2)); - float ripple3 = sin((vUv.x * 4.0) - (vUv.y * 9.0) + (uTime * 1.5)); - float ripple = ripple1 * 0.42 + ripple2 * 0.33 + ripple3 * 0.25; - float wave = ripple * 0.5 + 0.5; - - float edge = smoothstep(0.02, 0.0, abs(dist1)) + smoothstep(0.02, 0.0, abs(dist2)); - float edgeFalloff = smoothstep(0.18, -0.06, dist1) + smoothstep(0.18, -0.06, dist2); - float bodyDepth = smoothstep(0.0, 0.78, bodyStrength); - - float fresnel = pow(1.0 - clamp(abs(vUv.y - 0.5) * 1.9, 0.0, 1.0), 2.4); - float crest = pow(wave, 4.0) * edge * 0.6; - float trough = (1.0 - wave) * bodyStrength * 0.08; - float caustics = smoothstep(0.28, 0.96, wave) * bodyStrength * 0.12; - - float alpha = (bodyStrength * 0.02 + caustics + crest + fresnel * 0.22) * clamp(edgeFalloff, 0.0, 1.0); - // Incorporate background lines - alpha = max(alpha, bgLineAlpha); - - alpha *= smoothstep(-0.15, 0.15, vUv.x + arcOffset - progress + 0.5); - alpha *= smoothstep(1.15, 0.85, vUv.x); - - // Suppress wave inside the silhouette - if (insideBody) { - alpha = 0.0; - } - - // Silhouette edge outline glow when wave front is near - float edgeDetect = bodyEdge(vUv, 0.008); - float waveFrontX = progress - arcOffset; - float nearWave = smoothstep(0.4, 0.0, abs(vUv.x - waveFrontX)); - // The outline hits 100% only when the wave is exactly wiping over it - float outlineAlpha = edgeDetect * nearWave * 0.9; - - // Purple force field palette - vec3 darkCore = vec3(0.04, 0.02, 0.06); - vec3 midTone = vec3(0.38, 0.18, 0.6); - vec3 brightEdge = vec3(0.85, 0.6, 0.98); - vec3 hotWhite = vec3(1.0, 0.92, 1.0); - - vec3 waveBody = mix(darkCore, midTone, wave * 0.5 + bodyDepth * 0.3); - vec3 edgeGlow = mix(midTone, brightEdge, fresnel * 0.8 + crest * 1.0); - vec3 color = mix(waveBody, edgeGlow, clamp(fresnel + crest * 0.9, 0.0, 1.0)); - color += hotWhite * edge * 0.35; - color += vec3(0.03) * trough; - color = mix(color, lineColor, bgLineAlpha); - - // Replace outline color with iridescent-to-white sweep - // Same iridescent soap bubble core palette used in the text - vec3 a = vec3(0.5, 0.5, 0.5); - vec3 b = vec3(0.5, 0.5, 0.5); - vec3 c = vec3(1.0, 1.0, 1.0); - vec3 d = vec3(0.00, 0.33, 0.67); - float paletteInput = vUv.x * 0.5 - uTime * 0.8; - vec3 iridescentOutline = a + b * cos(6.28318 * (c * paletteInput + d)); - - // Core of the contour is pure white, edge bleeds into iridescence - float coreHighlight = smoothstep(0.2, 0.0, abs(vUv.x - waveFrontX)); - vec3 outlineColor = mix(iridescentOutline, vec3(1.0, 1.0, 1.0), coreHighlight); - - // Mathematically correct semi-transparent blending (avoids making low-alpha edges appear black/muddy) - float finalAlpha = clamp(alpha + outlineAlpha, 0.0, 0.95); - if (finalAlpha > 0.0) { - color = mix(color, outlineColor, outlineAlpha / finalAlpha); - } - - gl_FragColor = vec4(color, finalAlpha); - } -`,wy=({bodyTexture:e,facingSide:t,flipEffect:o})=>{const r=(0,_.useRef)(null),s=(0,_.useMemo)(()=>{const a=lt.width/2,l=lt.height/2,u=(0-a+5)/10,c=(-.55-l+3.25)/6.5,d=lt.width/10,h=lt.height/6.5;return{uTime:{value:0},uFlipX:{value:1},uFlipFromSide:{value:1},uFlipProgress:{value:0},uBodyTexture:{value:e},uBodyRect:{value:new S1(u,c,d,h)}}},[e]);return(0,_.useEffect)(()=>{r.current&&(r.current.uniforms.uBodyTexture.value=e)},[e]),A0(i=>{r.current&&(r.current.uniforms.uTime.value=i.clock.elapsedTime,r.current.uniforms.uFlipX.value=t,r.current.uniforms.uFlipFromSide.value=o.active?o.fromSide:t,r.current.uniforms.uFlipProgress.value=o.active?o.progress:0)}),g("mesh",{position:[0,0,-.5],frustumCulled:!1,children:[g("planeGeometry",{args:[10,6.5]},void 0,!1,{fileName:r1,lineNumber:370,columnNumber:7},void 0),g("shaderMaterial",{ref:r,uniforms:s,vertexShader:Sy,fragmentShader:Ty,transparent:!0,depthWrite:!1,blending:2},void 0,!1,{fileName:r1,lineNumber:371,columnNumber:7},void 0)]},void 0,!0,{fileName:r1,lineNumber:369,columnNumber:5},void 0)},Bt={left:-4.35,right:4.35,top:2.72,bottom:-2.7},Me={centerX:0,centerY:-.38,radiusX:1.08,radiusY:2.22},ho=(e,t,o)=>Math.min(o,Math.max(t,e)),ei=e=>`${e>=0?"+":""}${e.toFixed(2)}dBm`,a6=e=>`${(e/100).toFixed(0)}m away`,_y=e=>{const t=ho((e-Me.centerX)/Me.radiusX,-1,1),o=Math.sqrt(Math.max(0,1-t*t));return Me.centerY+o*Me.radiusY},Ay=(e,t)=>{const o=ho(e,Bt.left,Bt.right),r=Bt.bottom+.18,s=Math.abs(o-Me.centerX)<=Me.radiusX,i=_y(o)+.12,n=ho(s?Math.max(t,i):t,r,Bt.top);return new p1(o,n)},Cy=(e,t)=>{const o=Math.pow(Y1.frequencyHz/Y1.referenceFrequencyHz,Y1.exponent),r=e*Y1.mediumLossRefDbPerCm*.015*o,s=t*Y1.mediumLossRefDbPerCm*.015*o,i=(Y1.skinThicknessCm*Y1.skinLossRefDbPerCm+Y1.skullThicknessCm*Y1.skullLossRefDbPerCm)*.18*o,n=(Y1.skinThicknessCm*Y1.skinLossRefDbPerCm+Y1.skullThicknessCm*Y1.skullLossRefDbPerCm)*.12*o,a=-22,l=a+r,u=a-n;return{endpointA:l,entry:a,exit:u,receive:u-s,distanceLossA:r,distanceLossB:s,bodyEntryLoss:i,bodyTraversalLoss:n}},ti=(e,t)=>{const o=Ay(e,t),r=Ku(o.x,Bt.left,Bt.right,3e3,Y1.maxDistanceCm,Y1.minDistanceCm,Y1.maxDistanceCm),s=Yu(o.y,Bt.bottom,Bt.top,3e3,Y1.maxDistanceCm,Y1.minDistanceCm,Y1.maxDistanceCm);return{markerX:o.x,markerY:o.y,endpointADistance:r,endpointBDistance:s,txDistance:r,rxDistance:s,side:o.x{const t=Me.centerX-Me.radiusX,o=Me.centerX+Me.radiusX,r=(1-ho((e.markerX-t)/(o-t),0,1))*180;return Ft.degToRad(r)},oi=e=>e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2,By=e=>1-(1-e)*(1-e),Ey=({facingSide:e,flipEffect:t,texture:o})=>{const r=(0,_.useRef)(null),s=(0,_.useRef)(null),i=(0,_.useMemo)(()=>({uTexture:{value:o},uProgress:{value:0},uDirection:{value:e},uLift:{value:0},uCurlStrength:{value:0},uGleamStrength:{value:0}}),[o]),n=(0,_.useMemo)(()=>({uTexture:{value:o},uProgress:{value:0},uDirection:{value:e},uLift:{value:0},uCurlStrength:{value:0},uGleamStrength:{value:0}}),[o]);(0,_.useEffect)(()=>{r.current&&(r.current.uniforms.uTexture.value=o),s.current&&(s.current.uniforms.uTexture.value=o)},[o]),A0(()=>{const m=t.active?oi(t.progress):0,b=Math.sin(m*Math.PI),N=Math.sin(m*Math.PI)*1.55,v=Math.sin(m*Math.PI)*1.2,M=t.active?t.fromSide:e;i.uProgress.value=m,i.uDirection.value=M,i.uLift.value=1.8*b,i.uCurlStrength.value=N,i.uGleamStrength.value=v,n.uProgress.value=m,n.uDirection.value=M,n.uLift.value=1.8*b,n.uCurlStrength.value=N,n.uGleamStrength.value=v,r.current&&(r.current.uniforms.uProgress.value=m,r.current.uniforms.uDirection.value=M,r.current.uniforms.uLift.value=1.8*b,r.current.uniforms.uCurlStrength.value=N,r.current.uniforms.uGleamStrength.value=v),s.current&&(s.current.uniforms.uProgress.value=m,s.current.uniforms.uDirection.value=M,s.current.uniforms.uLift.value=1.8*b,s.current.uniforms.uCurlStrength.value=N,s.current.uniforms.uGleamStrength.value=v)});const a=t.active?oi(t.progress):0,l=Math.sin(a*Math.PI),u=.08+l*.28,c=1+l*.55,d=t.active?t.fromSide:e,h=t.active?oi(t.progress)*Math.PI:0,f=t.active?By(Math.sin(a*Math.PI))*.65:0,p=1+l*.05;return g("group",{position:[0,-.55,.15],children:[g("mesh",{position:[0,-2.72,-.18],rotation:[-Math.PI/2,0,0],scale:[c,1+l*.18,1],frustumCulled:!1,children:[g("planeGeometry",{args:[lt.width*1.22,2.05]},void 0,!1,{fileName:r1,lineNumber:582,columnNumber:9},void 0),g("meshBasicMaterial",{color:"#161922",transparent:!0,opacity:u,depthWrite:!1},void 0,!1,{fileName:r1,lineNumber:583,columnNumber:9},void 0)]},void 0,!0,{fileName:r1,lineNumber:581,columnNumber:7},void 0),g("group",{rotation:[0,h,0],scale:[d*p,p,1],position:[0,l*.22,f],children:[g("mesh",{frustumCulled:!1,children:[g("planeGeometry",{args:[lt.width,lt.height,48,72]},void 0,!1,{fileName:r1,lineNumber:588,columnNumber:11},void 0),g("shaderMaterial",{ref:r,uniforms:i,vertexShader:n6,fragmentShader:xy,transparent:!0,side:2,depthWrite:!1},void 0,!1,{fileName:r1,lineNumber:589,columnNumber:11},void 0)]},void 0,!0,{fileName:r1,lineNumber:587,columnNumber:9},void 0),g("mesh",{position:[0,0,.01],renderOrder:999,frustumCulled:!1,children:[g("planeGeometry",{args:[lt.width,lt.height,48,72]},void 0,!1,{fileName:r1,lineNumber:601,columnNumber:11},void 0),g("shaderMaterial",{ref:s,uniforms:n,vertexShader:n6,fragmentShader:yy,transparent:!0,side:2,depthWrite:!1,depthTest:!1,blending:2},void 0,!1,{fileName:r1,lineNumber:602,columnNumber:11},void 0)]},void 0,!0,{fileName:r1,lineNumber:600,columnNumber:9},void 0)]},void 0,!0,{fileName:r1,lineNumber:586,columnNumber:7},void 0)]},void 0,!0,{fileName:r1,lineNumber:580,columnNumber:5},void 0)},Uy=` - varying vec2 vUv; - varying vec3 vWorldPosition; - void main() { - vUv = uv; - vec4 worldPos = modelMatrix * vec4(position, 1.0); - vWorldPosition = worldPos.xyz; - gl_Position = projectionMatrix * viewMatrix * worldPos; - } -`,Wy=` - uniform sampler2D uTexture; - uniform float uTime; - varying vec2 vUv; - varying vec3 vWorldPosition; - - void main() { - vec4 texColor = texture2D(uTexture, vUv); - if (texColor.a < 0.1) discard; - - float speed = 0.35; - float cycle = mod(uTime * speed, 2.2); - // Align wave progression identically to RadioWave - float progress = cycle - 0.6; - float normalizedX = vWorldPosition.x / 10.0 + 0.5; - - // Wavefront UV is 'progress'. Dist < 0 means wave has passed. - // Use local vUv.x to give the digit itself a sense of being 'swiped' into existence - // as the wave front overtakes its horizontal span. - float dist = normalizedX - progress; - float localWipeShift = (vUv.x - 0.5) * 0.15; // slightly lead the wipe across the char width - float revealedThisCycle = smoothstep(0.12, -0.05, dist + localWipeShift); - - // Fade to zero gracefully as the cycle approaches its very end (between 2.0 and 2.2) - float fadeOut = smoothstep(2.2, 1.9, cycle); - - // Sum previous cycle fade with current cycle reveal, clamp to 1.0. - float totalReveal = clamp(revealedThisCycle * fadeOut, 0.0, 1.0); - - // Purple Iridescent Palette - vec3 a = vec3(0.5, 0.4, 0.6); - vec3 b = vec3(0.4, 0.2, 0.5); - vec3 c = vec3(1.0, 1.0, 1.0); - vec3 d = vec3(0.35, 0.1, 0.5); - float paletteInput = totalReveal + vWorldPosition.x * 0.15 - uTime * 0.6; - vec3 iridescent = a + b * cos(6.28318 * (c * paletteInput + d)); - - // Brightness highlight - float highlight = smoothstep(0.1, -0.05, dist) * smoothstep(-0.5, -0.05, dist); - vec3 litColor = mix(iridescent, vec3(1.0, 0.9, 1.0), 0.5 + highlight * 0.5); - - // Base color heavily darkened - vec3 baseColor = vec3(0.08, 0.04, 0.12); - - // Completely hide until wiped over! - float finalAlpha = texColor.a * totalReveal; - gl_FragColor = vec4(litColor, finalAlpha); - } -`,Ly=({x:e,y:t,widthWorld:o})=>{const[r,s]=(0,_.useState)(0);A0(({clock:d})=>{const h=Math.floor(d.elapsedTime*.35/2.2);h!==r&&s(h)});const{texture:i,width:n,height:a}=(0,_.useMemo)(()=>{const d=r4(2),h=document.createElement("canvas"),f=h.getContext("2d");if(!f)return{texture:null,width:1,height:1};const p=90+Math.random()*110,m=p,b=d.split("");let N=0;const v=b.map((S,R)=>{const w=p-(p-m)*(R/Math.max(1,b.length-1));f.font=`normal ${w}px "JetBrains Mono", monospace`;const W=f.measureText(S).width+w*.05;return N+=W,{char:S,size:w,charW:W}}),M=p*1.3;h.width=Math.ceil(N),h.height=Math.ceil(M),f.fillStyle="#ffffff",f.textBaseline="middle";let T=0;v.forEach(({char:S,size:R,charW:w})=>{f.font=`normal ${R}px "JetBrains Mono", monospace`,f.fillText(S,T,M/2),T+=w});const x=new I6(h);return x.colorSpace=F0,x.minFilter=Z1,x.magFilter=Z1,x.generateMipmaps=!0,{texture:x,width:o,height:o*(h.height/h.width)}},[r,o]),l=(0,_.useRef)(null),u=(0,_.useMemo)(()=>({uTexture:{value:i},uTime:{value:0}}),[]);(0,_.useEffect)(()=>{l.current&&i&&(l.current.uniforms.uTexture.value=i,l.current.uniformsNeedUpdate=!0)},[i]);const c=(0,_.useRef)(null);return A0(({clock:d})=>{if(l.current&&(l.current.uniforms.uTime.value=d.elapsedTime),c.current){const h=d.elapsedTime*.35%2.2,f=h-.6,p=e,m=(f-.5)*10,b=Math.max(p,m-.05);c.current.position.x=b;const N=b/10+.5,v=N+.25*Math.pow(Math.abs(t/6.5)*2,2.2),M=v-f,T=v-(f-.12),x=Math.max(Math.max(0,1-Math.abs(M*8)),Math.max(0,1-Math.abs(T*8))),S=(Math.sin((N-.48)*7.5-d.elapsedTime*8)+Math.sin((N-.48)*5-d.elapsedTime*8))*.75*x;c.current.position.y=t+.38+S;const R=h>1.92||h<.1,w=b>p-.02;c.current.visible=w&&!R}}),i?g("mesh",{ref:c,position:[e,t,.65],children:[g("planeGeometry",{args:[n,a]},void 0,!1,{fileName:r1,lineNumber:813,columnNumber:7},void 0),g("shaderMaterial",{ref:l,uniforms:u,vertexShader:Uy,fragmentShader:Wy,transparent:!0,depthWrite:!1,blending:2},void 0,!1,{fileName:r1,lineNumber:814,columnNumber:7},void 0)]},void 0,!0,{fileName:r1,lineNumber:812,columnNumber:5},void 0):null},Oy=()=>{const e=(0,_.useMemo)(()=>({y:-.63,x:1.2000000000000002,widthWorld:1.2}),[]);return e?g("group",{children:g(Ly,{x:e.x,y:e.y,widthWorld:e.widthWorld},void 0,!1,{fileName:r1,lineNumber:848,columnNumber:7},void 0)},void 0,!1,{fileName:r1,lineNumber:847,columnNumber:5},void 0):null},Fy=({characterFacingSide:e,flipEffect:t,metrics:o,model:r,previewMetrics:s,onPointerDown:i,onPointerMove:n,onPointerUp:a})=>{const l=Q6(Ny),{size:u,camera:c}=ce();(0,_.useEffect)(()=>{if(c.type==="OrthographicCamera"){const p=c;p.zoom=u.width/10,p.updateProjectionMatrix()}},[u,c]),(0,_.useEffect)(()=>{l.colorSpace=F0,l.anisotropy=8,l.wrapS=Ot,l.wrapT=Ot,l.minFilter=Z1,l.magFilter=Z1,l.generateMipmaps=!1,l.needsUpdate=!0},[l]);const d=(0,_.useCallback)(p=>{p.stopPropagation(),i(p.point)},[i]),h=(0,_.useCallback)(p=>{p.stopPropagation(),n(p.point)},[n]),f=(0,_.useCallback)(p=>{p?.stopPropagation?.(),a()},[a]);return g(Z0,{children:[g("ambientLight",{intensity:.9},void 0,!1,{fileName:r1,lineNumber:903,columnNumber:7},void 0),g("directionalLight",{position:[0,0,3],intensity:1.25,color:"#ffffff"},void 0,!1,{fileName:r1,lineNumber:904,columnNumber:7},void 0),g(wy,{bodyTexture:l,facingSide:e,flipEffect:t},void 0,!1,{fileName:r1,lineNumber:908,columnNumber:7},void 0),g("mesh",{position:[0,0,.2],onPointerDown:d,onPointerMove:h,onPointerUp:f,onPointerMissed:f,children:[g("planeGeometry",{args:[9.8,6.2]},void 0,!1,{fileName:r1,lineNumber:917,columnNumber:9},void 0),g("meshBasicMaterial",{transparent:!0,opacity:.001,depthWrite:!1},void 0,!1,{fileName:r1,lineNumber:918,columnNumber:9},void 0)]},void 0,!0,{fileName:r1,lineNumber:910,columnNumber:7},void 0),g(L1,{position:[-4.2,2.62,.35],fontSize:.24,color:"#1e1e26",anchorX:"left",anchorY:"middle",fontWeight:700,text:"Endpoint A (Tx)"},void 0,!1,{fileName:r1,lineNumber:921,columnNumber:7},void 0),g(L1,{position:[-4.2,2.37,.35],fontSize:.17,color:"#3a3a42",anchorX:"left",anchorY:"middle",fontWeight:500,text:`${ei(r.endpointA)} / ${a6(o.txDistance)}`},void 0,!1,{fileName:r1,lineNumber:922,columnNumber:7},void 0),g(L1,{position:[0,2.55,.35],fontSize:.26,color:"#1a1a22",anchorX:"center",anchorY:"middle",fontWeight:700,text:"Target"},void 0,!1,{fileName:r1,lineNumber:924,columnNumber:7},void 0),g(L1,{position:[4.2,2.62,.35],fontSize:.24,color:"#1e1e26",anchorX:"right",anchorY:"middle",fontWeight:700,text:"Endpoint B (Rx)"},void 0,!1,{fileName:r1,lineNumber:926,columnNumber:7},void 0),g(L1,{position:[4.2,2.37,.35],fontSize:.17,color:"#3a3a42",anchorX:"right",anchorY:"middle",fontWeight:500,text:a6(o.rxDistance)},void 0,!1,{fileName:r1,lineNumber:927,columnNumber:7},void 0),g(Ey,{facingSide:e,flipEffect:t,texture:l},void 0,!1,{fileName:r1,lineNumber:929,columnNumber:7},void 0),g(Oy,{},void 0,!1,{fileName:r1,lineNumber:931,columnNumber:7},void 0),g("group",{position:[s.markerX,s.markerY,1.2],rotation:[0,0,Ry(s)],renderOrder:1e3,children:g(L1,{position:[0,0,0],fontSize:.52,color:"#3d3d3d",anchorX:"center",anchorY:"middle",fontWeight:700,text:"➤"},void 0,!1,{fileName:r1,lineNumber:934,columnNumber:9},void 0)},void 0,!1,{fileName:r1,lineNumber:933,columnNumber:7},void 0),g(L1,{position:[-3,.55,.45],fontSize:.42,color:"#1a1a22",anchorX:"center",anchorY:"middle",fontWeight:900,letterSpacing:-.02,text:ei(r.entry)},void 0,!1,{fileName:r1,lineNumber:937,columnNumber:7},void 0),g(L1,{position:[-3,.22,.45],fontSize:.16,color:"#3a3a42",anchorX:"right",anchorY:"middle",fontWeight:500,text:"Entry"},void 0,!1,{fileName:r1,lineNumber:938,columnNumber:7},void 0),g(L1,{position:[3,-2,.45],fontSize:.42,color:"#1a1a22",anchorX:"center",anchorY:"middle",fontWeight:900,letterSpacing:-.02,text:ei(r.receive)},void 0,!1,{fileName:r1,lineNumber:940,columnNumber:7},void 0),g(L1,{position:[3,-2.33,.45],fontSize:.16,color:"#3a3a42",anchorX:"left",anchorY:"middle",fontWeight:500,text:"Power at Rx"},void 0,!1,{fileName:r1,lineNumber:941,columnNumber:7},void 0),g(L1,{position:[-4.2,-2.18,.45],fontSize:.26,color:"#1a1a22",anchorX:"left",anchorY:"middle",fontWeight:900,letterSpacing:-.02,text:W5(Y1.frequencyHz/1e6)},void 0,!1,{fileName:r1,lineNumber:943,columnNumber:7},void 0),g(L1,{position:[-4.2,-2.45,.45],fontSize:.15,color:"#3a3a42",anchorX:"left",anchorY:"middle",fontWeight:500,letterSpacing:-.01,text:`${by(Y1.frequencyHz)} frequency`},void 0,!1,{fileName:r1,lineNumber:945,columnNumber:7},void 0)]},void 0,!0,{fileName:r1,lineNumber:901,columnNumber:5},void 0)},Sw=()=>{const[e,t]=(0,_.useState)(!1),[o,r]=(0,_.useState)(()=>ti(2.1,1.1)),[s,i]=(0,_.useState)(()=>ti(2.1,1.1)),[n,a]=(0,_.useState)(1),[l,u]=(0,_.useState)({active:!1,fromSide:1,toSide:1,progress:0}),c=(0,_.useMemo)(()=>Cy(o.txDistance,o.rxDistance),[o.txDistance,o.rxDistance]),d=(0,_.useCallback)(m=>ti(m.x,m.y),[]),h=(0,_.useCallback)(m=>{const b=d(m);t(!0),i(b),r(b)},[d]),f=(0,_.useCallback)(m=>{const b=d(m);i(b),e&&(b.side!==n&&!l.active&&u({active:!0,fromSide:n,toSide:b.side,progress:0}),r(b))},[n,e,l.active,d]),p=(0,_.useCallback)(()=>{t(!1)},[]);return(0,_.useEffect)(()=>{const m=()=>t(!1);return window.addEventListener("pointerup",m),()=>window.removeEventListener("pointerup",m)},[]),(0,_.useEffect)(()=>{if(!l.active)return;let m=0;const b=performance.now(),N=l.toSide,v=M=>{const T=ho((M-b)/My,0,1);if(T>=1){a(N),u({active:!1,fromSide:N,toSide:N,progress:0});return}u(x=>x.active?{...x,progress:T}:x),m=window.requestAnimationFrame(v)};return m=window.requestAnimationFrame(v),()=>{window.cancelAnimationFrame(m)}},[l.active,l.toSide]),g(A2,{aspectRatio:"10 / 6.4",children:g("div",{style:{width:"100%",height:"100%",position:"relative"},children:[g("div",{style:{position:"absolute",top:-9999,left:-9999,visibility:"hidden"},children:[g("span",{children:"Endpoint A (Tx)"},void 0,!1,{fileName:r1,lineNumber:1047,columnNumber:11},void 0),g("span",{children:"Endpoint B (Rx)"},void 0,!1,{fileName:r1,lineNumber:1048,columnNumber:11},void 0),g("span",{children:"+24.0 dBm"},void 0,!1,{fileName:r1,lineNumber:1049,columnNumber:11},void 0),g("span",{children:"-48.0 dBm"},void 0,!1,{fileName:r1,lineNumber:1050,columnNumber:11},void 0),g("span",{children:"tx distance"},void 0,!1,{fileName:r1,lineNumber:1051,columnNumber:11},void 0),g("span",{children:"rx distance"},void 0,!1,{fileName:r1,lineNumber:1052,columnNumber:11},void 0),g("span",{children:"frequency"},void 0,!1,{fileName:r1,lineNumber:1053,columnNumber:11},void 0),g("span",{children:"13.56 MHz"},void 0,!1,{fileName:r1,lineNumber:1054,columnNumber:11},void 0),g("span",{children:"total path loss"},void 0,!1,{fileName:r1,lineNumber:1055,columnNumber:11},void 0),g("span",{children:"drag inside the panel to move the target cursor"},void 0,!1,{fileName:r1,lineNumber:1056,columnNumber:11},void 0),g("img",{src:"data:image/png;base64,",alt:"Body attenuation visualization"},void 0,!1,{fileName:r1,lineNumber:1057,columnNumber:11},void 0)]},void 0,!0,{fileName:r1,lineNumber:1046,columnNumber:9},void 0),g(go,{orthographic:!0,dpr:[1,2],camera:{position:[0,0,10]},gl:{antialias:!0,alpha:!0},style:{cursor:"none",touchAction:"none"},children:g(_.Suspense,{fallback:null,children:g(Fy,{characterFacingSide:n,flipEffect:l,metrics:o,model:c,previewMetrics:s,onPointerDown:h,onPointerMove:f,onPointerUp:p},void 0,!1,{fileName:r1,lineNumber:1067,columnNumber:13},void 0)},void 0,!1,{fileName:r1,lineNumber:1066,columnNumber:11},void 0)},void 0,!1,{fileName:r1,lineNumber:1059,columnNumber:9},void 0)]},void 0,!0,{fileName:r1,lineNumber:1045,columnNumber:7},void 0)},void 0,!1,{fileName:r1,lineNumber:1044,columnNumber:5},void 0)},Py=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],l6=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function Dy(e){if(e<=255)return Py[e];let t=0,o=l6.length-1;for(;t<=o;){const r=t+o>>1,s=l6[r];if(es[1]){t=r+1;continue}return s[2]}return"L"}function ky(e){const t=e.length;if(t===0)return null;const o=new Array(t);let r=!1;for(let u=0;u=55296&&c<=56319&&u+1=56320&&p<=57343&&(d=(c-55296<<10)+(p-56320)+65536,h=2)}const f=Dy(d);(f==="R"||f==="AL"||f==="AN")&&(r=!0);for(let p=0;p=0&&o[c]==="ET";c--)o[c]="EN";for(c=u+1;c0?o[u-1]:a,h=c0&&t.charCodeAt(t.length-1)===32&&(t=t.slice(0,-1)),t}function Qy(e){return/[\r\f]/.test(e)?e.replace(/\r\n/g,` -`).replace(/[\r\f]/g,` -`):e}var ri=null,$y;function Zy(){return ri===null&&(ri=new Intl.Segmenter($y,{granularity:"word"})),ri}var qy=new RegExp("\\p{Script=Arabic}","u"),Qt=new RegExp("\\p{M}","u"),Dn=new RegExp("\\p{Nd}","u");function u6(e){return qy.test(e)}function c6(e){return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=177983||e>=177984&&e<=178207||e>=178208&&e<=183983||e>=183984&&e<=191471||e>=191472&&e<=192093||e>=194560&&e<=195103||e>=196608&&e<=201551||e>=201552&&e<=205743||e>=205744&&e<=210041||e>=63744&&e<=64255||e>=12288&&e<=12351||e>=12352&&e<=12447||e>=12448&&e<=12543||e>=12592&&e<=12687||e>=44032&&e<=55215||e>=65280&&e<=65519}function Je(e){for(let t=0;t=55296&&o<=56319&&t+1=56320&&r<=57343){if(c6((o-55296<<10)+(r-56320)+65536))return!0;t++;continue}}if(c6(o))return!0}}return!1}function Hy(e){const t=To(e);return t!==null&&(kn.has(t)||_2.has(t))}var Jy=new Set([" "," ","⁠","\uFEFF"]),jy=new Set(["-","‐","–","—"]);function Ky(e){const t=To(e);return t!==null&&Jy.has(t)}function Yy(e){const t=To(e);return t!==null&&jy.has(t)}function L5(e,t){return Ky(e)?!1:t?!(Hy(e)||Yy(e)):!0}var kn=new Set([",",".","!",":",";","?","、","。","・",")","〕","〉","》","」","』","】","〗","〙","〛","ー","々","〻","ゝ","ゞ","ヽ","ヾ"]),Kr=new Set(['"',"(","[","{","¡","¿","“","‘","‚","„","«","‹","⸘","(","〔","〈","《","「","『","【","〖","〘","〚"]),Xn=new Set(["'","’"]),_2=new Set([".",",","!","?",":",";","،","؛","؟","।","॥","၊","။","၌","၍","၏",")","]","}","%",'"',"”","’","»","›","…"]),ex=new Set([":",".","،","؛"]),tx=new Set(["၏"]),ox=new Set(["”","’","»","›","」","』","】","》","〉","〕",")"]);function rx(e){if(In(e))return!0;let t=!1;for(const o of e){if(_2.has(o)||es(o)){t=!0;continue}if(!(t&&Qt.test(o)))return!1}return t}function sx(e){for(const t of e)if(!kn.has(t)&&!_2.has(t))return!1;return e.length>0}function ix(e){if(In(e))return!0;for(const t of e)if(!Kr.has(t)&&!Xn.has(t)&&!Qt.test(t)&&!es(t))return!1;return e.length>0}function In(e){let t=!1;for(const o of e)if(!(o==="\\"||Qt.test(o))){if(Kr.has(o)||_2.has(o)||Xn.has(o)){t=!0;continue}return!1}return t}function Yr(e,t){const o=t-1;if(o<=0)return Math.max(o,0);const r=e.charCodeAt(o);if(r<56320||r>57343)return o;const s=o-1;if(s<0)return o;const i=e.charCodeAt(s);return i>=55296&&i<=56319?s:o}function To(e){if(e.length===0)return null;const t=Yr(e,e.length);return e.slice(t)}function nx(e){for(const t of e)if(!Qt.test(t))return t;return null}function ax(e){for(let t=e.length;t>0;){const o=Yr(e,t),r=e.slice(o,t);if(!Qt.test(r))return r;t=o}return null}var lx=[36,37,43,43,92,92,162,165,176,177,1423,1423,1545,1547,1642,1642,2046,2047,2546,2547,2553,2555,2801,2801,3065,3065,3449,3449,3647,3647,6107,6107,8240,8247,8279,8279,8352,8399,8451,8451,8457,8457,8470,8470,8722,8723,43064,43064,65020,65020,65129,65130,65284,65285,65504,65505,65509,65510,73693,73696,123647,123647,126124,126124,126128,126128];function ux(e,t){for(let o=0;o=t[o]&&e<=t[o+1])return!0;return!1}function es(e){const t=e.codePointAt(0);return t!==void 0&&ux(t,lx)}function cx(e){const t=ax(e);return t!==null&&es(t)}function dx(e){const t=nx(e);return t!==null&&Dn.test(t)}function hx(e){const t=Array.from(e);let o=t.length;for(;o>0;){const r=t[o-1];if(Qt.test(r)){o--;continue}if(Kr.has(r)||Xn.has(r)){o--;continue}break}return o<=0||o===t.length?null:{head:t.slice(0,o).join(""),tail:t.slice(o).join("")}}function fx(e,t,o){return o==="text"&&!t&&e.length===1&&e!=="-"&&e!=="—"?e:null}function d6(e,t,o,r){const s=t[r],i=e[r];if(s==null)return i;const n=o[r];if(i.length===n)return i;const a=s.repeat(n);return e[r]=a,a}function h6(e,t){return e&&t!==null&&ex.has(t)}function px(e){const t=To(e);return t!==null&&tx.has(t)}function mx(e){if(e.length<2||e[0]!==" ")return null;const t=e.slice(1);return new RegExp("^\\p{M}+$","u").test(t)?{space:" ",marks:t}:null}function Xi(e){let t=e.length;for(;t>0;){const o=Yr(e,t),r=e.slice(o,t);if(ox.has(r))return!0;if(!_2.has(r))return!1;t=o}return!1}function gx(e,t){if(t.preserveOrdinarySpaces||t.preserveHardBreaks){if(e===" ")return"preserved-space";if(e===" ")return"tab";if(t.preserveHardBreaks&&e===` -`)return"hard-break"}return e===" "?"space":e===" "||e===" "||e==="⁠"||e==="\uFEFF"?"glue":e==="​"?"zero-width-break":e==="­"?"soft-hyphen":"text"}var vx=/[\x20\t\n\xA0\xAD\u200B\u202F\u2060\uFEFF]/;function Se(e){return e.length===1?e[0]:e.join("")}function bx(e,t){const o=[];for(let r=e.length-1;r>=0;r--)o.push(e[r]);return o.push(t),Se(o)}function Nx(e,t,o,r){if(!vx.test(e))return[{text:e,isWordLike:t,kind:"text",start:o}];const s=[];let i=null,n=[],a=o,l=!1,u=0;for(const c of e){const d=gx(c,r),h=d==="text"&&t;if(i!==null&&d===i&&h===l){n.push(c),u+=c.length;continue}i!==null&&s.push({text:Se(n),isWordLike:l,kind:i,start:a}),i=d,n=[c],a=o+u,l=h,u+=c.length}return i!==null&&s.push({text:Se(n),isWordLike:l,kind:i,start:a}),s}function Ii(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var Mx=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function yx(e,t){const o=e.texts[t];return o.startsWith("www.")?!0:Mx.test(o)&&t+1=e.len||Ii(e.kinds[a]))continue;const l=[],u=e.starts[a];let c=a;for(;c0&&(t.push(Se(l)),o.push(!0),r.push("text"),s.push(u),i=c-1)}return{len:t.length,texts:t,isWordLike:o,kinds:r,starts:s}}var wx=new Set([":","-","/","×",",",".","+","–","—"]),_x=/[\p{P}\p{S}\p{Co}]/u,Ax=new RegExp("\\p{Emoji_Presentation}","u"),Cx=new Set(["?","֊","-","‐","‒","–","—","…","‼","‽","⁉"]);function Rx(e){return e>=33&&e<=47&&e!==45||e>=58&&e<=64&&e!==63||e>=91&&e<=96||e>=123&&e<=126}function O5(e){const t=e.charCodeAt(0);return t<128?Rx(t):!Cx.has(e)&&!Ax.test(e)&&_x.test(e)}function f6(e){let t=!1;for(const o of e)if(!Qt.test(o)){if(!O5(o))return!1;t=!0}return t}function Bx(e){for(let t=e.length;t>0;){const o=Yr(e,t),r=e.slice(o,t);if(Qt.test(r)){t=o;continue}return O5(r)||es(r)}return!1}function Ex(e,t,o,r){const s=!t&&f6(e),i=!r&&f6(o),n=cx(e),a=(t||n)&&Bx(e);return!s&&!i&&!a||Je(e)||Je(o)?!1:(t||s||n)&&(r||i)}function F5(e){for(const t of e)if(Dn.test(t))return!0;return!1}function Pr(e){if(e.length===0)return!1;for(const t of e)if(!(Dn.test(t)||wx.has(t)))return!1;return!0}function Ux(e){const t=[],o=[],r=[],s=[];for(let i=0;ii+1){t.push(Se(u)),o.push(d),r.push("text"),s.push(e.starts[i]),i=c;continue}}t.push(n),o.push(l),r.push(a),s.push(e.starts[i]),i++}return{len:t.length,texts:t,isWordLike:o,kinds:r,starts:s}}function Lx(e){const t=[],o=[],r=[],s=[];for(let i=0;i1;for(let u=0;u0&&l[L]==="text"&&W&&h[L]&&p[L]||R&&s>0&&l[L]==="text"&&sx(S.text)&&h[L]||R&&s>0&&l[L]==="text"&&m[L]?D():R&&s>0&&l[L]==="text"&&S.isWordLike&&O&&b[L]?(D(),a[L]=!0):w!==null&&s>0&&l[L]==="text"&&c[L]===w?d[L]=(d[L]??1)+1:R&&!S.isWordLike&&s>0&&l[L]==="text"&&!h[L]&&(rx(S.text)||S.text==="-"&&a[L])?D():(i[s]=S.text,n[s]=[S.text],a[s]=S.isWordLike,l[s]=S.kind,u[s]=S.start,c[s]=w,d[s]=w===null?0:1,h[s]=W,f[s]=O,p[s]=X,m[s]=Q,b[s]=h6(O,F),s++)}for(let x=0;xnull);let v=-1;for(let x=s-1;x>=0;x--){const S=i[x];if(S.length!==0){if(l[x]==="text"&&!a[x]&&v>=0&&l[v]==="text"&&(ix(S)||S==="-"&&dx(i[v]))){const R=N[v]??[];R.push(S),N[v]=R,u[v]=u[x],i[x]="";continue}v=x}}for(let x=0;x=0&&!L5(t.texts[h-1],o)&&d(h),a<0&&(a=h),l=l||Je(f);continue}d(h),r.push(f),s.push(t.isWordLike[h]),i.push(p),n.push(t.starts[h])}return d(t.len),{len:r.length,texts:r,isWordLike:s,kinds:i,starts:n}}function Xx(e,t,o="normal",r="normal"){const s=zy(o),i=s.mode==="pre-wrap"?Qy(e):Vy(e);if(i.length===0)return{normalized:i,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};const n=Px(i,t,s),a=r==="keep-all"?kx(i,n,t.breakKeepAllAfterPunctuation):n;return{normalized:i,chunks:Dx(a,s),...a}}var q2=null,p6=new Map,H2=null,Ix=96,Gx=new RegExp("\\p{Emoji_Presentation}","u"),zx=/[\p{Emoji_Presentation}\p{Extended_Pictographic}\p{Regional_Indicator}\uFE0F\u20E3]/u,si=null,m6=new Map;function Gn(){if(q2!==null)return q2;if(typeof OffscreenCanvas<"u")return q2=new OffscreenCanvas(1,1).getContext("2d"),q2;if(typeof document<"u")return q2=document.createElement("canvas").getContext("2d"),q2;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Vx(e){let t=p6.get(e);return t||(t=new Map,p6.set(e,t)),t}function Et(e,t){let o=t.get(e);return o===void 0&&(o={width:Gn().measureText(e).width,containsCJK:Je(e)},t.set(e,o)),o}function ts(){if(H2!==null)return H2;if(typeof navigator>"u")return H2={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,breakKeepAllAfterPunctuation:!0,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},H2;const e=navigator.userAgent,t=navigator.vendor==="Apple Computer, Inc."&&e.includes("Safari/")&&!e.includes("Chrome/")&&!e.includes("Chromium/")&&!e.includes("CriOS/")&&!e.includes("FxiOS/")&&!e.includes("EdgiOS/"),o=e.includes("Chrome/")||e.includes("Chromium/")||e.includes("CriOS/")||e.includes("Edg/");return H2={lineFitEpsilon:t?1/64:.005,carryCJKAfterClosingQuote:o,breakKeepAllAfterPunctuation:!t,preferPrefixWidthsForBreakableRuns:t,preferEarlySoftHyphenBreak:t},H2}function Qx(e){const t=e.match(/(\d+(?:\.\d+)?)\s*px/);return t?parseFloat(t[1]):16}function P5(){return si===null&&(si=new Intl.Segmenter(void 0,{granularity:"grapheme"})),si}function $x(e){return Gx.test(e)||e.includes("️")}function Zx(e){return zx.test(e)}function qx(e,t){let o=m6.get(e);if(o!==void 0)return o;const r=Gn();r.font=e;const s=r.measureText("😀").width;if(o=0,s>t+.5&&typeof document<"u"&&document.body!==null){const i=document.createElement("span");i.style.font=e,i.style.display="inline-block",i.style.visibility="hidden",i.style.position="absolute",i.textContent="😀",document.body.appendChild(i);const n=i.getBoundingClientRect().width;document.body.removeChild(i),s-n>.5&&(o=s-n)}return m6.set(e,o),o}function Hx(e){let t=0;const o=P5();for(const r of o.segment(e))$x(r.segment)&&t++;return t}function Jx(e,t){return t.emojiCount===void 0&&(t.emojiCount=Hx(e)),t.emojiCount}function h2(e,t,o){return o===0?t.width:t.width-Jx(e,t)*o}function jx(e,t,o,r,s){if(t.breakableFitAdvances!==void 0&&t.breakableFitMode===s)return t.breakableFitAdvances;t.breakableFitMode=s;const i=P5(),n=[];for(const c of i.segment(e))n.push(c.segment);if(n.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(s==="sum-graphemes"){const c=[];for(const d of n){const h=Et(d,o);c.push(h2(d,h,r))}return t.breakableFitAdvances=c,t.breakableFitAdvances}if(s==="pair-context"||n.length>Ix){const c=[];let d=null,h=0;for(const f of n){const p=h2(f,Et(f,o),r);if(d===null)c.push(p);else{const m=d+f,b=Et(m,o);c.push(h2(m,b,r)-h)}d=f,h=p}return t.breakableFitAdvances=c,t.breakableFitAdvances}const a=[];let l="",u=0;for(const c of n){l+=c;const d=Et(l,o),h=h2(l,d,r);a.push(h-u),u=h}return t.breakableFitAdvances=a,t.breakableFitAdvances}function Kx(e,t){const o=Gn();o.font=e;const r=Vx(e),s=Qx(e);return{cache:r,fontSize:s,emojiCorrection:t?qx(e,s):0}}function Yx(e){return e==="space"||e==="zero-width-break"||e==="soft-hyphen"}function D5(e){return e==="space"||e==="preserved-space"||e==="tab"||e==="zero-width-break"||e==="soft-hyphen"}function k5(e,t,o=e.widths.length){for(;t0?e.letterSpacing:0}function zn(e,t){return t===0?0:e+t}function oS(e,t){return e.letterSpacing!==0&&e.spacingGraphemeCounts[t]>0?e.letterSpacing:0}function rS(e,t,o,r,s){return zn(r,t==="tab"?s+oS(e,o):e.lineEndFitAdvances[o])}function g6(e,t,o,r){return zn(r,t==="tab"?0:e.lineEndFitAdvances[o])}function v6(e,t,o,r,s){return zn(r,t==="tab"?s:e.lineEndPaintAdvances[o])}function sS(e,t,o){return e.letterSpacing!==0&&t?o+e.letterSpacing:o}function iS(e,t){return e.letterSpacing===0?t:t+e.letterSpacing}function Dr(e,t,o){let r=t;for(;r0)return e.spacingGraphemeCounts[r]>0?e.letterSpacing:0;for(let i=r-1;i>=t;i--){const n=e.kinds[i];if(!(n==="space"||n==="zero-width-break"||n==="hard-break")){if(n==="soft-hyphen"){if(i===r-1)return 0;continue}return i===t&&o>0||e.spacingGraphemeCounts[i]>0?e.letterSpacing:0}}return 0}function aS(e,t,o,r,s,i){return t+nS(e,o,r,s,i)}function lS(e,t){return X5(e,t)}function uS(e,t,o){const{widths:r,kinds:s,breakableFitAdvances:i,breakablePreferredBreaks:n}=e;if(r.length===0)return 0;const a=t+ts().lineFitEpsilon;let l=0,u=0,c=!1,d=0,h=0,f=0,p=0,m=-1,b=0;function N(){m=-1,b=0}function v(w=f,W=p,O=u){l++,o?.(O,d,h,w,W),u=0,c=!1,N()}function M(w,W){c=!0,d=w,h=0,f=w+1,p=0,u=W}function T(w,W,O){c=!0,d=w,h=W,f=w,p=W+1,u=O}function x(w,W){if(!c){M(w,W);return}u+=W,f=w+1,p=0}function S(w,W){const O=i[w],F=n[w]??null;let X=F===null?-1:Dr(F,0,W+1),Q=-1,L=0,D=W;for(;Da){if(F!==null&&Q>W){v(w,Q,L),D=Q,X=Dr(F,X,D+1),Q=-1,L=0;continue}v(),T(w,D,$)}else u+=$,f=w,p=D+1;const k=D+1;F!==null&&F[X]===k&&(Q=k,L=u,X++),D++}c&&f===w&&p===O.length&&(f=w+1,p=0)}let R=0;for(;R=r.length));){const w=r[R],W=s[R],O=D5(W);if(!c){w>a&&i[R]!==null?S(R,0):M(R,w),O&&(m=R+1,b=u-w),R++;continue}if(u+w>a){if(O){x(R,w),v(R+1,0,u-w),R++;continue}if(m>=0){if(f>m||f===m&&p>0){v();continue}v(m,0,b);continue}if(w>a&&i[R]!==null){v(),S(R,0),R++;continue}v();continue}x(R,w),O&&(m=R+1,b=u-w),R++}return c&&v(),l}function X5(e,t,o){if(e.simpleLineWalkFastPath)return uS(e,t,o);const{widths:r,kinds:s,breakableFitAdvances:i,breakablePreferredBreaks:n,discretionaryHyphenWidth:a,chunks:l}=e;if(r.length===0||l.length===0)return 0;const u=ts(),c=t+u.lineFitEpsilon;let d=0,h=0,f=!1,p=0,m=0,b=0,N=0,v=-1,M=0,T=0,x=null;function S(){v=-1,M=0,T=0,x=null}function R(){return x==="soft-hyphen"&&v===b&&N===0?T:h}function w(D=b,$=N,k){d++,o!==void 0&&o(aS(e,k??R(),p,m,D,$),p,m,D,$),h=0,f=!1,S()}function W(D,$){f=!0,p=D,m=0,b=D+1,N=0,h=$}function O(D,$,k){f=!0,p=D,m=$,b=D,N=$+1,h=k}function F(D,$){if(!f){W(D,$);return}h+=$,b=D+1,N=0}function X(D,$,k,c1,h1,g1){if(!$)return;const E1=g6(e,D,k,h1),H=v6(e,D,k,h1,c1);v=k+1,M=h-g1+E1,T=h-g1+H,x=D}function Q(D,$){const k=i[D],c1=n[D]??null;let h1=c1===null?-1:Dr(c1,0,$+1),g1=-1,E1=0,H=$;for(;Hc){if(c1!==null&&g1>$){w(D,g1,E1),H=g1,h1=Dr(c1,h1,H+1),g1=-1,E1=0;continue}w(),O(D,H,J)}else h=y1,b=D,N=H+1}const q1=H+1;c1!==null&&c1[h1]===q1&&(g1=q1,E1=h,h1++),H++}f&&b===D&&N===k.length&&(b=D+1,N=0)}function L(D){d++,o?.(0,D.startSegmentIndex,0,D.consumedEndSegmentIndex,0),S()}for(let D=0;D=$.endSegmentIndex));){const c1=s[k],h1=D5(c1),g1=tS(e,f,k),E1=c1==="tab"?eS(h+g1,e.tabStopAdvance):r[k],H=g1+E1,J=rS(e,c1,k,g1,E1);if(c1==="soft-hyphen"){f&&(b=k+1,N=0,v=k+1,M=h+a,T=h+a,x=c1),k++;continue}if(!f){J>c&&i[k]!==null?Q(k,0):W(k,E1),X(c1,h1,k,E1,g1,H),k++;continue}if(h+J>c){const q1=h+g6(e,c1,k,g1),I=h+v6(e,c1,k,g1,E1);if(x==="soft-hyphen"&&u.preferEarlySoftHyphenBreak&&M<=c){w(v,0,T);continue}if(h1&&q1<=c){F(k,H),w(k+1,0,I),k++;continue}if(v>=0&&M<=c){if(b>v||b===v&&N>0){w();continue}const y1=v;w(y1,0,T),k=y1;continue}if(J>c&&i[k]!==null){w(),Q(k,0),k++;continue}w();continue}F(k,H),X(c1,h1,k,E1,g1,H),k++}if(f){const c1=v===$.consumedEndSegmentIndex?T:h;w($.consumedEndSegmentIndex,0,c1)}}return d}var ii=null,b6=new WeakMap;function cS(){return ii===null&&(ii=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ii}function N6(e,t,o){let r=o.get(e);if(r!==void 0)return r;r=[];const s=cS();for(const i of s.segment(t[e]))r.push(i.segment);return o.set(e,r),r}function dS(e,t,o){return o>t&&e[o-1]==="soft-hyphen"}function M6(e,t,o,r){for(let s=o;s0){const u=N6(l,e.segments,t);n=M6(n,u,r,u.length)}else n+=e.segments[l];if(i>0){a&&(n+="-");const l=N6(s,e.segments,t);n=M6(n,l,o===s?r:0,i)}else a&&(n+="-");return n}var ni=null;function Vn(){return ni===null&&(ni=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ni}function pS(e){return e?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],breakablePreferredBreaks:[],letterSpacing:0,spacingGraphemeCounts:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],breakablePreferredBreaks:[],letterSpacing:0,spacingGraphemeCounts:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function mS(e,t){const o=[];let r=[],s=0,i=!1,n=!1,a=!1;function l(){r.length!==0&&(o.push({text:r.length===1?r[0]:r.join(""),start:s}),r=[],i=!1,n=!1,a=!1)}function u(d,h,f){r=[d],s=h,i=f,n=Xi(d),a=Kr.has(d)}function c(d,h){r.push(d),i=i||h;const f=Xi(d);d.length===1&&_2.has(d)?n=n||f:n=f,a=!1}for(const d of Vn().segment(e)){const h=d.segment,f=Je(h);if(r.length===0){u(h,d.index,f);continue}if(a||kn.has(h)||_2.has(h)||t.carryCJKAfterClosingQuote&&f&&n){c(h,f);continue}if(!i&&!f){c(h,f);continue}l(),u(h,d.index,f)}return l(),o}function gS(e,t,o){if(t.length<=1)return t;const r=[];let s=-1,i=!1;function n(l,u){const c=t[l].start,d=u=0&&!L5(t[l-1].text,o)&&a(l),s<0&&(s=l),i=i||Je(u.text)}return a(t.length),r}function y6(e,t){if(t==="zero-width-break"||t==="soft-hyphen"||t==="hard-break")return 0;if(t==="tab")return 1;let o=0;const r=Vn();for(const s of r.segment(e))o++;return o}function vS(e){return e==="-"||e==="֊"||e==="‐"||e==="‒"||e==="–"||e==="—"}function bS(e){if(!/[-\u058A\u2010\u2012\u2013\u2014]/u.test(e))return null;const t=[];let o=0;for(const r of Vn().segment(e))o++,vS(r.segment)&&t.push(o);return t.length===0?null:t}function NS(e,t,o){return t>1?e+(t-1)*o:e}function MS(e,t,o,r,s){const i=ts(),{cache:n,emojiCorrection:a}=Kx(t,Zx(e.normalized)),l=h2("-",Et("-",n),a)+(s===0?0:s*2),u=h2(" ",Et(" ",n),a)*8,c=s!==0;if(e.len===0)return pS(o);const d=[],h=[],f=[],p=[];let m=e.chunks.length<=1&&!c;const b=o?[]:null,N=[],v=[],M=[],T=o?[]:null,x=Array.from({length:e.len});function S(O,F,X,Q,L,D,$,k,c1){L!=="text"&&L!=="space"&&L!=="zero-width-break"&&(m=!1),d.push(F),h.push(X),f.push(Q),p.push(L),b?.push(D),N.push($),v.push(k),c&&M.push(c1),T!==null&&T.push(O)}function R(O,F,X,Q,L){const D=Et(O,n),$=c?y6(O,F):0,k=NS(h2(O,D,a),$,s),c1=F==="space"||F==="preserved-space"||F==="zero-width-break"?0:k,h1=c1===0?0:c1+($>0?s:0),g1=F==="space"||F==="zero-width-break"?0:k;if(L&&Q&&O.length>1){let E1="sum-graphemes";s!==0?E1="segment-prefixes":Pr(O)?E1="pair-context":i.preferPrefixWidthsForBreakableRuns&&(E1="segment-prefixes");const H=jx(O,D,n,a,E1);S(O,k,h1,g1,F,X,H,H===null||r==="keep-all"?null:bS(O),$);return}S(O,k,h1,g1,F,X,null,null,$)}for(let O=0;O{r.push(wS(e,s,n,a,l,u,c))});return{lineCount:i,height:i*o,lines:r}}var AS=e=>{const{text:t,font:o,fontSize:r=16,whiteSpace:s="normal"}=e,i=(0,_.useRef)(null),n=(0,_.useRef)(null),a=(0,_.useMemo)(()=>{try{const h=r?`${r}px ${o}`:o;return SS(t,h,{whiteSpace:s})}catch{return null}},[t,o,r,s]);i.current=a;const l=(0,_.useMemo)(()=>{if(!a)return null;try{const h=document.createElement("canvas").getContext("2d");if(!h)return null;h.font=r?`${r}px ${o}`:o;const f=h.measureText(t);return{width:f.width,height:r*1.2,ascent:f.actualBoundingBoxAscent||r*.8,descent:f.actualBoundingBoxDescent||r*.2,lineHeight:r*1.2}}catch{return null}},[a,t,o,r]);n.current=l;const u=(0,_.useCallback)((h,f)=>{if(!a)return{width:0,height:0,lineCount:0};try{const p=TS(a,h,f||r*1.2);return{width:h,height:p.height,lineCount:p.lineCount}}catch{return{width:0,height:0,lineCount:0}}},[a,r]),c=(0,_.useCallback)((h,f)=>{if(!a)return{width:0,height:0,lineCount:0,lines:[]};try{const p=_S(a,h,f||r*1.2);return{width:h,height:p.height,lineCount:p.lines.length,lines:p.lines.map(m=>({text:m.text,width:m.width,startIndex:0,endIndex:m.text.length}))}}catch{return{width:0,height:0,lineCount:0,lines:[]}}},[a,r]),d=(0,_.useCallback)((h=window.devicePixelRatio||1)=>l?{...l,width:l.width*h,height:l.height*h,ascent:l.ascent*h,descent:l.descent*h,lineHeight:l.lineHeight*h}:null,[l]);return{layout:u,layoutWithLines:c,metrics:n.current,isReady:!!a,getDPIScaledMetrics:d}},J1=_.forwardRef(({text:e,font:t="Inter, sans-serif",fontSize:o=16,color:r="#000000",maxWidth:s,lineHeight:i,whiteSpace:n="normal",x:a=0,y:l=0,anchorX:u="left",anchorY:c="top",rotation:d=0,opacity:h=1},f)=>{const{layout:p,layoutWithLines:m,metrics:b,isReady:N}=AS({text:e,font:t,fontSize:o,color:r,maxWidth:s,lineHeight:i,whiteSpace:n}),v=(0,_.useRef)({x:a,y:l,width:0,height:0}),M=(0,_.useCallback)(x=>{if(!N||!b)return;x.save(),x.translate(a,l),d!==0&&x.rotate(d*Math.PI/180),x.globalAlpha=h,x.font=`${o}px ${t}`,x.fillStyle=r,x.textAlign=u,x.textBaseline=c==="middle"?"middle":c==="bottom"?"bottom":"top";let S=0,R=0;if((u==="center"||u==="right")&&(S=0),(c==="middle"||c==="bottom")&&(R=0),s){const w=p(s,i||o*1.2);m(s,i||o*1.2).lines.forEach((W,O)=>{const F=R+O*(i||o*1.2);x.fillText(W.text,S,F)}),v.current={x:a,y:l,width:w.width,height:w.height}}else x.fillText(e,S,R),v.current={x:a,y:l,width:b.width,height:b.height};x.restore()},[e,t,o,r,s,i,n,a,l,u,c,d,h,p,b,N]),T=(0,_.useCallback)(()=>v.current,[]);return(0,_.useEffect)(()=>{f&&(typeof f=="function"?f({draw:M,getBounds:T}):f.current={draw:M,getBounds:T})},[f,M,T]),null});J1.displayName="PretextCanvasText";var F1="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/EndpointRangeCanvas.tsx",pe={bg:"#F3F4F6",text:"#111827",muted:"#6B7280",accent:"#3B82F6"},CS=a1.div` - width: 100%; - height: 100%; - position: relative; - overflow: hidden; -`,RS=Vi` - 0% { transform: translate(50%, -50%) scale(0.95); opacity: 0.8; } - 50% { transform: translate(50%, -50%) scale(1.05); opacity: 0.6; } - 100% { transform: translate(50%, -50%) scale(0.95); opacity: 0.8; } -`,BS=Vi` - 0% { transform: translate(50%, -50%) scale(0.6); opacity: 0; } - 30% { opacity: 1; } - 70% { opacity: 1; } - 100% { transform: translate(50%, -50%) scale(1.4); opacity: 0; } -`,ES=a1.div` - position: absolute; - right: 15%; - top: 50%; - width: ${e=>e.$size}%; - height: ${e=>e.$size*1.5}%; - background: ${e=>e.$color}; - box-shadow: 0 0 100px 50px ${e=>e.$color}; - border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%; - transform: translate(50%, -50%); - filter: blur(40px); - opacity: 0.85; - z-index: 1; - animation: ${RS} 4s ease-in-out infinite; -`,US=a1.div` - position: absolute; - right: 15%; - top: 25%; /* align with tower antenna */ - width: ${e=>e.$range*1.2}%; - height: ${e=>e.$range*1.2*1.5}%; - transform: translate(50%, -50%); - border-radius: 50%; - background: radial-gradient( - circle, - rgba(255, 0, 0, 0.4) 0%, - rgba(255, 154, 0, 0.4) 20%, - rgba(208, 222, 33, 0.4) 40%, - rgba(79, 220, 74, 0.4) 60%, - rgba(63, 218, 216, 0.4) 80%, - rgba(47, 201, 226, 0.4) 100% - ); - filter: blur(20px); - z-index: 0; - pointer-events: none; - animation: ${BS} 2.5s ease-out infinite; -`,WS=a1.canvas` - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 8; -`;function Tw(){const e=typeof process<"u"&&{}.JEST_WORKER_ID!==void 0,t=w6(),{freq:o,power:r,antWidth:s,antHeight:i,elevation:n,azimuth:a}=zi({freq:{value:1.6,min:.1,max:3e3,step:.1,label:"Freq (MHz)"},power:{value:5,min:.1,max:100,step:.1,label:"Power (W)"},antWidth:{value:1.5,min:.5,max:10,step:.1,label:"Ant Width (ft)"},antHeight:{value:4,min:.5,max:20,step:.1,label:"Ant Height (ft)"},elevation:{value:25,min:1,max:500,step:1,label:"Elevation (ft)"},azimuth:{value:5,min:0,max:360,step:1,label:"Azimuth (ft/deg)"}},{store:t}),{losStr:l,multipathStr:u,skyStr:c,range0Val:d,range22Val:h,coverageSize:f,blobColor:p}=(0,_.useMemo)(()=>{let H="Somewhat no";o>=300?H="Yes":o<30&&(H="No");const J=o>10?"Yes":"No",q1=o<30?"Yes":"No",I=10*Math.log10(r*1e3),y1=I+(10*Math.log10(s*i*.5)+n/100),K1=y1- -40,R1=Math.pow(10,(K1-20*Math.log10(o)-32.44)/20),D1=y1- -22,l1=Math.pow(10,(D1-20*Math.log10(o)-32.44)/20);let e1=Math.round(R1*3280.84),B0=Math.round(l1*3280.84);o<30&&(e1=Math.round(e1*.05),B0=Math.round(B0*.05));const k0=30+Math.min(Math.max((I-20)/30,0),1)*70;let S0="rgba(100, 150, 255, 0.8)";return o<10?S0="rgba(147, 51, 234, 0.8)":o<100?S0="rgba(56, 189, 248, 0.8)":S0="rgba(16, 185, 129, 0.8)",{losStr:H,multipathStr:J,skyStr:q1,range0Val:isNaN(e1)?0:e1,range22Val:isNaN(B0)?0:B0,coverageSize:k0,blobColor:S0}},[o,r,s,i,n,a]),m=(0,_.useRef)(null),b=(0,_.useRef)(null),N=(0,_.useRef)({}),v=H=>J=>{J&&(N.current[H]=J)},[M,T]=(0,_.useState)({w:800,h:450}),x=(0,_.useRef)([]),S=(0,_.useRef)([]);(0,_.useEffect)(()=>{if(!m.current)return;const H=new ResizeObserver(J=>{J[0]&&T({w:J[0].contentRect.width,h:J[0].contentRect.height})});return H.observe(m.current),()=>H.disconnect()},[]);const R=(0,_.useCallback)(()=>{const H=b.current;if(!H)return;const J=H.getContext("2d");if(!J)return;(H.width!==M.w||H.height!==M.h)&&(H.width=M.w,H.height=M.h);const q1=window.devicePixelRatio||1;H.width!==M.w*q1&&(H.width=M.w*q1,H.height=M.h*q1),J.clearRect(0,0,H.width,H.height),J.save(),J.scale(q1,q1);const I={x:M.w*.932,y:M.h*.38,width:20,height:70,showDebugOutline:!1};if(I.showDebugOutline&&(J.strokeStyle="rgba(255, 0, 0, 0.8)",J.lineWidth=2,J.strokeRect(I.x-I.width/2,I.y-I.height/2,Math.max(1,I.width),Math.max(1,I.height))),Object.values(N.current).forEach(l1=>l1.draw(J)),J.font=`bold ${Math.min(24,M.w*.05)}px "JetBrains Mono", monospace`,J.fillStyle="#000",J.textAlign="center",J.textBaseline="bottom",J.fillText("How far away?",M.w/2,M.h*.12),J.font=`normal ${Math.min(12,M.w*.025)}px "JetBrains Mono", monospace`,J.fillStyle=pe.muted,J.textBaseline="top",J.fillText("The distance an endpoint's signal can reach",M.w/2,M.h*.12+10),S.current.length===0)for(let l1=0;l1<8;l1++)S.current.push({angle:Math.PI*2*l1/8+(Math.random()-.5)*.2,wavelength:.02+Math.random()*.05,amplitude:15+Math.random()*25,speed:.2+Math.random()*.4,offsetX:Math.random()-.5,offsetY:Math.random()-.5});const y1=Date.now()/200;J.lineWidth=1.5;const K1=M.w*.9,R1=80;S.current.forEach(l1=>{J.beginPath();const e1=y1*l1.speed,B0=I.x+l1.offsetX*I.width,k0=I.y+l1.offsetY*I.height;for(let S0=0;S0=0;l1--){let e1=x.current[l1];e1.x+=e1.vx,e1.y+=e1.vy,e1.xM.h&&e1.vy>0&&(e1.vy=-e1.vy),e1.opacity-=.003,e1.opacity<=0||e1.x>M.w+50?x.current.splice(l1,1):(J.fillStyle=`rgba(233, 233, 233, ${e1.opacity})`,J.fillText(e1.char,e1.x,e1.y))}J.restore()},[M]);(0,_.useEffect)(()=>{let H;const J=()=>{R(),H=requestAnimationFrame(J)};return J(),()=>cancelAnimationFrame(H)},[R]);const w=Math.max(20,M.w*.08),W=w+Math.max(280,M.w*.35),O=W+15,F=M.w<600?10:12,X=M.h*.28,Q=F*1.8,L='"JetBrains Mono", monospace',D=W5(o),$=Number(r.toFixed(3)),k=H=>{let J="room";H>26400?J="way out there":H>10560?J="across town":H>2640?J="neighborhood":H>660?J="block":H>100?J="floor":J="room";let q1="";return H>=5280?q1=`${(H/5280).toFixed(2)}mi`:q1=`${Math.round(H).toLocaleString()}ft`,{distStr:q1,scale:J}},{distStr:c1,scale:h1}=k(d),{distStr:g1,scale:E1}=k(h);return g(A2,{store:t,aspectRatio:"16/9",children:g(CS,{ref:m,children:[g(WS,{ref:b},void 0,!1,{fileName:F1,lineNumber:377,columnNumber:9},this),g(J1,{ref:v("row1L"),text:"Frequency",fontSize:F,color:"#000",x:w,y:X,font:L},void 0,!1,{fileName:F1,lineNumber:380,columnNumber:7},this),g(J1,{ref:v("row1V"),text:D,fontSize:F,color:"#000",x:W,y:X,anchorX:"right",font:L},void 0,!1,{fileName:F1,lineNumber:389,columnNumber:7},this),g(J1,{ref:v("row2L"),text:"Power (from antenna)",fontSize:F,color:"#000",x:w,y:X+Q,font:L},void 0,!1,{fileName:F1,lineNumber:400,columnNumber:7},this),g(J1,{ref:v("row2V"),text:`${$}W`,fontSize:F,color:"#000",x:W,y:X+Q,anchorX:"right",font:L},void 0,!1,{fileName:F1,lineNumber:409,columnNumber:7},this),g(J1,{ref:v("row3L"),text:"Antenna Size",fontSize:F,color:"#000",x:w,y:X+Q*2,font:L},void 0,!1,{fileName:F1,lineNumber:420,columnNumber:7},this),g(J1,{ref:v("row3V"),text:`${s}ft x ${i}ft`,fontSize:F,color:"#000",x:W,y:X+Q*2,anchorX:"right",font:L},void 0,!1,{fileName:F1,lineNumber:429,columnNumber:7},this),g(J1,{ref:v("row4L"),text:"Elevation",fontSize:F,color:"#000",x:w,y:X+Q*3,font:L},void 0,!1,{fileName:F1,lineNumber:440,columnNumber:7},this),g(J1,{ref:v("row4V"),text:`${n}ft`,fontSize:F,color:"#000",x:W,y:X+Q*3,anchorX:"right",font:L},void 0,!1,{fileName:F1,lineNumber:449,columnNumber:7},this),g(J1,{ref:v("row5L"),text:"Azimuth",fontSize:F,color:"#000",x:w,y:X+Q*4,font:L},void 0,!1,{fileName:F1,lineNumber:460,columnNumber:7},this),g(J1,{ref:v("row5V"),text:`${a}ft`,fontSize:F,color:"#000",x:W,y:X+Q*4,anchorX:"right",font:L},void 0,!1,{fileName:F1,lineNumber:469,columnNumber:7},this),g(J1,{ref:v("row6L"),text:"Line of sight",fontSize:F,color:pe.muted,x:w,y:X+Q*5.2,font:L},void 0,!1,{fileName:F1,lineNumber:481,columnNumber:7},this),g(J1,{ref:v("row6V"),text:l,fontSize:F,color:pe.muted,x:W,y:X+Q*5.2,anchorX:"right",font:L},void 0,!1,{fileName:F1,lineNumber:490,columnNumber:7},this),g(J1,{ref:v("row7L"),text:"Multipath",fontSize:F,color:pe.muted,x:w,y:X+Q*6.2,font:L},void 0,!1,{fileName:F1,lineNumber:501,columnNumber:7},this),g(J1,{ref:v("row7V"),text:u,fontSize:F,color:pe.muted,x:W,y:X+Q*6.2,anchorX:"right",font:L},void 0,!1,{fileName:F1,lineNumber:510,columnNumber:7},this),g(J1,{ref:v("row8L"),text:"Sky interactions",fontSize:F,color:pe.muted,x:w,y:X+Q*7.2,font:L},void 0,!1,{fileName:F1,lineNumber:521,columnNumber:7},this),g(J1,{ref:v("row8V"),text:c,fontSize:F,color:pe.muted,x:W,y:X+Q*7.2,anchorX:"right",font:L},void 0,!1,{fileName:F1,lineNumber:530,columnNumber:7},this),g(J1,{ref:v("row9L"),text:"Range",fontSize:F+2,color:"#000",x:w,y:X+Q*8.7,font:L},void 0,!1,{fileName:F1,lineNumber:542,columnNumber:7},this),g(J1,{ref:v("row9V"),text:`~${c1}`,fontSize:F+2,color:"#000",x:W,y:X+Q*8.7,anchorX:"right",font:L},void 0,!1,{fileName:F1,lineNumber:551,columnNumber:7},this),g(J1,{ref:v("row9S"),text:`(${h1})`,fontSize:F,color:pe.muted,x:O,y:X+Q*8.7,anchorX:"left",font:L},void 0,!1,{fileName:F1,lineNumber:561,columnNumber:7},this),g(J1,{ref:v("row10L"),text:"Range at -22dBm",fontSize:F,color:pe.muted,x:w,y:X+Q*9.7,font:L},void 0,!1,{fileName:F1,lineNumber:572,columnNumber:7},this),g(J1,{ref:v("row10V"),text:`~${g1}`,fontSize:F,color:pe.muted,x:W,y:X+Q*9.7,anchorX:"right",font:L},void 0,!1,{fileName:F1,lineNumber:581,columnNumber:7},this),g(J1,{ref:v("row10S"),text:`(${E1})`,fontSize:F,color:pe.muted,x:O,y:X+Q*9.7,anchorX:"left",font:L},void 0,!1,{fileName:F1,lineNumber:591,columnNumber:7},this),g(US,{$range:f*1.5},void 0,!1,{fileName:F1,lineNumber:603,columnNumber:7},this),g(ES,{$size:f,$color:p},void 0,!1,{fileName:F1,lineNumber:604,columnNumber:7},this),!e&&g(U5,{src:"omni-tower.svg",alt:"Endpoint Tower",right:"15%",bottom:"0px",height:"75%",zIndex:9,objectFit:"contain",transform:"translateX(50%)",pointerEvents:"none"},void 0,!1,{fileName:F1,lineNumber:607,columnNumber:9},this)]},void 0,!0,{fileName:F1,lineNumber:376,columnNumber:7},this)},void 0,!1,{fileName:F1,lineNumber:375,columnNumber:5},this)}var x6="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/ascii-motion-animation.tsx",S6=["#FFFFFF","#ffffff"],Jt=[{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[63,34,"%",0],[70,34,"&",0],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[70,34,"&",0],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[71,35,"&",0],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[23,14,"%",0],[50,14,"o",0],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[23,14,"%",0],[50,14,"o",0],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[71,35,"&",0],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1]]},{duration:83.33333333333333,cells:[[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[23,14,"%",0],[50,14,"o",0],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[71,35,"&",0],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1]]},{duration:83.33333333333333,cells:[[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1]]},{duration:83.33333333333333,cells:[[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[43,5,"o",0],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[108,35,"+",1],[109,35,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,37,"╳",1],[109,37,"╳",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,38,"╳",1],[109,38,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[50,14,"o",0],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[63,34,"%",0],[70,34,"&",0],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[70,34,"&",0],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[71,35,"&",0],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[23,14,"%",0],[50,14,"o",0],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[23,14,"%",0],[50,14,"o",0],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[71,35,"&",0],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1]]},{duration:83.33333333333333,cells:[[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[23,14,"%",0],[50,14,"o",0],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[71,35,"&",0],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1]]},{duration:83.33333333333333,cells:[[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1]]},{duration:83.33333333333333,cells:[[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[43,5,"o",0],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[108,35,"+",1],[109,35,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,37,"╳",1],[109,37,"╳",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,38,"╳",1],[109,38,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[50,14,"o",0],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[63,34,"%",0],[70,34,"&",0],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[70,34,"&",0],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[71,35,"&",0],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[23,14,"%",0],[50,14,"o",0],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[23,14,"%",0],[50,14,"o",0],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[71,35,"&",0],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1]]},{duration:83.33333333333333,cells:[[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[23,14,"%",0],[50,14,"o",0],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[71,35,"&",0],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1]]},{duration:83.33333333333333,cells:[[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1]]},{duration:83.33333333333333,cells:[[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[43,5,"o",0],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[108,35,"+",1],[109,35,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,37,"╳",1],[109,37,"╳",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[50,14,"o",0],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[63,34,"%",0],[70,34,"&",0],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[70,34,"&",0],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[71,35,"&",0],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[23,14,"%",0],[50,14,"o",0],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[23,14,"%",0],[50,14,"o",0],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[71,35,"&",0],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1]]},{duration:83.33333333333333,cells:[[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[23,14,"%",0],[50,14,"o",0],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[71,35,"&",0],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1]]},{duration:83.33333333333333,cells:[[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1]]},{duration:83.33333333333333,cells:[[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[3,3,"+",1],[4,3,"+",1],[5,3,"+",1],[6,3,"+",1],[7,3,"+",1],[8,3,"+",1],[9,3,"+",1],[10,3,"+",1],[11,3,"+",1],[12,3,"+",1],[13,3,"+",1],[14,3,"+",1],[15,3,"+",1],[16,3,"+",1],[17,3,"+",1],[18,3,"+",1],[19,3,"+",1],[20,3,"+",1],[21,3,"+",1],[22,3,"+",1],[23,3,"+",1],[24,3,"+",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[42,4,"+",1],[43,4,"+",1],[44,4,"+",1],[45,4,"+",1],[46,4,"+",1],[47,4,"+",1],[48,4,"+",1],[49,4,"+",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[42,5,"+",1],[43,5,"o",0],[44,5,"+",1],[45,5,"+",1],[46,5,"+",1],[47,5,"+",1],[48,5,"+",1],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[62,6,"+",1],[63,6,"+",1],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[73,7,"+",1],[74,7,"O",0],[75,7,"+",1],[76,7,"+",1],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[82,8,"+",1],[83,8,"+",1],[84,8,"+",1],[85,8,"+",1],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[95,10,"+",1],[96,10,"+",1],[97,10,"+",1],[98,10,"+",1],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[95,11,"+",1],[96,11,"+",1],[97,11,"+",1],[98,11,"+",1],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[99,12,"+",1],[100,12,"+",1],[101,12,"+",1],[102,12,"+",1],[103,12,"+",1],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[108,35,"+",1],[109,35,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[99,36,"+",1],[100,36,"+",1],[101,36,"+",1],[102,36,"+",1],[103,36,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[95,37,"+",1],[96,37,"+",1],[97,37,"+",1],[98,37,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1],[82,39,"+",1],[83,39,"+",1],[84,39,"+",1],[85,39,"+",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[0,2,"+",1],[1,2,"+",1],[2,2,"+",1],[3,2,"+",1],[4,2,"+",1],[5,2,"+",1],[6,2,"+",1],[7,2,"+",1],[8,2,"+",1],[9,2,"+",1],[10,2,"+",1],[11,2,"+",1],[12,2,"+",1],[13,2,"+",1],[14,2,"+",1],[15,2,"+",1],[16,2,"╳",1],[17,2,"╳",1],[18,2,"╳",1],[19,2,"╳",1],[20,2,"╳",1],[21,2,"╳",1],[22,2,"╳",1],[23,2,"╳",1],[24,2,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[25,3,"+",1],[26,3,"+",1],[27,3,"+",1],[28,3,"+",1],[29,3,"+",1],[30,3,"+",1],[31,3,"+",1],[32,3,"+",1],[33,3,"+",1],[34,3,"+",1],[35,3,"+",1],[36,3,"+",1],[37,3,"+",1],[38,3,"+",1],[39,3,"+",1],[40,3,"+",1],[41,3,"+",1],[42,3,"+",1],[43,3,"+",1],[44,3,"+",1],[45,3,"+",1],[46,3,"+",1],[47,3,"╳",1],[48,3,"╳",1],[49,3,"╳",1],[50,3,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[52,4,"+",1],[53,4,"q",0],[54,4,"o",0],[55,4,"+",1],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[59,4,"+",1],[60,4,"%",0],[61,4,"+",1],[62,4,"+",1],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[51,5,"+",1],[52,5,"+",1],[53,5,"+",1],[54,5,"+",1],[55,5,"+",1],[56,5,"+",1],[57,5,"+",1],[58,5,"+",1],[59,5,"8",0],[60,5,"#",0],[61,5,"+",1],[62,5,"+",1],[63,5,"+",1],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[65,6,"+",1],[66,6,"+",1],[67,6,"o",0],[68,6,"o",0],[69,6,"+",1],[70,6,"#",0],[71,6,"W",0],[72,6,"+",1],[73,6,"W",0],[74,6,"╳",1],[75,6,"╳",1],[76,6,"╳",1],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[77,7,"+",1],[78,7,"+",1],[79,7,"+",1],[80,7,"+",1],[81,7,"+",1],[82,7,"+",1],[83,7,"+",1],[84,7,"+",1],[85,7,"+",1],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[86,8,"+",1],[87,8,"+",1],[88,8,"+",1],[89,8,"+",1],[90,8,"+",1],[91,8,"+",1],[92,8,"+",1],[93,8,"+",1],[94,8,"+",1],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[91,9,"+",1],[92,9,"+",1],[93,9,"+",1],[94,9,"+",1],[95,9,"+",1],[96,9,"+",1],[97,9,"+",1],[98,9,"+",1],[99,9,"╳",1],[100,9,"╳",1],[101,9,"╳",1],[102,9,"╳",1],[103,9,"╳",1],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[99,10,"+",1],[100,10,"+",1],[101,10,"+",1],[102,10,"+",1],[103,10,"+",1],[104,10,"+",1],[105,10,"+",1],[106,10,"+",1],[107,10,"+",1],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[99,11,"+",1],[100,11,"+",1],[101,11,"+",1],[102,11,"+",1],[103,11,"+",1],[104,11,"+",1],[105,11,"+",1],[106,11,"+",1],[107,11,"+",1],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[104,12,"+",1],[105,12,"+",1],[106,12,"+",1],[107,12,"+",1],[108,12,"+",1],[109,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[108,13,"+",1],[109,13,"+",1],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[108,34,"+",1],[109,34,"+",1],[71,35,"&",0],[108,35,"+",1],[109,35,"+",1],[104,36,"+",1],[105,36,"+",1],[106,36,"+",1],[107,36,"+",1],[108,36,"+",1],[109,36,"+",1],[99,37,"+",1],[100,37,"+",1],[101,37,"+",1],[102,37,"+",1],[103,37,"+",1],[104,37,"+",1],[105,37,"+",1],[106,37,"+",1],[107,37,"+",1],[108,37,"╳",1],[109,37,"╳",1],[91,38,"+",1],[92,38,"+",1],[93,38,"+",1],[94,38,"+",1],[95,38,"+",1],[96,38,"+",1],[97,38,"+",1],[98,38,"+",1],[99,38,"╳",1],[100,38,"╳",1],[101,38,"╳",1],[102,38,"╳",1],[103,38,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[86,39,"+",1],[87,39,"+",1],[88,39,"+",1],[89,39,"+",1],[90,39,"+",1],[91,39,"+",1],[92,39,"+",1],[93,39,"+",1],[94,39,"+",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[0,1,"╳",1],[1,1,"╳",1],[2,1,"╳",1],[3,1,"╳",1],[4,1,"╳",1],[5,1,"╳",1],[6,1,"╳",1],[7,1,"╳",1],[8,1,"╳",1],[9,1,"╳",1],[10,1,"╳",1],[11,1,"╳",1],[12,1,"╳",1],[13,1,"╳",1],[14,1,"╳",1],[15,1,"╳",1],[16,1,"╳",1],[17,1,"╳",1],[18,1,"╳",1],[19,1,"╳",1],[20,1,"╳",1],[21,1,"╳",1],[22,1,"╳",1],[23,1,"╳",1],[24,1,"╳",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[25,2,"╳",1],[26,2,"╳",1],[27,2,"╳",1],[28,2,"╳",1],[29,2,"╳",1],[30,2,"╳",1],[31,2,"╳",1],[32,2,"╳",1],[33,2,"╳",1],[34,2,"╳",1],[35,2,"╳",1],[36,2,"╳",1],[37,2,"╳",1],[38,2,"╳",1],[39,2,"╳",1],[40,2,"╳",1],[41,2,"╳",1],[42,2,"╳",1],[43,2,"╳",1],[44,2,"╳",1],[45,2,"╳",1],[46,2,"╳",1],[47,2,"╳",1],[48,2,"╳",1],[49,2,"╳",1],[50,2,"╳",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[51,3,"╳",1],[52,3,"╳",1],[53,3,"╳",1],[54,3,"╳",1],[55,3,"╳",1],[56,3,"╳",1],[57,3,"╳",1],[58,3,"╳",1],[59,3,"╳",1],[60,3,"╳",1],[61,3,"╳",1],[62,3,"╳",1],[63,3,"╳",1],[64,3,"╳",1],[65,3,"╳",1],[66,3,"╳",1],[67,3,"╳",1],[68,3,"╳",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[65,4,"╳",1],[66,4,"╳",1],[67,4,"╳",1],[68,4,"╳",1],[69,4,"╳",1],[70,4,"╳",1],[71,4,"╳",1],[72,4,"╳",1],[73,4,"╳",1],[74,4,"╳",1],[75,4,"╳",1],[76,4,"╳",1],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[64,5,"╳",1],[65,5,"╳",1],[66,5,"╳",1],[67,5,"╳",1],[68,5,"╳",1],[69,5,"╳",1],[70,5,"Z",0],[71,5,"╳",1],[72,5,"╳",1],[73,5,"╳",1],[74,5,"╳",1],[75,5,"╳",1],[76,5,"╳",1],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[77,6,"╳",1],[78,6,"╳",1],[79,6,"╳",1],[80,6,"╳",1],[81,6,"╳",1],[82,6,"╳",1],[83,6,"╳",1],[84,6,"╳",1],[85,6,"╳",1],[86,6,"╳",1],[87,6,"╳",1],[88,6,"╳",1],[89,6,"╳",1],[90,6,"╳",1],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[86,7,"╳",1],[87,7,"╳",1],[88,7,"╳",1],[89,7,"╳",1],[90,7,"╳",1],[91,7,"╳",1],[92,7,"╳",1],[93,7,"╳",1],[94,7,"╳",1],[95,7,"╳",1],[96,7,"╳",1],[97,7,"╳",1],[98,7,"╳",1],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[95,8,"╳",1],[96,8,"╳",1],[97,8,"╳",1],[98,8,"╳",1],[99,8,"╳",1],[100,8,"╳",1],[101,8,"╳",1],[102,8,"╳",1],[103,8,"╳",1],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[104,9,"╳",1],[105,9,"╳",1],[106,9,"╳",1],[107,9,"╳",1],[108,9,"╳",1],[109,9,"╳",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[108,10,"╳",1],[109,10,"╳",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[108,11,"╳",1],[109,11,"╳",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[108,37,"╳",1],[109,37,"╳",1],[104,38,"╳",1],[105,38,"╳",1],[106,38,"╳",1],[107,38,"╳",1],[108,38,"╳",1],[109,38,"╳",1],[95,39,"╳",1],[96,39,"╳",1],[97,39,"╳",1],[98,39,"╳",1],[99,39,"╳",1],[100,39,"╳",1],[101,39,"╳",1],[102,39,"╳",1],[103,39,"╳",1],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[0,0,"╳",1],[1,0,"╳",1],[2,0,"╳",1],[3,0,"╳",1],[4,0,"╳",1],[5,0,"╳",1],[6,0,"╳",1],[7,0,"╳",1],[8,0,"╳",1],[9,0,"╳",1],[10,0,"╳",1],[11,0,"╳",1],[12,0,"╳",1],[13,0,"╳",1],[14,0,"╳",1],[15,0,"╳",1],[16,0,"╳",1],[17,0,"╳",1],[18,0,"╳",1],[19,0,"╳",1],[20,0,"╳",1],[21,0,"╳",1],[22,0,"╳",1],[23,0,"╳",1],[24,0,"╳",1],[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[25,1,"╳",1],[26,1,"╳",1],[27,1,"╳",1],[28,1,"╳",1],[29,1,"╳",1],[30,1,"╳",1],[31,1,"╳",1],[32,1,"╳",1],[33,1,"╳",1],[34,1,"╳",1],[35,1,"╳",1],[36,1,"╳",1],[37,1,"╳",1],[38,1,"╳",1],[39,1,"╳",1],[40,1,"╳",1],[41,1,"╳",1],[42,1,"╳",1],[43,1,"╳",1],[44,1,"╳",1],[45,1,"╳",1],[46,1,"╳",1],[47,1,"╳",1],[48,1,"╳",1],[49,1,"╳",1],[50,1,"╳",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[51,2,"╳",1],[52,2,"╳",1],[53,2,"╳",1],[54,2,"╳",1],[55,2,"╳",1],[56,2,"╳",1],[57,2,"╳",1],[58,2,"╳",1],[59,2,"╳",1],[60,2,"╳",1],[61,2,"╳",1],[62,2,"╳",1],[63,2,"╳",1],[64,2,"╳",1],[65,2,"╳",1],[66,2,"╳",1],[67,2,"╳",1],[68,2,"╳",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[69,3,"╳",1],[70,3,"╳",1],[71,3,"╳",1],[72,3,"╳",1],[73,3,"╳",1],[74,3,"╳",1],[75,3,"╳",1],[76,3,"╳",1],[77,3,"╳",1],[78,3,"╳",1],[79,3,"╳",1],[80,3,"╳",1],[81,3,"╳",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[77,4,"╳",1],[78,4,"╳",1],[79,4,"╳",1],[80,4,"╳",1],[81,4,"╳",1],[82,4,"╳",1],[83,4,"╳",1],[84,4,"╳",1],[85,4,"╳",1],[86,4,"╳",1],[87,4,"╳",1],[88,4,"╳",1],[89,4,"╳",1],[90,4,"╳",1],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[77,5,"╳",1],[78,5,"╳",1],[79,5,"╳",1],[80,5,"╳",1],[81,5,"╳",1],[82,5,"╳",1],[83,5,"╳",1],[84,5,"╳",1],[85,5,"╳",1],[86,5,"╳",1],[87,5,"╳",1],[88,5,"╳",1],[89,5,"╳",1],[90,5,"╳",1],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[91,6,"╳",1],[92,6,"╳",1],[93,6,"╳",1],[94,6,"╳",1],[95,6,"╳",1],[96,6,"╳",1],[97,6,"╳",1],[98,6,"╳",1],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[99,7,"╳",1],[100,7,"╳",1],[101,7,"╳",1],[102,7,"╳",1],[103,7,"╳",1],[104,7,"╳",1],[105,7,"╳",1],[106,7,"╳",1],[107,7,"╳",1],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[104,8,"╳",1],[105,8,"╳",1],[106,8,"╳",1],[107,8,"╳",1],[108,8,"╳",1],[109,8,"╳",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0],[104,39,"╳",1],[105,39,"╳",1],[106,39,"╳",1],[107,39,"╳",1],[108,39,"╳",1],[109,39,"╳",1]]},{duration:83.33333333333333,cells:[[25,0,"╳",1],[26,0,"╳",1],[27,0,"╳",1],[28,0,"╳",1],[29,0,"╳",1],[30,0,"╳",1],[31,0,"╳",1],[32,0,"╳",1],[33,0,"╳",1],[34,0,"╳",1],[35,0,"╳",1],[36,0,"╳",1],[37,0,"╳",1],[38,0,"╳",1],[39,0,"╳",1],[40,0,"╳",1],[41,0,"╳",1],[42,0,"╳",1],[43,0,"╳",1],[44,0,"╳",1],[45,0,"╳",1],[46,0,"╳",1],[47,0,"╳",1],[48,0,"╳",1],[49,0,"╳",1],[50,0,"╳",1],[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[51,1,"╳",1],[52,1,"╳",1],[53,1,"╳",1],[54,1,"╳",1],[55,1,"╳",1],[56,1,"╳",1],[57,1,"╳",1],[58,1,"╳",1],[59,1,"╳",1],[60,1,"╳",1],[61,1,"╳",1],[62,1,"╳",1],[63,1,"╳",1],[64,1,"╳",1],[65,1,"╳",1],[66,1,"╳",1],[67,1,"╳",1],[68,1,"╳",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[69,2,"╳",1],[70,2,"╳",1],[71,2,"╳",1],[72,2,"╳",1],[73,2,"╳",1],[74,2,"╳",1],[75,2,"╳",1],[76,2,"╳",1],[77,2,"╳",1],[78,2,"╳",1],[79,2,"╳",1],[80,2,"╳",1],[81,2,"╳",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[82,3,"╳",1],[83,3,"╳",1],[84,3,"╳",1],[85,3,"╳",1],[86,3,"╳",1],[87,3,"╳",1],[88,3,"╳",1],[89,3,"╳",1],[90,3,"╳",1],[91,3,"╳",1],[92,3,"╳",1],[93,3,"╳",1],[94,3,"╳",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[91,4,"╳",1],[92,4,"╳",1],[93,4,"╳",1],[94,4,"╳",1],[95,4,"╳",1],[96,4,"╳",1],[97,4,"╳",1],[98,4,"╳",1],[99,4,"╳",1],[100,4,"╳",1],[101,4,"╳",1],[102,4,"╳",1],[103,4,"╳",1],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[91,5,"╳",1],[92,5,"╳",1],[93,5,"╳",1],[94,5,"╳",1],[95,5,"╳",1],[96,5,"╳",1],[97,5,"╳",1],[98,5,"╳",1],[99,5,"╳",1],[100,5,"╳",1],[101,5,"╳",1],[102,5,"╳",1],[103,5,"╳",1],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[99,6,"╳",1],[100,6,"╳",1],[101,6,"╳",1],[102,6,"╳",1],[103,6,"╳",1],[104,6,"╳",1],[105,6,"╳",1],[106,6,"╳",1],[107,6,"╳",1],[108,6,"╳",1],[109,6,"╳",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[108,7,"╳",1],[109,7,"╳",1],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[0,24,"✘",1],[1,24,"✘",1],[2,24,"✘",1],[3,24,"✘",1],[4,24,"✘",1],[5,24,"✘",1],[6,24,"✘",1],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[51,0,"╳",1],[52,0,"╳",1],[53,0,"╳",1],[54,0,"╳",1],[55,0,"╳",1],[56,0,"╳",1],[57,0,"╳",1],[58,0,"╳",1],[59,0,"╳",1],[60,0,"╳",1],[61,0,"╳",1],[62,0,"╳",1],[63,0,"╳",1],[64,0,"╲",1],[65,0,"╲",1],[66,0,"╲",1],[67,0,"╲",1],[68,0,"╲",1],[69,0,"╲",1],[70,0,"╲",1],[71,0,"╲",1],[72,0,"╲",1],[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[69,1,"╳",1],[70,1,"╳",1],[71,1,"╳",1],[72,1,"╳",1],[73,1,"╳",1],[74,1,"╳",1],[75,1,"╳",1],[76,1,"╳",1],[77,1,"╲",1],[78,1,"╲",1],[79,1,"╲",1],[80,1,"╲",1],[81,1,"╲",1],[82,1,"╲",1],[83,1,"╲",1],[84,1,"╲",1],[85,1,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[82,2,"╳",1],[83,2,"╳",1],[84,2,"╳",1],[85,2,"╳",1],[86,2,"╳",1],[87,2,"╳",1],[88,2,"╳",1],[89,2,"╳",1],[90,2,"╳",1],[91,2,"╲",1],[92,2,"╲",1],[93,2,"╲",1],[94,2,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[95,3,"╳",1],[96,3,"╳",1],[97,3,"╳",1],[98,3,"╳",1],[99,3,"╲",1],[100,3,"╲",1],[101,3,"╲",1],[102,3,"╲",1],[103,3,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[104,4,"╳",1],[105,4,"╳",1],[106,4,"╳",1],[107,4,"╳",1],[108,4,"╲",1],[109,4,"╲",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[104,5,"╳",1],[105,5,"╳",1],[106,5,"╳",1],[107,5,"╳",1],[108,5,"╲",1],[109,5,"╲",1],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[0,22,"✘",1],[1,22,"✘",1],[2,22,"✘",1],[3,22,"✘",1],[4,22,"✘",1],[5,22,"✘",1],[6,22,"✘",1],[7,22,"✘",1],[8,22,"✘",1],[9,22,"✘",1],[10,22,"✘",1],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[0,23,"✘",1],[1,23,"✘",1],[2,23,"✘",1],[3,23,"✘",1],[4,23,"✘",1],[5,23,"✘",1],[6,23,"✘",1],[7,23,"✘",1],[8,23,"✘",1],[9,23,"✘",1],[10,23,"✘",1],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[7,24,"✘",1],[8,24,"✘",1],[9,24,"✘",1],[10,24,"✘",1],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[0,25,"✘",1],[1,25,"✘",1],[2,25,"✘",1],[3,25,"✘",1],[4,25,"✘",1],[5,25,"✘",1],[6,25,"✘",1],[7,25,"✘",1],[8,25,"✘",1],[9,25,"✘",1],[10,25,"✘",1],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[73,0,"╲",1],[74,0,"╲",1],[75,0,"╲",1],[76,0,"╲",1],[77,0,"╲",1],[78,0,"╲",1],[79,0,"╲",1],[80,0,"╲",1],[81,0,"╲",1],[82,0,"╲",1],[83,0,"╲",1],[84,0,"╲",1],[85,0,"╲",1],[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[86,1,"╲",1],[87,1,"╲",1],[88,1,"╲",1],[89,1,"╲",1],[90,1,"╲",1],[91,1,"╲",1],[92,1,"╲",1],[93,1,"╲",1],[94,1,"╲",1],[95,1,"╲",1],[96,1,"╲",1],[97,1,"╲",1],[98,1,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[95,2,"╲",1],[96,2,"╲",1],[97,2,"╲",1],[98,2,"╲",1],[99,2,"╲",1],[100,2,"╲",1],[101,2,"╲",1],[102,2,"╲",1],[103,2,"╲",1],[104,2,"╲",1],[105,2,"╲",1],[106,2,"╲",1],[107,2,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[104,3,"╲",1],[105,3,"╲",1],[106,3,"╲",1],[107,3,"╲",1],[108,3,"╲",1],[109,3,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[0,21,"✘",1],[1,21,"✘",1],[2,21,"✘",1],[3,21,"✘",1],[4,21,"✘",1],[5,21,"✘",1],[6,21,"✘",1],[7,21,"✘",1],[8,21,"✘",1],[9,21,"✘",1],[10,21,"✘",1],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[11,22,"✘",1],[12,22,"✘",1],[13,22,"✘",1],[14,22,"✘",1],[15,22,"✘",1],[16,22,"✘",1],[17,22,"✘",1],[18,22,"✘",1],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[11,23,"✘",1],[12,23,"✘",1],[13,23,"✘",1],[14,23,"✘",1],[15,23,"✘",1],[16,23,"✘",1],[17,23,"✘",1],[18,23,"✘",1],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[11,24,"✘",1],[12,24,"✘",1],[13,24,"✘",1],[14,24,"✘",1],[15,24,"✘",1],[16,24,"✘",1],[17,24,"✘",1],[18,24,"✘",1],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[11,25,"✘",1],[12,25,"✘",1],[13,25,"✘",1],[14,25,"✘",1],[15,25,"✘",1],[16,25,"✘",1],[17,25,"✘",1],[18,25,"✘",1],[19,25,"✘",1],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[0,26,"✘",1],[1,26,"✘",1],[2,26,"✘",1],[3,26,"✘",1],[4,26,"✘",1],[5,26,"✘",1],[6,26,"✘",1],[7,26,"✘",1],[8,26,"✘",1],[9,26,"✘",1],[10,26,"✘",1],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[86,0,"╲",1],[87,0,"╲",1],[88,0,"╲",1],[89,0,"╲",1],[90,0,"╲",1],[91,0,"╲",1],[92,0,"╲",1],[93,0,"╲",1],[94,0,"╲",1],[95,0,"╲",1],[96,0,"╲",1],[97,0,"╲",1],[98,0,"╲",1],[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[99,1,"╲",1],[100,1,"╲",1],[101,1,"╲",1],[102,1,"╲",1],[103,1,"╲",1],[104,1,"╲",1],[105,1,"╲",1],[106,1,"╲",1],[107,1,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[108,2,"╲",1],[109,2,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[0,20,"✘",1],[1,20,"✘",1],[2,20,"✘",1],[3,20,"✘",1],[4,20,"✘",1],[5,20,"✘",1],[6,20,"✘",1],[7,20,"✘",1],[8,20,"✘",1],[9,20,"✘",1],[10,20,"✘",1],[11,20,"✗",1],[12,20,"✗",1],[13,20,"✗",1],[14,20,"✗",1],[15,20,"✗",1],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[11,21,"✘",1],[12,21,"✘",1],[13,21,"✘",1],[14,21,"✘",1],[15,21,"✘",1],[16,21,"✘",1],[17,21,"✘",1],[18,21,"✘",1],[19,21,"m",0],[20,21,"✗",1],[21,21,"✗",1],[22,21,"O",0],[23,21,"0",0],[24,21,"✗",1],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[20,22,"✘",1],[21,22,"✘",1],[22,22,"✘",1],[23,22,"#",0],[24,22,"✘",1],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[20,23,"✘",1],[21,23,"✘",1],[22,23,"✘",1],[23,23,"✘",1],[24,23,"✘",1],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[21,24,"✘",1],[22,24,"✘",1],[23,24,"✘",1],[24,24,"✘",1],[25,24,"✗",1],[26,24,"✗",1],[27,24,"✗",1],[28,24,"✗",1],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[21,25,"✘",1],[22,25,"✘",1],[23,25,"✘",1],[24,25,"✘",1],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[11,26,"✘",1],[12,26,"✘",1],[13,26,"✘",1],[14,26,"✘",1],[15,26,"✘",1],[16,26,"✘",1],[17,26,"✘",1],[18,26,"✘",1],[19,26,"✘",1],[20,26,"✗",1],[21,26,"✗",1],[22,26,"✗",1],[23,26,"✗",1],[24,26,"✗",1],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[0,27,"✘",1],[1,27,"✘",1],[2,27,"✘",1],[3,27,"✘",1],[4,27,"✘",1],[5,27,"✘",1],[6,27,"✘",1],[7,27,"✘",1],[8,27,"✘",1],[9,27,"✘",1],[10,27,"✘",1],[11,27,"✗",1],[12,27,"✗",1],[13,27,"✗",1],[14,27,"✗",1],[15,27,"✗",1],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[99,0,"╲",1],[100,0,"╲",1],[101,0,"╲",1],[102,0,"╲",1],[103,0,"╲",1],[104,0,"╲",1],[105,0,"╲",1],[106,0,"╲",1],[107,0,"╲",1],[108,0,"╲",1],[109,0,"╲",1],[108,1,"╲",1],[109,1,"╲",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[0,19,"✗",1],[1,19,"✗",1],[2,19,"✗",1],[3,19,"✗",1],[4,19,"✗",1],[5,19,"✗",1],[6,19,"✗",1],[7,19,"✗",1],[8,19,"✗",1],[9,19,"✗",1],[10,19,"✗",1],[11,19,"✗",1],[12,19,"✗",1],[13,19,"✗",1],[14,19,"✗",1],[15,19,"✗",1],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[16,20,"✗",1],[17,20,"✗",1],[18,20,"✗",1],[19,20,"✗",1],[20,20,"✗",1],[21,20,"✗",1],[22,20,"%",0],[23,20,"✗",1],[24,20,"✗",1],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[25,21,"✗",1],[26,21,"X",0],[27,21,"o",0],[28,21,"✗",1],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[25,22,"✗",1],[26,22,"Q",0],[27,22,"✗",1],[28,22,"✗",1],[29,22,"✗",1],[30,22,"✗",1],[31,22,"✗",1],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[25,23,"✗",1],[26,23,"✗",1],[27,23,"✗",1],[28,23,"✗",1],[29,23,"0",0],[30,23,"✗",1],[31,23,"✗",1],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[31,24,"✗",1],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[25,25,"✗",1],[26,25,"%",0],[27,25,"B",0],[28,25,"✗",1],[29,25,"✗",1],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[25,26,"✗",1],[26,26,"✗",1],[27,26,"✗",1],[28,26,"✗",1],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[16,27,"✗",1],[17,27,"✗",1],[18,27,"✗",1],[19,27,"✗",1],[20,27,"✗",1],[21,27,"✗",1],[22,27,"✗",1],[23,27,"✗",1],[24,27,"✗",1],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[0,28,"✗",1],[1,28,"✗",1],[2,28,"✗",1],[3,28,"✗",1],[4,28,"✗",1],[5,28,"✗",1],[6,28,"✗",1],[7,28,"✗",1],[8,28,"✗",1],[9,28,"✗",1],[10,28,"✗",1],[11,28,"✗",1],[12,28,"✗",1],[13,28,"✗",1],[14,28,"✗",1],[15,28,"✗",1],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[0,29,"✗",1],[1,29,"✗",1],[2,29,"✗",1],[3,29,"✗",1],[4,29,"✗",1],[5,29,"✗",1],[6,29,"✗",1],[7,29,"✗",1],[8,29,"✗",1],[9,29,"✗",1],[10,29,"✗",1],[11,29,"✗",1],[12,29,"✗",1],[13,29,"✗",1],[14,29,"✗",1],[15,29,"✗",1],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[0,18,"✗",1],[1,18,"✗",1],[2,18,"✗",1],[3,18,"✗",1],[4,18,"✗",1],[5,18,"✗",1],[6,18,"✗",1],[7,18,"✗",1],[8,18,"✗",1],[9,18,"✗",1],[10,18,"✗",1],[11,18,"✗",1],[12,18,"✗",1],[13,18,"✗",1],[14,18,"✗",1],[15,18,"✗",1],[16,18,"✗",1],[17,18,"✗",1],[18,18,"✗",1],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[16,19,"✗",1],[17,19,"✗",1],[18,19,"✗",1],[19,19,"✗",1],[20,19,"✗",1],[21,19,"✗",1],[22,19,"L",0],[23,19,"✗",1],[24,19,"✗",1],[25,19,"✗",1],[26,19,"M",0],[27,19,"Q",0],[28,19,"✗",1],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[25,20,"✗",1],[26,20,"✗",1],[27,20,"8",0],[28,20,"✗",1],[29,20,"✗",1],[30,20,"✗",1],[31,20,"✗",1],[32,20,"✗",1],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[29,21,"✗",1],[30,21,"✗",1],[31,21,"✗",1],[32,21,"✗",1],[33,21,"L",0],[34,21,"o",0],[35,21,"✗",1],[36,21,"✗",1],[37,21,"✗",1],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[35,22,"✗",1],[36,22,"✗",1],[37,22,"✗",1],[38,22,"✗",1],[39,22,"✗",1],[40,22,"#",0],[41,22,"✗",1],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[34,23,"✗",1],[35,23,"✗",1],[36,23,"✗",1],[37,23,"✗",1],[38,23,"✗",1],[39,23,"o",0],[40,23,"w",0],[41,23,"✗",1],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[34,24,"✗",1],[35,24,"✗",1],[36,24,"✗",1],[37,24,"✗",1],[38,24,"✗",1],[39,24,"o",0],[40,24,"o",0],[41,24,"✗",1],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[34,25,"✗",1],[35,25,"✗",1],[36,25,"✗",1],[37,25,"✗",1],[38,25,"✗",1],[39,25,"✗",1],[40,25,"✗",1],[41,25,"✗",1],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[29,26,"✗",1],[30,26,"✗",1],[31,26,"✗",1],[32,26,"✗",1],[33,26,"Q",0],[34,26,"o",0],[35,26,"✗",1],[36,26,"✗",1],[37,26,"✗",1],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[25,27,"✗",1],[26,27,"✗",1],[27,27,"✗",1],[28,27,"✗",1],[29,27,"✗",1],[30,27,"✗",1],[31,27,"✗",1],[32,27,"✗",1],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[16,28,"✗",1],[17,28,"✗",1],[18,28,"✗",1],[19,28,"✗",1],[20,28,"✗",1],[21,28,"✗",1],[22,28,"✗",1],[23,28,"✗",1],[24,28,"✗",1],[25,28,"✗",1],[26,28,"✗",1],[27,28,"✗",1],[28,28,"✗",1],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[16,29,"✗",1],[17,29,"✗",1],[18,29,"✗",1],[19,29,"✗",1],[20,29,"✗",1],[21,29,"✗",1],[22,29,"✗",1],[23,29,"✗",1],[24,29,"✗",1],[25,29,"✗",1],[26,29,"✗",1],[27,29,"✗",1],[28,29,"✗",1],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[0,30,"✗",1],[1,30,"✗",1],[2,30,"✗",1],[3,30,"✗",1],[4,30,"✗",1],[5,30,"✗",1],[6,30,"✗",1],[7,30,"✗",1],[8,30,"✗",1],[9,30,"✗",1],[10,30,"✗",1],[11,30,"✗",1],[12,30,"✗",1],[13,30,"✗",1],[14,30,"✗",1],[15,30,"✗",1],[16,30,"✗",1],[17,30,"✗",1],[18,30,"✗",1],[19,30,"✗",1],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[0,16,"✗",1],[1,16,"✗",1],[2,16,"✗",1],[3,16,"✗",1],[4,16,"✗",1],[5,16,"✗",1],[6,16,"✗",1],[7,16,"✗",1],[8,16,"✗",1],[9,16,"✗",1],[10,16,"✗",1],[11,16,"✗",1],[12,16,"✗",1],[13,16,"✗",1],[14,16,"✗",1],[15,16,"✗",1],[16,16,"✗",1],[17,16,"✗",1],[18,16,"✗",1],[19,16,"✗",1],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[0,17,"✗",1],[1,17,"✗",1],[2,17,"✗",1],[3,17,"✗",1],[4,17,"✗",1],[5,17,"✗",1],[6,17,"✗",1],[7,17,"✗",1],[8,17,"✗",1],[9,17,"✗",1],[10,17,"✗",1],[11,17,"✗",1],[12,17,"✗",1],[13,17,"✗",1],[14,17,"✗",1],[15,17,"✗",1],[16,17,"✗",1],[17,17,"✗",1],[18,17,"✗",1],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[20,18,"✗",1],[21,18,"✗",1],[22,18,"✗",1],[23,18,"#",0],[24,18,"✗",1],[25,18,"✗",1],[26,18,"✗",1],[27,18,"✗",1],[28,18,"✗",1],[29,18,"✗",1],[30,18,"✗",1],[31,18,"✗",1],[32,18,"✗",1],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[29,19,"✗",1],[30,19,"✗",1],[31,19,"✗",1],[32,19,"✗",1],[33,19,"%",0],[34,19,"✗",1],[35,19,"✗",1],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[33,20,"✗",1],[34,20,"8",0],[35,20,"✗",1],[36,20,"✗",1],[37,20,"✗",1],[38,20,"✗",1],[39,20,"✗",1],[40,20,"✗",1],[41,20,"✗",1],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[38,21,"✗",1],[39,21,"Z",0],[40,21,"O",0],[41,21,"✗",1],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[45,21,"✗",1],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[42,22,"✗",1],[43,22,"✗",1],[44,22,"✗",1],[45,22,"✗",1],[46,22,"✗",1],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[42,23,"✗",1],[43,23,"✗",1],[44,23,"✗",1],[45,23,"✗",1],[46,23,"✗",1],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[42,24,"✗",1],[43,24,"✗",1],[44,24,"✗",1],[45,24,"✗",1],[46,24,"✗",1],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[42,25,"✗",1],[43,25,"✗",1],[44,25,"✗",1],[45,25,"✗",1],[46,25,"✗",1],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[38,26,"✗",1],[39,26,"✗",1],[40,26,"✗",1],[41,26,"✗",1],[42,26,"✗",1],[43,26,"w",0],[44,26,"✗",1],[45,26,"✗",1],[46,26,"✗",1],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[33,27,"✗",1],[34,27,"✗",1],[35,27,"✗",1],[36,27,"✗",1],[37,27,"✗",1],[38,27,"✗",1],[39,27,"✗",1],[40,27,"✗",1],[41,27,"✗",1],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[29,28,"✗",1],[30,28,"✗",1],[31,28,"✗",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[31,29,"✗",1],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[20,30,"✗",1],[21,30,"✗",1],[22,30,"✗",1],[23,30,"✗",1],[24,30,"✗",1],[25,30,"✗",1],[26,30,"✗",1],[27,30,"✗",1],[28,30,"✗",1],[29,30,"8",0],[30,30,"8",0],[31,30,"✗",1],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[0,31,"✗",1],[1,31,"✗",1],[2,31,"✗",1],[3,31,"✗",1],[4,31,"✗",1],[5,31,"✗",1],[6,31,"✗",1],[7,31,"✗",1],[8,31,"✗",1],[9,31,"✗",1],[10,31,"✗",1],[11,31,"✗",1],[12,31,"✗",1],[13,31,"✗",1],[14,31,"✗",1],[15,31,"✗",1],[16,31,"✗",1],[17,31,"✗",1],[18,31,"✗",1],[19,31,"✗",1],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[50,14,"o",0],[0,15,"✕",1],[1,15,"✕",1],[2,15,"✕",1],[3,15,"✕",1],[4,15,"✕",1],[5,15,"✕",1],[6,15,"✕",1],[7,15,"✕",1],[8,15,"✕",1],[9,15,"✕",1],[10,15,"✕",1],[11,15,"✕",1],[12,15,"✕",1],[13,15,"✕",1],[14,15,"✕",1],[15,15,"✕",1],[16,15,"✕",1],[17,15,"✕",1],[18,15,"✕",1],[19,15,"✕",1],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[20,16,"✗",1],[21,16,"✗",1],[22,16,"✗",1],[23,16,"✗",1],[24,16,"✗",1],[25,16,"✗",1],[26,16,"✗",1],[27,16,"✗",1],[28,16,"✗",1],[29,16,"✕",1],[30,16,"✕",1],[31,16,"✕",1],[32,16,"✕",1],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[21,17,"✗",1],[22,17,"✗",1],[23,17,"#",0],[24,17,"X",0],[25,17,"✗",1],[26,17,"J",0],[27,17,"✗",1],[28,17,"✗",1],[29,17,"✕",1],[30,17,"&",0],[31,17,"✕",1],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[34,18,"✗",1],[35,18,"✗",1],[36,18,"✗",1],[37,18,"✗",1],[38,18,"✕",1],[39,18,"✕",1],[40,18,"✕",1],[41,18,"✕",1],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[38,19,"✗",1],[39,19,"✗",1],[40,19,"✗",1],[41,19,"✗",1],[42,19,"✕",1],[43,19,"✕",1],[44,19,"✕",1],[45,19,"✕",1],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[42,20,"✗",1],[43,20,"✗",1],[44,20,"✗",1],[45,20,"✗",1],[46,20,"✗",1],[47,20,"✕",1],[48,20,"✕",1],[49,20,"✕",1],[50,20,"✕",1],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[47,21,"✗",1],[48,21,"✗",1],[49,21,"✗",1],[50,21,"✗",1],[51,21,"✕",1],[52,21,"✕",1],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[47,22,"✗",1],[48,22,"✗",1],[49,22,"✗",1],[50,22,"a",0],[51,22,"✕",1],[52,22,"✕",1],[53,22,"✕",1],[54,22,"✕",1],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[47,23,"✗",1],[48,23,"✗",1],[49,23,"o",0],[50,23,"a",0],[51,23,"✕",1],[52,23,"✕",1],[53,23,"✕",1],[54,23,"✕",1],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[48,24,"✗",1],[49,24,"✗",1],[50,24,"✗",1],[51,24,"✕",1],[52,24,"✕",1],[53,24,"✕",1],[54,24,"✕",1],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[47,25,"✗",1],[48,25,"✗",1],[49,25,"✗",1],[50,25,"✗",1],[51,25,"✕",1],[52,25,"✕",1],[53,25,"✕",1],[54,25,"✕",1],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[47,26,"✗",1],[48,26,"✗",1],[49,26,"✗",1],[50,26,"✗",1],[51,26,"✕",1],[52,26,"✕",1],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[44,27,"✗",1],[45,27,"✗",1],[46,27,"✗",1],[47,27,"✕",1],[48,27,"✕",1],[49,27,"✕",1],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[38,28,"✗",1],[39,28,"✗",1],[40,28,"w",0],[41,28,"✗",1],[42,28,"&",0],[43,28,"X",0],[44,28,"✕",1],[45,28,"✕",1],[46,28,"✕",1],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[38,29,"✗",1],[39,29,"o",0],[40,29,"✗",1],[41,29,"✗",1],[42,29,"✕",1],[43,29,"✕",1],[44,29,"✕",1],[45,29,"✕",1],[46,29,"✕",1],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[38,30,"✕",1],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[20,31,"✗",1],[21,31,"✗",1],[22,31,"✗",1],[23,31,"✗",1],[24,31,"✗",1],[25,31,"✗",1],[26,31,"✗",1],[27,31,"✗",1],[28,31,"✗",1],[29,31,"✕",1],[30,31,"✕",1],[31,31,"✕",1],[32,31,"✕",1],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[0,32,"✕",1],[1,32,"✕",1],[2,32,"✕",1],[3,32,"✕",1],[4,32,"✕",1],[5,32,"✕",1],[6,32,"✕",1],[7,32,"✕",1],[8,32,"✕",1],[9,32,"✕",1],[10,32,"✕",1],[11,32,"✕",1],[12,32,"✕",1],[13,32,"✕",1],[14,32,"✕",1],[15,32,"✕",1],[16,32,"✕",1],[17,32,"✕",1],[18,32,"✕",1],[19,32,"✕",1],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[0,14,"✕",1],[1,14,"✕",1],[2,14,"✕",1],[3,14,"✕",1],[4,14,"✕",1],[5,14,"✕",1],[6,14,"✕",1],[7,14,"✕",1],[8,14,"✕",1],[9,14,"✕",1],[10,14,"✕",1],[11,14,"✕",1],[12,14,"✕",1],[13,14,"✕",1],[14,14,"✕",1],[15,14,"✕",1],[16,14,"✕",1],[17,14,"✕",1],[18,14,"✕",1],[19,14,"✕",1],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[50,14,"o",0],[20,15,"✕",1],[21,15,"✕",1],[22,15,"#",0],[23,15,"✕",1],[24,15,"✕",1],[25,15,"✕",1],[26,15,"✕",1],[27,15,"✕",1],[28,15,"✕",1],[29,15,"J",0],[30,15,"M",0],[31,15,"✕",1],[32,15,"✕",1],[33,15,"✕",1],[34,15,"✕",1],[35,15,"✕",1],[36,15,"✕",1],[37,15,"✕",1],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[33,16,"✕",1],[34,16,"✕",1],[35,16,"✕",1],[36,16,"✕",1],[37,16,"✕",1],[38,16,"✕",1],[39,16,"✕",1],[40,16,"o",0],[41,16,"✕",1],[42,16,"✕",1],[43,16,"o",0],[44,16,"✕",1],[45,16,"✕",1],[46,16,"✕",1],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[34,17,"✕",1],[35,17,"✕",1],[36,17,"✕",1],[37,17,"✕",1],[38,17,"✕",1],[39,17,"o",0],[40,17,"w",0],[41,17,"✕",1],[42,17,"o",0],[43,17,"m",0],[44,17,"✕",1],[45,17,"✕",1],[46,17,"✕",1],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[42,18,"✕",1],[43,18,"✕",1],[44,18,"✕",1],[45,18,"✕",1],[46,18,"✕",1],[47,18,"✕",1],[48,18,"✕",1],[49,18,"✕",1],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[51,19,"✕",1],[52,19,"✕",1],[53,19,"✕",1],[54,19,"✕",1],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[51,20,"✕",1],[52,20,"✕",1],[53,20,"✕",1],[54,20,"✕",1],[55,20,"✕",1],[56,20,"✕",1],[57,20,"✕",1],[58,20,"✕",1],[59,20,"✕",1],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[55,21,"✕",1],[56,21,"&",0],[57,21,"X",0],[58,21,"✕",1],[59,21,"✕",1],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[55,22,"✕",1],[56,22,"✕",1],[57,22,"✕",1],[58,22,"✕",1],[59,22,"✕",1],[60,22,"✕",1],[61,22,"✕",1],[62,22,"✕",1],[63,22,"✕",1],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[55,23,"✕",1],[56,23,"✕",1],[57,23,"✕",1],[58,23,"✕",1],[59,23,"✕",1],[60,23,"✕",1],[61,23,"✕",1],[62,23,"✕",1],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[55,24,"✕",1],[56,24,"✕",1],[57,24,"✕",1],[58,24,"✕",1],[59,24,"✕",1],[60,24,"8",0],[61,24,"%",0],[62,24,"✕",1],[63,24,"✕",1],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[55,25,"✕",1],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[61,25,"✕",1],[62,25,"✕",1],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[55,26,"✕",1],[56,26,"o",0],[57,26,"Q",0],[58,26,"✕",1],[59,26,"✕",1],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[54,27,"✕",1],[55,27,"✕",1],[56,27,"8",0],[57,27,"M",0],[58,27,"✕",1],[59,27,"✕",1],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[47,28,"✕",1],[48,28,"✕",1],[49,28,"✕",1],[50,28,"✕",1],[51,28,"8",0],[52,28,"✕",1],[53,28,"d",0],[54,28,"✕",1],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[47,29,"✕",1],[48,29,"✕",1],[49,29,"✕",1],[50,29,"o",0],[51,29,"✕",1],[52,29,"✕",1],[53,29,"&",0],[54,29,"✕",1],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[44,30,"✕",1],[45,30,"✕",1],[46,30,"✕",1],[47,30,"✕",1],[48,30,"✕",1],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[33,31,"✕",1],[34,31,"✕",1],[35,31,"✕",1],[36,31,"✕",1],[37,31,"B",0],[38,31,"✕",1],[39,31,"✕",1],[40,31,"✕",1],[41,31,"✕",1],[42,31,"✕",1],[43,31,"✕",1],[44,31,"%",0],[45,31,"✕",1],[46,31,"✕",1],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[20,32,"✕",1],[21,32,"✕",1],[22,32,"✕",1],[23,32,"✕",1],[24,32,"✕",1],[25,32,"✕",1],[26,32,"✕",1],[27,32,"✕",1],[28,32,"✕",1],[29,32,"✕",1],[30,32,"✕",1],[31,32,"✕",1],[32,32,"✕",1],[33,32,"✕",1],[34,32,"✕",1],[35,32,"✕",1],[36,32,"✕",1],[37,32,"✕",1],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[0,33,"✕",1],[1,33,"✕",1],[2,33,"✕",1],[3,33,"✕",1],[4,33,"✕",1],[5,33,"✕",1],[6,33,"✕",1],[7,33,"✕",1],[8,33,"✕",1],[9,33,"✕",1],[10,33,"✕",1],[11,33,"✕",1],[12,33,"✕",1],[13,33,"✕",1],[14,33,"✕",1],[15,33,"✕",1],[16,33,"✕",1],[17,33,"✕",1],[18,33,"✕",1],[19,33,"✕",1],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[71,35,"&",0]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[0,13,"✕",1],[1,13,"✕",1],[2,13,"✕",1],[3,13,"✕",1],[4,13,"✕",1],[5,13,"✕",1],[6,13,"✕",1],[7,13,"✕",1],[8,13,"✕",1],[9,13,"✕",1],[10,13,"✕",1],[11,13,"✕",1],[12,13,"✕",1],[13,13,"✕",1],[14,13,"✕",1],[15,13,"✕",1],[16,13,"✕",1],[17,13,"✕",1],[18,13,"✕",1],[19,13,"✕",1],[20,13,"✕",1],[21,13,"✕",1],[22,13,"✕",1],[23,13,"O",0],[24,13,"✕",1],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[20,14,"✕",1],[21,14,"✕",1],[22,14,"✕",1],[23,14,"%",0],[24,14,"✕",1],[25,14,"✕",1],[26,14,"✕",1],[27,14,"✕",1],[28,14,"✕",1],[29,14,"✕",1],[30,14,"✕",1],[31,14,"✕",1],[32,14,"✕",1],[33,14,"✕",1],[34,14,"✕",1],[35,14,"✕",1],[36,14,"✕",1],[37,14,"✕",1],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[38,15,"✕",1],[39,15,"✕",1],[40,15,"✕",1],[41,15,"✕",1],[42,15,"✕",1],[43,15,"%",0],[44,15,"✕",1],[45,15,"✕",1],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[47,16,"✕",1],[48,16,"✕",1],[49,16,"✕",1],[50,16,"✕",1],[51,16,"✕",1],[52,16,"✕",1],[53,16,"✕",1],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[73,16,"&",0],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[47,17,"✕",1],[48,17,"✕",1],[49,17,"✕",1],[50,17,"✕",1],[51,17,"✕",1],[52,17,"✕",1],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[52,18,"✕",1],[53,18,"o",0],[54,18,"✕",1],[55,18,"✕",1],[56,18,"✕",1],[57,18,"✕",1],[58,18,"✕",1],[59,18,"✕",1],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[55,19,"✕",1],[56,19,"✕",1],[57,19,"✕",1],[58,19,"✕",1],[59,19,"✕",1],[60,19,"✕",1],[61,19,"✕",1],[62,19,"✕",1],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[61,20,"✕",1],[62,20,"✕",1],[63,20,"✕",1],[64,20,"✕",1],[65,20,"✕",1],[66,20,"✕",1],[67,20,"✕",1],[68,20,"✕",1],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[60,21,"✕",1],[61,21,"✕",1],[62,21,"✕",1],[63,21,"0",0],[64,21,"8",0],[65,21,"✕",1],[66,21,"✕",1],[67,21,"✕",1],[68,21,"✕",1],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[64,22,"✕",1],[65,22,"✕",1],[66,22,"✕",1],[67,22,"✕",1],[68,22,"✕",1],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[65,23,"✕",1],[66,23,"✕",1],[67,23,"o",0],[68,23,"✕",1],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[65,24,"✕",1],[66,24,"✕",1],[67,24,"U",0],[68,24,"✕",1],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[65,25,"✕",1],[66,25,"8",0],[67,25,"o",0],[68,25,"✕",1],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[61,26,"✕",1],[62,26,"✕",1],[63,26,"W",0],[64,26,"8",0],[65,26,"✕",1],[66,26,"✕",1],[67,26,"✕",1],[68,26,"✕",1],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[62,27,"✕",1],[63,27,"0",0],[64,27,"&",0],[65,27,"✕",1],[66,27,"&",0],[67,27,"%",0],[68,27,"✕",1],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[55,28,"✕",1],[56,28,"✕",1],[57,28,"✕",1],[58,28,"✕",1],[59,28,"✕",1],[60,28,"✕",1],[61,28,"✕",1],[62,28,"✕",1],[63,28,"✕",1],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[55,29,"✕",1],[56,29,"✕",1],[57,29,"✕",1],[58,29,"✕",1],[59,29,"✕",1],[60,29,"o",0],[61,29,"✕",1],[62,29,"✕",1],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[52,30,"✕",1],[53,30,"b",0],[54,30,"o",0],[55,30,"✕",1],[56,30,"✕",1],[57,30,"✕",1],[58,30,"✕",1],[59,30,"✕",1],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[47,31,"✕",1],[48,31,"✕",1],[49,31,"✕",1],[50,31,"✕",1],[51,31,"✕",1],[52,31,"✕",1],[53,31,"✕",1],[54,31,"✕",1],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[38,32,"✕",1],[39,32,"O",0],[40,32,"M",0],[41,32,"✕",1],[42,32,"✕",1],[43,32,"✕",1],[44,32,"✕",1],[45,32,"✕",1],[46,32,"✕",1],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[20,33,"✕",1],[21,33,"✕",1],[22,33,"✕",1],[23,33,"✕",1],[24,33,"✕",1],[25,33,"✕",1],[26,33,"✕",1],[27,33,"✕",1],[28,33,"✕",1],[29,33,"✕",1],[30,33,"✕",1],[31,33,"✕",1],[32,33,"✕",1],[33,33,"✕",1],[34,33,"✕",1],[35,33,"✕",1],[36,33,"✕",1],[37,33,"✕",1],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[60,33,"O",0],[61,33,"W",0],[0,34,"✕",1],[1,34,"✕",1],[2,34,"✕",1],[3,34,"✕",1],[4,34,"✕",1],[5,34,"✕",1],[6,34,"✕",1],[7,34,"✕",1],[8,34,"✕",1],[9,34,"✕",1],[10,34,"✕",1],[11,34,"✕",1],[12,34,"✕",1],[13,34,"✕",1],[14,34,"✕",1],[15,34,"✕",1],[16,34,"✕",1],[17,34,"✕",1],[18,34,"✕",1],[19,34,"✕",1],[20,34,"✕",1],[21,34,"✕",1],[22,34,"✕",1],[23,34,"✕",1],[24,34,"✕",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[0,35,"✕",1],[1,35,"✕",1],[2,35,"✕",1],[3,35,"✕",1],[4,35,"✕",1],[5,35,"✕",1],[6,35,"✕",1],[7,35,"✕",1],[8,35,"✕",1],[9,35,"✕",1],[10,35,"✕",1],[11,35,"✕",1],[12,35,"✕",1],[13,35,"✕",1],[14,35,"✕",1],[15,35,"✕",1],[16,35,"✕",1],[17,35,"✕",1],[18,35,"✕",1],[19,35,"✕",1],[20,35,"✕",1],[21,35,"✕",1],[22,35,"✕",1],[23,35,"✕",1],[24,35,"✕",1],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[0,12,"✕",1],[1,12,"✕",1],[2,12,"✕",1],[3,12,"✕",1],[4,12,"✕",1],[5,12,"✕",1],[6,12,"✕",1],[7,12,"✕",1],[8,12,"✕",1],[9,12,"✕",1],[10,12,"✕",1],[11,12,"✕",1],[12,12,"✕",1],[13,12,"✕",1],[14,12,"✕",1],[15,12,"✕",1],[16,12,"✕",1],[17,12,"✕",1],[18,12,"✕",1],[19,12,"✕",1],[20,12,"✕",1],[21,12,"✕",1],[22,12,"✕",1],[23,12,"✕",1],[24,12,"✕",1],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[25,13,"✕",1],[26,13,"✕",1],[27,13,"✕",1],[28,13,"✕",1],[29,13,"✕",1],[30,13,"✕",1],[31,13,"✕",1],[32,13,"B",0],[33,13,"✕",1],[34,13,"✕",1],[35,13,"✕",1],[36,13,"✕",1],[37,13,"M",0],[38,13,"✕",1],[39,13,"✕",1],[40,13,"✕",1],[41,13,"✕",1],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[67,13,"U",0],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[38,14,"✕",1],[39,14,"✕",1],[40,14,"✕",1],[41,14,"✕",1],[42,14,"✕",1],[43,14,"✕",1],[44,14,"✕",1],[45,14,"✕",1],[46,14,"✕",1],[47,14,"✕",1],[48,14,"✕",1],[49,14,"✕",1],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[48,15,"✕",1],[49,15,"✕",1],[50,15,"✕",1],[51,15,"✕",1],[52,15,"✕",1],[53,15,"o",0],[54,15,"✕",1],[55,15,"✕",1],[56,15,"✕",1],[57,15,"%",0],[58,15,"✕",1],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[55,16,"✕",1],[56,16,"✕",1],[57,16,"✕",1],[58,16,"✕",1],[59,16,"✕",1],[60,16,"✕",1],[61,16,"✕",1],[62,16,"✕",1],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[80,16,"&",0],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[55,17,"✕",1],[56,17,"8",0],[57,17,"#",0],[58,17,"✕",1],[59,17,"✕",1],[60,17,"✕",1],[61,17,"✕",1],[62,17,"✕",1],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[60,18,"✕",1],[61,18,"✕",1],[62,18,"✕",1],[63,18,"✕",1],[64,18,"✕",1],[65,18,"✕",1],[66,18,"✕",1],[67,18,"✕",1],[68,18,"✕",1],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[65,19,"✕",1],[66,19,"J",0],[67,19,"Z",0],[68,19,"✕",1],[69,19,"✕",1],[70,19,"U",0],[71,19,"✕",1],[72,19,"✕",1],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[69,20,"✕",1],[70,20,"✕",1],[71,20,"✕",1],[72,20,"✕",1],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[69,21,"✕",1],[70,21,"✕",1],[71,21,"✕",1],[72,21,"✕",1],[73,21,"✕",1],[74,21,"✕",1],[75,21,"✕",1],[76,21,"✕",1],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[69,22,"✕",1],[70,22,"✕",1],[71,22,"✕",1],[72,22,"✕",1],[73,22,"✕",1],[74,22,"✕",1],[75,22,"✕",1],[76,22,"✕",1],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[69,23,"✕",1],[70,23,"o",0],[71,23,"o",0],[72,23,"✕",1],[73,23,"m",0],[74,23,"✕",1],[75,23,"✕",1],[76,23,"✕",1],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[90,23,"o",0],[91,23,"w",0],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[69,24,"✕",1],[70,24,"w",0],[71,24,"✕",1],[72,24,"✕",1],[73,24,"O",0],[74,24,"a",0],[75,24,"✕",1],[76,24,"✕",1],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[91,24,"o",0],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[69,25,"✕",1],[70,25,"w",0],[71,25,"✕",1],[72,25,"✕",1],[73,25,"o",0],[74,25,"k",0],[75,25,"✕",1],[76,25,"✕",1],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[69,26,"✕",1],[70,26,"b",0],[71,26,"q",0],[72,26,"✕",1],[73,26,"k",0],[74,26,"e",0],[75,26,"✕",1],[76,26,"✕",1],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[69,27,"✕",1],[70,27,"o",0],[71,27,"✕",1],[72,27,"✕",1],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[64,28,"✕",1],[65,28,"✕",1],[66,28,"✕",1],[67,28,"o",0],[68,28,"✕",1],[69,28,"✕",1],[70,28,"✕",1],[71,28,"✕",1],[72,28,"✕",1],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[84,28,"o",0],[85,28,"o",0],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[65,29,"✕",1],[66,29,"o",0],[67,29,"o",0],[68,29,"✕",1],[69,29,"✕",1],[70,29,"C",0],[71,29,"o",0],[72,29,"✕",1],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[62,30,"✕",1],[63,30,"o",0],[64,30,"C",0],[65,30,"✕",1],[66,30,"o",0],[67,30,"o",0],[68,30,"✕",1],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[37,31,"B",0],[44,31,"%",0],[55,31,"✕",1],[56,31,"o",0],[57,31,"o",0],[58,31,"✕",1],[59,31,"✕",1],[60,31,"✕",1],[61,31,"✕",1],[62,31,"✕",1],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[80,31,"o",0],[81,31,"h",0],[39,32,"O",0],[40,32,"M",0],[47,32,"✕",1],[48,32,"✕",1],[49,32,"✕",1],[50,32,"✕",1],[51,32,"✕",1],[52,32,"✕",1],[53,32,"M",0],[54,32,"&",0],[55,32,"✕",1],[56,32,"L",0],[57,32,"o",0],[58,32,"✕",1],[59,32,"✕",1],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[38,33,"✕",1],[39,33,"✕",1],[40,33,"✕",1],[41,33,"✕",1],[42,33,"✕",1],[43,33,"Z",0],[44,33,"✕",1],[45,33,"✕",1],[46,33,"✕",1],[47,33,"✕",1],[48,33,"✕",1],[49,33,"✕",1],[50,33,"✕",1],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[25,34,"✕",1],[26,34,"✕",1],[27,34,"✕",1],[28,34,"✕",1],[29,34,"✕",1],[30,34,"✕",1],[31,34,"✕",1],[32,34,"✕",1],[33,34,"✕",1],[34,34,"✕",1],[35,34,"✕",1],[36,34,"✕",1],[37,34,"✕",1],[38,34,"✕",1],[39,34,"✕",1],[40,34,"✕",1],[41,34,"✕",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[63,34,"%",0],[70,34,"&",0],[25,35,"✕",1],[26,35,"✕",1],[27,35,"✕",1],[28,35,"✕",1],[29,35,"✕",1],[30,35,"✕",1],[31,35,"✕",1],[32,35,"✕",1],[33,35,"✕",1],[34,35,"✕",1],[35,35,"✕",1],[36,35,"✕",1],[37,35,"✕",1],[38,35,"✕",1],[39,35,"✕",1],[40,35,"✕",1],[41,35,"✕",1],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[71,35,"&",0],[0,36,"✕",1],[1,36,"✕",1],[2,36,"✕",1],[3,36,"✕",1],[4,36,"✕",1],[5,36,"✕",1],[6,36,"✕",1],[7,36,"✕",1],[8,36,"✕",1],[9,36,"✕",1],[10,36,"✕",1],[11,36,"✕",1],[12,36,"✕",1],[13,36,"✕",1],[14,36,"✕",1],[15,36,"✕",1],[16,36,"✕",1],[17,36,"✕",1],[18,36,"✕",1],[19,36,"✕",1],[20,36,"✕",1],[21,36,"✕",1],[22,36,"✕",1],[23,36,"✕",1],[24,36,"✕",1],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[40,9,"q",0],[47,9,"k",0],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[0,10,"×",1],[1,10,"×",1],[2,10,"×",1],[3,10,"×",1],[4,10,"×",1],[5,10,"×",1],[6,10,"×",1],[7,10,"×",1],[8,10,"×",1],[9,10,"×",1],[10,10,"×",1],[11,10,"×",1],[12,10,"×",1],[13,10,"×",1],[14,10,"×",1],[15,10,"×",1],[16,10,"×",1],[17,10,"×",1],[18,10,"×",1],[19,10,"×",1],[20,10,"×",1],[21,10,"×",1],[22,10,"×",1],[23,10,"×",1],[24,10,"×",1],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[60,10,"o",0],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[0,11,"×",1],[1,11,"×",1],[2,11,"×",1],[3,11,"×",1],[4,11,"×",1],[5,11,"×",1],[6,11,"×",1],[7,11,"×",1],[8,11,"×",1],[9,11,"×",1],[10,11,"×",1],[11,11,"×",1],[12,11,"×",1],[13,11,"×",1],[14,11,"×",1],[15,11,"×",1],[16,11,"×",1],[17,11,"×",1],[18,11,"×",1],[19,11,"×",1],[20,11,"×",1],[21,11,"×",1],[22,11,"×",1],[23,11,"×",1],[24,11,"×",1],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[25,12,"×",1],[26,12,"o",0],[27,12,"X",0],[28,12,"×",1],[29,12,"8",0],[30,12,"0",0],[31,12,"×",1],[32,12,"8",0],[33,12,"#",0],[34,12,"×",1],[35,12,"×",1],[36,12,"8",0],[37,12,"×",1],[38,12,"×",1],[39,12,"×",1],[40,12,"×",1],[41,12,"×",1],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[44,13,"×",1],[45,13,"×",1],[46,13,"×",1],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[51,14,"×",1],[52,14,"×",1],[53,14,"×",1],[54,14,"×",1],[55,14,"×",1],[56,14,"×",1],[57,14,"×",1],[58,14,"×",1],[59,14,"×",1],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[61,15,"×",1],[62,15,"×",1],[63,15,"×",1],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[67,15,"×",1],[68,15,"×",1],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[65,16,"×",1],[66,16,"×",1],[67,16,"×",1],[68,16,"×",1],[69,16,"×",1],[70,16,"×",1],[71,16,"×",1],[72,16,"×",1],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[64,17,"×",1],[65,17,"×",1],[66,17,"×",1],[67,17,"×",1],[68,17,"×",1],[69,17,"×",1],[70,17,"o",0],[71,17,"A",0],[72,17,"×",1],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[69,18,"×",1],[70,18,"×",1],[71,18,"×",1],[72,18,"×",1],[73,18,"×",1],[74,18,"×",1],[75,18,"×",1],[76,18,"×",1],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[73,19,"×",1],[74,19,"B",0],[75,19,"×",1],[76,19,"×",1],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[73,20,"×",1],[74,20,"×",1],[75,20,"×",1],[76,20,"×",1],[77,20,"&",0],[78,20,"×",1],[79,20,"×",1],[80,20,"×",1],[81,20,"×",1],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[79,21,"×",1],[80,21,"×",1],[81,21,"×",1],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[77,22,"×",1],[78,22,"×",1],[79,22,"×",1],[80,22,"×",1],[81,22,"×",1],[82,22,"×",1],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[78,23,"×",1],[79,23,"×",1],[80,23,"×",1],[81,23,"×",1],[82,23,"×",1],[83,23,"×",1],[84,23,"o",0],[85,23,"×",1],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[78,24,"×",1],[79,24,"×",1],[80,24,"Z",0],[81,24,"×",1],[82,24,"×",1],[83,24,"×",1],[84,24,"×",1],[85,24,"×",1],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[79,25,"×",1],[80,25,"o",0],[81,25,"Q",0],[82,25,"×",1],[83,25,"8",0],[84,25,"×",1],[85,25,"×",1],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[77,26,"×",1],[78,26,"×",1],[79,26,"×",1],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[73,27,"×",1],[74,27,"×",1],[75,27,"×",1],[76,27,"×",1],[77,27,"×",1],[78,27,"×",1],[79,27,"×",1],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[73,28,"×",1],[74,28,"×",1],[75,28,"×",1],[76,28,"×",1],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[73,29,"×",1],[74,29,"×",1],[75,29,"×",1],[76,29,"×",1],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[69,30,"×",1],[70,30,"o",0],[71,30,"Z",0],[72,30,"×",1],[73,30,"o",0],[74,30,"o",0],[75,30,"×",1],[76,30,"×",1],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[64,31,"×",1],[65,31,"×",1],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[72,31,"×",1],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[62,32,"×",1],[63,32,"×",1],[64,32,"X",0],[65,32,"×",1],[66,32,"o",0],[67,32,"U",0],[68,32,"×",1],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[43,33,"Z",0],[51,33,"×",1],[52,33,"×",1],[53,33,"o",0],[54,33,"×",1],[55,33,"×",1],[56,33,"×",1],[57,33,"×",1],[58,33,"×",1],[59,33,"×",1],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[70,34,"&",0],[42,35,"×",1],[43,35,"×",1],[44,35,"×",1],[45,35,"×",1],[46,35,"×",1],[47,35,"×",1],[48,35,"×",1],[49,35,"×",1],[50,35,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[71,35,"&",0],[25,36,"×",1],[26,36,"×",1],[27,36,"×",1],[28,36,"×",1],[29,36,"×",1],[30,36,"×",1],[31,36,"×",1],[32,36,"×",1],[33,36,"×",1],[34,36,"×",1],[35,36,"×",1],[36,36,"×",1],[37,36,"×",1],[38,36,"×",1],[39,36,"×",1],[40,36,"×",1],[41,36,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[0,37,"×",1],[1,37,"×",1],[2,37,"×",1],[3,37,"×",1],[4,37,"×",1],[5,37,"×",1],[6,37,"×",1],[7,37,"×",1],[8,37,"×",1],[9,37,"×",1],[10,37,"×",1],[11,37,"×",1],[12,37,"×",1],[13,37,"×",1],[14,37,"×",1],[15,37,"×",1],[16,37,"×",1],[17,37,"×",1],[18,37,"×",1],[19,37,"×",1],[20,37,"×",1],[21,37,"×",1],[22,37,"×",1],[23,37,"×",1],[24,37,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[40,8,"o",0],[47,8,"o",0],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[0,9,"×",1],[1,9,"×",1],[2,9,"×",1],[3,9,"×",1],[4,9,"×",1],[5,9,"×",1],[6,9,"×",1],[7,9,"×",1],[8,9,"×",1],[9,9,"×",1],[10,9,"×",1],[11,9,"×",1],[12,9,"×",1],[13,9,"×",1],[14,9,"×",1],[15,9,"×",1],[16,9,"×",1],[17,9,"×",1],[18,9,"×",1],[19,9,"×",1],[20,9,"×",1],[21,9,"×",1],[22,9,"×",1],[23,9,"×",1],[24,9,"×",1],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[25,10,"×",1],[26,10,"×",1],[27,10,"×",1],[28,10,"×",1],[29,10,"8",0],[30,10,"#",0],[31,10,"×",1],[32,10,"×",1],[33,10,"×",1],[34,10,"×",1],[35,10,"×",1],[36,10,"×",1],[37,10,"×",1],[38,10,"×",1],[39,10,"o",0],[40,10,"o",0],[41,10,"×",1],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[71,10,"U",0],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[25,11,"×",1],[26,11,"o",0],[27,11,"Q",0],[28,11,"×",1],[29,11,"×",1],[30,11,"%",0],[31,11,"×",1],[32,11,"×",1],[33,11,"×",1],[34,11,"×",1],[35,11,"%",0],[36,11,"M",0],[37,11,"×",1],[38,11,"×",1],[39,11,"×",1],[40,11,"×",1],[41,11,"×",1],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[69,11,"%",0],[70,11,"W",0],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[44,12,"×",1],[45,12,"×",1],[46,12,"o",0],[47,12,"k",0],[48,12,"×",1],[49,12,"×",1],[50,12,"×",1],[51,12,"×",1],[52,12,"×",1],[53,12,"×",1],[54,12,"×",1],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[78,12,"&",0],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[52,13,"×",1],[53,13,"B",0],[54,13,"×",1],[55,13,"×",1],[56,13,"×",1],[57,13,"×",1],[58,13,"×",1],[59,13,"×",1],[60,13,"×",1],[61,13,"×",1],[62,13,"×",1],[63,13,"×",1],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[83,13,"o",0],[84,13,"o",0],[23,14,"%",0],[50,14,"o",0],[60,14,"×",1],[61,14,"×",1],[62,14,"×",1],[63,14,"×",1],[64,14,"×",1],[65,14,"×",1],[66,14,"×",1],[67,14,"×",1],[68,14,"×",1],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[69,15,"×",1],[70,15,"×",1],[71,15,"×",1],[72,15,"×",1],[73,15,"×",1],[74,15,"%",0],[75,15,"×",1],[76,15,"×",1],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[74,16,"×",1],[75,16,"×",1],[76,16,"×",1],[77,16,"×",1],[78,16,"×",1],[79,16,"×",1],[80,16,"&",0],[81,16,"×",1],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[74,17,"×",1],[75,17,"×",1],[76,17,"×",1],[77,17,"×",1],[78,17,"×",1],[79,17,"×",1],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[77,18,"×",1],[78,18,"×",1],[79,18,"×",1],[80,18,"o",0],[81,18,"o",0],[82,18,"×",1],[83,18,"×",1],[84,18,"×",1],[85,18,"×",1],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[78,19,"×",1],[79,19,"×",1],[80,19,"z",0],[81,19,"×",1],[82,19,"×",1],[83,19,"×",1],[84,19,"×",1],[85,19,"×",1],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[82,20,"×",1],[83,20,"×",1],[84,20,"×",1],[85,20,"×",1],[86,20,"×",1],[87,20,"×",1],[88,20,"×",1],[89,20,"×",1],[90,20,"×",1],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[82,21,"×",1],[83,21,"×",1],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[89,21,"×",1],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[86,22,"×",1],[87,22,"×",1],[88,22,"×",1],[89,22,"×",1],[90,22,"×",1],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[86,23,"×",1],[87,23,"×",1],[88,23,"×",1],[89,23,"×",1],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[86,24,"×",1],[87,24,"×",1],[88,24,"×",1],[89,24,"×",1],[90,24,"×",1],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[89,25,"×",1],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[82,26,"×",1],[83,26,"×",1],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[88,26,"×",1],[89,26,"×",1],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[82,27,"×",1],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[86,27,"×",1],[87,27,"×",1],[88,27,"×",1],[89,27,"×",1],[90,27,"×",1],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[78,28,"×",1],[79,28,"×",1],[80,28,"×",1],[81,28,"×",1],[82,28,"×",1],[83,28,"×",1],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[77,29,"×",1],[78,29,"×",1],[79,29,"×",1],[80,29,"×",1],[81,29,"o",0],[82,29,"×",1],[83,29,"×",1],[84,29,"×",1],[85,29,"×",1],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[79,30,"×",1],[80,30,"o",0],[81,30,"h",0],[82,30,"×",1],[83,30,"×",1],[84,30,"×",1],[85,30,"×",1],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[75,31,"×",1],[76,31,"×",1],[77,31,"×",1],[78,31,"×",1],[79,31,"×",1],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[69,32,"×",1],[70,32,"C",0],[71,32,"o",0],[72,32,"×",1],[73,32,"L",0],[74,32,"o",0],[75,32,"×",1],[76,32,"×",1],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[62,33,"×",1],[63,33,"×",1],[64,33,"×",1],[65,33,"×",1],[66,33,"×",1],[67,33,"×",1],[68,33,"×",1],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[52,34,"×",1],[53,34,"e",0],[54,34,"×",1],[55,34,"×",1],[56,34,"×",1],[57,34,"×",1],[58,34,"×",1],[59,34,"×",1],[60,34,"×",1],[61,34,"×",1],[62,34,"×",1],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[51,35,"×",1],[52,35,"×",1],[53,35,"×",1],[54,35,"×",1],[55,35,"×",1],[56,35,"×",1],[57,35,"×",1],[58,35,"×",1],[59,35,"×",1],[60,35,"×",1],[61,35,"×",1],[62,35,"×",1],[63,35,"×",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[42,36,"×",1],[43,36,"×",1],[44,36,"×",1],[45,36,"×",1],[46,36,"×",1],[47,36,"×",1],[48,36,"×",1],[49,36,"×",1],[50,36,"×",1],[51,36,"×",1],[52,36,"×",1],[53,36,"×",1],[54,36,"×",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[25,37,"×",1],[26,37,"×",1],[27,37,"×",1],[28,37,"×",1],[29,37,"×",1],[30,37,"×",1],[31,37,"×",1],[32,37,"×",1],[33,37,"×",1],[34,37,"×",1],[35,37,"×",1],[36,37,"×",1],[37,37,"×",1],[38,37,"×",1],[39,37,"×",1],[40,37,"×",1],[41,37,"×",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[0,38,"×",1],[1,38,"×",1],[2,38,"×",1],[3,38,"×",1],[4,38,"×",1],[5,38,"×",1],[6,38,"×",1],[7,38,"×",1],[8,38,"×",1],[9,38,"×",1],[10,38,"×",1],[11,38,"×",1],[12,38,"×",1],[13,38,"×",1],[14,38,"×",1],[15,38,"×",1],[16,38,"×",1],[17,38,"×",1],[18,38,"×",1],[19,38,"×",1],[20,38,"×",1],[21,38,"×",1],[22,38,"×",1],[23,38,"×",1],[24,38,"×",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[39,6,"o",0],[40,6,"m",0],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[42,7,"o",0],[46,7,"X",0],[47,7,"8",0],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[0,8,"×",1],[1,8,"×",1],[2,8,"×",1],[3,8,"×",1],[4,8,"×",1],[5,8,"×",1],[6,8,"×",1],[7,8,"×",1],[8,8,"×",1],[9,8,"×",1],[10,8,"×",1],[11,8,"×",1],[12,8,"×",1],[13,8,"×",1],[14,8,"×",1],[15,8,"×",1],[16,8,"×",1],[17,8,"×",1],[18,8,"×",1],[19,8,"×",1],[20,8,"×",1],[21,8,"×",1],[22,8,"×",1],[23,8,"×",1],[24,8,"×",1],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[59,8,"8",0],[60,8,"o",0],[66,8,"o",0],[67,8,"o",0],[77,8,"&",0],[25,9,"×",1],[26,9,"×",1],[27,9,"×",1],[28,9,"×",1],[29,9,"×",1],[30,9,"B",0],[31,9,"×",1],[32,9,"×",1],[33,9,"8",0],[34,9,"×",1],[35,9,"×",1],[36,9,"×",1],[37,9,"×",1],[38,9,"×",1],[39,9,"×",1],[40,9,"q",0],[41,9,"×",1],[42,9,"×",1],[43,9,"×",1],[44,9,"×",1],[45,9,"×",1],[46,9,"×",1],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[66,9,"o",0],[67,9,"o",0],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[42,10,"×",1],[43,10,"×",1],[44,10,"×",1],[45,10,"×",1],[46,10,"×",1],[47,10,"×",1],[48,10,"×",1],[49,10,"×",1],[50,10,"M",0],[51,10,"×",1],[52,10,"×",1],[53,10,"×",1],[54,10,"×",1],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[77,10,"X",0],[80,10,"o",0],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[44,11,"×",1],[45,11,"×",1],[46,11,"o",0],[47,11,"×",1],[48,11,"×",1],[49,11,"×",1],[50,11,"%",0],[51,11,"8",0],[52,11,"×",1],[53,11,"×",1],[54,11,"×",1],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[77,11,"W",0],[78,11,"Q",0],[80,11,"U",0],[81,11,"o",0],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[55,12,"×",1],[56,12,"×",1],[57,12,"×",1],[58,12,"×",1],[59,12,"o",0],[60,12,"o",0],[61,12,"×",1],[62,12,"×",1],[63,12,"×",1],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[64,13,"×",1],[65,13,"×",1],[66,13,"×",1],[67,13,"U",0],[68,13,"×",1],[69,13,"×",1],[70,13,"×",1],[71,13,"×",1],[72,13,"×",1],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[23,14,"%",0],[50,14,"o",0],[69,14,"×",1],[70,14,"×",1],[71,14,"×",1],[72,14,"×",1],[73,14,"×",1],[74,14,"×",1],[75,14,"×",1],[76,14,"×",1],[77,14,"×",1],[78,14,"×",1],[79,14,"×",1],[80,14,"×",1],[81,14,"×",1],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[77,15,"×",1],[78,15,"×",1],[79,15,"×",1],[80,15,"×",1],[81,15,"×",1],[82,15,"×",1],[83,15,"×",1],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[82,16,"×",1],[83,16,"×",1],[84,16,"×",1],[85,16,"×",1],[86,16,"×",1],[87,16,"×",1],[88,16,"×",1],[89,16,"×",1],[90,16,"×",1],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[82,17,"×",1],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[89,17,"×",1],[90,17,"×",1],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[86,18,"×",1],[87,18,"×",1],[88,18,"×",1],[89,18,"×",1],[90,18,"×",1],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[86,19,"×",1],[87,19,"×",1],[88,19,"×",1],[89,19,"×",1],[90,19,"L",0],[91,19,"M",0],[92,19,"×",1],[93,19,"×",1],[94,19,"×",1],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[91,20,"×",1],[92,20,"×",1],[93,20,"×",1],[94,20,"×",1],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[92,21,"×",1],[93,21,"×",1],[94,21,"×",1],[95,21,"×",1],[96,21,"×",1],[97,21,"×",1],[98,21,"×",1],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[91,22,"×",1],[92,22,"×",1],[93,22,"×",1],[94,22,"×",1],[95,22,"×",1],[96,22,"×",1],[97,22,"×",1],[98,22,"×",1],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[92,23,"×",1],[93,23,"×",1],[94,23,"×",1],[95,23,"×",1],[96,23,"×",1],[97,23,"×",1],[98,23,"×",1],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[92,24,"×",1],[93,24,"×",1],[94,24,"×",1],[95,24,"×",1],[96,24,"×",1],[97,24,"×",1],[98,24,"×",1],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[92,25,"×",1],[93,25,"×",1],[94,25,"×",1],[95,25,"×",1],[96,25,"×",1],[97,25,"×",1],[98,25,"×",1],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[92,26,"×",1],[93,26,"×",1],[94,26,"×",1],[95,26,"×",1],[96,26,"×",1],[97,26,"×",1],[98,26,"×",1],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[91,27,"×",1],[92,27,"×",1],[93,27,"×",1],[94,27,"×",1],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[86,28,"×",1],[87,28,"×",1],[88,28,"×",1],[89,28,"×",1],[90,28,"×",1],[91,28,"×",1],[92,28,"×",1],[93,28,"×",1],[94,28,"×",1],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[89,29,"×",1],[90,29,"×",1],[91,29,"×",1],[92,29,"×",1],[93,29,"×",1],[94,29,"×",1],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[86,30,"×",1],[87,30,"×",1],[88,30,"×",1],[89,30,"×",1],[90,30,"×",1],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[82,31,"×",1],[83,31,"×",1],[84,31,"×",1],[85,31,"×",1],[86,31,"×",1],[87,31,"×",1],[88,31,"×",1],[89,31,"×",1],[90,31,"×",1],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[79,32,"×",1],[80,32,"o",0],[81,32,"o",0],[82,32,"×",1],[83,32,"×",1],[84,32,"×",1],[85,32,"×",1],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[69,33,"×",1],[70,33,"×",1],[71,33,"×",1],[72,33,"×",1],[73,33,"×",1],[74,33,"×",1],[75,33,"×",1],[76,33,"×",1],[77,33,"×",1],[78,33,"×",1],[79,33,"×",1],[80,33,"×",1],[81,33,"×",1],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[64,34,"×",1],[65,34,"×",1],[66,34,"×",1],[67,34,"×",1],[68,34,"×",1],[69,34,"×",1],[70,34,"&",0],[71,34,"×",1],[72,34,"×",1],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[64,35,"×",1],[65,35,"×",1],[66,35,"×",1],[67,35,"×",1],[68,35,"×",1],[69,35,"×",1],[70,35,"×",1],[71,35,"&",0],[72,35,"×",1],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[55,36,"×",1],[56,36,"×",1],[57,36,"×",1],[58,36,"×",1],[59,36,"×",1],[60,36,"×",1],[61,36,"×",1],[62,36,"×",1],[63,36,"×",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[42,37,"×",1],[43,37,"×",1],[44,37,"×",1],[45,37,"×",1],[46,37,"×",1],[47,37,"×",1],[48,37,"×",1],[49,37,"×",1],[50,37,"×",1],[51,37,"×",1],[52,37,"×",1],[53,37,"×",1],[54,37,"×",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[25,38,"×",1],[26,38,"×",1],[27,38,"×",1],[28,38,"×",1],[29,38,"×",1],[30,38,"×",1],[31,38,"×",1],[32,38,"×",1],[33,38,"×",1],[34,38,"×",1],[35,38,"×",1],[36,38,"×",1],[37,38,"×",1],[38,38,"×",1],[39,38,"×",1],[40,38,"×",1],[41,38,"×",1],[42,38,"×",1],[43,38,"×",1],[44,38,"×",1],[45,38,"×",1],[46,38,"×",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[0,39,"×",1],[1,39,"×",1],[2,39,"×",1],[3,39,"×",1],[4,39,"×",1],[5,39,"×",1],[6,39,"×",1],[7,39,"×",1],[8,39,"×",1],[9,39,"×",1],[10,39,"×",1],[11,39,"×",1],[12,39,"×",1],[13,39,"×",1],[14,39,"×",1],[15,39,"×",1],[16,39,"×",1],[17,39,"×",1],[18,39,"×",1],[19,39,"×",1],[20,39,"×",1],[21,39,"×",1],[22,39,"×",1],[23,39,"×",1],[24,39,"×",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1]]},{duration:83.33333333333333,cells:[[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[47,6,"#",0],[54,6,"8",0],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[0,7,"×",1],[1,7,"×",1],[2,7,"×",1],[3,7,"×",1],[4,7,"×",1],[5,7,"×",1],[6,7,"×",1],[7,7,"×",1],[8,7,"×",1],[9,7,"×",1],[10,7,"×",1],[11,7,"×",1],[12,7,"×",1],[13,7,"×",1],[14,7,"×",1],[15,7,"×",1],[16,7,"+",1],[17,7,"+",1],[18,7,"+",1],[19,7,"+",1],[20,7,"+",1],[21,7,"+",1],[22,7,"+",1],[23,7,"+",1],[24,7,"+",1],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[66,7,"o",0],[67,7,"C",0],[74,7,"O",0],[25,8,"×",1],[26,8,"×",1],[27,8,"×",1],[28,8,"×",1],[29,8,"×",1],[30,8,"×",1],[31,8,"×",1],[32,8,"×",1],[33,8,"Q",0],[34,8,"W",0],[35,8,"×",1],[36,8,"×",1],[37,8,"×",1],[38,8,"×",1],[39,8,"×",1],[40,8,"o",0],[41,8,"×",1],[42,8,"+",1],[43,8,"+",1],[44,8,"+",1],[45,8,"+",1],[46,8,"+",1],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[77,8,"&",0],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[48,9,"×",1],[49,9,"×",1],[50,9,"×",1],[51,9,"×",1],[52,9,"×",1],[53,9,"×",1],[54,9,"×",1],[55,9,"+",1],[56,9,"+",1],[57,9,"+",1],[58,9,"+",1],[59,9,"+",1],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[55,10,"×",1],[56,10,"×",1],[57,10,"×",1],[58,10,"×",1],[59,10,"×",1],[60,10,"o",0],[61,10,"×",1],[62,10,"×",1],[63,10,"×",1],[64,10,"+",1],[65,10,"+",1],[66,10,"+",1],[67,10,"+",1],[68,10,"+",1],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[55,11,"×",1],[56,11,"×",1],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[61,11,"×",1],[62,11,"×",1],[63,11,"×",1],[64,11,"+",1],[65,11,"+",1],[66,11,"+",1],[67,11,"+",1],[68,11,"+",1],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[64,12,"×",1],[65,12,"×",1],[66,12,"×",1],[67,12,"×",1],[68,12,"×",1],[69,12,"×",1],[70,12,"×",1],[71,12,"×",1],[72,12,"×",1],[73,12,"+",1],[74,12,"+",1],[75,12,"+",1],[76,12,"+",1],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[73,13,"×",1],[74,13,"×",1],[75,13,"×",1],[76,13,"×",1],[77,13,"U",0],[78,13,"×",1],[79,13,"×",1],[80,13,"×",1],[81,13,"×",1],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[23,14,"%",0],[50,14,"o",0],[82,14,"×",1],[83,14,"×",1],[84,14,"×",1],[85,14,"×",1],[86,14,"+",1],[87,14,"+",1],[88,14,"+",1],[89,14,"+",1],[90,14,"+",1],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[89,15,"×",1],[90,15,"×",1],[91,15,"+",1],[92,15,"+",1],[93,15,"+",1],[94,15,"+",1],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[91,16,"×",1],[92,16,"×",1],[93,16,"×",1],[94,16,"×",1],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[91,17,"×",1],[92,17,"×",1],[93,17,"×",1],[94,17,"×",1],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[91,18,"×",1],[92,18,"×",1],[93,18,"×",1],[94,18,"×",1],[95,18,"×",1],[96,18,"×",1],[97,18,"×",1],[98,18,"×",1],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[95,19,"×",1],[96,19,"×",1],[97,19,"×",1],[98,19,"×",1],[99,19,"+",1],[100,19,"+",1],[101,19,"+",1],[102,19,"+",1],[103,19,"+",1],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[95,20,"×",1],[96,20,"×",1],[97,20,"×",1],[98,20,"×",1],[99,20,"×",1],[100,20,"×",1],[101,20,"×",1],[102,20,"×",1],[103,20,"×",1],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[99,21,"×",1],[100,21,"×",1],[101,21,"×",1],[102,21,"×",1],[103,21,"×",1],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[99,22,"×",1],[100,22,"×",1],[101,22,"×",1],[102,22,"×",1],[103,22,"×",1],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[99,23,"×",1],[100,23,"×",1],[101,23,"×",1],[102,23,"×",1],[103,23,"×",1],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[99,24,"×",1],[100,24,"×",1],[101,24,"×",1],[102,24,"×",1],[103,24,"×",1],[104,24,"+",1],[105,24,"+",1],[106,24,"+",1],[107,24,"+",1],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[99,25,"×",1],[100,25,"×",1],[101,25,"×",1],[102,25,"×",1],[103,25,"×",1],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[99,26,"×",1],[100,26,"×",1],[101,26,"×",1],[102,26,"×",1],[103,26,"×",1],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[95,27,"×",1],[96,27,"×",1],[97,27,"×",1],[98,27,"×",1],[99,27,"×",1],[100,27,"×",1],[101,27,"×",1],[102,27,"×",1],[103,27,"×",1],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[95,28,"×",1],[96,28,"×",1],[97,28,"×",1],[98,28,"×",1],[99,28,"+",1],[100,28,"+",1],[101,28,"+",1],[102,28,"+",1],[103,28,"+",1],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[95,29,"×",1],[96,29,"×",1],[97,29,"×",1],[98,29,"×",1],[99,29,"+",1],[100,29,"+",1],[101,29,"+",1],[102,29,"+",1],[103,29,"+",1],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[91,30,"×",1],[92,30,"×",1],[93,30,"×",1],[94,30,"×",1],[95,30,"×",1],[96,30,"×",1],[97,30,"×",1],[98,30,"×",1],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[91,31,"×",1],[92,31,"×",1],[93,31,"×",1],[94,31,"×",1],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[86,32,"×",1],[87,32,"×",1],[88,32,"×",1],[89,32,"×",1],[90,32,"×",1],[91,32,"+",1],[92,32,"+",1],[93,32,"+",1],[94,32,"+",1],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[82,33,"×",1],[83,33,"×",1],[84,33,"×",1],[85,33,"×",1],[86,33,"+",1],[87,33,"+",1],[88,33,"+",1],[89,33,"+",1],[90,33,"+",1],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[73,34,"×",1],[74,34,"×",1],[75,34,"×",1],[76,34,"×",1],[77,34,"×",1],[78,34,"×",1],[79,34,"×",1],[80,34,"×",1],[81,34,"×",1],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[71,35,"&",0],[73,35,"×",1],[74,35,"×",1],[75,35,"×",1],[76,35,"×",1],[77,35,"×",1],[78,35,"×",1],[79,35,"×",1],[80,35,"×",1],[81,35,"×",1],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[64,36,"×",1],[65,36,"×",1],[66,36,"×",1],[67,36,"×",1],[68,36,"×",1],[69,36,"×",1],[70,36,"×",1],[71,36,"×",1],[72,36,"×",1],[73,36,"+",1],[74,36,"+",1],[75,36,"+",1],[76,36,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[55,37,"×",1],[56,37,"×",1],[57,37,"×",1],[58,37,"×",1],[59,37,"×",1],[60,37,"×",1],[61,37,"×",1],[62,37,"×",1],[63,37,"×",1],[64,37,"+",1],[65,37,"+",1],[66,37,"+",1],[67,37,"+",1],[68,37,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[47,38,"×",1],[48,38,"×",1],[49,38,"×",1],[50,38,"×",1],[51,38,"×",1],[52,38,"×",1],[53,38,"×",1],[54,38,"×",1],[55,38,"+",1],[56,38,"+",1],[57,38,"+",1],[58,38,"+",1],[59,38,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[25,39,"×",1],[26,39,"×",1],[27,39,"×",1],[28,39,"×",1],[29,39,"×",1],[30,39,"×",1],[31,39,"×",1],[32,39,"×",1],[33,39,"×",1],[34,39,"×",1],[35,39,"×",1],[36,39,"×",1],[37,39,"×",1],[38,39,"×",1],[39,39,"×",1],[40,39,"×",1],[41,39,"×",1],[42,39,"+",1],[43,39,"+",1],[44,39,"+",1],[45,39,"+",1],[46,39,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1]]},{duration:83.33333333333333,cells:[[0,3,"+",1],[1,3,"+",1],[2,3,"+",1],[0,4,"+",1],[1,4,"+",1],[2,4,"+",1],[3,4,"+",1],[4,4,"+",1],[5,4,"+",1],[6,4,"+",1],[7,4,"+",1],[8,4,"+",1],[9,4,"+",1],[10,4,"+",1],[11,4,"+",1],[12,4,"+",1],[13,4,"+",1],[14,4,"+",1],[15,4,"+",1],[16,4,"+",1],[17,4,"+",1],[18,4,"+",1],[19,4,"+",1],[20,4,"+",1],[21,4,"+",1],[22,4,"+",1],[23,4,"+",1],[24,4,"+",1],[25,4,"+",1],[26,4,"+",1],[27,4,"+",1],[28,4,"+",1],[29,4,"+",1],[30,4,"+",1],[31,4,"+",1],[32,4,"+",1],[33,4,"+",1],[34,4,"+",1],[35,4,"+",1],[36,4,"+",1],[37,4,"+",1],[38,4,"+",1],[39,4,"+",1],[40,4,"+",1],[41,4,"+",1],[50,4,"o",0],[51,4,"b",0],[53,4,"q",0],[54,4,"o",0],[56,4,"o",0],[57,4,"b",0],[58,4,"o",0],[60,4,"%",0],[63,4,"o",0],[64,4,"o",0],[0,5,"+",1],[1,5,"+",1],[2,5,"+",1],[3,5,"+",1],[4,5,"+",1],[5,5,"+",1],[6,5,"+",1],[7,5,"+",1],[8,5,"+",1],[9,5,"+",1],[10,5,"+",1],[11,5,"+",1],[12,5,"+",1],[13,5,"+",1],[14,5,"+",1],[15,5,"+",1],[16,5,"+",1],[17,5,"+",1],[18,5,"+",1],[19,5,"+",1],[20,5,"+",1],[21,5,"+",1],[22,5,"+",1],[23,5,"+",1],[24,5,"+",1],[25,5,"+",1],[26,5,"+",1],[27,5,"+",1],[28,5,"+",1],[29,5,"+",1],[30,5,"+",1],[31,5,"+",1],[32,5,"+",1],[33,5,"+",1],[34,5,"+",1],[35,5,"+",1],[36,5,"+",1],[37,5,"+",1],[38,5,"+",1],[39,5,"+",1],[40,5,"+",1],[41,5,"+",1],[43,5,"o",0],[49,5,"d",0],[50,5,"o",0],[59,5,"8",0],[60,5,"#",0],[70,5,"Z",0],[0,6,"+",1],[1,6,"+",1],[2,6,"+",1],[3,6,"+",1],[4,6,"+",1],[5,6,"+",1],[6,6,"+",1],[7,6,"+",1],[8,6,"+",1],[9,6,"+",1],[10,6,"+",1],[11,6,"+",1],[12,6,"+",1],[13,6,"+",1],[14,6,"+",1],[15,6,"+",1],[16,6,"+",1],[17,6,"+",1],[18,6,"+",1],[19,6,"+",1],[20,6,"+",1],[21,6,"+",1],[22,6,"+",1],[23,6,"+",1],[24,6,"+",1],[25,6,"+",1],[26,6,"+",1],[27,6,"+",1],[28,6,"+",1],[29,6,"+",1],[30,6,"+",1],[31,6,"+",1],[32,6,"+",1],[33,6,"+",1],[34,6,"+",1],[35,6,"+",1],[36,6,"+",1],[37,6,"+",1],[38,6,"+",1],[39,6,"o",0],[40,6,"m",0],[41,6,"+",1],[42,6,"o",0],[43,6,"m",0],[44,6,"+",1],[45,6,"+",1],[46,6,"+",1],[47,6,"#",0],[48,6,"+",1],[49,6,"+",1],[50,6,"+",1],[51,6,"+",1],[52,6,"+",1],[53,6,"+",1],[54,6,"8",0],[55,6,"+",1],[56,6,"+",1],[57,6,"+",1],[58,6,"+",1],[59,6,"+",1],[60,6,"W",0],[61,6,"o",0],[64,6,"%",0],[67,6,"o",0],[68,6,"o",0],[70,6,"#",0],[71,6,"W",0],[73,6,"W",0],[25,7,"+",1],[26,7,"+",1],[27,7,"+",1],[28,7,"+",1],[29,7,"+",1],[30,7,"+",1],[31,7,"+",1],[32,7,"+",1],[33,7,"+",1],[34,7,"+",1],[35,7,"+",1],[36,7,"+",1],[37,7,"+",1],[38,7,"+",1],[39,7,"+",1],[40,7,"+",1],[41,7,"+",1],[42,7,"o",0],[43,7,"+",1],[44,7,"+",1],[45,7,"+",1],[46,7,"X",0],[47,7,"8",0],[48,7,"+",1],[49,7,"+",1],[50,7,"+",1],[51,7,"+",1],[52,7,"+",1],[53,7,"8",0],[54,7,"M",0],[55,7,"+",1],[56,7,"+",1],[57,7,"+",1],[58,7,"+",1],[59,7,"o",0],[60,7,"J",0],[61,7,"o",0],[62,7,"+",1],[63,7,"+",1],[64,7,"+",1],[65,7,"+",1],[66,7,"o",0],[67,7,"C",0],[68,7,"+",1],[69,7,"+",1],[70,7,"+",1],[71,7,"+",1],[72,7,"+",1],[74,7,"O",0],[33,8,"Q",0],[34,8,"W",0],[40,8,"o",0],[47,8,"o",0],[48,8,"+",1],[49,8,"+",1],[50,8,"+",1],[51,8,"+",1],[52,8,"+",1],[53,8,"+",1],[54,8,"+",1],[55,8,"+",1],[56,8,"+",1],[57,8,"+",1],[58,8,"+",1],[59,8,"8",0],[60,8,"o",0],[61,8,"+",1],[62,8,"+",1],[63,8,"+",1],[64,8,"+",1],[65,8,"+",1],[66,8,"o",0],[67,8,"o",0],[68,8,"+",1],[69,8,"+",1],[70,8,"+",1],[71,8,"+",1],[72,8,"+",1],[73,8,"+",1],[74,8,"+",1],[75,8,"+",1],[76,8,"+",1],[77,8,"&",0],[78,8,"+",1],[79,8,"+",1],[80,8,"+",1],[81,8,"+",1],[30,9,"B",0],[33,9,"8",0],[40,9,"q",0],[47,9,"k",0],[60,9,"+",1],[61,9,"+",1],[62,9,"+",1],[63,9,"+",1],[64,9,"+",1],[65,9,"+",1],[66,9,"o",0],[67,9,"o",0],[68,9,"+",1],[69,9,"+",1],[70,9,"+",1],[71,9,"+",1],[72,9,"+",1],[73,9,"+",1],[74,9,"+",1],[75,9,"+",1],[76,9,"M",0],[77,9,"+",1],[78,9,"+",1],[79,9,"+",1],[80,9,"+",1],[81,9,"+",1],[82,9,"+",1],[83,9,"+",1],[84,9,"+",1],[85,9,"+",1],[86,9,"+",1],[87,9,"+",1],[88,9,"+",1],[89,9,"+",1],[90,9,"+",1],[29,10,"8",0],[30,10,"#",0],[39,10,"o",0],[40,10,"o",0],[50,10,"M",0],[60,10,"o",0],[69,10,"+",1],[70,10,"+",1],[71,10,"U",0],[72,10,"+",1],[73,10,"%",0],[74,10,"+",1],[75,10,"+",1],[76,10,"+",1],[77,10,"X",0],[78,10,"+",1],[79,10,"+",1],[80,10,"o",0],[81,10,"+",1],[82,10,"+",1],[83,10,"+",1],[84,10,"+",1],[85,10,"+",1],[86,10,"+",1],[87,10,"+",1],[88,10,"+",1],[89,10,"+",1],[90,10,"+",1],[91,10,"+",1],[92,10,"+",1],[93,10,"+",1],[94,10,"+",1],[26,11,"o",0],[27,11,"Q",0],[30,11,"%",0],[35,11,"%",0],[36,11,"M",0],[42,11,"o",0],[43,11,"o",0],[46,11,"o",0],[50,11,"%",0],[51,11,"8",0],[57,11,"W",0],[58,11,"%",0],[59,11,"o",0],[60,11,"L",0],[69,11,"%",0],[70,11,"W",0],[71,11,"+",1],[72,11,"+",1],[73,11,"%",0],[74,11,"+",1],[75,11,"+",1],[76,11,"+",1],[77,11,"W",0],[78,11,"Q",0],[79,11,"+",1],[80,11,"U",0],[81,11,"o",0],[82,11,"+",1],[83,11,"+",1],[84,11,"+",1],[85,11,"+",1],[86,11,"+",1],[87,11,"+",1],[88,11,"+",1],[89,11,"+",1],[90,11,"+",1],[91,11,"+",1],[92,11,"+",1],[93,11,"+",1],[94,11,"+",1],[26,12,"o",0],[27,12,"X",0],[29,12,"8",0],[30,12,"0",0],[32,12,"8",0],[33,12,"#",0],[36,12,"8",0],[42,12,"o",0],[43,12,"w",0],[46,12,"o",0],[47,12,"k",0],[59,12,"o",0],[60,12,"o",0],[77,12,"+",1],[78,12,"&",0],[79,12,"+",1],[80,12,"+",1],[81,12,"+",1],[82,12,"+",1],[83,12,"Q",0],[84,12,"X",0],[85,12,"8",0],[86,12,"+",1],[87,12,"+",1],[88,12,"+",1],[89,12,"+",1],[90,12,"+",1],[91,12,"+",1],[92,12,"+",1],[93,12,"+",1],[94,12,"+",1],[95,12,"+",1],[96,12,"+",1],[97,12,"+",1],[98,12,"+",1],[23,13,"O",0],[32,13,"B",0],[37,13,"M",0],[42,13,"o",0],[43,13,"o",0],[47,13,"e",0],[48,13,"L",0],[49,13,"O",0],[50,13,"A",0],[51,13,"o",0],[53,13,"B",0],[67,13,"U",0],[77,13,"U",0],[82,13,"+",1],[83,13,"o",0],[84,13,"o",0],[85,13,"+",1],[86,13,"+",1],[87,13,"+",1],[88,13,"+",1],[89,13,"+",1],[90,13,"+",1],[91,13,"+",1],[92,13,"+",1],[93,13,"+",1],[94,13,"+",1],[95,13,"+",1],[96,13,"+",1],[97,13,"+",1],[98,13,"+",1],[99,13,"+",1],[100,13,"+",1],[101,13,"+",1],[102,13,"+",1],[103,13,"+",1],[104,13,"+",1],[105,13,"+",1],[106,13,"+",1],[107,13,"+",1],[23,14,"%",0],[50,14,"o",0],[91,14,"+",1],[92,14,"+",1],[93,14,"+",1],[94,14,"+",1],[95,14,"+",1],[96,14,"+",1],[97,14,"+",1],[98,14,"+",1],[99,14,"+",1],[100,14,"+",1],[101,14,"+",1],[102,14,"+",1],[103,14,"+",1],[104,14,"+",1],[105,14,"+",1],[106,14,"+",1],[107,14,"+",1],[108,14,"+",1],[109,14,"+",1],[22,15,"#",0],[29,15,"J",0],[30,15,"M",0],[43,15,"%",0],[46,15,"o",0],[47,15,"o",0],[53,15,"o",0],[57,15,"%",0],[59,15,"o",0],[60,15,"J",0],[64,15,"W",0],[65,15,"%",0],[66,15,"&",0],[74,15,"%",0],[84,15,"X",0],[85,15,"8",0],[86,15,"o",0],[87,15,"A",0],[88,15,"o",0],[95,15,"+",1],[96,15,"+",1],[97,15,"+",1],[98,15,"+",1],[99,15,"+",1],[100,15,"+",1],[101,15,"+",1],[102,15,"+",1],[103,15,"+",1],[104,15,"+",1],[105,15,"+",1],[106,15,"+",1],[107,15,"+",1],[108,15,"+",1],[109,15,"+",1],[40,16,"o",0],[43,16,"o",0],[54,16,"o",0],[63,16,"8",0],[64,16,"8",0],[73,16,"&",0],[80,16,"&",0],[95,16,"+",1],[96,16,"+",1],[97,16,"+",1],[98,16,"+",1],[99,16,"+",1],[100,16,"+",1],[101,16,"+",1],[102,16,"+",1],[103,16,"+",1],[104,16,"+",1],[105,16,"+",1],[106,16,"+",1],[107,16,"+",1],[108,16,"+",1],[109,16,"+",1],[19,17,"o",0],[20,17,"k",0],[23,17,"#",0],[24,17,"X",0],[26,17,"J",0],[30,17,"&",0],[32,17,"%",0],[33,17,"W",0],[39,17,"o",0],[40,17,"w",0],[42,17,"o",0],[43,17,"m",0],[53,17,"o",0],[54,17,"o",0],[56,17,"8",0],[57,17,"#",0],[63,17,"%",0],[70,17,"o",0],[71,17,"A",0],[73,17,"C",0],[80,17,"W",0],[81,17,"Z",0],[83,17,"&",0],[84,17,"Q",0],[85,17,"8",0],[86,17,"o",0],[87,17,"p",0],[88,17,"o",0],[95,17,"+",1],[96,17,"+",1],[97,17,"+",1],[98,17,"+",1],[99,17,"+",1],[100,17,"+",1],[101,17,"+",1],[102,17,"+",1],[103,17,"+",1],[104,17,"+",1],[105,17,"+",1],[106,17,"+",1],[107,17,"+",1],[108,17,"+",1],[109,17,"+",1],[19,18,"o",0],[23,18,"#",0],[33,18,"%",0],[50,18,"&",0],[51,18,"X",0],[53,18,"o",0],[80,18,"o",0],[81,18,"o",0],[99,18,"+",1],[100,18,"+",1],[101,18,"+",1],[102,18,"+",1],[103,18,"+",1],[104,18,"+",1],[105,18,"+",1],[106,18,"+",1],[107,18,"+",1],[108,18,"+",1],[109,18,"+",1],[22,19,"L",0],[26,19,"M",0],[27,19,"Q",0],[33,19,"%",0],[36,19,"A",0],[37,19,"o",0],[46,19,"o",0],[47,19,"o",0],[48,19,"&",0],[49,19,"#",0],[50,19,"M",0],[63,19,"o",0],[64,19,"q",0],[66,19,"J",0],[67,19,"Z",0],[70,19,"U",0],[74,19,"B",0],[77,19,"8",0],[80,19,"z",0],[90,19,"L",0],[91,19,"M",0],[104,19,"+",1],[105,19,"+",1],[106,19,"+",1],[107,19,"+",1],[108,19,"+",1],[109,19,"+",1],[22,20,"%",0],[27,20,"8",0],[34,20,"8",0],[60,20,"8",0],[77,20,"&",0],[104,20,"+",1],[105,20,"+",1],[106,20,"+",1],[107,20,"+",1],[108,20,"+",1],[109,20,"+",1],[19,21,"m",0],[22,21,"O",0],[23,21,"0",0],[26,21,"X",0],[27,21,"o",0],[33,21,"L",0],[34,21,"o",0],[39,21,"Z",0],[40,21,"O",0],[42,21,"X",0],[43,21,"0",0],[44,21,"%",0],[46,21,"w",0],[53,21,"Z",0],[54,21,"&",0],[56,21,"&",0],[57,21,"X",0],[63,21,"0",0],[64,21,"8",0],[77,21,"#",0],[78,21,"W",0],[84,21,"o",0],[85,21,"8",0],[86,21,"o",0],[87,21,"e",0],[88,21,"o",0],[90,21,"#",0],[91,21,"8",0],[104,21,"+",1],[105,21,"+",1],[106,21,"+",1],[107,21,"+",1],[108,21,"+",1],[109,21,"+",1],[19,22,"Q",0],[23,22,"#",0],[26,22,"Q",0],[32,22,"o",0],[33,22,"Z",0],[34,22,"o",0],[40,22,"#",0],[50,22,"a",0],[83,22,"o",0],[84,22,"J",0],[85,22,"W",0],[104,22,"+",1],[105,22,"+",1],[106,22,"+",1],[107,22,"+",1],[108,22,"+",1],[109,22,"+",1],[19,23,"M",0],[29,23,"0",0],[32,23,"o",0],[33,23,"O",0],[39,23,"o",0],[40,23,"w",0],[49,23,"o",0],[50,23,"a",0],[63,23,"o",0],[64,23,"w",0],[67,23,"o",0],[70,23,"o",0],[71,23,"o",0],[73,23,"m",0],[77,23,"%",0],[84,23,"o",0],[90,23,"o",0],[91,23,"w",0],[104,23,"+",1],[105,23,"+",1],[106,23,"+",1],[107,23,"+",1],[108,23,"+",1],[109,23,"+",1],[19,24,"o",0],[20,24,"o",0],[29,24,"W",0],[30,24,"X",0],[32,24,"8",0],[33,24,"W",0],[39,24,"o",0],[40,24,"o",0],[47,24,"%",0],[60,24,"8",0],[61,24,"%",0],[64,24,"8",0],[67,24,"U",0],[70,24,"w",0],[73,24,"O",0],[74,24,"a",0],[77,24,"&",0],[80,24,"Z",0],[91,24,"o",0],[108,24,"+",1],[109,24,"+",1],[20,25,"b",0],[26,25,"%",0],[27,25,"B",0],[30,25,"W",0],[31,25,"%",0],[32,25,"8",0],[33,25,"#",0],[56,25,"o",0],[57,25,"X",0],[58,25,"&",0],[59,25,"%",0],[60,25,"&",0],[63,25,"0",0],[64,25,"0",0],[66,25,"8",0],[67,25,"o",0],[70,25,"w",0],[73,25,"o",0],[74,25,"k",0],[77,25,"Z",0],[78,25,"M",0],[80,25,"o",0],[81,25,"Q",0],[83,25,"8",0],[86,25,"o",0],[87,25,"h",0],[88,25,"o",0],[90,25,"M",0],[91,25,"W",0],[104,25,"+",1],[105,25,"+",1],[106,25,"+",1],[107,25,"+",1],[108,25,"+",1],[109,25,"+",1],[33,26,"Q",0],[34,26,"o",0],[43,26,"w",0],[53,26,"8",0],[54,26,"M",0],[56,26,"o",0],[57,26,"Q",0],[60,26,"B",0],[63,26,"W",0],[64,26,"8",0],[70,26,"b",0],[71,26,"q",0],[73,26,"k",0],[74,26,"e",0],[80,26,"o",0],[81,26,"X",0],[84,26,"Z",0],[85,26,"&",0],[86,26,"o",0],[87,26,"e",0],[90,26,"X",0],[91,26,"W",0],[104,26,"+",1],[105,26,"+",1],[106,26,"+",1],[107,26,"+",1],[108,26,"+",1],[109,26,"+",1],[42,27,"o",0],[43,27,"M",0],[50,27,"8",0],[51,27,"0",0],[52,27,"o",0],[53,27,"o",0],[56,27,"8",0],[57,27,"M",0],[60,27,"#",0],[61,27,"8",0],[63,27,"0",0],[64,27,"&",0],[66,27,"&",0],[67,27,"%",0],[70,27,"o",0],[80,27,"X",0],[81,27,"W",0],[83,27,"o",0],[84,27,"L",0],[85,27,"o",0],[104,27,"+",1],[105,27,"+",1],[106,27,"+",1],[107,27,"+",1],[108,27,"+",1],[109,27,"+",1],[32,28,"8",0],[33,28,"o",0],[34,28,"#",0],[35,28,"o",0],[36,28,"o",0],[37,28,"o",0],[40,28,"w",0],[42,28,"&",0],[43,28,"X",0],[51,28,"8",0],[53,28,"d",0],[67,28,"o",0],[77,28,"%",0],[84,28,"o",0],[85,28,"o",0],[104,28,"+",1],[105,28,"+",1],[106,28,"+",1],[107,28,"+",1],[108,28,"+",1],[109,28,"+",1],[29,29,"W",0],[30,29,"O",0],[32,29,"o",0],[33,29,"o",0],[34,29,"o",0],[35,29,"o",0],[36,29,"o",0],[37,29,"e",0],[39,29,"o",0],[50,29,"o",0],[53,29,"&",0],[60,29,"o",0],[63,29,"o",0],[64,29,"o",0],[66,29,"o",0],[67,29,"o",0],[70,29,"C",0],[71,29,"o",0],[81,29,"o",0],[86,29,"o",0],[87,29,"q",0],[88,29,"o",0],[104,29,"+",1],[105,29,"+",1],[106,29,"+",1],[107,29,"+",1],[108,29,"+",1],[109,29,"+",1],[29,30,"8",0],[30,30,"8",0],[32,30,"e",0],[33,30,"o",0],[34,30,"o",0],[35,30,"8",0],[36,30,"o",0],[37,30,"o",0],[39,30,"o",0],[40,30,"w",0],[41,30,"W",0],[42,30,"Z",0],[43,30,"M",0],[49,30,"o",0],[50,30,"o",0],[51,30,"o",0],[53,30,"b",0],[54,30,"o",0],[60,30,"C",0],[61,30,"o",0],[63,30,"o",0],[64,30,"C",0],[66,30,"o",0],[67,30,"o",0],[70,30,"o",0],[71,30,"Z",0],[73,30,"o",0],[74,30,"o",0],[77,30,"8",0],[78,30,"0",0],[80,30,"o",0],[81,30,"h",0],[99,30,"+",1],[100,30,"+",1],[101,30,"+",1],[102,30,"+",1],[103,30,"+",1],[104,30,"+",1],[105,30,"+",1],[106,30,"+",1],[107,30,"+",1],[108,30,"+",1],[109,30,"+",1],[37,31,"B",0],[44,31,"%",0],[56,31,"o",0],[57,31,"o",0],[63,31,"o",0],[66,31,"o",0],[67,31,"#",0],[68,31,"W",0],[69,31,"W",0],[70,31,"o",0],[71,31,"#",0],[73,31,"o",0],[74,31,"b",0],[80,31,"o",0],[81,31,"h",0],[95,31,"+",1],[96,31,"+",1],[97,31,"+",1],[98,31,"+",1],[99,31,"+",1],[100,31,"+",1],[101,31,"+",1],[102,31,"+",1],[103,31,"+",1],[104,31,"+",1],[105,31,"+",1],[106,31,"+",1],[107,31,"+",1],[108,31,"+",1],[109,31,"+",1],[39,32,"O",0],[40,32,"M",0],[53,32,"M",0],[54,32,"&",0],[56,32,"L",0],[57,32,"o",0],[60,32,"M",0],[61,32,"8",0],[64,32,"X",0],[66,32,"o",0],[67,32,"U",0],[70,32,"C",0],[71,32,"o",0],[73,32,"L",0],[74,32,"o",0],[77,32,"X",0],[78,32,"8",0],[80,32,"o",0],[81,32,"o",0],[95,32,"+",1],[96,32,"+",1],[97,32,"+",1],[98,32,"+",1],[99,32,"+",1],[100,32,"+",1],[101,32,"+",1],[102,32,"+",1],[103,32,"+",1],[104,32,"+",1],[105,32,"+",1],[106,32,"+",1],[107,32,"+",1],[108,32,"+",1],[109,32,"+",1],[43,33,"Z",0],[53,33,"o",0],[60,33,"O",0],[61,33,"W",0],[91,33,"+",1],[92,33,"+",1],[93,33,"+",1],[94,33,"+",1],[95,33,"+",1],[96,33,"+",1],[97,33,"+",1],[98,33,"+",1],[99,33,"+",1],[100,33,"+",1],[101,33,"+",1],[102,33,"+",1],[103,33,"+",1],[104,33,"+",1],[105,33,"+",1],[106,33,"+",1],[107,33,"+",1],[108,33,"+",1],[109,33,"+",1],[42,34,"%",0],[43,34,"8",0],[44,34,"M",0],[45,34,"%",0],[46,34,"o",0],[47,34,"o",0],[48,34,"o",0],[49,34,"o",0],[50,34,"z",0],[51,34,"e",0],[53,34,"e",0],[63,34,"%",0],[70,34,"&",0],[82,34,"+",1],[83,34,"+",1],[84,34,"+",1],[85,34,"+",1],[86,34,"+",1],[87,34,"+",1],[88,34,"+",1],[89,34,"+",1],[90,34,"+",1],[91,34,"+",1],[92,34,"+",1],[93,34,"+",1],[94,34,"+",1],[95,34,"+",1],[96,34,"+",1],[97,34,"+",1],[98,34,"+",1],[99,34,"+",1],[100,34,"+",1],[101,34,"+",1],[102,34,"+",1],[103,34,"+",1],[104,34,"+",1],[105,34,"+",1],[106,34,"+",1],[107,34,"+",1],[71,35,"&",0],[82,35,"+",1],[83,35,"+",1],[84,35,"+",1],[85,35,"+",1],[86,35,"+",1],[87,35,"+",1],[88,35,"+",1],[89,35,"+",1],[90,35,"+",1],[91,35,"+",1],[92,35,"+",1],[93,35,"+",1],[94,35,"+",1],[95,35,"+",1],[96,35,"+",1],[97,35,"+",1],[98,35,"+",1],[99,35,"+",1],[100,35,"+",1],[101,35,"+",1],[102,35,"+",1],[103,35,"+",1],[104,35,"+",1],[105,35,"+",1],[106,35,"+",1],[107,35,"+",1],[77,36,"+",1],[78,36,"+",1],[79,36,"+",1],[80,36,"+",1],[81,36,"+",1],[82,36,"+",1],[83,36,"+",1],[84,36,"+",1],[85,36,"+",1],[86,36,"+",1],[87,36,"+",1],[88,36,"+",1],[89,36,"+",1],[90,36,"+",1],[91,36,"+",1],[92,36,"+",1],[93,36,"+",1],[94,36,"+",1],[95,36,"+",1],[96,36,"+",1],[97,36,"+",1],[98,36,"+",1],[69,37,"+",1],[70,37,"+",1],[71,37,"+",1],[72,37,"+",1],[73,37,"+",1],[74,37,"+",1],[75,37,"+",1],[76,37,"+",1],[77,37,"+",1],[78,37,"+",1],[79,37,"+",1],[80,37,"+",1],[81,37,"+",1],[82,37,"+",1],[83,37,"+",1],[84,37,"+",1],[85,37,"+",1],[86,37,"+",1],[87,37,"+",1],[88,37,"+",1],[89,37,"+",1],[90,37,"+",1],[91,37,"+",1],[92,37,"+",1],[93,37,"+",1],[94,37,"+",1],[60,38,"+",1],[61,38,"+",1],[62,38,"+",1],[63,38,"+",1],[64,38,"+",1],[65,38,"+",1],[66,38,"+",1],[67,38,"+",1],[68,38,"+",1],[69,38,"+",1],[70,38,"+",1],[71,38,"+",1],[72,38,"+",1],[73,38,"+",1],[74,38,"+",1],[75,38,"+",1],[76,38,"+",1],[77,38,"+",1],[78,38,"+",1],[79,38,"+",1],[80,38,"+",1],[81,38,"+",1],[82,38,"+",1],[83,38,"+",1],[84,38,"+",1],[85,38,"+",1],[86,38,"+",1],[87,38,"+",1],[88,38,"+",1],[89,38,"+",1],[90,38,"+",1],[47,39,"+",1],[48,39,"+",1],[49,39,"+",1],[50,39,"+",1],[51,39,"+",1],[52,39,"+",1],[53,39,"+",1],[54,39,"+",1],[55,39,"+",1],[56,39,"+",1],[57,39,"+",1],[58,39,"+",1],[59,39,"+",1],[60,39,"+",1],[61,39,"+",1],[62,39,"+",1],[63,39,"+",1],[64,39,"+",1],[65,39,"+",1],[66,39,"+",1],[67,39,"+",1],[68,39,"+",1],[69,39,"+",1],[70,39,"+",1],[71,39,"+",1],[72,39,"+",1],[73,39,"+",1],[74,39,"+",1],[75,39,"+",1],[76,39,"+",1],[77,39,"+",1],[78,39,"+",1],[79,39,"+",1],[80,39,"+",1],[81,39,"+",1]]}],ai=594,li=360,ur=5.4,cr=9,LS=(e={})=>{const{showControls:t=!0,autoPlay:o=!0,onReady:r}=e,s=o!==!1,i=(0,_.useRef)(null),n=(0,_.useRef)(null),a=(0,_.useRef)(0),l=(0,_.useRef)(0),u=(0,_.useRef)(0),c=(0,_.useRef)(()=>{}),d=(0,_.useRef)(s),h=(0,_.useCallback)(N=>{d.current=N},[]),f=(0,_.useCallback)(()=>{h(!0)},[h]),p=(0,_.useCallback)(()=>{h(!1)},[h]),m=(0,_.useCallback)(()=>{h(!d.current)},[h]),b=(0,_.useCallback)(()=>{c.current&&c.current()},[]);return(0,_.useEffect)(()=>{d.current!==s&&h(s)},[s,h]),(0,_.useEffect)(()=>{const N=i.current;if(!N)return;const v=N.getContext("2d");if(!v)return;const M=window.devicePixelRatio||1;N.width=ai*M,N.height=li*M,N.style.width="594px",N.style.height="360px",v.resetTransform(),v.scale(M,M),v.textAlign="center",v.textBaseline="middle",v.font="9px SF Mono, Monaco, Cascadia Code, Consolas, JetBrains Mono, Fira Code, Monaspace Neon, Geist Mono, Courier New, monospace",v.imageSmoothingEnabled=!1,a.current=0,l.current=0,u.current=0;const T=S=>{const R=Jt[S];if(v.clearRect(0,0,ai,li),!!R)for(const w of R.cells){const W=w[0],O=w[1],F=w[2],X=S6[w[3]],Q=w.length>4?S6[w[4]]:null;Q&&(v.fillStyle=Q,v.fillRect(W*ur,O*cr,ur,cr)),v.fillStyle=X||"#ffffff",v.fillText(F,W*ur+ur/2,O*cr+cr/2)}};if(T(a.current),Jt.length===0){c.current=()=>{T(0)};return}const x=S=>{if(Jt.length===0)return;u.current===0&&(u.current=S);const R=S-u.current;if(u.current=S,d.current){l.current+=R;let w=a.current,W=l.current,O=Jt[w]?.duration??16;for(;W>=O&&Jt.length>0;)W-=O,w=(w+1)%Jt.length,O=Jt[w]?.duration??O;l.current=W,w!==a.current?(a.current=w,T(w)):T(a.current)}else T(a.current);n.current=window.requestAnimationFrame(x)};return n.current=window.requestAnimationFrame(x),c.current=()=>{a.current=0,l.current=0,u.current=0,T(0)},()=>{n.current!==null&&(window.cancelAnimationFrame(n.current),n.current=null)}},[]),(0,_.useEffect)(()=>{typeof r=="function"&&r({play:f,pause:p,togglePlay:m,restart:b})},[r,f,p,m,b]),g("div",{style:{display:"inline-flex",flexDirection:"column",alignItems:"center",width:"100%"},children:g("canvas",{ref:i,width:ai,height:li,style:{width:"594px",height:"360px",backgroundColor:"transparent",imageRendering:"pixelated"}},void 0,!1,{fileName:x6,lineNumber:218,columnNumber:7},void 0)},void 0,!1,{fileName:x6,lineNumber:210,columnNumber:5},void 0)},OS="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/md-preview/components/canvas/HeroAsciiCanvas.tsx";function ww(e){return g(LS,{autoPlay:e.autoPlay??!0,showControls:e.showControls??!1},void 0,!1,{fileName:OS,lineNumber:6,columnNumber:10},this)}var FS={Row:a9,Label:s9,Portal:o9,Overlay:j5,String:Y5,Number:n9,Boolean:t9,Select:K5,Vector:i9,InnerLabel:H5},PS=kr(l9(),1),St="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/ui/FrequencyInput.tsx",DS=a1.div` - display: flex; - flex-direction: column; - gap: 4px; - width: 100%; - position: relative; - z-index: ${({$isOpen:e})=>e?1e3:"auto"}; -`,kS=a1.label` - font-size: 10px; - font-weight: 500; - color: ${({theme:e})=>e.colors.textSecondary}; - text-transform: uppercase; - letter-spacing: 0.05em; -`,XS=a1.div` - display: flex; - align-items: center; - gap: 6px; - width: 100%; -`,IS=a1.input` - background: ${({theme:e})=>e.colors.surface}; - border: 1px solid ${({theme:e})=>e.colors.border}; - border-radius: 4px; - padding: 4px 4px; - color: ${({theme:e})=>e.colors.textPrimary}; - font-size: 11px; - font-family: ${({theme:e})=>e.typography.mono}; - flex: 1; - min-width: 0; - cursor: ew-resize; - - &::placeholder { - color: ${({theme:e})=>e.colors.textMuted}; - opacity: 1; - } - - &:focus { - outline: none; - border-color: ${({theme:e})=>e.colors.primary}; - box-shadow: 0 0 0 2px ${({theme:e})=>e.colors.primary}22; - cursor: text; - } - - &:disabled { - opacity: 0.5; - cursor: not-allowed; - } - - &::-webkit-inner-spin-button, - &::-webkit-outer-spin-button { - -webkit-appearance: none; - margin: 0; - } -`,GS=a1.div` - position: relative; - z-index: ${({$isOpen:e})=>e?1e3:1}; -`,zS=a1.button` - background: ${({theme:e})=>e.colors.surface||"rgba(255, 255, 255, 0.05)"}; - border: 1px solid - ${({theme:e})=>e.colors.border||"rgba(255, 255, 255, 0.1)"}; - border-radius: 4px; - padding: 2px; - font-size: 9px; - font-family: ${({theme:e})=>e.typography.mono||"monospace"}; - color: ${({theme:e})=>e.colors.primary}; - min-width: 44px; - width: 44px; - height: 24px; - cursor: pointer; - text-align: center; - transition: all 0.2s ease; - - &:hover:not(:disabled) { - background: ${({theme:e})=>e.colors.border}44; - } - - &:disabled { - opacity: 0.5; - cursor: not-allowed; - } - - &:focus { - outline: none; - border-color: ${({theme:e})=>e.colors.primary}; - } -`,VS=a1.div` - position: absolute; - top: calc(100% + 4px); - right: 0; - display: flex; - flex-direction: column; - min-width: 60px; - border: 1px solid ${({theme:e})=>e.colors.border}; - border-radius: 6px; - background: ${({theme:e})=>e.colors.surface}; - box-shadow: 0 10px 24px - ${({theme:e})=>e.mode==="light"?"rgba(31, 37, 50, 0.14)":"rgba(0, 0, 0, 0.34)"}; - overflow: hidden; - z-index: 20; -`,QS=a1.button` - border: 0; - border-radius: 0; - background: ${({theme:e,$active:t})=>t?`${e.colors.primary}1f`:e.colors.surface}; - color: ${({theme:e,$active:t})=>t?e.colors.primary:e.colors.textPrimary}; - cursor: pointer; - font-family: ${({theme:e})=>e.typography.mono||"monospace"}; - font-size: 10px; - padding: 7px 10px; - text-align: left; - - &:hover { - background: ${({theme:e})=>e.colors.surfaceHover}; - } -`,$S=["Hz","kHz","MHz","GHz"],jt=(e,t)=>{},ZS=_.memo(({valueHz:e,onChangeHz:t,minHz:o=0,maxHz:r=3e10,stepHz:s,label:i,id:n,placeholder:a,autoFocus:l,commitOnBlur:u,onBlur:c,onKeyDown:d,disabled:h,className:f,onMenuOpenChange:p})=>{const m=(0,_.useMemo)(()=>D3(e),[e]),[b,N]=(0,_.useState)(it(xt(m.value))),[v,M]=(0,_.useState)(m.unit),[T,x]=(0,_.useState)(!1);(0,_.useEffect)(()=>{p?.(T)},[T,p]);const S=(0,_.useRef)(!1),R=(0,_.useRef)(null),w=(0,_.useRef)(null),W=(0,_.useRef)(e),O=(0,_.useRef)(e);(0,_.useEffect)(()=>{const I=Ys(e,o,r);if(Math.abs(I-e)>.001){t(I);return}if(!(Math.abs(e-W.current)<.001)&&(W.current=e,O.current=e,!S.current)){const{value:y1,unit:K1}=D3(e);N(it(xt(y1))),M(K1)}},[e]);const F=(0,_.useCallback)((I,y1=!1,K1=!1)=>{const R1=Ys(I,o,r);if(W.current=R1,O.current=R1,t(R1),y1)if(K1){const D1=R1/ar(v);N(v==="Hz"?lr(R1):it(xt(D1)))}else{const{value:D1,unit:l1}=D3(R1);M(l1),N(l1==="Hz"?lr(R1):it(xt(D1)))}},[o,r,t,v]),X=(0,_.useRef)(null),Q=(0,_.useRef)(!1),L=(0,_.useCallback)(I=>{h||I.button===0&&(X.current={x:I.clientX,value:W.current,unit:v},Q.current=!1,I.currentTarget.setPointerCapture(I.pointerId))},[h,v]),D=(0,_.useCallback)(I=>{if(!X.current)return;const y1=I.clientX-X.current.x;if(Q.current||Math.abs(y1)>3&&(Q.current=!0,R.current?.focus()),Q.current){I.preventDefault(),I.stopPropagation();let K1=1;const R1=X.current.unit;R1==="kHz"?K1=1e3:R1==="MHz"?K1=1e6:R1==="GHz"&&(K1=1e7);let D1=1;I.shiftKey?D1=10:I.altKey&&(D1=.1);const l1=I.movementX*K1*D1,e1=W.current+l1;F(e1,!0,!0)}},[v,F]),$=(0,_.useCallback)(I=>{X.current&&(I.currentTarget.releasePointerCapture(I.pointerId),X.current=null,Q.current&&(I.preventDefault(),I.stopPropagation(),R.current?.blur(),R.current?.focus()))},[]),k=I=>{if(!h&&(I.key==="ArrowUp"||I.key==="ArrowDown")){I.stopPropagation(),I.preventDefault();const y1=I.key==="ArrowUp"?1:-1,K1=I.shiftKey?10:1,R1=W.current;let D1=1;Number.isFinite(s)&&s>0?D1=s:v==="kHz"?D1=1e3:v==="MHz"?D1=1e6:v==="GHz"&&(D1=1e9),F(R1+y1*D1*K1,!0,!0)}},c1=I=>{if(h)return;const y1=I.target.value.replace(/\s+/g,"");if(N(y1),u)return;const K1=parseFloat(y1);if(Number.isFinite(K1)){const R1=ar(v),D1=K1*R1,l1=Ys(D1,o,r);Math.abs(l1-D1)>.1&&N(it(xt(l1/R1))),W.current=l1,O.current=l1,t(l1)}},h1=()=>{h||(S.current=!0)},g1=I=>{h||(jt("change",{from:v,to:I,hz:W.current}),M(I),x(!1),N(I==="Hz"?lr(W.current):it(xt(W.current/ar(I)))))},E1=I=>{if(h)return;const y1=I.relatedTarget;if(y1&&w.current?.contains(y1)){jt("container-blur-inside",{displayUnit:v,menuOpen:T});return}if(jt("container-blur-outside",{displayUnit:v,menuOpen:T,commitOnBlur:!!u}),x(!1),S.current=!1,u){const D1=parseFloat(b.replace(/\s+/g,""));if(Number.isFinite(D1)){const l1=D1*ar(v);F(l1,!0)}else{const{value:l1,unit:e1}=D3(W.current);N(it(xt(l1))),M(e1)}c?.();return}const{value:K1,unit:R1}=D3(W.current);M(R1),N(R1==="Hz"?lr(W.current):it(xt(K1))),c?.()},H=(0,_.useRef)(null),[J,q1]=(0,_.useState)({});return(0,_.useEffect)(()=>{if(T&&H.current){const I=H.current.getBoundingClientRect();q1({position:"fixed",top:I.bottom+4,right:window.innerWidth-I.right,zIndex:1e5})}},[T]),g(DS,{ref:w,className:`${f||""} ${T?"leva-unit-menu-open":""}`,onBlur:E1,$isOpen:T,children:[i&&g(kS,{htmlFor:n,children:i},void 0,!1,{fileName:St,lineNumber:495,columnNumber:19},void 0),g(XS,{children:[g(IS,{id:n,ref:R,type:"text",value:b,onFocus:h1,onKeyDown:I=>{d?.(I),I.defaultPrevented||k(I)},onChange:c1,onPointerDown:L,onPointerMove:D,onPointerUp:$,autoComplete:"off",spellCheck:!1,placeholder:a,autoFocus:l,disabled:h},void 0,!1,{fileName:St,lineNumber:497,columnNumber:11},void 0),g(GS,{$isOpen:T,children:[g(zS,{ref:H,type:"button",disabled:h,"aria-haspopup":"listbox","aria-expanded":T,"aria-label":"Frequency unit",onPointerDown:I=>{jt("button-pointerdown",{displayUnit:v,menuOpen:T,disabled:!!h}),I.preventDefault(),I.stopPropagation(),h||x(y1=>!y1)},onClick:I=>{jt("button-click",{displayUnit:v,menuOpen:T,disabled:!!h}),I.preventDefault(),I.stopPropagation()},children:v},void 0,!1,{fileName:St,lineNumber:520,columnNumber:13},void 0),T&&(0,PS.createPortal)(g(VS,{role:"listbox","aria-label":"Frequency unit options",style:J,children:$S.map(I=>g(QS,{type:"button",role:"option","aria-selected":I===v,$active:I===v,onPointerDown:y1=>{jt("option-pointerdown",{displayUnit:v,unit:I}),y1.preventDefault(),y1.stopPropagation(),g1(I)},onClick:y1=>{jt("option-click",{displayUnit:v,unit:I}),y1.preventDefault(),y1.stopPropagation()},children:I},I,!1,{fileName:St,lineNumber:559,columnNumber:21},void 0))},void 0,!1,{fileName:St,lineNumber:553,columnNumber:17},void 0),document.body)]},void 0,!0,{fileName:St,lineNumber:519,columnNumber:11},void 0)]},void 0,!0,{fileName:St,lineNumber:496,columnNumber:9},void 0)]},void 0,!0,{fileName:St,lineNumber:489,columnNumber:7},void 0)}),k3="/Users/ceanelamerez/Documents/codescratch.nosync/n-apt/src/ts/components/ui/levaFrequencyPlugin.tsx",qS=a1.div` - position: relative; - z-index: ${e=>e.$isMenuOpen?1e5:1}; -`,HS=a1.div` - flex: 1; - display: flex; - overflow: visible; -`,JS=()=>{const{label:e,value:t,onUpdate:o,id:r}=e9(),{Row:s,Label:i}=FS,[n,a]=_.useState(!1);return g(qS,{$isMenuOpen:n,children:g(s,{input:!0,children:[g(i,{children:e},void 0,!1,{fileName:k3,lineNumber:25,columnNumber:9},void 0),g(HS,{onPointerDown:l=>l.stopPropagation(),onKeyDown:l=>l.stopPropagation(),children:g(ZS,{valueHz:t,onChangeHz:o,id:r,stepHz:1e6,onMenuOpenChange:a},void 0,!1,{fileName:k3,lineNumber:30,columnNumber:11},void 0)},void 0,!1,{fileName:k3,lineNumber:26,columnNumber:9},void 0)]},void 0,!0,{fileName:k3,lineNumber:24,columnNumber:7},void 0)},void 0,!1,{fileName:k3,lineNumber:23,columnNumber:5},void 0)},T6=typeof window<"u",_w=T6&&window.__LEVA_FREQUENCY_PLUGIN__?window.__LEVA_FREQUENCY_PLUGIN__:(()=>{const e=r9({component:JS,normalize:t=>({value:Number(t)})});return T6&&(window.__LEVA_FREQUENCY_PLUGIN__=e),e})(),Aw=a1.button` - position: absolute; - bottom: 16px; - right: 16px; - background: rgba(255, 255, 255, 0.85); - border: 1px solid rgba(0, 0, 0, 0.15); - color: #1f2937; - padding: 6px 12px; - border-radius: 6px; - font-family: inherit; - font-size: 0.8rem; - font-weight: 500; - cursor: pointer; - pointer-events: auto; - display: flex; - align-items: center; - gap: 6px; - box-shadow: 0 1px 3px rgba(0,0,0,0.08); - transition: all 0.2s ease; - - &:hover { - background: #ffffff; - box-shadow: 0 2px 4px rgba(0,0,0,0.12); - } - - &:active { - transform: scale(0.96); - } -`;export{bw as AmplitudeModulationCanvas,Sw as BodyAttenuationCanvas,Tw as EndpointRangeCanvas,vw as FrequencyModulationCanvas,ww as HeroAsciiCanvas,Mw as HeterodyningCanvas,xw as ImpedanceCanvas,Nw as MultipathCanvas,AT as PhaseShiftingCanvas,yw as TimeOfFlightCanvas}; diff --git a/docs/assets/index-B5pL98hP.css b/docs/assets/index-B5pL98hP.css new file mode 100644 index 00000000..d92f42e1 --- /dev/null +++ b/docs/assets/index-B5pL98hP.css @@ -0,0 +1 @@ +@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/n-apt/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2)format("woff2"),url(/n-apt/assets/KaTeX_AMS-Regular-DMm9YOAa.woff)format("woff"),url(/n-apt/assets/KaTeX_AMS-Regular-DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/n-apt/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff)format("woff"),url(/n-apt/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/n-apt/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff)format("woff"),url(/n-apt/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/n-apt/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff)format("woff"),url(/n-apt/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/n-apt/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff)format("woff"),url(/n-apt/assets/KaTeX_Fraktur-Regular-CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/n-apt/assets/KaTeX_Main-Bold-Cx986IdX.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Main-Bold-Jm3AIy58.woff)format("woff"),url(/n-apt/assets/KaTeX_Main-Bold-waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/n-apt/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff)format("woff"),url(/n-apt/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/n-apt/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Main-Italic-BMLOBm91.woff)format("woff"),url(/n-apt/assets/KaTeX_Main-Italic-3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/n-apt/assets/KaTeX_Main-Regular-B22Nviop.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Main-Regular-Dr94JaBh.woff)format("woff"),url(/n-apt/assets/KaTeX_Main-Regular-ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/n-apt/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff)format("woff"),url(/n-apt/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/n-apt/assets/KaTeX_Math-Italic-t53AETM-.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Math-Italic-DA0__PXp.woff)format("woff"),url(/n-apt/assets/KaTeX_Math-Italic-flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/n-apt/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2)format("woff2"),url(/n-apt/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff)format("woff"),url(/n-apt/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/n-apt/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2)format("woff2"),url(/n-apt/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff)format("woff"),url(/n-apt/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/n-apt/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2)format("woff2"),url(/n-apt/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff)format("woff"),url(/n-apt/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/n-apt/assets/KaTeX_Script-Regular-D3wIWfF6.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Script-Regular-D5yQViql.woff)format("woff"),url(/n-apt/assets/KaTeX_Script-Regular-C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/n-apt/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Size1-Regular-C195tn64.woff)format("woff"),url(/n-apt/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/n-apt/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Size2-Regular-oD1tc_U0.woff)format("woff"),url(/n-apt/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC)format("woff2"),url(/n-apt/assets/KaTeX_Size3-Regular-CTq5MqoE.woff)format("woff"),url(/n-apt/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/n-apt/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Size4-Regular-BF-4gkZK.woff)format("woff"),url(/n-apt/assets/KaTeX_Size4-Regular-DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/n-apt/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2)format("woff2"),url(/n-apt/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff)format("woff"),url(/n-apt/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/docs/assets/index-BRSQXCQh.js b/docs/assets/index-BRSQXCQh.js deleted file mode 100644 index cc7addb0..00000000 --- a/docs/assets/index-BRSQXCQh.js +++ /dev/null @@ -1,6219 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/canvas-dPePUOFu.js","assets/CanvasText-BY4b_hDf.js","assets/TriangulationCloseEnoughCanvas-DuTIU7cX.js","assets/TriangulationMapCanvas-DenpjNdi.js"])))=>i.map(i=>d[i]); -var a8e=Object.create,yv=Object.defineProperty,i8e=Object.getOwnPropertyDescriptor,o8e=Object.getOwnPropertyNames,s8e=Object.getPrototypeOf,t2e=Object.prototype.hasOwnProperty,n2e=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}},er=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),Bv=(e,t)=>{let n={};for(var r in e)yv(n,r,{get:e[r],enumerable:!0});return t||yv(n,Symbol.toStringTag,{value:"Module"}),n},r2e=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(var i=o8e(t),s=0,l=i.length,u;st[d]).bind(null,u),enumerable:!(r=i8e(t,u))||r.enumerable});return e},$l=(e,t,n)=>(n=e!=null?a8e(s8e(e)):{},r2e(t||!e||!e.__esModule?yv(n,"default",{value:e,enumerable:!0}):n,e)),l8e=e=>t2e.call(e,"module.exports")?e["module.exports"]:r2e(yv({},"__esModule",{value:!0}),e);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var c8e=er((e=>{(function(){function t(){if(F=!1,ce){var se=e.unstable_now();Me=se;var he=!0;try{e:{z=!1,P&&(P=!1,J(V),V=-1),I=!0;var re=C;try{t:{for(l(se),T=r(_);T!==null&&!(T.expirationTime>se&&d());){var Be=T.callback;if(typeof Be=="function"){T.callback=null,C=T.priorityLevel;var Y=Be(T.expirationTime<=se);if(se=e.unstable_now(),typeof Y=="function"){T.callback=Y,l(se),he=!0;break t}T===r(_)&&i(_),l(se)}else i(_);T=r(_)}if(T!==null)he=!0;else{var Ot=r(x);Ot!==null&&p(u,Ot.startTime-se),he=!1}}break e}finally{T=null,C=re,I=!1}he=void 0}}finally{he?ue():ce=!1}}}function n(se,he){var re=se.length;se.push(he);e:for(;0>>1,Y=se[Be];if(0>>1;Bes(W,re))Zes(He,W)?(se[Be]=He,se[Ze]=re,Be=Ze):(se[Be]=W,se[oe]=re,Be=oe);else if(Zes(He,re))se[Be]=He,se[Ze]=re,Be=Ze;else break e}}return he}function s(se,he){var re=se.sortIndex-he.sortIndex;return re!==0?re:se.id-he.id}function l(se){for(var he=r(x);he!==null;){if(he.callback===null)i(x);else if(he.startTime<=se)i(x),he.sortIndex=he.expirationTime,n(_,he);else break;he=r(x)}}function u(se){if(P=!1,l(se),!z)if(r(_)!==null)z=!0,ce||(ce=!0,ue());else{var he=r(x);he!==null&&p(u,he.startTime-se)}}function d(){return F?!0:!(e.unstable_now()-Mese||125Be?(se.sortIndex=re,n(x,se),r(_)===null&&se===r(x)&&(P?(J(V),V=-1):P=!0,p(u,re-Be))):(se.sortIndex=Y,n(_,se),z||I||(z=!0,ce||(ce=!0,ue()))),se},e.unstable_shouldYield=d,e.unstable_wrapCallback=function(se){var he=C;return function(){var re=C;C=he;try{return se.apply(this,arguments)}finally{C=re}}},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),u8e=er(((e,t)=>{t.exports=c8e()})),d8e=er(((e,t)=>{(function(){function n(H,Te){Object.defineProperty(s.prototype,H,{get:function(){}})}function r(H){return H===null||typeof H!="object"?null:(H=Ve&&H[Ve]||H["@@iterator"],typeof H=="function"?H:null)}function i(H,Te){H=(H=H.constructor)&&(H.displayName||H.name)||"ReactClass";var qe=H+"."+Te;ut[qe]||(ut[qe]=!0)}function s(H,Te,qe){this.props=H,this.context=Te,this.refs=xr,this.updater=qe||zn}function l(){}function u(H,Te,qe){this.props=H,this.context=Te,this.refs=xr,this.updater=qe||zn}function d(){}function p(H){return""+H}function f(H){try{p(H);var Te=!1}catch{Te=!0}if(Te){Te=console;var qe=Te.error,tt=typeof Symbol=="function"&&Symbol.toStringTag&&H[Symbol.toStringTag]||H.constructor.name||"Object";return qe.call(Te,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",tt),p(H)}}function y(H){if(H==null)return null;if(typeof H=="function")return H.$$typeof===$t?null:H.displayName||H.name||null;if(typeof H=="string")return H;switch(H){case Ot:return"Fragment";case W:return"Profiler";case oe:return"StrictMode";case It:return"Suspense";case it:return"SuspenseList";case en:return"Activity"}if(typeof H=="object")switch(H.tag,H.$$typeof){case Y:return"Portal";case He:return H.displayName||"Context";case Ze:return(H._context.displayName||"Context")+".Consumer";case yt:var Te=H.render;return H=H.displayName,H||(H=Te.displayName||Te.name||"",H=H!==""?"ForwardRef("+H+")":"ForwardRef"),H;case Gt:return Te=H.displayName||null,Te!==null?Te:y(H.type)||"Memo";case Ht:Te=H._payload,H=H._init;try{return y(H(Te))}catch{}}return null}function v(H){if(H===Ot)return"<>";if(typeof H=="object"&&H!==null&&H.$$typeof===Ht)return"<...>";try{var Te=y(H);return Te?"<"+Te+">":"<...>"}catch{return"<...>"}}function _(){var H=ft.A;return H===null?null:H.getOwner()}function x(){return Error("react-stack-top-frame")}function E(H){if(wt.call(H,"key")){var Te=Object.getOwnPropertyDescriptor(H,"key").get;if(Te&&Te.isReactWarning)return!1}return H.key!==void 0}function T(H,Te){function qe(){St||(St=!0)}qe.isReactWarning=!0,Object.defineProperty(H,"key",{get:qe,configurable:!0})}function C(){var H=y(this.type);return on[H]||(on[H]=!0),H=this.props.ref,H!==void 0?H:null}function I(H,Te,qe,tt,ot,Zt){var ct=qe.ref;return H={$$typeof:Be,type:H,key:Te,props:qe,_owner:tt},(ct!==void 0?ct:null)!==null?Object.defineProperty(H,"ref",{enumerable:!1,get:C}):Object.defineProperty(H,"ref",{enumerable:!1,value:null}),H._store={},Object.defineProperty(H._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(H,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(H,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:ot}),Object.defineProperty(H,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Zt}),Object.freeze&&(Object.freeze(H.props),Object.freeze(H)),H}function z(H,Te){return Te=I(H.type,Te,H.props,H._owner,H._debugStack,H._debugTask),H._store&&(Te._store.validated=H._store.validated),Te}function P(H){F(H)?H._store&&(H._store.validated=1):typeof H=="object"&&H!==null&&H.$$typeof===Ht&&(H._payload.status==="fulfilled"?F(H._payload.value)&&H._payload.value._store&&(H._payload.value._store.validated=1):H._store&&(H._store.validated=1))}function F(H){return typeof H=="object"&&H!==null&&H.$$typeof===Be}function $(H){var Te={"=":"=0",":":"=2"};return"$"+H.replace(/[=:]/g,function(qe){return Te[qe]})}function J(H,Te){return typeof H=="object"&&H!==null&&H.key!=null?(f(H.key),$(""+H.key)):Te.toString(36)}function Z(H){switch(H.status){case"fulfilled":return H.value;case"rejected":throw H.reason;default:switch(typeof H.status=="string"?H.then(d,d):(H.status="pending",H.then(function(Te){H.status==="pending"&&(H.status="fulfilled",H.value=Te)},function(Te){H.status==="pending"&&(H.status="rejected",H.reason=Te)})),H.status){case"fulfilled":return H.value;case"rejected":throw H.reason}}throw H}function ce(H,Te,qe,tt,ot){var Zt=typeof H;(Zt==="undefined"||Zt==="boolean")&&(H=null);var ct=!1;if(H===null)ct=!0;else switch(Zt){case"bigint":case"string":case"number":ct=!0;break;case"object":switch(H.$$typeof){case Be:case Y:ct=!0;break;case Ht:return ct=H._init,ce(ct(H._payload),Te,qe,tt,ot)}}if(ct){ct=H,ot=ot(ct);var kt=tt===""?"."+J(ct,0):tt;return Ye(ot)?(qe="",kt!=null&&(qe=kt.replace(xe,"$&/")+"/"),ce(ot,Te,qe,"",function(Fe){return Fe})):ot!=null&&(F(ot)&&(ot.key!=null&&(ct&&ct.key===ot.key||f(ot.key)),qe=z(ot,qe+(ot.key==null||ct&&ct.key===ot.key?"":(""+ot.key).replace(xe,"$&/")+"/")+kt),tt!==""&&ct!=null&&F(ct)&&ct.key==null&&ct._store&&!ct._store.validated&&(qe._store.validated=2),ot=qe),Te.push(ot)),1}if(ct=0,kt=tt===""?".":tt+":",Ye(H))for(var Q=0;Q"u");var ot=new MessageChannel;ot.port1.onmessage=tt,ot.port2.postMessage(void 0)}}return rt(H)}function Re(H){return 1ft.recentlyCreatedOwnerStacks++;return I(H,ot,tt,_(),Q?Error("react-stack-top-frame"):De,Q?et(v(H)):ze)},e.createRef=function(){var H={current:null};return Object.seal(H),H},e.forwardRef=function(H){H!=null&&H.$$typeof===Gt||typeof H!="function"||H.length!==0&&H.length,H!=null&&H.defaultProps!=null;var Te={$$typeof:yt,render:H},qe;return Object.defineProperty(Te,"displayName",{enumerable:!1,configurable:!0,get:function(){return qe},set:function(tt){qe=tt,H.name||H.displayName||(Object.defineProperty(H,"name",{value:tt}),H.displayName=tt)}}),Te},e.isValidElement=F,e.lazy=function(H){H={_status:-1,_result:H};var Te={$$typeof:Ht,_payload:H,_init:ne},qe={name:"lazy",start:-1,end:-1,value:null,owner:null,debugStack:Error("react-stack-top-frame"),debugTask:console.createTask?void 0:null};return H._ioInfo=qe,Te._debugInfo=[{awaited:qe}],Te},e.memo=function(H,Te){Te={$$typeof:Gt,type:H,compare:Te===void 0?null:Te};var qe;return Object.defineProperty(Te,"displayName",{enumerable:!1,configurable:!0,get:function(){return qe},set:function(tt){qe=tt,H.name||H.displayName||(Object.defineProperty(H,"name",{value:tt}),H.displayName=tt)}}),Te},e.startTransition=function(H){var Te=ft.T,qe={};qe._updatedFibers=new Set,ft.T=qe;try{var tt=H(),ot=ft.S;ot!==null&&ot(qe,tt),typeof tt=="object"&&tt!==null&&typeof tt.then=="function"&&(ft.asyncTransitions++,tt.then(ue,ue),tt.then(d,Ie))}catch(Zt){Ie(Zt)}finally{Te===null&&qe._updatedFibers&&(H=qe._updatedFibers.size,qe._updatedFibers.clear(),10{t.exports=d8e()})),h8e=er((e=>{(function(){function t(){}function n(v){return""+v}function r(v,_,x){var E=3{t.exports=h8e()})),p8e=er((e=>{(function(){function t(a,o){for(a=a.memoizedState;a!==null&&0=o.length)return h;var g=o[c],k=_i(a)?a.slice():sr({},a);return k[g]=n(a[g],o,c+1,h),k}function r(a,o,c){if(o.length===c.length){for(var h=0;hh1||(dX[h1],a.current=uX[h1],uX[h1]=null,dX[h1]=null,h1--)}function de(a,o,c){h1++,uX[h1]=a.current,dX[h1]=c,a.current=o}function Re(a){return a}function se(a,o){de(x0,o,a),de(R5,a,a),de(b0,null,a);var c=o.nodeType;switch(c){case 9:case 11:c=c===9?"#document":"#fragment",o=(o=o.documentElement)&&(o=o.namespaceURI)?xie(o):C1;break;default:if(c=o.tagName,o=o.namespaceURI)o=xie(o),o=wie(o,c);else switch(c){case"svg":o=Ey;break;case"math":o=l7;break;default:o=C1}}c=c.toLowerCase(),c=e1(null,c),c={context:o,ancestorInfo:c},ue(b0,a),de(b0,c,a)}function he(a){ue(b0,a),ue(R5,a),ue(x0,a)}function re(){return b0.current}function Be(a){a.memoizedState!==null&&de(c6,a,a);var o=b0.current,c=a.type,h=wie(o.context,c);c=e1(o.ancestorInfo,c),h={context:h,ancestorInfo:c},o!==h&&(de(R5,a,a),de(b0,h,a))}function Y(a){R5.current===a&&(ue(b0,a),ue(R5,a)),c6.current===a&&(ue(c6,a),wg._currentValue=bd)}function Ot(){}function oe(){if(D5===0){Jie=console.log,eoe=console.info,toe=console.warn,noe=console.error,roe=console.group,aoe=console.groupCollapsed,ioe=console.groupEnd;var a={configurable:!0,enumerable:!0,value:Ot,writable:!0};Object.defineProperties(console,{info:a,log:a,warn:a,error:a,group:a,groupCollapsed:a,groupEnd:a})}D5++}function W(){if(D5--,D5===0){var a={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:sr({},a,{value:Jie}),info:sr({},a,{value:eoe}),warn:sr({},a,{value:toe}),error:sr({},a,{value:noe}),group:sr({},a,{value:roe}),groupCollapsed:sr({},a,{value:aoe}),groupEnd:sr({},a,{value:ioe})})}0>D5}function Ze(a){var o=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,a=a.stack,Error.prepareStackTrace=o,a.startsWith(`Error: react-stack-top-frame -`)&&(a=a.slice(29)),o=a.indexOf(` -`),o!==-1&&(a=a.slice(o+1)),o=a.indexOf("react_stack_bottom_frame"),o!==-1&&(o=a.lastIndexOf(` -`,o)),o!==-1)a=a.slice(0,o);else return"";return a}function He(a){if(hX===void 0)try{throw Error()}catch(c){var o=c.stack.trim().match(/\n( *(at )?)/);hX=o&&o[1]||"",ooe=-1)":-1M||G[k]!==Ee[M]){var Ae=` -`+G[k].replace(" at new "," at ");return a.displayName&&Ae.includes("")&&(Ae=Ae.replace("",a.displayName)),typeof a=="function"&&fX.set(a,Ae),Ae}while(1<=k&&0<=M);break}}}finally{pX=!1,We.H=h,W(),Error.prepareStackTrace=c}return G=(G=a?a.displayName||a.name:"")?He(G):"",typeof a=="function"&&fX.set(a,G),G}function It(a,o){switch(a.tag){case 26:case 27:case 5:return He(a.type);case 16:return He("Lazy");case 13:return a.child!==o&&o!==null?He("Suspense Fallback"):He("Suspense");case 19:return He("SuspenseList");case 0:case 15:return yt(a.type,!1);case 11:return yt(a.type.render,!1);case 1:return yt(a.type,!0);case 31:return He("Activity");default:return""}}function it(a){try{var o="",c=null;do{o+=It(a,c);var h=a._debugInfo;if(h)for(var g=h.length-1;0<=g;g--){var k=h[g];if(typeof k.name=="string"){var M=o;e:{var A=k.name,B=k.env,G=k.debugLocation;if(G!=null){var Ee=Ze(G),Ae=Ee.lastIndexOf(` -`),ke=Ae===-1?Ee:Ee.slice(Ae+1);if(ke.indexOf(A)!==-1){var je=` -`+ke;break e}}je=He(A+(B?" ["+B+"]":""))}o=M+je}}c=a,a=a.return}while(a);return o}catch(Ft){return` -Error generating stack: `+Ft.message+` -`+Ft.stack}}function Gt(a){return(a=a?a.displayName||a.name:"")?He(a):""}function Ht(){if($s===null)return null;var a=$s._debugOwner;return a!=null?V(a):null}function en(){if($s===null)return"";var a=$s;try{var o="";switch(a.tag===6&&(a=a.return),a.tag){case 26:case 27:case 5:o+=He(a.type);break;case 13:o+=He("Suspense");break;case 19:o+=He("SuspenseList");break;case 31:o+=He("Activity");break;case 30:case 0:case 15:case 1:a._debugOwner||o!==""||(o+=Gt(a.type));break;case 11:a._debugOwner||o!==""||(o+=Gt(a.type.render))}for(;a;)if(typeof a.tag=="number"){var c=a;a=c._debugOwner;var h=c._debugStack;if(a&&h){var g=Ze(h);g!==""&&(o+=` -`+g)}}else if(a.debugStack!=null){var k=a.debugStack;(a=a.owner)&&k&&(o+=` -`+Ze(k))}else break;var M=o}catch(A){M=` -Error generating stack: `+A.message+` -`+A.stack}return M}function Ve(a,o,c,h,g,k,M){var A=$s;ut(a);try{return a!==null&&a._debugTask?a._debugTask.run(o.bind(null,c,h,g,k,M)):o(c,h,g,k,M)}finally{ut(A)}throw Error("runWithFiberInDEV should never be called in production. This is a bug in React.")}function ut(a){We.getCurrentStack=a===null?null:en,oc=!1,$s=a}function zn(a){return typeof Symbol=="function"&&Symbol.toStringTag&&a[Symbol.toStringTag]||a.constructor.name||"Object"}function ar(a){try{return xr(a),!1}catch{return!0}}function xr(a){return""+a}function wn(a,o){if(ar(a))return xr(a)}function Ye(a,o){if(ar(a))return xr(a)}function $t(a){if(ar(a))return xr(a)}function ft(a){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")return!1;var o=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(o.isDisabled||!o.supportsFiber)return!0;try{Km=o.inject(a),Zi=o}catch{}return!!o.checkDCE}function wt(a){if(typeof L6e=="function"&&I6e(a),Zi&&typeof Zi.setStrictMode=="function")try{Zi.setStrictMode(Km,a)}catch{sc||(sc=!0)}}function et(a){return a>>>=0,a===0?32:31-(R6e(a)/D6e|0)|0}function St(a){var o=a&42;if(o!==0)return o;switch(a&-a){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 a&261888;case 262144:case 524288:case 1048576:case 2097152:return a&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return a&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return a}}function Kt(a,o,c){var h=a.pendingLanes;if(h===0)return 0;var g=0,k=a.suspendedLanes,M=a.pingedLanes;a=a.warmLanes;var A=h&134217727;return A!==0?(h=A&~k,h!==0?g=St(h):(M&=A,M!==0?g=St(M):c||(c=A&~a,c!==0&&(g=St(c))))):(A=h&~k,A!==0?g=St(A):M!==0?g=St(M):c||(c=h&~a,c!==0&&(g=St(c)))),g===0?0:o!==0&&o!==g&&(o&k)===0&&(k=g&-g,c=o&-o,k>=c||k===32&&(c&4194048)!==0)?o:g}function on(a,o){return(a.pendingLanes&~(a.suspendedLanes&~a.pingedLanes)&o)===0}function De(a,o){switch(a){case 1:case 2:case 4:case 8:case 64:return o+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 o+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 ze(){var a=h6;return h6<<=1,(h6&62914560)===0&&(h6=4194304),a}function Xe(a){for(var o=[],c=0;31>c;c++)o.push(a);return o}function xe(a,o){a.pendingLanes|=o,o!==268435456&&(a.suspendedLanes=0,a.pingedLanes=0,a.warmLanes=0)}function Ie(a,o,c,h,g,k){var M=a.pendingLanes;a.pendingLanes=c,a.suspendedLanes=0,a.pingedLanes=0,a.warmLanes=0,a.expiredLanes&=c,a.entangledLanes&=c,a.errorRecoveryDisabledLanes&=c,a.shellSuspendCounter=0;var A=a.entanglements,B=a.expirationTimes,G=a.hiddenUpdates;for(c=M&~c;0"u")return null;try{return a.activeElement||a.body}catch{return a.body}}function Yi(a){return a.replace($6e,function(o){return"\\"+o.charCodeAt(0).toString(16)+" "})}function Tn(a,o){o.checked===void 0||o.defaultChecked===void 0||hoe||(hoe=!0),o.value===void 0||o.defaultValue===void 0||doe||(doe=!0)}function Ti(a,o,c,h,g,k,M,A){a.name="",M!=null&&typeof M!="function"&&typeof M!="symbol"&&typeof M!="boolean"?(wn(M,"type"),a.type=M):a.removeAttribute("type"),o!=null?M==="number"?(o===0&&a.value===""||a.value!=o)&&(a.value=""+fn(o)):a.value!==""+fn(o)&&(a.value=""+fn(o)):M!=="submit"&&M!=="reset"||a.removeAttribute("value"),o!=null?Qc(a,M,fn(o)):c!=null?Qc(a,M,fn(c)):h!=null&&a.removeAttribute("value"),g==null&&k!=null&&(a.defaultChecked=!!k),g!=null&&(a.checked=g&&typeof g!="function"&&typeof g!="symbol"),A!=null&&typeof A!="function"&&typeof A!="symbol"&&typeof A!="boolean"?(wn(A,"name"),a.name=""+fn(A)):a.removeAttribute("name")}function o0(a,o,c,h,g,k,M,A){if(k!=null&&typeof k!="function"&&typeof k!="symbol"&&typeof k!="boolean"&&(wn(k,"type"),a.type=k),o!=null||c!=null){if(!(k!=="submit"&&k!=="reset"||o!=null)){jr(a);return}c=c!=null?""+fn(c):"",o=o!=null?""+fn(o):c,A||o===a.value||(a.value=o),a.defaultValue=o}h=h??g,h=typeof h!="function"&&typeof h!="symbol"&&!!h,a.checked=A?a.checked:!!h,a.defaultChecked=!!h,M!=null&&typeof M!="function"&&typeof M!="symbol"&&typeof M!="boolean"&&(wn(M,"name"),a.name=M),jr(a)}function Qc(a,o,c){o==="number"&&ql(a.ownerDocument)===a||a.defaultValue===""+c||(a.defaultValue=""+c)}function ns(a,o){o.value??(typeof o.children=="object"&&o.children!==null?aX.Children.forEach(o.children,function(c){c==null||typeof c=="string"||typeof c=="number"||typeof c=="bigint"||foe||(foe=!0)}):o.dangerouslySetInnerHTML==null||moe||(moe=!0)),o.selected==null||poe||(poe=!0)}function Nu(){var a=Ht();return a?` - -Check the render method of \``+a+"`.":""}function pl(a,o,c,h){if(a=a.options,o){o={};for(var g=0;g, do not pass children.");if(_i(h)){if(1 can only have at most one child.");h=h[0]}c=h}c??="",o=c}c=fn(o),a.defaultValue=c,h=a.textContent,h===c&&h!==""&&h!==null&&(a.value=h),jr(a)}function Lu(a,o){return a.serverProps===void 0&&a.serverTail.length===0&&a.children.length===1&&315-o?Lu(a.children[0],o):a}function Ai(a){return" "+" ".repeat(a)}function Po(a){return"+ "+" ".repeat(a)}function Bo(a){return"- "+" ".repeat(a)}function gi(a){switch(a.tag){case 26:case 27:case 5:return a.type;case 16:return"Lazy";case 31:return"Activity";case 13:return"Suspense";case 19:return"SuspenseList";case 0:case 15:return a=a.type,a.displayName||a.name||null;case 11:return a=a.type.render,a.displayName||a.name||null;case 1:return a=a.type,a.displayName||a.name||null;default:return null}}function Is(a,o){return _oe.test(a)?(a=JSON.stringify(a),a.length>o-2?8>o?'{"..."}':"{"+a.slice(0,o-7)+'..."}':"{"+a+"}"):a.length>o?5>o?'{"..."}':a.slice(0,o-3)+"...":a}function Ct(a,o,c){var h=120-2*c;if(o===null)return Po(c)+Is(a,h)+` -`;if(typeof o=="string"){for(var g=0;gh-8&&10o?5>o?'"..."':a.slice(0,o-4)+'..."':a;case"object":if(a===null)return"null";if(_i(a))return"[...]";if(a.$$typeof===ac)return(o=ce(a.type))?"<"+o+">":"<...>";var c=vn(a);if(c==="Object"){c="",o-=2;for(var h in a)if(a.hasOwnProperty(h)){var g=JSON.stringify(h);if(g!=='"'+h+'"'&&(h=g),o-=h.length-2,g=qn(a[h],15>o?o:15),o-=g.length,0>o){c+=c===""?"...":", ...";break}c+=(c===""?"":",")+h+":"+g}return"{"+c+"}"}return c;case"function":return(o=a.displayName||a.name)?"function "+o:"function";default:return String(a)}}function cr(a,o){return typeof a!="string"||_oe.test(a)?"{"+qn(a,o-2)+"}":a.length>o-2?5>o?'"..."':'"'+a.slice(0,o-5)+'..."':'"'+a+'"'}function gr(a,o,c){var h=120-c.length-a.length,g=[],k;for(k in o)if(o.hasOwnProperty(k)&&k!=="children"){var M=cr(o[k],120-c.length-k.length-1);h-=k.length+M.length+2,g.push(k+"="+M)}return g.length===0?c+"<"+a+`> -`:0 -`:c+"<"+a+` -`+c+" "+g.join(` -`+c+" ")+` -`+c+`> -`}function Xi(a,o,c){var h="",g=sr({},o),k;for(k in a)if(a.hasOwnProperty(k)){delete g[k];var M=120-2*c-k.length-2,A=qn(a[k],M);o.hasOwnProperty(k)?(M=qn(o[k],M),h+=Po(c)+k+": "+A+` -`,h+=Bo(c)+k+": "+M+` -`):h+=Po(c)+k+": "+A+` -`}for(var B in g)g.hasOwnProperty(B)&&(a=qn(g[B],120-2*c-B.length-2),h+=Bo(c)+B+": "+a+` -`);return h}function ma(a,o,c,h){var g="",k=new Map;for(G in c)c.hasOwnProperty(G)&&k.set(G.toLowerCase(),G);if(k.size===1&&k.has("children"))g+=gr(a,o,Ai(h));else{for(var M in o)if(o.hasOwnProperty(M)&&M!=="children"){var A=120-2*(h+1)-M.length-1,B=k.get(M.toLowerCase());if(B!==void 0){k.delete(M.toLowerCase());var G=o[M];B=c[B];var Ee=cr(G,A);A=cr(B,A),typeof G=="object"&&G!==null&&typeof B=="object"&&B!==null&&vn(G)==="Object"&&vn(B)==="Object"&&(2 -`:Ai(h)+"<"+a+` -`+g+Ai(h)+`> -`}return a=c.children,o=o.children,typeof a=="string"||typeof a=="number"||typeof a=="bigint"?(k="",(typeof o=="string"||typeof o=="number"||typeof o=="bigint")&&(k=""+o),g+=Ct(k,""+a,h+1)):(typeof o=="string"||typeof o=="number"||typeof o=="bigint")&&(g=a==null?g+Ct(""+o,null,h+1):g+Ct(""+o,void 0,h+1)),g}function $o(a,o){var c=gi(a);if(c===null){for(c="",a=a.child;a;)c+=$o(a,o),a=a.sibling;return c}return Ai(o)+"<"+c+`> -`}function Bi(a,o){var c=Lu(a,o);if(c!==a&&(a.children.length!==1||a.children[0]!==c))return Ai(o)+`... -`+Bi(c,o+1);c="";var h=a.fiber._debugInfo;if(h)for(var g=0;g -`,o++)}if(h="",g=a.fiber.pendingProps,a.fiber.tag===6)h=Ct(g,a.serverProps,o),o++;else if(k=gi(a.fiber),k!==null)if(a.serverProps===void 0){h=o;var M=120-2*h-k.length-2,A="";for(G in g)if(g.hasOwnProperty(G)&&G!=="children"){var B=cr(g[G],15);if(M-=G.length+B.length+2,0>M){A+=" ...";break}A+=" "+G+"="+B}h=Ai(h)+"<"+k+A+`> -`,o++}else a.serverProps===null?(h=gr(k,g,Po(o)),o++):typeof a.serverProps=="string"||(h=ma(k,g,a.serverProps,o),o++);var G="";for(g=a.fiber.child,k=0;g&&k"):""}function e1(a,o){var c=sr({},a||boe),h={tag:o};return koe.indexOf(o)!==-1&&(c.aTagInScope=null,c.buttonTagInScope=null,c.nobrTagInScope=null),j6e.indexOf(o)!==-1&&(c.pTagInButtonScope=null),H6e.indexOf(o)!==-1&&o!=="address"&&o!=="div"&&o!=="p"&&(c.listItemTagAutoclosing=null,c.dlItemTagAutoclosing=null),c.current=h,o==="form"&&(c.formTag=h),o==="a"&&(c.aTagInScope=h),o==="button"&&(c.buttonTagInScope=h),o==="nobr"&&(c.nobrTagInScope=h),o==="p"&&(c.pTagInButtonScope=h),o==="li"&&(c.listItemTagAutoclosing=h),(o==="dd"||o==="dt")&&(c.dlItemTagAutoclosing=h),o==="#document"||o==="html"?c.containerTagInScope=null:c.containerTagInScope||(c.containerTagInScope=h),a!==null||o!=="#document"&&o!=="html"&&o!=="body"?c.implicitRootScope===!0&&(c.implicitRootScope=!1):c.implicitRootScope=!0,c}function s0(a,o,c){switch(o){case"select":return a==="hr"||a==="option"||a==="optgroup"||a==="script"||a==="template"||a==="#text";case"optgroup":return a==="option"||a==="#text";case"option":return a==="#text";case"tr":return a==="th"||a==="td"||a==="style"||a==="script"||a==="template";case"tbody":case"thead":case"tfoot":return a==="tr"||a==="style"||a==="script"||a==="template";case"colgroup":return a==="col"||a==="template";case"table":return a==="caption"||a==="colgroup"||a==="tbody"||a==="tfoot"||a==="thead"||a==="style"||a==="script"||a==="template";case"head":return a==="base"||a==="basefont"||a==="bgsound"||a==="link"||a==="meta"||a==="title"||a==="noscript"||a==="noframes"||a==="style"||a==="script"||a==="template";case"html":if(c)break;return a==="head"||a==="body"||a==="frameset";case"frameset":return a==="frame";case"#document":if(!c)return a==="html"}switch(a){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return o!=="h1"&&o!=="h2"&&o!=="h3"&&o!=="h4"&&o!=="h5"&&o!=="h6";case"rp":case"rt":return q6e.indexOf(o)===-1;case"caption":case"col":case"colgroup":case"frameset":case"frame":case"tbody":case"td":case"tfoot":case"th":case"thead":case"tr":return o==null;case"head":return c||o===null;case"html":return c&&o==="#document"||o===null;case"body":return c&&(o==="#document"||o==="html")||o===null}return!0}function Sm(a,o){switch(a){case"address":case"article":case"aside":case"blockquote":case"center":case"details":case"dialog":case"dir":case"div":case"dl":case"fieldset":case"figcaption":case"figure":case"footer":case"header":case"hgroup":case"main":case"menu":case"nav":case"ol":case"p":case"section":case"summary":case"ul":case"pre":case"listing":case"table":case"hr":case"xmp":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return o.pTagInButtonScope;case"form":return o.formTag||o.pTagInButtonScope;case"li":return o.listItemTagAutoclosing;case"dd":case"dt":return o.dlItemTagAutoclosing;case"button":return o.buttonTagInScope;case"a":return o.aTagInScope;case"nobr":return o.nobrTagInScope}return null}function ml(a,o){for(;a;){switch(a.tag){case 5:case 26:case 27:if(a.type===o)return a}a=a.return}return null}function ia(a,o){o=o||boe;var c=o.current;if(o=(c=s0(a,c&&c.tag,o.implicitRootScope)?null:c)?null:Sm(a,o),o=c||o,!o)return!0;var h=o.tag;if(o=String(!!c)+"|"+a+"|"+h,f6[o])return!1;f6[o]=!0;var g=(o=$s)?ml(o.return,h):null,k=o!==null&&g!==null?Mm(g,o,null):"",M="<"+a+">";return c&&(c="",h==="table"&&a==="tr"&&(c+=" Add a , or to your code to match the DOM tree generated by the browser.")),o&&(a=o.return,g===null||a===null||g===a&&a._debugOwner===o._debugOwner||Ve(g,function(){})),!1}function as(a,o,c){if(c||s0("#text",o,!1))return!0;if(c="#text|"+o,f6[c])return!1;f6[c]=!0;var h=(c=$s)?ml(c,o):null;return c=c!==null&&h!==null?Mm(h,c,c.tag!==6?{children:null}:null):"",/\S/.test(a),!1}function qa(a,o){if(o){var c=a.firstChild;if(c&&c===a.lastChild&&c.nodeType===3){c.nodeValue=o;return}}a.textContent=o}function Ya(a){return a.replace(U6e,function(o,c){return c.toUpperCase()})}function oo(a,o,c){var h=o.indexOf("--")===0;h||(-1=o)return{node:c,offset:o-a};a=h}e:{for(;c;){if(c.nextSibling){c=c.nextSibling;break e}c=c.parentNode}c=void 0}c=X4(c)}}function K4(a,o){return a&&o?a===o?!0:a&&a.nodeType===3?!1:o&&o.nodeType===3?K4(a,o.parentNode):"contains"in a?a.contains(o):a.compareDocumentPosition?!!(a.compareDocumentPosition(o)&16):!1:!1}function Am(a){a=a!=null&&a.ownerDocument!=null&&a.ownerDocument.defaultView!=null?a.ownerDocument.defaultView:window;for(var o=ql(a.document);o instanceof a.HTMLIFrameElement;){try{var c=typeof o.contentWindow.location.href=="string"}catch{c=!1}if(c)a=o.contentWindow;else break;o=ql(a.document)}return o}function Z4(a){var o=a&&a.nodeName&&a.nodeName.toLowerCase();return o&&(o==="input"&&(a.type==="text"||a.type==="search"||a.type==="tel"||a.type==="url"||a.type==="password")||o==="textarea"||a.contentEditable==="true")}function Q4(a,o,c){var h=c.window===c?c.document:c.nodeType===9?c:c.ownerDocument;LX||ry==null||ry!==ql(h)||(h=ry,"selectionStart"in h&&Z4(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),F5&&Fl(F5,h)||(F5=h,h=Z3(NX,"onSelect"),0";break}if(3>h||B===1&&A[0]==="children"&&M==null){o="<"+k+" … />";break}c.push([g+"  ".repeat(h)+a,"<"+k]),M!==null&&Os("key",M,c,h+1,g),a=!1;for(var G in o)G==="children"?o.children!=null&&(!_i(o.children)||0":"/>"]);return}if(k=Object.prototype.toString.call(o),k=k.slice(8,k.length-1),k==="Array"){if(G=J4(o),G===zX||G===k6){o=JSON.stringify(o);break}else if(G===PX){for(c.push([g+"  ".repeat(h)+a,""]),a=0;ak){c=c[k],c[1]="Promise<"+(c[1]||"Object")+">";return}}else if(o.status==="rejected"&&(k=c.length,Os(a,o.reason,c,h,g),c.length>k)){c=c[k],c[1]="Rejected Promise<"+c[1]+">";return}c.push(["  ".repeat(h)+a,"Promise"]);return}k==="Object"&&(G=Object.getPrototypeOf(o))&&typeof G.constructor=="function"&&(k=G.constructor.name),c.push([g+"  ".repeat(h)+a,k==="Object"?3>h?"":"…":k]),3>h&&Nm(o,c,h+1,g);return}case"function":o=o.name===""?"() => {}":o.name+"() {}";break;case"string":o=o===b7e?"…":JSON.stringify(o);break;case"undefined":o="undefined";break;case"boolean":o=o?"true":"false";break;default:o=String(o)}c.push([g+"  ".repeat(h)+a,o])}function Lm(a,o,c,h){var g=!0;for(M in a)M in o||(c.push([b6+"  ".repeat(h)+M,"…"]),g=!1);for(var k in o)if(k in a){var M=a[k],A=o[k];if(M!==A){if(h===0&&k==="children")g="  ".repeat(h)+k,c.push([b6+g,"…"],[x6+g,"…"]);else{if(!(3<=h)){if(typeof M=="object"&&typeof A=="object"&&M!==null&&A!==null&&M.$$typeof===A.$$typeof)if(A.$$typeof===ac){if(M.type===A.type&&M.key===A.key){M=ce(A.type)||"…",g="  ".repeat(h)+k,M="<"+M+" … />",c.push([b6+g,M],[x6+g,M]),g=!1;continue}}else{var B=Object.prototype.toString.call(M),G=Object.prototype.toString.call(A);if(B===G&&(G==="[object Object]"||G==="[object Array]")){B=[Woe+"  ".repeat(h)+k,G==="[object Array]"?"Array":""],c.push(B),G=c.length,Lm(M,A,c,h+1)?G===c.length&&(B[1]="Referentially unequal but deeply equal objects. Consider memoization."):g=!1;continue}}else if(typeof M=="function"&&typeof A=="function"&&M.name===A.name&&M.length===A.length&&(B=Function.prototype.toString.call(M),G=Function.prototype.toString.call(A),B===G)){M=A.name===""?"() => {}":A.name+"() {}",c.push([Woe+"  ".repeat(h)+k,M+" Referentially unequal function closure. Consider memoization."]);continue}}Os(k,M,c,h,b6),Os(k,A,c,h,x6)}g=!1}}else c.push([x6+"  ".repeat(h)+k,"…"]),g=!1;return g}function Ka(a){Ma=a&63?"Blocking":a&64?"Gesture":a&4194176?"Transition":a&62914560?"Suspense":a&2080374784?"Idle":"Other"}function lo(a,o,c,h){oa&&(E0.start=o,E0.end=c,p1.color="warning",p1.tooltipText=h,p1.properties=null,(a=a._debugTask)?a.run(performance.measure.bind(performance,h,E0)):performance.measure(h,E0))}function Pu(a,o,c){lo(a,o,c,"Reconnect")}function Bu(a,o,c,h,g){var k=ne(a);if(k!==null&&oa){var M=a.alternate,A=a.actualDuration;if(M===null||M.child!==a.child)for(var B=a.child;B!==null;B=B.sibling)A-=B.actualDuration;h=.5>A?h?"tertiary-light":"primary-light":10>A?h?"tertiary":"primary":100>A?h?"tertiary-dark":"primary-dark":"error";var G=a.memoizedProps;A=a._debugTask,G!==null&&M!==null&&M.memoizedProps!==G?(B=[x7e],G=Lm(M.memoizedProps,G,B,0),1{}).bind(console,k,o,c,ed,void 0,h))}}function u0(a,o,c,h){if(oa){var g=ne(a);if(g!==null){for(var k=null,M=[],A=0;Ah?"secondary-light":100>h?"secondary":500>h?"secondary-dark":"error",(a=a._debugTask)&&a.run((()=>{}).bind(console,k,o,c,ed,void 0,g)))}function f3(a,o,c,h){if(oa&&!(o<=a)){var g=(c&738197653)===c?"tertiary-dark":"primary-dark";c=(c&536870912)===c?"Prepared":(c&201326741)===c?"Hydrated":"Render",h&&h.run((()=>{}).bind(console,c,a,o,Ma,Ja,g))}}function $u(a,o,c,h){!oa||o<=a||(c=(c&738197653)===c?"tertiary-dark":"primary-dark",h&&h.run((()=>{}).bind(console,"Prewarm",a,o,Ma,Ja,c)))}function os(a,o,c,h){!oa||o<=a||(c=(c&738197653)===c?"tertiary-dark":"primary-dark",h&&h.run((()=>{}).bind(console,"Suspended",a,o,Ma,Ja,c)))}function MW(a,o,c,h,g,k){if(oa&&!(o<=a)){c=[];for(var M=0;M{}).bind(console,"Errored",a,o,Ma,Ja,"error"))}function e5(a,o,c,h){!oa||o<=a||h&&h.run((()=>{}).bind(console,c,a,o,Ma,Ja,"secondary-light"))}function ju(a,o,c,h,g){if(oa&&!(o<=a)){for(var k=[],M=0;M{}).bind(console,"Animating",a,o,Ma,Ja,"secondary-dark"))}function Im(){for(var a=iy,o=BX=iy=0;oB7e)throw md=yg=0,gg=gK=null,Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");md>$7e&&(md=0,gg=null),a.alternate===null&&(a.flags&4098)!==0&&aie(a);for(var o=a,c=o.return;c!==null;)o.alternate===null&&(o.flags&4098)!==0&&aie(a),o=c,c=o.return;return o.tag===3?o.stateNode:null}function jo(a){if(js===null)return a;var o=js(a);return o===void 0?a:o.current}function t5(a){if(js===null)return a;var o=js(a);return o===void 0?a!=null&&typeof a.render=="function"&&(o=jo(a.render),a.render!==o)?(o={$$typeof:I5,render:o},a.displayName!==void 0&&(o.displayName=a.displayName),o):a:o.current}function n5(a,o){if(js===null)return!1;var c=a.elementType;o=o.type;var h=!1,g=typeof o=="object"&&o!==null?o.$$typeof:null;switch(a.tag){case 1:typeof o=="function"&&(h=!0);break;case 0:(typeof o=="function"||g===ps)&&(h=!0);break;case 11:(g===I5||g===ps)&&(h=!0);break;case 14:case 15:(g===l6||g===ps)&&(h=!0);break;default:return!1}return!!(h&&(a=js(c),a!==void 0&&a===js(o)))}function r5(a){js!==null&&typeof WeakSet=="function"&&(oy===null&&(oy=new WeakSet),oy.add(a))}function ee(a,o,c){do{var h=a,g=h.alternate,k=h.child,M=h.sibling,A=h.tag;h=h.type;var B=null;switch(A){case 0:case 15:case 1:B=h;break;case 11:B=h.render}if(js===null)throw Error("Expected resolveFamily to be set during hot reload.");var G=!1;if(h=!1,B!==null&&(B=js(B),B!==void 0&&(c.has(B)?h=!0:o.has(B)&&(A===1?h=!0:G=!0))),oy!==null&&(oy.has(a)||g!==null&&oy.has(g))&&(h=!0),h&&(a._debugNeedsRemount=!0),(h||G)&&(g=Za(a,2),g!==null&&wa(g,a,2)),k===null||h||ee(k,o,c),M===null)break;a=M}while(!0)}function ie(a,o,c,h){this.tag=a,this.key=c,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=o,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=h,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null,this.actualDuration=-0,this.actualStartTime=-1.1,this.treeBaseDuration=this.selfBaseDuration=-0,this._debugTask=this._debugStack=this._debugOwner=this._debugInfo=null,this._debugNeedsRemount=!1,this._debugHookTypes=null,Xoe||typeof Object.preventExtensions!="function"||Object.preventExtensions(this)}function Se(a){return a=a.prototype,!(!a||!a.isReactComponent)}function _e(a,o){var c=a.alternate;switch(c===null?(c=_(a.tag,o,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c._debugOwner=a._debugOwner,c._debugStack=a._debugStack,c._debugTask=a._debugTask,c._debugHookTypes=a._debugHookTypes,c.alternate=a,a.alternate=c):(c.pendingProps=o,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null,c.actualDuration=-0,c.actualStartTime=-1.1),c.flags=a.flags&65011712,c.childLanes=a.childLanes,c.lanes=a.lanes,c.child=a.child,c.memoizedProps=a.memoizedProps,c.memoizedState=a.memoizedState,c.updateQueue=a.updateQueue,o=a.dependencies,c.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext,_debugThenableState:o._debugThenableState},c.sibling=a.sibling,c.index=a.index,c.ref=a.ref,c.refCleanup=a.refCleanup,c.selfBaseDuration=a.selfBaseDuration,c.treeBaseDuration=a.treeBaseDuration,c._debugInfo=a._debugInfo,c._debugNeedsRemount=a._debugNeedsRemount,c.tag){case 0:case 15:c.type=jo(a.type);break;case 1:c.type=jo(a.type);break;case 11:c.type=t5(a.type)}return c}function Oe(a,o){a.flags&=65011714;var c=a.alternate;return c===null?(a.childLanes=0,a.lanes=o,a.child=null,a.subtreeFlags=0,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,a.stateNode=null,a.selfBaseDuration=0,a.treeBaseDuration=0):(a.childLanes=c.childLanes,a.lanes=c.lanes,a.child=c.child,a.subtreeFlags=0,a.deletions=null,a.memoizedProps=c.memoizedProps,a.memoizedState=c.memoizedState,a.updateQueue=c.updateQueue,a.type=c.type,o=c.dependencies,a.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext,_debugThenableState:o._debugThenableState},a.selfBaseDuration=c.selfBaseDuration,a.treeBaseDuration=c.treeBaseDuration),a}function at(a,o,c,h,g,k){var M=0,A=a;if(typeof a=="function")Se(a)&&(M=1),A=jo(A);else if(typeof a=="string")M=re(),M=d6e(a,c,M)?26:a==="html"||a==="head"||a==="body"?27:5;else e:switch(a){case cX:return o=_(31,c,o,g),o.elementType=cX,o.lanes=k,o;case Ym:return Dt(c.children,g,k,o);case s6:M=8,g|=Qi,g|=bl;break;case iX:return a=c,h=g,a.id,o=_(12,a,o,h|Zn),o.elementType=iX,o.lanes=k,o.stateNode={effectDuration:0,passiveEffectDuration:0},o;case sX:return o=_(13,c,o,g),o.elementType=sX,o.lanes=k,o;case lX:return o=_(19,c,o,g),o.elementType=lX,o.lanes=k,o;default:if(typeof a=="object"&&a!==null)switch(a.$$typeof){case ic:M=10;break e;case oX:M=9;break e;case I5:M=11,A=t5(A);break e;case l6:M=14;break e;case ps:M=16,A=null;break e}A="",(a===void 0||typeof a=="object"&&a!==null&&Object.keys(a).length===0)&&(A+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."),a===null?c="null":_i(a)?c="array":a!==void 0&&a.$$typeof===ac?(c="<"+(ce(a.type)||"Unknown")+" />",A=" Did you accidentally export a JSX literal instead of a component?"):c=typeof a,(M=h?V(h):null)&&(A+=` - -Check the render method of \``+M+"`."),M=29,c=Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: "+(c+"."+A)),A=null}return o=_(M,c,o,g),o.elementType=a,o.type=A,o.lanes=k,o._debugOwner=h,o}function Vt(a,o,c){return o=at(a.type,a.key,a.props,a._owner,o,c),o._debugOwner=a._owner,o._debugStack=a._debugStack,o._debugTask=a._debugTask,o}function Dt(a,o,c,h){return a=_(7,a,h,o),a.lanes=c,a}function _n(a,o,c){return a=_(6,a,null,o),a.lanes=c,a}function un(a){var o=_(18,null,null,On);return o.stateNode=a,o}function An(a,o,c){return o=_(4,a.children!==null?a.children:[],a.key,o),o.lanes=c,o.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation},o}function Sn(a,o){if(typeof a=="object"&&a!==null){var c=$X.get(a);return c!==void 0?c:(o={value:a,source:o,stack:it(o)},$X.set(a,o),o)}return{value:a,source:o,stack:it(o)}}function kn(a,o){sy[ly++]=V5,sy[ly++]=w6,w6=a,V5=o}function yn(a,o,c){qs[Fs++]=m1,qs[Fs++]=y1,qs[Fs++]=td,td=a;var h=m1;a=y1;var g=32-uo(h)-1;h&=~(1<>=M,g-=M,m1=1<<32-uo(o)+g|c<o&&(ms.distanceFromLeaf=o)}return ms}var c=Fa(a.return,o+1).children;return 0o&&(c.distanceFromLeaf=o),c):(o={fiber:a,children:[],serverProps:void 0,serverTail:[],distanceFromLeaf:o},c.push(o),o)}function Yn(){}function Un(a,o){dc||(a=Fa(a,0),a.serverProps=null,o!==null&&(o=Aie(o),a.serverTail.push(o)))}function Pr(a){var o=1a.refCount,a.refCount===0&&E7e(T7e,function(){a.controller.abort()})}function Gl(a,o,c){(a&127)!==0?0>hc&&(hc=ti(),W5=S6(o),FX=o,c!=null&&(UX=ne(c)),(vr&(bi|vs))!==Di&&(Sa=!0,I0=G5),a=E5(),o=C5(),a!==dy||o!==Y5?dy=-1.1:o!==null&&(I0=G5),rd=a,Y5=o):(a&4194048)!==0&&0>Vs&&(Vs=ti(),X5=S6(o),Zoe=o,c!=null&&(Qoe=ne(c)),0>_1)&&(a=E5(),o=C5(),(a!==D0||o!==ad)&&(D0=-1.1),R0=a,ad=o)}function r3e(a){if(0>hc){hc=ti(),W5=a._debugTask!=null?a._debugTask:null,(vr&(bi|vs))!==Di&&(I0=G5);var o=E5(),c=C5();o!==dy||c!==Y5?dy=-1.1:c!==null&&(I0=G5),rd=o,Y5=c}0>Vs&&(Vs=ti(),X5=a._debugTask!=null?a._debugTask:null,0>_1)&&(a=E5(),o=C5(),(a!==D0||o!==ad)&&(D0=-1.1),R0=a,ad=o)}function l1(){var a=nd;return nd=0,a}function g3(a){var o=nd;return nd=a,o}function s5(a){var o=nd;return nd+=a,o}function v3(){Ln=En=-1.1}function ls(){var a=En;return En=-1.1,a}function cs(a){0<=a&&(En=a)}function Wl(){var a=va;return va=-0,a}function Yl(a){0<=a&&(va=a)}function Xl(){var a=pa;return pa=null,a}function Kl(){var a=Sa;return Sa=!1,a}function CW(a){mo=ti(),0>a.actualStartTime&&(a.actualStartTime=mo)}function EW(a){if(0<=mo){var o=ti()-mo;a.actualDuration+=o,a.selfBaseDuration=o,mo=-1}}function tre(a){if(0<=mo){var o=ti()-mo;a.actualDuration+=o,mo=-1}}function Zl(){if(0<=mo){var a=ti(),o=a-mo;mo=-1,nd+=o,va+=o,Ln=a}}function nre(a){pa===null&&(pa=[]),pa.push(a),v1===null&&(v1=[]),v1.push(a)}function Ql(){mo=ti(),0>En&&(En=mo)}function l5(a){for(var o=a.child;o;)a.actualDuration+=o.actualDuration,o=o.sibling}function a3e(a,o){if(K5===null){var c=K5=[];GX=0,id=zY(),hy={status:"pending",value:void 0,then:function(h){c.push(h)}}}return GX++,o.then(rre,rre),o}function rre(){if(--GX===0&&(-1Xn?(la=xn,xn=null):la=xn.sibling;var Va=ke(me,xn,Ce[Xn],Qe);if(Va===null){xn===null&&(xn=la);break}Qt=Ft(me,Va,Ce[Xn],Qt),a&&xn&&Va.alternate===null&&o(me,xn),be=k(Va,be,Xn),Cn===null?$n=Va:Cn.sibling=Va,Cn=Va,xn=la}if(Xn===Ce.length)return c(me,xn),ur&&kn(me,Xn),$n;if(xn===null){for(;Xnxn?(Xn=Cn,Cn=null):Xn=Cn.sibling;var T1=ke(me,Cn,Va.value,Qe);if(T1===null){Cn===null&&(Cn=Xn);break}la=Ft(me,T1,Va.value,la),a&&Cn&&T1.alternate===null&&o(me,Cn),be=k(T1,be,xn),$n===null?Qt=T1:$n.sibling=T1,$n=T1,Cn=Xn}if(Va.done)return c(me,Cn),ur&&kn(me,xn),Qt;if(Cn===null){for(;!Va.done;xn++,Va=Ce.next())Cn=Ae(me,Va.value,Qe),Cn!==null&&(la=Ft(me,Cn,Va.value,la),be=k(Cn,be,xn),$n===null?Qt=Cn:$n.sibling=Cn,$n=Cn);return ur&&kn(me,xn),Qt}for(Cn=h(Cn);!Va.done;xn++,Va=Ce.next())Xn=je(Cn,me,xn,Va.value,Qe),Xn!==null&&(la=Ft(me,Xn,Va.value,la),a&&Xn.alternate!==null&&Cn.delete(Xn.key===null?xn:Xn.key),be=k(Xn,be,xn),$n===null?Qt=Xn:$n.sibling=Xn,$n=Xn);return a&&Cn.forEach(function(r8e){return o(me,r8e)}),ur&&kn(me,xn),Qt}function yr(me,be,Ce,Qe){if(typeof Ce=="object"&&Ce!==null&&Ce.type===Ym&&Ce.key===null&&(k3(Ce,null,me),Ce=Ce.props.children),typeof Ce=="object"&&Ce!==null){switch(Ce.$$typeof){case ac:var Qt=ji(Ce._debugInfo);e:{for(var $n=Ce.key;be!==null;){if(be.key===$n){if($n=Ce.type,$n===Ym){if(be.tag===7){c(me,be.sibling),Qe=g(be,Ce.props.children),Qe.return=me,Qe._debugOwner=Ce._owner,Qe._debugInfo=Qn,k3(Ce,Qe,me),me=Qe;break e}}else if(be.elementType===$n||n5(be,Ce)||typeof $n=="object"&&$n!==null&&$n.$$typeof===ps&&h0($n)===be.type){c(me,be.sibling),Qe=g(be,Ce.props),c5(Qe,Ce),Qe.return=me,Qe._debugOwner=Ce._owner,Qe._debugInfo=Qn,me=Qe;break e}c(me,be);break}else o(me,be);be=be.sibling}Ce.type===Ym?(Qe=Dt(Ce.props.children,me.mode,Qe,Ce.key),Qe.return=me,Qe._debugOwner=me,Qe._debugTask=me._debugTask,Qe._debugInfo=Qn,k3(Ce,Qe,me),me=Qe):(Qe=Vt(Ce,me.mode,Qe),c5(Qe,Ce),Qe.return=me,Qe._debugInfo=Qn,me=Qe)}return me=M(me),Qn=Qt,me;case Wm:e:{for(Qt=Ce,Ce=Qt.key;be!==null;){if(be.key===Ce)if(be.tag===4&&be.stateNode.containerInfo===Qt.containerInfo&&be.stateNode.implementation===Qt.implementation){c(me,be.sibling),Qe=g(be,Qt.children||[]),Qe.return=me,me=Qe;break e}else{c(me,be);break}else o(me,be);be=be.sibling}Qe=An(Qt,me.mode,Qe),Qe.return=me,me=Qe}return M(me);case ps:return Qt=ji(Ce._debugInfo),Ce=h0(Ce),me=yr(me,be,Ce,Qe),Qn=Qt,me}if(_i(Ce))return Qt=ji(Ce._debugInfo),me=nn(me,be,Ce,Qe),Qn=Qt,me;if(Z(Ce)){if(Qt=ji(Ce._debugInfo),$n=Z(Ce),typeof $n!="function")throw Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.");var Cn=$n.call(Ce);return Cn===Ce?(me.tag!==0||Object.prototype.toString.call(me.type)!=="[object GeneratorFunction]"||Object.prototype.toString.call(Cn)!=="[object Generator]")&&(yse=!0):Ce.entries!==$n||KX||(KX=!0),me=Zr(me,be,Cn,Qe),Qn=Qt,me}if(typeof Ce.then=="function")return Qt=ji(Ce._debugInfo),me=yr(me,be,b3(Ce),Qe),Qn=Qt,me;if(Ce.$$typeof===ic)return yr(me,be,y3(me,Ce),Qe);x3(me,Ce)}return typeof Ce=="string"&&Ce!==""||typeof Ce=="number"||typeof Ce=="bigint"?(Qt=""+Ce,be!==null&&be.tag===6?(c(me,be.sibling),Qe=g(be,Qt),Qe.return=me,me=Qe):(c(me,be),Qe=_n(Qt,me.mode,Qe),Qe.return=me,Qe._debugOwner=me,Qe._debugTask=me._debugTask,Qe._debugInfo=Qn,me=Qe),M(me)):(typeof Ce=="function"&&w3(me,Ce),typeof Ce=="symbol"&&M3(me,Ce),c(me,be))}return function(me,be,Ce,Qe){var Qt=Qn;Qn=null;try{ag=0;var $n=yr(me,be,Ce,Qe);return fy=null,$n}catch(la){if(la===py||la===D6)throw la;var Cn=_(29,la,null,me.mode);Cn.lanes=Qe,Cn.return=me;var xn=Cn._debugInfo=Qn;if(Cn._debugOwner=me._debugOwner,Cn._debugTask=me._debugTask,xn!=null){for(var Xn=xn.length-1;0<=Xn;Xn--)if(typeof xn[Xn].stack=="string"){Cn._debugOwner=xn[Xn],Cn._debugTask=xn[Xn].debugTask;break}}return Cn}finally{Qn=Qt}}}function fre(a,o){var c=_i(a);return a=!c&&typeof Z(a)=="function",c||a?(c=c?"array":"iterable",!1):!0}function NW(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function LW(a,o){a=a.updateQueue,o.updateQueue===a&&(o.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,callbacks:null})}function p0(a){return{lane:a,tag:bse,payload:null,callback:null,next:null}}function f0(a,o,c){var h=a.updateQueue;if(h===null)return null;if(h=h.shared,QX===h&&!Mse){var g=ne(a);Mse=!0}return(vr&bi)!==Di?(g=h.pending,g===null?o.next=o:(o.next=g.next,g.next=o),h.pending=o,o=Vl(a),m3(a,null,c),o):(zs(a,h,o,c),Vl(a))}function u5(a,o,c){if(o=o.updateQueue,o!==null&&(o=o.shared,(c&4194048)!==0)){var h=o.lanes;h&=a.pendingLanes,c|=h,o.lanes=c,rt(a,c)}}function S3(a,o){var c=a.updateQueue,h=a.alternate;if(h!==null&&(h=h.updateQueue,c===h)){var g=null,k=null;if(c=c.firstBaseUpdate,c!==null){do{var M={lane:c.lane,tag:c.tag,payload:c.payload,callback:null,next:null};k===null?g=k=M:k=k.next=M,c=c.next}while(c!==null);k===null?g=k=o:k=k.next=o}else g=k=o;c={baseState:h.baseState,firstBaseUpdate:g,lastBaseUpdate:k,shared:h.shared,callbacks:h.callbacks},a.updateQueue=c;return}a=c.lastBaseUpdate,a===null?c.firstBaseUpdate=o:a.next=o,c.lastBaseUpdate=o}function d5(){if(JX){var a=hy;if(a!==null)throw a}}function h5(a,o,c,h){JX=!1;var g=a.updateQueue;O0=!1,QX=g.shared;var k=g.firstBaseUpdate,M=g.lastBaseUpdate,A=g.shared.pending;if(A!==null){g.shared.pending=null;var B=A,G=B.next;B.next=null,M===null?k=G:M.next=G,M=B;var Ee=a.alternate;Ee!==null&&(Ee=Ee.updateQueue,A=Ee.lastBaseUpdate,A!==M&&(A===null?Ee.firstBaseUpdate=G:A.next=G,Ee.lastBaseUpdate=B))}if(k!==null){var Ae=g.baseState;M=0,Ee=G=B=null,A=k;do{var ke=A.lane&-536870913,je=ke!==A.lane;if(je?(Jn&ke)===ke:(h&ke)===ke){ke!==0&&ke===id&&(JX=!0),Ee!==null&&(Ee=Ee.next={lane:0,tag:A.tag,payload:A.payload,callback:null,next:null});e:{ke=a;var Ft=A,nn=o,Zr=c;switch(Ft.tag){case xse:if(Ft=Ft.payload,typeof Ft=="function"){uy=!0;var yr=Ft.call(Zr,Ae,nn);if(ke.mode&Qi){wt(!0);try{Ft.call(Zr,Ae,nn)}finally{wt(!1)}}uy=!1,Ae=yr;break e}Ae=Ft;break e;case ZX:ke.flags=ke.flags&-65537|128;case bse:if(yr=Ft.payload,typeof yr=="function"){if(uy=!0,Ft=yr.call(Zr,Ae,nn),ke.mode&Qi){wt(!0);try{yr.call(Zr,Ae,nn)}finally{wt(!1)}}uy=!1}else Ft=yr;if(Ft==null)break e;Ae=sr({},Ae,Ft);break e;case wse:O0=!0}}ke=A.callback,ke!==null&&(a.flags|=64,je&&(a.flags|=8192),je=g.callbacks,je===null?g.callbacks=[ke]:je.push(ke))}else je={lane:ke,tag:A.tag,payload:A.payload,callback:A.callback,next:null},Ee===null?(G=Ee=je,B=Ae):Ee=Ee.next=je,M|=ke;if(A=A.next,A===null){if(A=g.shared.pending,A===null)break;je=A,A=je.next,je.next=null,g.lastBaseUpdate=je,g.shared.pending=null}}while(!0);Ee===null&&(B=Ae),g.baseState=B,g.firstBaseUpdate=G,g.lastBaseUpdate=Ee,k===null&&(g.shared.lanes=0),B0|=M,a.lanes=M,a.memoizedState=Ae}QX=null}function mre(a,o){if(typeof a!="function")throw Error("Invalid argument passed as callback. Expected a function. Instead received: "+a);a.call(o)}function o3e(a,o){var c=a.shared.hiddenCallbacks;if(c!==null)for(a.shared.hiddenCallbacks=null,a=0;ag.length;)g+=" ";g+=k+` -`,c+=g}}}function Dm(a){a==null||_i(a)}function E3(){var a=ne(Bn);Ese.has(a)||Ese.add(a)}function za(){throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: -1. You might have mismatching versions of React and the renderer (such as React DOM) -2. You might be breaking the Rules of Hooks -3. You might have more than one copy of React in the same app -See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`)}function OW(a,o){if(sg||o===null)return!1;a.length,o.length;for(var c=0;c=D7e)throw Error("Too many re-renders. React limits the number of renders to prevent an infinite loop.");if(g+=1,sg=!1,ni=Ur=null,a.updateQueue!=null){var k=a.updateQueue;k.lastEffect=null,k.events=null,k.stores=null,k.memoCache!=null&&(k.memoCache.index=0)}w1=-1,We.H=Ase,k=WX(o,c,h)}while(vy);return k}function s3e(){var a=We.H,o=a.useState()[0];return o=typeof o.then=="function"?p5(o):o,a=a.useState()[0],(Ur!==null?Ur.memoizedState:null)!==a&&(Bn.flags|=1024),o}function BW(){var a=$6!==0;return $6=0,a}function $W(a,o,c){o.updateQueue=a.updateQueue,o.flags=(o.mode&bl)!==On?o.flags&-402655237:o.flags&-2053,a.lanes&=~c}function HW(a){if(B6){for(a=a.memoizedState;a!==null;){var o=a.queue;o!==null&&(o.pending=null),a=a.next}B6=!1}b1=0,Ys=ni=Ur=Bn=null,w1=-1,Ge=null,vy=!1,og=$6=0,x1=null}function co(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ni===null?Bn.memoizedState=ni=a:ni=ni.next=a,ni}function Or(){if(Ur===null){var a=Bn.alternate;a=a!==null?a.memoizedState:null}else a=Ur.next;var o=ni===null?Bn.memoizedState:ni.next;if(o!==null)ni=o,Ur=a;else{if(a===null)throw Bn.alternate===null?Error("Update hook called on initial render. This is likely a bug in React. Please file an issue."):Error("Rendered more hooks than during the previous render.");Ur=a,a={memoizedState:Ur.memoizedState,baseState:Ur.baseState,baseQueue:Ur.baseQueue,queue:Ur.queue,next:null},ni===null?Bn.memoizedState=ni=a:ni=ni.next=a}return ni}function T3(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function p5(a){var o=og;return og+=1,x1===null&&(x1=ire()),a=sre(x1,a,o),o=Bn,(ni===null?o.memoizedState:ni.next)===null&&(o=o.alternate,We.H=o!==null&&o.memoizedState!==null?nK:tK),a}function g0(a){if(a!==null&&typeof a=="object"){if(typeof a.then=="function")return p5(a);if(a.$$typeof===ic)return ha(a)}throw Error("An unsupported type was passed to use(): "+String(a))}function Gu(a){var o=null,c=Bn.updateQueue;if(c!==null&&(o=c.memoCache),o==null){var h=Bn.alternate;h!==null&&(h=h.updateQueue,h!==null&&(h=h.memoCache,h!=null&&(o={data:h.data.map(function(g){return g.slice()}),index:0})))}if(o??={data:[],index:0},c===null&&(c=T3(),Bn.updateQueue=c),c.memoCache=o,c=o.data[o.index],c===void 0||sg)for(c=o.data[o.index]=Array(a),h=0;h component.":"The above error occurred in one of your React components.",c="React will try to recreate this component tree from scratch using the error boundary you provided, "+((aK||"Anonymous")+".");if(typeof a=="object"&&a!==null&&typeof a.environmentName=="string"){var h=a.environmentName;a=[`%o - -%s - -%s -`,a,o,c].slice(0),typeof a[0]=="string"?a.splice(0,1,xle+" "+a[0],wle,d7+h+d7,Mle):a.splice(0,0,xle,wle,d7+h+d7,Mle),a.unshift(console),h=e8e.apply(console.error,a),h()}}function Kre(a){DX(a)}function $3(a,o){try{j6=o.source?ne(o.source):null,aK=null;var c=o.value;if(We.actQueue!==null)We.thrownErrors.push(c);else{var h=a.onUncaughtError;h(c,{componentStack:o.stack})}}catch(g){setTimeout(function(){throw g})}}function Zre(a,o,c){try{j6=c.source?ne(c.source):null,aK=ne(o);var h=a.onCaughtError;h(c.value,{componentStack:c.stack,errorBoundary:o.tag===1?o.stateNode:null})}catch(g){setTimeout(function(){throw g})}}function cY(a,o,c){return c=p0(c),c.tag=ZX,c.payload={element:null},c.callback=function(){Ve(o.source,$3,a,o)},c}function uY(a){return a=p0(a),a.tag=ZX,a}function dY(a,o,c,h){var g=c.type.getDerivedStateFromError;if(typeof g=="function"){var k=h.value;a.payload=function(){return g(k)},a.callback=function(){r5(c),Ve(h.source,Zre,o,c,h)}}var M=c.stateNode;M!==null&&typeof M.componentDidCatch=="function"&&(a.callback=function(){r5(c),Ve(h.source,Zre,o,c,h),typeof g!="function"&&(H0===null?H0=new Set([this]):H0.add(this)),A7e(this,h),typeof g=="function"||c.lanes&2})}function p3e(a,o,c,h,g){if(c.flags|=32768,lc&&w5(a,g),h!==null&&typeof h=="object"&&typeof h.then=="function"){if(o=c.alternate,o!==null&&d0(o,c,g,!0),ur&&(dc=!0),c=ys.current,c!==null){switch(c.tag){case 31:case 13:return Gs===null?Y3():c.alternate===null&&_a===S1&&(_a=F6),c.flags&=-257,c.flags|=65536,c.lanes=g,h===O6?c.flags|=16384:(o=c.updateQueue,o===null?c.updateQueue=new Set([h]):o.add(h),IY(a,h,g)),!1;case 22:return c.flags|=65536,h===O6?c.flags|=16384:(o=c.updateQueue,o===null?(o={transitions:null,markerInstances:null,retryQueue:new Set([h])},c.updateQueue=o):(c=o.retryQueue,c===null?o.retryQueue=new Set([h]):c.add(h)),IY(a,h,g)),!1}throw Error("Unexpected Suspense handler tag ("+c.tag+"). This is a bug in React.")}return IY(a,h,g),Y3(),!1}if(ur)return dc=!0,o=ys.current,o!==null?((o.flags&65536)===0&&(o.flags|=256),o.flags|=65536,o.lanes=g,h!==HX&&ss(Sn(Error("There was an error while hydrating but React was able to recover by instead client rendering from the nearest Suspense boundary.",{cause:h}),c))):(h!==HX&&ss(Sn(Error("There was an error while hydrating but React was able to recover by instead client rendering the entire root.",{cause:h}),c)),a=a.current.alternate,a.flags|=65536,g&=-g,a.lanes|=g,h=Sn(h,c),g=cY(a.stateNode,h,g),S3(a,g),_a!==z0&&(_a=dd)),!1;var k=Sn(Error("There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.",{cause:h}),c);if(fg===null?fg=[k]:fg.push(k),_a!==z0&&(_a=dd),o===null)return!0;h=Sn(h,c),c=o;do{switch(c.tag){case 3:return c.flags|=65536,a=g&-g,c.lanes|=a,a=cY(c.stateNode,h,a),S3(c,a),!1;case 1:if(o=c.type,k=c.stateNode,(c.flags&128)===0&&(typeof o.getDerivedStateFromError=="function"||k!==null&&typeof k.componentDidCatch=="function"&&(H0===null||!H0.has(k))))return c.flags|=65536,g&=-g,c.lanes|=g,g=uY(g),dY(g,a,c,h),S3(c,g),!1}c=c.return}while(c!==null);return!1}function qi(a,o,c,h){o.child=a===null?kse(o,null,c,h):cd(o,a.child,c,h)}function Qre(a,o,c,h,g){c=c.render;var k=o.ref;if("ref"in h){var M={};for(var A in h)A!=="ref"&&(M[A]=h[A])}else M=h;return Uu(o),h=zW(a,o,c,M,k,g),A=BW(),a!==null&&!ri?($W(a,o,g),c1(a,o,g)):(ur&&A&&Oa(o),o.flags|=1,qi(a,o,h,g),o.child)}function Jre(a,o,c,h,g){if(a===null){var k=c.type;return typeof k=="function"&&!Se(k)&&k.defaultProps===void 0&&c.compare===null?(c=jo(k),o.tag=15,o.type=c,pY(o,k),eae(a,o,c,h,g)):(a=at(c.type,null,h,o,o.mode,g),a.ref=o.ref,a.return=o,o.child=a)}if(k=a.child,!_Y(a,g)){var M=k.memoizedProps;if(c=c.compare,c=c!==null?c:Fl,c(M,h)&&a.ref===o.ref)return c1(a,o,g)}return o.flags|=1,a=_e(k,h),a.ref=o.ref,a.return=o,o.child=a}function eae(a,o,c,h,g){if(a!==null){var k=a.memoizedProps;if(Fl(k,h)&&a.ref===o.ref&&o.type===a.type)if(ri=!1,o.pendingProps=h=k,_Y(a,g))(a.flags&131072)!==0&&(ri=!0);else return o.lanes=a.lanes,c1(a,o,g)}return hY(a,o,c,h,g)}function tae(a,o,c,h){var g=h.children,k=a!==null?a.memoizedState:null;if(a===null&&o.stateNode===null&&(o.stateNode={_visibility:U5,_pendingMarkers:null,_retryCache:null,_transitions:null}),h.mode==="hidden"){if((o.flags&128)!==0){if(k=k!==null?k.baseLanes|c:c,a!==null){for(h=o.child=a.child,g=0;h!==null;)g=g|h.lanes|h.childLanes,h=h.sibling;h=g&~k}else h=0,o.child=null;return nae(a,o,k,c,h)}if((c&536870912)!==0)o.memoizedState={baseLanes:0,cachePool:null},a!==null&&_3(o,k!==null?k.cachePool:null),k!==null?gre(o,k):IW(o),vre(o);else return h=o.lanes=536870912,nae(a,o,k!==null?k.baseLanes|c:c,c,h)}else k!==null?(_3(o,k.cachePool),gre(o,k),y0(o),o.memoizedState=null):(a!==null&&_3(o,null),IW(o),y0(o));return qi(a,o,g,c),o.child}function y5(a,o){return a!==null&&a.tag===22||o.stateNode!==null||(o.stateNode={_visibility:U5,_pendingMarkers:null,_retryCache:null,_transitions:null}),o.sibling}function nae(a,o,c,h,g){var k=TW();return k=k===null?null:{parent:ei._currentValue,pool:k},o.memoizedState={baseLanes:c,cachePool:k},a!==null&&_3(o,null),IW(o),vre(o),a!==null&&d0(a,o,h,!0),o.childLanes=g,null}function H3(a,o){var c=o.hidden;return o=q3({mode:o.mode,children:o.children},a.mode),o.ref=a.ref,a.child=o,o.return=a,o}function rae(a,o,c){return cd(o,a.child,null,c),a=H3(o,o.pendingProps),a.flags|=2,us(o),o.memoizedState=null,a}function f3e(a,o,c){var h=o.pendingProps,g=(o.flags&128)!==0;if(o.flags&=-129,a===null){if(ur){if(h.mode==="hidden")return a=H3(o,h),o.lanes=536870912,y5(null,a);if(DW(o),(a=sa)?(c=Tie(a,Us),c=c!==null&&c.data===gd?c:null,c!==null&&(h={dehydrated:c,treeContext:Xr(),retryLane:536870912,hydrationErrors:null},o.memoizedState=h,h=un(c),h.return=o,o.child=h,Vi=o,sa=null)):c=null,c===null)throw Un(o,a),Pr(o);return o.lanes=536870912,null}return H3(o,h)}var k=a.memoizedState;if(k!==null){var M=k.dehydrated;if(DW(o),g)if(o.flags&256)o.flags&=-257,o=rae(a,o,c);else if(o.memoizedState!==null)o.child=a.child,o.flags|=128,o=null;else throw Error("Client rendering an Activity suspended it again. This is a bug in React.");else if((c&536870912)!==0&&W3(o),ri||d0(a,o,c,!1),g=(c&a.childLanes)!==0,ri||g){if(h=Vr,h!==null&&(M=_t(h,c),M!==0&&M!==k.retryLane))throw k.retryLane=M,Za(a,M),wa(h,a,M),iK;Y3(),o=rae(a,o,c)}else a=k.treeContext,sa=hs(M.nextSibling),Vi=o,ur=!0,A0=null,dc=!1,ms=null,Us=!1,a!==null&&xa(o,a),o=H3(o,h),o.flags|=4096;return o}return k=a.child,h={mode:h.mode,children:h.children},(c&536870912)!==0&&(c&a.lanes)!==0&&W3(o),a=_e(k,h),a.ref=o.ref,o.child=a,a.return=o,a}function j3(a,o){var c=o.ref;if(c===null)a!==null&&a.ref!==null&&(o.flags|=4194816);else{if(typeof c!="function"&&typeof c!="object")throw Error("Expected ref to be a function, an object returned by React.createRef(), or undefined/null.");(a===null||a.ref!==c)&&(o.flags|=4194816)}}function hY(a,o,c,h,g){if(c.prototype&&typeof c.prototype.render=="function"){var k=ce(c)||"Unknown";jse[k]||(jse[k]=!0)}return o.mode&Qi&&xl.recordLegacyContextWarning(o,null),a===null&&(pY(o,o.type),c.contextTypes&&(k=ce(c)||"Unknown",Fse[k]||(Fse[k]=!0))),Uu(o),c=zW(a,o,c,h,void 0,g),h=BW(),a!==null&&!ri?($W(a,o,g),c1(a,o,g)):(ur&&h&&Oa(o),o.flags|=1,qi(a,o,c,g),o.child)}function aae(a,o,c,h,g,k){return Uu(o),w1=-1,sg=a!==null&&a.type!==o.type,o.updateQueue=null,c=PW(o,h,c,g),_re(a,o),h=BW(),a!==null&&!ri?($W(a,o,k),c1(a,o,k)):(ur&&h&&Oa(o),o.flags|=1,qi(a,o,c,k),o.child)}function iae(a,o,c,h,g){switch(u(o)){case!1:var k=o.stateNode,M=new o.type(o.memoizedProps,k.context).state;k.updater.enqueueSetState(k,M,null);break;case!0:o.flags|=128,o.flags|=65536,k=Error("Simulated error coming from DevTools");var A=g&-g;if(o.lanes|=A,M=Vr,M===null)throw Error("Expected a work-in-progress root. This is a bug in React. Please file an issue.");A=uY(A),dY(A,M,o,Sn(k,o)),S3(o,A)}if(Uu(o),o.stateNode===null){if(M=T0,k=c.contextType,"contextType"in c&&k!==null&&(k===void 0||k.$$typeof!==ic)&&!$se.has(c)&&($se.add(c),A=k===void 0?" However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file.":typeof k!="object"?" However, it is set to a "+typeof k+".":k.$$typeof===oX?" Did you accidentally pass the Context.Consumer instead?":" However, it is set to an object with keys {"+Object.keys(k).join(", ")+"}."),typeof k=="object"&&k!==null&&(M=ha(k)),k=new c(h,M),o.mode&Qi){wt(!0);try{k=new c(h,M)}finally{wt(!1)}}if(M=o.memoizedState=k.state!==null&&k.state!==void 0?k.state:null,k.updater=rK,o.stateNode=k,k._reactInternals=o,k._reactInternalInstance=Nse,typeof c.getDerivedStateFromProps=="function"&&M===null&&(M=ce(c)||"Component",Ise.has(M)||Ise.add(M)),typeof c.getDerivedStateFromProps=="function"||typeof k.getSnapshotBeforeUpdate=="function"){var B=A=M=null;if(typeof k.componentWillMount=="function"&&k.componentWillMount.__suppressDeprecationWarning!==!0?M="componentWillMount":typeof k.UNSAFE_componentWillMount=="function"&&(M="UNSAFE_componentWillMount"),typeof k.componentWillReceiveProps=="function"&&k.componentWillReceiveProps.__suppressDeprecationWarning!==!0?A="componentWillReceiveProps":typeof k.UNSAFE_componentWillReceiveProps=="function"&&(A="UNSAFE_componentWillReceiveProps"),typeof k.componentWillUpdate=="function"&&k.componentWillUpdate.__suppressDeprecationWarning!==!0?B="componentWillUpdate":typeof k.UNSAFE_componentWillUpdate=="function"&&(B="UNSAFE_componentWillUpdate"),M!==null||A!==null||B!==null){k=ce(c)||"Component";var G=typeof c.getDerivedStateFromProps=="function"?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";Dse.has(k)||Dse.add(k)}}k=o.stateNode,M=ce(c)||"Component",k.render||c.prototype&&c.prototype.render,!k.getInitialState||k.getInitialState.isReactClassApproved||k.state,k.getDefaultProps&&k.getDefaultProps.isReactClassApproved,k.contextType,c.childContextTypes&&!Bse.has(c)&&Bse.add(c),c.contextTypes&&!Pse.has(c)&&Pse.add(c),k.componentShouldUpdate,c.prototype&&c.prototype.isPureReactComponent&&typeof k.shouldComponentUpdate<"u",k.componentDidUnmount,k.componentDidReceiveProps,k.componentWillRecieveProps,k.UNSAFE_componentWillRecieveProps,A=k.props!==h,k.props,k.defaultProps,typeof k.getSnapshotBeforeUpdate!="function"||typeof k.componentDidUpdate=="function"||Rse.has(c)||Rse.add(c),k.getDerivedStateFromProps,k.getDerivedStateFromError,c.getSnapshotBeforeUpdate,(A=k.state)&&(typeof A!="object"||_i(A)),typeof k.getChildContext=="function"&&c.childContextTypes,k=o.stateNode,k.props=h,k.state=o.memoizedState,k.refs={},NW(o),M=c.contextType,k.context=typeof M=="object"&&M!==null?ha(M):T0,k.state===h&&(M=ce(c)||"Component",Ose.has(M)||Ose.add(M)),o.mode&Qi&&xl.recordLegacyContextWarning(o,k),xl.recordUnsafeLifecycleWarnings(o,k),k.state=o.memoizedState,M=c.getDerivedStateFromProps,typeof M=="function"&&(lY(o,c,M,h),k.state=o.memoizedState),typeof c.getDerivedStateFromProps=="function"||typeof k.getSnapshotBeforeUpdate=="function"||typeof k.UNSAFE_componentWillMount!="function"&&typeof k.componentWillMount!="function"||(M=k.state,typeof k.componentWillMount=="function"&&k.componentWillMount(),typeof k.UNSAFE_componentWillMount=="function"&&k.UNSAFE_componentWillMount(),M!==k.state&&rK.enqueueReplaceState(k,k.state,null),h5(o,h,k,g),d5(),k.state=o.memoizedState),typeof k.componentDidMount=="function"&&(o.flags|=4194308),(o.mode&bl)!==On&&(o.flags|=134217728),k=!0}else if(a===null){k=o.stateNode;var Ee=o.memoizedProps;A=Xu(c,Ee),k.props=A;var Ae=k.context;B=c.contextType,M=T0,typeof B=="object"&&B!==null&&(M=ha(B)),G=c.getDerivedStateFromProps,B=typeof G=="function"||typeof k.getSnapshotBeforeUpdate=="function",Ee=o.pendingProps!==Ee,B||typeof k.UNSAFE_componentWillReceiveProps!="function"&&typeof k.componentWillReceiveProps!="function"||(Ee||Ae!==M)&&Wre(o,k,h,M),O0=!1;var ke=o.memoizedState;k.state=ke,h5(o,h,k,g),d5(),Ae=o.memoizedState,Ee||ke!==Ae||O0?(typeof G=="function"&&(lY(o,c,G,h),Ae=o.memoizedState),(A=O0||Gre(o,c,A,h,ke,Ae,M))?(B||typeof k.UNSAFE_componentWillMount!="function"&&typeof k.componentWillMount!="function"||(typeof k.componentWillMount=="function"&&k.componentWillMount(),typeof k.UNSAFE_componentWillMount=="function"&&k.UNSAFE_componentWillMount()),typeof k.componentDidMount=="function"&&(o.flags|=4194308),(o.mode&bl)!==On&&(o.flags|=134217728)):(typeof k.componentDidMount=="function"&&(o.flags|=4194308),(o.mode&bl)!==On&&(o.flags|=134217728),o.memoizedProps=h,o.memoizedState=Ae),k.props=h,k.state=Ae,k.context=M,k=A):(typeof k.componentDidMount=="function"&&(o.flags|=4194308),(o.mode&bl)!==On&&(o.flags|=134217728),k=!1)}else{k=o.stateNode,LW(a,o),M=o.memoizedProps,B=Xu(c,M),k.props=B,G=o.pendingProps,ke=k.context,Ae=c.contextType,A=T0,typeof Ae=="object"&&Ae!==null&&(A=ha(Ae)),Ee=c.getDerivedStateFromProps,(Ae=typeof Ee=="function"||typeof k.getSnapshotBeforeUpdate=="function")||typeof k.UNSAFE_componentWillReceiveProps!="function"&&typeof k.componentWillReceiveProps!="function"||(M!==G||ke!==A)&&Wre(o,k,h,A),O0=!1,ke=o.memoizedState,k.state=ke,h5(o,h,k,g),d5();var je=o.memoizedState;M!==G||ke!==je||O0||a!==null&&a.dependencies!==null&&Rm(a.dependencies)?(typeof Ee=="function"&&(lY(o,c,Ee,h),je=o.memoizedState),(B=O0||Gre(o,c,B,h,ke,je,A)||a!==null&&a.dependencies!==null&&Rm(a.dependencies))?(Ae||typeof k.UNSAFE_componentWillUpdate!="function"&&typeof k.componentWillUpdate!="function"||(typeof k.componentWillUpdate=="function"&&k.componentWillUpdate(h,je,A),typeof k.UNSAFE_componentWillUpdate=="function"&&k.UNSAFE_componentWillUpdate(h,je,A)),typeof k.componentDidUpdate=="function"&&(o.flags|=4),typeof k.getSnapshotBeforeUpdate=="function"&&(o.flags|=1024)):(typeof k.componentDidUpdate!="function"||M===a.memoizedProps&&ke===a.memoizedState||(o.flags|=4),typeof k.getSnapshotBeforeUpdate!="function"||M===a.memoizedProps&&ke===a.memoizedState||(o.flags|=1024),o.memoizedProps=h,o.memoizedState=je),k.props=h,k.state=je,k.context=A,k=B):(typeof k.componentDidUpdate!="function"||M===a.memoizedProps&&ke===a.memoizedState||(o.flags|=4),typeof k.getSnapshotBeforeUpdate!="function"||M===a.memoizedProps&&ke===a.memoizedState||(o.flags|=1024),k=!1)}if(A=k,j3(a,o),M=(o.flags&128)!==0,A||M){if(A=o.stateNode,ut(o),M&&typeof c.getDerivedStateFromError!="function")c=null,mo=-1;else if(c=ose(A),o.mode&Qi){wt(!0);try{ose(A)}finally{wt(!1)}}o.flags|=1,a!==null&&M?(o.child=cd(o,a.child,null,g),o.child=cd(o,null,c,g)):qi(a,o,c,g),o.memoizedState=A.state,a=o.child}else a=c1(a,o,g);return g=o.stateNode,k&&g.props!==h&&(_y=!0),a}function oae(a,o,c,h){return da(),o.flags|=256,qi(a,o,c,h),o.child}function pY(a,o){o&&o.childContextTypes,typeof o.getDerivedStateFromProps=="function"&&(a=ce(o)||"Unknown",Use[a]||(Use[a]=!0)),typeof o.contextType=="object"&&o.contextType!==null&&(o=ce(o)||"Unknown",qse[o]||(qse[o]=!0))}function fY(a){return{baseLanes:a,cachePool:are()}}function mY(a,o,c){return a=a!==null?a.childLanes&~c:0,o&&(a|=Yo),a}function sae(a,o,c){var h,g=o.pendingProps;l(o)&&(o.flags|=128);var k=!1,M=(o.flags&128)!==0;if((h=M)||(h=a!==null&&a.memoizedState===null?!1:(Ua.current&ig)!==0),h&&(k=!0,o.flags&=-129),h=(o.flags&32)!==0,o.flags&=-33,a===null){if(ur){if(k?m0(o):y0(o),(a=sa)?(c=Tie(a,Us),c=c!==null&&c.data!==gd?c:null,c!==null&&(h={dehydrated:c,treeContext:Xr(),retryLane:536870912,hydrationErrors:null},o.memoizedState=h,h=un(c),h.return=o,o.child=h,Vi=o,sa=null)):c=null,c===null)throw Un(o,a),Pr(o);return YY(c)?o.lanes=32:o.lanes=536870912,null}var A=g.children;if(g=g.fallback,k){y0(o);var B=o.mode;return A=q3({mode:"hidden",children:A},B),g=Dt(g,B,c,null),A.return=o,g.return=o,A.sibling=g,o.child=A,g=o.child,g.memoizedState=fY(c),g.childLanes=mY(a,h,c),o.memoizedState=oK,y5(null,g)}return m0(o),yY(o,A)}var G=a.memoizedState;if(G!==null){var Ee=G.dehydrated;if(Ee!==null){if(M)o.flags&256?(m0(o),o.flags&=-257,o=gY(a,o,c)):o.memoizedState!==null?(y0(o),o.child=a.child,o.flags|=128,o=null):(y0(o),A=g.fallback,B=o.mode,g=q3({mode:"visible",children:g.children},B),A=Dt(A,B,c,null),A.flags|=2,g.return=o,A.return=o,g.sibling=A,o.child=g,cd(o,a.child,null,c),g=o.child,g.memoizedState=fY(c),g.childLanes=mY(a,h,c),o.memoizedState=oK,o=y5(null,g));else if(m0(o),(c&536870912)!==0&&W3(o),YY(Ee)){if(h=Ee.nextSibling&&Ee.nextSibling.dataset,h){A=h.dgst;var Ae=h.msg;B=h.stck;var ke=h.cstck}k=Ae,h=A,g=B,Ee=ke,A=k,B=Ee,A=Error(A||"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering."),A.stack=g||"",A.digest=h,h=B===void 0?null:B,g={value:A,source:null,stack:h},typeof h=="string"&&$X.set(A,g),ss(g),o=gY(a,o,c)}else if(ri||d0(a,o,c,!1),h=(c&a.childLanes)!==0,ri||h){if(h=Vr,h!==null&&(g=_t(h,c),g!==0&&g!==G.retryLane))throw G.retryLane=g,Za(a,g),wa(h,a,g),iK;WY(Ee)||Y3(),o=gY(a,o,c)}else WY(Ee)?(o.flags|=192,o.child=a.child,o=null):(a=G.treeContext,sa=hs(Ee.nextSibling),Vi=o,ur=!0,A0=null,dc=!1,ms=null,Us=!1,a!==null&&xa(o,a),o=yY(o,g.children),o.flags|=4096);return o}}return k?(y0(o),A=g.fallback,B=o.mode,ke=a.child,Ee=ke.sibling,g=_e(ke,{mode:"hidden",children:g.children}),g.subtreeFlags=ke.subtreeFlags&65011712,Ee!==null?A=_e(Ee,A):(A=Dt(A,B,c,null),A.flags|=2),A.return=o,g.return=o,g.sibling=A,o.child=g,y5(null,g),g=o.child,A=a.child.memoizedState,A===null?A=fY(c):(B=A.cachePool,B!==null?(ke=ei._currentValue,B=B.parent!==ke?{parent:ke,pool:ke}:B):B=are(),A={baseLanes:A.baseLanes|c,cachePool:B}),g.memoizedState=A,g.childLanes=mY(a,h,c),o.memoizedState=oK,y5(a.child,g)):(G!==null&&(c&62914560)===c&&(c&a.lanes)!==0&&W3(o),m0(o),c=a.child,a=c.sibling,c=_e(c,{mode:"visible",children:g.children}),c.return=o,c.sibling=null,a!==null&&(h=o.deletions,h===null?(o.deletions=[a],o.flags|=16):h.push(a)),o.child=c,o.memoizedState=null,c)}function yY(a,o){return o=q3({mode:"visible",children:o},a.mode),o.return=a,a.child=o}function q3(a,o){return a=_(22,a,null,o),a.lanes=0,a}function gY(a,o,c){return cd(o,a.child,null,c),a=yY(o,o.pendingProps.children),a.flags|=2,o.memoizedState=null,a}function lae(a,o,c){a.lanes|=o;var h=a.alternate;h!==null&&(h.lanes|=o),a5(a.return,o,c)}function vY(a,o,c,h,g,k){var M=a.memoizedState;M===null?a.memoizedState={isBackwards:o,rendering:null,renderingStartTime:0,last:h,tail:c,tailMode:g,treeForkCount:k}:(M.isBackwards=o,M.rendering=null,M.renderingStartTime=0,M.last=h,M.tail=c,M.tailMode=g,M.treeForkCount=k)}function cae(a,o,c){var h=o.pendingProps,g=h.revealOrder,k=h.tail,M=h.children,A=Ua.current;if((h=(A&ig)!==0)?(A=A&yy|ig,o.flags|=128):A&=yy,de(Ua,A,o),A=g??"null",g!=="forwards"&&g!=="unstable_legacy-backwards"&&g!=="together"&&g!=="independent"&&!Vse[A]&&(Vse[A]=!0,g!=null)){if(g!=="backwards"){if(typeof g=="string")switch(g.toLowerCase()){case"together":case"forwards":case"backwards":case"independent":break;case"forward":case"backward":break;default:}}}A=k??"null",q6[A]||(k==null?(g==="forwards"||g==="backwards"||g==="unstable_legacy-backwards")&&(q6[A]=!0):(k!=="visible"&&k!=="collapsed"&&k!=="hidden"||g!=="forwards"&&g!=="backwards"&&g!=="unstable_legacy-backwards")&&(q6[A]=!0));e:if((g==="forwards"||g==="backwards"||g==="unstable_legacy-backwards")&&M!==void 0&&M!==null&&M!==!1){if(_i(M)){for(A=0;A<\/script>",k=k.removeChild(k.firstChild);break;case"select":k=typeof h.is=="string"?k.createElement("select",{is:h.is}):k.createElement("select"),h.multiple?k.multiple=!0:h.size&&(k.size=h.size);break;default:k=typeof h.is=="string"?k.createElement(g,{is:h.is}):k.createElement(g),g.indexOf("-")===-1&&(g.toLowerCase(),Object.prototype.toString.call(k)!=="[object HTMLUnknownElement]"||_l.call(yle,g)||(yle[g]=!0))}}k[Ui]=o,k[ho]=h;e:for(M=o.child;M!==null;){if(M.tag===5||M.tag===6)k.appendChild(M.stateNode);else if(M.tag!==4&&M.tag!==27&&M.child!==null){M.child.return=M,M=M.child;continue}if(M===o)break e;for(;M.sibling===null;){if(M.return===null||M.return===o)break e;M=M.return}M.sibling.return=M.return,M=M.sibling}o.stateNode=k;e:switch(Fi(k,g,h),g){case"button":case"input":case"select":case"textarea":h=!!h.autoFocus;break e;case"img":h=!0;break e;default:h=!1}h&&u1(o)}}return Kr(o),bY(o,o.type,a===null?null:a.memoizedProps,o.pendingProps,c),null;case 6:if(a&&o.stateNode!=null)a.memoizedProps!==h&&u1(o);else{if(typeof h!="string"&&o.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");if(a=x0.current,c=re(),vi(o)){if(a=o.stateNode,c=o.memoizedProps,g=!dc,h=null,k=Vi,k!==null)switch(k.tag){case 3:g&&(g=Nie(a,c,h),g!==null&&(Fa(o,0).serverProps=g));break;case 27:case 5:h=k.memoizedProps,g&&(g=Nie(a,c,h),g!==null&&(Fa(o,0).serverProps=g))}a[Ui]=o,a=!!(a.nodeValue===c||h!==null&&h.suppressHydrationWarning===!0||mie(a.nodeValue,c)),a||Pr(o,!0)}else g=c.ancestorInfo.current,g!=null&&as(h,g.tag,c.ancestorInfo.implicitRootScope),a=Q3(a).createTextNode(h),a[Ui]=o,o.stateNode=a}return Kr(o),null;case 31:if(c=o.memoizedState,a===null||a.memoizedState!==null){if(h=vi(o),c!==null){if(a===null){if(!h)throw Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.");if(a=o.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error("Expected to have a hydrated activity instance. This error is likely caused by a bug in React. Please file an issue.");a[Ui]=o,Kr(o),(o.mode&Zn)!==On&&c!==null&&(a=o.child,a!==null&&(o.treeBaseDuration-=a.treeBaseDuration))}else Ps(),da(),(o.flags&128)===0&&(c=o.memoizedState=null),o.flags|=4,Kr(o),(o.mode&Zn)!==On&&c!==null&&(a=o.child,a!==null&&(o.treeBaseDuration-=a.treeBaseDuration));a=!1}else c=s1(),a!==null&&a.memoizedState!==null&&(a.memoizedState.hydrationErrors=c),a=!0;if(!a)return o.flags&256?(us(o),o):(us(o),null);if((o.flags&128)!==0)throw Error("Client rendering an Activity suspended it again. This is a bug in React.")}return Kr(o),null;case 13:if(h=o.memoizedState,a===null||a.memoizedState!==null&&a.memoizedState.dehydrated!==null){if(g=h,k=vi(o),g!==null&&g.dehydrated!==null){if(a===null){if(!k)throw Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.");if(k=o.memoizedState,k=k!==null?k.dehydrated:null,!k)throw Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");k[Ui]=o,Kr(o),(o.mode&Zn)!==On&&g!==null&&(g=o.child,g!==null&&(o.treeBaseDuration-=g.treeBaseDuration))}else Ps(),da(),(o.flags&128)===0&&(g=o.memoizedState=null),o.flags|=4,Kr(o),(o.mode&Zn)!==On&&g!==null&&(g=o.child,g!==null&&(o.treeBaseDuration-=g.treeBaseDuration));g=!1}else g=s1(),a!==null&&a.memoizedState!==null&&(a.memoizedState.hydrationErrors=g),g=!0;if(!g)return o.flags&256?(us(o),o):(us(o),null)}return us(o),(o.flags&128)!==0?(o.lanes=c,(o.mode&Zn)!==On&&l5(o),o):(c=h!==null,a=a!==null&&a.memoizedState!==null,c&&(h=o.child,g=null,h.alternate!==null&&h.alternate.memoizedState!==null&&h.alternate.memoizedState.cachePool!==null&&(g=h.alternate.memoizedState.cachePool.pool),k=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(k=h.memoizedState.cachePool.pool),k!==g&&(h.flags|=2048)),c!==a&&c&&(o.child.flags|=8192),F3(o,o.updateQueue),Kr(o),(o.mode&Zn)!==On&&c&&(a=o.child,a!==null&&(o.treeBaseDuration-=a.treeBaseDuration)),null);case 4:return he(o),a===null&&BY(o.stateNode.containerInfo),Kr(o),null;case 10:return Hi(o.type,o),Kr(o),null;case 19:if(ue(Ua,o),h=o.memoizedState,h===null)return Kr(o),null;if(g=(o.flags&128)!==0,k=h.rendering,k===null)if(g)g5(h,!1);else{if(_a!==S1||a!==null&&(a.flags&128)!==0)for(a=o.child;a!==null;){if(k=C3(a),k!==null){for(o.flags|=128,g5(h,!1),a=k.updateQueue,o.updateQueue=a,F3(o,a),o.subtreeFlags=0,a=c,c=o.child;c!==null;)Oe(c,a),c=c.sibling;return de(Ua,Ua.current&yy|ig,o),ur&&kn(o,h.treeForkCount),o.child}a=a.sibling}h.tail!==null&&Li()>X6&&(o.flags|=128,g=!0,g5(h,!1),o.lanes=4194304)}else{if(!g)if(a=C3(k),a!==null){if(o.flags|=128,g=!0,a=a.updateQueue,o.updateQueue=a,F3(o,a),g5(h,!0),h.tail===null&&h.tailMode==="hidden"&&!k.alternate&&!ur)return Kr(o),null}else 2*Li()-h.renderingStartTime>X6&&c!==536870912&&(o.flags|=128,g=!0,g5(h,!1),o.lanes=4194304);h.isBackwards?(k.sibling=o.child,o.child=k):(a=h.last,a!==null?a.sibling=k:o.child=k,h.last=k)}return h.tail!==null?(a=h.tail,h.rendering=a,h.tail=a.sibling,h.renderingStartTime=Li(),a.sibling=null,c=Ua.current,c=g?c&yy|ig:c&yy,de(Ua,c,o),ur&&kn(o,h.treeForkCount),a):(Kr(o),null);case 22:case 23:return us(o),RW(o),h=o.memoizedState!==null,a!==null?a.memoizedState!==null!==h&&(o.flags|=8192):h&&(o.flags|=8192),h?(c&536870912)!==0&&(o.flags&128)===0&&(Kr(o),o.subtreeFlags&6&&(o.flags|=8192)):Kr(o),c=o.updateQueue,c!==null&&F3(o,c.retryQueue),c=null,a!==null&&a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(c=a.memoizedState.cachePool.pool),h=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),h!==c&&(o.flags|=2048),a!==null&&ue(od,o),null;case 24:return c=null,a!==null&&(c=a.memoizedState.cache),o.memoizedState.cache!==c&&(o.flags|=2048),Hi(ei,o),Kr(o),null;case 25:return null;case 30:return null}throw Error("Unknown unit of work tag ("+o.tag+"). This error is likely caused by a bug in React. Please file an issue.")}function g3e(a,o){switch(fr(o),o.tag){case 1:return a=o.flags,a&65536?(o.flags=a&-65537|128,(o.mode&Zn)!==On&&l5(o),o):null;case 3:return Hi(ei,o),he(o),a=o.flags,(a&65536)!==0&&(a&128)===0?(o.flags=a&-65537|128,o):null;case 26:case 27:case 5:return Y(o),null;case 31:if(o.memoizedState!==null){if(us(o),o.alternate===null)throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");da()}return a=o.flags,a&65536?(o.flags=a&-65537|128,(o.mode&Zn)!==On&&l5(o),o):null;case 13:if(us(o),a=o.memoizedState,a!==null&&a.dehydrated!==null){if(o.alternate===null)throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");da()}return a=o.flags,a&65536?(o.flags=a&-65537|128,(o.mode&Zn)!==On&&l5(o),o):null;case 19:return ue(Ua,o),null;case 4:return he(o),null;case 10:return Hi(o.type,o),null;case 22:case 23:return us(o),RW(o),a!==null&&ue(od,o),a=o.flags,a&65536?(o.flags=a&-65537|128,(o.mode&Zn)!==On&&l5(o),o):null;case 24:return Hi(ei,o),null;case 25:return null;default:return null}}function dae(a,o){switch(fr(o),o.tag){case 3:Hi(ei,o),he(o);break;case 26:case 27:case 5:Y(o);break;case 4:he(o);break;case 31:o.memoizedState!==null&&us(o);break;case 13:us(o);break;case 19:ue(Ua,o);break;case 10:Hi(o.type,o);break;case 22:case 23:us(o),RW(o),a!==null&&ue(od,o);break;case 24:Hi(ei,o)}}function Jl(a){return(a.mode&Zn)!==On}function hae(a,o){Jl(a)?(Ql(),v5(o,a),Zl()):v5(o,a)}function xY(a,o,c){Jl(a)?(Ql(),Bm(c,a,o),Zl()):Bm(c,a,o)}function v5(a,o){try{var c=o.updateQueue,h=c!==null?c.lastEffect:null;if(h!==null){var g=h.next;c=g;do{if((c.tag&a)===a&&(h=void 0,(a&yo)!==P6&&(My=!0),h=Ve(o,N7e,c),(a&yo)!==P6&&(My=!1),h!==void 0&&typeof h!="function")){var k=void 0;k=(c.tag&gs)!==0?"useLayoutEffect":(c.tag&yo)!==0?"useInsertionEffect":"useEffect";var M=void 0;M=h===null?" You returned null. If your effect does not require clean up, return undefined (or nothing).":typeof h.then=="function"?` - -It looks like you wrote `+k+`(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately: - -`+k+`(() => { - async function fetchData() { - // You can await here - const response = await MyAPI.getData(someId); - // ... - } - fetchData(); -}, [someId]); // Or [] if effect doesn't need props or state - -Learn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching`:" You returned: "+h,Ve(o,function(A,B){},k,M)}c=c.next}while(c!==g)}}catch(A){Cr(o,o.return,A)}}function Bm(a,o,c){try{var h=o.updateQueue,g=h!==null?h.lastEffect:null;if(g!==null){var k=g.next;h=k;do{if((h.tag&a)===a){var M=h.inst,A=M.destroy;A!==void 0&&(M.destroy=void 0,(a&yo)!==P6&&(My=!0),g=o,Ve(g,L7e,g,c,A),(a&yo)!==P6&&(My=!1))}h=h.next}while(h!==k)}}catch(B){Cr(o,o.return,B)}}function pae(a,o){Jl(a)?(Ql(),v5(o,a),Zl()):v5(o,a)}function wY(a,o,c){Jl(a)?(Ql(),Bm(c,a,o),Zl()):Bm(c,a,o)}function fae(a){var o=a.updateQueue;if(o!==null){var c=a.stateNode;a.type.defaultProps||"ref"in a.memoizedProps||_y||(c.props,a.memoizedProps,c.state,a.memoizedState);try{Ve(a,yre,o,c)}catch(h){Cr(a,a.return,h)}}}function v3e(a,o,c){return a.getSnapshotBeforeUpdate(o,c)}function _3e(a,o){var c=o.memoizedProps,h=o.memoizedState;o=a.stateNode,a.type.defaultProps||"ref"in a.memoizedProps||_y||(o.props,a.memoizedProps,o.state,a.memoizedState);try{var g=Xu(a.type,c),k=Ve(a,v3e,o,g,h);c=Wse,k!==void 0||c.has(a.type)||(c.add(a.type),Ve(a,function(){})),o.__reactInternalSnapshotBeforeUpdate=k}catch(M){Cr(a,a.return,M)}}function mae(a,o,c){c.props=Xu(a.type,a.memoizedProps),c.state=a.memoizedState,Jl(a)?(Ql(),Ve(a,hse,a,o,c),Zl()):Ve(a,hse,a,o,c)}function k3e(a){var o=a.ref;if(o!==null){switch(a.tag){case 26:case 27:case 5:var c=a.stateNode;break;case 30:c=a.stateNode;break;default:c=a.stateNode}if(typeof o=="function")if(Jl(a))try{Ql(),a.refCleanup=o(c)}finally{Zl()}else a.refCleanup=o(c);else typeof o=="string"||o.hasOwnProperty("current"),o.current=c}}function _5(a,o){try{Ve(a,k3e,a)}catch(c){Cr(a,o,c)}}function ec(a,o){var c=a.ref,h=a.refCleanup;if(c!==null)if(typeof h=="function")try{if(Jl(a))try{Ql(),Ve(a,h)}finally{Zl(a)}else Ve(a,h)}catch(g){Cr(a,o,g)}finally{a.refCleanup=null,a=a.alternate,a!=null&&(a.refCleanup=null)}else if(typeof c=="function")try{if(Jl(a))try{Ql(),Ve(a,c,null)}finally{Zl(a)}else Ve(a,c,null)}catch(g){Cr(a,o,g)}else c.current=null}function yae(a,o,c,h){var g=a.memoizedProps,k=g.id,M=g.onCommit;g=g.onRender,o=o===null?"mount":"update",L6&&(o="nested-update"),typeof g=="function"&&g(k,o,a.actualDuration,a.treeBaseDuration,a.actualStartTime,c),typeof M=="function"&&M(k,o,h,c)}function b3e(a,o,c,h){var g=a.memoizedProps;a=g.id,g=g.onPostCommit,o=o===null?"mount":"update",L6&&(o="nested-update"),typeof g=="function"&&g(a,o,h,c)}function gae(a){var o=a.type,c=a.memoizedProps,h=a.stateNode;try{Ve(a,V3e,h,o,c,a)}catch(g){Cr(a,a.return,g)}}function MY(a,o,c){try{Ve(a,W3e,a.stateNode,a.type,c,o,a)}catch(h){Cr(a,a.return,h)}}function vae(a){return a.tag===5||a.tag===3||a.tag===26||a.tag===27&&k0(a.type)||a.tag===4}function SY(a){e:for(;;){for(;a.sibling===null;){if(a.return===null||vae(a.return))return null;a=a.return}for(a.sibling.return=a.return,a=a.sibling;a.tag!==5&&a.tag!==6&&a.tag!==18;){if(a.tag===27&&k0(a.type)||a.flags&2||a.child===null||a.tag===4)continue e;a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}function CY(a,o,c){var h=a.tag;if(h===5||h===6)a=a.stateNode,o?(Sie(c),(c.nodeType===9?c.body:c.nodeName==="HTML"?c.ownerDocument.body:c).insertBefore(a,o)):(Sie(c),o=c.nodeType===9?c.body:c.nodeName==="HTML"?c.ownerDocument.body:c,o.appendChild(a),c=c._reactRootContainer,c!=null||o.onclick!==null||(o.onclick=so));else if(h!==4&&(h===27&&k0(a.type)&&(c=a.stateNode,o=null),a=a.child,a!==null))for(CY(a,o,c),a=a.sibling;a!==null;)CY(a,o,c),a=a.sibling}function U3(a,o,c){var h=a.tag;if(h===5||h===6)a=a.stateNode,o?c.insertBefore(a,o):c.appendChild(a);else if(h!==4&&(h===27&&k0(a.type)&&(c=a.stateNode),a=a.child,a!==null))for(U3(a,o,c),a=a.sibling;a!==null;)U3(a,o,c),a=a.sibling}function x3e(a){for(var o,c=a.return;c!==null;){if(vae(c)){o=c;break}c=c.return}if(o==null)throw Error("Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.");switch(o.tag){case 27:o=o.stateNode,c=SY(a),U3(a,c,o);break;case 5:c=o.stateNode,o.flags&32&&(Mie(c),o.flags&=-33),o=SY(a),U3(a,o,c);break;case 3:case 4:o=o.stateNode.containerInfo,c=SY(a),CY(a,c,o);break;default:throw Error("Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.")}}function _ae(a){var o=a.stateNode,c=a.memoizedProps;try{Ve(a,c6e,a.type,c,o,a)}catch(h){Cr(a,a.return,h)}}function kae(a,o){return o.tag===31?(o=o.memoizedState,a.memoizedState!==null&&o===null):o.tag===13?(a=a.memoizedState,o=o.memoizedState,a!==null&&a.dehydrated!==null&&(o===null||o.dehydrated===null)):o.tag===3?a.memoizedState.isDehydrated&&(o.flags&256)===0:!1}function w3e(a,o){if(a=a.containerInfo,CK=h7,a=Am(a),Z4(a)){if("selectionStart"in a)var c={start:a.selectionStart,end:a.selectionEnd};else e:{c=(c=a.ownerDocument)&&c.defaultView||window;var h=c.getSelection&&c.getSelection();if(h&&h.rangeCount!==0){c=h.anchorNode;var g=h.anchorOffset,k=h.focusNode;h=h.focusOffset;try{c.nodeType,k.nodeType}catch{c=null;break e}var M=0,A=-1,B=-1,G=0,Ee=0,Ae=a,ke=null;t:for(;;){for(var je;Ae!==c||g!==0&&Ae.nodeType!==3||(A=M+g),Ae!==k||h!==0&&Ae.nodeType!==3||(B=M+h),Ae.nodeType===3&&(M+=Ae.nodeValue.length),(je=Ae.firstChild)!==null;)ke=Ae,Ae=je;for(;;){if(Ae===a)break t;if(ke===c&&++G===g&&(A=M),ke===k&&++Ee===h&&(B=M),(je=Ae.nextSibling)!==null)break;Ae=ke,ke=Ae.parentNode}Ae=je}c=A===-1||B===-1?null:{start:A,end:B}}else c=null}c=c||{start:0,end:0}}else c=null;for(EK={focusedElem:a,selectionRange:c},h7=!1,Ri=o;Ri!==null;)if(o=Ri,a=o.child,(o.subtreeFlags&1028)!==0&&a!==null)a.return=o,Ri=a;else for(;Ri!==null;){switch(a=o=Ri,c=a.alternate,g=a.flags,a.tag){case 0:if((g&4)!==0&&(a=a.updateQueue,a=a!==null?a.events:null,a!==null))for(c=0;c title"))),Fi(G,A,M),G[Ui]=a,kt(G),A=G;break e;case"link":var Ee=Pie("link","href",B).get(A+(M.href||""));if(Ee){for(var Ae=0;Ae{}).bind(console,"Suspended",k,g,ed,void 0,"primary-light")));break;case pd:k=N6,oa&&((h=h._debugTask)&&h.run((()=>{}).bind(console,"Action",k,g,ed,void 0,"primary-light")));break;default:oa&&(h=g-N6,3>h)}}k=(c=!c&&(o&127)===0&&(o&a.expiredLanes)===0||on(a,o))?E3e(a,o):NY(a,o,!0);var M=c;do{if(k===S1){xy&&!c&&v0(a,o,0,!1),o=zr,N6=ti(),tse=o;break}else{if(h=Li(),g=a.current.alternate,M&&!C3e(g)){Ka(o),g=Ii,k=h,!oa||k<=g||Pa&&Pa.run((()=>{}).bind(console,"Teared Render",g,k,Ma,Ja,"error")),Zu(o,h),k=NY(a,o,!1),M=!1;continue}if(k===dd){if(M=o,a.errorRecoveryDisabledLanes&M)var A=0;else A=a.pendingLanes&-536870913,A=A!==0?A:A&536870912?536870912:0;if(A!==0){Ka(o),Hu(Ii,h,o,Pa),Zu(o,h),o=A;e:{h=a,k=M,M=fg;var B=h.current.memoizedState.isDehydrated;if(B&&(qm(h,A).flags|=256),A=NY(h,A,!1),A!==dd){if(uK&&!B){h.errorRecoveryDisabledLanes|=k,$0|=k,k=z0;break e}h=vo,vo=M,h!==null&&(vo===null?vo=h:vo.push.apply(vo,h))}k=A}if(M=!1,k!==dd)continue;h=Li()}}if(k===dg){Ka(o),Hu(Ii,h,o,Pa),Zu(o,h),qm(a,0),v0(a,o,0,!0);break}e:{switch(c=a,k){case S1:case dg:throw Error("Root did not complete. This is a bug in React.");case z0:if((o&4194048)!==o)break;case U6:Ka(o),$u(Ii,h,o,Pa),Zu(o,h),g=o,(g&127)!==0?E6=h:(g&4194048)!==0&&(T6=h),v0(c,o,Yo,!P0);break e;case dd:vo=null;break;case F6:case Xse:break;default:throw Error("Unknown root exit status.")}if(We.actQueue!==null)LY(c,g,o,vo,mg,W6,Yo,$0,fd,k,null,null,Ii,h);else{if((o&62914560)===o&&(M=Y6+Qse-Li(),10{}).bind(console,M,c,h,Ma,Ja,k))}}Zu(Jn,Ii)}if(c=Pa,Pa=null,(o&127)!==0){Pa=W5,g=0<=hc&&hcg&&(c=g):c=g,0c&&(A=c):A=c,B!==null&&c>A){var ke=G?"secondary-light":"warning";h&&h.run((()=>{}).bind(console,G?"Consecutive":"Event: "+B,A,c,Ma,Ja,ke))}g>c&&(A=Ee?"error":(o&738197653)===o?"tertiary-light":"primary-light",Ee=Ae?"Promise Resolved":Ee?"Cascading Update":5k&&(c=k):c=k,0c&&(g=c):g=c,0g&&(Ae=g):Ae=g,g>Ae&&A!==null&&(ke=B?"secondary-light":"warning",h&&h.run((()=>{}).bind(console,B?"Consecutive":"Event: "+A,Ae,g,Ma,Ja,ke))),c>g&&(h&&h.run((()=>{}).bind(console,"Action",g,c,Ma,Ja,"primary-dark"))),k>c&&(g=G?"Promise Resolved":5Zr&&(M=Zr,Zr=nn,nn=M);var yr=zu(A,nn),me=zu(A,Zr);if(yr&&me&&(je.rangeCount!==1||je.anchorNode!==yr.node||je.anchorOffset!==yr.offset||je.focusNode!==me.node||je.focusOffset!==me.offset)){var be=Ae.createRange();be.setStart(yr.node,yr.offset),je.removeAllRanges(),nn>Zr?(je.addRange(be),je.extend(me.node,me.offset)):(be.setEnd(me.node,me.offset),je.addRange(be))}}}}for(Ae=[],je=A;je=je.parentNode;)je.nodeType===1&&Ae.push({element:je,left:je.scrollLeft,top:je.scrollTop});for(typeof A.focus=="function"&&A.focus(),A=0;A{}).bind(console,a,o,c,Ma,Ja,"secondary-light"))}a=q0,o=wy,c=Sl;var h=(o.flags&8772)!==0;if((o.subtreeFlags&8772)!==0||h){h=We.T,We.T=null;var g=Er.p;Er.p=fs;var k=vr;vr|=vs;try{ky=c,by=a,v3(),bae(a,o.alternate,o),by=ky=null}finally{vr=k,Er.p=g,We.T=h}}a=mK,o=ole,g1=ti(),a=o===null?a:N0,o=g1,c=Cl===hK,h=Pa,v1!==null?ju(a,o,v1,!1,h):!oa||o<=a||h&&h.run((()=>{}).bind(console,c?"Commit Interrupted View Transition":"Commit",a,o,Ma,Ja,c?"error":"secondary-dark")),oi=rle}}function Zae(){if(oi===ale||oi===rle){if(oi===ale){var a=g1;g1=ti();var o=g1,c=Cl===hK;!oa||o<=a||k1&&k1.run((()=>{}).bind(console,c?"Interrupted View Transition":"Starting Animation",a,o,Ma,Ja,c?"error":"secondary-light")),Cl!==hK&&(Cl=ele)}oi=j0,T6e(),a=q0;var h=wy;o=Sl,c=ile;var g=h.actualDuration!==0||(h.subtreeFlags&10256)!==0||(h.flags&10256)!==0;g?oi=Z6:(oi=j0,wy=q0=null,Qae(a,a.pendingLanes),md=0,gg=null);var k=a.pendingLanes;if(k===0&&(H0=null),g||rie(a),k=Mn(o),h=h.stateNode,Zi&&typeof Zi.onCommitFiberRoot=="function")try{var M=(h.current.flags&128)===128;switch(k){case fs:var A=yX;break;case kl:A=gX;break;case cc:A=Xm;break;case p6:A=vX;break;default:A=Xm}Zi.onCommitFiberRoot(Km,h,A,M)}catch{sc||(sc=!0)}if(lc&&a.memoizedUpdaters.clear(),S3e(),c!==null){M=We.T,A=Er.p,Er.p=fs,We.T=null;try{var B=a.onRecoverableError;for(h=0;hc?cc:c;c=We.T;var g=Er.p;try{Er.p=h,We.T=null;var k=yK;yK=null,h=q0;var M=Sl;if(oi=j0,wy=q0=null,Sl=0,(vr&(bi|vs))!==Di)throw Error("Cannot flush passive effects while already rendering.");Ka(M),vK=!0,Q6=!1;var A=0;if(v1=null,A=Li(),Cl===ele)qu(g1,A,k1);else{var B=g1,G=A,Ee=Cl===pK;!oa||G<=B||Pa&&Pa.run((()=>{}).bind(console,Ee?"Waiting for Paint":"Waiting",B,G,Ma,Ja,"secondary-light"))}B=vr,vr|=vs;var Ae=h.current;v3(),Dae(Ae);var ke=h.current;Ae=mK,v3(),Nae(h,ke,M,k,Ae),rie(h),vr=B;var je=Li();if(ke=A,Ae=Pa,v1!==null?ju(ke,je,v1,!0,Ae):!oa||je<=ke||Ae&&Ae.run((()=>{}).bind(console,"Remaining Effects",ke,je,Ma,Ja,"secondary-dark")),Zu(M,je),M5(0,!1),Q6?h===gg?md++:(md=0,gg=h):md=0,Q6=vK=!1,Zi&&typeof Zi.onPostCommitFiberRoot=="function")try{Zi.onPostCommitFiberRoot(Km,h)}catch{sc||(sc=!0)}var Ft=h.current.stateNode;return Ft.effectDuration=0,Ft.passiveEffectDuration=0,!0}finally{Er.p=g,We.T=c,Qae(a,o)}}function eie(a,o,c){o=Sn(c,o),nre(o),o=cY(a.stateNode,o,2),a=f0(a,o,2),a!==null&&(xe(a,2),rc(a))}function Cr(a,o,c){if(My=!1,a.tag===3)eie(a,a,c);else for(;o!==null;){if(o.tag===3){eie(o,a,c);return}if(o.tag===1){var h=o.stateNode;if(typeof o.type.getDerivedStateFromError=="function"||typeof h.componentDidCatch=="function"&&(H0===null||!H0.has(h))){a=Sn(c,a),nre(a),c=uY(2),h=f0(o,c,2),h!==null&&(dY(c,h,o,a),xe(h,2),rc(h));return}}o=o.return}}function IY(a,o,c){var h=a.pingCache;if(h===null){h=a.pingCache=new P7e;var g=new Set;h.set(o,g)}else g=h.get(o),g===void 0&&(g=new Set,h.set(o,g));g.has(c)||(uK=!0,g.add(c),h=L3e.bind(null,a,o,c),lc&&w5(a,c),o.then(h,h))}function L3e(a,o,c){var h=a.pingCache;h!==null&&h.delete(o),a.pingedLanes|=a.suspendedLanes&c,a.warmLanes&=~c,(c&127)!==0?0>hc&&(L0=hc=ti(),W5=S6("Promise Resolved"),I0=C6):(c&4194048)!==0&&0>Vs&&(pc=Vs=ti(),X5=S6("Promise Resolved"),VX=C6),Pae()&&We.actQueue,Vr===a&&(Jn&c)===c&&(_a===z0||_a===F6&&(Jn&62914560)===Jn&&Li()-Y6.");break;default:Fr(a,o,M,A,c,null)}wm(a,c),Jc(a,h,g,k);return;case"option":ns(a,c);for(B in c)c.hasOwnProperty(B)&&(h=c[B],h!=null)&&(B==="selected"?a.selected=h&&typeof h!="function"&&typeof h!="symbol":Fr(a,o,B,h,c,null));return;case"dialog":mr("beforetoggle",a),mr("toggle",a),mr("cancel",a),mr("close",a);break;case"iframe":case"object":mr("load",a);break;case"video":case"audio":for(h=0;h.");break;default:g!==k&&Fr(a,o,M,g,h,k)}rs(a,ke,je);return;case"option":for(var Ft in c)ke=c[Ft],c.hasOwnProperty(Ft)&&ke!=null&&!h.hasOwnProperty(Ft)&&(Ft==="selected"?a.selected=!1:Fr(a,o,Ft,null,h,ke));for(B in h)ke=h[B],je=c[B],h.hasOwnProperty(B)&&ke!==je&&(ke!=null||je!=null)&&(B==="selected"?a.selected=ke&&typeof ke!="function"&&typeof ke!="symbol":Fr(a,o,B,ke,h,je));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 nn in c)ke=c[nn],c.hasOwnProperty(nn)&&ke!=null&&!h.hasOwnProperty(nn)&&Fr(a,o,nn,null,h,ke);for(G in h)if(ke=h[G],je=c[G],h.hasOwnProperty(G)&&ke!==je&&(ke!=null||je!=null))switch(G){case"children":case"dangerouslySetInnerHTML":if(ke!=null)throw Error(o+" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.");break;default:Fr(a,o,G,ke,h,je)}return;default:if(yl(o)){for(var Zr in c)ke=c[Zr],c.hasOwnProperty(Zr)&&ke!==void 0&&!h.hasOwnProperty(Zr)&&jY(a,o,Zr,void 0,h,ke);for(Ee in h)ke=h[Ee],je=c[Ee],!h.hasOwnProperty(Ee)||ke===je||ke===void 0&&je===void 0||jY(a,o,Ee,ke,h,je);return}}for(var yr in c)ke=c[yr],c.hasOwnProperty(yr)&&ke!=null&&!h.hasOwnProperty(yr)&&Fr(a,o,yr,null,h,ke);for(Ae in h)ke=h[Ae],je=c[Ae],!h.hasOwnProperty(Ae)||ke===je||ke==null&&je==null||Fr(a,o,Ae,ke,h,je)}function yie(a){switch(a){case"class":return"className";case"for":return"htmlFor";default:return a}}function qY(a){var o={};a=a.style;for(var c=0;cB)break e}else if(B!=null)switch(typeof B){case"function":case"symbol":case"boolean":break;default:if(!(isNaN(B)||1>B)&&(wn(B,M),A===""+B))break e}Ni(M,A,B,Ae)}continue;case"rowSpan":_ie(a,G,"rowspan",B,k,g);continue;case"start":_ie(a,G,G,B,k,g);continue;case"xHeight":Bs(a,G,"x-height",B,k,g);continue;case"xlinkActuate":Bs(a,G,"xlink:actuate",B,k,g);continue;case"xlinkArcrole":Bs(a,G,"xlink:arcrole",B,k,g);continue;case"xlinkRole":Bs(a,G,"xlink:role",B,k,g);continue;case"xlinkShow":Bs(a,G,"xlink:show",B,k,g);continue;case"xlinkTitle":Bs(a,G,"xlink:title",B,k,g);continue;case"xlinkType":Bs(a,G,"xlink:type",B,k,g);continue;case"xmlBase":Bs(a,G,"xml:base",B,k,g);continue;case"xmlLang":Bs(a,G,"xml:lang",B,k,g);continue;case"xmlSpace":Bs(a,G,"xml:space",B,k,g);continue;case"inert":B!==""||o7[G]||(o7[G]=!0),vie(a,G,G,B,k,g);continue;default:if(!(2A)break;var Ee=B.transferSize,Ae=B.initiatorType;Ee&&bie(Ae)&&(B=B.responseEnd,M+=Ee*(B element (document.documentElement) to exist in the Document but one was not found. React never removes the documentElement for any Document it renders into so the cause is likely in some other script running on this page.");return a;case"head":if(a=o.head,!a)throw Error("React expected a element (document.head) to exist in the Document but one was not found. React never removes the head for any Document it renders into so the cause is likely in some other script running on this page.");return a;case"body":if(a=o.body,!a)throw Error("React expected a element (document.body) to exist in the Document but one was not found. React never removes the body for any Document it renders into so the cause is likely in some other script running on this page.");return a;default:throw Error("resolveSingletonInstance was called with an element type that is not supported. This is a bug in React.")}}function c6e(a,o,c,h){if(!c[M0]&&ot(c))var g=c.tagName.toLowerCase();switch(a){case"html":case"head":case"body":break;default:}for(g=c.attributes;g.length;)c.removeAttributeNode(g[0]);Fi(c,a,o),c[Ui]=h,c[ho]=o}function T5(a){for(var o=a.attributes;o.length;)a.removeAttributeNode(o[0]);qe(a)}function J3(a){return typeof a.getRootNode=="function"?a.getRootNode():a.nodeType===9?a:a.ownerDocument}function Rie(a,o,c){var h=Ty;if(h&&typeof o=="string"&&o){var g=Yi(o);g='link[rel="'+a+'"][href="'+g+'"]',typeof c=="string"&&(g+='[crossorigin="'+c+'"]'),ble.has(g)||(ble.add(g),a={rel:a,crossOrigin:c,href:o},h.querySelector(g)===null&&(o=h.createElement("link"),Fi(o,"link",a),kt(o),h.head.appendChild(o)))}}function Die(a,o,c,h){var g=(g=x0.current)?J3(g):null;if(!g)throw Error('"resourceRoot" was expected to exist. This is a bug in React.');switch(a){case"meta":case"title":return null;case"style":return typeof c.precedence=="string"&&typeof c.href=="string"?(c=Um(c.href),o=ct(g).hoistableStyles,h=o.get(c),h||(h={type:"style",instance:null,count:0,state:null},o.set(c,h)),h):{type:"void",instance:null,count:0,state:null};case"link":if(c.rel==="stylesheet"&&typeof c.href=="string"&&typeof c.precedence=="string"){a=Um(c.href);var k=ct(g).hoistableStyles,M=k.get(a);if(!M&&(g=g.ownerDocument||g,M={type:"stylesheet",instance:null,count:0,state:{loading:kd,preload:null}},k.set(a,M),(k=g.querySelector(A5(a)))&&!k._p&&(M.instance=k,M.state.loading=xg|Xs),!Ks.has(a))){var A={rel:"preload",as:"style",href:c.href,crossOrigin:c.crossOrigin,integrity:c.integrity,media:c.media,hrefLang:c.hrefLang,referrerPolicy:c.referrerPolicy};Ks.set(a,A),k||u6e(g,a,A,M.state)}if(o&&h===null)throw c=` - - - `+e6(o)+` - + `+e6(c),Error("Expected not to update to be updated to a stylesheet with precedence. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different components render in the same slot or share the same key."+c);return M}if(o&&h!==null)throw c=` - - - `+e6(o)+` - + `+e6(c),Error("Expected stylesheet with precedence to not be updated to a different kind of . Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different components render in the same slot or share the same key."+c);return null;case"script":return o=c.async,c=c.src,typeof c=="string"&&o&&typeof o!="function"&&typeof o!="symbol"?(c=Vm(c),o=ct(g).hoistableScripts,h=o.get(c),h||(h={type:"script",instance:null,count:0,state:null},o.set(c,h)),h):{type:"void",instance:null,count:0,state:null};default:throw Error('getResource encountered a type it did not expect: "'+a+'". this is a bug in React.')}}function e6(a){var o=0,c="o&&(c+=" ..."),c+" />"}function Um(a){return'href="'+Yi(a)+'"'}function A5(a){return'link[rel="stylesheet"]['+a+"]"}function Oie(a){return sr({},a,{"data-precedence":a.precedence,precedence:null})}function u6e(a,o,c,h){a.querySelector('link[rel="preload"][as="style"]['+o+"]")?h.loading=xg:(o=a.createElement("link"),h.preload=o,o.addEventListener("load",function(){return h.loading|=xg}),o.addEventListener("error",function(){return h.loading|=_le}),Fi(o,"link",c),kt(o),a.head.appendChild(o))}function Vm(a){return'[src="'+Yi(a)+'"]'}function N5(a){return"script[async]"+a}function zie(a,o,c){if(o.count++,o.instance===null)switch(o.type){case"style":var h=a.querySelector('style[data-href~="'+Yi(c.href)+'"]');if(h)return o.instance=h,kt(h),h;var g=sr({},c,{"data-href":c.href,"data-precedence":c.precedence,href:null,precedence:null});return h=(a.ownerDocument||a).createElement("style"),kt(h),Fi(h,"style",g),t6(h,c.precedence,a),o.instance=h;case"stylesheet":g=Um(c.href);var k=a.querySelector(A5(g));if(k)return o.state.loading|=Xs,o.instance=k,kt(k),k;h=Oie(c),(g=Ks.get(g))&&KY(h,g),k=(a.ownerDocument||a).createElement("link"),kt(k);var M=k;return M._p=new Promise(function(A,B){M.onload=A,M.onerror=B}),Fi(k,"link",h),o.state.loading|=Xs,t6(k,c.precedence,a),o.instance=k;case"script":return k=Vm(c.src),(g=a.querySelector(N5(k)))?(o.instance=g,kt(g),g):(h=c,(g=Ks.get(k))&&(h=sr({},c),ZY(h,g)),a=a.ownerDocument||a,g=a.createElement("script"),kt(g),Fi(g,"link",h),a.head.appendChild(g),o.instance=g);case"void":return null;default:throw Error('acquireResource encountered a resource type it did not expect: "'+o.type+'". this is a bug in React.')}else o.type==="stylesheet"&&(o.state.loading&Xs)===kd&&(h=o.instance,o.state.loading|=Xs,t6(h,c.precedence,a));return o.instance}function t6(a,o,c){for(var h=c.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),g=h.length?h[h.length-1]:null,k=g,M=0;M title"):null)}function d6e(a,o,c){var h=!c.ancestorInfo.containerTagInScope;if(c.context===Ey||o.itemProp!=null)return!h||o.itemProp==null,!1;switch(a){case"meta":case"title":return!0;case"style":if(typeof o.precedence!="string"||typeof o.href!="string"||o.href==="")break;return!0;case"link":if(typeof o.rel!="string"||typeof o.href!="string"||o.href===""||o.onLoad||o.onError){if(o.rel==="stylesheet"&&typeof o.precedence=="string"){a=o.href;var g=o.onError,k=o.disabled;c=[],o.onLoad&&c.push("`onLoad`"),g&&c.push("`onError`"),k!=null&&c.push("`disabled`"),g=j3e(c,"and"),g+=c.length===1?" prop":" props",k=c.length===1?"an "+g:"the "+g,c.length}h&&(typeof o.rel!="string"||typeof o.href!="string"||o.href===""||o.onError||o.onLoad);break}return o.rel==="stylesheet"?(a=o.precedence,o=o.disabled,typeof a=="string"&&o==null):!0;case"script":if(a=o.async&&typeof o.async!="function"&&typeof o.async!="symbol",!a||o.onLoad||o.onError||!o.src||typeof o.src!="string"){h&&(a&&(o.onLoad||o.onError));break}return!0;case"noscript":case"template":}return!1}function $ie(a){return!(a.type==="stylesheet"&&(a.state.loading&kle)===kd)}function h6e(a,o,c,h){if(c.type==="stylesheet"&&(typeof h.media!="string"||matchMedia(h.media).matches!==!1)&&(c.state.loading&Xs)===kd){if(c.instance===null){var g=Um(h.href),k=o.querySelector(A5(g));if(k){o=k._p,o!==null&&typeof o=="object"&&typeof o.then=="function"&&(a.count++,a=n6.bind(a),o.then(a,a)),c.state.loading|=Xs,c.instance=k,kt(k);return}k=o.ownerDocument||o,h=Oie(h),(g=Ks.get(g))&&KY(h,g),k=k.createElement("link"),kt(k);var M=k;M._p=new Promise(function(A,B){M.onload=A,M.onerror=B}),Fi(k,"link",h),c.instance=k}a.stylesheets===null&&(a.stylesheets=new Map),a.stylesheets.set(c,o),(o=c.state.preload)&&(c.state.loading&kle)===kd&&(a.count++,c=n6.bind(a),o.addEventListener("load",c),o.addEventListener("error",c))}}function p6e(a,o){return a.stylesheets&&a.count===0&&r6(a,a.stylesheets),0NK?50:Q7e)+o);return a.unsuspend=c,function(){a.unsuspend=null,clearTimeout(h),clearTimeout(g)}}:null}function n6(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)r6(this,this.stylesheets);else if(this.unsuspend){var a=this.unsuspend;this.unsuspend=null,a()}}}function r6(a,o){a.stylesheets=null,a.unsuspend!==null&&(a.count++,u7=new Map,o.forEach(f6e,a),u7=null,n6.call(a))}function f6e(a,o){if(!(o.state.loading&Xs)){var c=u7.get(a);if(c)var h=c.get(LK);else{c=new Map,u7.set(a,c);for(var g=a.querySelectorAll("link[data-precedence],style[data-precedence]"),k=0;ko;o++)a.push(new Set);this._debugRootType=c?"hydrateRoot()":"createRoot()"}function Hie(a,o,c,h,g,k,M,A,B,G,Ee,Ae){return a=new m6e(a,o,c,M,B,G,Ee,Ae,A),o=M7e,k===!0&&(o|=Qi|bl),o|=Zn,k=_(3,null,null,o),a.current=k,k.stateNode=a,o=SW(),Vu(o),a.pooledCache=o,Vu(o),k.memoizedState={element:h,isDehydrated:c,cache:o},NW(k),a}function jie(a){return a?(a=T0,a):T0}function QY(a,o,c,h,g,k){if(Zi&&typeof Zi.onScheduleFiberRoot=="function")try{Zi.onScheduleFiberRoot(Km,h,c)}catch{sc||(sc=!0)}g=jie(g),h.context===null?h.context=g:h.pendingContext=g,oc&&$s!==null&&!Sle&&(Sle=!0),h=p0(o),h.payload={element:c},k=k===void 0?null:k,k!==null&&(h.callback=k),c=f0(a,h,o),c!==null&&(Gl(o,"root.render()",null),wa(c,a,o),u5(c,a,o))}function qie(a,o){if(a=a.memoizedState,a!==null&&a.dehydrated!==null){var c=a.retryLane;a.retryLane=c!==0&&c\n\t]|^\s|\s$/,H6e="address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp".split(" "),koe="applet caption html table td th marquee object template foreignObject desc title".split(" "),j6e=koe.concat(["button"]),q6e="dd dt li option optgroup p rp rt".split(" "),boe={current:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null,containerTagInScope:null,implicitRootScope:!1},f6={},bX={animation:"animationDelay animationDirection animationDuration animationFillMode animationIterationCount animationName animationPlayState animationTimingFunction".split(" "),background:"backgroundAttachment backgroundClip backgroundColor backgroundImage backgroundOrigin backgroundPositionX backgroundPositionY backgroundRepeat backgroundSize".split(" "),backgroundPosition:["backgroundPositionX","backgroundPositionY"],border:"borderBottomColor borderBottomStyle borderBottomWidth borderImageOutset borderImageRepeat borderImageSlice borderImageSource borderImageWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderTopColor borderTopStyle borderTopWidth".split(" "),borderBlockEnd:["borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth"],borderBlockStart:["borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth"],borderBottom:["borderBottomColor","borderBottomStyle","borderBottomWidth"],borderColor:["borderBottomColor","borderLeftColor","borderRightColor","borderTopColor"],borderImage:["borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth"],borderInlineEnd:["borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth"],borderInlineStart:["borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth"],borderLeft:["borderLeftColor","borderLeftStyle","borderLeftWidth"],borderRadius:["borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius"],borderRight:["borderRightColor","borderRightStyle","borderRightWidth"],borderStyle:["borderBottomStyle","borderLeftStyle","borderRightStyle","borderTopStyle"],borderTop:["borderTopColor","borderTopStyle","borderTopWidth"],borderWidth:["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth"],columnRule:["columnRuleColor","columnRuleStyle","columnRuleWidth"],columns:["columnCount","columnWidth"],flex:["flexBasis","flexGrow","flexShrink"],flexFlow:["flexDirection","flexWrap"],font:"fontFamily fontFeatureSettings fontKerning fontLanguageOverride fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition fontWeight lineHeight".split(" "),fontVariant:"fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition".split(" "),gap:["columnGap","rowGap"],grid:"gridAutoColumns gridAutoFlow gridAutoRows gridTemplateAreas gridTemplateColumns gridTemplateRows".split(" "),gridArea:["gridColumnEnd","gridColumnStart","gridRowEnd","gridRowStart"],gridColumn:["gridColumnEnd","gridColumnStart"],gridColumnGap:["columnGap"],gridGap:["columnGap","rowGap"],gridRow:["gridRowEnd","gridRowStart"],gridRowGap:["rowGap"],gridTemplate:["gridTemplateAreas","gridTemplateColumns","gridTemplateRows"],listStyle:["listStyleImage","listStylePosition","listStyleType"],margin:["marginBottom","marginLeft","marginRight","marginTop"],marker:["markerEnd","markerMid","markerStart"],mask:"maskClip maskComposite maskImage maskMode maskOrigin maskPositionX maskPositionY maskRepeat maskSize".split(" "),maskPosition:["maskPositionX","maskPositionY"],outline:["outlineColor","outlineStyle","outlineWidth"],overflow:["overflowX","overflowY"],padding:["paddingBottom","paddingLeft","paddingRight","paddingTop"],placeContent:["alignContent","justifyContent"],placeItems:["alignItems","justifyItems"],placeSelf:["alignSelf","justifySelf"],textDecoration:["textDecorationColor","textDecorationLine","textDecorationStyle"],textEmphasis:["textEmphasisColor","textEmphasisStyle"],transition:["transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction"],wordWrap:["overflowWrap"]},xoe=/([A-Z])/g,woe=/^ms-/,F6e=/^(?:webkit|moz|o)[A-Z]/,v9t=/^-ms-/,U6e=/-(.)/g,V6e=/;\s*$/,Zm={},xX={},Moe=!1,Soe=!1,Coe=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" ")),m6="http://www.w3.org/1998/Math/MathML",Qm="http://www.w3.org/2000/svg",G6e=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),y6={accept:"accept",acceptcharset:"acceptCharset","accept-charset":"acceptCharset",accesskey:"accessKey",action:"action",allowfullscreen:"allowFullScreen",alt:"alt",as:"as",async:"async",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",capture:"capture",cellpadding:"cellPadding",cellspacing:"cellSpacing",challenge:"challenge",charset:"charSet",checked:"checked",children:"children",cite:"cite",class:"className",classid:"classID",classname:"className",cols:"cols",colspan:"colSpan",content:"content",contenteditable:"contentEditable",contextmenu:"contextMenu",controls:"controls",controlslist:"controlsList",coords:"coords",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",data:"data",datetime:"dateTime",default:"default",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",defer:"defer",dir:"dir",disabled:"disabled",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback",download:"download",draggable:"draggable",enctype:"encType",enterkeyhint:"enterKeyHint",fetchpriority:"fetchPriority",for:"htmlFor",form:"form",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",headers:"headers",height:"height",hidden:"hidden",high:"high",href:"href",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",id:"id",imagesizes:"imageSizes",imagesrcset:"imageSrcSet",inert:"inert",innerhtml:"innerHTML",inputmode:"inputMode",integrity:"integrity",is:"is",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",kind:"kind",label:"label",lang:"lang",list:"list",loop:"loop",low:"low",manifest:"manifest",marginwidth:"marginWidth",marginheight:"marginHeight",max:"max",maxlength:"maxLength",media:"media",mediagroup:"mediaGroup",method:"method",min:"min",minlength:"minLength",multiple:"multiple",muted:"muted",name:"name",nomodule:"noModule",nonce:"nonce",novalidate:"noValidate",open:"open",optimum:"optimum",pattern:"pattern",placeholder:"placeholder",playsinline:"playsInline",poster:"poster",preload:"preload",profile:"profile",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rel:"rel",required:"required",reversed:"reversed",role:"role",rows:"rows",rowspan:"rowSpan",sandbox:"sandbox",scope:"scope",scoped:"scoped",scrolling:"scrolling",seamless:"seamless",selected:"selected",shape:"shape",size:"size",sizes:"sizes",span:"span",spellcheck:"spellCheck",src:"src",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",start:"start",step:"step",style:"style",summary:"summary",tabindex:"tabIndex",target:"target",title:"title",type:"type",usemap:"useMap",value:"value",width:"width",wmode:"wmode",wrap:"wrap",about:"about",accentheight:"accentHeight","accent-height":"accentHeight",accumulate:"accumulate",additive:"additive",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",alphabetic:"alphabetic",amplitude:"amplitude",arabicform:"arabicForm","arabic-form":"arabicForm",ascent:"ascent",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",azimuth:"azimuth",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",bbox:"bbox",begin:"begin",bias:"bias",by:"by",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clip:"clip",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",color:"color",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",cursor:"cursor",cx:"cx",cy:"cy",d:"d",datatype:"datatype",decelerate:"decelerate",descent:"descent",diffuseconstant:"diffuseConstant",direction:"direction",display:"display",divisor:"divisor",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",dur:"dur",dx:"dx",dy:"dy",edgemode:"edgeMode",elevation:"elevation",enablebackground:"enableBackground","enable-background":"enableBackground",end:"end",exponent:"exponent",externalresourcesrequired:"externalResourcesRequired",fill:"fill",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filter:"filter",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",focusable:"focusable",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",format:"format",from:"from",fx:"fx",fy:"fy",g1:"g1",g2:"g2",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",hanging:"hanging",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",ideographic:"ideographic",imagerendering:"imageRendering","image-rendering":"imageRendering",in2:"in2",in:"in",inlist:"inlist",intercept:"intercept",k1:"k1",k2:"k2",k3:"k3",k4:"k4",k:"k",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",kerning:"kerning",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",local:"local",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",mask:"mask",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",mathematical:"mathematical",mode:"mode",numoctaves:"numOctaves",offset:"offset",opacity:"opacity",operator:"operator",order:"order",orient:"orient",orientation:"orientation",origin:"origin",overflow:"overflow",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder",panose1:"panose1","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",points:"points",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",popover:"popover",popovertarget:"popoverTarget",popovertargetaction:"popoverTargetAction",prefix:"prefix",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",property:"property",r:"r",radius:"radius",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",resource:"resource",restart:"restart",result:"result",results:"results",rotate:"rotate",rx:"rx",ry:"ry",scale:"scale",security:"security",seed:"seed",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",slope:"slope",spacing:"spacing",specularconstant:"specularConstant",specularexponent:"specularExponent",speed:"speed",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stemh:"stemh",stemv:"stemv",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",string:"string",stroke:"stroke",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",to:"to",transform:"transform",transformorigin:"transformOrigin","transform-origin":"transformOrigin",typeof:"typeof",u1:"u1",u2:"u2",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicode:"unicode",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",values:"values",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",version:"version",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",visibility:"visibility",vmathematical:"vMathematical","v-mathematical":"vMathematical",vocab:"vocab",widths:"widths",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",x1:"x1",x2:"x2",x:"x",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang",xmlns:"xmlns","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",y1:"y1",y2:"y2",y:"y",ychannelselector:"yChannelSelector",z:"z",zoomandpan:"zoomAndPan"},Eoe={"aria-current":0,"aria-description":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0,"aria-braillelabel":0,"aria-brailleroledescription":0,"aria-colindextext":0,"aria-rowindextext":0},Jm={},W6e=RegExp("^(aria)-[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Y6e=RegExp("^(aria)[A-Z][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Toe=!1,po={},Aoe=/^on./,X6e=/^on[^A-Z]/,K6e=RegExp("^(aria)-[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Z6e=RegExp("^(aria)[A-Z][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Q6e=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i,z5=null,ey=null,ty=null,wX=!1,uc=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),MX=!1;if(uc)try{var P5={};Object.defineProperty(P5,"passive",{get:function(){MX=!0}}),window.addEventListener("test",P5,P5),window.removeEventListener("test",P5,P5)}catch{MX=!1}var S0=null,SX=null,g6=null,Ju={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},v6=Xa(Ju),B5=sr({},Ju,{view:0,detail:0}),J6e=Xa(B5),CX,EX,$5,_6=sr({},B5,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tm,button:0,buttons:0,relatedTarget:function(a){return a.relatedTarget===void 0?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){return"movementX"in a?a.movementX:(a!==$5&&($5&&a.type==="mousemove"?(CX=a.screenX-$5.screenX,EX=a.screenY-$5.screenY):EX=CX=0,$5=a),CX)},movementY:function(a){return"movementY"in a?a.movementY:EX}}),Noe=Xa(_6),e7e=Xa(sr({},_6,{dataTransfer:0})),TX=Xa(sr({},B5,{relatedTarget:0})),t7e=Xa(sr({},Ju,{animationName:0,elapsedTime:0,pseudoElement:0})),n7e=Xa(sr({},Ju,{clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}})),Loe=Xa(sr({},Ju,{data:0})),r7e=Loe,a7e={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i7e={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},o7e={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"},s7e=Xa(sr({},B5,{key:function(a){if(a.key){var o=a7e[a.key]||a.key;if(o!=="Unidentified")return o}return a.type==="keypress"?(a=wr(a),a===13?"Enter":String.fromCharCode(a)):a.type==="keydown"||a.type==="keyup"?i7e[a.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tm,charCode:function(a){return a.type==="keypress"?wr(a):0},keyCode:function(a){return a.type==="keydown"||a.type==="keyup"?a.keyCode:0},which:function(a){return a.type==="keypress"?wr(a):a.type==="keydown"||a.type==="keyup"?a.keyCode:0}})),Ioe=Xa(sr({},_6,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),l7e=Xa(sr({},B5,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tm})),c7e=Xa(sr({},Ju,{propertyName:0,elapsedTime:0,pseudoElement:0})),u7e=Xa(sr({},_6,{deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0})),d7e=Xa(sr({},Ju,{newState:0,oldState:0})),h7e=[9,13,27,32],Roe=229,AX=uc&&"CompositionEvent"in window,H5=null;uc&&"documentMode"in document&&(H5=document.documentMode);var p7e=uc&&"TextEvent"in window&&!H5,Doe=uc&&(!AX||H5&&8=H5),Ooe=32,zoe=String.fromCharCode(Ooe),Poe=!1,ny=!1,f7e={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},j5=null,q5=null,Boe=!1;uc&&(Boe=d3("input")&&(!document.documentMode||9=document.documentMode,ry=null,NX=null,F5=null,LX=!1,ay={animationend:Ul("Animation","AnimationEnd"),animationiteration:Ul("Animation","AnimationIteration"),animationstart:Ul("Animation","AnimationStart"),transitionrun:Ul("Transition","TransitionRun"),transitionstart:Ul("Transition","TransitionStart"),transitioncancel:Ul("Transition","TransitionCancel"),transitionend:Ul("Transition","TransitionEnd")},IX={},$oe={};uc&&($oe=document.createElement("div").style,"AnimationEvent"in window||(delete ay.animationend.animation,delete ay.animationiteration.animation,delete ay.animationstart.animation),"TransitionEvent"in window||delete ay.transitionend.transition);var Hoe=is("animationend"),joe=is("animationiteration"),qoe=is("animationstart"),y7e=is("transitionrun"),g7e=is("transitionstart"),v7e=is("transitioncancel"),Foe=is("transitionend"),Uoe=new Map,RX="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(" ");RX.push("scrollEnd");var Voe=0;if(typeof performance=="object"&&typeof performance.now=="function")var _7e=performance,Goe=function(){return _7e.now()};else{var k7e=Date;Goe=function(){return k7e.now()}}var DX=typeof reportError=="function"?reportError:function(a){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var o=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof a=="object"&&a!==null&&typeof a.message=="string"?String(a.message):String(a),error:a});if(!window.dispatchEvent(o))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",a);return}},b7e="This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.",k6=0,OX=1,zX=2,PX=3,b6="– ",x6="+ ",Woe="  ",oa=typeof console<"u"&&typeof console.timeStamp=="function"&&typeof performance<"u"&&typeof performance.measure=="function",ed="Components ⚛",Ja="Scheduler ⚛",Ma="Blocking",C0=!1,p1={color:"primary",properties:null,tooltipText:"",track:ed},E0={start:-0,end:-0,detail:{devtools:p1}},x7e=["Changed Props",""],Yoe="This component received deeply equal props. It might benefit from useMemo or the React Compiler in its owner.",w7e=["Changed Props",Yoe],U5=1,f1=2,Hs=[],iy=0,BX=0,T0={};Object.freeze(T0);var js=null,oy=null,On=0,M7e=1,Zn=2,Qi=8,bl=16,S7e=32,Xoe=!1;try{Object.preventExtensions({})}catch{Xoe=!0}var $X=new WeakMap,sy=[],ly=0,w6=null,V5=0,qs=[],Fs=0,td=null,m1=1,y1="",Vi=null,sa=null,ur=!1,dc=!1,ms=null,A0=null,Us=!1,HX=Error("Hydration Mismatch Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React."),jX=Me(null),qX=Me(null),Koe={},M6=null,cy=null,uy=!1,C7e=typeof AbortController<"u"?AbortController:function(){var a=[],o=this.signal={aborted:!1,addEventListener:function(c,h){a.push(h)}};this.abort=function(){o.aborted=!0,a.forEach(function(c){return c()})}},E7e=Qa.unstable_scheduleCallback,T7e=Qa.unstable_NormalPriority,ei={$$typeof:ic,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0,_currentRenderer:null,_currentRenderer2:null},ti=Qa.unstable_now,S6=console.createTask?console.createTask:function(){return null},G5=1,C6=2,Ii=-0,N0=-0,g1=-0,v1=null,mo=-1.1,nd=-0,va=-0,En=-1.1,Ln=-1.1,pa=null,Sa=!1,L0=-0,hc=-1.1,W5=null,I0=0,FX=null,UX=null,rd=-1.1,Y5=null,dy=-1.1,E6=-1.1,pc=-0,_1=-1.1,Vs=-1.1,VX=0,X5=null,Zoe=null,Qoe=null,R0=-1.1,ad=null,D0=-1.1,T6=-1.1,Joe=-0,ese=-0,A6=0,k1=null,tse=0,N6=-1.1,L6=!1,I6=!1,K5=null,GX=0,id=0,hy=null,nse=We.S;We.S=function(a,o){if(Zse=Li(),typeof o=="object"&&o!==null&&typeof o.then=="function"){if(0>_1&&0>Vs){_1=ti();var c=E5(),h=C5();(c!==D0||h!==ad)&&(D0=-1.1),R0=c,ad=h}a3e(a,o)}nse!==null&&nse(a,o)};var od=Me(null),xl={recordUnsafeLifecycleWarnings:function(){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}},Z5=[],Q5=[],J5=[],eg=[],tg=[],ng=[],sd=new Set;xl.recordUnsafeLifecycleWarnings=function(a,o){sd.has(a.type)||(typeof o.componentWillMount=="function"&&o.componentWillMount.__suppressDeprecationWarning!==!0&&Z5.push(a),a.mode&Qi&&typeof o.UNSAFE_componentWillMount=="function"&&Q5.push(a),typeof o.componentWillReceiveProps=="function"&&o.componentWillReceiveProps.__suppressDeprecationWarning!==!0&&J5.push(a),a.mode&Qi&&typeof o.UNSAFE_componentWillReceiveProps=="function"&&eg.push(a),typeof o.componentWillUpdate=="function"&&o.componentWillUpdate.__suppressDeprecationWarning!==!0&&tg.push(a),a.mode&Qi&&typeof o.UNSAFE_componentWillUpdate=="function"&&ng.push(a))},xl.flushPendingUnsafeLifecycleWarnings=function(){var a=new Set;0.");var M="";c!=null&&a!==c&&(h=null,typeof c.tag=="number"?h=ne(c):typeof c.name=="string"&&(h=c.name),h&&(M=" It was passed a child from "+h+".")),Ve(o,function(){})}}};var cd=pre(!0),kse=pre(!1),bse=0,xse=1,wse=2,ZX=3,O0=!1,Mse=!1,QX=null,JX=!1,my=Me(null),z6=Me(0),ys=Me(null),Gs=null,yy=1,ig=2,Ua=Me(0),P6=0,Ws=1,yo=2,gs=4,go=8,gy,Sse=new Set,Cse=new Set,eK=new Set,Ese=new Set,b1=0,Bn=null,Ur=null,ni=null,B6=!1,vy=!1,ud=!1,$6=0,og=0,x1=null,R7e=0,D7e=25,Ge=null,Ys=null,w1=-1,sg=!1,lg={readContext:ha,use:g0,useCallback:za,useContext:za,useEffect:za,useImperativeHandle:za,useLayoutEffect:za,useInsertionEffect:za,useMemo:za,useReducer:za,useRef:za,useState:za,useDebugValue:za,useDeferredValue:za,useTransition:za,useSyncExternalStore:za,useId:za,useHostTransitionStatus:za,useFormState:za,useActionState:za,useOptimistic:za,useMemoCache:za,useCacheRefresh:za};lg.useEffectEvent=za;var tK=null,Tse=null,nK=null,Ase=null,fc=null,wl=null,H6=null;tK={readContext:function(a){return ha(a)},use:g0,useCallback:function(a,o){return Ge="useCallback",or(),Dm(o),QW(a,o)},useContext:function(a){return Ge="useContext",or(),ha(a)},useEffect:function(a,o){return Ge="useEffect",or(),Dm(o),I3(a,o)},useImperativeHandle:function(a,o,c){return Ge="useImperativeHandle",or(),Dm(c),ZW(a,o,c)},useInsertionEffect:function(a,o){Ge="useInsertionEffect",or(),Dm(o),Wu(4,yo,a,o)},useLayoutEffect:function(a,o){return Ge="useLayoutEffect",or(),Dm(o),KW(a,o)},useMemo:function(a,o){Ge="useMemo",or(),Dm(o);var c=We.H;We.H=fc;try{return JW(a,o)}finally{We.H=c}},useReducer:function(a,o,c){Ge="useReducer",or();var h=We.H;We.H=fc;try{return jW(a,o,c)}finally{We.H=h}},useRef:function(a){return Ge="useRef",or(),YW(a)},useState:function(a){Ge="useState",or();var o=We.H;We.H=fc;try{return VW(a)}finally{We.H=o}},useDebugValue:function(){Ge="useDebugValue",or()},useDeferredValue:function(a,o){return Ge="useDeferredValue",or(),eY(a,o)},useTransition:function(){return Ge="useTransition",or(),rY()},useSyncExternalStore:function(a,o,c){return Ge="useSyncExternalStore",or(),FW(a,o,c)},useId:function(){return Ge="useId",or(),aY()},useFormState:function(a,o){return Ge="useFormState",or(),E3(),zm(a,o)},useActionState:function(a,o){return Ge="useActionState",or(),zm(a,o)},useOptimistic:function(a){return Ge="useOptimistic",or(),GW(a)},useHostTransitionStatus:Yu,useMemoCache:Gu,useCacheRefresh:function(){return Ge="useCacheRefresh",or(),iY()},useEffectEvent:function(a){return Ge="useEffectEvent",or(),XW(a)}},Tse={readContext:function(a){return ha(a)},use:g0,useCallback:function(a,o){return Ge="useCallback",gt(),QW(a,o)},useContext:function(a){return Ge="useContext",gt(),ha(a)},useEffect:function(a,o){return Ge="useEffect",gt(),I3(a,o)},useImperativeHandle:function(a,o,c){return Ge="useImperativeHandle",gt(),ZW(a,o,c)},useInsertionEffect:function(a,o){Ge="useInsertionEffect",gt(),Wu(4,yo,a,o)},useLayoutEffect:function(a,o){return Ge="useLayoutEffect",gt(),KW(a,o)},useMemo:function(a,o){Ge="useMemo",gt();var c=We.H;We.H=fc;try{return JW(a,o)}finally{We.H=c}},useReducer:function(a,o,c){Ge="useReducer",gt();var h=We.H;We.H=fc;try{return jW(a,o,c)}finally{We.H=h}},useRef:function(a){return Ge="useRef",gt(),YW(a)},useState:function(a){Ge="useState",gt();var o=We.H;We.H=fc;try{return VW(a)}finally{We.H=o}},useDebugValue:function(){Ge="useDebugValue",gt()},useDeferredValue:function(a,o){return Ge="useDeferredValue",gt(),eY(a,o)},useTransition:function(){return Ge="useTransition",gt(),rY()},useSyncExternalStore:function(a,o,c){return Ge="useSyncExternalStore",gt(),FW(a,o,c)},useId:function(){return Ge="useId",gt(),aY()},useActionState:function(a,o){return Ge="useActionState",gt(),zm(a,o)},useFormState:function(a,o){return Ge="useFormState",gt(),E3(),zm(a,o)},useOptimistic:function(a){return Ge="useOptimistic",gt(),GW(a)},useHostTransitionStatus:Yu,useMemoCache:Gu,useCacheRefresh:function(){return Ge="useCacheRefresh",gt(),iY()},useEffectEvent:function(a){return Ge="useEffectEvent",gt(),XW(a)}},nK={readContext:function(a){return ha(a)},use:g0,useCallback:function(a,o){return Ge="useCallback",gt(),O3(a,o)},useContext:function(a){return Ge="useContext",gt(),ha(a)},useEffect:function(a,o){Ge="useEffect",gt(),Fo(2048,go,a,o)},useImperativeHandle:function(a,o,c){return Ge="useImperativeHandle",gt(),D3(a,o,c)},useInsertionEffect:function(a,o){return Ge="useInsertionEffect",gt(),Fo(4,yo,a,o)},useLayoutEffect:function(a,o){return Ge="useLayoutEffect",gt(),Fo(4,gs,a,o)},useMemo:function(a,o){Ge="useMemo",gt();var c=We.H;We.H=wl;try{return z3(a,o)}finally{We.H=c}},useReducer:function(a,o,c){Ge="useReducer",gt();var h=We.H;We.H=wl;try{return Om(a,o,c)}finally{We.H=h}},useRef:function(){return Ge="useRef",gt(),Or().memoizedState},useState:function(){Ge="useState",gt();var a=We.H;We.H=wl;try{return Om(gl)}finally{We.H=a}},useDebugValue:function(){Ge="useDebugValue",gt()},useDeferredValue:function(a,o){return Ge="useDeferredValue",gt(),Ore(a,o)},useTransition:function(){return Ge="useTransition",gt(),jre()},useSyncExternalStore:function(a,o,c){return Ge="useSyncExternalStore",gt(),A3(a,o,c)},useId:function(){return Ge="useId",gt(),Or().memoizedState},useFormState:function(a){return Ge="useFormState",gt(),E3(),N3(a)},useActionState:function(a){return Ge="useActionState",gt(),N3(a)},useOptimistic:function(a,o){return Ge="useOptimistic",gt(),Sre(a,o)},useHostTransitionStatus:Yu,useMemoCache:Gu,useCacheRefresh:function(){return Ge="useCacheRefresh",gt(),Or().memoizedState},useEffectEvent:function(a){return Ge="useEffectEvent",gt(),R3(a)}},Ase={readContext:function(a){return ha(a)},use:g0,useCallback:function(a,o){return Ge="useCallback",gt(),O3(a,o)},useContext:function(a){return Ge="useContext",gt(),ha(a)},useEffect:function(a,o){Ge="useEffect",gt(),Fo(2048,go,a,o)},useImperativeHandle:function(a,o,c){return Ge="useImperativeHandle",gt(),D3(a,o,c)},useInsertionEffect:function(a,o){return Ge="useInsertionEffect",gt(),Fo(4,yo,a,o)},useLayoutEffect:function(a,o){return Ge="useLayoutEffect",gt(),Fo(4,gs,a,o)},useMemo:function(a,o){Ge="useMemo",gt();var c=We.H;We.H=H6;try{return z3(a,o)}finally{We.H=c}},useReducer:function(a,o,c){Ge="useReducer",gt();var h=We.H;We.H=H6;try{return f5(a,o,c)}finally{We.H=h}},useRef:function(){return Ge="useRef",gt(),Or().memoizedState},useState:function(){Ge="useState",gt();var a=We.H;We.H=H6;try{return f5(gl)}finally{We.H=a}},useDebugValue:function(){Ge="useDebugValue",gt()},useDeferredValue:function(a,o){return Ge="useDeferredValue",gt(),zre(a,o)},useTransition:function(){return Ge="useTransition",gt(),qre()},useSyncExternalStore:function(a,o,c){return Ge="useSyncExternalStore",gt(),A3(a,o,c)},useId:function(){return Ge="useId",gt(),Or().memoizedState},useFormState:function(a){return Ge="useFormState",gt(),E3(),L3(a)},useActionState:function(a){return Ge="useActionState",gt(),L3(a)},useOptimistic:function(a,o){return Ge="useOptimistic",gt(),Ere(a,o)},useHostTransitionStatus:Yu,useMemoCache:Gu,useCacheRefresh:function(){return Ge="useCacheRefresh",gt(),Or().memoizedState},useEffectEvent:function(a){return Ge="useEffectEvent",gt(),R3(a)}},fc={readContext:function(a){return ha(a)},use:function(a){return g0(a)},useCallback:function(a,o){return Ge="useCallback",or(),QW(a,o)},useContext:function(a){return Ge="useContext",or(),ha(a)},useEffect:function(a,o){return Ge="useEffect",or(),I3(a,o)},useImperativeHandle:function(a,o,c){return Ge="useImperativeHandle",or(),ZW(a,o,c)},useInsertionEffect:function(a,o){Ge="useInsertionEffect",or(),Wu(4,yo,a,o)},useLayoutEffect:function(a,o){return Ge="useLayoutEffect",or(),KW(a,o)},useMemo:function(a,o){Ge="useMemo",or();var c=We.H;We.H=fc;try{return JW(a,o)}finally{We.H=c}},useReducer:function(a,o,c){Ge="useReducer",or();var h=We.H;We.H=fc;try{return jW(a,o,c)}finally{We.H=h}},useRef:function(a){return Ge="useRef",or(),YW(a)},useState:function(a){Ge="useState",or();var o=We.H;We.H=fc;try{return VW(a)}finally{We.H=o}},useDebugValue:function(){Ge="useDebugValue",or()},useDeferredValue:function(a,o){return Ge="useDeferredValue",or(),eY(a,o)},useTransition:function(){return Ge="useTransition",or(),rY()},useSyncExternalStore:function(a,o,c){return Ge="useSyncExternalStore",or(),FW(a,o,c)},useId:function(){return Ge="useId",or(),aY()},useFormState:function(a,o){return Ge="useFormState",or(),zm(a,o)},useActionState:function(a,o){return Ge="useActionState",or(),zm(a,o)},useOptimistic:function(a){return Ge="useOptimistic",or(),GW(a)},useMemoCache:function(a){return Gu(a)},useHostTransitionStatus:Yu,useCacheRefresh:function(){return Ge="useCacheRefresh",or(),iY()},useEffectEvent:function(a){return Ge="useEffectEvent",or(),XW(a)}},wl={readContext:function(a){return ha(a)},use:function(a){return g0(a)},useCallback:function(a,o){return Ge="useCallback",gt(),O3(a,o)},useContext:function(a){return Ge="useContext",gt(),ha(a)},useEffect:function(a,o){Ge="useEffect",gt(),Fo(2048,go,a,o)},useImperativeHandle:function(a,o,c){return Ge="useImperativeHandle",gt(),D3(a,o,c)},useInsertionEffect:function(a,o){return Ge="useInsertionEffect",gt(),Fo(4,yo,a,o)},useLayoutEffect:function(a,o){return Ge="useLayoutEffect",gt(),Fo(4,gs,a,o)},useMemo:function(a,o){Ge="useMemo",gt();var c=We.H;We.H=wl;try{return z3(a,o)}finally{We.H=c}},useReducer:function(a,o,c){Ge="useReducer",gt();var h=We.H;We.H=wl;try{return Om(a,o,c)}finally{We.H=h}},useRef:function(){return Ge="useRef",gt(),Or().memoizedState},useState:function(){Ge="useState",gt();var a=We.H;We.H=wl;try{return Om(gl)}finally{We.H=a}},useDebugValue:function(){Ge="useDebugValue",gt()},useDeferredValue:function(a,o){return Ge="useDeferredValue",gt(),Ore(a,o)},useTransition:function(){return Ge="useTransition",gt(),jre()},useSyncExternalStore:function(a,o,c){return Ge="useSyncExternalStore",gt(),A3(a,o,c)},useId:function(){return Ge="useId",gt(),Or().memoizedState},useFormState:function(a){return Ge="useFormState",gt(),N3(a)},useActionState:function(a){return Ge="useActionState",gt(),N3(a)},useOptimistic:function(a,o){return Ge="useOptimistic",gt(),Sre(a,o)},useMemoCache:function(a){return Gu(a)},useHostTransitionStatus:Yu,useCacheRefresh:function(){return Ge="useCacheRefresh",gt(),Or().memoizedState},useEffectEvent:function(a){return Ge="useEffectEvent",gt(),R3(a)}},H6={readContext:function(a){return ha(a)},use:function(a){return g0(a)},useCallback:function(a,o){return Ge="useCallback",gt(),O3(a,o)},useContext:function(a){return Ge="useContext",gt(),ha(a)},useEffect:function(a,o){Ge="useEffect",gt(),Fo(2048,go,a,o)},useImperativeHandle:function(a,o,c){return Ge="useImperativeHandle",gt(),D3(a,o,c)},useInsertionEffect:function(a,o){return Ge="useInsertionEffect",gt(),Fo(4,yo,a,o)},useLayoutEffect:function(a,o){return Ge="useLayoutEffect",gt(),Fo(4,gs,a,o)},useMemo:function(a,o){Ge="useMemo",gt();var c=We.H;We.H=wl;try{return z3(a,o)}finally{We.H=c}},useReducer:function(a,o,c){Ge="useReducer",gt();var h=We.H;We.H=wl;try{return f5(a,o,c)}finally{We.H=h}},useRef:function(){return Ge="useRef",gt(),Or().memoizedState},useState:function(){Ge="useState",gt();var a=We.H;We.H=wl;try{return f5(gl)}finally{We.H=a}},useDebugValue:function(){Ge="useDebugValue",gt()},useDeferredValue:function(a,o){return Ge="useDeferredValue",gt(),zre(a,o)},useTransition:function(){return Ge="useTransition",gt(),qre()},useSyncExternalStore:function(a,o,c){return Ge="useSyncExternalStore",gt(),A3(a,o,c)},useId:function(){return Ge="useId",gt(),Or().memoizedState},useFormState:function(a){return Ge="useFormState",gt(),L3(a)},useActionState:function(a){return Ge="useActionState",gt(),L3(a)},useOptimistic:function(a,o){return Ge="useOptimistic",gt(),Ere(a,o)},useMemoCache:function(a){return Gu(a)},useHostTransitionStatus:Yu,useCacheRefresh:function(){return Ge="useCacheRefresh",gt(),Or().memoizedState},useEffectEvent:function(a){return Ge="useEffectEvent",gt(),R3(a)}};var Nse={},Lse=new Set,Ise=new Set,Rse=new Set,Dse=new Set,Ose=new Set,zse=new Set,Pse=new Set,Bse=new Set,$se=new Set,Hse=new Set;Object.freeze(Nse);var rK={enqueueSetState:function(a,o,c){a=a._reactInternals;var h=ds(a),g=p0(h);g.payload=o,c!=null&&(sY(c),g.callback=c),o=f0(a,g,h),o!==null&&(Gl(h,"this.setState()",a),wa(o,a,h),u5(o,a,h))},enqueueReplaceState:function(a,o,c){a=a._reactInternals;var h=ds(a),g=p0(h);g.tag=xse,g.payload=o,c!=null&&(sY(c),g.callback=c),o=f0(a,g,h),o!==null&&(Gl(h,"this.replaceState()",a),wa(o,a,h),u5(o,a,h))},enqueueForceUpdate:function(a,o){a=a._reactInternals;var c=ds(a),h=p0(c);h.tag=wse,o!=null&&(sY(o),h.callback=o),o=f0(a,h,c),o!==null&&(Gl(c,"this.forceUpdate()",a),wa(o,a,c),u5(o,a,c))}},j6=null,aK=null,iK=Error("This is not a real error. It's an implementation detail of React's selective hydration feature. If this leaks into userspace, it's a bug in React. Please file an issue."),ri=!1,jse={},qse={},Fse={},Use={},_y=!1,Vse={},q6={},oK={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null},Gse=!1,Wse=null;Wse=new Set;var M1=!1,ai=!1,sK=!1,Yse=typeof WeakSet=="function"?WeakSet:Set,Ri=null,ky=null,by=null,ii=null,Go=!1,Ml=null,ki=!1,cg=8192,O7e={getCacheForType:function(a){var o=ha(ei),c=o.data.get(a);return c===void 0&&(c=a(),o.data.set(a,c)),c},cacheSignal:function(){return ha(ei).controller.signal},getOwner:function(){return $s}};if(typeof Symbol=="function"&&Symbol.for){var ug=Symbol.for;ug("selector.component"),ug("selector.has_pseudo_class"),ug("selector.role"),ug("selector.test_id"),ug("selector.text")}var z7e=[],P7e=typeof WeakMap=="function"?WeakMap:Map,Di=0,bi=2,vs=4,S1=0,dg=1,dd=2,F6=3,z0=4,U6=6,Xse=5,vr=Di,Vr=null,tr=null,Jn=0,Wo=0,V6=1,hd=2,hg=3,Kse=4,lK=5,pg=6,G6=7,cK=8,pd=9,zr=Wo,_s=null,P0=!1,xy=!1,uK=!1,mc=0,_a=S1,B0=0,$0=0,dK=0,Yo=0,fd=0,fg=null,vo=null,W6=!1,Y6=0,Zse=0,Qse=300,X6=1/0,Jse=500,mg=null,Pa=null,H0=null,K6=0,hK=1,pK=2,ele=3,j0=0,tle=1,nle=2,rle=3,ale=4,Z6=5,oi=0,q0=null,wy=null,Sl=0,fK=0,mK=-0,yK=null,ile=null,ole=null,Cl=K6,sle=null,B7e=50,yg=0,gK=null,vK=!1,Q6=!1,$7e=50,md=0,gg=null,My=!1,J6=null,lle=!1,cle=new Set,H7e={},e7=null,Sy=null,_K=!1,kK=!1,t7=!1,bK=!1,F0=0,xK={};(function(){for(var a=0;a"u"?null:document,c7=null,Z7e=6e4,Q7e=800,J7e=500,NK=0,LK=null,u7=null,bd=S6e,wg={$$typeof:ic,Provider:null,Consumer:null,_currentValue:bd,_currentValue2:bd,_threadCount:0},xle="%c%s%c",wle="background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px",Mle="",d7=" ",e8e=Function.prototype.bind,Sle=!1,Cle=null,Ele=null,Tle=null,Ale=null,Nle=null,Lle=null,Ile=null,Rle=null,Dle=null,Ole=null;Cle=function(a,o,c,h){o=t(a,o),o!==null&&(c=n(o.memoizedState,c,0,h),o.memoizedState=c,o.baseState=c,a.memoizedProps=sr({},a.memoizedProps),c=Za(a,2),c!==null&&wa(c,a,2))},Ele=function(a,o,c){o=t(a,o),o!==null&&(c=s(o.memoizedState,c,0),o.memoizedState=c,o.baseState=c,a.memoizedProps=sr({},a.memoizedProps),c=Za(a,2),c!==null&&wa(c,a,2))},Tle=function(a,o,c,h){o=t(a,o),o!==null&&(c=r(o.memoizedState,c,h),o.memoizedState=c,o.baseState=c,a.memoizedProps=sr({},a.memoizedProps),c=Za(a,2),c!==null&&wa(c,a,2))},Ale=function(a,o,c){a.pendingProps=n(a.memoizedProps,o,0,c),a.alternate&&(a.alternate.pendingProps=a.pendingProps),o=Za(a,2),o!==null&&wa(o,a,2)},Nle=function(a,o){a.pendingProps=s(a.memoizedProps,o,0),a.alternate&&(a.alternate.pendingProps=a.pendingProps),o=Za(a,2),o!==null&&wa(o,a,2)},Lle=function(a,o,c){a.pendingProps=r(a.memoizedProps,o,c),a.alternate&&(a.alternate.pendingProps=a.pendingProps),o=Za(a,2),o!==null&&wa(o,a,2)},Ile=function(a){var o=Za(a,2);o!==null&&wa(o,a,2)},Rle=function(a){var o=ze(),c=Za(a,o);c!==null&&wa(c,a,o)},Dle=function(a){u=a},Ole=function(a){l=a};var h7=!0,p7=null,IK=!1,V0=null,G0=null,W0=null,Mg=new Map,Sg=new Map,Y0=[],t8e="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" "),f7=null;if(o6.prototype.render=rX.prototype.render=function(a){var o=this._internalRoot;if(o===null)throw Error("Cannot update an unmounted root.");var c=arguments;typeof c[1]=="function"||C(c[1])||typeof c[1]<"u",c=a;var h=o.current;QY(h,ds(h),c,o,null,null)},o6.prototype.unmount=rX.prototype.unmount=function(){var a=arguments;if(a[0],a=this._internalRoot,a!==null){this._internalRoot=null;var o=a.containerInfo;vr&(bi|vs),QY(a.current,2,null,a,null,null),jm(),o[M0]=null}},o6.prototype.unstable_scheduleHydration=function(a){if(a){var o=H();a={blockedOn:null,target:a,priority:o};for(var c=0;c{t.exports=p8e()}));function m8e(e){var t=Object.create(null);return function(n){return t[n]===void 0&&(t[n]=e(n)),t[n]}}var y8e=n2e((()=>{})),g8e=Bv({default:()=>Oee}),zle,Oee,i2e=n2e((()=>{y8e(),zle=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,Oee=m8e(function(e){return zle.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91})})),fa="-ms-",Zg="-moz-",Ar="-webkit-",o2e="comm",zee="rule",Pee="decl",v8e="@import",_8e="@namespace",s2e="@keyframes",k8e="@layer",l2e=Math.abs,Bee=String.fromCharCode,CQ=Object.assign;function b8e(e,t){return Si(e,0)^45?(((t<<2^Si(e,0))<<2^Si(e,1))<<2^Si(e,2))<<2^Si(e,3):0}function c2e(e){return e.trim()}function R1(e,t){return(e=t.exec(e))?e[0]:e}function lr(e,t,n){return e.replace(t,n)}function p8(e,t,n){return e.indexOf(t,n)}function Si(e,t){return e.charCodeAt(t)|0}function um(e,t,n){return e.slice(t,n)}function Ll(e){return e.length}function u2e(e){return e.length}function Fg(e,t){return t.push(e),e}function x8e(e,t){return e.map(t).join("")}function Ple(e,t){return e.filter(function(n){return!R1(n,t)})}var TG=1,a4=1,d2e=0,ll=0,ui=0,b4="";function AG(e,t,n,r,i,s,l,u){return{value:e,root:t,parent:n,type:r,props:i,children:s,line:TG,column:a4,length:l,return:"",siblings:u}}function ru(e,t){return CQ(AG("",null,null,"",null,null,0,e.siblings),e,{length:-e.length},t)}function Ay(e){for(;e.root;)e=ru(e.root,{children:[e]});Fg(e,e.siblings)}function w8e(){return ui}function M8e(){return ui=ll>0?Si(b4,--ll):0,a4--,ui===10&&(a4=1,TG--),ui}function Il(){return ui=ll2||gv(ui)>3?"":" "}function T8e(e,t){for(;--t&&Il()&&!(ui<48||ui>102||ui>57&&ui<65||ui>70&&ui<97););return NG(e,f8()+(t<6&&ou()==32&&Il()==32))}function EQ(e){for(;Il();)switch(ui){case e:return ll;case 34:case 39:e!==34&&e!==39&&EQ(ui);break;case 40:e===41&&EQ(e);break;case 92:Il();break}return ll}function A8e(e,t){for(;Il()&&e+ui!==57;)if(e+ui===84&&ou()===47)break;return"/*"+NG(t,ll-1)+"*"+Bee(e===47?e:Il())}function N8e(e){for(;!gv(ou());)Il();return NG(e,ll)}function L8e(e){return C8e(m8("",null,null,null,[""],e=S8e(e),0,[0],e))}function m8(e,t,n,r,i,s,l,u,d){for(var p=0,f=0,y=l,v=0,_=0,x=0,E=1,T=1,C=1,I=0,z="",P=i,F=s,$=r,J=z;T;)switch(x=I,I=Il()){case 40:if(x!=108&&Si(J,y-1)==58){p8(J+=lr(RK(I),"&","&\f"),"&\f",l2e(p?u[p-1]:0))!=-1&&(C=-1);break}case 34:case 39:case 91:J+=RK(I);break;case 9:case 10:case 13:case 32:J+=E8e(x);break;case 92:J+=T8e(f8()-1,7);continue;case 47:switch(ou()){case 42:case 47:Fg(I8e(A8e(Il(),f8()),t,n,d),d),(gv(x||1)==5||gv(ou()||1)==5)&&Ll(J)&&um(J,-1,void 0)!==" "&&(J+=" ");break;default:J+="/"}break;case 123*E:u[p++]=Ll(J)*C;case 125*E:case 59:case 0:switch(I){case 0:case 125:T=0;case 59+f:C==-1&&(J=lr(J,/\f/g,"")),_>0&&(Ll(J)-y||E===0&&x===47)&&Fg(_>32?$le(J+";",r,n,y-1,d):$le(lr(J," ","")+";",r,n,y-2,d),d);break;case 59:J+=";";default:if(Fg($=Ble(J,t,n,p,f,i,u,z,P=[],F=[],y,s),s),I===123)if(f===0)m8(J,t,$,$,P,s,y,u,F);else{switch(v){case 99:if(Si(J,3)===110)break;case 108:if(Si(J,2)===97)break;default:f=0;case 100:case 109:case 115:}f?m8(e,$,$,r&&Fg(Ble(e,$,$,0,0,i,u,z,i,P=[],y,F),F),i,F,y,u,r?P:F):m8(J,$,$,$,[""],F,0,u,F)}}p=f=_=0,E=C=1,z=J="",y=l;break;case 58:y=1+Ll(J),_=x;default:if(E<1){if(I==123)--E;else if(I==125&&E++==0&&M8e()==125)continue}switch(J+=Bee(I),I*E){case 38:C=f>0?1:(J+="\f",-1);break;case 44:u[p++]=(Ll(J)-1)*C,C=1;break;case 64:ou()===45&&(J+=RK(Il())),v=ou(),f=y=Ll(z=J+=N8e(f8())),I++;break;case 45:x===45&&Ll(J)==2&&(E=0)}}return s}function Ble(e,t,n,r,i,s,l,u,d,p,f,y){for(var v=i-1,_=i===0?s:[""],x=u2e(_),E=0,T=0,C=0;E0?_[I]+" "+z:lr(z,/&\f/g,_[I])))&&(d[C++]=P);return AG(e,t,n,i===0?zee:u,d,p,f,y)}function I8e(e,t,n,r){return AG(e,t,n,o2e,Bee(w8e()),um(e,2,-2),0,r)}function $le(e,t,n,r,i){return AG(e,t,n,Pee,um(e,0,r),um(e,r+1,-1),r,i)}function h2e(e,t,n){switch(b8e(e,t)){case 5103:return Ar+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:case 6391:case 5879:case 5623:case 6135:case 4599:return Ar+e+e;case 4855:return Ar+e.replace("add","source-over").replace("substract","source-out").replace("intersect","source-in").replace("exclude","xor")+e;case 4789:return Zg+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Ar+e+Zg+e+fa+e+e;case 5936:switch(Si(e,t+11)){case 114:return Ar+e+fa+lr(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Ar+e+fa+lr(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Ar+e+fa+lr(e,/[svh]\w+-[tblr]{2}/,"lr")+e}case 6828:case 4268:case 2903:return Ar+e+fa+e+e;case 6165:return Ar+e+fa+"flex-"+e+e;case 5187:return Ar+e+lr(e,/(\w+).+(:[^]+)/,Ar+"box-$1$2"+fa+"flex-$1$2")+e;case 5443:return Ar+e+fa+"flex-item-"+lr(e,/flex-|-self/g,"")+(R1(e,/flex-|baseline/)?"":fa+"grid-row-"+lr(e,/flex-|-self/g,""))+e;case 4675:return Ar+e+fa+"flex-line-pack"+lr(e,/align-content|flex-|-self/g,"")+e;case 5548:return Ar+e+fa+lr(e,"shrink","negative")+e;case 5292:return Ar+e+fa+lr(e,"basis","preferred-size")+e;case 6060:return Ar+"box-"+lr(e,"-grow","")+Ar+e+fa+lr(e,"grow","positive")+e;case 4554:return Ar+lr(e,/([^-])(transform)/g,"$1"+Ar+"$2")+e;case 6187:return lr(lr(lr(e,/(zoom-|grab)/,Ar+"$1"),/(image-set)/,Ar+"$1"),e,"")+e;case 5495:case 3959:return lr(e,/(image-set\([^]*)/,Ar+"$1$`$1");case 4968:return lr(lr(e,/(.+:)(flex-)?(.*)/,Ar+"box-pack:$3"+fa+"flex-pack:$3"),/space-between/,"justify")+Ar+e+e;case 4200:if(!R1(e,/flex-|baseline/))return fa+"grid-column-align"+um(e,t)+e;break;case 2592:case 3360:return fa+lr(e,"template-","")+e;case 4384:case 3616:return n&&n.some(function(r,i){return t=i,R1(r.props,/grid-\w+-end/)})?~p8(e+(n=n[t].value),"span",0)?e:fa+lr(e,"-start","")+e+fa+"grid-row-span:"+(~p8(n,"span",0)?R1(n,/\d+/):+R1(n,/\d+/)-+R1(e,/\d+/))+";":fa+lr(e,"-start","")+e;case 4896:case 4128:return n&&n.some(function(r){return R1(r.props,/grid-\w+-start/)})?e:fa+lr(lr(e,"-end","-span"),"span ","")+e;case 4095:case 3583:case 4068:case 2532:return lr(e,/(.+)-inline(.+)/,Ar+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Ll(e)-1-t>6)switch(Si(e,t+1)){case 109:if(Si(e,t+4)!==45)break;case 102:return lr(e,/(.+:)(.+)-([^]+)/,"$1"+Ar+"$2-$3$1"+Zg+(Si(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~p8(e,"stretch",0)?h2e(lr(e,"stretch","fill-available"),t,n)+e:e}break;case 5152:case 5920:return lr(e,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(r,i,s,l,u,d,p){return fa+i+":"+s+p+(l?fa+i+"-span:"+(u?d:+d-+s)+p:"")+e});case 4949:if(Si(e,t+6)===121)return lr(e,":",":"+Ar)+e;break;case 6444:switch(Si(e,Si(e,14)===45?18:11)){case 120:return lr(e,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+Ar+(Si(e,14)===45?"inline-":"")+"box$3$1"+Ar+"$2$3$1"+fa+"$2box$3")+e;case 100:return lr(e,":",":"+fa)+e}break;case 5719:case 2647:case 2135:case 3927:case 2391:return lr(e,"scroll-","scroll-snap-")+e}return e}function zV(e,t){for(var n="",r=0;r-1&&!e.return)switch(e.type){case Pee:e.return=h2e(e.value,e.length,n);return;case s2e:return zV([ru(e,{value:lr(e.value,"@","@"+Ar)})],r);case zee:if(e.length)return x8e(n=e.props,function(i){switch(R1(i,r=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":Ay(ru(e,{props:[lr(i,/:(read-\w+)/,":"+Zg+"$1")]})),Ay(ru(e,{props:[i]})),CQ(e,{props:Ple(n,r)});break;case"::placeholder":Ay(ru(e,{props:[lr(i,/:(plac\w+)/,":"+Ar+"input-$1")]})),Ay(ru(e,{props:[lr(i,/:(plac\w+)/,":"+Zg+"$1")]})),Ay(ru(e,{props:[lr(i,/:(plac\w+)/,fa+"input-$1")]})),Ay(ru(e,{props:[i]})),CQ(e,{props:Ple(n,r)});break}return""})}}var p2e=$l(f8e());i2e();var w=$l(EG()),DK,OK,F1=typeof process<"u"&&({}.REACT_APP_SC_ATTR||{}.SC_ATTR)||"data-styled",f2e="active",m2e="data-styled-version",LG="6.4.3",y2e=`/*!sc*/ -`,Qg=typeof window<"u"&&typeof document<"u";function Hle(e){if(typeof process<"u"){const t={}[e];if(t!==void 0&&t!=="")return t!=="false"}}var P8e=!!(typeof SC_DISABLE_SPEEDY=="boolean"?SC_DISABLE_SPEEDY:(OK=(DK=Hle("REACT_APP_SC_DISABLE_SPEEDY"))!==null&&DK!==void 0?DK:Hle("SC_DISABLE_SPEEDY"))!==null&&OK!==void 0?OK:typeof process<"u"),g2e="sc-keyframes-",B8e={},$8e={1:`Cannot create styled-component for component: %s. - -`,2:`Can't collect styles once you've consumed a \`ServerStyleSheet\`'s styles! \`ServerStyleSheet\` is a one off instance for each server-side render cycle. - -- Are you trying to reuse it across renders? -- Are you accidentally calling collectStyles twice? - -`,3:`Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser. - -`,4:`The \`StyleSheetManager\` expects a valid target or sheet prop! - -- Does this error occur on the client and is your target falsy? -- Does this error occur on the server and is the sheet falsy? - -`,5:`The clone method cannot be used on the client! - -- Are you running in a client-like environment on the server? -- Are you trying to run SSR on the client? - -`,6:`Trying to insert a new style tag, but the given Node is unmounted! - -- Are you using a custom target that isn't mounted? -- Does your document not have a valid head element? -- Have you accidentally removed a style tag manually? - -`,7:'ThemeProvider: Please return an object from your "theme" prop function, e.g.\n\n```js\ntheme={() => ({})}\n```\n\n',8:`ThemeProvider: Please make your "theme" prop an object. - -`,9:"Missing document ``\n\n",10:`Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021 - -`,11:`_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements. - -`,12:"It seems you are interpolating a keyframe declaration (%s) into an untagged string. Please wrap your string in the css\\`\\` helper which ensures the styles are injected correctly. See https://styled-components.com/docs/api#css\n\n",13:`%s is not a styled component and cannot be referred to via component selector. See https://styled-components.com/docs/advanced#referring-to-other-components for more details. - -`,14:`ThemeProvider: "theme" prop is required. - -`,15:"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\n\n```js\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\n```\n\n",16:`Reached the limit of how many styled components may be created at group %s. -You may only create up to 1,073,741,824 components. If you're creating components dynamically, -as for instance in your render method then you may be running into this limitation. - -`,17:`CSSStyleSheet could not be found on HTMLStyleElement. -Has styled-components' style tag been unmounted or altered by another script? - -`,18:`Accessing \`useTheme\` hook outside of a \`\` element. - -\`\`\`jsx -import { useTheme } from 'styled-components'; -export function StyledCompoent({ children }) { - const theme = useTheme(); - return
{children}
; -} - -import { StyledComponent } from './StyledComponent'; -import { theme } from './theme'; -export function App() { - return ( - - - - ); -} -\`\`\` - -If you need access to the theme in an uncertain composition scenario, \`React.useContext(ThemeContext)\` will not emit an error if there is no \`ThemeProvider\` ancestor. -`};function P1(e,...t){return new Error((function(...n){let r=n[0];const i=[];for(let s=1,l=n.length;s{r=r.replace(/%[a-z]/,s)}),r})($8e[e],...t).trim())}var H8e=1<<30,y8=new Map,PV=new Map,g8=1,Ug=e=>{if(y8.has(e))return y8.get(e);for(;PV.has(g8);)g8++;const t=g8++;if((0|t)<0||t>H8e)throw P1(16,`${t}`);return y8.set(e,t),PV.set(t,e),t},j8e=e=>PV.get(e),q8e=(e,t)=>{g8=t+1,y8.set(e,t),PV.set(t,e)},jle=/invalid hook call/i,m7=new Set,v2e=(e,t)=>{{const n=`The component ${e}${t?` with the id of "${t}"`:""} has been created dynamically. -You may see this warning because you've called styled inside another component. -To resolve this only create new StyledComponents outside of any render method and function component. -See https://styled-components.com/docs/basics#define-styled-components-outside-of-the-render-method for more info. -`,r=console.error;try{let i=!0;console.error=(s,...l)=>{jle.test(s)?(i=!1,m7.delete(n)):r(s,...l)},typeof w.useState=="function"&&w.useState(null),i&&!m7.has(n)&&m7.add(n)}catch(i){jle.test(i.message)&&m7.delete(n)}finally{console.error=r}}},$ee=Object.freeze([]),i4=Object.freeze({});function _2e(e,t,n=i4){return e.theme!==n.theme&&e.theme||t||n.theme}var F8e=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,U8e=/(^-|-$)/g;function k2e(e){return e.replace(F8e,"-").replace(U8e,"")}var V8e=/(a)(d)/gi,qle=e=>String.fromCharCode(e+(e>25?39:97));function Hee(e){let t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=qle(t%52)+n;return(qle(t%52)+n).replace(V8e,"$1-$2")}var TQ=5381,rm=(e,t)=>{let n=t.length;for(;n;)e=33*e^t.charCodeAt(--n);return e},b2e=e=>rm(TQ,e);function jee(e){return Hee(b2e(e)>>>0)}function G8e(e){return typeof e=="string"&&e||e.displayName||e.name||"Component"}function v8(e){return typeof e=="string"&&e.charAt(0)===e.charAt(0).toLowerCase()}function W8e(e){return v8(e)?`styled.${e}`:`Styled(${G8e(e)})`}var x2e=Symbol.for("react.memo"),Y8e=Symbol.for("react.forward_ref"),X8e={contextType:!0,defaultProps:!0,displayName:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},K8e={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},w2e={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Z8e={[Y8e]:{$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},[x2e]:w2e};function Fle(e){return("type"in(t=e)&&t.type.$$typeof)===x2e?w2e:"$$typeof"in e?Z8e[e.$$typeof]:X8e;var t}var Q8e=Object.defineProperty,J8e=Object.getOwnPropertyNames,e_e=Object.getOwnPropertySymbols,t_e=Object.getOwnPropertyDescriptor,n_e=Object.getPrototypeOf,r_e=Object.prototype;function M2e(e,t,n){if(typeof t!="string"){const r=n_e(t);r&&r!==r_e&&M2e(e,r,n);const i=J8e(t).concat(e_e(t)),s=Fle(e),l=Fle(t);for(let u=0;uthis._cGroup)for(let n=this._cGroup;n=e;n--)t-=this.groupSizes[n];return this._cGroup=e,this._cIndex=t,t}insertRules(e,t){if(e>=this.groupSizes.length){const i=this.groupSizes,s=i.length;let l=s;for(;e>=l;)if(l<<=1,l<0)throw P1(16,`${e}`);this.groupSizes=new Uint32Array(l),this.groupSizes.set(i),this.length=l;for(let u=s;u0&&this._cGroup>e&&(this._cIndex+=r)}clearGroup(e){if(e0&&this._cGroup>e&&(this._cIndex-=t)}}getGroup(e){let t="";if(e>=this.length||this.groupSizes[e]===0)return t;const n=this.groupSizes[e],r=this.indexOfGroup(e),i=r+n;for(let s=r;stypeof ShadowRoot<"u"&&e instanceof ShadowRoot||"host"in e&&e.nodeType===11,NQ=e=>{if(!e)return document;if(Ule(e))return e;if("getRootNode"in e){const t=e.getRootNode();if(Ule(t))return t}return document},l_e=(e,t,n)=>{const r=n.split(",");let i;for(let s=0,l=r.length;s{var n;const r=((n=t.textContent)!==null&&n!==void 0?n:"").split(y2e),i=[];for(let s=0,l=r.length;s{const t=NQ(e.options.target).querySelectorAll(o_e);for(let n=0,r=t.length;n{const n=document.head,r=e||n,i=document.createElement("style"),s=(d=>{const p=Array.from(d.querySelectorAll(`style[${F1}]`));return p[p.length-1]})(r),l=s!==void 0?s.nextSibling:null;i.setAttribute(F1,f2e),i.setAttribute(m2e,LG);const u=t||u_e();return u&&i.setAttribute("nonce",u),r.insertBefore(i,l),i},d_e=class{constructor(e,t){this.element=S2e(e,t),this.element.appendChild(document.createTextNode("")),this.sheet=(n=>{var r;if(n.sheet)return n.sheet;const i=(r=n.getRootNode().styleSheets)!==null&&r!==void 0?r:document.styleSheets;for(let s=0,l=i.length;s=0){const n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1}deleteRule(e){this.element.removeChild(this.nodes[e]),this.length--}getRule(e){return e(i=>{const s=i.getTag(),{length:l}=s;let u="";for(let d=0;d0&&(_+=x+",");u+=y+v+'{content:"'+_+`"}/*!sc*/ -`}return u})(this))}rehydrate(){!this.server&&Qg&&zK(this)}reconstructWithOptions(t,n=!0){const r=new C2e(Object.assign(Object.assign({},this.options),t),this.gs,n&&this.names||void 0);return r.keyframeIds=new Set(this.keyframeIds),!this.server&&Qg&&t.target!==this.options.target&&NQ(this.options.target)!==NQ(t.target)&&zK(r),r}allocateGSInstance(t){return this.gs[t]=(this.gs[t]||0)+1}getTag(){return this.tag||(this.tag=(t=(({useCSSOMInjection:n,target:r,nonce:i})=>n?new d_e(r,i):new h_e(r,i))(this.options),new i_e(t)));var t}hasNameForId(t,n){var r,i;return(i=(r=this.names.get(t))===null||r===void 0?void 0:r.has(n))!==null&&i!==void 0&&i}registerName(t,n){Ug(t),t.startsWith(g2e)&&this.keyframeIds.add(t);const r=this.names.get(t);r?r.add(n):this.names.set(t,new Set([n]))}insertRules(t,n,r){this.registerName(t,n),this.getTag().insertRules(Ug(t),r)}clearNames(t){this.names.has(t)&&this.names.get(t).clear()}clearRules(t){this.getTag().clearGroup(Ug(t)),this.clearNames(t)}clearTag(){this.tag=void 0}},E2e=new WeakSet,f_e={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexShrink:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function m_e(e,t){return t==null||typeof t=="boolean"||t===""?"":typeof t!="number"||t===0||e in f_e||e.startsWith("--")?String(t).trim():t+"px"}var Yf=47;function Gle(e){if(e.charCodeAt(0)===45&&e.charCodeAt(1)===45)return e;let t="";for(let n=0;n=65&&r<=90?"-"+String.fromCharCode(r+32):e[n]}return t.startsWith("ms-")?"-"+t:t}var T2e=Symbol.for("sc-keyframes");function LQ(e){return typeof e=="object"&&e!==null&&T2e in e}function A2e(e){return x4(e)&&!(e.prototype&&e.prototype.isReactComponent)}var N2e=e=>e==null||e===!1||e==="",y_e=Symbol.for("react.client.reference");function Wle(e){return e.$$typeof===y_e}function Yle(e){const t=e.$$id,n=(t&&t.includes("#")?t.split("#").pop():t)||e.name||"unknown"}function L2e(e,t){for(const n in e){const r=e[n];e.hasOwnProperty(n)&&!N2e(r)&&(Array.isArray(r)&&E2e.has(r)||x4(r)?t.push(Gle(n)+":",r,";"):dm(r)?(t.push(n+" {"),L2e(r,t),t.push("}")):t.push(Gle(n)+": "+m_e(n,r)+";"))}}function cu(e,t,n,r,i=[]){if(N2e(e))return i;const s=typeof e;if(s==="string")return i.push(e),i;if(s==="function"){if(Wle(e))return Yle(e),i;if(A2e(e)&&t){const l=e(t);return typeof l!="object"||Array.isArray(l)||LQ(l)||dm(l),cu(l,t,n,r,i)}return i.push(e),i}if(Array.isArray(e)){for(let l=0;l>>0),this.dynamicNameCache.size>=200){const u=this.dynamicNameCache.keys().next().value;u!==void 0&&this.dynamicNameCache.delete(u)}this.dynamicNameCache.set(s,l)}if(!t.hasNameForId(this.componentId,l)){const u=n(i,"."+l,void 0,this.componentId);t.insertRules(this.componentId,l,u)}r=Vg(r,l)}}return r}},__e=/&/g;function I2e(e,t){let n=0;for(;--t>=0&&e.charCodeAt(t)===92;)n++;return!(1&~n)}function PK(e){const t=e.length;let n="",r=0,i=0,s=0,l=!1,u=!1;for(let d=0;dx.startsWith(r)&&x.endsWith(r)&&x.replaceAll(r,"").length>0?`.${n}`:v,l=t.slice();l.push(v=>{v.type==="rule"&&v.value.includes("&")&&(i||(i=new RegExp(`\\${r}\\b`,"g")),v.props[0]=v.props[0].replace(__e,r).replace(i,s))}),e.prefix&&l.push(z8e),l.push(R8e);let u=[];const d=D8e(l.concat(O8e(v=>u.push(v)))),p=(v,_="",x="",E="&")=>{n=E,r=_,i=void 0;const T=(function(I){const z=I.indexOf("//")!==-1,P=I.indexOf("}")!==-1;if(!z&&!P)return I;if(!z)return PK(I);const F=I.length;let $="",J=0,Z=0,ce=0,V=0,ne=0,Me=!1;for(;Z0)Z++;else if(ue===42&&Z+10&&V--,Z++;else V++,Z++;else Z++;else ce===0?ce=ue:ce===ue&&(ce=0),Z++}return Me?(J(function(r,i){if(!r)throw P1(14);if(x4(r)){const s=r(i);if(s===null||Array.isArray(s)||typeof s!="object")throw P1(7);return s}if(Array.isArray(r)||typeof r!="object")throw P1(8);return i?Object.assign(Object.assign({},i),r):r})(e.theme,t),[e.theme,t]);return e.children?w.createElement(vv.Provider,{value:n},e.children):null}var Xle=Object.prototype.hasOwnProperty,BK={};function w_e(e,t){const n=typeof e!="string"?"sc":k2e(e);BK[n]=(BK[n]||0)+1;const r=n+"-"+jee(LG+n+BK[n]);return t?t+"-"+r:r}var $K;function M_e(e,t,n){const r=qee(e),i=e,s=!v8(e),{attrs:l=$ee,componentId:u=w_e(t.displayName,t.parentComponentId),displayName:d=W8e(e)}=t,p=t.displayName&&t.componentId?k2e(t.displayName)+"-"+t.componentId:t.componentId||u,f=r&&i.attrs?i.attrs.concat(l).filter(Boolean):l;let{shouldForwardProp:y}=t;if(r&&i.shouldForwardProp){const E=i.shouldForwardProp;if(t.shouldForwardProp){const T=t.shouldForwardProp;y=(C,I)=>E(C,I)&&T(C,I)}else y=E}const v=new v_e(n,p,r?i.componentStyle:void 0);function _(E,T){return(function(C,I,z){const{attrs:P,componentStyle:F,defaultProps:$,foldedComponentIds:J,styledComponentId:Z,target:ce}=C,V=w.useContext(vv),ne=O2e(),Me=C.shouldForwardProp||ne.shouldForwardProp;w.useDebugValue&&w.useDebugValue(Z);const ue=_2e(I,V,$)||i4;let de,Re;{const Be=w.useRef(null),Y=Be.current;if(Y!==null&&Y[1]===ue&&Y[2]===ne.styleSheet&&Y[3]===ne.stylis&&Y[7]===F&&(function(Ot,oe,W){const Ze=Ot,He=oe;let yt=0;for(const It in He)if(Xle.call(He,It)&&(yt++,Ze[It]!==He[It]))return!1;return yt===W})(Y[0],I,Y[4]))de=Y[5],Re=Y[6];else{de=(function(oe,W,Ze){const He=Object.assign(Object.assign({},W),{className:void 0,theme:Ze}),yt=oe.length>1;for(let It=0;It{let C={},I=!1;return z=>{!I&&(C[z]=!0,Object.keys(C).length>=200)&&(I=!0,C={})}})(d,p),Fee(x,()=>`.${x.styledComponentId}`),s&&M2e(x,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),x}var S_e=new Set(["a","abbr","address","area","article","aside","audio","b","bdi","bdo","blockquote","body","button","br","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","slot","small","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","switch","symbol","text","textPath","tspan","use"]);function Kle(e,t){const n=[e[0]];for(let r=0,i=t.length;r(E2e.add(e),e);function hm(e,...t){if(x4(e)||dm(e))return Zle(cu(Kle($ee,[e,...t])));const n=e;return t.length===0&&n.length===1&&typeof n[0]=="string"?cu(n):Zle(cu(Kle(n,t)))}function RQ(e,t,n=i4){if(!t)throw P1(1,t);const r=(i,...s)=>e(t,n,hm(i,...s));return r.attrs=i=>RQ(e,t,Object.assign(Object.assign({},n),{attrs:Array.prototype.concat(n.attrs,i).filter(Boolean)})),r.withConfig=i=>RQ(e,t,Object.assign(Object.assign({},n),i)),r}var z2e=e=>RQ(M_e,e),_r=z2e;S_e.forEach(e=>{_r[e]=z2e(e)});var C_e=class{constructor(e,t){this.instanceRules=new Map,this.rules=e,this.componentId=t,this.isStatic=(function(n){for(let r=0;r{const d=O2e(),p=w.useContext(vv);let f;{const y=w.useRef(null);y.current===null&&(y.current=d.styleSheet.allocateGSInstance(r)),f=y.current}w.Children.count(u.children),n.some(y=>typeof y=="string"&&y.indexOf("@import")!==-1),d.styleSheet.server&&l(f,u,d.styleSheet,p,d.stylis);{const y=i.isStatic?[f,d.styleSheet,i]:[f,u,d.styleSheet,p,d.stylis,i],v=w.useRef(i);w.useLayoutEffect(()=>{d.styleSheet.server||(v.current!==i&&(d.styleSheet.clearRules(r),v.current=i),l(f,u,d.styleSheet,p,d.stylis))},y),w.useLayoutEffect(()=>()=>{d.styleSheet.server||i.removeStyles(f,d.styleSheet)},[f,d.styleSheet,i])}return d.styleSheet.server&&i.instanceRules.delete(f),null};function l(u,d,p,f,y){if(i.isStatic)i.renderStyles(u,B8e,p,y);else{const v=Object.assign(Object.assign({},d),{theme:_2e(d,f,s.defaultProps)});i.renderStyles(u,v,p,y)}}return w.memo(s)}var P2e,T_e=class{constructor(e,t){this[P2e]=!0,this.inject=(n,r=IQ)=>{const i=this.getName(r);if(!n.hasNameForId(this.id,i)){const s=r(this.rules,i,"@keyframes");n.insertRules(this.id,i,s)}},this.name=e,this.id=g2e+e,this.rules=t,Ug(this.id),Fee(this,()=>{throw P1(12,String(this.name))})}getName(e=IQ){return e.hash?this.name+Hee(+e.hash>>>0):this.name}};function b9t(e,...t){typeof navigator<"u"&&navigator.product;const n=BV(hm(e,...t)),r=jee(n);return new T_e(r,n)}P2e=T2e;typeof navigator<"u"&&navigator.product;var y7=`__sc-${F1}__`;typeof window<"u"&&(window[y7]||(window[y7]=0),window[y7],window[y7]+=1);var x9t=`:not(style[${F1}])`,w9t=`style[${F1}]`,A_e=er((e=>{(function(){function t(oe){if(oe==null)return null;if(typeof oe=="function")return oe.$$typeof===Me?null:oe.displayName||oe.name||null;if(typeof oe=="string")return oe;switch(oe){case C:return"Fragment";case z:return"Profiler";case I:return"StrictMode";case J:return"Suspense";case Z:return"SuspenseList";case ne:return"Activity"}if(typeof oe=="object")switch(oe.tag,oe.$$typeof){case T:return"Portal";case F:return oe.displayName||"Context";case P:return(oe._context.displayName||"Context")+".Consumer";case $:var W=oe.render;return oe=oe.displayName,oe||(oe=W.displayName||W.name||"",oe=oe!==""?"ForwardRef("+oe+")":"ForwardRef"),oe;case ce:return W=oe.displayName||null,W!==null?W:t(oe.type)||"Memo";case V:W=oe._payload,oe=oe._init;try{return t(oe(W))}catch{}}return null}function n(oe){return""+oe}function r(oe){try{n(oe);var W=!1}catch{W=!0}if(W){W=console;var Ze=W.error,He=typeof Symbol=="function"&&Symbol.toStringTag&&oe[Symbol.toStringTag]||oe.constructor.name||"Object";return Ze.call(W,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",He),n(oe)}}function i(oe){if(oe===C)return"<>";if(typeof oe=="object"&&oe!==null&&oe.$$typeof===V)return"<...>";try{var W=t(oe);return W?"<"+W+">":"<...>"}catch{return"<...>"}}function s(){var oe=ue.A;return oe===null?null:oe.getOwner()}function l(){return Error("react-stack-top-frame")}function u(oe){if(de.call(oe,"key")){var W=Object.getOwnPropertyDescriptor(oe,"key").get;if(W&&W.isReactWarning)return!1}return oe.key!==void 0}function d(oe,W){function Ze(){he||(he=!0)}Ze.isReactWarning=!0,Object.defineProperty(oe,"key",{get:Ze,configurable:!0})}function p(){var oe=t(this.type);return re[oe]||(re[oe]=!0),oe=this.props.ref,oe!==void 0?oe:null}function f(oe,W,Ze,He,yt,It){var it=Ze.ref;return oe={$$typeof:E,type:oe,key:W,props:Ze,_owner:He},(it!==void 0?it:null)!==null?Object.defineProperty(oe,"ref",{enumerable:!1,get:p}):Object.defineProperty(oe,"ref",{enumerable:!1,value:null}),oe._store={},Object.defineProperty(oe._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(oe,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(oe,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:yt}),Object.defineProperty(oe,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:It}),Object.freeze&&(Object.freeze(oe.props),Object.freeze(oe)),oe}function y(oe,W,Ze,He,yt,It){var it=W.children;if(it!==void 0)if(He){if(Re(it)){for(He=0;Heue.recentlyCreatedOwnerStacks++;return y(oe,W,Ze,!1,He?Error("react-stack-top-frame"):Be,He?se(i(oe)):Y)},e.jsxs=function(oe,W,Ze){var He=1e4>ue.recentlyCreatedOwnerStacks++;return y(oe,W,Ze,!0,He?Error("react-stack-top-frame"):Be,He?se(i(oe)):Y)}})()})),N_e=er(((e,t)=>{t.exports=A_e()})),$v=$l(a2e(),1),b=$l(N_e(),1),L_e=`.styles-module__popup___IhzrD svg[fill=none] { - fill: none !important; -} -.styles-module__popup___IhzrD svg[fill=none] :not([fill]) { - fill: none !important; -} - -@keyframes styles-module__popupEnter___AuQDN { - from { - opacity: 0; - transform: translateX(-50%) scale(0.95) translateY(4px); - } - to { - opacity: 1; - transform: translateX(-50%) scale(1) translateY(0); - } -} -@keyframes styles-module__popupExit___JJKQX { - from { - opacity: 1; - transform: translateX(-50%) scale(1) translateY(0); - } - to { - opacity: 0; - transform: translateX(-50%) scale(0.95) translateY(4px); - } -} -@keyframes styles-module__shake___jdbWe { - 0%, 100% { - transform: translateX(-50%) scale(1) translateY(0) translateX(0); - } - 20% { - transform: translateX(-50%) scale(1) translateY(0) translateX(-3px); - } - 40% { - transform: translateX(-50%) scale(1) translateY(0) translateX(3px); - } - 60% { - transform: translateX(-50%) scale(1) translateY(0) translateX(-2px); - } - 80% { - transform: translateX(-50%) scale(1) translateY(0) translateX(2px); - } -} -.styles-module__popup___IhzrD { - position: fixed; - transform: translateX(-50%); - width: 280px; - padding: 0.75rem 1rem 14px; - background: #1a1a1a; - border-radius: 16px; - box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.08); - z-index: 100001; - font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - will-change: transform, opacity; - opacity: 0; -} -.styles-module__popup___IhzrD.styles-module__enter___L7U7N { - animation: styles-module__popupEnter___AuQDN 0.2s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; -} -.styles-module__popup___IhzrD.styles-module__entered___COX-w { - opacity: 1; - transform: translateX(-50%) scale(1) translateY(0); -} -.styles-module__popup___IhzrD.styles-module__exit___5eGjE { - animation: styles-module__popupExit___JJKQX 0.15s ease-in forwards; -} -.styles-module__popup___IhzrD.styles-module__entered___COX-w.styles-module__shake___jdbWe { - animation: styles-module__shake___jdbWe 0.25s ease-out; -} - -.styles-module__header___wWsSi { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 0.5625rem; -} - -.styles-module__element___fTV2z { - font-size: 0.75rem; - font-weight: 400; - color: rgba(255, 255, 255, 0.5); - max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - flex: 1; -} - -.styles-module__headerToggle___WpW0b { - display: flex; - align-items: center; - gap: 0.25rem; - background: none; - border: none; - padding: 0; - cursor: pointer; - flex: 1; - min-width: 0; - text-align: left; -} -.styles-module__headerToggle___WpW0b .styles-module__element___fTV2z { - flex: 1; -} - -.styles-module__chevron___ZZJlR { - color: rgba(255, 255, 255, 0.5); - transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1); - flex-shrink: 0; -} -.styles-module__chevron___ZZJlR.styles-module__expanded___2Hxgv { - transform: rotate(90deg); -} - -.styles-module__stylesWrapper___pnHgy { - display: grid; - grid-template-rows: 0fr; - transition: grid-template-rows 0.3s cubic-bezier(0.16, 1, 0.3, 1); -} -.styles-module__stylesWrapper___pnHgy.styles-module__expanded___2Hxgv { - grid-template-rows: 1fr; -} - -.styles-module__stylesInner___YYZe2 { - overflow: hidden; -} - -.styles-module__stylesBlock___VfQKn { - background: rgba(255, 255, 255, 0.05); - border-radius: 0.375rem; - padding: 0.5rem 0.625rem; - margin-bottom: 0.5rem; - font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace; - font-size: 0.6875rem; - line-height: 1.5; -} - -.styles-module__styleLine___1YQiD { - color: rgba(255, 255, 255, 0.85); - word-break: break-word; -} - -.styles-module__styleProperty___84L1i { - color: #c792ea; -} - -.styles-module__styleValue___q51-h { - color: rgba(255, 255, 255, 0.85); -} - -.styles-module__timestamp___Dtpsv { - font-size: 0.625rem; - font-weight: 500; - color: rgba(255, 255, 255, 0.35); - font-variant-numeric: tabular-nums; - margin-left: 0.5rem; - flex-shrink: 0; -} - -.styles-module__quote___mcMmQ { - font-size: 12px; - font-style: italic; - color: rgba(255, 255, 255, 0.6); - margin-bottom: 0.5rem; - padding: 0.4rem 0.5rem; - background: rgba(255, 255, 255, 0.05); - border-radius: 0.25rem; - line-height: 1.45; -} - -.styles-module__textarea___jrSae { - box-sizing: border-box; - width: 100%; - padding: 0.5rem 0.625rem; - font-size: 0.8125rem; - font-family: inherit; - background: rgba(255, 255, 255, 0.05); - color: #fff; - border: 1px solid rgba(255, 255, 255, 0.15); - border-radius: 8px; - resize: none; - outline: none; - transition: border-color 0.15s ease; -} -.styles-module__textarea___jrSae:focus { - border-color: var(--agentation-color-blue); -} -.styles-module__textarea___jrSae.styles-module__green___99l3h:focus { - border-color: var(--agentation-color-green); -} -.styles-module__textarea___jrSae::placeholder { - color: rgba(255, 255, 255, 0.35); -} -.styles-module__textarea___jrSae::-webkit-scrollbar { - width: 6px; -} -.styles-module__textarea___jrSae::-webkit-scrollbar-track { - background: transparent; -} -.styles-module__textarea___jrSae::-webkit-scrollbar-thumb { - background: rgba(255, 255, 255, 0.2); - border-radius: 3px; -} - -.styles-module__actions___D6x3f { - display: flex; - justify-content: flex-end; - gap: 0.375rem; - margin-top: 0.5rem; -} - -.styles-module__cancel___hRjnL, -.styles-module__submit___K-mIR { - padding: 0.4rem 0.875rem; - font-size: 0.75rem; - font-weight: 500; - border-radius: 1rem; - border: none; - cursor: pointer; - transition: background-color 0.15s ease, color 0.15s ease, opacity 0.15s ease; -} - -.styles-module__cancel___hRjnL { - background: transparent; - color: rgba(255, 255, 255, 0.5); -} -.styles-module__cancel___hRjnL:hover { - background: rgba(255, 255, 255, 0.1); - color: rgba(255, 255, 255, 0.8); -} - -.styles-module__submit___K-mIR { - color: white; -} -.styles-module__submit___K-mIR:hover:not(:disabled) { - filter: brightness(0.9); -} -.styles-module__submit___K-mIR:disabled { - cursor: not-allowed; -} - -.styles-module__deleteWrapper___oSjdo { - margin-right: auto; -} - -.styles-module__deleteButton___4VuAE { - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - width: 28px; - height: 28px; - border-radius: 50%; - border: none; - background: transparent; - color: rgba(255, 255, 255, 0.4); - transition: background-color 0.15s ease, color 0.15s ease, transform 0.1s ease; -} -.styles-module__deleteButton___4VuAE:hover { - background-color: color-mix(in srgb, var(--agentation-color-red) 25%, transparent); - color: var(--agentation-color-red); -} -.styles-module__deleteButton___4VuAE:active { - transform: scale(0.92); -} - -.styles-module__light___6AaSQ.styles-module__popup___IhzrD { - background: #fff; - box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.06); -} -.styles-module__light___6AaSQ .styles-module__element___fTV2z { - color: rgba(0, 0, 0, 0.6); -} -.styles-module__light___6AaSQ .styles-module__timestamp___Dtpsv { - color: rgba(0, 0, 0, 0.4); -} -.styles-module__light___6AaSQ .styles-module__chevron___ZZJlR { - color: rgba(0, 0, 0, 0.4); -} -.styles-module__light___6AaSQ .styles-module__stylesBlock___VfQKn { - background: rgba(0, 0, 0, 0.03); -} -.styles-module__light___6AaSQ .styles-module__styleLine___1YQiD { - color: rgba(0, 0, 0, 0.75); -} -.styles-module__light___6AaSQ .styles-module__styleProperty___84L1i { - color: #7c3aed; -} -.styles-module__light___6AaSQ .styles-module__styleValue___q51-h { - color: rgba(0, 0, 0, 0.75); -} -.styles-module__light___6AaSQ .styles-module__quote___mcMmQ { - color: rgba(0, 0, 0, 0.55); - background: rgba(0, 0, 0, 0.04); -} -.styles-module__light___6AaSQ .styles-module__textarea___jrSae { - background: rgba(0, 0, 0, 0.03); - color: #1a1a1a; - border-color: rgba(0, 0, 0, 0.12); -} -.styles-module__light___6AaSQ .styles-module__textarea___jrSae::placeholder { - color: rgba(0, 0, 0, 0.4); -} -.styles-module__light___6AaSQ .styles-module__textarea___jrSae::-webkit-scrollbar-thumb { - background: rgba(0, 0, 0, 0.15); -} -.styles-module__light___6AaSQ .styles-module__cancel___hRjnL { - color: rgba(0, 0, 0, 0.5); -} -.styles-module__light___6AaSQ .styles-module__cancel___hRjnL:hover { - background: rgba(0, 0, 0, 0.06); - color: rgba(0, 0, 0, 0.75); -} -.styles-module__light___6AaSQ .styles-module__deleteButton___4VuAE { - color: rgba(0, 0, 0, 0.4); -} -.styles-module__light___6AaSQ .styles-module__deleteButton___4VuAE:hover { - background-color: color-mix(in srgb, var(--agentation-color-red) 25%, transparent); - color: var(--agentation-color-red); -}`,I_e={popup:"styles-module__popup___IhzrD",enter:"styles-module__enter___L7U7N",popupEnter:"styles-module__popupEnter___AuQDN",entered:"styles-module__entered___COX-w",exit:"styles-module__exit___5eGjE",popupExit:"styles-module__popupExit___JJKQX",shake:"styles-module__shake___jdbWe",header:"styles-module__header___wWsSi",element:"styles-module__element___fTV2z",headerToggle:"styles-module__headerToggle___WpW0b",chevron:"styles-module__chevron___ZZJlR",expanded:"styles-module__expanded___2Hxgv",stylesWrapper:"styles-module__stylesWrapper___pnHgy",stylesInner:"styles-module__stylesInner___YYZe2",stylesBlock:"styles-module__stylesBlock___VfQKn",styleLine:"styles-module__styleLine___1YQiD",styleProperty:"styles-module__styleProperty___84L1i",styleValue:"styles-module__styleValue___q51-h",timestamp:"styles-module__timestamp___Dtpsv",quote:"styles-module__quote___mcMmQ",textarea:"styles-module__textarea___jrSae",green:"styles-module__green___99l3h",actions:"styles-module__actions___D6x3f",cancel:"styles-module__cancel___hRjnL",submit:"styles-module__submit___K-mIR",deleteWrapper:"styles-module__deleteWrapper___oSjdo",deleteButton:"styles-module__deleteButton___4VuAE",light:"styles-module__light___6AaSQ"};if(typeof document<"u"){let e=document.getElementById("feedback-tool-styles-annotation-popup-css-styles");e||(e=document.createElement("style"),e.id="feedback-tool-styles-annotation-popup-css-styles",document.head.appendChild(e)),e.textContent=L_e}var Qr=I_e,R_e=`.icon-transitions-module__iconState___uqK9J { - transition: opacity 0.2s ease, transform 0.2s ease; - transform-origin: center; -} - -.icon-transitions-module__iconStateFast___HxlMm { - transition: opacity 0.15s ease, transform 0.15s ease; - transform-origin: center; -} - -.icon-transitions-module__iconFade___nPwXg { - transition: opacity 0.2s ease; -} - -.icon-transitions-module__iconFadeFast___Ofb2t { - transition: opacity 0.15s ease; -} - -.icon-transitions-module__visible___PlHsU { - opacity: 1 !important; -} - -.icon-transitions-module__visibleScaled___8Qog- { - opacity: 1 !important; - transform: scale(1); -} - -.icon-transitions-module__hidden___ETykt { - opacity: 0 !important; -} - -.icon-transitions-module__hiddenScaled___JXn-m { - opacity: 0 !important; - transform: scale(0.8); -} - -.icon-transitions-module__sending___uaLN- { - opacity: 0.5 !important; - transform: scale(0.8); -}`,D_e={iconState:"icon-transitions-module__iconState___uqK9J",iconStateFast:"icon-transitions-module__iconStateFast___HxlMm",iconFade:"icon-transitions-module__iconFade___nPwXg",iconFadeFast:"icon-transitions-module__iconFadeFast___Ofb2t",visible:"icon-transitions-module__visible___PlHsU",visibleScaled:"icon-transitions-module__visibleScaled___8Qog-",hidden:"icon-transitions-module__hidden___ETykt",hiddenScaled:"icon-transitions-module__hiddenScaled___JXn-m",sending:"icon-transitions-module__sending___uaLN-"};if(typeof document<"u"){let e=document.getElementById("feedback-tool-styles-components-icon-transitions");e||(e=document.createElement("style"),e.id="feedback-tool-styles-components-icon-transitions",document.head.appendChild(e)),e.textContent=R_e}var Yr=D_e,O_e=({size:e=16})=>(0,b.jsx)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:(0,b.jsx)("path",{d:"M8 3v10M3 8h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),z_e=({size:e=24,style:t={}})=>(0,b.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",style:t,children:[(0,b.jsxs)("g",{clipPath:"url(#clip0_list_sparkle)",children:[(0,b.jsx)("path",{d:"M11.5 12L5.5 12",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M18.5 6.75L5.5 6.75",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M9.25 17.25L5.5 17.25",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M16 12.75L16.5179 13.9677C16.8078 14.6494 17.3506 15.1922 18.0323 15.4821L19.25 16L18.0323 16.5179C17.3506 16.8078 16.8078 17.3506 16.5179 18.0323L16 19.25L15.4821 18.0323C15.1922 17.3506 14.6494 16.8078 13.9677 16.5179L12.75 16L13.9677 15.4821C14.6494 15.1922 15.1922 14.6494 15.4821 13.9677L16 12.75Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"})]}),(0,b.jsx)("defs",{children:(0,b.jsx)("clipPath",{id:"clip0_list_sparkle",children:(0,b.jsx)("rect",{width:"24",height:"24",fill:"white"})})})]}),P_e=({size:e=20,...t})=>(0,b.jsxs)("svg",{width:e,height:e,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t,children:[(0,b.jsx)("circle",{cx:"10",cy:"10",r:"5.375",stroke:"currentColor",strokeWidth:"1.25"}),(0,b.jsx)("path",{d:"M8.5 8.5C8.73 7.85 9.31 7.49 10 7.5C10.86 7.51 11.5 8.13 11.5 9C11.5 10.08 10 10.5 10 10.5V10.75",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("circle",{cx:"10",cy:"12.625",r:"0.625",fill:"currentColor"})]}),B_e=({size:e=24,copied:t=!1,tint:n})=>(0,b.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",style:n?{color:n,transition:"color 0.3s ease"}:void 0,children:[(0,b.jsxs)("g",{className:`${Yr.iconState} ${t?Yr.hiddenScaled:Yr.visibleScaled}`,children:[(0,b.jsx)("path",{d:"M4.75 11.25C4.75 10.4216 5.42157 9.75 6.25 9.75H12.75C13.5784 9.75 14.25 10.4216 14.25 11.25V17.75C14.25 18.5784 13.5784 19.25 12.75 19.25H6.25C5.42157 19.25 4.75 18.5784 4.75 17.75V11.25Z",stroke:"currentColor",strokeWidth:"1.5"}),(0,b.jsx)("path",{d:"M17.25 14.25H17.75C18.5784 14.25 19.25 13.5784 19.25 12.75V6.25C19.25 5.42157 18.5784 4.75 17.75 4.75H11.25C10.4216 4.75 9.75 5.42157 9.75 6.25V6.75",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),(0,b.jsxs)("g",{className:`${Yr.iconState} ${t?Yr.visibleScaled:Yr.hiddenScaled}`,children:[(0,b.jsx)("path",{d:"M12 20C7.58172 20 4 16.4182 4 12C4 7.58172 7.58172 4 12 4C16.4182 4 20 7.58172 20 12C20 16.4182 16.4182 20 12 20Z",stroke:"var(--agentation-color-green)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M15 10L11 14.25L9.25 12.25",stroke:"var(--agentation-color-green)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})]}),$_e=({size:e=24,state:t="idle"})=>{const n=t==="idle",r=t==="sent",i=t==="failed",s=t==="sending";return(0,b.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[(0,b.jsx)("g",{className:`${Yr.iconStateFast} ${n?Yr.visibleScaled:s?Yr.sending:Yr.hiddenScaled}`,children:(0,b.jsx)("path",{d:"M9.875 14.125L12.3506 19.6951C12.7184 20.5227 13.9091 20.4741 14.2083 19.6193L18.8139 6.46032C19.0907 5.6695 18.3305 4.90933 17.5397 5.18611L4.38072 9.79174C3.52589 10.0909 3.47731 11.2816 4.30494 11.6494L9.875 14.125ZM9.875 14.125L13.375 10.625",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,b.jsxs)("g",{className:`${Yr.iconStateFast} ${r?Yr.visibleScaled:Yr.hiddenScaled}`,children:[(0,b.jsx)("path",{d:"M12 20C7.58172 20 4 16.4182 4 12C4 7.58172 7.58172 4 12 4C16.4182 4 20 7.58172 20 12C20 16.4182 16.4182 20 12 20Z",stroke:"var(--agentation-color-green)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M15 10L11 14.25L9.25 12.25",stroke:"var(--agentation-color-green)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),(0,b.jsxs)("g",{className:`${Yr.iconStateFast} ${i?Yr.visibleScaled:Yr.hiddenScaled}`,children:[(0,b.jsx)("path",{d:"M12 20C7.58172 20 4 16.4182 4 12C4 7.58172 7.58172 4 12 4C16.4182 4 20 7.58172 20 12C20 16.4182 16.4182 20 12 20Z",stroke:"var(--agentation-color-red)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M12 8V12",stroke:"var(--agentation-color-red)",strokeWidth:"1.5",strokeLinecap:"round"}),(0,b.jsx)("circle",{cx:"12",cy:"15",r:"0.5",fill:"var(--agentation-color-red)",stroke:"var(--agentation-color-red)",strokeWidth:"1"})]})]})},H_e=({size:e=24,isOpen:t=!0})=>(0,b.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[(0,b.jsxs)("g",{className:`${Yr.iconFade} ${t?Yr.visible:Yr.hidden}`,children:[(0,b.jsx)("path",{d:"M3.91752 12.7539C3.65127 12.2996 3.65037 11.7515 3.9149 11.2962C4.9042 9.59346 7.72688 5.49994 12 5.49994C16.2731 5.49994 19.0958 9.59346 20.0851 11.2962C20.3496 11.7515 20.3487 12.2996 20.0825 12.7539C19.0908 14.4459 16.2694 18.4999 12 18.4999C7.73064 18.4999 4.90918 14.4459 3.91752 12.7539Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M12 14.8261C13.5608 14.8261 14.8261 13.5608 14.8261 12C14.8261 10.4392 13.5608 9.17392 12 9.17392C10.4392 9.17392 9.17391 10.4392 9.17391 12C9.17391 13.5608 10.4392 14.8261 12 14.8261Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),(0,b.jsxs)("g",{className:`${Yr.iconFade} ${t?Yr.hidden:Yr.visible}`,children:[(0,b.jsx)("path",{d:"M18.6025 9.28503C18.9174 8.9701 19.4364 8.99481 19.7015 9.35271C20.1484 9.95606 20.4943 10.507 20.7342 10.9199C21.134 11.6086 21.1329 12.4454 20.7303 13.1328C20.2144 14.013 19.2151 15.5225 17.7723 16.8193C16.3293 18.1162 14.3852 19.2497 12.0008 19.25C11.4192 19.25 10.8638 19.1823 10.3355 19.0613C9.77966 18.934 9.63498 18.2525 10.0382 17.8493C10.2412 17.6463 10.5374 17.573 10.8188 17.6302C11.1993 17.7076 11.5935 17.75 12.0008 17.75C13.8848 17.7497 15.4867 16.8568 16.7693 15.7041C18.0522 14.5511 18.9606 13.1867 19.4363 12.375C19.5656 12.1543 19.5659 11.8943 19.4373 11.6729C19.2235 11.3049 18.921 10.8242 18.5364 10.3003C18.3085 9.98991 18.3302 9.5573 18.6025 9.28503ZM12.0008 4.75C12.5814 4.75006 13.1358 4.81803 13.6632 4.93953C14.2182 5.06741 14.362 5.74812 13.9593 6.15091C13.7558 6.35435 13.4589 6.42748 13.1771 6.36984C12.7983 6.29239 12.4061 6.25006 12.0008 6.25C10.1167 6.25 8.51415 7.15145 7.23028 8.31543C5.94678 9.47919 5.03918 10.8555 4.56426 11.6729C4.43551 11.8945 4.43582 12.1542 4.56524 12.375C4.77587 12.7343 5.07189 13.2012 5.44718 13.7105C5.67623 14.0213 5.65493 14.4552 5.38193 14.7282C5.0671 15.0431 4.54833 15.0189 4.28292 14.6614C3.84652 14.0736 3.50813 13.5369 3.27129 13.1328C2.86831 12.4451 2.86717 11.6088 3.26739 10.9199C3.78185 10.0345 4.77959 8.51239 6.22247 7.2041C7.66547 5.89584 9.61202 4.75 12.0008 4.75Z",fill:"currentColor"}),(0,b.jsx)("path",{d:"M5 19L19 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})]}),j_e=({size:e=24,isPaused:t=!1})=>(0,b.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[(0,b.jsxs)("g",{className:`${Yr.iconFadeFast} ${t?Yr.hidden:Yr.visible}`,children:[(0,b.jsx)("path",{d:"M8 6L8 18",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),(0,b.jsx)("path",{d:"M16 18L16 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),(0,b.jsx)("path",{className:`${Yr.iconFadeFast} ${t?Yr.visible:Yr.hidden}`,d:"M17.75 10.701C18.75 11.2783 18.75 12.7217 17.75 13.299L8.75 18.4952C7.75 19.0725 6.5 18.3509 6.5 17.1962L6.5 6.80384C6.5 5.64914 7.75 4.92746 8.75 5.50481L17.75 10.701Z",stroke:"currentColor",strokeWidth:"1.5"})]}),q_e=({size:e=16})=>(0,b.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[(0,b.jsx)("path",{d:"M10.6504 5.81117C10.9939 4.39628 13.0061 4.39628 13.3496 5.81117C13.5715 6.72517 14.6187 7.15891 15.4219 6.66952C16.6652 5.91193 18.0881 7.33479 17.3305 8.57815C16.8411 9.38134 17.2748 10.4285 18.1888 10.6504C19.6037 10.9939 19.6037 13.0061 18.1888 13.3496C17.2748 13.5715 16.8411 14.6187 17.3305 15.4219C18.0881 16.6652 16.6652 18.0881 15.4219 17.3305C14.6187 16.8411 13.5715 17.2748 13.3496 18.1888C13.0061 19.6037 10.9939 19.6037 10.6504 18.1888C10.4285 17.2748 9.38135 16.8411 8.57815 17.3305C7.33479 18.0881 5.91193 16.6652 6.66952 15.4219C7.15891 14.6187 6.72517 13.5715 5.81117 13.3496C4.39628 13.0061 4.39628 10.9939 5.81117 10.6504C6.72517 10.4285 7.15891 9.38134 6.66952 8.57815C5.91193 7.33479 7.33479 5.91192 8.57815 6.66952C9.38135 7.15891 10.4285 6.72517 10.6504 5.81117Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("circle",{cx:"12",cy:"12",r:"2.5",stroke:"currentColor",strokeWidth:"1.5"})]}),F_e=({size:e=16})=>(0,b.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:(0,b.jsx)("path",{d:"M13.5 4C14.7426 4 15.75 5.00736 15.75 6.25V7H18.5C18.9142 7 19.25 7.33579 19.25 7.75C19.25 8.16421 18.9142 8.5 18.5 8.5H17.9678L17.6328 16.2217C17.61 16.7475 17.5912 17.1861 17.5469 17.543C17.5015 17.9087 17.4225 18.2506 17.2461 18.5723C16.9747 19.0671 16.5579 19.4671 16.0518 19.7168C15.7227 19.8791 15.3772 19.9422 15.0098 19.9717C14.6514 20.0004 14.2126 20 13.6865 20H10.3135C9.78735 20 9.34856 20.0004 8.99023 19.9717C8.62278 19.9422 8.27729 19.8791 7.94824 19.7168C7.44205 19.4671 7.02532 19.0671 6.75391 18.5723C6.57751 18.2506 6.49853 17.9087 6.45312 17.543C6.40883 17.1861 6.39005 16.7475 6.36719 16.2217L6.03223 8.5H5.5C5.08579 8.5 4.75 8.16421 4.75 7.75C4.75 7.33579 5.08579 7 5.5 7H8.25V6.25C8.25 5.00736 9.25736 4 10.5 4H13.5ZM7.86621 16.1562C7.89013 16.7063 7.90624 17.0751 7.94141 17.3584C7.97545 17.6326 8.02151 17.7644 8.06934 17.8516C8.19271 18.0763 8.38239 18.2577 8.6123 18.3711C8.70153 18.4151 8.83504 18.4545 9.11035 18.4766C9.39482 18.4994 9.76335 18.5 10.3135 18.5H13.6865C14.2367 18.5 14.6052 18.4994 14.8896 18.4766C15.165 18.4545 15.2985 18.4151 15.3877 18.3711C15.6176 18.2577 15.8073 18.0763 15.9307 17.8516C15.9785 17.7644 16.0245 17.6326 16.0586 17.3584C16.0938 17.0751 16.1099 16.7063 16.1338 16.1562L16.4668 8.5H7.5332L7.86621 16.1562ZM9.97656 10.75C10.3906 10.7371 10.7371 11.0626 10.75 11.4766L10.875 15.4766C10.8879 15.8906 10.5624 16.2371 10.1484 16.25C9.73443 16.2629 9.38794 15.9374 9.375 15.5234L9.25 11.5234C9.23706 11.1094 9.56255 10.7629 9.97656 10.75ZM14.0244 10.75C14.4384 10.7635 14.7635 11.1105 14.75 11.5244L14.6201 15.5244C14.6066 15.9384 14.2596 16.2634 13.8457 16.25C13.4317 16.2365 13.1067 15.8896 13.1201 15.4756L13.251 11.4756C13.2645 11.0617 13.6105 10.7366 14.0244 10.75ZM10.5 5.5C10.0858 5.5 9.75 5.83579 9.75 6.25V7H14.25V6.25C14.25 5.83579 13.9142 5.5 13.5 5.5H10.5Z",fill:"currentColor"})}),B2e=({size:e=16})=>(0,b.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[(0,b.jsxs)("g",{clipPath:"url(#clip0_2_53)",children:[(0,b.jsx)("path",{d:"M16.25 16.25L7.75 7.75",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M7.75 16.25L16.25 7.75",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),(0,b.jsx)("defs",{children:(0,b.jsx)("clipPath",{id:"clip0_2_53",children:(0,b.jsx)("rect",{width:"24",height:"24",fill:"white"})})})]}),U_e=({size:e=24})=>(0,b.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:(0,b.jsx)("path",{d:"M16.7198 6.21973C17.0127 5.92683 17.4874 5.92683 17.7803 6.21973C18.0732 6.51262 18.0732 6.9874 17.7803 7.28027L13.0606 12L17.7803 16.7197C18.0732 17.0126 18.0732 17.4874 17.7803 17.7803C17.4875 18.0731 17.0127 18.0731 16.7198 17.7803L12.0001 13.0605L7.28033 17.7803C6.98746 18.0731 6.51268 18.0731 6.21979 17.7803C5.92689 17.4874 5.92689 17.0126 6.21979 16.7197L10.9395 12L6.21979 7.28027C5.92689 6.98738 5.92689 6.51262 6.21979 6.21973C6.51268 5.92683 6.98744 5.92683 7.28033 6.21973L12.0001 10.9395L16.7198 6.21973Z",fill:"currentColor"})}),V_e=({size:e=16})=>(0,b.jsxs)("svg",{width:e,height:e,viewBox:"0 0 20 20",fill:"none",children:[(0,b.jsx)("path",{d:"M9.99999 12.7082C11.4958 12.7082 12.7083 11.4956 12.7083 9.99984C12.7083 8.50407 11.4958 7.2915 9.99999 7.2915C8.50422 7.2915 7.29166 8.50407 7.29166 9.99984C7.29166 11.4956 8.50422 12.7082 9.99999 12.7082Z",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M10 3.9585V5.05698",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M10 14.9429V16.0414",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M5.7269 5.72656L6.50682 6.50649",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M13.4932 13.4932L14.2731 14.2731",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M3.95834 10H5.05683",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M14.9432 10H16.0417",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M5.7269 14.2731L6.50682 13.4932",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("path",{d:"M13.4932 6.50649L14.2731 5.72656",stroke:"currentColor",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})]}),G_e=({size:e=16})=>(0,b.jsx)("svg",{width:e,height:e,viewBox:"0 0 20 20",fill:"none",children:(0,b.jsx)("path",{d:"M15.5 10.4955C15.4037 11.5379 15.0124 12.5314 14.3721 13.3596C13.7317 14.1878 12.8688 14.8165 11.8841 15.1722C10.8995 15.5278 9.83397 15.5957 8.81217 15.3679C7.79038 15.1401 6.8546 14.6259 6.11434 13.8857C5.37408 13.1454 4.85995 12.2096 4.63211 11.1878C4.40427 10.166 4.47215 9.10048 4.82781 8.11585C5.18346 7.13123 5.81218 6.26825 6.64039 5.62791C7.4686 4.98756 8.46206 4.59634 9.5045 4.5C8.89418 5.32569 8.60049 6.34302 8.67685 7.36695C8.75321 8.39087 9.19454 9.35339 9.92058 10.0794C10.6466 10.8055 11.6091 11.2468 12.6331 11.3231C13.657 11.3995 14.6743 11.1058 15.5 10.4955Z",stroke:"currentColor",strokeWidth:"1.13793",strokeLinecap:"round",strokeLinejoin:"round"})}),W_e=({size:e=16})=>(0,b.jsx)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M11.3799 6.9572L9.05645 4.63375M11.3799 6.9572L6.74949 11.5699C6.61925 11.6996 6.45577 11.791 6.277 11.8339L4.29549 12.3092C3.93194 12.3964 3.60478 12.0683 3.69297 11.705L4.16585 9.75693C4.20893 9.57947 4.29978 9.4172 4.42854 9.28771L9.05645 4.63375M11.3799 6.9572L12.3455 5.98759C12.9839 5.34655 12.9839 4.31002 12.3455 3.66897C11.7033 3.02415 10.6594 3.02415 10.0172 3.66897L9.06126 4.62892L9.05645 4.63375",stroke:"currentColor",strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round"})}),Y_e=({size:e=24})=>(0,b.jsx)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M13.5 4C14.7426 4 15.75 5.00736 15.75 6.25V7H18.5C18.9142 7 19.25 7.33579 19.25 7.75C19.25 8.16421 18.9142 8.5 18.5 8.5H17.9678L17.6328 16.2217C17.61 16.7475 17.5912 17.1861 17.5469 17.543C17.5015 17.9087 17.4225 18.2506 17.2461 18.5723C16.9747 19.0671 16.5579 19.4671 16.0518 19.7168C15.7227 19.8791 15.3772 19.9422 15.0098 19.9717C14.6514 20.0004 14.2126 20 13.6865 20H10.3135C9.78735 20 9.34856 20.0004 8.99023 19.9717C8.62278 19.9422 8.27729 19.8791 7.94824 19.7168C7.44205 19.4671 7.02532 19.0671 6.75391 18.5723C6.57751 18.2506 6.49853 17.9087 6.45312 17.543C6.40883 17.1861 6.39005 16.7475 6.36719 16.2217L6.03223 8.5H5.5C5.08579 8.5 4.75 8.16421 4.75 7.75C4.75 7.33579 5.08579 7 5.5 7H8.25V6.25C8.25 5.00736 9.25736 4 10.5 4H13.5ZM7.86621 16.1562C7.89013 16.7063 7.90624 17.0751 7.94141 17.3584C7.97545 17.6326 8.02151 17.7644 8.06934 17.8516C8.19271 18.0763 8.38239 18.2577 8.6123 18.3711C8.70153 18.4151 8.83504 18.4545 9.11035 18.4766C9.39482 18.4994 9.76335 18.5 10.3135 18.5H13.6865C14.2367 18.5 14.6052 18.4994 14.8896 18.4766C15.165 18.4545 15.2985 18.4151 15.3877 18.3711C15.6176 18.2577 15.8073 18.0763 15.9307 17.8516C15.9785 17.7644 16.0245 17.6326 16.0586 17.3584C16.0938 17.0751 16.1099 16.7063 16.1338 16.1562L16.4668 8.5H7.5332L7.86621 16.1562ZM9.97656 10.75C10.3906 10.7371 10.7371 11.0626 10.75 11.4766L10.875 15.4766C10.8879 15.8906 10.5624 16.2371 10.1484 16.25C9.73443 16.2629 9.38794 15.9374 9.375 15.5234L9.25 11.5234C9.23706 11.1094 9.56255 10.7629 9.97656 10.75ZM14.0244 10.75C14.4383 10.7635 14.7635 11.1105 14.75 11.5244L14.6201 15.5244C14.6066 15.9384 14.2596 16.2634 13.8457 16.25C13.4317 16.2365 13.1067 15.8896 13.1201 15.4756L13.251 11.4756C13.2645 11.0617 13.6105 10.7366 14.0244 10.75ZM10.5 5.5C10.0858 5.5 9.75 5.83579 9.75 6.25V7H14.25V6.25C14.25 5.83579 13.9142 5.5 13.5 5.5H10.5Z",fill:"currentColor"})}),X_e=({size:e=16})=>(0,b.jsx)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M8.5 3.5L4 8L8.5 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),K_e=({size:e=24})=>(0,b.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",children:[(0,b.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",stroke:"currentColor",strokeWidth:"1.5"}),(0,b.jsx)("line",{x1:"3",y1:"9",x2:"21",y2:"9",stroke:"currentColor",strokeWidth:"1.5"}),(0,b.jsx)("line",{x1:"9",y1:"9",x2:"9",y2:"21",stroke:"currentColor",strokeWidth:"1.5"})]}),$2e=["data-feedback-toolbar","data-annotation-popup","data-annotation-marker"],HK=$2e.flatMap(e=>[`:not([${e}])`,`:not([${e}] *)`]).join(""),DQ="feedback-freeze-styles",jK="__agentation_freeze";function Z_e(){if(typeof window>"u")return{frozen:!1,installed:!0,origSetTimeout:setTimeout,origSetInterval:setInterval,origRAF:t=>0,pausedAnimations:[],frozenTimeoutQueue:[],frozenRAFQueue:[]};const e=window;return e[jK]||(e[jK]={frozen:!1,installed:!1,origSetTimeout:null,origSetInterval:null,origRAF:null,pausedAnimations:[],frozenTimeoutQueue:[],frozenRAFQueue:[]}),e[jK]}var dr=Z_e();typeof window<"u"&&!dr.installed&&(dr.origSetTimeout=window.setTimeout.bind(window),dr.origSetInterval=window.setInterval.bind(window),dr.origRAF=window.requestAnimationFrame.bind(window),window.setTimeout=(e,t,...n)=>typeof e=="string"?dr.origSetTimeout(e,t):dr.origSetTimeout((...r)=>{dr.frozen?dr.frozenTimeoutQueue.push(()=>e(...r)):e(...r)},t,...n),window.setInterval=(e,t,...n)=>typeof e=="string"?dr.origSetInterval(e,t):dr.origSetInterval((...r)=>{dr.frozen||e(...r)},t,...n),window.requestAnimationFrame=e=>dr.origRAF(t=>{dr.frozen?dr.frozenRAFQueue.push(e):e(t)}),dr.installed=!0);var Nn=dr.origSetTimeout,Q_e=dr.origSetInterval,Gy=dr.origRAF;function J_e(e){return e?$2e.some(t=>!!e.closest?.(`[${t}]`)):!1}function eke(){if(typeof document>"u"||dr.frozen)return;dr.frozen=!0,dr.frozenTimeoutQueue=[],dr.frozenRAFQueue=[];let e=document.getElementById(DQ);e||(e=document.createElement("style"),e.id=DQ),e.textContent=` - *${HK}, - *${HK}::before, - *${HK}::after { - animation-play-state: paused !important; - transition: none !important; - } - `,document.head.appendChild(e),dr.pausedAnimations=[];try{document.getAnimations().forEach(t=>{if(t.playState!=="running")return;const n=t.effect?.target;J_e(n)||(t.pause(),dr.pausedAnimations.push(t))})}catch{}document.querySelectorAll("video").forEach(t=>{t.paused||(t.dataset.wasPaused="false",t.pause())})}function Qle(){if(typeof document>"u"||!dr.frozen)return;dr.frozen=!1;const e=dr.frozenTimeoutQueue;dr.frozenTimeoutQueue=[];for(const n of e)dr.origSetTimeout(()=>{if(dr.frozen){dr.frozenTimeoutQueue.push(n);return}try{n()}catch{}},0);const t=dr.frozenRAFQueue;dr.frozenRAFQueue=[];for(const n of t)dr.origRAF(r=>{if(dr.frozen){dr.frozenRAFQueue.push(n);return}n(r)});for(const n of dr.pausedAnimations)try{n.play()}catch{}dr.pausedAnimations=[],document.getElementById(DQ)?.remove(),document.querySelectorAll("video").forEach(n=>{n.dataset.wasPaused==="false"&&(n.play().catch(()=>{}),delete n.dataset.wasPaused)})}function qK(e){if(!e)return;const t=n=>n.stopImmediatePropagation();document.addEventListener("focusin",t,!0),document.addEventListener("focusout",t,!0);try{e.focus()}finally{document.removeEventListener("focusin",t,!0),document.removeEventListener("focusout",t,!0)}}var $V=(0,w.forwardRef)(function({element:t,timestamp:n,selectedText:r,placeholder:i="What should change?",initialValue:s="",submitLabel:l="Add",onSubmit:u,onCancel:d,onDelete:p,style:f,accentColor:y="#3c82f7",isExiting:v=!1,lightMode:_=!1,computedStyles:x},E){const[T,C]=(0,w.useState)(s),[I,z]=(0,w.useState)(!1),[P,F]=(0,w.useState)("initial"),[$,J]=(0,w.useState)(!1),[Z,ce]=(0,w.useState)(!1),V=(0,w.useRef)(null),ne=(0,w.useRef)(null),Me=(0,w.useRef)(null),ue=(0,w.useRef)(null);(0,w.useEffect)(()=>{v&&P!=="exit"&&F("exit")},[v,P]),(0,w.useEffect)(()=>{Nn(()=>{F("enter")},0);const re=Nn(()=>{F("entered")},200),Be=Nn(()=>{const Y=V.current;Y&&(qK(Y),Y.selectionStart=Y.selectionEnd=Y.value.length,Y.scrollTop=Y.scrollHeight)},50);return()=>{clearTimeout(re),clearTimeout(Be),Me.current&&clearTimeout(Me.current),ue.current&&clearTimeout(ue.current)}},[]);const de=(0,w.useCallback)(()=>{ue.current&&clearTimeout(ue.current),z(!0),ue.current=Nn(()=>{z(!1),qK(V.current)},250)},[]);(0,w.useImperativeHandle)(E,()=>({shake:de}),[de]);const Re=(0,w.useCallback)(()=>{F("exit"),Me.current=Nn(()=>{d()},150)},[d]),se=(0,w.useCallback)(()=>{T.trim()&&u(T.trim())},[T,u]),he=(0,w.useCallback)(re=>{re.stopPropagation(),!re.nativeEvent.isComposing&&(re.key==="Enter"&&!re.shiftKey&&(re.preventDefault(),se()),re.key==="Escape"&&Re())},[se,Re]);return(0,b.jsxs)("div",{ref:ne,className:[Qr.popup,_?Qr.light:"",P==="enter"?Qr.enter:"",P==="entered"?Qr.entered:"",P==="exit"?Qr.exit:"",I?Qr.shake:""].filter(Boolean).join(" "),"data-annotation-popup":!0,style:f,onClick:re=>re.stopPropagation(),children:[(0,b.jsxs)("div",{className:Qr.header,children:[x&&Object.keys(x).length>0?(0,b.jsxs)("button",{className:Qr.headerToggle,onClick:()=>{const re=Z;ce(!Z),re&&Nn(()=>qK(V.current),0)},type:"button",children:[(0,b.jsx)("svg",{className:`${Qr.chevron} ${Z?Qr.expanded:""}`,width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M5.5 10.25L9 7.25L5.75 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,b.jsx)("span",{className:Qr.element,children:t})]}):(0,b.jsx)("span",{className:Qr.element,children:t}),n&&(0,b.jsx)("span",{className:Qr.timestamp,children:n})]}),x&&Object.keys(x).length>0&&(0,b.jsx)("div",{className:`${Qr.stylesWrapper} ${Z?Qr.expanded:""}`,children:(0,b.jsx)("div",{className:Qr.stylesInner,children:(0,b.jsx)("div",{className:Qr.stylesBlock,children:Object.entries(x).map(([re,Be])=>(0,b.jsxs)("div",{className:Qr.styleLine,children:[(0,b.jsx)("span",{className:Qr.styleProperty,children:re.replace(/([A-Z])/g,"-$1").toLowerCase()}),": ",(0,b.jsx)("span",{className:Qr.styleValue,children:Be}),";"]},re))})})}),r&&(0,b.jsxs)("div",{className:Qr.quote,children:["“",r.slice(0,80),r.length>80?"...":"","”"]}),(0,b.jsx)("textarea",{ref:V,className:Qr.textarea,style:{borderColor:$?y:void 0},placeholder:i,value:T,onChange:re=>C(re.target.value),onFocus:()=>J(!0),onBlur:()=>J(!1),rows:2,onKeyDown:he}),(0,b.jsxs)("div",{className:Qr.actions,children:[p&&(0,b.jsx)("div",{className:Qr.deleteWrapper,children:(0,b.jsx)("button",{className:Qr.deleteButton,onClick:p,type:"button",children:(0,b.jsx)(Y_e,{size:22})})}),(0,b.jsx)("button",{className:Qr.cancel,onClick:Re,children:"Cancel"}),(0,b.jsx)("button",{className:Qr.submit,style:{backgroundColor:y,opacity:T.trim()?1:.4},onClick:se,disabled:!T.trim(),children:l})]})]})}),tke=({content:e,children:t,...n})=>{const[r,i]=(0,w.useState)(!1),[s,l]=(0,w.useState)(!1),[u,d]=(0,w.useState)({top:0,right:0}),p=(0,w.useRef)(null),f=(0,w.useRef)(null),y=(0,w.useRef)(null),v=()=>{if(p.current){const E=p.current.getBoundingClientRect();d({top:E.top+E.height/2,right:window.innerWidth-E.left+8})}},_=()=>{l(!0),y.current&&(clearTimeout(y.current),y.current=null),v(),f.current=Nn(()=>{i(!0)},500)},x=()=>{f.current&&(clearTimeout(f.current),f.current=null),i(!1),y.current=Nn(()=>{l(!1)},150)};return(0,w.useEffect)(()=>()=>{f.current&&clearTimeout(f.current),y.current&&clearTimeout(y.current)},[]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{ref:p,onMouseEnter:_,onMouseLeave:x,...n,children:t}),s&&(0,$v.createPortal)((0,b.jsx)("div",{"data-feedback-toolbar":!0,style:{position:"fixed",top:u.top,right:u.right,transform:"translateY(-50%)",padding:"6px 10px",background:"#383838",color:"rgba(255, 255, 255, 0.7)",fontSize:"11px",fontWeight:400,lineHeight:"14px",borderRadius:"10px",width:"180px",textAlign:"left",zIndex:100020,pointerEvents:"none",boxShadow:"0px 1px 8px rgba(0, 0, 0, 0.28)",opacity:r?1:0,transition:"opacity 0.15s ease"},children:e}),document.body)]})},nke=`.styles-module__tooltip___mcXL2 { - display: flex; - justify-content: center; - align-items: center; - cursor: help; -} - -.styles-module__tooltipIcon___Nq2nD { - transform: translateY(0.5px); - color: #fff; - opacity: 0.2; - transition: opacity 0.15s ease; - will-change: transform; -} -.styles-module__tooltip___mcXL2:hover .styles-module__tooltipIcon___Nq2nD { - opacity: 0.5; -} -[data-agentation-theme=light] .styles-module__tooltipIcon___Nq2nD { - color: #000; -}`,rke={tooltip:"styles-module__tooltip___mcXL2",tooltipIcon:"styles-module__tooltipIcon___Nq2nD"};if(typeof document<"u"){let e=document.getElementById("feedback-tool-styles-help-tooltip-styles");e||(e=document.createElement("style"),e.id="feedback-tool-styles-help-tooltip-styles",document.head.appendChild(e)),e.textContent=nke}var Jle=rke,Xf=({content:e})=>(0,b.jsx)(tke,{className:Jle.tooltip,content:e,children:(0,b.jsx)(P_e,{className:Jle.tooltipIcon})}),cn={navigation:{width:800,height:56},hero:{width:800,height:320},header:{width:800,height:80},section:{width:800,height:400},sidebar:{width:240,height:400},footer:{width:800,height:160},modal:{width:480,height:300},card:{width:280,height:240},text:{width:400,height:120},image:{width:320,height:200},video:{width:480,height:270},table:{width:560,height:220},grid:{width:600,height:300},list:{width:300,height:180},chart:{width:400,height:240},button:{width:140,height:40},input:{width:280,height:56},form:{width:360,height:320},tabs:{width:480,height:240},dropdown:{width:200,height:200},toggle:{width:44,height:24},search:{width:320,height:44},avatar:{width:48,height:48},badge:{width:80,height:28},breadcrumb:{width:300,height:24},pagination:{width:300,height:36},progress:{width:240,height:8},divider:{width:600,height:1},accordion:{width:400,height:200},carousel:{width:600,height:300},toast:{width:320,height:64},tooltip:{width:180,height:40},pricing:{width:300,height:360},testimonial:{width:360,height:200},cta:{width:600,height:160},alert:{width:400,height:56},banner:{width:800,height:48},stat:{width:200,height:120},stepper:{width:480,height:48},tag:{width:72,height:28},rating:{width:160,height:28},map:{width:480,height:300},timeline:{width:360,height:320},fileUpload:{width:360,height:180},codeBlock:{width:480,height:200},calendar:{width:300,height:300},notification:{width:360,height:72},productCard:{width:280,height:360},profile:{width:280,height:200},drawer:{width:320,height:400},popover:{width:240,height:160},logo:{width:120,height:40},faq:{width:560,height:320},gallery:{width:560,height:360},checkbox:{width:20,height:20},radio:{width:20,height:20},slider:{width:240,height:32},datePicker:{width:300,height:320},skeleton:{width:320,height:120},chip:{width:96,height:32},icon:{width:24,height:24},spinner:{width:32,height:32},feature:{width:360,height:200},team:{width:560,height:280},login:{width:360,height:360},contact:{width:400,height:320}},H2e=[{section:"Layout",items:[{type:"navigation",label:"Navigation",...cn.navigation},{type:"header",label:"Header",...cn.header},{type:"hero",label:"Hero",...cn.hero},{type:"section",label:"Section",...cn.section},{type:"sidebar",label:"Sidebar",...cn.sidebar},{type:"footer",label:"Footer",...cn.footer},{type:"modal",label:"Modal",...cn.modal},{type:"banner",label:"Banner",...cn.banner},{type:"drawer",label:"Drawer",...cn.drawer},{type:"popover",label:"Popover",...cn.popover},{type:"divider",label:"Divider",...cn.divider}]},{section:"Content",items:[{type:"card",label:"Card",...cn.card},{type:"text",label:"Text",...cn.text},{type:"image",label:"Image",...cn.image},{type:"video",label:"Video",...cn.video},{type:"table",label:"Table",...cn.table},{type:"grid",label:"Grid",...cn.grid},{type:"list",label:"List",...cn.list},{type:"chart",label:"Chart",...cn.chart},{type:"codeBlock",label:"Code Block",...cn.codeBlock},{type:"map",label:"Map",...cn.map},{type:"timeline",label:"Timeline",...cn.timeline},{type:"calendar",label:"Calendar",...cn.calendar},{type:"accordion",label:"Accordion",...cn.accordion},{type:"carousel",label:"Carousel",...cn.carousel},{type:"logo",label:"Logo",...cn.logo},{type:"faq",label:"FAQ",...cn.faq},{type:"gallery",label:"Gallery",...cn.gallery}]},{section:"Controls",items:[{type:"button",label:"Button",...cn.button},{type:"input",label:"Input",...cn.input},{type:"search",label:"Search",...cn.search},{type:"form",label:"Form",...cn.form},{type:"tabs",label:"Tabs",...cn.tabs},{type:"dropdown",label:"Dropdown",...cn.dropdown},{type:"toggle",label:"Toggle",...cn.toggle},{type:"stepper",label:"Stepper",...cn.stepper},{type:"rating",label:"Rating",...cn.rating},{type:"fileUpload",label:"File Upload",...cn.fileUpload},{type:"checkbox",label:"Checkbox",...cn.checkbox},{type:"radio",label:"Radio",...cn.radio},{type:"slider",label:"Slider",...cn.slider},{type:"datePicker",label:"Date Picker",...cn.datePicker}]},{section:"Elements",items:[{type:"avatar",label:"Avatar",...cn.avatar},{type:"badge",label:"Badge",...cn.badge},{type:"tag",label:"Tag",...cn.tag},{type:"breadcrumb",label:"Breadcrumb",...cn.breadcrumb},{type:"pagination",label:"Pagination",...cn.pagination},{type:"progress",label:"Progress",...cn.progress},{type:"alert",label:"Alert",...cn.alert},{type:"toast",label:"Toast",...cn.toast},{type:"notification",label:"Notification",...cn.notification},{type:"tooltip",label:"Tooltip",...cn.tooltip},{type:"stat",label:"Stat",...cn.stat},{type:"skeleton",label:"Skeleton",...cn.skeleton},{type:"chip",label:"Chip",...cn.chip},{type:"icon",label:"Icon",...cn.icon},{type:"spinner",label:"Spinner",...cn.spinner}]},{section:"Blocks",items:[{type:"pricing",label:"Pricing",...cn.pricing},{type:"testimonial",label:"Testimonial",...cn.testimonial},{type:"cta",label:"CTA",...cn.cta},{type:"productCard",label:"Product Card",...cn.productCard},{type:"profile",label:"Profile",...cn.profile},{type:"feature",label:"Feature",...cn.feature},{type:"team",label:"Team",...cn.team},{type:"login",label:"Login",...cn.login},{type:"contact",label:"Contact",...cn.contact}]}],Nl={};for(const e of H2e)for(const t of e.items)Nl[t.type]=t;function lt({w:e,h:t=3,strong:n}){return(0,b.jsx)("div",{style:{width:typeof e=="number"?`${e}px`:e,height:t,borderRadius:2,background:n?"var(--agd-bar-strong)":"var(--agd-bar)",flexShrink:0}})}function Br({w:e,h:t,radius:n=3,style:r}){return(0,b.jsx)("div",{style:{width:typeof e=="number"?`${e}px`:e,height:typeof t=="number"?`${t}px`:t,borderRadius:n,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",flexShrink:0,...r}})}function Ro({size:e}){return(0,b.jsx)("div",{style:{width:e,height:e,borderRadius:"50%",border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",flexShrink:0}})}function ake({width:e,height:t}){return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",height:"100%",padding:`0 ${Math.max(8,t*.2)}px`,gap:e*.02},children:[(0,b.jsx)(Br,{w:Math.max(20,t*.5),h:Math.max(12,t*.4),radius:2}),(0,b.jsxs)("div",{style:{flex:1,display:"flex",gap:e*.03,marginLeft:e*.04},children:[(0,b.jsx)(lt,{w:e*.06}),(0,b.jsx)(lt,{w:e*.07}),(0,b.jsx)(lt,{w:e*.05}),(0,b.jsx)(lt,{w:e*.06})]}),(0,b.jsx)(Br,{w:e*.1,h:Math.min(28,t*.5),radius:4})]})}function ike({width:e,height:t,text:n}){return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",gap:t*.05},children:[n?(0,b.jsx)("span",{style:{fontSize:Math.min(20,t*.08),fontWeight:600,color:"var(--agd-text-3)",textAlign:"center",maxWidth:"80%"},children:n}):(0,b.jsx)(lt,{w:e*.5,h:Math.max(6,t*.04),strong:!0}),(0,b.jsx)(lt,{w:e*.6}),(0,b.jsx)(lt,{w:e*.4}),(0,b.jsx)(Br,{w:Math.min(140,e*.2),h:Math.min(36,t*.12),radius:6,style:{marginTop:t*.06}})]})}function oke({width:e,height:t}){const n=Math.max(3,Math.floor(t/36));return(0,b.jsxs)("div",{style:{padding:e*.08,display:"flex",flexDirection:"column",gap:t*.03},children:[(0,b.jsx)(lt,{w:e*.6,h:4,strong:!0}),Array.from({length:n},(r,i)=>(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)(Br,{w:10,h:10,radius:2}),(0,b.jsx)(lt,{w:e*(.4+i*17%30/100)})]},i))]})}function ske({width:e,height:t}){const n=Math.max(2,Math.min(4,Math.floor(e/160)));return(0,b.jsx)("div",{style:{display:"flex",padding:`${t*.12}px ${e*.03}px`,gap:e*.05},children:Array.from({length:n},(r,i)=>(0,b.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsx)(lt,{w:"60%",h:3,strong:!0}),(0,b.jsx)(lt,{w:"80%",h:2}),(0,b.jsx)(lt,{w:"70%",h:2}),(0,b.jsx)(lt,{w:"60%",h:2})]},i))})}function lke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,b.jsxs)("div",{style:{padding:"10px 12px",borderBottom:"1px solid var(--agd-stroke)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,b.jsx)(lt,{w:e*.3,h:4,strong:!0}),(0,b.jsx)("div",{style:{width:14,height:14,border:"1px solid var(--agd-stroke)",borderRadius:3}})]}),(0,b.jsxs)("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:6},children:[(0,b.jsx)(lt,{w:"90%"}),(0,b.jsx)(lt,{w:"70%"}),(0,b.jsx)(lt,{w:"80%"})]}),(0,b.jsxs)("div",{style:{padding:"10px 12px",borderTop:"1px solid var(--agd-stroke)",display:"flex",justifyContent:"flex-end",gap:8},children:[(0,b.jsx)(Br,{w:70,h:26,radius:4}),(0,b.jsx)(Br,{w:70,h:26,radius:4,style:{background:"var(--agd-bar)"}})]})]})}function cke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,b.jsx)("div",{style:{height:"40%",background:"var(--agd-fill)",borderBottom:"1px dashed var(--agd-stroke)"}}),(0,b.jsxs)("div",{style:{flex:1,padding:10,display:"flex",flexDirection:"column",gap:5},children:[(0,b.jsx)(lt,{w:"70%",h:4,strong:!0}),(0,b.jsx)(lt,{w:"95%",h:2}),(0,b.jsx)(lt,{w:"85%",h:2}),(0,b.jsx)(lt,{w:"50%",h:2})]})]})}function uke({width:e,height:t,text:n}){if(n)return(0,b.jsx)("div",{style:{padding:4,fontSize:Math.min(14,t*.3),lineHeight:1.5,color:"var(--agd-text-3)",wordBreak:"break-word",overflow:"hidden"},children:n});const r=Math.max(2,Math.floor(t/18));return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:4},children:[(0,b.jsx)(lt,{w:e*.6,h:5,strong:!0}),Array.from({length:r},(i,s)=>(0,b.jsx)(lt,{w:`${70+s*13%25}%`,h:2},s))]})}function dke({width:e,height:t}){return(0,b.jsx)("div",{style:{height:"100%",position:"relative"},children:(0,b.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${e} ${t}`,preserveAspectRatio:"none",fill:"none",children:[(0,b.jsx)("line",{x1:"0",y1:"0",x2:e,y2:t,stroke:"var(--agd-stroke)",strokeWidth:"1"}),(0,b.jsx)("line",{x1:e,y1:"0",x2:"0",y2:t,stroke:"var(--agd-stroke)",strokeWidth:"1"}),(0,b.jsx)("circle",{cx:e*.3,cy:t*.3,r:Math.min(e,t)*.08,fill:"var(--agd-fill)",stroke:"var(--agd-stroke)",strokeWidth:"0.8"})]})})}function hke({width:e,height:t}){const n=Math.max(2,Math.min(5,Math.floor(e/100))),r=Math.max(2,Math.min(6,Math.floor(t/32)));return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,b.jsx)("div",{style:{display:"flex",borderBottom:"1px solid var(--agd-stroke)",padding:"6px 0"},children:Array.from({length:n},(i,s)=>(0,b.jsx)("div",{style:{flex:1,padding:"0 8px"},children:(0,b.jsx)(lt,{w:"70%",h:3,strong:!0})},s))}),Array.from({length:r},(i,s)=>(0,b.jsx)("div",{style:{display:"flex",borderBottom:"1px solid rgba(255,255,255,0.03)",padding:"6px 0"},children:Array.from({length:n},(l,u)=>(0,b.jsx)("div",{style:{flex:1,padding:"0 8px"},children:(0,b.jsx)(lt,{w:`${50+(s*7+u*13)%40}%`,h:2})},u))},s))]})}function pke({width:e,height:t}){const n=Math.max(2,Math.floor(t/28));return(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4,padding:4},children:Array.from({length:n},(r,i)=>(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 0"},children:[(0,b.jsx)(Ro,{size:8}),(0,b.jsx)(lt,{w:`${55+i*17%35}%`,h:2})]},i))})}function fke({width:e,height:t,text:n}){return(0,b.jsx)("div",{style:{height:"100%",borderRadius:Math.min(8,t/3),border:"1px solid var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",justifyContent:"center"},children:n?(0,b.jsx)("span",{style:{fontSize:Math.min(13,t*.4),fontWeight:500,color:"var(--agd-text-3)",letterSpacing:"-0.01em"},children:n}):(0,b.jsx)(lt,{w:Math.max(20,e*.5),h:3,strong:!0})})}function mke({width:e,height:t}){return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,height:"100%",justifyContent:"center"},children:[(0,b.jsx)(lt,{w:Math.min(80,e*.3),h:2}),(0,b.jsx)("div",{style:{height:Math.min(36,t*.6),borderRadius:4,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",paddingLeft:8},children:(0,b.jsx)(lt,{w:"40%",h:2})})]})}function yke({width:e,height:t}){const n=Math.max(2,Math.min(5,Math.floor(t/56)));return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:t*.04,padding:8},children:[Array.from({length:n},(r,i)=>(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsx)(lt,{w:60+i*17%30,h:2}),(0,b.jsx)(Br,{w:"100%",h:28,radius:4})]},i)),(0,b.jsx)(Br,{w:Math.min(120,e*.35),h:30,radius:6,style:{marginTop:8,alignSelf:"flex-end",background:"var(--agd-bar)"}})]})}function gke({width:e,height:t}){const n=Math.max(2,Math.min(4,Math.floor(e/120)));return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,b.jsx)("div",{style:{display:"flex",gap:2,borderBottom:"1px solid var(--agd-stroke)"},children:Array.from({length:n},(r,i)=>(0,b.jsx)("div",{style:{padding:"8px 12px",borderBottom:i===0?"2px solid var(--agd-bar-strong)":"none"},children:(0,b.jsx)(lt,{w:60,h:3,strong:i===0})},i))}),(0,b.jsxs)("div",{style:{flex:1,padding:12,display:"flex",flexDirection:"column",gap:6},children:[(0,b.jsx)(lt,{w:"80%",h:2}),(0,b.jsx)(lt,{w:"65%",h:2}),(0,b.jsx)(lt,{w:"75%",h:2})]})]})}function vke({width:e,height:t}){const n=Math.min(e,t)/2;return(0,b.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${e} ${t}`,fill:"none",children:[(0,b.jsx)("circle",{cx:e/2,cy:t/2,r:n-1,stroke:"var(--agd-stroke)",fill:"var(--agd-fill)",strokeWidth:"1.5",strokeDasharray:"3 2"}),(0,b.jsx)("circle",{cx:e/2,cy:t*.38,r:n*.28,stroke:"var(--agd-stroke)",fill:"var(--agd-fill)",strokeWidth:"0.8"}),(0,b.jsx)("path",{d:`M${e/2-n*.55} ${t*.78} C${e/2-n*.55} ${t*.55} ${e/2+n*.55} ${t*.55} ${e/2+n*.55} ${t*.78}`,stroke:"var(--agd-stroke)",fill:"var(--agd-fill)",strokeWidth:"0.8"})]})}function _ke({width:e,height:t}){return(0,b.jsx)("div",{style:{height:"100%",borderRadius:t/2,border:"1px solid var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsx)(lt,{w:Math.max(16,e*.5),h:2,strong:!0})})}function kke({width:e,height:t}){return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",gap:t*.08},children:[(0,b.jsx)(lt,{w:e*.5,h:Math.max(5,t*.06),strong:!0}),(0,b.jsx)(lt,{w:e*.35})]})}function bke({width:e,height:t}){return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",gap:t*.04,padding:e*.04},children:[(0,b.jsx)(lt,{w:e*.3,h:4,strong:!0}),(0,b.jsx)(lt,{w:e*.7}),(0,b.jsx)(lt,{w:e*.5}),(0,b.jsxs)("div",{style:{flex:1,display:"flex",gap:e*.03,marginTop:t*.06},children:[(0,b.jsx)(Br,{w:"33%",h:"100%",radius:4}),(0,b.jsx)(Br,{w:"33%",h:"100%",radius:4}),(0,b.jsx)(Br,{w:"33%",h:"100%",radius:4})]})]})}function xke({width:e,height:t}){const n=Math.max(2,Math.min(4,Math.floor(e/140))),r=Math.max(1,Math.min(3,Math.floor(t/120)));return(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${n}, 1fr)`,gridTemplateRows:`repeat(${r}, 1fr)`,gap:6,height:"100%"},children:Array.from({length:n*r},(i,s)=>(0,b.jsx)(Br,{w:"100%",h:"100%",radius:4},s))})}function wke({width:e,height:t}){const n=Math.max(2,Math.floor((t-32)/28));return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,b.jsx)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--agd-stroke)"},children:(0,b.jsx)(lt,{w:e*.5,h:3,strong:!0})}),(0,b.jsx)("div",{style:{flex:1,padding:4,display:"flex",flexDirection:"column",gap:2},children:Array.from({length:n},(r,i)=>(0,b.jsx)("div",{style:{padding:"4px 6px",borderRadius:3,background:i===0?"var(--agd-fill)":"transparent"},children:(0,b.jsx)(lt,{w:`${50+i*17%35}%`,h:2,strong:i===0})},i))})]})}function Mke({width:e,height:t}){const n=Math.min(e,t)/2;return(0,b.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${e} ${t}`,fill:"none",children:[(0,b.jsx)("rect",{x:"1",y:"1",width:e-2,height:t-2,rx:n,stroke:"var(--agd-stroke)",strokeWidth:"1"}),(0,b.jsx)("circle",{cx:e-n,cy:t/2,r:n*.7,fill:"var(--agd-bar)"})]})}function Ske({width:e,height:t}){const n=Math.min(t/2,20);return(0,b.jsxs)("div",{style:{height:"100%",borderRadius:n,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",padding:`0 ${n*.6}px`,gap:6},children:[(0,b.jsx)(Ro,{size:Math.min(14,t*.4)}),(0,b.jsx)(lt,{w:"50%",h:2})]})}function Cke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",borderRadius:8,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",padding:"0 10px",gap:8},children:[(0,b.jsx)(Ro,{size:Math.min(20,t*.5)}),(0,b.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:3},children:[(0,b.jsx)(lt,{w:"60%",h:3,strong:!0}),(0,b.jsx)(lt,{w:"80%",h:2})]}),(0,b.jsx)("div",{style:{width:14,height:14,border:"1px solid var(--agd-stroke)",borderRadius:3,flexShrink:0}})]})}function Eke({width:e,height:t}){return(0,b.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${e} ${t}`,fill:"none",children:[(0,b.jsx)("rect",{x:"0",y:"0",width:e,height:t,rx:t/2,stroke:"var(--agd-stroke)",strokeWidth:"0.8"}),(0,b.jsx)("rect",{x:"1",y:"1",width:e*.65,height:t-2,rx:(t-2)/2,fill:"var(--agd-bar)"})]})}function Tke({width:e,height:t}){const n=Math.max(3,Math.min(7,Math.floor(e/50))),r=e/(n*2);return(0,b.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"flex-end",justifyContent:"space-around",padding:"0 4px",borderBottom:"1px solid var(--agd-stroke)"},children:Array.from({length:n},(i,s)=>{const l=30+(s*37+17)%55;return(0,b.jsx)(Br,{w:r,h:`${l}%`,radius:2},s)})})}function Ake({width:e,height:t}){const n=Math.min(e,t)*.12;return(0,b.jsxs)("div",{style:{height:"100%",position:"relative",display:"flex",alignItems:"center",justifyContent:"center"},children:[(0,b.jsx)(Br,{w:"100%",h:"100%",radius:4}),(0,b.jsx)("div",{style:{position:"absolute",width:n*2,height:n*2,borderRadius:"50%",border:"1.5px solid var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsx)("div",{style:{width:0,height:0,borderLeft:`${n*.6}px solid var(--agd-bar-strong)`,borderTop:`${n*.4}px solid transparent`,borderBottom:`${n*.4}px solid transparent`,marginLeft:n*.15}})})]})}function Nke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center"},children:[(0,b.jsx)("div",{style:{flex:1,width:"100%",borderRadius:6,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsx)(lt,{w:"60%",h:2})}),(0,b.jsx)("div",{style:{width:8,height:8,background:"var(--agd-fill)",border:"1px dashed var(--agd-stroke)",borderTop:"none",borderLeft:"none",transform:"rotate(45deg)",marginTop:-5}})]})}function Lke({width:e,height:t}){const n=Math.max(2,Math.min(4,Math.floor(e/80)));return(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",height:"100%",gap:4},children:Array.from({length:n},(r,i)=>(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4},children:[i>0&&(0,b.jsx)("span",{style:{color:"var(--agd-stroke)",fontSize:10},children:"/"}),(0,b.jsx)(lt,{w:40+i*13%20,h:2,strong:i===n-1})]},i))})}function Ike({width:e,height:t}){const n=Math.max(3,Math.min(5,Math.floor(e/40))),r=Math.min(28,t*.8);return(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",gap:4},children:Array.from({length:n},(i,s)=>(0,b.jsx)(Br,{w:r,h:r,radius:4,style:s===1?{background:"var(--agd-bar)"}:void 0},s))})}function Rke({width:e}){return(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",height:"100%"},children:(0,b.jsx)("div",{style:{width:"100%",height:1,background:"var(--agd-stroke)"}})})}function Dke({width:e,height:t}){const n=Math.max(2,Math.min(4,Math.floor(t/40)));return(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:Array.from({length:n},(r,i)=>(0,b.jsxs)("div",{style:{borderBottom:"1px solid var(--agd-stroke)",padding:"8px 6px",display:"flex",alignItems:"center",justifyContent:"space-between",flex:i===0?2:1},children:[(0,b.jsx)(lt,{w:`${40+i*17%25}%`,h:3,strong:!0}),(0,b.jsx)("span",{style:{fontSize:8,color:"var(--agd-stroke)"},children:i===0?"▼":"▶"})]},i))})}function Oke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",gap:6},children:[(0,b.jsxs)("div",{style:{flex:1,display:"flex",gap:6,alignItems:"center"},children:[(0,b.jsx)("span",{style:{fontSize:12,color:"var(--agd-stroke)"},children:"‹"}),(0,b.jsx)(Br,{w:"100%",h:"100%",radius:4}),(0,b.jsx)("span",{style:{fontSize:12,color:"var(--agd-stroke)"},children:"›"})]}),(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"center",gap:4},children:[(0,b.jsx)(Ro,{size:5}),(0,b.jsx)(Ro,{size:5}),(0,b.jsx)(Ro,{size:5})]})]})}function zke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",padding:10,gap:t*.04},children:[(0,b.jsx)(lt,{w:e*.4,h:3,strong:!0}),(0,b.jsx)(lt,{w:e*.3,h:6,strong:!0}),(0,b.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4,width:"100%",padding:"8px 0"},children:Array.from({length:4},(n,r)=>(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,b.jsx)(Ro,{size:5}),(0,b.jsx)(lt,{w:`${50+r*17%35}%`,h:2})]},r))}),(0,b.jsx)(Br,{w:e*.7,h:Math.min(32,t*.1),radius:6,style:{background:"var(--agd-bar)"}})]})}function Pke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",padding:10,gap:8},children:[(0,b.jsx)("span",{style:{fontSize:18,lineHeight:1,color:"var(--agd-stroke)",fontFamily:"serif"},children:"“"}),(0,b.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsx)(lt,{w:"90%",h:2}),(0,b.jsx)(lt,{w:"75%",h:2}),(0,b.jsx)(lt,{w:"60%",h:2})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)(Ro,{size:20}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[(0,b.jsx)(lt,{w:60,h:3,strong:!0}),(0,b.jsx)(lt,{w:40,h:2})]})]})]})}function Bke({width:e,height:t}){return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",gap:t*.08},children:[(0,b.jsx)(lt,{w:e*.5,h:Math.max(4,t*.05),strong:!0}),(0,b.jsx)(lt,{w:e*.35}),(0,b.jsx)(Br,{w:Math.min(140,e*.25),h:Math.min(32,t*.15),radius:6,style:{marginTop:t*.04,background:"var(--agd-bar)"}})]})}function $ke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",borderRadius:6,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",padding:"0 10px",gap:8},children:[(0,b.jsx)("div",{style:{width:16,height:16,borderRadius:"50%",border:"1.5px solid var(--agd-bar-strong)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,b.jsx)("div",{style:{width:2,height:6,background:"var(--agd-bar-strong)",borderRadius:1}})}),(0,b.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:3},children:[(0,b.jsx)(lt,{w:"40%",h:3,strong:!0}),(0,b.jsx)(lt,{w:"70%",h:2})]})]})}function Hke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",background:"var(--agd-fill)",display:"flex",alignItems:"center",justifyContent:"center",gap:8,padding:"0 12px"},children:[(0,b.jsx)(lt,{w:e*.4,h:3,strong:!0}),(0,b.jsx)(Br,{w:60,h:Math.min(24,t*.6),radius:4})]})}function jke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:t*.06},children:[(0,b.jsx)(lt,{w:e*.5,h:2}),(0,b.jsx)(lt,{w:e*.4,h:Math.max(8,t*.18),strong:!0}),(0,b.jsx)(lt,{w:e*.3,h:2})]})}function qke({width:e,height:t}){const n=Math.max(3,Math.min(5,Math.floor(e/100))),r=Math.min(12,t*.35);return(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",height:"100%",padding:"0 8px"},children:Array.from({length:n},(i,s)=>(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:0,flex:1},children:[(0,b.jsx)("div",{style:{width:r,height:r,borderRadius:"50%",border:"1.5px solid var(--agd-stroke)",background:s===0?"var(--agd-bar)":"transparent",flexShrink:0}}),s(0,b.jsx)("svg",{width:r,height:r,viewBox:"0 0 16 16",fill:"none",children:(0,b.jsx)("path",{d:"M8 1.5l2 4 4.5.7-3.25 3.1.75 4.5L8 11.4l-4 2.4.75-4.5L1.5 6.2 6 5.5z",stroke:"var(--agd-stroke)",strokeWidth:"0.8",fill:s<3?"var(--agd-bar)":"none"})},s))})}function Vke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",position:"relative",borderRadius:4,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",overflow:"hidden"},children:[(0,b.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${e} ${t}`,fill:"none",style:{position:"absolute",inset:0},children:[(0,b.jsx)("line",{x1:0,y1:t*.3,x2:e,y2:t*.7,stroke:"var(--agd-stroke)",strokeWidth:"0.5",opacity:".2"}),(0,b.jsx)("line",{x1:0,y1:t*.6,x2:e,y2:t*.2,stroke:"var(--agd-stroke)",strokeWidth:"0.5",opacity:".15"}),(0,b.jsx)("line",{x1:e*.4,y1:0,x2:e*.6,y2:t,stroke:"var(--agd-stroke)",strokeWidth:"0.5",opacity:".15"})]}),(0,b.jsx)("div",{style:{position:"absolute",left:"50%",top:"40%",transform:"translate(-50%, -100%)"},children:(0,b.jsxs)("svg",{width:"16",height:"22",viewBox:"0 0 16 22",fill:"none",children:[(0,b.jsx)("path",{d:"M8 0C3.6 0 0 3.6 0 8c0 6 8 14 8 14s8-8 8-14c0-4.4-3.6-8-8-8z",fill:"var(--agd-bar)",opacity:".4"}),(0,b.jsx)("circle",{cx:"8",cy:"8",r:"3",fill:"var(--agd-fill)"})]})})]})}function Gke({width:e,height:t}){const n=Math.max(3,Math.min(5,Math.floor(t/60)));return(0,b.jsxs)("div",{style:{display:"flex",height:"100%",padding:"8px 0"},children:[(0,b.jsx)("div",{style:{width:16,display:"flex",flexDirection:"column",alignItems:"center"},children:Array.from({length:n},(r,i)=>(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",flex:1},children:[(0,b.jsx)(Ro,{size:8}),i(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:[(0,b.jsx)(lt,{w:`${35+i*13%25}%`,h:3,strong:!0}),(0,b.jsx)(lt,{w:`${50+i*17%30}%`,h:2})]},i))})]})}function Wke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",borderRadius:8,border:"2px dashed var(--agd-stroke)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:t*.06},children:[(0,b.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:[(0,b.jsx)("path",{d:"M12 16V4m0 0l-4 4m4-4l4 4",stroke:"var(--agd-stroke)",strokeWidth:"1.5"}),(0,b.jsx)("path",{d:"M4 17v2a1 1 0 001 1h14a1 1 0 001-1v-2",stroke:"var(--agd-stroke)",strokeWidth:"1.5"})]}),(0,b.jsx)(lt,{w:e*.4,h:2}),(0,b.jsx)(lt,{w:e*.25,h:2})]})}function Yke({width:e,height:t}){const n=Math.max(3,Math.min(8,Math.floor(t/20)));return(0,b.jsxs)("div",{style:{height:"100%",borderRadius:6,background:"var(--agd-fill)",border:"1px solid var(--agd-stroke)",padding:8,display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsxs)("div",{style:{display:"flex",gap:3,marginBottom:4},children:[(0,b.jsx)(Ro,{size:6}),(0,b.jsx)(Ro,{size:6}),(0,b.jsx)(Ro,{size:6})]}),Array.from({length:n},(r,i)=>(0,b.jsx)("div",{style:{display:"flex",gap:6,paddingLeft:i>0&&i(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:i*.6},children:(0,b.jsx)(lt,{w:i*.5,h:2})},`h${l}`)),Array.from({length:35},(s,l)=>(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:i},children:(0,b.jsx)("div",{style:{width:i*.6,height:i*.6,borderRadius:"50%",background:l===12?"var(--agd-bar)":"transparent",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsx)("div",{style:{width:2,height:2,borderRadius:1,background:"var(--agd-bar-strong)",opacity:l===12?1:.3}})})},l))]})]})}function Kke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",borderRadius:8,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",padding:"0 10px",gap:8},children:[(0,b.jsx)(Ro,{size:Math.min(32,t*.55)}),(0,b.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:3},children:[(0,b.jsx)(lt,{w:"50%",h:3,strong:!0}),(0,b.jsx)(lt,{w:"75%",h:2})]}),(0,b.jsx)(lt,{w:30,h:2})]})}function Zke({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[(0,b.jsx)("div",{style:{height:"50%",background:"var(--agd-fill)",borderBottom:"1px dashed var(--agd-stroke)"}}),(0,b.jsxs)("div",{style:{flex:1,padding:10,display:"flex",flexDirection:"column",gap:5},children:[(0,b.jsx)(lt,{w:"65%",h:4,strong:!0}),(0,b.jsx)(lt,{w:"40%",h:3}),(0,b.jsx)("div",{style:{flex:1}}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,b.jsx)(lt,{w:"30%",h:5,strong:!0}),(0,b.jsx)(Br,{w:Math.min(70,e*.3),h:26,radius:4,style:{background:"var(--agd-bar)"}})]})]})]})}function Qke({width:e,height:t}){const n=Math.min(48,t*.3);return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:t*.06},children:[(0,b.jsx)(Ro,{size:n}),(0,b.jsx)(lt,{w:e*.45,h:4,strong:!0}),(0,b.jsx)(lt,{w:e*.3,h:2}),(0,b.jsxs)("div",{style:{display:"flex",gap:e*.08,marginTop:t*.04},children:[(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:2},children:[(0,b.jsx)(lt,{w:20,h:3,strong:!0}),(0,b.jsx)(lt,{w:28,h:2})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:2},children:[(0,b.jsx)(lt,{w:20,h:3,strong:!0}),(0,b.jsx)(lt,{w:28,h:2})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:2},children:[(0,b.jsx)(lt,{w:20,h:3,strong:!0}),(0,b.jsx)(lt,{w:28,h:2})]})]})]})}function Jke({width:e,height:t}){const n=Math.max(e*.6,80),r=Math.max(3,Math.floor(t/40));return(0,b.jsxs)("div",{style:{height:"100%",display:"flex"},children:[(0,b.jsx)("div",{style:{width:e-n,background:"var(--agd-fill)",opacity:.3}}),(0,b.jsxs)("div",{style:{flex:1,borderLeft:"1px solid var(--agd-stroke)",display:"flex",flexDirection:"column",padding:e*.04},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:t*.06},children:[(0,b.jsx)(lt,{w:n*.4,h:4,strong:!0}),(0,b.jsx)("div",{style:{width:12,height:12,border:"1px solid var(--agd-stroke)",borderRadius:3}})]}),Array.from({length:r},(i,s)=>(0,b.jsx)("div",{style:{padding:"6px 0"},children:(0,b.jsx)(lt,{w:`${50+s*17%35}%`,h:2,strong:s===0})},s))]})]})}function ebe({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center"},children:[(0,b.jsxs)("div",{style:{flex:1,width:"100%",borderRadius:8,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",padding:10,display:"flex",flexDirection:"column",gap:5},children:[(0,b.jsx)(lt,{w:"70%",h:3,strong:!0}),(0,b.jsx)(lt,{w:"90%",h:2}),(0,b.jsx)(lt,{w:"60%",h:2})]}),(0,b.jsx)("div",{style:{width:10,height:10,background:"var(--agd-fill)",border:"1px dashed var(--agd-stroke)",borderTop:"none",borderLeft:"none",transform:"rotate(45deg)",marginTop:-6}})]})}function tbe({width:e,height:t}){const n=Math.min(t*.7,e*.3);return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"center",gap:e*.08},children:[(0,b.jsx)(Br,{w:n,h:n,radius:n*.25}),(0,b.jsx)(lt,{w:e*.45,h:Math.max(4,t*.2),strong:!0})]})}function nbe({width:e,height:t}){const n=Math.max(2,Math.min(5,Math.floor(t/56)));return(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:Array.from({length:n},(r,i)=>(0,b.jsxs)("div",{style:{borderBottom:"1px solid var(--agd-stroke)",padding:"8px 6px",display:"flex",alignItems:"center",justifyContent:"space-between",flex:i===0?2:1},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)("span",{style:{fontSize:9,fontWeight:700,color:"var(--agd-stroke)"},children:"Q"}),(0,b.jsx)(lt,{w:e*(.3+i*13%25/100),h:3,strong:!0})]}),(0,b.jsx)("span",{style:{fontSize:8,color:"var(--agd-stroke)"},children:i===0?"▼":"▶"})]},i))})}function rbe({width:e,height:t}){const n=Math.max(2,Math.min(4,Math.floor(e/120))),r=Math.max(1,Math.min(3,Math.floor(t/120)));return(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${n}, 1fr)`,gridTemplateRows:`repeat(${r}, 1fr)`,gap:4,height:"100%"},children:Array.from({length:n*r},(i,s)=>(0,b.jsx)("div",{style:{borderRadius:4,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",position:"relative",overflow:"hidden"},children:(0,b.jsxs)("svg",{width:"100%",height:"100%",viewBox:"0 0 100 100",preserveAspectRatio:"none",fill:"none",children:[(0,b.jsx)("line",{x1:"0",y1:"0",x2:"100",y2:"100",stroke:"var(--agd-stroke)",strokeWidth:"0.5"}),(0,b.jsx)("line",{x1:"100",y1:"0",x2:"0",y2:"100",stroke:"var(--agd-stroke)",strokeWidth:"0.5"})]})},s))})}function abe({width:e,height:t}){const n=Math.min(e,t);return(0,b.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${e} ${t}`,fill:"none",children:[(0,b.jsx)("rect",{x:"1",y:(t-n+2)/2,width:n-2,height:n-2,rx:n*.15,stroke:"var(--agd-stroke)",strokeWidth:"1.5"}),(0,b.jsx)("path",{d:`M${n*.25} ${t/2}l${n*.2} ${n*.2} ${n*.3}-${n*.35}`,stroke:"var(--agd-bar)",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})]})}function ibe({width:e,height:t}){const n=Math.min(e,t)/2-1;return(0,b.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${e} ${t}`,fill:"none",children:[(0,b.jsx)("circle",{cx:e/2,cy:t/2,r:n,stroke:"var(--agd-stroke)",strokeWidth:"1.5"}),(0,b.jsx)("circle",{cx:e/2,cy:t/2,r:n*.45,fill:"var(--agd-bar)"})]})}function obe({width:e,height:t}){const n=Math.max(2,t*.12),r=Math.min(t*.35,10),i=e*.55;return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"center",position:"relative"},children:[(0,b.jsx)("div",{style:{width:"100%",height:n,borderRadius:n/2,background:"var(--agd-fill)",border:"1px solid var(--agd-stroke)",position:"relative"},children:(0,b.jsx)("div",{style:{width:i,height:"100%",borderRadius:n/2,background:"var(--agd-bar)"}})}),(0,b.jsx)("div",{style:{position:"absolute",left:i-r,width:r*2,height:r*2,borderRadius:"50%",border:"1.5px solid var(--agd-stroke)",background:"var(--agd-fill)"}})]})}function sbe({width:e,height:t}){const n=Math.min(36,t*.15),r=7,i=4,s=Math.min((e-16)/r,(t-n-40)/5);return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsxs)("div",{style:{height:n,borderRadius:4,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",padding:"0 8px",justifyContent:"space-between"},children:[(0,b.jsx)(lt,{w:"40%",h:2}),(0,b.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:[(0,b.jsx)("rect",{x:"2",y:"3",width:"12",height:"11",rx:"1",stroke:"var(--agd-stroke)",strokeWidth:"1"}),(0,b.jsx)("line",{x1:"2",y1:"6",x2:"14",y2:"6",stroke:"var(--agd-stroke)",strokeWidth:"0.5"})]})]}),(0,b.jsxs)("div",{style:{flex:1,borderRadius:6,border:"1px dashed var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",flexDirection:"column"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"4px 6px"},children:[(0,b.jsx)("span",{style:{fontSize:7,color:"var(--agd-stroke)"},children:"‹"}),(0,b.jsx)(lt,{w:e*.25,h:2,strong:!0}),(0,b.jsx)("span",{style:{fontSize:7,color:"var(--agd-stroke)"},children:"›"})]}),(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:`repeat(${r}, 1fr)`,gap:1,padding:"0 4px",flex:1},children:Array.from({length:r*i},(l,u)=>(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:s},children:(0,b.jsx)("div",{style:{width:s*.5,height:s*.5,borderRadius:"50%",background:u===10?"var(--agd-bar)":"transparent"},children:(0,b.jsx)("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsx)("div",{style:{width:1.5,height:1.5,borderRadius:1,background:"var(--agd-bar-strong)",opacity:u===10?1:.25}})})})},u))})]})]})}function lbe({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",gap:t*.08,padding:4},children:[(0,b.jsx)("div",{style:{width:"100%",height:t*.2,borderRadius:4,background:"var(--agd-fill)"}}),(0,b.jsx)("div",{style:{width:"70%",height:Math.max(6,t*.1),borderRadius:3,background:"var(--agd-fill)"}}),(0,b.jsx)("div",{style:{width:"90%",height:Math.max(4,t*.06),borderRadius:3,background:"var(--agd-fill)"}}),(0,b.jsx)("div",{style:{width:"50%",height:Math.max(4,t*.06),borderRadius:3,background:"var(--agd-fill)"}})]})}function cbe({width:e,height:t}){return(0,b.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",gap:6},children:(0,b.jsxs)("div",{style:{height:"100%",flex:1,borderRadius:t/2,border:"1px solid var(--agd-stroke)",background:"var(--agd-fill)",display:"flex",alignItems:"center",padding:`0 ${t*.3}px`,gap:4},children:[(0,b.jsx)(lt,{w:"60%",h:2,strong:!0}),(0,b.jsx)("div",{style:{width:Math.max(6,t*.3),height:Math.max(6,t*.3),borderRadius:"50%",border:"1px solid var(--agd-stroke)",flexShrink:0,marginLeft:"auto"}})]})})}function ube({width:e,height:t}){const n=Math.min(e,t);return(0,b.jsx)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${e} ${t}`,fill:"none",children:(0,b.jsx)("path",{d:`M${e/2} ${(t-n)/2+n*.1}l${n*.12} ${n*.25} ${n*.28} ${n*.04}-${n*.2} ${n*.2} ${n*.05} ${n*.28}-${n*.25}-${n*.12}-${n*.25} ${n*.12} ${n*.05}-${n*.28}-${n*.2}-${n*.2} ${n*.28}-${n*.04}z`,stroke:"var(--agd-stroke)",strokeWidth:"1",fill:"var(--agd-fill)"})})}function dbe({width:e,height:t}){const n=Math.min(e,t)/2-2;return(0,b.jsxs)("svg",{width:"100%",height:"100%",viewBox:`0 0 ${e} ${t}`,fill:"none",children:[(0,b.jsx)("circle",{cx:e/2,cy:t/2,r:n,stroke:"var(--agd-stroke)",strokeWidth:"1.5",opacity:".2"}),(0,b.jsx)("path",{d:`M${e/2} ${t/2-n}a${n} ${n} 0 0 1 ${n} ${n}`,stroke:"var(--agd-bar-strong)",strokeWidth:"1.5",strokeLinecap:"round"})]})}function hbe({width:e,height:t}){const n=Math.min(36,t*.25,e*.12),r=Math.max(1,Math.min(3,Math.floor(t/80)));return(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",height:"100%",justifyContent:"space-around",padding:8},children:Array.from({length:r},(i,s)=>(0,b.jsxs)("div",{style:{display:"flex",gap:e*.04,alignItems:"flex-start"},children:[(0,b.jsx)(Br,{w:n,h:n,radius:n*.25}),(0,b.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:4},children:[(0,b.jsx)(lt,{w:`${40+s*13%20}%`,h:3,strong:!0}),(0,b.jsx)(lt,{w:`${60+s*17%25}%`,h:2})]})]},s))})}function pbe({width:e,height:t}){const n=Math.max(2,Math.min(4,Math.floor(e/120))),r=Math.min(36,t*.25);return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",gap:t*.06,padding:t*.06},children:[(0,b.jsx)(lt,{w:e*.3,h:4,strong:!0}),(0,b.jsx)("div",{style:{display:"flex",gap:e*.06,justifyContent:"center",flex:1,alignItems:"center"},children:Array.from({length:n},(i,s)=>(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:6},children:[(0,b.jsx)(Ro,{size:r}),(0,b.jsx)(lt,{w:e*.12,h:3,strong:!0}),(0,b.jsx)(lt,{w:e*.08,h:2})]},s))})]})}function fbe({width:e,height:t}){const n=Math.max(2,Math.min(3,Math.floor(t/80)));return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",padding:e*.06,gap:t*.04},children:[(0,b.jsx)(lt,{w:e*.5,h:Math.max(5,t*.04),strong:!0}),(0,b.jsx)(lt,{w:e*.35,h:2}),(0,b.jsx)("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:t*.03,marginTop:t*.04},children:Array.from({length:n},(r,i)=>(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:[(0,b.jsx)(lt,{w:Math.min(60,e*.2),h:2}),(0,b.jsx)(Br,{w:"100%",h:Math.min(32,t*.1),radius:4})]},i))}),(0,b.jsx)(Br,{w:"100%",h:Math.min(36,t*.12),radius:6,style:{marginTop:t*.03,background:"var(--agd-bar)"}}),(0,b.jsx)(lt,{w:e*.4,h:2})]})}function mbe({width:e,height:t}){return(0,b.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column",padding:e*.04,gap:t*.03},children:[(0,b.jsx)(lt,{w:e*.4,h:4,strong:!0}),(0,b.jsx)(lt,{w:e*.6,h:2}),(0,b.jsxs)("div",{style:{display:"flex",gap:6,marginTop:t*.03},children:[(0,b.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:3},children:[(0,b.jsx)(lt,{w:50,h:2}),(0,b.jsx)(Br,{w:"100%",h:Math.min(28,t*.1),radius:4})]}),(0,b.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:3},children:[(0,b.jsx)(lt,{w:40,h:2}),(0,b.jsx)(Br,{w:"100%",h:Math.min(28,t*.1),radius:4})]})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:[(0,b.jsx)(lt,{w:50,h:2}),(0,b.jsx)(Br,{w:"100%",h:Math.min(28,t*.1),radius:4})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3,flex:1},children:[(0,b.jsx)(lt,{w:60,h:2}),(0,b.jsx)(Br,{w:"100%",h:"100%",radius:4})]}),(0,b.jsx)(Br,{w:Math.min(120,e*.3),h:Math.min(30,t*.1),radius:6,style:{alignSelf:"flex-end",background:"var(--agd-bar)"}})]})}var ybe={navigation:ake,hero:ike,sidebar:oke,footer:ske,modal:lke,card:cke,text:uke,image:dke,table:hke,list:pke,button:fke,input:mke,form:yke,tabs:gke,avatar:vke,badge:_ke,header:kke,section:bke,grid:xke,dropdown:wke,toggle:Mke,search:Ske,toast:Cke,progress:Eke,chart:Tke,video:Ake,tooltip:Nke,breadcrumb:Lke,pagination:Ike,divider:Rke,accordion:Dke,carousel:Oke,pricing:zke,testimonial:Pke,cta:Bke,alert:$ke,banner:Hke,stat:jke,stepper:qke,tag:Fke,rating:Uke,map:Vke,timeline:Gke,fileUpload:Wke,codeBlock:Yke,calendar:Xke,notification:Kke,productCard:Zke,profile:Qke,drawer:Jke,popover:ebe,logo:tbe,faq:nbe,gallery:rbe,checkbox:abe,radio:ibe,slider:obe,datePicker:sbe,skeleton:lbe,chip:cbe,icon:ube,spinner:dbe,feature:hbe,team:pbe,login:fbe,contact:mbe};function gbe({type:e,width:t,height:n,text:r}){const i=ybe[e];return i?(0,b.jsx)("div",{style:{width:"100%",height:"100%",padding:8,position:"relative",pointerEvents:"none"},children:(0,b.jsx)(i,{width:t,height:n,text:r})}):(0,b.jsx)("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,b.jsx)("span",{style:{fontSize:10,fontWeight:600,color:"var(--agd-text-3)",textTransform:"uppercase",letterSpacing:"0.06em",opacity:.5},children:e})})}var vbe=`svg[fill=none] { - fill: none !important; -} - -.styles-module__overlayExiting___iEmYr { - opacity: 0 !important; - transition: opacity 0.25s ease !important; - pointer-events: none !important; -} - -.styles-module__overlay___aWh-q { - position: fixed; - inset: 0; - z-index: 99995; - pointer-events: auto; - cursor: default; - animation: styles-module__overlayFadeIn___aECVy 0.15s ease; - --agd-stroke: rgba(59, 130, 246, 0.35); - --agd-fill: rgba(59, 130, 246, 0.06); - --agd-bar: rgba(59, 130, 246, 0.18); - --agd-bar-strong: rgba(59, 130, 246, 0.28); - --agd-text-3: rgba(255, 255, 255, 0.6); - --agd-surface: #fff; -} -.styles-module__overlay___aWh-q.styles-module__light___ORIft { - --agd-surface: #fff; -} -.styles-module__overlay___aWh-q:not(.styles-module__light___ORIft) { - --agd-surface: #141414; -} -.styles-module__overlay___aWh-q.styles-module__wireframe___itvQU { - --agd-stroke: rgba(249, 115, 22, 0.35); - --agd-fill: rgba(249, 115, 22, 0.06); - --agd-bar: rgba(249, 115, 22, 0.18); - --agd-bar-strong: rgba(249, 115, 22, 0.28); -} -.styles-module__overlay___aWh-q.styles-module__placing___45yD8 { - cursor: crosshair; -} -.styles-module__overlay___aWh-q.styles-module__passthrough___xaFeE { - pointer-events: none; -} - -.styles-module__blankCanvas___t2Eue { - position: fixed; - inset: 0; - z-index: 99994; - background: #fff; - opacity: 0; - pointer-events: none; - transition: opacity 0.25s ease; -} -.styles-module__blankCanvas___t2Eue.styles-module__visible___OKKqX { - opacity: var(--canvas-opacity, 1); - pointer-events: auto; -} -.styles-module__blankCanvas___t2Eue::after { - content: ""; - position: absolute; - inset: 0; - background-image: radial-gradient(circle, rgba(0, 0, 0, 0.08) 1px, transparent 1px); - background-size: 24px 24px; - background-position: 12px 12px; - pointer-events: none; - transition: opacity 0.2s ease; -} -.styles-module__blankCanvas___t2Eue.styles-module__gridActive___OZ-cf::after { - opacity: 1; - background-image: radial-gradient(circle, rgba(0, 0, 0, 0.22) 1px, transparent 1px); -} - -.styles-module__paletteHeader___-Q5gQ { - padding: 0 1rem 0.375rem; -} - -.styles-module__paletteHeaderTitle___oHqZC { - font-size: 0.8125rem; - font-weight: 500; - color: #fff; - letter-spacing: -0.0094em; -} -.styles-module__light___ORIft .styles-module__paletteHeaderTitle___oHqZC { - color: rgba(0, 0, 0, 0.85); -} - -.styles-module__paletteHeaderDesc___6i74T { - font-size: 0.6875rem; - font-weight: 300; - color: rgba(255, 255, 255, 0.45); - margin-top: 2px; - line-height: 14px; -} -.styles-module__light___ORIft .styles-module__paletteHeaderDesc___6i74T { - color: rgba(0, 0, 0, 0.45); -} -.styles-module__paletteHeaderDesc___6i74T a { - color: rgba(255, 255, 255, 0.8); - text-decoration: underline dotted; - text-decoration-color: rgba(255, 255, 255, 0.2); - text-underline-offset: 2px; - transition: color 0.15s ease; -} -.styles-module__paletteHeaderDesc___6i74T a:hover { - color: #fff; -} -.styles-module__light___ORIft .styles-module__paletteHeaderDesc___6i74T a { - color: rgba(0, 0, 0, 0.6); - text-decoration-color: rgba(0, 0, 0, 0.2); -} -.styles-module__light___ORIft .styles-module__paletteHeaderDesc___6i74T a:hover { - color: rgba(0, 0, 0, 0.85); -} - -.styles-module__wireframePurposeWrap___To-tS { - display: grid; - grid-template-rows: 1fr; - transition: grid-template-rows 0.2s ease, opacity 0.15s ease; - opacity: 1; -} -.styles-module__wireframePurposeWrap___To-tS.styles-module__collapsed___Ms9vS { - grid-template-rows: 0fr; - opacity: 0; -} - -.styles-module__wireframePurposeInner___Lrahs { - overflow: hidden; -} - -.styles-module__wireframePurposeInput___7EtBN { - display: block; - width: calc(100% - 2rem); - margin: 0.25rem 1rem 0.375rem; - padding: 0.375rem 0.5rem; - font-size: 0.8125rem; - font-family: inherit; - color: rgba(255, 255, 255, 0.85); - background: rgba(255, 255, 255, 0.03); - border: 1px solid rgba(255, 255, 255, 0.1); - border-radius: 0.375rem; - resize: none; - outline: none; - transition: border-color 0.15s ease; - letter-spacing: -0.0094em; -} -.styles-module__wireframePurposeInput___7EtBN::placeholder { - color: rgba(255, 255, 255, 0.3); -} -.styles-module__wireframePurposeInput___7EtBN:focus { - border-color: rgba(255, 255, 255, 0.3); - background: rgba(255, 255, 255, 0.05); -} -.styles-module__light___ORIft .styles-module__wireframePurposeInput___7EtBN { - color: rgba(0, 0, 0, 0.7); - background: rgba(0, 0, 0, 0.03); - border-color: rgba(0, 0, 0, 0.1); -} -.styles-module__light___ORIft .styles-module__wireframePurposeInput___7EtBN::placeholder { - color: rgba(0, 0, 0, 0.3); -} -.styles-module__light___ORIft .styles-module__wireframePurposeInput___7EtBN:focus { - border-color: rgba(0, 0, 0, 0.25); - background: rgba(0, 0, 0, 0.05); -} - -.styles-module__canvasToggle___-QqSy { - display: flex; - align-items: center; - justify-content: center; - gap: 0.375rem; - margin: 0.25rem 1rem 0.25rem; - padding: 0.375rem 0.5rem; - border-radius: 0.5rem; - cursor: pointer; - border: 1px dashed rgba(255, 255, 255, 0.1); - background: transparent; - transition: background 0.15s ease, border-color 0.15s ease; -} -.styles-module__canvasToggle___-QqSy:hover { - background: rgba(255, 255, 255, 0.04); - border-color: rgba(255, 255, 255, 0.15); -} -.styles-module__canvasToggle___-QqSy.styles-module__active___hosp7 { - background: #f97316; - border-color: transparent; - border-style: solid; - box-shadow: none; -} -.styles-module__light___ORIft .styles-module__canvasToggle___-QqSy { - border-color: rgba(0, 0, 0, 0.08); -} -.styles-module__light___ORIft .styles-module__canvasToggle___-QqSy:hover { - background: rgba(0, 0, 0, 0.02); - border-color: rgba(0, 0, 0, 0.12); -} -.styles-module__light___ORIft .styles-module__canvasToggle___-QqSy.styles-module__active___hosp7 { - background: #f97316; - border-color: transparent; - border-style: solid; - box-shadow: none; -} - -.styles-module__canvasToggleIcon___7pJ82 { - width: 14px; - height: 14px; - flex-shrink: 0; - display: flex; - align-items: center; - justify-content: center; - color: rgba(255, 255, 255, 0.35); -} -.styles-module__active___hosp7 .styles-module__canvasToggleIcon___7pJ82 { - color: rgba(255, 255, 255, 0.85); -} -.styles-module__light___ORIft .styles-module__canvasToggleIcon___7pJ82 { - color: rgba(0, 0, 0, 0.25); -} -.styles-module__light___ORIft .styles-module__active___hosp7 .styles-module__canvasToggleIcon___7pJ82 { - color: rgba(255, 255, 255, 0.85); -} - -.styles-module__canvasToggleLabel___OanpY { - font-size: 0.8125rem; - font-weight: 400; - color: rgba(255, 255, 255, 0.6); - letter-spacing: -0.0094em; -} -.styles-module__active___hosp7 .styles-module__canvasToggleLabel___OanpY { - color: #fff; -} -.styles-module__light___ORIft .styles-module__canvasToggleLabel___OanpY { - color: rgba(0, 0, 0, 0.5); -} -.styles-module__light___ORIft .styles-module__active___hosp7 .styles-module__canvasToggleLabel___OanpY { - color: #fff; -} - -.styles-module__canvasPurposeWrap___hj6zk { - display: grid; - grid-template-rows: 1fr; - transition: grid-template-rows 0.2s ease, opacity 0.15s ease; - opacity: 1; -} -.styles-module__canvasPurposeWrap___hj6zk.styles-module__collapsed___Ms9vS { - grid-template-rows: 0fr; - opacity: 0; -} - -.styles-module__canvasPurposeInner___VWiyu { - overflow: hidden; -} - -.styles-module__canvasPurposeToggle___byDH2 { - display: flex; - align-items: center; - gap: 0.5rem; - cursor: pointer; - margin: 0.375rem 1rem 0.375rem 1.1875rem; -} -.styles-module__canvasPurposeToggle___byDH2 input[type=checkbox] { - position: absolute; - opacity: 0; - width: 0; - height: 0; -} - -.styles-module__canvasPurposeCheck___xqd7l { - position: relative; - width: 14px; - height: 14px; - border: 1px solid rgba(255, 255, 255, 0.2); - border-radius: 4px; - background: rgba(255, 255, 255, 0.05); - display: flex; - align-items: center; - justify-content: center; - flex-shrink: 0; - transition: background 0.25s ease, border-color 0.25s ease; -} -.styles-module__canvasPurposeCheck___xqd7l svg { - color: #1a1a1a; - opacity: 1; - transition: opacity 0.15s ease; -} -.styles-module__canvasPurposeCheck___xqd7l.styles-module__checked___-1JGH { - border-color: rgba(255, 255, 255, 0.3); - background: rgb(255, 255, 255); -} -.styles-module__light___ORIft .styles-module__canvasPurposeCheck___xqd7l { - border: 1px solid rgba(0, 0, 0, 0.15); - background: #fff; -} -.styles-module__light___ORIft .styles-module__canvasPurposeCheck___xqd7l.styles-module__checked___-1JGH { - border-color: #1a1a1a; - background: #1a1a1a; -} -.styles-module__light___ORIft .styles-module__canvasPurposeCheck___xqd7l.styles-module__checked___-1JGH svg { - color: #fff; -} - -.styles-module__canvasPurposeLabel___Zu-tD { - font-size: 0.8125rem; - font-weight: 400; - color: rgba(255, 255, 255, 0.5); - letter-spacing: -0.0094em; - display: flex; - align-items: center; - gap: 0.25rem; -} -.styles-module__light___ORIft .styles-module__canvasPurposeLabel___Zu-tD { - color: rgba(0, 0, 0, 0.5); -} - -.styles-module__canvasPurposeHelp___jijwR { - position: relative; - display: inline-flex; - align-items: center; - justify-content: center; - cursor: help; -} -.styles-module__canvasPurposeHelp___jijwR svg { - color: rgba(255, 255, 255, 0.2); - transform: translateY(2px); - transition: color 0.15s ease; -} -.styles-module__canvasPurposeHelp___jijwR:hover svg { - color: rgba(255, 255, 255, 0.5); -} -.styles-module__light___ORIft .styles-module__canvasPurposeHelp___jijwR svg { - color: rgba(0, 0, 0, 0.2); -} -.styles-module__light___ORIft .styles-module__canvasPurposeHelp___jijwR:hover svg { - color: rgba(0, 0, 0, 0.5); -} - -.styles-module__placement___zcxv8 { - position: absolute; - border: 1.5px dashed rgba(59, 130, 246, 0.4); - border-radius: 6px; - background: rgba(59, 130, 246, 0.08); - cursor: grab; - transition: box-shadow 0.15s, border-color 0.15s, opacity 0.15s ease, transform 0.15s ease; - user-select: none; - pointer-events: auto; - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08); - animation: styles-module__placementEnter___TdRhf 0.25s cubic-bezier(0.34, 1.2, 0.64, 1); -} -.styles-module__placement___zcxv8:active { - cursor: grabbing; -} -.styles-module__placement___zcxv8:hover { - border-color: rgba(59, 130, 246, 0.5); - background: rgba(59, 130, 246, 0.1); - box-shadow: 0 2px 8px rgba(59, 130, 246, 0.12); -} -.styles-module__placement___zcxv8.styles-module__selected___6yrp6 { - border-color: #3c82f7; - border-style: solid; - background: rgba(59, 130, 246, 0.1); - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15), 0 2px 8px rgba(59, 130, 246, 0.15); -} -.styles-module__placement___zcxv8.styles-module__selected___6yrp6:hover { - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15), 0 2px 8px rgba(59, 130, 246, 0.15); -} -.styles-module__wireframe___itvQU .styles-module__placement___zcxv8 { - border-color: rgba(249, 115, 22, 0.4); - background: rgba(249, 115, 22, 0.08); -} -.styles-module__wireframe___itvQU .styles-module__placement___zcxv8:hover { - border-color: rgba(249, 115, 22, 0.5); - background: rgba(249, 115, 22, 0.1); - box-shadow: 0 2px 8px rgba(249, 115, 22, 0.12); -} -.styles-module__wireframe___itvQU .styles-module__placement___zcxv8.styles-module__selected___6yrp6 { - border-color: #f97316; - background: rgba(249, 115, 22, 0.1); - box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.15), 0 2px 8px rgba(249, 115, 22, 0.15); -} -.styles-module__wireframe___itvQU .styles-module__placement___zcxv8.styles-module__selected___6yrp6:hover { - box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.15), 0 2px 8px rgba(249, 115, 22, 0.15); -} -.styles-module__placement___zcxv8.styles-module__dragging___le6KZ { - opacity: 0.85; - z-index: 50; -} -.styles-module__placement___zcxv8.styles-module__exiting___YrM8F { - opacity: 0; - transform: scale(0.97); - pointer-events: none; - animation: none; - transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.32, 0.72, 0, 1); -} - -.styles-module__placementContent___f64A4 { - width: 100%; - height: 100%; - overflow: hidden; - pointer-events: none; -} - -.styles-module__placementLabel___0KvWl { - position: absolute; - top: -18px; - left: 0; - font-size: 10px; - font-weight: 600; - color: rgba(59, 130, 246, 0.7); - white-space: nowrap; - pointer-events: none; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - text-shadow: 0 0 4px rgba(255, 255, 255, 0.8), 0 0 8px rgba(255, 255, 255, 0.5); -} -.styles-module__selected___6yrp6 .styles-module__placementLabel___0KvWl { - color: #3c82f7; -} -.styles-module__wireframe___itvQU .styles-module__placementLabel___0KvWl { - color: rgba(249, 115, 22, 0.7); -} -.styles-module__wireframe___itvQU .styles-module__selected___6yrp6 .styles-module__placementLabel___0KvWl { - color: #f97316; -} - -.styles-module__placementAnnotation___78pTr { - position: absolute; - bottom: -18px; - left: 0; - right: 0; - font-weight: 450; - color: rgba(0, 0, 0, 0.5); - font-size: 10px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - pointer-events: none; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - text-shadow: 0 0 4px rgba(255, 255, 255, 0.9), 0 0 8px rgba(255, 255, 255, 0.6); - opacity: 0; - transform: translateY(-2px); - transition: opacity 0.2s ease, transform 0.2s ease; -} -.styles-module__placementAnnotation___78pTr.styles-module__annotationVisible___mrUyA { - opacity: 1; - transform: translateY(0); -} - -.styles-module__sectionAnnotation___aUIs0 { - position: absolute; - bottom: -18px; - left: 0; - right: 0; - font-weight: 450; - color: rgba(59, 130, 246, 0.6); - font-size: 10px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - pointer-events: none; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - text-shadow: 0 0 4px rgba(255, 255, 255, 0.9), 0 0 8px rgba(255, 255, 255, 0.6); - opacity: 0; - transform: translateY(-2px); - transition: opacity 0.2s ease, transform 0.2s ease; -} -.styles-module__sectionAnnotation___aUIs0.styles-module__annotationVisible___mrUyA { - opacity: 1; - transform: translateY(0); -} - -.styles-module__handle___Ikbxm { - position: absolute; - width: 8px; - height: 8px; - background: #fff; - border: 1.5px solid #3c82f7; - border-radius: 2px; - z-index: 12; - box-shadow: 0 0 0 0.5px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.12); - opacity: 0; - transform: scale(0.3); - pointer-events: none; - will-change: opacity, transform; - transition: opacity 0.2s ease-out, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1); -} -.styles-module__placement___zcxv8:hover .styles-module__handle___Ikbxm, .styles-module__sectionOutline___s0hy-:hover .styles-module__handle___Ikbxm, .styles-module__ghostOutline___po-kO:hover .styles-module__handle___Ikbxm, .styles-module__placement___zcxv8:active .styles-module__handle___Ikbxm, .styles-module__sectionOutline___s0hy-:active .styles-module__handle___Ikbxm, .styles-module__ghostOutline___po-kO:active .styles-module__handle___Ikbxm, .styles-module__selected___6yrp6 .styles-module__handle___Ikbxm { - opacity: 1; - transform: scale(1); - pointer-events: auto; -} -.styles-module__sectionOutline___s0hy- .styles-module__handle___Ikbxm { - border-color: inherit; -} -.styles-module__wireframe___itvQU .styles-module__handle___Ikbxm { - border-color: #f97316; -} - -.styles-module__handleNw___4TMIj { - top: -4px; - left: -4px; - cursor: nw-resize; -} - -.styles-module__handleNe___mnsTh { - top: -4px; - right: -4px; - cursor: ne-resize; -} - -.styles-module__handleSe___oSFnk { - bottom: -4px; - right: -4px; - cursor: se-resize; -} - -.styles-module__handleSw___pi--Z { - bottom: -4px; - left: -4px; - cursor: sw-resize; -} - -.styles-module__handleN___aBA-Q, .styles-module__handleE___0hM5u, .styles-module__handleS___JjDRv, .styles-module__handleW___ERWGQ { - opacity: 0 !important; - pointer-events: none !important; -} - -.styles-module__edgeHandle___XxXdT { - position: absolute; - z-index: 11; - display: flex; - align-items: center; - justify-content: center; -} -.styles-module__edgeHandle___XxXdT::after { - content: ""; - position: absolute; - border-radius: 4px; - background: #3c82f7; -} -.styles-module__wireframe___itvQU .styles-module__edgeHandle___XxXdT::after { - background: #f97316; -} -.styles-module__edgeHandle___XxXdT::after { - opacity: 0; - transition: opacity 0.1s ease, transform 0.1s ease; - transform: scale(0.8); -} -.styles-module__edgeHandle___XxXdT:hover::after { - opacity: 0.85; - transform: scale(1); -} -.styles-module__edgeHandle___XxXdT svg { - position: relative; - z-index: 1; - opacity: 0; - transition: opacity 0.1s ease; - filter: drop-shadow(0 0 2px var(--agd-surface)); -} -.styles-module__edgeHandle___XxXdT:hover svg { - opacity: 1; -} - -.styles-module__edgeN___-JJDj, .styles-module__edgeS___66lMX { - left: 12px; - right: 12px; - height: 12px; - cursor: n-resize; -} -.styles-module__edgeN___-JJDj::after, .styles-module__edgeS___66lMX::after { - width: 24px; - height: 4px; -} - -.styles-module__edgeN___-JJDj { - top: -6px; -} - -.styles-module__edgeS___66lMX { - bottom: -6px; - cursor: s-resize; -} - -.styles-module__edgeE___1bGDa, .styles-module__edgeW___lHQNo { - top: 12px; - bottom: 12px; - width: 12px; - cursor: e-resize; -} -.styles-module__edgeE___1bGDa::after, .styles-module__edgeW___lHQNo::after { - width: 4px; - height: 24px; -} - -.styles-module__edgeE___1bGDa { - right: -6px; -} - -.styles-module__edgeW___lHQNo { - left: -6px; - cursor: w-resize; -} - -.styles-module__deleteButton___LkGCb { - position: absolute; - top: -8px; - right: -8px; - width: 18px; - height: 18px; - border-radius: 50%; - background: rgba(255, 255, 255, 0.9); - backdrop-filter: blur(8px); - border: 1px solid rgba(0, 0, 0, 0.08); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - color: rgba(0, 0, 0, 0.35); - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - font-size: 10px; - line-height: 1; - z-index: 15; - pointer-events: none; - opacity: 0; - transform: scale(0.8); - will-change: opacity, transform; - transition: opacity 0.2s ease-out, transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.12s ease, color 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease; -} -.styles-module__placement___zcxv8:hover .styles-module__deleteButton___LkGCb, .styles-module__selected___6yrp6 .styles-module__deleteButton___LkGCb, .styles-module__sectionOutline___s0hy-:hover .styles-module__deleteButton___LkGCb, .styles-module__sectionOutline___s0hy-.styles-module__selected___6yrp6 .styles-module__deleteButton___LkGCb, .styles-module__ghostOutline___po-kO:hover .styles-module__deleteButton___LkGCb, .styles-module__ghostOutline___po-kO.styles-module__selected___6yrp6 .styles-module__deleteButton___LkGCb { - opacity: 1; - transform: scale(1); - pointer-events: auto; -} -.styles-module__deleteButton___LkGCb:hover { - background: #ef4444; - color: #fff; - border-color: #ef4444; - box-shadow: 0 1px 4px rgba(239, 68, 68, 0.3); - transform: scale(1.1); -} -.styles-module__overlay___aWh-q:not(.styles-module__light___ORIft) .styles-module__deleteButton___LkGCb, .styles-module__rearrangeOverlay___-3R3t:not(.styles-module__light___ORIft) .styles-module__deleteButton___LkGCb { - background: rgba(40, 40, 40, 0.9); - border-color: rgba(255, 255, 255, 0.1); - color: rgba(255, 255, 255, 0.5); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); -} -.styles-module__overlay___aWh-q:not(.styles-module__light___ORIft) .styles-module__deleteButton___LkGCb:hover, .styles-module__rearrangeOverlay___-3R3t:not(.styles-module__light___ORIft) .styles-module__deleteButton___LkGCb:hover { - background: #ef4444; - color: #fff; - border-color: #ef4444; -} - -.styles-module__drawBox___BrVAa { - position: fixed; - pointer-events: none; - z-index: 99996; - border: 2px solid #3c82f7; - border-radius: 6px; - background: rgba(59, 130, 246, 0.15); -} - -.styles-module__selectBox___Iu8kB { - position: fixed; - pointer-events: none; - z-index: 99996; - border: 1px dashed #3c82f7; - background: rgba(59, 130, 246, 0.08); - border-radius: 2px; -} - -.styles-module__sizeIndicator___7zJ4y { - position: fixed; - pointer-events: none; - z-index: 100001; - font-size: 10px; - color: #fff; - background: #3c82f7; - padding: 2px 6px; - border-radius: 4px; - white-space: nowrap; - font-weight: 500; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); -} - -.styles-module__guideLine___DUQY2 { - pointer-events: none; - z-index: 100001; - background: #f0f; - opacity: 0.5; -} - -.styles-module__dragPreview___onPbU { - position: fixed; - z-index: 100002; - pointer-events: none; - border: 1.5px dashed #3c82f7; - border-radius: 6px; - background: rgba(59, 130, 246, 0.1); - backdrop-filter: blur(8px); - display: flex; - align-items: center; - justify-content: center; - font-size: 9px; - font-weight: 600; - color: #3c82f7; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - text-transform: uppercase; - letter-spacing: 0.04em; - box-shadow: 0 4px 16px rgba(59, 130, 246, 0.15); - transition: width 0.08s ease, height 0.08s ease, opacity 0.08s ease; -} - -.styles-module__dragPreviewWireframe___jsg0G { - border-color: #f97316; - background: rgba(249, 115, 22, 0.1); - color: #f97316; - box-shadow: 0 4px 16px rgba(249, 115, 22, 0.15); -} - -.styles-module__palette___C7iSH { - position: absolute; - right: 5px; - bottom: calc(100% + 0.5rem); - width: 256px; - overflow: hidden; - background: #1c1c1c; - border: none; - border-radius: 1rem; - padding: 13px 0 16px; - box-shadow: 0 1px 8px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.04); - z-index: 100001; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - cursor: default; - opacity: 0; - filter: blur(5px); -} -.styles-module__palette___C7iSH .styles-module__paletteItem___6TlnA, -.styles-module__palette___C7iSH .styles-module__paletteItemLabel___6ncO4, -.styles-module__palette___C7iSH .styles-module__paletteSectionTitle___PqnjX, -.styles-module__palette___C7iSH .styles-module__paletteFooter___QYnAG { - transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease; -} -.styles-module__palette___C7iSH.styles-module__enter___6LYk5 { - opacity: 1; - transform: translateY(0); - filter: blur(0px); - transition: opacity 0.2s ease, transform 0.2s ease, filter 0.2s ease; -} -.styles-module__palette___C7iSH.styles-module__exit___iSGRw { - opacity: 0; - transform: translateY(6px); - filter: blur(5px); - pointer-events: none; - transition: opacity 0.1s ease, transform 0.1s ease, filter 0.1s ease; -} -.styles-module__palette___C7iSH.styles-module__light___ORIft { - background: #fff; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 4px 16px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.04); -} - -.styles-module__paletteSection___V8DEA { - padding: 0 1rem; -} -.styles-module__paletteSection___V8DEA + .styles-module__paletteSection___V8DEA { - margin-top: 0.5rem; - padding-top: 0.5rem; - border-top: 1px solid rgba(255, 255, 255, 0.07); -} -.styles-module__light___ORIft .styles-module__paletteSection___V8DEA + .styles-module__paletteSection___V8DEA { - border-top-color: rgba(0, 0, 0, 0.07); -} - -.styles-module__paletteSectionTitle___PqnjX { - font-size: 0.6875rem; - font-weight: 500; - color: rgba(255, 255, 255, 0.5); - letter-spacing: -0.0094em; - padding: 0 0 3px 3px; -} -.styles-module__light___ORIft .styles-module__paletteSectionTitle___PqnjX { - color: rgba(0, 0, 0, 0.4); -} - -.styles-module__paletteItem___6TlnA { - display: flex; - align-items: center; - gap: 0.375rem; - padding: 0.25rem 0.25rem; - margin-bottom: 1px; - border-radius: 0.375rem; - cursor: pointer; - transition: background-color 0.15s ease, border-color 0.15s ease; - border: 1px solid transparent; - user-select: none; - min-height: 24px; -} -.styles-module__paletteItem___6TlnA:hover { - background: rgba(255, 255, 255, 0.1); -} -.styles-module__paletteItem___6TlnA.styles-module__active___hosp7 { - background: #3c82f7; - border-color: transparent; -} -.styles-module__paletteItem___6TlnA.styles-module__wireframe___itvQU.styles-module__active___hosp7 { - background: #f97316; -} -.styles-module__light___ORIft .styles-module__paletteItem___6TlnA:hover { - background: rgba(0, 0, 0, 0.05); -} -.styles-module__light___ORIft .styles-module__paletteItem___6TlnA.styles-module__active___hosp7 { - background: #3c82f7; - border-color: transparent; -} -.styles-module__light___ORIft .styles-module__paletteItem___6TlnA.styles-module__wireframe___itvQU.styles-module__active___hosp7 { - background: #f97316; -} - -.styles-module__paletteItemIcon___0NPQK { - width: 20px; - height: 16px; - border-radius: 2px; - border: 1px dashed rgba(255, 255, 255, 0.15); - background: rgba(255, 255, 255, 0.04); - display: flex; - align-items: center; - justify-content: center; - flex-shrink: 0; - overflow: hidden; - color: rgba(255, 255, 255, 0.45); -} -.styles-module__paletteItemIcon___0NPQK svg { - display: block; - width: 20px; - height: 16px; -} -.styles-module__active___hosp7 .styles-module__paletteItemIcon___0NPQK { - border-color: rgba(255, 255, 255, 0.3); - background: rgba(255, 255, 255, 0.15); - color: #fff; -} -.styles-module__light___ORIft .styles-module__paletteItemIcon___0NPQK { - border-color: rgba(0, 0, 0, 0.12); - background: rgba(0, 0, 0, 0.02); - color: rgba(0, 0, 0, 0.4); -} -.styles-module__light___ORIft .styles-module__active___hosp7 .styles-module__paletteItemIcon___0NPQK { - border-color: rgba(255, 255, 255, 0.3); - background: rgba(255, 255, 255, 0.15); - color: #fff; -} - -.styles-module__paletteItemLabel___6ncO4 { - font-size: 0.8125rem; - font-weight: 500; - color: rgba(255, 255, 255, 0.85); - letter-spacing: -0.0094em; - line-height: 1; - min-width: 0; -} -.styles-module__active___hosp7 .styles-module__paletteItemLabel___6ncO4 { - color: #fff; - font-weight: 600; -} -.styles-module__light___ORIft .styles-module__paletteItemLabel___6ncO4 { - color: rgba(0, 0, 0, 0.7); -} -.styles-module__light___ORIft .styles-module__active___hosp7 .styles-module__paletteItemLabel___6ncO4 { - color: #fff; - font-weight: 600; -} - -.styles-module__placeScroll___7sClM { - max-height: 240px; - overflow-y: auto; - overflow-x: hidden; - padding-top: 0.25rem; -} -.styles-module__placeScroll___7sClM.styles-module__fadeTop___KT9tF { - -webkit-mask-image: linear-gradient(to bottom, transparent 0, black 32px); - mask-image: linear-gradient(to bottom, transparent 0, black 32px); -} -.styles-module__placeScroll___7sClM.styles-module__fadeBottom___x3ShT { - -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 32px), transparent 100%); - mask-image: linear-gradient(to bottom, black calc(100% - 32px), transparent 100%); -} -.styles-module__placeScroll___7sClM.styles-module__fadeTop___KT9tF.styles-module__fadeBottom___x3ShT { - -webkit-mask-image: linear-gradient(to bottom, transparent 0, black 32px, black calc(100% - 32px), transparent 100%); - mask-image: linear-gradient(to bottom, transparent 0, black 32px, black calc(100% - 32px), transparent 100%); -} -.styles-module__placeScroll___7sClM::-webkit-scrollbar { - width: 3px; -} -.styles-module__placeScroll___7sClM::-webkit-scrollbar-thumb { - background: rgba(255, 255, 255, 0.12); - border-radius: 2px; -} -.styles-module__light___ORIft .styles-module__placeScroll___7sClM::-webkit-scrollbar-thumb { - background: rgba(0, 0, 0, 0.1); -} - -.styles-module__paletteFooterWrap___71-fI { - display: grid; - grid-template-rows: 1fr; - transition: grid-template-rows 0.25s cubic-bezier(0.32, 0.72, 0, 1); -} -.styles-module__paletteFooterWrap___71-fI.styles-module__footerHidden___fJUik { - grid-template-rows: 0fr; -} - -.styles-module__paletteFooterInnerContent___VC26h { - opacity: 1; - transform: translateY(0); - transition: opacity 0.15s ease, transform 0.15s ease; -} -.styles-module__footerHidden___fJUik .styles-module__paletteFooterInnerContent___VC26h { - opacity: 0; - transform: translateY(4px); -} - -.styles-module__paletteFooterInner___dfylY { - overflow: hidden; -} - -.styles-module__paletteFooter___QYnAG { - display: flex; - align-items: center; - justify-content: space-between; - min-height: 24px; - padding: 0 1rem; - margin-top: 0.5rem; - padding-top: 0.5rem; - border-top: 1px solid rgba(255, 255, 255, 0.07); -} -.styles-module__light___ORIft .styles-module__paletteFooter___QYnAG { - border-top-color: rgba(0, 0, 0, 0.07); -} - -.styles-module__paletteFooterCount___D3Fia { - font-size: 0.8125rem; - font-weight: 400; - letter-spacing: -0.0094em; - color: rgba(255, 255, 255, 0.5); -} -.styles-module__light___ORIft .styles-module__paletteFooterCount___D3Fia { - color: rgba(0, 0, 0, 0.5); -} - -.styles-module__paletteFooterClear___ybBoa { - font-size: 0.8125rem; - font-weight: 400; - letter-spacing: -0.0094em; - color: rgba(255, 255, 255, 0.5); - background: none; - border: none; - cursor: pointer; - padding: 0; - font-family: inherit; - transition: color 0.15s ease; -} -.styles-module__paletteFooterClear___ybBoa:hover { - color: rgba(255, 255, 255, 0.7); -} -.styles-module__light___ORIft .styles-module__paletteFooterClear___ybBoa { - color: rgba(0, 0, 0, 0.5); -} -.styles-module__light___ORIft .styles-module__paletteFooterClear___ybBoa:hover { - color: rgba(0, 0, 0, 0.6); -} - -.styles-module__paletteFooterActions___fLzv8 { - display: flex; - align-items: center; - gap: 0.75rem; -} - -.styles-module__rollingWrap___S75jM { - display: inline-block; - overflow: hidden; - height: 1.15em; - position: relative; - vertical-align: bottom; -} - -.styles-module__rollingNum___1RKDx { - position: absolute; - left: 0; - top: 0; -} - -.styles-module__exitUp___AFDRW { - animation: styles-module__numExitUp___FRQqx 0.25s cubic-bezier(0.32, 0.72, 0, 1) forwards; -} - -.styles-module__enterUp___CPlXb { - animation: styles-module__numEnterUp___2Yd-w 0.25s cubic-bezier(0.32, 0.72, 0, 1) forwards; -} - -.styles-module__exitDown___-1yAy { - animation: styles-module__numExitDown___xm5by 0.25s cubic-bezier(0.32, 0.72, 0, 1) forwards; -} - -.styles-module__enterDown___DDuFR { - animation: styles-module__numEnterDown___hpxBk 0.25s cubic-bezier(0.32, 0.72, 0, 1) forwards; -} - -@keyframes styles-module__numExitUp___FRQqx { - from { - transform: translateY(0); - opacity: 1; - } - to { - transform: translateY(-110%); - opacity: 0; - } -} -@keyframes styles-module__numEnterUp___2Yd-w { - from { - transform: translateY(110%); - opacity: 0; - } - to { - transform: translateY(0); - opacity: 1; - } -} -@keyframes styles-module__numExitDown___xm5by { - from { - transform: translateY(0); - opacity: 1; - } - to { - transform: translateY(110%); - opacity: 0; - } -} -@keyframes styles-module__numEnterDown___hpxBk { - from { - transform: translateY(-110%); - opacity: 0; - } - to { - transform: translateY(0); - opacity: 1; - } -} -.styles-module__rearrangeOverlay___-3R3t { - position: fixed; - inset: 0; - z-index: 99995; - pointer-events: none; - cursor: default; - user-select: none; - animation: styles-module__overlayFadeIn___aECVy 0.15s ease; -} - -.styles-module__hoverHighlight___8eT-v { - position: fixed; - pointer-events: none; - z-index: 99994; - border: 2px dashed rgba(59, 130, 246, 0.5); - border-radius: 4px; - background: rgba(59, 130, 246, 0.06); - animation: styles-module__highlightFadeIn___Lg7KY 0.12s ease; -} - -.styles-module__sectionOutline___s0hy- { - position: fixed; - border: 2px solid; - border-radius: 4px; - cursor: grab; -} -.styles-module__sectionOutline___s0hy-:active { - cursor: grabbing; -} -.styles-module__sectionOutline___s0hy- { - transition: box-shadow 0.15s, border-color 0.3s, background-color 0.3s, border-style 0s; - user-select: none; - pointer-events: auto; - animation: styles-module__sectionEnter___-8BXT 0.2s ease; -} -.styles-module__sectionOutline___s0hy-:hover { - box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1), 0 4px 12px rgba(0, 0, 0, 0.15); -} -.styles-module__sectionOutline___s0hy-.styles-module__selected___6yrp6 { - border-style: solid; - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15), 0 2px 8px rgba(59, 130, 246, 0.15); -} -.styles-module__sectionOutline___s0hy-.styles-module__selected___6yrp6:hover { - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15), 0 2px 8px rgba(59, 130, 246, 0.15); -} -.styles-module__sectionOutline___s0hy-.styles-module__settled___b5U5o:not(.styles-module__selected___6yrp6) { - border: 1.5px dashed rgba(150, 150, 150, 0.35); - background-color: transparent !important; - box-shadow: none; -} -.styles-module__sectionOutline___s0hy-.styles-module__settled___b5U5o:not(.styles-module__selected___6yrp6):hover { - border-color: rgba(150, 150, 150, 0.6); - box-shadow: none; -} -.styles-module__sectionOutline___s0hy-.styles-module__settled___b5U5o:not(.styles-module__selected___6yrp6) .styles-module__sectionLabel___F80HQ { - opacity: 0; - transition: opacity 0.15s ease; -} -.styles-module__sectionOutline___s0hy-.styles-module__settled___b5U5o:not(.styles-module__selected___6yrp6):hover .styles-module__sectionLabel___F80HQ { - opacity: 1; -} -.styles-module__sectionOutline___s0hy-.styles-module__settled___b5U5o:not(.styles-module__selected___6yrp6) .styles-module__movedBadge___s8z-q, -.styles-module__sectionOutline___s0hy-.styles-module__settled___b5U5o:not(.styles-module__selected___6yrp6) .styles-module__sectionDimensions___RcJSL { - opacity: 0; - transition: opacity 0.15s ease; -} -.styles-module__sectionOutline___s0hy-.styles-module__settled___b5U5o:not(.styles-module__selected___6yrp6):hover .styles-module__sectionDimensions___RcJSL { - opacity: 1; -} -.styles-module__sectionOutline___s0hy-.styles-module__exiting___YrM8F { - opacity: 0; - transform: scale(0.97); - pointer-events: none; - animation: none; - transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.32, 0.72, 0, 1); -} - -.styles-module__sectionLabel___F80HQ { - position: absolute; - top: 4px; - left: 4px; - font-size: 10px; - font-weight: 600; - color: #fff; - padding: 2px 8px; - border-radius: 4px; - white-space: nowrap; - pointer-events: none; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - max-width: calc(100% - 8px); - overflow: hidden; - text-overflow: ellipsis; -} - -.styles-module__movedBadge___s8z-q { - position: absolute; - bottom: 22px; - right: 4px; - font-size: 9px; - font-weight: 700; - color: #fff; - background: #22c55e; - padding: 2px 6px; - border-radius: 4px; - white-space: nowrap; - pointer-events: none; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - text-transform: uppercase; - letter-spacing: 0.04em; - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - opacity: 0; - transform: scale(0.8); - transition: opacity 0.15s ease, transform 0.15s ease; -} -.styles-module__movedBadge___s8z-q.styles-module__badgeVisible___npbdS { - opacity: 1; - transform: scale(1); - transition: opacity 0.2s cubic-bezier(0.34, 1.2, 0.64, 1), transform 0.2s cubic-bezier(0.34, 1.2, 0.64, 1); -} - -.styles-module__resizedBadge___u51V8 { - background: #3c82f7; - bottom: 40px; -} - -.styles-module__sectionDimensions___RcJSL { - position: absolute; - bottom: 4px; - right: 4px; - font-size: 9px; - font-weight: 500; - color: rgba(255, 255, 255, 0.7); - background: rgba(0, 0, 0, 0.5); - padding: 1px 5px; - border-radius: 3px; - white-space: nowrap; - pointer-events: none; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; -} -.styles-module__light___ORIft .styles-module__sectionDimensions___RcJSL { - color: rgba(0, 0, 0, 0.5); - background: rgba(255, 255, 255, 0.7); -} - -.styles-module__wireframeNotice___4GJyB { - position: fixed; - bottom: 16px; - left: 24px; - z-index: 99995; - font-size: 9.5px; - font-weight: 400; - color: rgba(0, 0, 0, 0.4); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - pointer-events: auto; - animation: styles-module__overlayFadeIn___aECVy 0.3s ease; - line-height: 1.5; - max-width: 280px; -} - -.styles-module__wireframeOpacityRow___CJXzi { - display: flex; - align-items: center; - gap: 8px; - margin-bottom: 8px; -} - -.styles-module__wireframeOpacityLabel___afkfT { - font-size: 9px; - font-weight: 500; - color: rgba(0, 0, 0, 0.32); - letter-spacing: 0.02em; - white-space: nowrap; - user-select: none; -} - -.styles-module__wireframeOpacitySlider___YcoEs { - -webkit-appearance: none; - appearance: none; - width: 56px; - height: 4px; - background: rgba(0, 0, 0, 0.08); - border-radius: 2px; - outline: none; - cursor: pointer; - flex-shrink: 0; - transition: background 0.15s ease; -} -.styles-module__wireframeOpacitySlider___YcoEs:hover { - background: rgba(0, 0, 0, 0.13); -} -.styles-module__wireframeOpacitySlider___YcoEs::-webkit-slider-thumb { - -webkit-appearance: none; - appearance: none; - width: 10px; - height: 10px; - border-radius: 50%; - background: #f97316; - cursor: pointer; - transition: background 0.15s ease; -} -.styles-module__wireframeOpacitySlider___YcoEs::-webkit-slider-thumb:hover { - background: rgb(224.4209205021, 95.3548117155, 5.7790794979); -} -.styles-module__wireframeOpacitySlider___YcoEs::-moz-range-thumb { - width: 10px; - height: 10px; - border-radius: 50%; - background: #f97316; - border: none; - cursor: pointer; -} -.styles-module__wireframeOpacitySlider___YcoEs::-moz-range-track { - background: rgba(0, 0, 0, 0.08); - height: 4px; - border-radius: 2px; -} - -.styles-module__wireframeNoticeTitleRow___PJqyG { - display: flex; - align-items: center; - gap: 0; - margin-bottom: 2px; -} - -.styles-module__wireframeNoticeTitle___okr08 { - font-weight: 600; - color: rgba(0, 0, 0, 0.55); -} - -.styles-module__wireframeNoticeDivider___PNKQ6 { - width: 1px; - height: 8px; - background: rgba(0, 0, 0, 0.12); - margin: 0 8px; - flex-shrink: 0; -} - -.styles-module__wireframeStartOver___YFk-I { - font-size: 9.5px; - font-weight: 500; - color: rgba(0, 0, 0, 0.35); - cursor: pointer; - background: none; - border: none; - padding: 0; - font-family: inherit; - text-decoration: none; - transition: color 0.12s ease; - white-space: nowrap; -} -.styles-module__wireframeStartOver___YFk-I:hover { - color: rgba(0, 0, 0, 0.6); -} - -.styles-module__ghostOutline___po-kO { - position: fixed; - border: 1.5px dashed rgba(59, 130, 246, 0.4); - border-radius: 4px; - background: rgba(59, 130, 246, 0.04); - cursor: grab; - opacity: 0.5; - user-select: none; - pointer-events: auto; - animation: styles-module__ghostEnter___EC3Mb 0.25s ease; - transition: box-shadow 0.15s, border-color 0.3s, opacity 0.25s; -} -.styles-module__ghostOutline___po-kO:active { - cursor: grabbing; -} -.styles-module__ghostOutline___po-kO:hover { - opacity: 0.7; - box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.1), 0 4px 12px rgba(0, 0, 0, 0.08); -} -.styles-module__ghostOutline___po-kO.styles-module__selected___6yrp6 { - opacity: 1; - border-style: solid; - border-width: 2px; - border-color: #3c82f7; - background: rgba(59, 130, 246, 0.08); - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15), 0 2px 8px rgba(59, 130, 246, 0.15); -} -.styles-module__ghostOutline___po-kO.styles-module__exiting___YrM8F { - opacity: 0; - transform: scale(0.97); - pointer-events: none; - animation: none; - transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.32, 0.72, 0, 1); -} - -.styles-module__ghostBadge___tsQUK { - position: absolute; - bottom: calc(100% + 4px); - left: -1px; - font-size: 9px; - font-weight: 600; - color: rgba(59, 130, 246, 0.9); - background: rgba(59, 130, 246, 0.08); - border: 1px solid rgba(59, 130, 246, 0.2); - padding: 1px 5px; - border-radius: 3px; - white-space: nowrap; - pointer-events: none; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - letter-spacing: 0.02em; - line-height: 1.2; - animation: styles-module__badgeSlideIn___typJ7 0.2s ease both; -} - -@keyframes styles-module__badgeSlideIn___typJ7 { - from { - opacity: 0; - transform: translateY(4px); - } - to { - opacity: 1; - transform: translateY(0); - } -} -.styles-module__ghostBadgeExtra___6CVoD { - display: inline; - animation: styles-module__badgeExtraIn___i4W8F 0.2s ease both; -} - -@keyframes styles-module__badgeExtraIn___i4W8F { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -.styles-module__originalOutline___Y6DD1 { - position: fixed; - border: 1.5px dashed rgba(150, 150, 150, 0.3); - border-radius: 4px; - background: transparent; - pointer-events: none; - user-select: none; - animation: styles-module__sectionEnter___-8BXT 0.2s ease; -} - -.styles-module__originalLabel___HqI9g { - position: absolute; - top: 4px; - left: 4px; - font-size: 9px; - font-weight: 500; - color: rgba(150, 150, 150, 0.5); - padding: 1px 6px; - border-radius: 3px; - white-space: nowrap; - pointer-events: none; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; - background: rgba(150, 150, 150, 0.08); -} - -.styles-module__connectorSvg___Lovld { - position: fixed; - inset: 0; - width: 100vw; - height: 100vh; - pointer-events: none; - z-index: 99996; -} - -.styles-module__connectorLine___XeWh- { - transition: opacity 0.2s ease; - animation: styles-module__connectorDraw___8sK5I 0.3s ease both; -} - -.styles-module__connectorDot___yvf7C { - transform-box: fill-box; - transform-origin: center; - animation: styles-module__connectorDotIn___NwTUq 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s both; -} - -@keyframes styles-module__connectorDraw___8sK5I { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes styles-module__connectorDotIn___NwTUq { - from { - transform: scale(0); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} -.styles-module__connectorExiting___2lLOs { - animation: styles-module__connectorOut___5QoPl 0.2s ease forwards; -} -.styles-module__connectorExiting___2lLOs .styles-module__connectorDot___yvf7C { - animation: styles-module__connectorDotOut___FEq7e 0.2s ease forwards; -} - -@keyframes styles-module__connectorOut___5QoPl { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@keyframes styles-module__connectorDotOut___FEq7e { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(0); - opacity: 0; - } -} -@keyframes styles-module__placementEnter___TdRhf { - from { - opacity: 0; - transform: scale(0.85); - } - to { - opacity: 1; - transform: scale(1); - } -} -@keyframes styles-module__sectionEnter___-8BXT { - from { - opacity: 0; - transform: scale(0.96); - } - to { - opacity: 1; - transform: scale(1); - } -} -@keyframes styles-module__highlightFadeIn___Lg7KY { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes styles-module__overlayFadeIn___aECVy { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes styles-module__ghostEnter___EC3Mb { - from { - opacity: 0; - transform: scale(0.96); - } - to { - opacity: 0.6; - transform: scale(1); - } -}`,_be={overlayExiting:"styles-module__overlayExiting___iEmYr",overlay:"styles-module__overlay___aWh-q",overlayFadeIn:"styles-module__overlayFadeIn___aECVy",light:"styles-module__light___ORIft",wireframe:"styles-module__wireframe___itvQU",placing:"styles-module__placing___45yD8",passthrough:"styles-module__passthrough___xaFeE",blankCanvas:"styles-module__blankCanvas___t2Eue",visible:"styles-module__visible___OKKqX",gridActive:"styles-module__gridActive___OZ-cf",paletteHeader:"styles-module__paletteHeader___-Q5gQ",paletteHeaderTitle:"styles-module__paletteHeaderTitle___oHqZC",paletteHeaderDesc:"styles-module__paletteHeaderDesc___6i74T",wireframePurposeWrap:"styles-module__wireframePurposeWrap___To-tS",collapsed:"styles-module__collapsed___Ms9vS",wireframePurposeInner:"styles-module__wireframePurposeInner___Lrahs",wireframePurposeInput:"styles-module__wireframePurposeInput___7EtBN",canvasToggle:"styles-module__canvasToggle___-QqSy",active:"styles-module__active___hosp7",canvasToggleIcon:"styles-module__canvasToggleIcon___7pJ82",canvasToggleLabel:"styles-module__canvasToggleLabel___OanpY",canvasPurposeWrap:"styles-module__canvasPurposeWrap___hj6zk",canvasPurposeInner:"styles-module__canvasPurposeInner___VWiyu",canvasPurposeToggle:"styles-module__canvasPurposeToggle___byDH2",canvasPurposeCheck:"styles-module__canvasPurposeCheck___xqd7l",checked:"styles-module__checked___-1JGH",canvasPurposeLabel:"styles-module__canvasPurposeLabel___Zu-tD",canvasPurposeHelp:"styles-module__canvasPurposeHelp___jijwR",placement:"styles-module__placement___zcxv8",placementEnter:"styles-module__placementEnter___TdRhf",selected:"styles-module__selected___6yrp6",dragging:"styles-module__dragging___le6KZ",exiting:"styles-module__exiting___YrM8F",placementContent:"styles-module__placementContent___f64A4",placementLabel:"styles-module__placementLabel___0KvWl",placementAnnotation:"styles-module__placementAnnotation___78pTr",annotationVisible:"styles-module__annotationVisible___mrUyA",sectionAnnotation:"styles-module__sectionAnnotation___aUIs0",handle:"styles-module__handle___Ikbxm",sectionOutline:"styles-module__sectionOutline___s0hy-",ghostOutline:"styles-module__ghostOutline___po-kO",handleNw:"styles-module__handleNw___4TMIj",handleNe:"styles-module__handleNe___mnsTh",handleSe:"styles-module__handleSe___oSFnk",handleSw:"styles-module__handleSw___pi--Z",handleN:"styles-module__handleN___aBA-Q",handleE:"styles-module__handleE___0hM5u",handleS:"styles-module__handleS___JjDRv",handleW:"styles-module__handleW___ERWGQ",edgeHandle:"styles-module__edgeHandle___XxXdT",edgeN:"styles-module__edgeN___-JJDj",edgeS:"styles-module__edgeS___66lMX",edgeE:"styles-module__edgeE___1bGDa",edgeW:"styles-module__edgeW___lHQNo",deleteButton:"styles-module__deleteButton___LkGCb",rearrangeOverlay:"styles-module__rearrangeOverlay___-3R3t",drawBox:"styles-module__drawBox___BrVAa",selectBox:"styles-module__selectBox___Iu8kB",sizeIndicator:"styles-module__sizeIndicator___7zJ4y",guideLine:"styles-module__guideLine___DUQY2",dragPreview:"styles-module__dragPreview___onPbU",dragPreviewWireframe:"styles-module__dragPreviewWireframe___jsg0G",palette:"styles-module__palette___C7iSH",paletteItem:"styles-module__paletteItem___6TlnA",paletteItemLabel:"styles-module__paletteItemLabel___6ncO4",paletteSectionTitle:"styles-module__paletteSectionTitle___PqnjX",paletteFooter:"styles-module__paletteFooter___QYnAG",enter:"styles-module__enter___6LYk5",exit:"styles-module__exit___iSGRw",paletteSection:"styles-module__paletteSection___V8DEA",paletteItemIcon:"styles-module__paletteItemIcon___0NPQK",placeScroll:"styles-module__placeScroll___7sClM",fadeTop:"styles-module__fadeTop___KT9tF",fadeBottom:"styles-module__fadeBottom___x3ShT",paletteFooterWrap:"styles-module__paletteFooterWrap___71-fI",footerHidden:"styles-module__footerHidden___fJUik",paletteFooterInnerContent:"styles-module__paletteFooterInnerContent___VC26h",paletteFooterInner:"styles-module__paletteFooterInner___dfylY",paletteFooterCount:"styles-module__paletteFooterCount___D3Fia",paletteFooterClear:"styles-module__paletteFooterClear___ybBoa",paletteFooterActions:"styles-module__paletteFooterActions___fLzv8",rollingWrap:"styles-module__rollingWrap___S75jM",rollingNum:"styles-module__rollingNum___1RKDx",exitUp:"styles-module__exitUp___AFDRW",numExitUp:"styles-module__numExitUp___FRQqx",enterUp:"styles-module__enterUp___CPlXb",numEnterUp:"styles-module__numEnterUp___2Yd-w",exitDown:"styles-module__exitDown___-1yAy",numExitDown:"styles-module__numExitDown___xm5by",enterDown:"styles-module__enterDown___DDuFR",numEnterDown:"styles-module__numEnterDown___hpxBk",hoverHighlight:"styles-module__hoverHighlight___8eT-v",highlightFadeIn:"styles-module__highlightFadeIn___Lg7KY",sectionEnter:"styles-module__sectionEnter___-8BXT",settled:"styles-module__settled___b5U5o",sectionLabel:"styles-module__sectionLabel___F80HQ",movedBadge:"styles-module__movedBadge___s8z-q",sectionDimensions:"styles-module__sectionDimensions___RcJSL",badgeVisible:"styles-module__badgeVisible___npbdS",resizedBadge:"styles-module__resizedBadge___u51V8",wireframeNotice:"styles-module__wireframeNotice___4GJyB",wireframeOpacityRow:"styles-module__wireframeOpacityRow___CJXzi",wireframeOpacityLabel:"styles-module__wireframeOpacityLabel___afkfT",wireframeOpacitySlider:"styles-module__wireframeOpacitySlider___YcoEs",wireframeNoticeTitleRow:"styles-module__wireframeNoticeTitleRow___PJqyG",wireframeNoticeTitle:"styles-module__wireframeNoticeTitle___okr08",wireframeNoticeDivider:"styles-module__wireframeNoticeDivider___PNKQ6",wireframeStartOver:"styles-module__wireframeStartOver___YFk-I",ghostEnter:"styles-module__ghostEnter___EC3Mb",ghostBadge:"styles-module__ghostBadge___tsQUK",badgeSlideIn:"styles-module__badgeSlideIn___typJ7",ghostBadgeExtra:"styles-module__ghostBadgeExtra___6CVoD",badgeExtraIn:"styles-module__badgeExtraIn___i4W8F",originalOutline:"styles-module__originalOutline___Y6DD1",originalLabel:"styles-module__originalLabel___HqI9g",connectorSvg:"styles-module__connectorSvg___Lovld",connectorLine:"styles-module__connectorLine___XeWh-",connectorDraw:"styles-module__connectorDraw___8sK5I",connectorDot:"styles-module__connectorDot___yvf7C",connectorDotIn:"styles-module__connectorDotIn___NwTUq",connectorExiting:"styles-module__connectorExiting___2lLOs",connectorOut:"styles-module__connectorOut___5QoPl",connectorDotOut:"styles-module__connectorDotOut___FEq7e"};if(typeof document<"u"){let e=document.getElementById("feedback-tool-styles-design-mode-styles");e||(e=document.createElement("style"),e.id="feedback-tool-styles-design-mode-styles",document.head.appendChild(e)),e.textContent=vbe}var nt=_be,Ny=24,g7=5;function ece(e,t,n,r,i){let s=1/0,l=1/0;const u=e.x,d=e.x+e.width,p=e.x+e.width/2,f=e.y,y=e.y+e.height,v=e.y+e.height/2,_=!r,x=_?[u,d,p]:[...r.left?[u]:[],...r.right?[d]:[]],E=_?[f,y,v]:[...r.top?[f]:[],...r.bottom?[y]:[]],T=[];for(const ne of t)n.has(ne.id)||T.push(ne);i&&T.push(...i);for(const ne of T){const Me=ne.x,ue=ne.x+ne.width,de=ne.x+ne.width/2,Re=ne.y,se=ne.y+ne.height,he=ne.y+ne.height/2;for(const re of x)for(const Be of[Me,ue,de]){const Y=Be-re;Math.abs(Y){y!==Ze.current&&(Ze.current=y,C(new Set))},[y]);const He=(0,w.useRef)(x);(0,w.useEffect)(()=>{if(x!==void 0&&x!==He.current){He.current=x;const Ye=new Set(Y.current.map($t=>$t.id));Ye.size>0&&(se(Ye),C(new Set),Be.current=null,Nn(()=>{t([]),se(new Set)},180))}},[x,t]),(0,w.useEffect)(()=>{const Ye=$t=>{const ft=$t.target;if(!(ft.tagName==="INPUT"||ft.tagName==="TEXTAREA"||ft.isContentEditable)){if(($t.key==="Backspace"||$t.key==="Delete")&&T.size>0){$t.preventDefault();const wt=new Set(T);se(wt),C(new Set),Nn(()=>{t(Y.current.filter(et=>!wt.has(et.id))),se(new Set)},180);return}if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes($t.key)&&T.size>0){$t.preventDefault();const wt=$t.shiftKey?20:1,et=$t.key==="ArrowLeft"?-wt:$t.key==="ArrowRight"?wt:0,St=$t.key==="ArrowUp"?-wt:$t.key==="ArrowDown"?wt:0;t(e.map(Kt=>T.has(Kt.id)?{...Kt,x:Math.max(0,Kt.x+et),y:Math.max(0,Kt.y+St)}:Kt));return}if($t.key==="Escape"){n?r(null):T.size>0&&C(new Set);return}}};return document.addEventListener("keydown",Ye),()=>document.removeEventListener("keydown",Ye)},[T,n,e,t,r]);const yt=(0,w.useCallback)(Ye=>{if(Ye.button!==0||d||Ye.target.closest(`.${nt.placement}`))return;Ye.preventDefault(),Ye.stopPropagation();const $t=window.scrollY,ft=Ye.clientX,wt=Ye.clientY;if(n){Be.current="place",l?.(!0);let et=!1,St=ft,Kt=wt;const on=ze=>{St=ze.clientX,Kt=ze.clientY;const Xe=Math.abs(St-ft),xe=Math.abs(Kt-wt);if((Xe>5||xe>5)&&(et=!0),et){const Ie=Math.min(ft,St),Ue=Math.min(wt,Kt),rt=Math.abs(St-ft),_t=Math.abs(Kt-wt);z({x:Ie,y:Ue,w:rt,h:_t}),J({x:ze.clientX+12,y:ze.clientY+12,text:`${Math.round(rt)} × ${Math.round(_t)}`})}},De=ze=>{window.removeEventListener("mousemove",on),window.removeEventListener("mouseup",De),z(null),J(null),Be.current=null,l?.(!1);const Xe=cn[n];let xe,Ie,Ue,rt;et?(xe=Math.min(ft,St),Ie=Math.min(wt,Kt)+$t,Ue=Math.max(Ny,Math.abs(St-ft)),rt=Math.max(Ny,Math.abs(Kt-wt))):(Ue=Xe.width,rt=Xe.height,xe=ft-Ue/2,Ie=wt+$t-rt/2),xe=Math.max(0,xe),Ie=Math.max(0,Ie);const _t={id:tce(),type:n,x:xe,y:Ie,width:Ue,height:rt,scrollY:$t,timestamp:Date.now()};t([...e,_t]),C(new Set([_t.id])),r(null)};window.addEventListener("mousemove",on),window.addEventListener("mouseup",De)}else{Ye.shiftKey||C(new Set),Be.current="select";let et=!1;const St=on=>{const De=Math.abs(on.clientX-ft),ze=Math.abs(on.clientY-wt);if((De>4||ze>4)&&(et=!0),et){const Xe=Math.min(ft,on.clientX),xe=Math.min(wt,on.clientY);F({x:Xe,y:xe,w:Math.abs(on.clientX-ft),h:Math.abs(on.clientY-wt)})}},Kt=on=>{if(window.removeEventListener("mousemove",St),window.removeEventListener("mouseup",Kt),Be.current=null,et){const De=Math.min(ft,on.clientX),ze=Math.min(wt,on.clientY)+$t,Xe=Math.abs(on.clientX-ft),xe=Math.abs(on.clientY-wt),Ie=new Set(Ye.shiftKey?T:new Set);for(const Ue of e)Ue.y-$t,Ue.x+Ue.width>De&&Ue.xze&&Ue.y{if(Ye.button!==0)return;const ft=Ye.target;if(ft.closest(`.${nt.handle}`)||ft.closest(`.${nt.deleteButton}`))return;Ye.preventDefault(),Ye.stopPropagation();let wt;Ye.shiftKey?(wt=new Set(T),wt.has($t)?wt.delete($t):wt.add($t)):T.has($t)?wt=new Set(T):wt=new Set([$t]),C(wt),(wt.size!==T.size||[...wt].some(_t=>!T.has(_t)))&&Ot.current?.(wt,Ye.shiftKey),window.scrollY;const et=Ye.clientX,St=Ye.clientY,Kt=new Map;for(const _t of e)wt.has(_t.id)&&Kt.set(_t.id,{x:_t.x,y:_t.y});Be.current="move",l?.(!0);let on=!1,De=!1,ze=e,Xe=0,xe=0;const Ie=new Map;for(const _t of e)Kt.has(_t.id)&&Ie.set(_t.id,{w:_t.width,h:_t.height});const Ue=_t=>{const Ut=_t.clientX-et,st=_t.clientY-St;if((Math.abs(Ut)>2||Math.abs(st)>2)&&(on=!0),!on)return;if(_t.altKey&&!De){De=!0;const kt=[];for(const Q of e)Kt.has(Q.id)&&kt.push({...Q,id:tce(),timestamp:Date.now()});ze=[...e,...kt]}let tn=1/0,Mn=1/0,H=-1/0,Te=-1/0;for(const[kt,Q]of Kt){const Fe=Ie.get(kt);Fe&&(tn=Math.min(tn,Q.x+Ut),Mn=Math.min(Mn,Q.y+st),H=Math.max(H,Q.x+Ut+Fe.w),Te=Math.max(Te,Q.y+st+Fe.h))}const{dx:qe,dy:tt,guides:ot}=ece({x:tn,y:Mn,width:H-tn,height:Te-Mn},ze,new Set(Kt.keys()),void 0,p);ce(ot);const Zt=Ut+qe,ct=st+tt;Xe=Zt,xe=ct,t(ze.map(kt=>{const Q=Kt.get(kt.id);return Q?{...kt,x:Math.max(0,Q.x+Zt),y:Math.max(0,Q.y+ct)}:kt})),oe.current?.(Zt,ct)},rt=()=>{window.removeEventListener("mousemove",Ue),window.removeEventListener("mouseup",rt),Be.current=null,l?.(!1),ce([]),W.current?.(Xe,xe,on)};window.addEventListener("mousemove",Ue),window.addEventListener("mouseup",rt)},[T,e,t,l]),it=(0,w.useCallback)((Ye,$t,ft)=>{Ye.preventDefault(),Ye.stopPropagation();const wt=e.find(Ue=>Ue.id===$t);if(!wt)return;C(new Set([$t])),Be.current="resize",l?.(!0);const et=Ye.clientX,St=Ye.clientY,Kt=wt.width,on=wt.height,De=wt.x,ze=wt.y,Xe={left:ft.includes("w"),right:ft.includes("e"),top:ft.includes("n"),bottom:ft.includes("s")},xe=Ue=>{const rt=Ue.clientX-et,_t=Ue.clientY-St;let Ut=Kt,st=on,tn=De,Mn=ze;ft.includes("e")&&(Ut=Math.max(Ny,Kt+rt)),ft.includes("w")&&(Ut=Math.max(Ny,Kt-rt),tn=De+Kt-Ut),ft.includes("s")&&(st=Math.max(Ny,on+_t)),ft.includes("n")&&(st=Math.max(Ny,on-_t),Mn=ze+on-st);const{dx:H,dy:Te,guides:qe}=ece({x:tn,y:Mn,width:Ut,height:st},Y.current,new Set([$t]),Xe,p);ce(qe),H!==0&&(Xe.right?Ut+=H:Xe.left&&(tn+=H,Ut-=H)),Te!==0&&(Xe.bottom?st+=Te:Xe.top&&(Mn+=Te,st-=Te)),t(Y.current.map(tt=>tt.id===$t?{...tt,x:tn,y:Mn,width:Ut,height:st}:tt)),J({x:Ue.clientX+12,y:Ue.clientY+12,text:`${Math.round(Ut)} × ${Math.round(st)}`})},Ie=()=>{window.removeEventListener("mousemove",xe),window.removeEventListener("mouseup",Ie),J(null),Be.current=null,l?.(!1),ce([])};window.addEventListener("mousemove",xe),window.addEventListener("mouseup",Ie)},[e,t,l]),Gt=(0,w.useCallback)(Ye=>{Be.current=null,se($t=>{const ft=new Set($t);return ft.add(Ye),ft}),C($t=>{const ft=new Set($t);return ft.delete(Ye),ft}),Nn(()=>{t(Y.current.filter($t=>$t.id!==Ye)),se($t=>{const ft=new Set($t);return ft.delete(Ye),ft})},180)},[t]),Ht={hero:"Headline text",button:"Button label",badge:"Badge label",cta:"Call to action text",toast:"Notification message",modal:"Dialog title",card:"Card title",navigation:"Brand / nav items",tabs:"Tab labels",input:"Placeholder text",search:"Search placeholder",pricing:"Plan name or price",testimonial:"Quote text",alert:"Alert message",banner:"Banner text",tag:"Tag label",notification:"Notification message",stat:"Metric value",productCard:"Product name"},en=(0,w.useCallback)(Ye=>{const $t=e.find(ft=>ft.id===Ye);$t&&(de.current=!!$t.text,ne(Ye),ue(!1))},[e]),Ve=(0,w.useCallback)(()=>{V&&(ue(!0),Nn(()=>{ne(null),ue(!1)},150))},[V]);(0,w.useEffect)(()=>{s&&V&&Ve()},[s]);const ut=(0,w.useCallback)(Ye=>{V&&(t(e.map($t=>$t.id===V?{...$t,text:Ye.trim()||void 0}:$t)),Ve())},[V,e,t,Ve]),zn=typeof window<"u"?window.scrollY:0,ar=["nw","ne","se","sw"],xr=E?"#f97316":"#3c82f7",wn=[{dir:"n",cls:nt.edgeN,arrow:(0,b.jsx)("svg",{width:"8",height:"6",viewBox:"0 0 8 6",fill:"none",children:(0,b.jsx)("path",{d:"M4 0.5L1 4.5h6z",fill:xr})})},{dir:"e",cls:nt.edgeE,arrow:(0,b.jsx)("svg",{width:"6",height:"8",viewBox:"0 0 6 8",fill:"none",children:(0,b.jsx)("path",{d:"M5.5 4L1.5 1v6z",fill:xr})})},{dir:"s",cls:nt.edgeS,arrow:(0,b.jsx)("svg",{width:"8",height:"6",viewBox:"0 0 8 6",fill:"none",children:(0,b.jsx)("path",{d:"M4 5.5L1 1.5h6z",fill:xr})})},{dir:"w",cls:nt.edgeW,arrow:(0,b.jsx)("svg",{width:"6",height:"8",viewBox:"0 0 6 8",fill:"none",children:(0,b.jsx)("path",{d:"M0.5 4L4.5 1v6z",fill:xr})})}];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{ref:re,className:`${nt.overlay} ${i?"":nt.light} ${n?nt.placing:""} ${d?nt.passthrough:""} ${s?nt.overlayExiting:""} ${E?nt.wireframe:""}${u?` ${u}`:""}`,"data-feedback-toolbar":!0,onMouseDown:yt,children:e.map(Ye=>{const $t=T.has(Ye.id),ft=Nl[Ye.type]?.label||Ye.type,wt=Ye.y-zn;return(0,b.jsxs)("div",{"data-design-placement":Ye.id,className:`${nt.placement} ${$t?nt.selected:""} ${Re.has(Ye.id)?nt.exiting:""}`,style:{left:Ye.x,top:wt,width:Ye.width,height:Ye.height,position:"fixed"},onMouseDown:et=>It(et,Ye.id),onDoubleClick:()=>en(Ye.id),children:[(0,b.jsx)("span",{className:nt.placementLabel,children:ft}),(0,b.jsx)("span",{className:`${nt.placementAnnotation} ${Ye.text?nt.annotationVisible:""}`,children:(Ye.text&&he.current.set(Ye.id,Ye.text),Ye.text||he.current.get(Ye.id)||"")}),(0,b.jsx)("div",{className:nt.placementContent,children:(0,b.jsx)(gbe,{type:Ye.type,width:Ye.width,height:Ye.height,text:Ye.text})}),(0,b.jsx)("div",{className:nt.deleteButton,onMouseDown:et=>et.stopPropagation(),onClick:()=>Gt(Ye.id),children:"✕"}),ar.map(et=>(0,b.jsx)("div",{className:`${nt.handle} ${nt[`handle${et.charAt(0).toUpperCase()}${et.slice(1)}`]}`,onMouseDown:St=>it(St,Ye.id,et)},et)),wn.map(({dir:et,cls:St,arrow:Kt})=>(0,b.jsx)("div",{className:`${nt.edgeHandle} ${St}`,onMouseDown:on=>it(on,Ye.id,et),children:Kt},et))]},Ye.id)})}),V&&(()=>{const Ye=e.find(ze=>ze.id===V);if(!Ye)return null;const $t=Ye.y-zn,ft=Ye.x+Ye.width/2,wt=$t-8,et=$t+Ye.height+8,St=wt>200,Kt=et{ut("")}:void 0,isExiting:Me,lightMode:!i,style:De})})(),I&&(0,b.jsx)("div",{className:nt.drawBox,style:{left:I.x,top:I.y,width:I.w,height:I.h},"data-feedback-toolbar":!0}),P&&(0,b.jsx)("div",{className:nt.selectBox,style:{left:P.x,top:P.y,width:P.w,height:P.h},"data-feedback-toolbar":!0}),$&&(0,b.jsx)("div",{className:nt.sizeIndicator,style:{left:$.x,top:$.y},"data-feedback-toolbar":!0,children:$.text}),Z.map((Ye,$t)=>(0,b.jsx)("div",{className:nt.guideLine,style:Ye.axis==="x"?{position:"fixed",left:Ye.pos,top:0,width:1,bottom:0}:{position:"fixed",left:0,top:Ye.pos-zn,right:0,height:1},"data-feedback-toolbar":!0},`${Ye.axis}-${Ye.pos}-${$t}`))]})}function bbe(e){if(!e)return"";const t=e.scrollTop>2,n=e.scrollTop+e.clientHeight(0,b.jsxs)("div",{className:nt.paletteSection,children:[(0,b.jsx)("div",{className:nt.paletteSectionTitle,children:l.section}),l.items.map(u=>(0,b.jsxs)("div",{className:`${nt.paletteItem} ${e===u.type?nt.active:""} ${s?nt.wireframe:""}`,onClick:()=>t(u.type),onMouseDown:d=>{d.button===0&&n(u.type,d)},children:[(0,b.jsx)("div",{className:nt.paletteItemIcon,children:(0,b.jsx)(xbe,{type:u.type})}),(0,b.jsx)("span",{className:nt.paletteItemLabel,children:u.label})]},u.type))]},l.section))})}function Mbe({value:e,suffix:t}){const[n,r]=(0,w.useState)(null),[i,s]=(0,w.useState)(t),[l,u]=(0,w.useState)("up"),d=(0,w.useRef)(e),p=(0,w.useRef)(t),f=(0,w.useRef)(),y=n!==null&&i!==t;return(0,w.useEffect)(()=>{if(e!==d.current){if(e===0){d.current=e,p.current=t,r(null);return}u(e>d.current?"up":"down"),r(d.current),s(p.current),d.current=e,p.current=t,clearTimeout(f.current),f.current=Nn(()=>r(null),250)}else p.current=t},[e,t]),n===null?(0,b.jsxs)(b.Fragment,{children:[e,t?` ${t}`:""]}):y?(0,b.jsxs)("span",{className:nt.rollingWrap,children:[(0,b.jsxs)("span",{style:{visibility:"hidden"},children:[e," ",t]}),(0,b.jsxs)("span",{className:`${nt.rollingNum} ${l==="up"?nt.exitUp:nt.exitDown}`,children:[n," ",i]},`o${n}-${e}`),(0,b.jsxs)("span",{className:`${nt.rollingNum} ${l==="up"?nt.enterUp:nt.enterDown}`,children:[e," ",t]},`n${e}`)]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:nt.rollingWrap,children:[(0,b.jsx)("span",{style:{visibility:"hidden"},children:e}),(0,b.jsx)("span",{className:`${nt.rollingNum} ${l==="up"?nt.exitUp:nt.exitDown}`,children:n},`o${n}-${e}`),(0,b.jsx)("span",{className:`${nt.rollingNum} ${l==="up"?nt.enterUp:nt.enterDown}`,children:e},`n${e}`)]}),t?` ${t}`:""]})}function Sbe({activeType:e,onSelect:t,isDarkMode:n,sectionCount:r,onDetectSections:i,visible:s,onExited:l,placementCount:u,onClearPlacements:d,onDragStart:p,blankCanvas:f,onBlankCanvasChange:y,wireframePurpose:v,onWireframePurposeChange:_,Tooltip:x}){const[E,T]=(0,w.useState)(!1),[C,I]=(0,w.useState)("exit"),[z,P]=(0,w.useState)(!1),[F,$]=(0,w.useState)(!0),J=(0,w.useRef)(0),Z=(0,w.useRef)(""),ce=(0,w.useRef)(0),V=(0,w.useRef)(),ne=(0,w.useRef)(null),[Me,ue]=(0,w.useState)("");(0,w.useEffect)(()=>(s?(T(!0),clearTimeout(V.current),cancelAnimationFrame(ce.current),ce.current=Gy(()=>{ce.current=Gy(()=>{I("enter")})})):(cancelAnimationFrame(ce.current),I("exit"),clearTimeout(V.current),V.current=Nn(()=>{T(!1),l?.()},200)),()=>cancelAnimationFrame(ce.current)),[s]);const de=u>0||r>0,Re=u+r;if(Re>0&&(J.current=Re,Z.current=f?Re===1?"Component":"Components":Re===1?"Change":"Changes"),(0,w.useEffect)(()=>{if(de)z?$(!1):($(!0),P(!0),Gy(()=>{Gy(()=>{$(!1)})}));else{$(!0);const he=Nn(()=>P(!1),300);return()=>clearTimeout(he)}},[de]),(0,w.useEffect)(()=>{if(!E)return;const he=ne.current;if(!he)return;const re=()=>ue(bbe(he));re(),he.addEventListener("scroll",re,{passive:!0});const Be=new ResizeObserver(re);return Be.observe(he),()=>{he.removeEventListener("scroll",re),Be.disconnect()}},[E]),!E)return null;const se=[];return u>0&&se.push("placed"),r>0&&se.push("captured"),(0,b.jsxs)("div",{className:`${nt.palette} ${nt[C]} ${n?"":nt.light}`,"data-feedback-toolbar":!0,"data-agentation-palette":!0,onClick:he=>he.stopPropagation(),onMouseDown:he=>he.stopPropagation(),onTransitionEnd:he=>{he.target===he.currentTarget&&(s||(clearTimeout(V.current),T(!1),I("exit"),l?.()))},children:[(0,b.jsxs)("div",{className:nt.paletteHeader,children:[(0,b.jsx)("div",{className:nt.paletteHeaderTitle,children:"Layout Mode"}),(0,b.jsxs)("div",{className:nt.paletteHeaderDesc,children:["Rearrange and resize existing elements, add new components, and explore layout ideas. Agent results may vary."," ",(0,b.jsx)("a",{href:"https://agentation.dev/features#layout-mode",target:"_blank",rel:"noopener noreferrer",children:"Learn more."})]})]}),(0,b.jsxs)("div",{className:`${nt.canvasToggle} ${f?nt.active:""}`,onClick:()=>y(!f),children:[(0,b.jsx)("span",{className:nt.canvasToggleIcon,children:(0,b.jsxs)("svg",{viewBox:"0 0 14 14",width:"14",height:"14",fill:"none",children:[(0,b.jsx)("rect",{x:"1",y:"1",width:"12",height:"12",rx:"2",stroke:"currentColor",strokeWidth:"1"}),(0,b.jsx)("circle",{cx:"4.5",cy:"4.5",r:"0.8",fill:"currentColor",opacity:".6"}),(0,b.jsx)("circle",{cx:"7",cy:"4.5",r:"0.8",fill:"currentColor",opacity:".6"}),(0,b.jsx)("circle",{cx:"9.5",cy:"4.5",r:"0.8",fill:"currentColor",opacity:".6"}),(0,b.jsx)("circle",{cx:"4.5",cy:"7",r:"0.8",fill:"currentColor",opacity:".6"}),(0,b.jsx)("circle",{cx:"7",cy:"7",r:"0.8",fill:"currentColor",opacity:".6"}),(0,b.jsx)("circle",{cx:"9.5",cy:"7",r:"0.8",fill:"currentColor",opacity:".6"}),(0,b.jsx)("circle",{cx:"4.5",cy:"9.5",r:"0.8",fill:"currentColor",opacity:".6"}),(0,b.jsx)("circle",{cx:"7",cy:"9.5",r:"0.8",fill:"currentColor",opacity:".6"}),(0,b.jsx)("circle",{cx:"9.5",cy:"9.5",r:"0.8",fill:"currentColor",opacity:".6"})]})}),(0,b.jsx)("span",{className:nt.canvasToggleLabel,children:"Wireframe New Page"})]}),(0,b.jsx)("div",{className:`${nt.wireframePurposeWrap} ${f?"":nt.collapsed}`,children:(0,b.jsx)("div",{className:nt.wireframePurposeInner,children:(0,b.jsx)("textarea",{className:nt.wireframePurposeInput,placeholder:"Describe this page to provide additional context for your agent.",value:v,onChange:he=>_(he.target.value),rows:2})})}),(0,b.jsx)(wbe,{activeType:e,onSelect:t,onDragStart:p,scrollRef:ne,fadeClass:Me,blankCanvas:f}),z&&(0,b.jsx)("div",{className:`${nt.paletteFooterWrap} ${F?nt.footerHidden:""}`,children:(0,b.jsx)("div",{className:nt.paletteFooterInner,children:(0,b.jsx)("div",{className:nt.paletteFooterInnerContent,children:(0,b.jsxs)("div",{className:nt.paletteFooter,children:[(0,b.jsx)("span",{className:nt.paletteFooterCount,children:(0,b.jsx)(Mbe,{value:J.current,suffix:Z.current})}),(0,b.jsx)("button",{className:nt.paletteFooterClear,onClick:d,children:"Clear"})]})})})})]})}function o4(e){if(e.parentElement)return e.parentElement;const t=e.getRootNode();return t instanceof ShadowRoot?t.host:null}function xo(e,t){let n=e;for(;n;){if(n.matches(t))return n;n=o4(n)}return null}function Cbe(e,t=4){const n=[];let r=e,i=0;for(;r&&ip.length>2&&!p.match(/^[a-z]{1,2}$/)&&!p.match(/[A-Z0-9]{5,}/));d&&(l=`.${d.split("_")[0]}`)}const u=o4(r);!r.parentElement&&u&&(l=`⟨shadow⟩ ${l}`),n.unshift(l),r=u,i++}return n.join(" > ")}function Jy(e){const t=Cbe(e);if(e.dataset.element)return{name:e.dataset.element,path:t};const n=e.tagName.toLowerCase();if(["path","circle","rect","line","g"].includes(n)){const r=xo(e,"svg");if(r){const i=o4(r);if(i instanceof HTMLElement)return{name:`graphic in ${Jy(i).name}`,path:t}}return{name:"graphic element",path:t}}if(n==="svg"){const r=o4(e);if(r?.tagName.toLowerCase()==="button"){const i=r.textContent?.trim();return{name:i?`icon in "${i}" button`:"button icon",path:t}}return{name:"icon",path:t}}if(n==="button"){const r=e.textContent?.trim(),i=e.getAttribute("aria-label");return i?{name:`button [${i}]`,path:t}:{name:r?`button "${r.slice(0,25)}"`:"button",path:t}}if(n==="a"){const r=e.textContent?.trim(),i=e.getAttribute("href");return r?{name:`link "${r.slice(0,25)}"`,path:t}:i?{name:`link to ${i.slice(0,30)}`,path:t}:{name:"link",path:t}}if(n==="input"){const r=e.getAttribute("type")||"text",i=e.getAttribute("placeholder"),s=e.getAttribute("name");return i?{name:`input "${i}"`,path:t}:s?{name:`input [${s}]`,path:t}:{name:`${r} input`,path:t}}if(["h1","h2","h3","h4","h5","h6"].includes(n)){const r=e.textContent?.trim();return{name:r?`${n} "${r.slice(0,35)}"`:n,path:t}}if(n==="p"){const r=e.textContent?.trim();return r?{name:`paragraph: "${r.slice(0,40)}${r.length>40?"...":""}"`,path:t}:{name:"paragraph",path:t}}if(n==="span"||n==="label"){const r=e.textContent?.trim();return r&&r.length<40?{name:`"${r}"`,path:t}:{name:n,path:t}}if(n==="li"){const r=e.textContent?.trim();return r&&r.length<40?{name:`list item: "${r.slice(0,35)}"`,path:t}:{name:"list item",path:t}}if(n==="blockquote")return{name:"blockquote",path:t};if(n==="code"){const r=e.textContent?.trim();return r&&r.length<30?{name:`code: \`${r}\``,path:t}:{name:"code",path:t}}if(n==="pre")return{name:"code block",path:t};if(n==="img"){const r=e.getAttribute("alt");return{name:r?`image "${r.slice(0,30)}"`:"image",path:t}}if(n==="video")return{name:"video",path:t};if(["div","section","article","nav","header","footer","aside","main"].includes(n)){const r=e.className,i=e.getAttribute("role"),s=e.getAttribute("aria-label");if(s)return{name:`${n} [${s}]`,path:t};if(i)return{name:`${i}`,path:t};if(typeof r=="string"&&r){const l=r.split(/[\s_-]+/).map(u=>u.replace(/[A-Z0-9]{5,}.*$/,"")).filter(u=>u.length>2&&!/^[a-z]{1,2}$/.test(u)).slice(0,2);if(l.length>0)return{name:l.join(" "),path:t}}return{name:n==="div"?"container":n,path:t}}return{name:n,path:t}}function Eg(e){const t=[],n=e.textContent?.trim();n&&n.length<100&&t.push(n);const r=e.previousElementSibling;if(r){const s=r.textContent?.trim();s&&s.length<50&&t.unshift(`[before: "${s.slice(0,40)}"]`)}const i=e.nextElementSibling;if(i){const s=i.textContent?.trim();s&&s.length<50&&t.push(`[after: "${s.slice(0,40)}"]`)}return t.join(" ")}function v7(e){const t=o4(e);if(!t)return"";const n=(e.getRootNode()instanceof ShadowRoot&&e.parentElement?Array.from(e.parentElement.children):Array.from(t.children)).filter(u=>u!==e&&u instanceof HTMLElement);if(n.length===0)return"";const r=n.slice(0,4).map(u=>{const d=u.tagName.toLowerCase(),p=u.className;let f="";if(typeof p=="string"&&p){const y=p.split(/\s+/).map(v=>v.replace(/[_][a-zA-Z0-9]{5,}.*$/,"")).find(v=>v.length>2&&!/^[a-z]{1,2}$/.test(v));y&&(f=`.${y}`)}if(d==="button"||d==="a"){const y=u.textContent?.trim().slice(0,15);if(y)return`${d}${f} "${y}"`}return`${d}${f}`});let i=t.tagName.toLowerCase();if(typeof t.className=="string"&&t.className){const u=t.className.split(/\s+/).map(d=>d.replace(/[_][a-zA-Z0-9]{5,}.*$/,"")).find(d=>d.length>2&&!/^[a-z]{1,2}$/.test(d));u&&(i=`.${u}`)}const s=t.children.length,l=s>r.length+1?` (${s} total in ${i})`:"";return r.join(", ")+l}function Tg(e){const t=e.className;return typeof t!="string"||!t?"":t.split(/\s+/).filter(n=>n.length>0).map(n=>{const r=n.match(/^([a-zA-Z][a-zA-Z0-9_-]*?)(?:_[a-zA-Z0-9]{5,})?$/);return r?r[1]:n}).filter((n,r,i)=>i.indexOf(n)===r).join(", ")}var j2e=new Set(["none","normal","auto","0px","rgba(0, 0, 0, 0)","transparent","static","visible"]),Ebe=new Set(["p","span","h1","h2","h3","h4","h5","h6","label","li","td","th","blockquote","figcaption","caption","legend","dt","dd","pre","code","em","strong","b","i","a","time","cite","q"]),Tbe=new Set(["input","textarea","select"]),Abe=new Set(["img","video","canvas","svg"]),Nbe=new Set(["div","section","article","nav","header","footer","aside","main","ul","ol","form","fieldset"]);function _7(e){if(typeof window>"u")return{};const t=window.getComputedStyle(e),n={},r=e.tagName.toLowerCase();let i;Ebe.has(r)?i=["color","fontSize","fontWeight","fontFamily","lineHeight"]:r==="button"||r==="a"&&e.getAttribute("role")==="button"?i=["backgroundColor","color","padding","borderRadius","fontSize"]:Tbe.has(r)?i=["backgroundColor","color","padding","borderRadius","fontSize"]:Abe.has(r)?i=["width","height","objectFit","borderRadius"]:Nbe.has(r)?i=["display","padding","margin","gap","backgroundColor"]:i=["color","fontSize","margin","padding","backgroundColor"];for(const s of i){const l=s.replace(/([A-Z])/g,"-$1").toLowerCase(),u=t.getPropertyValue(l);u&&!j2e.has(u)&&(n[s]=u)}return n}var Lbe=["color","backgroundColor","borderColor","fontSize","fontWeight","fontFamily","lineHeight","letterSpacing","textAlign","width","height","padding","margin","border","borderRadius","display","position","top","right","bottom","left","zIndex","flexDirection","justifyContent","alignItems","gap","opacity","visibility","overflow","boxShadow","transform"];function k7(e){if(typeof window>"u")return"";const t=window.getComputedStyle(e),n=[];for(const r of Lbe){const i=r.replace(/([A-Z])/g,"-$1").toLowerCase(),s=t.getPropertyValue(i);s&&!j2e.has(s)&&n.push(`${i}: ${s}`)}return n.join("; ")}function Ibe(e){if(!e)return;const t={},n=e.split(";").map(r=>r.trim()).filter(Boolean);for(const r of n){const i=r.indexOf(":");if(i>0){const s=r.slice(0,i).trim(),l=r.slice(i+1).trim();s&&l&&(t[s]=l)}}return Object.keys(t).length>0?t:void 0}function b7(e){const t=[],n=e.getAttribute("role"),r=e.getAttribute("aria-label"),i=e.getAttribute("aria-describedby"),s=e.getAttribute("tabindex"),l=e.getAttribute("aria-hidden");return n&&t.push(`role="${n}"`),r&&t.push(`aria-label="${r}"`),i&&t.push(`aria-describedby="${i}"`),s&&t.push(`tabindex=${s}`),l==="true"&&t.push("aria-hidden"),e.matches("a, button, input, select, textarea, [tabindex]")&&t.push("focusable"),t.join(", ")}function x7(e){const t=[];let n=e;for(;n&&n.tagName.toLowerCase()!=="html";){const r=n.tagName.toLowerCase();let i=r;if(n.id)i=`${r}#${n.id}`;else if(n.className&&typeof n.className=="string"){const l=n.className.split(/\s+/).map(u=>u.replace(/[_][a-zA-Z0-9]{5,}.*$/,"")).find(u=>u.length>2);l&&(i=`${r}.${l}`)}const s=o4(n);!n.parentElement&&s&&(i=`⟨shadow⟩ ${i}`),t.unshift(i),n=s}return t.join(" > ")}var Rbe=new Set(["nav","header","main","section","article","footer","aside"]),OQ={banner:"Header",navigation:"Navigation",main:"Main Content",contentinfo:"Footer",complementary:"Sidebar",region:"Section"},nce={nav:"Navigation",header:"Header",main:"Main Content",section:"Section",article:"Article",footer:"Footer",aside:"Sidebar"},Dbe=new Set(["script","style","noscript","link","meta"]),Obe=40;function q2e(e){let t=e;for(;t&&t!==document.body&&t!==document.documentElement;){const n=window.getComputedStyle(t).position;if(n==="fixed"||n==="sticky")return!0;t=t.parentElement}return!1}function pm(e){const t=e.tagName.toLowerCase();if(["nav","header","footer","main"].includes(t)&&document.querySelectorAll(t).length===1)return t;if(e.id)return`#${CSS.escape(e.id)}`;if(e.className&&typeof e.className=="string"){const r=e.className.split(/\s+/).filter(i=>i.length>0).find(i=>i.length>2&&!/^[a-zA-Z0-9]{6,}$/.test(i)&&!/^[a-z]{1,2}$/.test(i));if(r){const i=`${t}.${CSS.escape(r)}`;if(document.querySelectorAll(i).length===1)return i}}const n=e.parentElement;if(n){const r=Array.from(n.children).indexOf(e)+1;return`${n===document.body?"body":pm(n)} > ${t}:nth-child(${r})`}return t}function HV(e){const t=e.tagName.toLowerCase(),n=e.getAttribute("aria-label");if(n)return n;const r=e.getAttribute("role");if(r&&OQ[r])return OQ[r];if(nce[t])return nce[t];const i=e.querySelector("h1, h2, h3, h4, h5, h6");if(i){const l=i.textContent?.trim();if(l&&l.length<=50)return l;if(l)return l.slice(0,47)+"..."}const{name:s}=Jy(e);return s.charAt(0).toUpperCase()+s.slice(1)}function F2e(e){const t=e.className;return typeof t!="string"||!t?null:t.split(/\s+/).map(n=>n.replace(/[_][a-zA-Z0-9]{5,}.*$/,"")).find(n=>n.length>2&&!/^[a-z]{1,2}$/.test(n))||null}function U2e(e){const t=e.textContent?.trim();if(!t)return null;const n=t.replace(/\s+/g," ");return n.length<=30?n:n.slice(0,30)+"…"}function zbe(){const e=document.querySelector("main")||document.body,t=Array.from(e.children);let n=t;e!==document.body&&t.length<3&&(n=Array.from(document.body.children));const r=[];return n.forEach((i,s)=>{if(!(i instanceof HTMLElement))return;const l=i.tagName.toLowerCase();if(Dbe.has(l)||i.hasAttribute("data-feedback-toolbar")||i.closest("[data-feedback-toolbar]"))return;const u=window.getComputedStyle(i);if(u.display==="none"||u.visibility==="hidden")return;const d=i.getBoundingClientRect();if(d.height=60;if(!p&&!f&&!y)return;const v=window.scrollY,_=q2e(i),x={x:d.x,y:_?d.y:d.y+v,width:d.width,height:d.height};r.push({id:`rs-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,label:HV(i),tagName:l,selector:pm(i),role:i.getAttribute("role"),className:F2e(i),textSnippet:U2e(i),originalRect:x,currentRect:{...x},originalIndex:s,isFixed:_})}),r}function Pbe(e){const t=window.scrollY,n=e.getBoundingClientRect(),r=q2e(e),i={x:n.x,y:r?n.y:n.y+t,width:n.width,height:n.height},s=e.parentElement;let l=0;return s&&(l=Array.from(s.children).indexOf(e)),{id:`rs-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,label:HV(e),tagName:e.tagName.toLowerCase(),selector:pm(e),role:e.getAttribute("role"),className:F2e(e),textSnippet:U2e(e),originalRect:i,currentRect:{...i},originalIndex:l,isFixed:r}}var rce={bg:"rgba(59, 130, 246, 0.08)",border:"rgba(59, 130, 246, 0.5)",pill:"#3b82f6"},ace=["nw","n","ne","e","se","s","sw","w"],w7=24,ice=16,M7=5;function oce(e,t,n,r){let i=1/0,s=1/0;const l=e.x,u=e.x+e.width,d=e.x+e.width/2,p=e.y,f=e.y+e.height,y=e.y+e.height/2,v=[];for(const J of t)n.has(J.id)||v.push(J.currentRect);r&&v.push(...r);for(const J of v){const Z=J.x,ce=J.x+J.width,V=J.x+J.width/2,ne=J.y,Me=J.y+J.height,ue=J.y+J.height/2;for(const de of[l,u,d])for(const Re of[Z,ce,V]){const se=Re-de;Math.abs(se)=ice&&n.height>=ice)return t;t=t.parentElement}return null}function $be({rearrangeState:e,onChange:t,isDarkMode:n,exiting:r,className:i,blankCanvas:s,extraSnapRects:l,onSelectionChange:u,deselectSignal:d,onDragMove:p,onDragEnd:f,clearSignal:y}){const{sections:v}=e,_=(0,w.useRef)(e);_.current=e;const[x,E]=(0,w.useState)(new Set),[T,C]=(0,w.useState)(!1),I=(0,w.useRef)(y);(0,w.useEffect)(()=>{y!==void 0&&y!==I.current&&(I.current=y,v.length>0&&C(!0))},[y,v.length]);const z=(0,w.useRef)(d);(0,w.useEffect)(()=>{d!==z.current&&(z.current=d,E(new Set))},[d]);const[P,F]=(0,w.useState)(null),[$,J]=(0,w.useState)(!1),Z=(0,w.useRef)(!1),ce=(0,w.useCallback)(xe=>{const Ie=v.find(Ue=>Ue.id===xe);Ie&&(Z.current=!!Ie.note,F(xe),J(!1))},[v]),V=(0,w.useCallback)(()=>{P&&(J(!0),Nn(()=>{F(null),J(!1)},150))},[P]),ne=(0,w.useCallback)(xe=>{P&&(t({...e,sections:v.map(Ie=>Ie.id===P?{...Ie,note:xe.trim()||void 0}:Ie)}),V())},[P,v,e,t,V]);(0,w.useEffect)(()=>{r&&P&&V()},[r]);const[Me,ue]=(0,w.useState)(new Set),de=(0,w.useRef)(new Map),[Re,se]=(0,w.useState)(null),[he,re]=(0,w.useState)(null),[Be,Y]=(0,w.useState)([]),[Ot,oe]=(0,w.useState)(0),W=(0,w.useRef)(null),Ze=(0,w.useRef)(new Set),He=(0,w.useRef)(new Map),[yt,It]=(0,w.useState)(new Map),[it,Gt]=(0,w.useState)(new Map),Ht=(0,w.useRef)(new Set),en=(0,w.useRef)(new Map),Ve=(0,w.useRef)(u);Ve.current=u;const ut=(0,w.useRef)(p);ut.current=p;const zn=(0,w.useRef)(f);zn.current=f,(0,w.useEffect)(()=>{s&&E(new Set)},[s]);const[ar,xr]=(0,w.useState)(()=>!e.sections.some(xe=>{const Ie=xe.originalRect,Ue=xe.currentRect;return Math.abs(Ie.x-Ue.x)>1||Math.abs(Ie.y-Ue.y)>1||Math.abs(Ie.width-Ue.width)>1||Math.abs(Ie.height-Ue.height)>1}));(0,w.useEffect)(()=>{if(!ar){const xe=Nn(()=>xr(!0),380);return()=>clearTimeout(xe)}},[]);const wn=(0,w.useRef)(new Set);(0,w.useEffect)(()=>{wn.current=new Set(v.map(xe=>xe.selector))},[v]),(0,w.useEffect)(()=>{const xe=()=>oe(window.scrollY);return xe(),window.addEventListener("scroll",xe,{passive:!0}),window.addEventListener("resize",xe,{passive:!0}),()=>{window.removeEventListener("scroll",xe),window.removeEventListener("resize",xe)}},[]),(0,w.useEffect)(()=>{const xe=Ie=>{if(W.current){se(null);return}const Ue=document.elementFromPoint(Ie.clientX,Ie.clientY);if(!Ue){se(null);return}if(Ue.closest("[data-feedback-toolbar]")){se(null);return}if(Ue.closest("[data-design-placement]")){se(null);return}if(Ue.closest("[data-annotation-popup]")){se(null);return}const rt=sce(Ue);if(!rt){se(null);return}for(const Ut of wn.current)try{const st=document.querySelector(Ut);if(st&&(st===rt||rt.contains(st))){se(null);return}}catch{}const _t=rt.getBoundingClientRect();se({x:_t.x,y:_t.y,w:_t.width,h:_t.height})};return document.addEventListener("mousemove",xe,{passive:!0}),()=>document.removeEventListener("mousemove",xe)},[v]),(0,w.useEffect)(()=>{const xe=document.body.style.userSelect;return document.body.style.userSelect="none",()=>{document.body.style.userSelect=xe}},[]),(0,w.useEffect)(()=>{const xe=Ie=>{if(W.current||Ie.button!==0)return;const Ue=Ie.target;if(!Ue||Ue.closest("[data-feedback-toolbar]")||Ue.closest("[data-design-placement]")||Ue.closest("[data-annotation-popup]"))return;const rt=sce(Ue);let _t=!1;if(rt)for(const st of wn.current)try{const tn=document.querySelector(st);if(tn&&(tn===rt||rt.contains(tn))){_t=!0;break}}catch{}const Ut=!!(Ie.shiftKey||Ie.metaKey||Ie.ctrlKey);if(rt&&!_t){Ie.preventDefault(),Ie.stopPropagation();const st=Pbe(rt),tn=[...v,st],Mn=[...e.originalOrder,st.id];t({...e,sections:tn,originalOrder:Mn});const H=new Set([st.id]);E(H),Ve.current?.(H,Ut),se(null);const Te=Ie.clientX,qe=Ie.clientY,tt={x:st.currentRect.x,y:st.currentRect.y};st.originalRect;let ot=!1,Zt=0,ct=0;W.current="move";const kt=Fe=>{const vt=Fe.clientX-Te,Wt=Fe.clientY-qe;if(!ot&&(Math.abs(vt)>2||Math.abs(Wt)>2)&&(ot=!0),!ot)return;const ir=oce({x:tt.x+vt,y:tt.y+Wt,width:st.currentRect.width,height:st.currentRect.height},tn,new Set([st.id]),l);Y(ir.guides);const Kn=vt+ir.dx,Jt=Wt+ir.dy;Zt=Kn,ct=Jt;const Rt=document.querySelector(`[data-rearrange-section="${st.id}"]`);Rt&&(Rt.style.transform=`translate(${Kn}px, ${Jt}px)`),It(new Map([[st.id,{x:tt.x+Kn,y:tt.y+Jt,width:st.currentRect.width,height:st.currentRect.height}]])),ut.current?.(Kn,Jt)},Q=()=>{window.removeEventListener("mousemove",kt),window.removeEventListener("mouseup",Q),W.current=null,Y([]),It(new Map);const Fe=document.querySelector(`[data-rearrange-section="${st.id}"]`);Fe&&(Fe.style.transform=""),ot&&t({...e,sections:tn.map(vt=>vt.id===st.id?{...vt,currentRect:{...vt.currentRect,x:Math.max(0,tt.x+Zt),y:Math.max(0,tt.y+ct)}}:vt),originalOrder:Mn}),zn.current?.(Zt,ct,ot)};window.addEventListener("mousemove",kt),window.addEventListener("mouseup",Q)}else if(_t&&rt){Ie.preventDefault();for(const st of v)try{const tn=document.querySelector(st.selector);if(tn&&tn===rt){const Mn=new Set([st.id]);E(Mn),Ve.current?.(Mn,Ut);return}}catch{}Ut||(E(new Set),Ve.current?.(new Set,!1))}else Ut||(E(new Set),Ve.current?.(new Set,!1))};return document.addEventListener("mousedown",xe,!0),()=>document.removeEventListener("mousedown",xe,!0)},[v,e,t]),(0,w.useEffect)(()=>{const xe=Ie=>{const Ue=Ie.target;if(!(Ue.tagName==="INPUT"||Ue.tagName==="TEXTAREA"||Ue.isContentEditable)){if((Ie.key==="Backspace"||Ie.key==="Delete")&&x.size>0){Ie.preventDefault();const rt=new Set(x);ue(_t=>{const Ut=new Set(_t);for(const st of rt)Ut.add(st);return Ut}),E(new Set),Nn(()=>{const _t=_.current;t({..._t,sections:_t.sections.filter(Ut=>!rt.has(Ut.id)),originalOrder:_t.originalOrder.filter(Ut=>!rt.has(Ut))}),ue(Ut=>{const st=new Set(Ut);for(const tn of rt)st.delete(tn);return st})},180);return}if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(Ie.key)&&x.size>0){Ie.preventDefault();const rt=Ie.shiftKey?20:1,_t=Ie.key==="ArrowLeft"?-rt:Ie.key==="ArrowRight"?rt:0,Ut=Ie.key==="ArrowUp"?-rt:Ie.key==="ArrowDown"?rt:0;t({...e,sections:v.map(st=>x.has(st.id)?{...st,currentRect:{...st.currentRect,x:Math.max(0,st.currentRect.x+_t),y:Math.max(0,st.currentRect.y+Ut)}}:st)});return}Ie.key==="Escape"&&x.size>0&&E(new Set)}};return document.addEventListener("keydown",xe),()=>document.removeEventListener("keydown",xe)},[x,v,e,t]);const Ye=(0,w.useCallback)((xe,Ie)=>{if(xe.button!==0)return;const Ue=xe.target;if(Ue.closest(`.${nt.handle}`)||Ue.closest(`.${nt.deleteButton}`))return;xe.preventDefault(),xe.stopPropagation();let rt;xe.shiftKey||xe.metaKey||xe.ctrlKey?(rt=new Set(x),rt.has(Ie)?rt.delete(Ie):rt.add(Ie)):x.has(Ie)?rt=new Set(x):rt=new Set([Ie]),E(rt),(rt.size!==x.size||[...rt].some(ot=>!x.has(ot)))&&Ve.current?.(rt,!!(xe.shiftKey||xe.metaKey||xe.ctrlKey));const _t=xe.clientX,Ut=xe.clientY,st=new Map;for(const ot of v)rt.has(ot.id)&&st.set(ot.id,{x:ot.currentRect.x,y:ot.currentRect.y});W.current="move";let tn=!1,Mn=0,H=0;const Te=new Map;for(const ot of v)if(rt.has(ot.id)){const Zt=document.querySelector(`[data-rearrange-section="${ot.id}"]`);Te.set(ot.id,{outlineEl:Zt,curW:ot.currentRect.width,curH:ot.currentRect.height})}const qe=ot=>{const Zt=ot.clientX-_t,ct=ot.clientY-Ut;if(Zt===0&&ct===0)return;tn=!0;let kt=1/0,Q=1/0,Fe=-1/0,vt=-1/0;for(const[Rt,{curW:fn,curH:Hr}]of Te){const Mr=st.get(Rt);if(!Mr)continue;const jr=Mr.x+Zt,zo=Mr.y+ct;kt=Math.min(kt,jr),Q=Math.min(Q,zo),Fe=Math.max(Fe,jr+fn),vt=Math.max(vt,zo+Hr)}const Wt=oce({x:kt,y:Q,width:Fe-kt,height:vt-Q},v,rt,l),ir=Zt+Wt.dx,Kn=ct+Wt.dy;Mn=ir,H=Kn,Y(Wt.guides);for(const[,{outlineEl:Rt}]of Te)Rt&&(Rt.style.transform=`translate(${ir}px, ${Kn}px)`);const Jt=new Map;for(const[Rt,{curW:fn,curH:Hr}]of Te){const Mr=st.get(Rt);if(Mr){const jr={x:Math.max(0,Mr.x+ir),y:Math.max(0,Mr.y+Kn),width:fn,height:Hr};Jt.set(Rt,jr)}}It(Jt),ut.current?.(ir,Kn)},tt=ot=>{window.removeEventListener("mousemove",qe),window.removeEventListener("mouseup",tt),W.current=null,Y([]),It(new Map);for(const[,{outlineEl:Zt}]of Te)Zt&&(Zt.style.transform="");if(tn){const Zt=ot.clientX-_t,ct=ot.clientY-Ut;if(Math.abs(Zt)<5&&Math.abs(ct)<5)t({...e,sections:v.map(kt=>{const Q=st.get(kt.id);return Q?{...kt,currentRect:{...kt.currentRect,x:Q.x,y:Q.y}}:kt})});else{t({...e,sections:v.map(kt=>{const Q=st.get(kt.id);return Q?{...kt,currentRect:{...kt.currentRect,x:Math.max(0,Q.x+Mn),y:Math.max(0,Q.y+H)}}:kt})}),zn.current?.(Mn,H,!0);return}}zn.current?.(0,0,!1)};window.addEventListener("mousemove",qe),window.addEventListener("mouseup",tt)},[x,v,e,t]),$t=(0,w.useCallback)((xe,Ie,Ue)=>{xe.preventDefault(),xe.stopPropagation();const rt=v.find(tt=>tt.id===Ie);if(!rt)return;E(new Set([Ie])),W.current="resize";const _t=xe.clientX,Ut=xe.clientY,st={...rt.currentRect};rt.originalRect;const tn=st.width/st.height;let Mn={...st};const H=document.querySelector(`[data-rearrange-section="${Ie}"]`),Te=tt=>{const ot=tt.clientX-_t,Zt=tt.clientY-Ut;let ct=st.x,kt=st.y,Q=st.width,Fe=st.height;Ue.includes("e")&&(Q=Math.max(w7,st.width+ot)),Ue.includes("w")&&(Q=Math.max(w7,st.width-ot),ct=st.x+st.width-Q),Ue.includes("s")&&(Fe=Math.max(w7,st.height+Zt)),Ue.includes("n")&&(Fe=Math.max(w7,st.height-Zt),kt=st.y+st.height-Fe),tt.shiftKey&&(Ue.length===2?(Math.abs(Q-st.width)>Math.abs(Fe-st.height)?Fe=Q/tn:Q=Fe*tn,Ue.includes("w")&&(ct=st.x+st.width-Q),Ue.includes("n")&&(kt=st.y+st.height-Fe)):(Ue==="e"||Ue==="w"?Fe=Q/tn:Q=Fe*tn,Ue==="w"&&(ct=st.x+st.width-Q),Ue==="n"&&(kt=st.y+st.height-Fe))),Mn={x:ct,y:kt,width:Q,height:Fe},H&&(H.style.left=`${ct}px`,H.style.top=`${kt-Ot}px`,H.style.width=`${Q}px`,H.style.height=`${Fe}px`),re({x:tt.clientX+12,y:tt.clientY+12,text:`${Math.round(Q)} × ${Math.round(Fe)}`}),It(new Map([[Ie,Mn]]))},qe=()=>{window.removeEventListener("mousemove",Te),window.removeEventListener("mouseup",qe),re(null),W.current=null,It(new Map),t({...e,sections:v.map(tt=>tt.id===Ie?{...tt,currentRect:Mn}:tt)})};window.addEventListener("mousemove",Te),window.addEventListener("mouseup",qe)},[v,e,t,Ot]),ft=(0,w.useCallback)(xe=>{ue(Ie=>{const Ue=new Set(Ie);return Ue.add(xe),Ue}),E(Ie=>{const Ue=new Set(Ie);return Ue.delete(xe),Ue}),Nn(()=>{const Ie=_.current;t({...Ie,sections:Ie.sections.filter(Ue=>Ue.id!==xe),originalOrder:Ie.originalOrder.filter(Ue=>Ue!==xe)}),ue(Ue=>{const rt=new Set(Ue);return rt.delete(xe),rt})},180)},[t]),wt=xe=>{const Ie=xe.originalRect,Ue=xe.currentRect;return Math.abs(Ie.x-Ue.x)>1||Math.abs(Ie.y-Ue.y)>1||Math.abs(Ie.width-Ue.width)>1||Math.abs(Ie.height-Ue.height)>1},et=xe=>{const Ie=xe.originalRect,Ue=xe.currentRect;return Math.abs(Ie.x-Ue.x)>1||Math.abs(Ie.y-Ue.y)>1},St=xe=>{const Ie=xe.originalRect,Ue=xe.currentRect;return Math.abs(Ie.width-Ue.width)>1||Math.abs(Ie.height-Ue.height)>1};for(const xe of v)He.current.has(xe.id)||(et(xe)?He.current.set(xe.id,"move"):St(xe)&&He.current.set(xe.id,"resize"));for(const xe of He.current.keys())v.some(Ie=>Ie.id===xe)||He.current.delete(xe);const Kt=v.filter(xe=>{try{if(Me.has(xe.id)||x.has(xe.id))return!0;const Ie=document.querySelector(xe.selector);if(!Ie)return!1;const Ue=Ie.getBoundingClientRect(),rt=xe.originalRect;return Math.abs(Ue.width-rt.width)+Math.abs(Ue.height-rt.height)<200}catch{return!1}}),on=Kt.filter(xe=>wt(xe)),De=Kt.filter(xe=>!wt(xe)),ze=new Set(on.map(xe=>xe.id));for(const xe of Ze.current)ze.has(xe)||Ze.current.delete(xe);const Xe=[...ze].sort().join(",");for(const xe of on)en.current.set(xe.id,{currentRect:xe.currentRect,originalRect:xe.originalRect,isFixed:xe.isFixed});return(0,w.useEffect)(()=>{const xe=Ht.current;Ht.current=ze;const Ie=new Map;for(const Ue of xe)if(!ze.has(Ue)){if(!v.some(_t=>_t.id===Ue))continue;const rt=en.current.get(Ue);rt&&(Ie.set(Ue,{orig:rt.originalRect,target:rt.currentRect,isFixed:rt.isFixed}),en.current.delete(Ue))}if(Ie.size>0){Gt(rt=>{const _t=new Map(rt);for(const[Ut,st]of Ie)_t.set(Ut,st);return _t});const Ue=Nn(()=>{Gt(rt=>{const _t=new Map(rt);for(const Ut of Ie.keys())_t.delete(Ut);return _t})},250);return()=>clearTimeout(Ue)}},[Xe,v]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:`${nt.rearrangeOverlay} ${n?"":nt.light} ${r?nt.overlayExiting:""}${i?` ${i}`:""}`,"data-feedback-toolbar":!0,children:[Re&&(0,b.jsx)("div",{className:nt.hoverHighlight,style:{left:Re.x,top:Re.y,width:Re.w,height:Re.h}}),De.map(xe=>{const Ie=xe.currentRect,Ue=xe.isFixed?Ie.y:Ie.y-Ot,rt=rce,_t=x.has(xe.id);return(0,b.jsxs)("div",{"data-rearrange-section":xe.id,className:`${nt.sectionOutline} ${_t?nt.selected:""} ${T||r||Me.has(xe.id)?nt.exiting:""}`,style:{left:Ie.x,top:Ue,width:Ie.width,height:Ie.height,borderColor:rt.border,backgroundColor:rt.bg,...ar?{}:{opacity:0,animation:"none",transition:"none"}},onMouseDown:Ut=>Ye(Ut,xe.id),onDoubleClick:()=>ce(xe.id),children:[(0,b.jsx)("span",{className:nt.sectionLabel,style:{backgroundColor:rt.pill},children:xe.label}),(0,b.jsx)("span",{className:`${nt.sectionAnnotation} ${xe.note?nt.annotationVisible:""}`,children:(xe.note&&de.current.set(xe.id,xe.note),xe.note||de.current.get(xe.id)||"")}),(0,b.jsxs)("span",{className:nt.sectionDimensions,children:[Math.round(Ie.width)," × ",Math.round(Ie.height)]}),(0,b.jsx)("div",{className:nt.deleteButton,onMouseDown:Ut=>Ut.stopPropagation(),onClick:()=>ft(xe.id),children:"✕"}),ace.map(Ut=>(0,b.jsx)("div",{className:`${nt.handle} ${nt[`handle${Ut.charAt(0).toUpperCase()}${Ut.slice(1)}`]}`,onMouseDown:st=>$t(st,xe.id,Ut)},Ut))]},xe.id)}),on.map(xe=>{const Ie=xe.currentRect,Ue=xe.isFixed?Ie.y:Ie.y-Ot,rt=x.has(xe.id),_t=et(xe),Ut=St(xe);if(s&&!rt)return null;const st=!Ze.current.has(xe.id);return st&&Ze.current.add(xe.id),(0,b.jsxs)("div",{"data-rearrange-section":xe.id,className:`${nt.ghostOutline} ${rt?nt.selected:""} ${T||r||Me.has(xe.id)?nt.exiting:""}`,style:{left:Ie.x,top:Ue,width:Ie.width,height:Ie.height,...ar?{}:{opacity:0,animation:"none",transition:"none"},...st?{}:{animation:"none"}},onMouseDown:tn=>Ye(tn,xe.id),onDoubleClick:()=>ce(xe.id),children:[(0,b.jsx)("span",{className:nt.sectionLabel,style:{backgroundColor:rce.pill},children:xe.label}),(0,b.jsx)("span",{className:`${nt.sectionAnnotation} ${xe.note?nt.annotationVisible:""}`,children:(xe.note&&de.current.set(xe.id,xe.note),xe.note||de.current.get(xe.id)||"")}),(0,b.jsxs)("span",{className:nt.sectionDimensions,children:[Math.round(Ie.width)," × ",Math.round(Ie.height)]}),(0,b.jsx)("div",{className:nt.deleteButton,onMouseDown:tn=>tn.stopPropagation(),onClick:()=>ft(xe.id),children:"✕"}),ace.map(tn=>(0,b.jsx)("div",{className:`${nt.handle} ${nt[`handle${tn.charAt(0).toUpperCase()}${tn.slice(1)}`]}`,onMouseDown:Mn=>$t(Mn,xe.id,tn)},tn)),(0,b.jsx)("span",{className:nt.ghostBadge,children:(()=>{const tn=He.current.get(xe.id);if(_t&&Ut){const[Mn,H]=tn==="resize"?["Resize","Move"]:["Move","Resize"];return(0,b.jsxs)(b.Fragment,{children:["Suggested ",Mn," ",(0,b.jsxs)("span",{className:nt.ghostBadgeExtra,children:["& ",H]})]})}return`Suggested ${Ut?"Resize":"Move"}`})()})]},xe.id)})]}),!s&&(()=>{const xe=[];for(const Ie of on){const Ue=yt.get(Ie.id);xe.push({id:Ie.id,orig:Ie.originalRect,target:Ue||Ie.currentRect,isFixed:Ie.isFixed,isSelected:x.has(Ie.id),isExiting:Me.has(Ie.id)})}for(const[Ie,Ue]of yt)if(!xe.some(rt=>rt.id===Ie)){const rt=v.find(_t=>_t.id===Ie);rt&&xe.push({id:Ie,orig:rt.originalRect,target:Ue,isFixed:rt.isFixed,isSelected:x.has(Ie)})}for(const[Ie,Ue]of it)xe.some(rt=>rt.id===Ie)||xe.push({id:Ie,orig:Ue.orig,target:Ue.target,isFixed:Ue.isFixed,isSelected:!1,isExiting:!0});return xe.length===0?null:(0,b.jsxs)("svg",{className:`${nt.connectorSvg} ${T||r?nt.connectorExiting:""}`,children:[xe.map(({id:Ie,orig:Ue,target:rt,isFixed:_t,isSelected:Ut,isExiting:st})=>{const tn=Ue.x+Ue.width/2,Mn=(_t?Ue.y:Ue.y-Ot)+Ue.height/2,H=rt.x+rt.width/2,Te=(_t?rt.y:rt.y-Ot)+rt.height/2,qe=H-tn,tt=Te-Mn,ot=Math.sqrt(qe*qe+tt*tt);if(ot<2)return null;const Zt=Math.min(1,ot/40),ct=Math.min(ot*.3,60),kt=ot>0?-tt/ot:0,Q=ot>0?qe/ot:0,Fe=(tn+H)/2+kt*ct,vt=(Mn+Te)/2+Q*ct,Wt=yt.has(Ie),ir=Wt||Ut?1:.4,Kn=Wt||Ut?1:.5;return(0,b.jsxs)("g",{className:st?nt.connectorExiting:"",children:[(0,b.jsx)("path",{className:nt.connectorLine,d:`M ${tn} ${Mn} Q ${Fe} ${vt} ${H} ${Te}`,fill:"none",stroke:"rgba(59, 130, 246, 0.45)",strokeWidth:"1.5",opacity:ir*Zt}),(0,b.jsx)("circle",{className:nt.connectorDot,cx:tn,cy:Mn,r:4*Zt,fill:"rgba(59, 130, 246, 0.8)",stroke:"#fff",strokeWidth:"1.5",opacity:Kn*Zt,filter:"url(#connDotShadow)"}),(0,b.jsx)("circle",{className:nt.connectorDot,cx:H,cy:Te,r:4*Zt,fill:"rgba(59, 130, 246, 0.8)",stroke:"#fff",strokeWidth:"1.5",opacity:Kn*Zt,filter:"url(#connDotShadow)"})]},`conn-${Ie}`)}),(0,b.jsx)("defs",{children:(0,b.jsx)("filter",{id:"connDotShadow",x:"-50%",y:"-50%",width:"200%",height:"200%",children:(0,b.jsx)("feDropShadow",{dx:"0",dy:"0.5",stdDeviation:"1",floodOpacity:"0.15"})})})]})})(),P&&(()=>{const xe=v.find(Te=>Te.id===P);if(!xe)return null;const Ie=xe.currentRect,Ue=xe.isFixed?Ie.y:Ie.y-Ot,rt=Ie.x+Ie.width/2,_t=Ue-8,Ut=Ue+Ie.height+8,st=_t>200,tn=Ut{ne("")}:void 0,isExiting:$,lightMode:!n,style:H})})(),he&&(0,b.jsx)("div",{className:nt.sizeIndicator,style:{left:he.x,top:he.y},"data-feedback-toolbar":!0,children:he.text}),Be.map((xe,Ie)=>(0,b.jsx)("div",{className:nt.guideLine,style:xe.axis==="x"?{position:"fixed",left:xe.pos,top:0,width:1,height:"100vh"}:{position:"fixed",left:0,top:xe.pos-Ot,width:"100vw",height:1}},`${xe.axis}-${xe.pos}-${Ie}`))]})}var zQ=new Set(["script","style","noscript","link","meta","br","hr"]);function Hbe(){const e=document.querySelector("main")||document.body,t=[],n=Array.from(e.children),r=e!==document.body&&n.length<3?Array.from(document.body.children):n;for(const i of r){if(!(i instanceof HTMLElement)||zQ.has(i.tagName.toLowerCase())||i.hasAttribute("data-feedback-toolbar"))continue;const s=window.getComputedStyle(i);if(s.display==="none"||s.visibility==="hidden")continue;const l=i.getBoundingClientRect();if(!(l.height<10||l.width<10)){t.push({label:HV(i),selector:pm(i),top:l.top,bottom:l.bottom,left:l.left,right:l.right,area:l.width*l.height});for(const u of Array.from(i.children)){if(!(u instanceof HTMLElement)||zQ.has(u.tagName.toLowerCase())||u.hasAttribute("data-feedback-toolbar"))continue;const d=window.getComputedStyle(u);if(d.display==="none"||d.visibility==="hidden")continue;const p=u.getBoundingClientRect();p.height<10||p.width<10||t.push({label:HV(u),selector:pm(u),top:p.top,bottom:p.bottom,left:p.left,right:p.right,area:p.width*p.height})}}}return t}function jbe(e){const t=window.scrollY;return e.map(({label:n,selector:r,rect:i})=>{const s=i.y-t;return{label:n,selector:r,top:s,bottom:s+i.height,left:i.x,right:i.x+i.width,area:i.width*i.height}})}function qbe(e){const t=window.scrollY,n=e.y-t,r=e.x;return{top:n,bottom:n+e.height,left:r,right:r+e.width,area:e.width*e.height}}function PQ(e,t){const n=t?jbe(t):Hbe(),r=qbe(e);let i=null,s=null,l=null,u=null,d=null;for(const x of n){if(Math.abs(x.left-r.left)<2&&Math.abs(x.top-r.top)<2&&Math.abs(x.right-x.left-e.width)<2&&Math.abs(x.bottom-x.top-e.height)<2)continue;x.left<=r.left+2&&x.right>=r.right-2&&x.top<=r.top+2&&x.bottom>=r.bottom-2&&x.area>r.area*1.5&&(!d||x.areax.left+5&&r.leftx.top+5&&r.top=r.bottom-5){const C=Math.round(x.top-r.bottom);(!s||C=r.right-5){const C=Math.round(x.left-r.right);(!u||Cx?{label:x.label,selector:x.selector,gap:x.gap}:null,_=Fbe(r,e,p,f,d?{label:d.label,selector:d.selector,_area:d._area}:null,n);return{above:v(i),below:v(s),left:v(l),right:v(u),alignment:y,containedIn:d?{label:d.label,selector:d.selector}:null,outOfBounds:_}}function Fbe(e,t,n,r,i,s){const l={};let u=!1;const d=[];if(e.left<-2&&d.push("left"),e.right>n+2&&d.push("right"),e.top<-2&&d.push("top"),e.bottom>r+2&&d.push("bottom"),d.length>0&&(l.viewport=d,u=!0),i){const p=s.find(f=>f.label===i.label&&f.selector===i.selector&&Math.abs(f.area-i._area)<10);if(p){const f=[];e.leftp.right+2&&f.push("right"),e.topp.bottom+2&&f.push("bottom"),f.length>0&&(l.container={label:i.label,edges:f},u=!0)}}return u?l:null}function Ube(e,t){if(e.width/t>.85)return"full-width";const n=e.x+e.width/2-t/2,r=t*.08;return Math.abs(n)0?` (${e.above.gap}px gap)`:""}`),e.below&&n.push(`Above \`${e.below.label}\`${e.below.gap>0?` (${e.below.gap}px gap)`:""}`),t.includeLeftRight&&(e.left&&n.push(`Right of \`${e.left.label}\`${e.left.gap>0?` (${e.left.gap}px gap)`:""}`),e.right&&n.push(`Left of \`${e.right.label}\`${e.right.gap>0?` (${e.right.gap}px gap)`:""}`));const r=V2e(e.alignment);return e.containedIn?n.push(`${r.charAt(0).toUpperCase()+r.slice(1)} in \`${e.containedIn.label}\``):n.push(`${r.charAt(0).toUpperCase()+r.slice(1)} in page`),t.includePixelRef&&t.pixelRef&&n.push(`Pixel ref: \`${t.pixelRef}\``),e.outOfBounds&&(e.outOfBounds.viewport&&n.push(`**Outside viewport** (${e.outOfBounds.viewport.join(", ")} edge${e.outOfBounds.viewport.length>1?"s":""})`),e.outOfBounds.container&&n.push(`**Outside \`${e.outOfBounds.container.label}\`** (${e.outOfBounds.container.edges.join(", ")} edge${e.outOfBounds.container.edges.length>1?"s":""})`)),n}function Vbe(e,t,n){const r=[];e.above&&r.push(`below \`${e.above.label}\``),e.below&&r.push(`above \`${e.below.label}\``),e.left&&r.push(`right of \`${e.left.label}\``),e.right&&r.push(`left of \`${e.right.label}\``),e.containedIn&&r.push(`inside \`${e.containedIn.label}\``),r.push(V2e(e.alignment)),e.outOfBounds?.viewport&&r.push(`**outside viewport** (${e.outOfBounds.viewport.join(", ")})`),e.outOfBounds?.container&&r.push(`**outside \`${e.outOfBounds.container.label}\`** (${e.outOfBounds.container.edges.join(", ")})`);const i=n?`, ${Math.round(n.width)}×${Math.round(n.height)}px`:"";return`at (${Math.round(t.x)}, ${Math.round(t.y)})${i}: ${r.join(", ")}`}var lce=15;function cce(e){if(e.length<2)return[];const t=[],n=new Set;for(let r=0;r=2){const s=i.map(d=>e[d]);s.sort((d,p)=>d.rect.x-p.rect.x);const l=[];for(let d=0;dd+p.rect.y,0)/s.length);t.push({labels:s.map(d=>d.label),type:"row",sharedEdge:u,gaps:l,avgGap:l.length?Math.round(l.reduce((d,p)=>d+p,0)/l.length):0}),i.forEach(d=>n.add(d))}}for(let r=0;r=2){const s=i.map(d=>e[d]);s.sort((d,p)=>d.rect.y-p.rect.y);const l=[];for(let d=0;dd+p.rect.x,0)/s.length);t.push({labels:s.map(d=>d.label),type:"column",sharedEdge:u,gaps:l,avgGap:l.length?Math.round(l.reduce((d,p)=>d+p,0)/l.length):0}),i.forEach(d=>n.add(d))}}return t}function Gbe(e){if(e.length<2)return[];const t=cce(e.map(l=>({label:l.label,rect:l.originalRect}))),n=cce(e.map(l=>({label:l.label,rect:l.currentRect}))),r=[],i=new Set;for(const l of t){const u=new Set(l.labels);let d=null,p=0;for(const f of n){const y=f.labels.filter(v=>u.has(v)).length;y>=2&&y>p&&(d=f,p=y)}if(d){const f=d.labels.filter(v=>u.has(v)),y=f.join(", ");if(d.type!==l.type){const v=l.type==="row"?"y":"x",_=d.type==="row"?"y":"x";r.push(`**${y}**: ${l.type} (${v}≈${l.sharedEdge}, ${l.avgGap}px gaps) → ${d.type} (${_}≈${d.sharedEdge}, ${d.avgGap}px gaps)`)}else if(Math.abs(l.sharedEdge-d.sharedEdge)>20||Math.abs(l.avgGap-d.avgGap)>5){const v=l.type==="row"?"y":"x",_=Math.abs(l.sharedEdge-d.sharedEdge)>20?` ${v}: ${l.sharedEdge} → ${d.sharedEdge}`:"",x=Math.abs(l.avgGap-d.avgGap)>5?` gaps: ${l.avgGap}px → ${d.avgGap}px`:"";r.push(`**${y}**: ${l.type} shifted —${_}${x}`)}f.forEach(v=>i.add(v))}else{const f=l.labels.join(", "),y=l.type==="row"?"y":"x";r.push(`**${f}**: ${l.type} (${y}≈${l.sharedEdge}) dissolved`),l.labels.forEach(v=>i.add(v))}}for(const l of n)if(!l.labels.every(u=>i.has(u))&&!(l.labels.filter(u=>!i.has(u)).length<2)&&!t.some(u=>u.labels.filter(d=>l.labels.includes(d)).length>=2)){const u=l.type==="row"?"y":"x";r.push(`**${l.labels.join(", ")}**: new ${l.type} (${u}≈${l.sharedEdge}, ${l.avgGap}px gaps)`),l.labels.forEach(d=>i.add(d))}const s=e.filter(l=>!i.has(l.label));if(s.length>=2){const l={};for(const u of s){const d=Math.round(u.currentRect.x/5)*5;(l[d]??(l[d]=[])).push(u.label)}for(const[u,d]of Object.entries(l))d.length>=2&&r.push(`**${d.join(", ")}**: shared left edge at x≈${u}`)}return r}function W2e(e){if(typeof document>"u")return{viewport:e,contentArea:null};const t=[],n=new Set,r=u=>{n.has(u)||u instanceof HTMLElement&&(u.hasAttribute("data-feedback-toolbar")||zQ.has(u.tagName.toLowerCase())||(n.add(u),t.push(u)))},i=document.querySelector("main");i&&r(i);const s=document.querySelector("[role='main']");s&&r(s);for(const u of Array.from(document.body.children))if(r(u),u.children){for(const d of Array.from(u.children))if(r(d),d.children)for(const p of Array.from(d.children))r(p)}let l=null;for(const u of t){const d=u.getBoundingClientRect();if(d.height<50)continue;const p=getComputedStyle(u);if(p.maxWidth&&p.maxWidth!=="none"&&p.maxWidth!=="0px"){(!l||d.width100&&(l={el:u,rect:d})}if(l){const{el:u,rect:d}=l;return{viewport:e,contentArea:{width:Math.round(d.width),left:Math.round(d.left),right:Math.round(d.right),centerX:Math.round(d.left+d.width/2),selector:pm(u)}}}return{viewport:e,contentArea:null}}function Wbe(e){if(typeof document>"u")return null;const t=document.querySelector(e);if(!t?.parentElement)return null;const n=getComputedStyle(t.parentElement),r={parentDisplay:n.display,parentSelector:pm(t.parentElement)};return n.display.includes("flex")&&(r.flexDirection=n.flexDirection),n.display.includes("grid")&&n.gridTemplateColumns!=="none"&&(r.gridCols=n.gridTemplateColumns),n.gap&&n.gap!=="normal"&&n.gap!=="0px"&&(r.gap=n.gap),r}function Y2e(e,t){const n=t.contentArea,r=n?n.width:t.viewport.width,i=n?n.left:0,s=n?n.centerX:Math.round(t.viewport.width/2),l=Math.round(e.x-i),u=Math.round(i+r-(e.x+e.width)),d=(e.width/r*100).toFixed(1),p=e.x+e.width/2,f=Math.abs(p-s)<20,y=e.width/r>.95,v=[];return y?v.push("`width: 100%` of container"):v.push(`left \`${l}px\` in container, right \`${u}px\`, width \`${d}%\` (\`${Math.round(e.width)}px\`)`),f&&!y&&v.push("centered — `margin-inline: auto`"),v.join(" — ")}function X2e(e){const{viewport:t,contentArea:n}=e;let r=`### Reference Frame -`;if(r+=`- Viewport: \`${t.width}×${t.height}px\` -`,n){const i=n;r+=`- Content area: \`${i.width}px\` wide, left edge at \`x=${i.left}\`, right at \`x=${i.right}\` (\`${i.selector}\`) -`,r+=`- Pixel → CSS translation: -`,r+=` - **Horizontal position in container**: \`element.x - ${i.left}\` → use as \`margin-left\` or \`left\` -`,r+=` - **Width as % of container**: \`element.width / ${i.width} × 100\` → use as \`width: X%\` -`,r+=" - **Vertical gap between elements**: `nextElement.y - (prevElement.y + prevElement.height)` → use as `margin-top` or `gap`\n",r+=` - **Centered**: if \`|element.centerX - ${i.centerX}| < 20px\` → use \`margin-inline: auto\` -`}else r+=`- No distinct content container — elements positioned relative to full viewport -`,r+=`- Pixel → CSS translation: -`,r+=` - **Width as % of viewport**: \`element.width / ${t.width} × 100\` → use as \`width: X%\` -`,r+=` - **Centered**: if \`|(element.x + element.width/2) - ${Math.round(t.width/2)}| < 20px\` → use \`margin-inline: auto\` -`;return r+=` -`,r}function Ybe(e){const t=Wbe(e);if(!t)return null;let n=`\`${t.parentDisplay}\``;return t.flexDirection&&(n+=`, flex-direction: \`${t.flexDirection}\``),t.gridCols&&(n+=`, grid-template-columns: \`${t.gridCols}\``),t.gap&&(n+=`, gap: \`${t.gap}\``),`Parent: ${n} (\`${t.parentSelector}\`)`}function uce(e,t,n,r="standard"){if(e.length===0)return"";const i=[...e].sort((T,C)=>Math.abs(T.y-C.y)<20?T.x-C.x:T.y-C.y);let s="";if(n?.blankCanvas?(s+=`## Wireframe: New Page - -`,n.wireframePurpose&&(s+=`> **Purpose:** ${n.wireframePurpose} -> -`),s+=`> ${e.length} component${e.length!==1?"s":""} placed — this is a standalone wireframe, not related to the current page. -> -> This wireframe is a rough sketch for exploring ideas. - -`):s+=`## Design Layout - -> ${e.length} component${e.length!==1?"s":""} placed - -`,r==="compact")return s+=`### Components -`,i.forEach((T,C)=>{const I=Nl[T.type]?.label||T.type;s+=`${C+1}. **${I}** — \`${Math.round(T.width)}×${Math.round(T.height)}px\` at \`(${Math.round(T.x)}, ${Math.round(T.y)})\` -`}),s;const l=W2e(t);s+=X2e(l),s+=`### Components -`,i.forEach((T,C)=>{const I=Nl[T.type]?.label||T.type,z={x:T.x,y:T.y,width:T.width,height:T.height};s+=`${C+1}. **${I}** — \`${Math.round(T.width)}×${Math.round(T.height)}px\` at \`(${Math.round(T.x)}, ${Math.round(T.y)})\` -`;const P=G2e(PQ(z),{includeLeftRight:r==="detailed"||r==="forensic"});for(const $ of P)s+=` - ${$} -`;const F=Y2e(z,l);F&&(s+=` - CSS: ${F} -`)}),s+=` -### Layout Analysis -`;const u=[];for(const T of i){const C=u.find(I=>Math.abs(I.y-T.y)<30);C?C.items.push(T):u.push({y:T.y,items:[T]})}if(u.sort((T,C)=>T.y-C.y),u.forEach((T,C)=>{T.items.sort((z,P)=>z.x-P.x);const I=T.items.map(z=>Nl[z.type]?.label||z.type);if(T.items.length===1){const z=T.items[0].width>t.width*.8;s+=`- Row ${C+1} (y≈${Math.round(T.y)}): ${I[0]}${z?" — full width":""} -`}else s+=`- Row ${C+1} (y≈${Math.round(T.y)}): ${I.join(" | ")} — ${T.items.length} items side by side -`}),r==="detailed"||r==="forensic"){s+=` -### Spacing & Gaps -`;for(let T=0;T2){s+=` -### All Pairwise Gaps -`;for(let T=0;T{const I=Nl[T.type]?.label||T.type;s+=`${C}. ${I} at \`(${Math.round(T.x)}, ${Math.round(T.y)})\` -`}))}s+=` -### Suggested Implementation -`;const d=i.some(T=>T.type==="navigation"),p=i.some(T=>T.type==="hero"),f=i.some(T=>T.type==="sidebar"),y=i.some(T=>T.type==="footer"),v=i.filter(T=>T.type==="card"),_=i.filter(T=>T.type==="form"),x=i.filter(T=>T.type==="table"),E=i.filter(T=>T.type==="modal");if(d&&(s+=`- Top navigation bar with logo + nav links + CTA -`),p&&(s+=`- Hero section with heading, subtext, and call-to-action -`),f&&(s+=`- Sidebar layout — use CSS Grid with sidebar + main content area -`),v.length>1?s+=`- ${v.length}-column card grid — use CSS Grid or Flexbox -`:v.length===1&&(s+=`- Card component with image + content area -`),_.length>0&&(s+=`- ${_.length} form${_.length>1?"s":""} — add proper labels, validation, and submit handling -`),x.length>0&&(s+=`- Data table — consider sortable columns and pagination -`),E.length>0&&(s+=`- Modal dialog — add overlay backdrop and focus trapping -`),y&&(s+=`- Multi-column footer with links -`),r==="detailed"||r==="forensic"){if(s+=` -### CSS Suggestions -`,f){const T=i.find(C=>C.type==="sidebar");s+=`- \`display: grid; grid-template-columns: ${Math.round(T.width)}px 1fr;\` -`}if(v.length>1){const T=Math.round(v[0].width);s+=`- \`display: grid; grid-template-columns: repeat(${v.length}, ${T}px); gap: 16px;\` -`}d&&(s+="- Navigation: `position: sticky; top: 0; z-index: 50;`\n")}return s}function dce(e,t="standard",n){const{sections:r}=e,i=[];for(const d of r){const p=d.originalRect,f=d.currentRect,y=Math.abs(p.x-f.x)>1||Math.abs(p.y-f.y)>1,v=Math.abs(p.width-f.width)>1||Math.abs(p.height-f.height)>1;if(!y&&!v){t==="forensic"&&i.push({section:d,posMoved:!1,sizeChanged:!1});continue}i.push({section:d,posMoved:y,sizeChanged:v})}if(i.length===0||t!=="forensic"&&i.every(d=>!d.posMoved&&!d.sizeChanged))return"";let s=`## Suggested Layout Changes - -`;const l=W2e({width:n?n.width:typeof window<"u"?window.innerWidth:0,height:n?n.height:typeof window<"u"?window.innerHeight:0});t!=="compact"&&(s+=X2e(l)),t==="forensic"&&(s+=`> Detected at: \`${new Date(e.detectedAt).toISOString()}\` -`,s+=`> Total sections: ${r.length} - -`);const u=d=>r.map(p=>({label:p.label,selector:p.selector,rect:d==="original"?p.originalRect:p.currentRect}));s+=`**Changes:** -`;for(const{section:d,posMoved:p,sizeChanged:f}of i){const y=d.originalRect,v=d.currentRect;if(!p&&!f){s+=`- ${d.label} — unchanged at (${Math.round(v.x)}, ${Math.round(v.y)}) ${Math.round(v.width)}×${Math.round(v.height)}px -`;continue}if(t==="compact"){p&&f?s+=`- Suggested: move **${d.label}** to (${Math.round(v.x)}, ${Math.round(v.y)}) ${Math.round(v.width)}×${Math.round(v.height)}px -`:p?s+=`- Suggested: move **${d.label}** to (${Math.round(v.x)}, ${Math.round(v.y)}) -`:s+=`- Suggested: resize **${d.label}** to ${Math.round(v.width)}×${Math.round(v.height)}px -`;continue}if(p&&f?s+=`- Suggested: move and resize **${d.label}** -`:p?s+=`- Suggested: move **${d.label}** -`:s+=`- Suggested: resize **${d.label}** from ${Math.round(y.width)}×${Math.round(y.height)}px to ${Math.round(v.width)}×${Math.round(v.height)}px -`,p){const x=PQ(y,u("original")),E=PQ(v,u("current")),T=f?{width:y.width,height:y.height}:void 0;s+=` - Currently ${Vbe(x,{x:y.x,y:y.y},T)} -`;const C=f?{width:v.width,height:v.height}:void 0,I=`at (${Math.round(v.x)}, ${Math.round(v.y)})`,z=C?`, ${Math.round(C.width)}×${Math.round(C.height)}px`:"",P=G2e(E,{includeLeftRight:t==="detailed"||t==="forensic"});if(P.length>0){s+=` - Suggested position ${I}${z}: ${P[0]} -`;for(let $=1;$p.posMoved).map(p=>({label:p.section.label,originalRect:p.section.originalRect,currentRect:p.section.currentRect})));if(d.length>0){s+=` -### Layout Summary -`;for(const p of d)s+=`- ${p} -`}}if(t!=="compact"&&r.length>1){s+=` -### All Sections (current positions) -`;const d=[...r].sort((p,f)=>Math.abs(p.currentRect.y-f.currentRect.y)<20?p.currentRect.x-f.currentRect.x:p.currentRect.y-f.currentRect.y);for(const p of d){const f=p.currentRect,y=Math.abs(f.x-p.originalRect.x)>1||Math.abs(f.y-p.originalRect.y)>1||Math.abs(f.width-p.originalRect.width)>1||Math.abs(f.height-p.originalRect.height)>1;s+=`- ${p.label}: \`${Math.round(f.width)}×${Math.round(f.height)}px\` at \`(${Math.round(f.x)}, ${Math.round(f.y)})\`${y?" ← suggested":""} -`}}return s}var BQ="feedback-annotations-",K2e=7;function jV(e){return`${BQ}${e}`}function FK(e){if(typeof window>"u")return[];try{const t=localStorage.getItem(jV(e));if(!t)return[];const n=JSON.parse(t),r=Date.now()-K2e*24*60*60*1e3;return n.filter(i=>!i.timestamp||i.timestamp>r)}catch{return[]}}function Z2e(e,t){if(!(typeof window>"u"))try{localStorage.setItem(jV(e),JSON.stringify(t))}catch{}}function Xbe(){const e=new Map;if(typeof window>"u")return e;try{const t=Date.now()-K2e*24*60*60*1e3;for(let n=0;n!u.timestamp||u.timestamp>t);l.length>0&&e.set(i,l)}}}}catch{}return e}function Ag(e,t,n){Z2e(e,t.map(r=>({...r,_syncedTo:n})))}var Vee="agentation-design-";function Kbe(e){if(typeof window>"u")return[];try{const t=localStorage.getItem(`${Vee}${e}`);return t?JSON.parse(t):[]}catch{return[]}}function Zbe(e,t){if(!(typeof window>"u"))try{localStorage.setItem(`${Vee}${e}`,JSON.stringify(t))}catch{}}function Qbe(e){if(!(typeof window>"u"))try{localStorage.removeItem(`${Vee}${e}`)}catch{}}var Gee="agentation-rearrange-";function Jbe(e){if(typeof window>"u")return null;try{const t=localStorage.getItem(`${Gee}${e}`);return t?JSON.parse(t):null}catch{return null}}function e9e(e,t){if(!(typeof window>"u"))try{localStorage.setItem(`${Gee}${e}`,JSON.stringify(t))}catch{}}function t9e(e){if(!(typeof window>"u"))try{localStorage.removeItem(`${Gee}${e}`)}catch{}}var Wee="agentation-wireframe-";function n9e(e){if(typeof window>"u")return null;try{const t=localStorage.getItem(`${Wee}${e}`);return t?JSON.parse(t):null}catch{return null}}function hce(e,t){if(!(typeof window>"u"))try{localStorage.setItem(`${Wee}${e}`,JSON.stringify(t))}catch{}}function S7(e){if(!(typeof window>"u"))try{localStorage.removeItem(`${Wee}${e}`)}catch{}}var Q2e="agentation-session-";function Yee(e){return`${Q2e}${e}`}function r9e(e){if(typeof window>"u")return null;try{return localStorage.getItem(Yee(e))}catch{return null}}function UK(e,t){if(!(typeof window>"u"))try{localStorage.setItem(Yee(e),t)}catch{}}function a9e(e){if(!(typeof window>"u"))try{localStorage.removeItem(Yee(e))}catch{}}var $Q=`${Q2e}toolbar-hidden`;function i9e(){if(typeof window>"u")return!1;try{return sessionStorage.getItem($Q)==="1"}catch{return!1}}function o9e(e){if(!(typeof window>"u"))try{e?sessionStorage.setItem($Q,"1"):sessionStorage.removeItem($Q)}catch{}}async function VK(e,t){const n=await fetch(`${e}/sessions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:t})});if(!n.ok)throw new Error(`Failed to create session: ${n.status}`);return n.json()}async function pce(e,t){const n=await fetch(`${e}/sessions/${t}`);if(!n.ok)throw new Error(`Failed to get session: ${n.status}`);return n.json()}async function Ly(e,t,n){const r=await fetch(`${e}/sessions/${t}/annotations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok)throw new Error(`Failed to sync annotation: ${r.status}`);return r.json()}async function fce(e,t,n){const r=await fetch(`${e}/annotations/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok)throw new Error(`Failed to update annotation: ${r.status}`);return r.json()}async function X0(e,t){const n=await fetch(`${e}/annotations/${t}`,{method:"DELETE"});if(!n.ok)throw new Error(`Failed to delete annotation: ${n.status}`)}var Tr={FunctionComponent:0,ClassComponent:1,IndeterminateComponent:2,HostRoot:3,HostPortal:4,HostComponent:5,HostText:6,Fragment:7,Mode:8,ContextConsumer:9,ContextProvider:10,ForwardRef:11,Profiler:12,SuspenseComponent:13,MemoComponent:14,SimpleMemoComponent:15,LazyComponent:16,IncompleteClassComponent:17,DehydratedFragment:18,SuspenseListComponent:19,ScopeComponent:21,OffscreenComponent:22,LegacyHiddenComponent:23,CacheComponent:24,TracingMarkerComponent:25,HostHoistable:26,HostSingleton:27,IncompleteFunctionComponent:28,Throw:29,ViewTransitionComponent:30,ActivityComponent:31},mce=new Set(["Component","PureComponent","Fragment","Suspense","Profiler","StrictMode","Routes","Route","Outlet","Root","ErrorBoundaryHandler","HotReload","Hot"]),yce=[/Boundary$/,/BoundaryHandler$/,/Provider$/,/Consumer$/,/^(Inner|Outer)/,/Router$/,/^Client(Page|Segment|Root)/,/^Segment(ViewNode|Node)$/,/^LayoutSegment/,/^Server(Root|Component|Render)/,/^RSC/,/Context$/,/^Hot(Reload)?$/,/^(Dev|React)(Overlay|Tools|Root)/,/Overlay$/,/Handler$/,/^With[A-Z]/,/Wrapper$/,/^Root$/],s9e=[/Page$/,/View$/,/Screen$/,/Section$/,/Card$/,/List$/,/Item$/,/Form$/,/Modal$/,/Dialog$/,/Button$/,/Nav$/,/Header$/,/Footer$/,/Layout$/,/Panel$/,/Tab$/,/Menu$/];function l9e(e){const t=e?.mode??"filtered";let n=mce;if(e?.skipExact){const r=e.skipExact instanceof Set?e.skipExact:new Set(e.skipExact);n=new Set([...mce,...r])}return{maxComponents:e?.maxComponents??6,maxDepth:e?.maxDepth??30,mode:t,skipExact:n,skipPatterns:e?.skipPatterns?[...yce,...e.skipPatterns]:yce,userPatterns:e?.userPatterns??s9e,filter:e?.filter}}function c9e(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z][a-z])/g,"$1-$2").toLowerCase()}function u9e(e,t=10){const n=new Set;let r=e,i=0;for(;r&&i{if(s.length>1){const l=s.replace(/[_][a-zA-Z0-9]{5,}.*$/,"").toLowerCase();l.length>1&&n.add(l)}}),r=r.parentElement,i++;return n}function d9e(e,t){const n=c9e(e);for(const r of t){if(r===n)return!0;const i=n.split("-").filter(l=>l.length>2),s=r.split("-").filter(l=>l.length>2);for(const l of i)for(const u of s)if(l===u||l.includes(u)||u.includes(l))return!0}return!1}function h9e(e,t,n,r){if(n.filter)return n.filter(e,t);switch(n.mode){case"all":return!0;case"filtered":return!(n.skipExact.has(e)||n.skipPatterns.some(i=>i.test(e)));case"smart":return n.skipExact.has(e)||n.skipPatterns.some(i=>i.test(e))?!1:!!(r&&d9e(e,r)||n.userPatterns.some(i=>i.test(e)));default:return!0}}var Iy=null,p9e=new WeakMap;function GK(e){return Object.keys(e).some(t=>t.startsWith("__reactFiber$")||t.startsWith("__reactInternalInstance$")||t.startsWith("__reactProps$"))}function f9e(){if(Iy!==null)return Iy;if(typeof document>"u")return!1;if(document.body&&GK(document.body))return Iy=!0,!0;for(const e of["#root","#app","#__next","[data-reactroot]"]){const t=document.querySelector(e);if(t&&GK(t))return Iy=!0,!0}if(document.body){for(const e of document.body.children)if(GK(e))return Iy=!0,!0}return Iy=!1,!1}var Ng={map:p9e};function m9e(e){return Object.keys(e).find(t=>t.startsWith("__reactFiber$")||t.startsWith("__reactInternalInstance$"))||null}function y9e(e){const t=m9e(e);return t?e[t]:null}function xd(e){return e?e.displayName?e.displayName:e.name?e.name:null:null}function g9e(e){const{tag:t,type:n,elementType:r}=e;if(t===Tr.HostComponent||t===Tr.HostText||t===Tr.HostHoistable||t===Tr.HostSingleton||t===Tr.Fragment||t===Tr.Mode||t===Tr.Profiler||t===Tr.DehydratedFragment||t===Tr.HostRoot||t===Tr.HostPortal||t===Tr.ScopeComponent||t===Tr.OffscreenComponent||t===Tr.LegacyHiddenComponent||t===Tr.CacheComponent||t===Tr.TracingMarkerComponent||t===Tr.Throw||t===Tr.ViewTransitionComponent||t===Tr.ActivityComponent)return null;if(t===Tr.ForwardRef){const i=r;if(i?.render){const s=xd(i.render);if(s)return s}return i?.displayName?i.displayName:xd(n)}if(t===Tr.MemoComponent||t===Tr.SimpleMemoComponent){const i=r;if(i?.type){const s=xd(i.type);if(s)return s}return i?.displayName?i.displayName:xd(n)}if(t===Tr.ContextProvider){const i=n;return i?._context?.displayName?`${i._context.displayName}.Provider`:null}if(t===Tr.ContextConsumer){const i=n;return i?.displayName?`${i.displayName}.Consumer`:null}if(t===Tr.LazyComponent){const i=r;return i?._status===1&&i._result?xd(i._result):null}return t===Tr.SuspenseComponent||t===Tr.SuspenseListComponent?null:t===Tr.IncompleteClassComponent||t===Tr.IncompleteFunctionComponent||t===Tr.FunctionComponent||t===Tr.ClassComponent||t===Tr.IndeterminateComponent?xd(n):null}function v9e(e){return e.length<=2||e.length<=3&&e===e.toLowerCase()}function _9e(e,t){const n=l9e(t),r=n.mode==="all";if(r){const u=Ng.map.get(e);if(u!==void 0)return u}if(!f9e()){const u={path:null,components:[]};return r&&Ng.map.set(e,u),u}const i=n.mode==="smart"?u9e(e):void 0,s=[];try{let u=y9e(e),d=0;for(;u&&d`<${u}>`).join(" "),components:s};return r&&Ng.map.set(e,l),l}var Lg={FunctionComponent:0,ClassComponent:1,IndeterminateComponent:2,HostRoot:3,HostPortal:4,HostComponent:5,HostText:6,Fragment:7,Mode:8,ContextConsumer:9,ContextProvider:10,ForwardRef:11,Profiler:12,SuspenseComponent:13,MemoComponent:14,SimpleMemoComponent:15,LazyComponent:16};function k9e(e){if(!e||typeof e!="object")return null;const t=Object.keys(e),n=t.find(s=>s.startsWith("__reactFiber$"));if(n)return e[n]||null;const r=t.find(s=>s.startsWith("__reactInternalInstance$"));if(r)return e[r]||null;const i=t.find(s=>{if(!s.startsWith("__react"))return!1;const l=e[s];return l&&typeof l=="object"&&"_debugSource"in l});return i&&e[i]||null}function _v(e){if(!e.type||typeof e.type=="string")return null;if(typeof e.type=="object"||typeof e.type=="function"){const t=e.type;if(t.displayName)return t.displayName;if(t.name)return t.name}return null}function b9e(e,t=50){let n=e,r=0;for(;n&&rt.H,set:r=>{t.H=r}};const n=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;if(n){const r=n.ReactCurrentDispatcher;if(r&&"current"in r)return{get:()=>r.current,set:i=>{r.current=i}}}return null}function S9e(e){const t=e.split(` -`),n=[/source-location/,/\/dist\/index\./,/node_modules\//,/react-dom/,/react\.development/,/react\.production/,/chunk-[A-Z0-9]+/i,/react-stack-bottom-frame/,/react-reconciler/,/scheduler/,//],r=/^\s*at\s+(?:.*?\s+\()?(.+?):(\d+):(\d+)\)?$/,i=/^[^@]*@(.+?):(\d+):(\d+)$/;for(const s of t){const l=s.trim();if(!l||n.some(d=>d.test(l)))continue;const u=r.exec(l)||i.exec(l);if(u)return{fileName:u[1],line:parseInt(u[2],10),column:parseInt(u[3],10)}}return null}function C9e(e){let t=e;return t=t.replace(/[?#].*$/,""),t=t.replace(/^turbopack:\/\/\/\[project\]\//,""),t=t.replace(/^webpack-internal:\/\/\/\.\//,""),t=t.replace(/^webpack-internal:\/\/\//,""),t=t.replace(/^webpack:\/\/\/\.\//,""),t=t.replace(/^webpack:\/\/\//,""),t=t.replace(/^turbopack:\/\/\//,""),t=t.replace(/^https?:\/\/[^/]+\//,""),t=t.replace(/^file:\/\/\//,"/"),t=t.replace(/^\([^)]+\)\/\.\//,""),t=t.replace(/^\.\//,""),t}function E9e(e){const t=w9e(e);if(!t)return null;if(C7.has(t))return C7.get(t);const n=M9e();if(!n)return C7.set(t,null),null;const r=n.get();let i=null;try{const s=new Proxy({},{get(){throw new Error("probe")}});n.set(s);try{t({})}catch(l){if(l instanceof Error&&l.message==="probe"&&l.stack){const u=S9e(l.stack);u&&(i={fileName:C9e(u.fileName),lineNumber:u.line,columnNumber:u.column,componentName:_v(e)||void 0})}}}finally{n.set(r)}return C7.set(t,i),i}function T9e(e,t=15){let n=e,r=0;for(;n&&r