From 01fa7159084fa2210fe954fd251673c5c6cc2af3 Mon Sep 17 00:00:00 2001 From: sudoHG Date: Tue, 13 Oct 2026 18:22:06 +0800 Subject: [PATCH 1/2] Add the "How it works" film for the website (#160) A real-time three.js scene on a walnut desk acts out one request: the AI finds the key in Ask Key's catalog, asks for it, waits for the reader's approval in Ask Key's real prompt, and the key goes straight to the program while the AI gets back one line. The reader's click decides the ending. Phones and portrait tablets get an upright composition, reduced motion gets a still telling, and browsers without WebGL2 get posters. Readable source lives in site-src/how and is bundled with esbuild into site/how; three.js ships with its MIT licence. Text in images uses only open fonts. --- .gitignore | 3 + site-src/how/README.md | 102 + site-src/how/how.src.js | 278 ++ site-src/how/layout.js | 85 + site-src/how/materials.js | 192 ++ site-src/how/package-lock.json | 92 + site-src/how/package.json | 17 + site-src/how/quality.js | 73 + site-src/how/rig.js | 112 + site-src/how/room.js | 66 + site-src/how/scene.js | 309 +++ site-src/how/stamp.mjs | 18 + site-src/how/textures.js | 315 +++ site-src/how/timing.js | 16 + site-src/how/transcript.js | 197 ++ site-src/how/ui.js | 279 ++ site-src/how/world.js | 222 ++ site/how/THREE-LICENSE.txt | 21 + site/how/how.css | 458 ++++ site/how/how.js | 4279 ++++++++++++++++++++++++++++++ site/how/img/paper.jpg | Bin 0 -> 38608 bytes site/how/img/poster-en-tall.webp | Bin 0 -> 22564 bytes site/how/img/poster-en-wide.webp | Bin 0 -> 37468 bytes site/how/img/poster-zh-tall.webp | Bin 0 -> 23086 bytes site/how/img/poster-zh-wide.webp | Bin 0 -> 36874 bytes site/how/img/seal-zhun.webp | Bin 0 -> 50832 bytes site/how/img/walnut.webp | Bin 0 -> 111870 bytes 27 files changed, 7134 insertions(+) create mode 100644 site-src/how/README.md create mode 100644 site-src/how/how.src.js create mode 100644 site-src/how/layout.js create mode 100644 site-src/how/materials.js create mode 100644 site-src/how/package-lock.json create mode 100644 site-src/how/package.json create mode 100644 site-src/how/quality.js create mode 100644 site-src/how/rig.js create mode 100644 site-src/how/room.js create mode 100644 site-src/how/scene.js create mode 100644 site-src/how/stamp.mjs create mode 100644 site-src/how/textures.js create mode 100644 site-src/how/timing.js create mode 100644 site-src/how/transcript.js create mode 100644 site-src/how/ui.js create mode 100644 site-src/how/world.js create mode 100644 site/how/THREE-LICENSE.txt create mode 100644 site/how/how.css create mode 100644 site/how/how.js create mode 100644 site/how/img/paper.jpg create mode 100644 site/how/img/poster-en-tall.webp create mode 100644 site/how/img/poster-en-wide.webp create mode 100644 site/how/img/poster-zh-tall.webp create mode 100644 site/how/img/poster-zh-wide.webp create mode 100644 site/how/img/seal-zhun.webp create mode 100644 site/how/img/walnut.webp diff --git a/.gitignore b/.gitignore index fb81b59..5538f93 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,6 @@ reviews/ # macOS .DS_Store + +# Website build tooling +node_modules/ diff --git a/site-src/how/README.md b/site-src/how/README.md new file mode 100644 index 0000000..dbfe5a2 --- /dev/null +++ b/site-src/how/README.md @@ -0,0 +1,102 @@ +# Ask Key — "How it works" (morning desk, one unbroken shot) + +## Concept + +A single continuous camera move across an oiled black walnut desk by a window in early morning, where three real-time 3D objects act out the mechanism: the AI is a clear glass block with its live transcript sealed inside (so you can see everything it holds), Ask Key is a frosted vault in the shape of the app icon with vermilion keys inside it, and `./deploy.sh` is a graphite box with a keyhole. The film stops when the request reaches you and shows Ask Key's real approval prompt with a live 5-minute countdown. Whatever you click actually decides the ending: Allow sends a copy of the key out of the frosted glass, around the AI and into the program, which runs, publishes the site and dissolves the key; Deny (or letting it expire) leaves the key untouched and the program never runs. Either way the AI gets back one line and ends holding zero keys. Vermilion is reserved for the secret, so you can watch where it goes and see it never enters the glass. + +The room belongs to the page around it. The stage is the page's own white: the desk fades into white beyond the cast (the white wall of a bright room), the top and bottom of the stage dissolve into the page, the canvas fades up out of white the first time it is seen, and as each ending closes the desk recedes until the cast stands on white paper with its labels, like the slips with seals further down the site. Light is cool morning daylight from a window to the back left: a soft window falls across the desk, the glass and lacquer reflect that window, contact shadows fall away from it, and light through the red keys tints the desk under the vault. Type, ink, vermilion and paper slips are the site's own (#fff, #1a1a1a, #b8281e, Hanken Grotesk, Songti, the site's paper texture and its vermilion "approved" seal). + +## Techniques + +- three.js r186 bundled and minified with esbuild into one ES module (`site/how/how.js`, about 640 KB, about 170 KB gzipped). Its MIT licence ships as `site/how/THREE-LICENSE.txt` and the bundle's first line points to it. No other runtime dependencies and no requests to other hosts. +- One render pass per frame. No transmission pass, no shadow maps, no post-processing. + - Clear glass is a premultiplied layer: what the surface reflects (Fresnel, F0 = 0.04) replaces the light the background no longer sends through, and the slab's body thickens to a dark slate-green toward grazing angles, so its edges read on a white page. Back and front faces are two meshes, so three.js never flips a double-sided material twice a frame. + - The frosted vault is the same layer, rougher, over a milky core (the icon's silhouette, blurred once into a canvas texture) that hides the desk the way ground glass would. The keys inside are their own silhouettes blurred once into a texture and drawn just after the shell, so they stay vermilion instead of turning pink under a white veil. The only sharp key is the copy that is delivered. + - The reflections come from a small white room rendered once into a prefiltered environment map at load: white walls, a pale desk, a tall four-pane window and a few dark shapes (a shelf, a doorway) so glass and lacquer have something dark to reflect. + - The desk is one unlit shader: a seamless black walnut texture in its own colour with a satin sheen where the window falls, a procedural four-pane window patch with soft mullion shadows, a broad falloff from the window, and the fade into the page's white. Contact shadows and the red tint under the vault are decals drawn in the opaque pass, so they need no sorting. +- Text in the scene is drawn into canvas textures from a JSON block in the page, so each language renders its own scene. The transcript is a static sheet plus one thin strip per line: typing a character or turning the spinner re-uploads one 2048×104 strip instead of a 2048×1296 page, and fading a line in changes an opacity rather than redrawing. +- A camera rig of key frames (target, view direction, framing radius) on Catmull-Rom splines with a monotone time warp, so the move never stops between frames. Distance is computed from the viewport, so the same shot recomposes for a phone held upright. +- Every visual is a pure function of the film's time and the reader's decision, which makes chapter seeking, replays and the alternate endings exact. +- The approval prompt is real DOM (buttons, Details disclosure with the app's actual rows, Esc to decide later, a pending pill, a live countdown that really expires at 0:00). Labels pinned to scene objects are projected DOM elements, measured once when they appear and written in one pass, so the browser never lays out mid-frame. Status labels are solid paper pills, so nothing re-blurs the scene behind them; the three names are light text with a soft shadow, shown only while the wood is behind them. + +## Performance + +What it does to stay smooth: + +- Pixel ratio capped at 1.5 (1 on a software renderer; antialiasing off there too). The first three frames are timed with a forced GPU sync and the ratio is lowered (down to 0.5) if a frame would cost more than 7.5 ms; while the film plays, a 40-frame window steps it down by 13% whenever the 75th percentile runs over 20.5 ms. It never steps back up, so it cannot oscillate. +- Every shader program and every texture is compiled and uploaded before the film starts (`compileAsync`, `initTexture`, 1×1 stand-ins for images still loading), so nothing appearing mid-film stalls a frame. Verified: 16 programs before the film, 16 after both endings. +- Frames are drawn only when something moves: every frame while the film plays; 20 fps behind the blurred approval prompt (30 when set aside); otherwise only on pointer movement, resize or a texture arriving. Nothing is drawn while the section is off screen or the tab is hidden. Verified: 0 frames in 2 s while an ending sits still. +- No per-frame allocations in the timeline, camera or labels. + +Measured in headless Google Chrome 1440×900 at device pixel ratio 2, rAF intervals over the whole film (14 s to the prompt, 1.5 s at the prompt, 14 s of the Allow ending), first 5 frames dropped. "Long" counts frames over 50 ms. The test Mac is an M2 Max under heavy load from other work, so the software-renderer rows in particular are noisy. + +| Condition | Before (night, c3) median / p95 / long / fps | After (morning) median / p95 / long / fps | +|---|---|---| +| (a) GPU (ANGLE Metal) | 16.7 ms / 33.3 ms / 9 / 54.8 | 16.7 ms / 16.7 ms / 0 / 60.0 | +| (b) SwiftShader (`--use-angle=swiftshader`) | 4250 ms / 4283 ms / all / 0.3 | 16.7 ms / 33.4 ms / 22–42 / 44–51 (renders at 0.5×; three runs) | +| (c) CPU throttled 4× (`Emulation.setCPUThrottlingRate`) | 16.7 ms / 83.4 ms / 102 / 41.5 | 16.7 ms / 16.7 ms / 0 / 59.9 | + +For a like-for-like software check at device pixel ratio 1 (where the night version starts at its lowest resolution): before 417 ms median, 1050 ms p95, 2.2 fps; after 16.7 ms, 33.4 ms, 50 fps. + +Where the time went before, and what fixed it: + +- CPU: a JS profile of the opening at 4× throttle spent 3.2 s of 10 s in `texSubImage2D`, re-uploading the 2048×1296 transcript texture whenever a character was typed, a line faded or the spinner turned. Now 39 ms (per-line strips). `updateTags` (layout thrash from reading `offsetWidth` per label per frame) went from 420 ms to 31 ms. +- GPU: a synchronous render of a mid-film frame took 11.5 ms at ratio 2, of which the transmission pass was about half (5.6 ms without it); at ratio 1, 7.7 ms. Now 2.6 ms at ratio 1.5 and 2.1 ms at ratio 1, with no transmission pass and no spotlights or point light (one hemisphere and one directional light). + +The targets (60 fps locked on an M1 MacBook Air at 1440×900; at least 40 fps without long frames on an Intel Mac with integrated graphics) were not measured on those machines. The headroom above (a full frame at about 2.6 ms of synchronous GPU work on an M2 Max at ratio 1.5, and a smooth film on a software rasteriser) is the evidence; the benchmark and runtime monitor lower the resolution on anything slower. + +## Accessibility and fallbacks + +- The whole story is real text in an ordered list (`.akhw-steps`); the on-stage caption is a visual copy of it. The prompt is an `alertdialog` with real buttons. +- `prefers-reduced-motion: reduce`: no animation. The stage shows the final composed frame, all six steps are listed in full, and the prompt sits under the scene; choosing Deny re-renders the still for that ending. +- No WebGL2: a pre-rendered poster (`site/how/img/poster-*-wide|tall.webp`, the morning final frame) plus the same still telling. + +## Where it lives + +- Built files: `site/how/` (`how.js`, `how.css`, `img/`, `THREE-LICENSE.txt`). The section markup and its `akhw-i18n` JSON are in `site/index.html` and `site/zh/index.html`; fonts come from `site/fonts/`. +- Source: this folder. It is not deployed. + +## Source and build + +This folder holds the readable source, every file under 600 lines: + +| File | What it holds | +|---|---| +| `how.src.js` | entry: renderer, render loop, sizing, start-up, debug hook, still telling | +| `timing.js` | the film's clock and easings | +| `rig.js` | camera key frames and rails | +| `world.js` | the timeline: what every object does at a given time | +| `ui.js` | labels, captions, chapter rail, the prompt and countdown, endings | +| `quality.js` | GPU probe, benchmark and runtime resolution control | +| `scene.js` | the objects | +| `layout.js` | wide and portrait layouts and the paths between objects | +| `materials.js` | glass, desk, decal and dissolve shaders | +| `room.js` | the room the objects reflect | +| `transcript.js` | the transcript sheet and its per-line strips | +| `textures.js` | canvas drawing for cards, chip, site, program face, shadows, blurred shapes | + +Rebuild (exact versions are pinned in `package.json`): + +```sh +cd site-src/how +npm ci +npm run build # writes site/how/how.js +npm run license # copies three.js's LICENSE to site/how/THREE-LICENSE.txt +``` + +`npm run build` also runs `stamp.mjs`, which adds a content hash (`?v=`) to every script and stylesheet URL in both pages, so a browser never pairs new pages with an old cached file. Run `npm run stamp` after editing `site/style.css` or `site/motion.js` by hand. + + +## Fonts and text in images + +Only open fonts are shipped or rasterised: + +- Shipped web fonts: Hanken Grotesk (OFL) and IBM Plex Mono Regular, Latin-1 split, as published unmodified by IBM in the IBM/plex repository (OFL, reserved font name "Plex"). Licences are in `site/fonts/`. +- System fonts (PingFang SC, Songti SC, SF Mono and similar) are only named in CSS and canvas font stacks; they render on the visitor's own machine and nothing of them is shipped. +- Images that contain text are made only with open fonts: the vermilion seals (`site/assets/seal-*.webp`, `site/how/img/seal-zhun.webp`) are typeset in Source Han Serif CN Heavy, the No-WebGL posters are rendered with every system family name redirected to Source Han Sans CN, and the share images (`site/assets/og-*.jpg`) are set in Source Han Serif CN, Source Han Sans CN and Hanken Grotesk (Adobe's fonts are OFL). Re-render them the same way; never with a system font. + +## Notes + +- All secret values are absent by design: the scene shows names, notes and variable names only, and the value slots are empty. +- The walnut texture (`site/how/img/walnut.webp`) was generated for this piece and made seamless (planks meet at the tile edge; the ends are cross-faded); the paper texture, seal and app icon come from the site's own assets. Fonts are the site's Hanken Grotesk and IBM Plex Mono (OFL, licences in `site/fonts/`). +- Verified in headless Google Chrome (Metal) at 1440×900, 1920×1080 and 390×844, both languages, both endings, Esc/pending, Details, chapter seeking and reduced motion, with no console errors and no requests to other hosts. Safari was not tested directly; the code uses WebGL2, standard CSS with `-webkit-` prefixes where needed, and canvas shadows instead of `ctx.filter` for its blurs. diff --git a/site-src/how/how.src.js b/site-src/how/how.src.js new file mode 100644 index 0000000..91ddafc --- /dev/null +++ b/site-src/how/how.src.js @@ -0,0 +1,278 @@ +// Ask Key — "How it works", told as one unbroken camera move across a desk +// in morning light that stops and waits for the reader to approve (or deny) +// the request. +// +// Rendering budget: one pass, no transmission or shadow maps, pixel ratio +// capped and set from a benchmark, and frames are drawn only when something +// moves: while the film plays, at a reduced rate behind the approval prompt, +// and on demand (pointer, resize) before and after. +import * as THREE from "three"; +import { buildScene, BG } from "./scene.js"; +import { buildRails, placeCamera } from "./rig.js"; +import { createWorld } from "./world.js"; +import { createUI } from "./ui.js"; +import { probeGPU, createQuality } from "./quality.js"; +import { PRE, POST, kindOf, outcomeOf } from "./timing.js"; + +const root = document.querySelector(".akhw"); +if (root) init(root); + +function init(root) { + const I = JSON.parse(root.querySelector(".akhw-i18n").textContent); + const $ = (s) => root.querySelector(s); + const stage = $(".akhw-stage"), canvas = $(".akhw-canvas"); + const params = new URLSearchParams(location.search); + const reduced = matchMedia("(prefers-reduced-motion: reduce)").matches || params.has("still"); + const S = { phase: "idle", T: 0, u: 0, decision: null, started: false, visible: false, later: false, gateAt: 0, ended: false }; + + // ------------------------------------------------------------ renderer + const gpu = probeGPU(); + let renderer = null; + if (gpu) try { + renderer = new THREE.WebGLRenderer({ canvas, antialias: !gpu.software, alpha: false, powerPreference: "high-performance" }); + } catch (e) { + renderer = null; + } + if (!renderer || !renderer.capabilities.isWebGL2) { + root.classList.add("no-gl", "is-still"); + stillTelling(null); + return; + } + renderer.setClearColor(BG, 1); + renderer.outputColorSpace = THREE.SRGBColorSpace; + renderer.toneMapping = THREE.NeutralToneMapping; + renderer.toneMappingExposure = 1.0; + const gl = renderer.getContext(); + const Q = createQuality(gpu, params); + + const asset = (p) => new URL(p, import.meta.url).href; + const paper = new Image(); + paper.src = asset("img/paper.jpg"); + const W = buildScene(renderer, I, paper, { wood: asset("img/walnut.webp"), seal: asset("img/seal-zhun.webp"), onTexture: () => wake(true) }); + const camera = new THREE.PerspectiveCamera(32, 1, 0.1, 100); + let rails = null; + const world = createWorld(W, I, camera); + const ui = createUI({ root, I, S, W, camera, reduced, wake: () => wake(true), renderNow: () => frame(performance.now()) }); + + // ------------------------------------------------------------ one frame + const pointer = { x: 0, y: 0, sx: 0, sy: 0 }; + let clock = 0; // drives the slow drift and idle life; runs only while the film does + const px = new Uint8Array(4); + function frame(now) { + let shot; + if (S.phase === "pre" || S.phase === "idle") shot = rails.pre.at(S.T); + else if (S.phase === "gate") shot = rails.pre.at(PRE); + else shot = rails[kindOf(S.decision)].at(S.u); + placeCamera(camera, shot, clock, pointer, reduced ? 0 : 1); + camera.updateMatrixWorld(); + world.update(S, clock); + world.updateTranscript(S, clock); + const t0 = performance.now(); + renderer.render(W.scene, camera); + if (!Q.benchmarked && !reduced) { + gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, px); + Q.sample(performance.now() - t0); + if (Q.changed) { Q.changed = false; resize(); } + } + ui.updateTags(S); + ui.updateCaptions(S); + // the room fades up out of the page's white the first time it is seen + if (S.visible && !root.classList.contains("is-ready")) requestAnimationFrame(() => root.classList.add("is-ready")); + } + + // --------------------------------------------------------------- loop + let raf = 0, last = 0, lastDraw = 0, dirty = true, frozen = false; + function wake(markDirty) { + if (markDirty) dirty = true; + if (reduced) { if (rails) frame(performance.now()); return; } + if (!raf && rails && S.visible && !document.hidden) { + last = 0; + raf = requestAnimationFrame(tick); + } + } + function tick(now) { + raf = 0; + const dt = last ? Math.min(0.05, (now - last) / 1000) : 0; + last = now; + const playing = S.started && !frozen && (S.phase === "pre" || S.phase === "post"); + if (playing) { + clock += dt; + if (S.phase === "pre") { + S.T += dt; + if (S.T >= PRE) ui.enterGate(); + } else { + S.u += dt; + const k = kindOf(S.decision); + if (S.u >= POST[k]) { + S.u = POST[k]; + S.phase = "end"; + ui.showEnd(); + } + } + } else if (S.phase === "gate" && !frozen) clock += dt; + ui.tickCountdown(now); + pointer.sx += (pointer.x - pointer.sx) * 0.06; + pointer.sy += (pointer.y - pointer.sy) * 0.06; + const easing = Math.abs(pointer.x - pointer.sx) + Math.abs(pointer.y - pointer.sy) > 0.002; + // Behind the prompt the scene is blurred and barely moves: 20 fps is + // plenty, 30 when the prompt is set aside. + const gateDue = S.phase === "gate" && now - lastDraw >= (S.later ? 30 : 46); + if (playing || dirty || easing || gateDue || !Q.benchmarked) { + dirty = false; + lastDraw = now; + frame(now); + if (playing && Q.frame(dt)) resize(); + } + if ((playing || S.phase === "gate" || easing || dirty || !Q.benchmarked) && S.visible && !document.hidden) raf = requestAnimationFrame(tick); + } + function sleep() { + cancelAnimationFrame(raf); + raf = 0; + } + + stage.addEventListener("pointermove", (e) => { + if (e.pointerType !== "mouse" || reduced) return; + const r = stage.getBoundingClientRect(); + pointer.x = ((e.clientX - r.left) / r.width) * 2 - 1; + pointer.y = ((e.clientY - r.top) / r.height) * 2 - 1; + wake(); + }); + stage.addEventListener("pointerleave", () => { pointer.x = 0; pointer.y = 0; wake(); }); + + // ------------------------------------------------------------- sizing + function resize() { + const w = stage.clientWidth, h = stage.clientHeight; + if (!w || !h) return; + renderer.setPixelRatio(Q.dpr); + renderer.setSize(w, h, false); + W.uFloor.uView.value.set(w * Q.dpr, h * Q.dpr); + camera.aspect = w / h; + const kind = w / h >= 1.02 ? "wide" : "tall"; + camera.fov = kind === "wide" ? 32 : 46; + if (kind !== W.L.kind) { + W.setLayout(kind); + rails = buildRails(W.L); + } + // keep the cast clear of the caption in the top-left on wide screens + if (kind === "wide") camera.setViewOffset(w, h, 0, -h * 0.045, w, h); + else camera.clearViewOffset(); + camera.updateProjectionMatrix(); + ui.measure(); + // a resized canvas is blank until drawn again + if (rails && S.phase !== "idle") frame(performance.now()); + } + + // ------------------------------------------------------------- start + W.setLayout(stage.clientWidth / Math.max(1, stage.clientHeight) >= 1.02 ? "wide" : "tall"); + rails = buildRails(W.L); + + const fontsReady = Promise.all([ + document.fonts.load('400 40px "IBM Plex Mono"'), + document.fonts.load('500 40px "Hanken Grotesk"'), + document.fonts.load('600 40px "Hanken Grotesk"'), + new Promise((r) => (paper.complete ? r() : (paper.onload = paper.onerror = r))), + ]).catch(() => {}); + + fontsReady.then(async () => { + W.redrawCards(); + // every program the film will need is compiled before it starts, so no + // object appearing mid-film can stall a frame + resize(); + world.update(S, 0); + try { + await (renderer.compileAsync ? renderer.compileAsync(W.scene, camera) : renderer.compile(W.scene, camera)); + } catch (e) { /* compiled lazily instead */ } + // and every texture is on the GPU before it is first seen + W.scene.traverse((o) => o.material && o.material.map && renderer.initTexture(o.material.map)); + S.phase = "pre"; + S.T = 0; + new ResizeObserver(() => resize()).observe(stage); + if (reduced) { + root.classList.add("is-still"); + S.started = true; + S.decision = "once"; + S.phase = "end"; + S.u = POST.allow; + stillTelling(() => frame(performance.now())); + frame(performance.now()); + return; + } + frame(performance.now()); + const io = new IntersectionObserver( + (entries) => { + const e = entries[0]; + S.visible = e.isIntersecting; + if (e.intersectionRatio >= 0.55 && !S.started) S.started = true; + if (S.visible) wake(true); else sleep(); + // A scroll that lands while the observer is being set up can leave it + // reporting a stale ratio with no later crossing: confirm by hand. + if (S.visible && !S.started) setTimeout(confirmStart, 250); + }, + { threshold: [0, 0.55] } + ); + function confirmStart() { + if (S.started || !S.visible) return; + const r = stage.getBoundingClientRect(); + const seen = Math.min(r.bottom, innerHeight) - Math.max(r.top, 0); + if (seen >= 0.55 * r.height) { S.started = true; wake(true); } else setTimeout(confirmStart, 250); + } + io.observe(stage); + document.addEventListener("visibilitychange", () => (document.hidden ? sleep() : wake(true))); + }); + + // Debug hook for headless verification only: ?debug exposes a seek. + if (params.has("debug")) { + window.__akhw = { + S, + Q, + gpu, + W, + renderer, + camera, + go(phase, t, decision) { + ui.hideEnd(); + S.started = true; + if (phase === "gate") { S.phase = "pre"; S.T = PRE - 0.01; S.decision = null; wake(true); return; } + if (phase !== "pre" && S.phase === "gate") { ui.hideAlert(true); root.classList.remove("is-gate", "is-later"); } + S.phase = phase; + if (phase === "pre") S.T = t; else S.u = t; + S.decision = decision ?? S.decision; + if (phase === "post" && t >= POST[kindOf(S.decision)]) { S.phase = "end"; S.u = POST[kindOf(S.decision)]; ui.showEnd(); } + wake(true); + }, + gate() { ui.enterGate(); wake(true); }, + freeze(v) { frozen = !!v; if (!v) wake(true); }, + render() { frame(performance.now()); }, + decide: ui.decide, + }; + } + + // Still telling: the prompt sits under the scene; choosing re-renders the + // last frame for that outcome. + function stillTelling(render) { + root.dataset.outcome = "allow"; + const lede = $(".akhw-lede"); + if (lede && lede.dataset.still) lede.textContent = lede.dataset.still; + const alert = $(".akhw-alert"); + const holder = document.createElement("div"); + holder.className = "akhw-still-alert"; + stage.after(holder); + holder.appendChild(alert); + alert.hidden = false; + $(".akhw-hint").hidden = true; + alert.querySelector(".akhw-alert-foot").hidden = true; + alert.addEventListener("click", (e) => { + const b = e.target.closest("[data-decide]"); + if (!b) return; + S.decision = b.dataset.decide; + S.u = POST[kindOf(S.decision)]; + S.phase = "end"; + root.dataset.outcome = outcomeOf(S.decision); + if (render) render(); + }); + if (!render) { + const img = $(".akhw-poster img"); + if (img) img.loading = "eager"; + } + } +} diff --git a/site-src/how/layout.js b/site-src/how/layout.js new file mode 100644 index 0000000..f28d0ad --- /dev/null +++ b/site-src/how/layout.js @@ -0,0 +1,85 @@ +// Where everything stands, for a wide screen or a phone held upright, and +// the paths the cards, the request, the key and the result travel along. +import * as THREE from "three"; + +const V3 = (x, y, z) => new THREE.Vector3(x, y, z); +// contact shadows fall away from the window (back left) +const CAST = V3(0.16, 0, 0.12); + +export function layoutScene(W, kind) { + const L = W.L; + const wide = kind === "wide"; + const A = wide ? V3(-3.05, 1.32, 0.9) : V3(-0.92, 1.0, 1.9); + const V = wide ? V3(0, 1.26, -2.3) : V3(0.02, 1.58, -2.5); + const P = wide ? V3(3.05, 0.62, 0.9) : V3(1.0, 0.48, 2.3); + const sA = wide ? 1 : 0.66, sV = wide ? 1 : 0.8, sP = wide ? 1 : 0.68; + const Wp = P.clone().add((wide ? V3(0, 1.62, -0.32) : V3(0.2, 1.4, -1.5)).multiplyScalar(sP)); + Object.assign(L, { kind, A, V, P, W: Wp, sA, sV, sP }); + + const onDesk = (m, p, s, sx, sz, lift = 0) => { + m.position.set(p.x + CAST.x * p.y, 0.003 + lift, p.z + CAST.z * p.y); + m.scale.set(sx * s, sz * s, 1); + }; + W.agent.position.copy(A); W.agent.scale.setScalar(sA); + onDesk(W.agentShadow, A, sA, 3.2, 0.95); + onDesk(W.agentLight, A, sA, 2.6, 0.7, 0.001); + W.agentLight.position.x += 0.2 * sA; + W.agentLight.position.z += 0.35 * sA; + W.vault.position.copy(V); W.vault.scale.setScalar(sV); + onDesk(W.vaultShadow, V, sV, 2.0, 1.0); + onDesk(W.vaultTint, V, sV, 1.9, 1.1, 0.001); + W.vaultTint.position.z += 0.3 * sV; + W.prog.position.copy(P); W.prog.scale.setScalar(sP); + onDesk(W.progShadow, P, sP, 2.2, 1.6); + W.site.position.copy(Wp); W.site.scale.setScalar(sP); + onDesk(W.siteShadow, Wp, sP, 1.9, 0.5); + [W.card1, W.card2, W.slip].forEach((m) => m.scale.setScalar(wide ? 1 : 0.72)); + L.cardScale = wide ? 1.45 : 0.9; + W.chip.scale.setScalar(wide ? 1 : 0.7); + W.copy.scale.setScalar(wide ? 1.15 : 0.8); + W.dust.material.size = wide ? 0.03 : 0.022; + + const mid = (a, b, t = 0.5) => a.clone().lerp(b, t); + const off = (p, s, x, y, z) => p.clone().add(V3(x, y, z).multiplyScalar(s)); + const kh = W.keyhole; + L.keyholeW = off(P, sP, kh.x, kh.y, kh.z); + L.catPath = new THREE.CatmullRomCurve3([off(V, sV, -0.55, 0.35, 0.45), mid(A, V).add(V3(-0.1, 0.7 * sV, wide ? 1.5 : 0.9)), off(A, sA, 0.55, 0.25, 0.4)], false, "centripetal"); + L.reqPath = new THREE.CatmullRomCurve3([off(A, sA, 1.05, 0.5, 0.05), mid(A, V).add(V3(0.35, 1.2 * sV, 0.2)), off(V, sV, -0.6, 0.62, 0.4)], false, "centripetal"); + L.keyPath = new THREE.CatmullRomCurve3( + [ + off(V, sV, 0.08, 0.0, 1.0), + off(V, sV, 0.75, 0.35, 1.45), + mid(V, P).add(V3(0.1, 0.55 * sV, wide ? 1.55 : 1.2)), + L.keyholeW.clone().add(V3(-0.55, 0.32, 0.7).multiplyScalar(sP)), + L.keyholeW.clone().add(V3(0, 0.05, 0.26).multiplyScalar(sP)), + L.keyholeW.clone().add(V3(0, 0, 0.015).multiplyScalar(sP)), + ], + false, + "centripetal" + ); + L.outPath = new THREE.CatmullRomCurve3([off(P, sP, -0.8, 0.12, 0.45), mid(P, A).add(V3(0, 0.3, wide ? 1.7 : 1.0)), off(A, sA, 1.1, -0.25, 0.3)], false, "centripetal"); + for (const [m, path] of [[W.reqThread, L.reqPath], [W.keyThread, L.keyPath], [W.outThread, L.outPath]]) { + m.geometry.dispose(); + m.geometry = new THREE.TubeGeometry(path, m.userData.segs, m.userData.radius * (wide ? 1 : 0.8), m.userData.radial, false); + m.geometry.setDrawRange(0, 0); + } + + W.copyGlow.scale.setScalar(wide ? 1.1 : 0.75); + L.slipRest = V3(V.x - 0.05 * sV, 0.012, V.z + 1.25 * sV); + L.slipRestQ = new THREE.Quaternion().setFromEuler(new THREE.Euler(-Math.PI / 2, 0, 0.12)); + W.slipShadow.position.set(L.slipRest.x + 0.02, 0.004, L.slipRest.z + 0.03); + W.slipShadow.rotation.z = -0.12; + W.slipShadow.scale.set(0.95 * (wide ? 1 : 0.72) * 1.2, 0.58 * (wide ? 1 : 0.72) * 1.2, 1); + + // framing sphere for the whole cast + const parts = [[A, 1.55 * sA], [V, 1.15 * sV], [P, 0.95 * sP], [Wp, 0.95 * sP]]; + const box3 = new THREE.Box3(); + parts.forEach(([p, r]) => box3.expandByPoint(p.clone().addScalar(r)).expandByPoint(p.clone().subScalar(r))); + L.C = box3.getCenter(new THREE.Vector3()); + L.R = Math.max(...parts.map(([p, r]) => p.distanceTo(L.C) + r)) * (wide ? 0.74 : 0.86); + W.uFloor.uCenter.value.copy(L.C); + W.uFloor.uRad.value.set(wide ? 6.4 : 3.8, wide ? 14 : 9); + // the window patch falls across the AI's side of the desk, from the back left + W.uFloor.uWinO.value.set(wide ? A.x + 1.5 : A.x + 0.5, wide ? A.z - 1.3 : A.z - 1.4); + W.uFloor.uWinS.value.set(wide ? 1.9 : 1.15, wide ? 1.35 : 0.95); +} diff --git a/site-src/how/materials.js b/site-src/how/materials.js new file mode 100644 index 0000000..c241673 --- /dev/null +++ b/site-src/how/materials.js @@ -0,0 +1,192 @@ +// Materials for the morning desk. None of them needs a second render of +// the scene: the glass is a premultiplied layer (a Fresnel-weighted body +// plus the environment's reflections), the desk is lit by a procedural +// window, and the delivered key dissolves in its own shader. +import * as THREE from "three"; + +// Glass without a transmission pass. Light reflected off the surface is +// added on top of whatever is behind it; the body itself is a thin tint +// that thickens toward grazing angles, the way the edges of a real slab of +// glass go dark and green. `edgeColor` pulls that body toward a fixed +// colour so the rim reads on a white page even where the light is flat. +export function glassMaterial({ + color = 0xffffff, + edgeColor = 0x6f8a86, + edgeMix = 0.6, + specEdge = 0, + base = 0.04, + edge = 0.6, + power = 2.4, + roughness = 0.04, + envMapIntensity = 1.4, + clearcoat = 0, + clearcoatRoughness = 0.06, + side = THREE.FrontSide, + key = "glass", +} = {}) { + const Physical = clearcoat > 0 ? THREE.MeshPhysicalMaterial : THREE.MeshStandardMaterial; + const m = new Physical({ color, roughness, metalness: 0, envMapIntensity, transparent: true, premultipliedAlpha: true, depthWrite: false, side }); + if (clearcoat > 0) Object.assign(m, { clearcoat, clearcoatRoughness }); + const u = { + uBase: { value: base }, + uEdge: { value: edge }, + uPow: { value: power }, + uEdgeColor: { value: new THREE.Color(edgeColor) }, + uEdgeMix: { value: edgeMix }, + uSpecEdge: { value: specEdge }, + }; + m.userData.u = u; + m.onBeforeCompile = (sh) => { + Object.assign(sh.uniforms, u); + sh.fragmentShader = sh.fragmentShader + .replace("#include ", "#include \nuniform float uBase, uEdge, uPow, uEdgeMix, uSpecEdge;\nuniform vec3 uEdgeColor;") + .replace( + "#include ", + `float gNV = clamp(abs(dot(normal, normalize(vViewPosition))), 0.0, 1.0); +float gF = pow(1.0 - gNV, uPow); +// what the surface reflects is light the background no longer sends through +float gR = 0.04 + 0.96 * pow(1.0 - gNV, 5.0); +float gA = clamp(uBase + uEdge * gF, 0.0, 1.0); +vec3 gBody = mix(totalDiffuse, uEdgeColor, uEdgeMix); +// thick glass seen edge-on shows its own dark body more than the room +vec3 gSpec = max(outgoingLight - totalDiffuse, vec3(0.0)) * (1.0 - uSpecEdge * gF); +gl_FragColor = vec4(gBody * gA + gSpec, clamp(gA + gR * (1.0 - gA) * (1.0 - uSpecEdge * gF), 0.0, 1.0));` + ) + .replace("#include ", ""); + }; + m.customProgramCacheKey = () => `akhw-${key}`; + return m; +} + +// A decal drawn in the opaque pass with alpha blending: it lands after the +// desk and before every transparent object, so it never needs sorting. +export function decalMaterial(params) { + return new THREE.MeshBasicMaterial({ + transparent: false, + blending: THREE.CustomBlending, + blendSrc: THREE.SrcAlphaFactor, + blendDst: THREE.OneMinusSrcAlphaFactor, + blendSrcAlpha: THREE.OneFactor, + blendDstAlpha: THREE.OneMinusSrcAlphaFactor, + depthWrite: false, + toneMapped: false, + ...params, + }); +} + +// The desk: oiled black walnut in early light. The scan is used in its own +// colour; a soft window falls across it with a satin sheen; and it fades +// into the page's white beyond the cast (all in one cheap unlit shader). +export function deskMaterial() { + const m = new THREE.MeshBasicMaterial({ color: 0xffffff, toneMapped: false }); + const u = { + uCenter: { value: new THREE.Vector3() }, + uRad: { value: new THREE.Vector2(5, 11) }, + uWhite: { value: 0 }, + uAsh: { value: new THREE.Color("#7a5643") }, + uGrain: { value: new THREE.Color("#4a3124") }, + uGain: { value: 1.12 }, + uSheen: { value: 0.07 }, + uShade: { value: 0.86 }, + uSun: { value: 0.5 }, + uWinO: { value: new THREE.Vector2(-1.2, -1.0) }, + uWinS: { value: new THREE.Vector2(3.6, 2.6) }, + uWinA: { value: 0.62 }, + uHasMap: { value: 0 }, + uView: { value: new THREE.Vector2(1, 1) }, + }; + m.userData.u = u; + m.onBeforeCompile = (sh) => { + Object.assign(sh.uniforms, u); + sh.vertexShader = sh.vertexShader + .replace("#include ", "#include \nvarying vec3 vWp;") + .replace("#include ", "#include \nvWp = (modelMatrix * vec4(transformed, 1.0)).xyz;"); + sh.fragmentShader = sh.fragmentShader + .replace( + "#include ", + `#include +varying vec3 vWp; +uniform vec3 uCenter, uAsh, uGrain; +uniform vec2 uRad, uWinO, uWinS, uView; +uniform float uWhite, uShade, uSun, uWinA, uHasMap, uGain, uSheen; +float akBand(float x, float h, float s) { return smoothstep(-h - s, -h + s, x) * (1.0 - smoothstep(h - s, h + s, x)); } +float akBars(float x, float pitch, float bar, float s) { float d = abs(fract(x / pitch + 0.5) - 0.5) * pitch; return smoothstep(bar - s, bar + s, d); }` + ) + .replace( + "#include ", + `#ifdef USE_MAP + vec4 akT = texture2D(map, vMapUv); + diffuseColor.rgb = mix(mix(uGrain, uAsh, 0.5), akT.rgb * uGain, uHasMap); +#else + diffuseColor.rgb = mix(uGrain, uAsh, 0.82); +#endif + // a tall window to the back left: four soft panes, then a broad falloff + float akC = cos(uWinA), akS = sin(uWinA); + vec2 akQ = mat2(akC, -akS, akS, akC) * (vWp.xz - uWinO); + akQ.x += akQ.y * 0.32; + float akWin = akBand(akQ.x, uWinS.x, 0.45) * akBand(akQ.y, uWinS.y, 0.55); + akWin *= akBars(akQ.x, uWinS.x, 0.1, 0.16) * akBars(akQ.y + uWinS.y, uWinS.y, 0.08, 0.16); + float akFall = 1.0 - smoothstep(-6.0, 9.0, dot(vWp.xz - uWinO, vec2(0.55, 0.83))); + // as an ending closes the window light thins out with the room + diffuseColor.rgb *= uShade + (uSun * akWin + 0.06 * akFall) * (1.0 - uWhite); + // hand-rubbed oil: the window reads as a soft satin sheen on the wood + diffuseColor.rgb += vec3(1.0, 0.96, 0.9) * uSheen * akWin * (1.0 - uWhite);` + ) + .replace( + "#include ", + `#include +float akD = length((vWp.xz - uCenter.xz) * vec2(0.8, 1.15)); +float akR0 = mix(uRad.x, uRad.x * 0.2, uWhite), akR1 = mix(uRad.y, uRad.x * 0.85, uWhite); +float akFar = smoothstep(akR0, akR1, akD); +// the desk runs off both sides of the window; only the top and bottom of +// the frame soften into the page +float akY = gl_FragCoord.y / uView.y; +float akEdge = 1.0 - smoothstep(0.0, 0.12, akY) * (1.0 - smoothstep(0.86, 1.0, akY)); +float akW = max(akFar, akEdge); +// a whisper of noise keeps the long fade free of bands +akW = clamp(akW + (fract(sin(dot(gl_FragCoord.xy, vec2(12.9898, 78.233))) * 43758.5453) - 0.5) / 255.0, 0.0, 1.0); +gl_FragColor.rgb = mix(gl_FragColor.rgb, vec3(1.0), akW);` + ); + }; + m.customProgramCacheKey = () => "akhw-desk"; + return m; +} + +// The delivered copy of the key burns away from its tip: noise discard plus +// a hot edge. +export function dissolveMaterial(base) { + const uDis = { value: 0 }; + const m = base.clone(); + m.onBeforeCompile = (sh) => { + sh.uniforms.uDis = uDis; + sh.vertexShader = sh.vertexShader + .replace("#include ", "#include \nvarying vec3 vKeyPos;") + .replace("#include ", "#include \nvKeyPos = position;"); + sh.fragmentShader = sh.fragmentShader + .replace( + "#include ", + `#include +varying vec3 vKeyPos; +uniform float uDis; +float kh(vec3 p){ p = fract(p*0.3183099+.1); p*=17.0; return fract(p.x*p.y*p.z*(p.x+p.y+p.z)); } +float kn(vec3 x){ vec3 i=floor(x); vec3 f=fract(x); f=f*f*(3.0-2.0*f); + return mix(mix(mix(kh(i+vec3(0,0,0)),kh(i+vec3(1,0,0)),f.x),mix(kh(i+vec3(0,1,0)),kh(i+vec3(1,1,0)),f.x),f.y), + mix(mix(kh(i+vec3(0,0,1)),kh(i+vec3(1,0,1)),f.x),mix(kh(i+vec3(0,1,1)),kh(i+vec3(1,1,1)),f.x),f.y),f.z); }` + ) + .replace( + "#include ", + `#include +float kN = kn(vKeyPos*26.0)*0.65 + kn(vKeyPos*61.0)*0.35; +float kD = uDis*1.15 - 0.08 + (vKeyPos.x+0.5)*0.25; +if (kN < kD) discard; +float kEdge = 1.0 - smoothstep(kD, kD+0.07, kN);` + ) + .replace( + "#include ", + `#include +totalEmissiveRadiance += vec3(1.0, 0.42, 0.2) * kEdge * step(0.001, uDis) * 2.2;` + ); + }; + m.customProgramCacheKey = () => "akhw-dissolve"; + return { mat: m, uDis }; +} diff --git a/site-src/how/package-lock.json b/site-src/how/package-lock.json new file mode 100644 index 0000000..0401b7a --- /dev/null +++ b/site-src/how/package-lock.json @@ -0,0 +1,92 @@ +{ + "name": "askkey-how-it-works", + "version": "2.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "askkey-how-it-works", + "version": "2.0.0", + "license": "UNLICENSED", + "devDependencies": { + "esbuild": "0.25.10", + "three": "0.186.0" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", + "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/esbuild": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", + "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.10", + "@esbuild/android-arm": "0.25.10", + "@esbuild/android-arm64": "0.25.10", + "@esbuild/android-x64": "0.25.10", + "@esbuild/darwin-arm64": "0.25.10", + "@esbuild/darwin-x64": "0.25.10", + "@esbuild/freebsd-arm64": "0.25.10", + "@esbuild/freebsd-x64": "0.25.10", + "@esbuild/linux-arm": "0.25.10", + "@esbuild/linux-arm64": "0.25.10", + "@esbuild/linux-ia32": "0.25.10", + "@esbuild/linux-loong64": "0.25.10", + "@esbuild/linux-mips64el": "0.25.10", + "@esbuild/linux-ppc64": "0.25.10", + "@esbuild/linux-riscv64": "0.25.10", + "@esbuild/linux-s390x": "0.25.10", + "@esbuild/linux-x64": "0.25.10", + "@esbuild/netbsd-arm64": "0.25.10", + "@esbuild/netbsd-x64": "0.25.10", + "@esbuild/openbsd-arm64": "0.25.10", + "@esbuild/openbsd-x64": "0.25.10", + "@esbuild/openharmony-arm64": "0.25.10", + "@esbuild/sunos-x64": "0.25.10", + "@esbuild/win32-arm64": "0.25.10", + "@esbuild/win32-ia32": "0.25.10", + "@esbuild/win32-x64": "0.25.10" + } + }, + "node_modules/playwright-core": { + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz", + "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/three": { + "version": "0.186.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.186.0.tgz", + "integrity": "sha512-cr/fIM2ddMSVbYVgkfD4jLJv7Fh/8ZTjvo+7gQeSVGUZHxpx9FDwoL5iC7hUz/LiRA8wMbqfnb90xKfm1/HHkQ==", + "license": "MIT" + } + } +} diff --git a/site-src/how/package.json b/site-src/how/package.json new file mode 100644 index 0000000..df412c4 --- /dev/null +++ b/site-src/how/package.json @@ -0,0 +1,17 @@ +{ + "name": "askkey-how-it-works", + "private": true, + "version": "2.0.0", + "description": "Ask Key \"How it works\" film for the website. Source for site/how/how.js.", + "license": "MIT", + "type": "module", + "scripts": { + "build": "esbuild how.src.js --bundle --format=esm --minify --target=es2020,safari15 --legal-comments=none --banner:js=\"/*! Ask Key: How it works. Includes three.js r186, MIT License, Copyright 2010-2026 three.js authors; full text in THREE-LICENSE.txt next to this file. */\" --outfile=../../site/how/how.js && node stamp.mjs", + "license": "cp node_modules/three/LICENSE ../../site/how/THREE-LICENSE.txt", + "stamp": "node stamp.mjs" + }, + "devDependencies": { + "esbuild": "0.25.10", + "three": "0.186.0" + } +} diff --git a/site-src/how/quality.js b/site-src/how/quality.js new file mode 100644 index 0000000..1fcde10 --- /dev/null +++ b/site-src/how/quality.js @@ -0,0 +1,73 @@ +// Resolution is the one knob that matters: every material here is cheap +// per pixel, so frame cost scales with the drawing buffer. The pixel ratio +// starts capped (1.5, or 1 on a software renderer), is set from a short +// timed benchmark of the first real frames, and steps down if the film +// starts dropping frames. It never steps back up above what the benchmark +// allowed, so it cannot oscillate. +export function probeGPU() { + let gl = null; + try { + gl = document.createElement("canvas").getContext("webgl2"); + } catch (e) { + gl = null; + } + if (!gl) return null; + const dbg = gl.getExtension("WEBGL_debug_renderer_info"); + const name = String(dbg ? gl.getParameter(dbg.UNMASKED_RENDERER_WEBGL) : gl.getParameter(gl.RENDERER)); + gl.getExtension("WEBGL_lose_context")?.loseContext(); + return { name, software: /swiftshader|llvmpipe|softpipe|software|basic render/i.test(name) }; +} + +const FLOOR = 0.5; // never render below half the CSS resolution +const BUDGET = 7.5; // ms of synchronous render cost we accept per frame + +export function createQuality(gpu, params) { + const device = Math.max(1, window.devicePixelRatio || 1); + const forced = params.has("dpr") ? Number(params.get("dpr")) : 0; + const cap = forced || Math.min(device, gpu.software ? 1 : 1.5); + const q = { dpr: cap, max: cap, benchmarked: !!forced || params.has("nobench"), changed: false }; + let win = [], hold = 0, smooth = 0; + + // `sample(ms)` is called with the synchronous cost of each of the first + // frames rendered with a forced GPU sync; three samples decide. + const bench = []; + q.sample = (ms) => { + if (q.benchmarked) return false; + bench.push(ms); + // the first frame carries one-off uploads, so the next two decide; a + // hopeless frame on a slow machine is enough on its own + if (bench.length < 3 && ms < 250) return true; + const cost = bench.length >= 3 ? Math.min(bench[1], bench[2]) : ms; + q.benchmarked = true; + if (cost > BUDGET) { + const next = Math.max(FLOOR, Math.round(q.dpr * Math.sqrt(BUDGET / cost) * 20) / 20); + if (next < q.dpr - 0.01) { + q.dpr = q.max = next; + q.changed = true; + } + } + return false; + }; + + // `frame(dt)` is called every played frame with the interval since the + // last one, in seconds. Returns true when the resolution changed. + q.frame = (dt) => { + if (forced || dt <= 0 || dt > 0.25) return false; + smooth = smooth ? smooth * 0.9 + dt * 0.1 : dt; + if (hold > 0) { hold--; return false; } + win.push(dt); + if (win.length < 40) return false; + const sorted = win.slice().sort((a, b) => a - b); + win = []; + const p75 = sorted[Math.floor(sorted.length * 0.75)]; + if (p75 > 0.0205 && q.dpr > FLOOR) { + // a quarter fewer pixels each step + q.dpr = q.max = Math.max(FLOOR, Math.round(q.dpr * 0.87 * 20) / 20); + hold = 30; // let the new size settle before judging again + return true; + } + return false; + }; + q.fps = () => (smooth ? 1 / smooth : 0); + return q; +} diff --git a/site-src/how/rig.js b/site-src/how/rig.js new file mode 100644 index 0000000..79297fb --- /dev/null +++ b/site-src/how/rig.js @@ -0,0 +1,112 @@ +// The camera: one unbroken move. A key frame names what to look at, from +// which direction, and how big a sphere around it must fit in the frame. +// Distance follows from the viewport, so the same move recomposes itself +// for a phone held upright. +import * as THREE from "three"; +import { PRE, POST, clamp, smooth } from "./timing.js"; + +const kf = (t, target, dir, r) => ({ t, target, dir: new THREE.Vector3(...dir).normalize(), r }); +const lerpV = (a, b, t) => a.clone().lerp(b, t); + +export function buildRails(L) { + const { A, V, P, W: Wp, C, R, sA, sV, sP } = L; + const v = (x, y, z) => new THREE.Vector3(x, y, z); + const at = (p, s, x, y, z) => p.clone().add(v(x, y, z).multiplyScalar(s)); + const tall = L.kind === "tall"; + const k = tall ? 1.15 : 1; + const gate = kf(PRE, v(V.x, V.y * 0.55, V.z + 0.55 * sV), [0, 0.3, 1], 1.5 * sV * k); + const pre = [ + kf(0, C.clone().add(v(0, 0.15, 0)), [0.02, tall ? 1.0 : 0.55, 1], R * (tall ? 0.92 : 1.04)), + kf(1.4, C.clone().add(v(-0.2, 0.1, 0)), [0.08, 0.48, 1], R * 0.92), + kf(3.0, at(A, sA, 0.05, 0.08, 0), [0.16, 0.1, 1], 1.18 * sA * k), + kf(4.2, at(A, sA, 0.12, 0.02, 0), [0.24, 0.13, 1], 1.3 * sA * k), + kf(6.0, lerpV(A, V, 0.48).add(v(0, 0.15, 0.2)), [0.22, 0.42, 1], tall ? R * 0.78 : 2.95), + kf(8.0, lerpV(A, V, 0.4).add(v(0, 0.05, 0.3)), [0.05, 0.36, 1], tall ? R * 0.74 : 2.75), + kf(9.8, at(A, sA, 0.55, 0.15, 0), [0.42, 0.22, 1], 1.75 * sA * k), + kf(12.0, lerpV(A, V, 0.7).add(v(0, 0.45 * sV, 0)), [-0.2, 0.22, 1], tall ? R * 0.62 : 1.95), + kf(13.3, v(V.x, V.y * 0.62, V.z + 0.45 * sV), [-0.06, 0.26, 1], 1.55 * sV * k), + gate, + ]; + const allow = [ + { ...gate, t: 0 }, + kf(0.9, v(V.x, V.y * 0.5, V.z + 0.7 * sV), [0.04, 0.42, 1], 1.25 * sV * k), + kf(2.2, at(V, sV, 0.25, 0.1, 0.6), [0.4, 0.14, 1], 1.15 * sV * k), + kf(3.6, lerpV(V, P, 0.55).add(v(0.2, 0.75 * sV, 0.6)), [0.12, 0.38, 1], tall ? R * 0.7 : 2.35), + kf(4.9, at(L.keyholeW, 1, 0.1 * sP, 0.02, 0.3 * sP), [-0.5, 0.16, 1], 0.92 * sP * k), + kf(6.2, at(L.keyholeW, 1, 0.35 * sP, 0.05, 0.15 * sP), [-0.36, 0.12, 1], 1.0 * sP * k), + kf(7.5, lerpV(P, Wp, 0.62), [-0.3, 0.18, 1], 1.55 * sP * k), + kf(9.0, lerpV(P, A, 0.5).add(v(0, 0.35, 0.6)), [0, 0.32, 1], tall ? R * 0.85 : 3.6), + kf(10.4, at(A, sA, 0.15, 0.02, 0), [0.2, 0.12, 1], 1.32 * sA * k), + kf(11.6, at(A, sA, 0.2, 0.05, 0), [0.28, 0.18, 1], 1.45 * sA * k), + kf(14.4, C.clone().add(v(0, 0.12, 0)), [0.0, tall ? 1.15 : 0.6, 1], R * (tall ? 0.94 : 1.0)), + kf(POST.allow, C.clone().add(v(0, 0.12, 0)), [0.03, tall ? 1.12 : 0.58, 1], R * (tall ? 0.95 : 1.01)), + ]; + const deny = [ + { ...gate, t: 0 }, + kf(1.3, at(V, sV, 0, 0.05, 0), [0.12, 0.16, 1], 1.4 * sV * k), + kf(3.0, at(A, sA, 0.15, 0.02, 0), [0.22, 0.13, 1], 1.32 * sA * k), + kf(4.4, at(A, sA, 0.2, 0.05, 0), [0.28, 0.18, 1], 1.45 * sA * k), + kf(7.0, C.clone().add(v(0, 0.12, 0)), [0.0, tall ? 1.15 : 0.6, 1], R * (tall ? 0.94 : 1.0)), + kf(POST.deny, C.clone().add(v(0, 0.12, 0)), [0.03, tall ? 1.12 : 0.58, 1], R * (tall ? 0.95 : 1.01)), + ]; + return { pre: rail(pre), allow: rail(allow), deny: rail(deny) }; +} + +// Catmull-Rom through the key frames, with a monotone time warp so the +// camera never stops between frames: one continuous move. `at` writes into +// a shot object it owns, so a frame allocates nothing. +function rail(keys) { + const n = keys.length; + const tgt = new THREE.CatmullRomCurve3(keys.map((k) => k.target), false, "centripetal"); + const dir = new THREE.CatmullRomCurve3(keys.map((k) => k.dir.clone()), false, "catmullrom", 0.5); + const ts = keys.map((k) => k.t), rs = keys.map((k) => Math.log(k.r)); + // Fritsch–Carlson slopes for index(t) + const d = []; + for (let i = 0; i < n - 1; i++) d.push(1 / (ts[i + 1] - ts[i])); + const m = [d[0]]; + for (let i = 1; i < n - 1; i++) m.push(d[i - 1] * d[i] <= 0 ? 0 : (2 * d[i - 1] * d[i]) / (d[i - 1] + d[i])); + m.push(d[n - 2]); + m[0] *= 0.15; // ease in from rest + const idx = (t) => { + if (t <= ts[0]) return 0; + if (t >= ts[n - 1]) return n - 1; + let i = 0; + while (t > ts[i + 1]) i++; + const h = ts[i + 1] - ts[i], s = (t - ts[i]) / h; + const h00 = 2 * s ** 3 - 3 * s ** 2 + 1, h10 = s ** 3 - 2 * s ** 2 + s, h01 = -2 * s ** 3 + 3 * s ** 2, h11 = s ** 3 - s ** 2; + return h00 * i + h10 * h * m[i] + h01 * (i + 1) + h11 * h * m[i + 1]; + }; + const rAt = (x) => { + const i = Math.min(n - 2, Math.floor(x)), f = x - i; + return Math.exp(rs[i] + (rs[i + 1] - rs[i]) * smooth(f)); + }; + const shot = { target: new THREE.Vector3(), dir: new THREE.Vector3(), r: 1 }; + return { + end: ts[n - 1], + at(t) { + const x = clamp(idx(t), 0, n - 1); + const u = x / (n - 1); + tgt.getPoint(u, shot.target); + dir.getPoint(u, shot.dir).normalize(); + shot.r = rAt(x); + return shot; + }, + }; +} + +const _d = new THREE.Vector3(); +export function placeCamera(camera, shot, clock, pointer, drift) { + const fovV = THREE.MathUtils.degToRad(camera.fov); + // An upright stage wider than a phone's (a tablet held upright) is framed + // as if it were phone-shaped, so the cast keeps clear of every edge. + const aspect = camera.aspect < 1.02 ? Math.min(camera.aspect, 0.75) : camera.aspect; + const fovH = 2 * Math.atan(Math.tan(fovV / 2) * aspect); + const lim = Math.min(fovV, fovH); + const dist = shot.r / Math.sin(lim / 2); + const d = _d.copy(shot.dir); + d.x += drift * (0.025 * Math.sin(clock * 0.23) + pointer.sx * 0.07); + d.y += drift * (0.018 * Math.sin(clock * 0.17 + 1.3) - pointer.sy * 0.045); + d.normalize(); + camera.position.copy(shot.target).addScaledVector(d, dist); + camera.lookAt(shot.target); +} diff --git a/site-src/how/room.js b/site-src/how/room.js new file mode 100644 index 0000000..63fef0b --- /dev/null +++ b/site-src/how/room.js @@ -0,0 +1,66 @@ +// The room the objects reflect: white walls, a pale desk, and a tall window +// to the back left, the same window whose light falls across the desk. It +// is rendered once into a prefiltered environment map at load; nothing in +// it is drawn per frame. +import * as THREE from "three"; + +export function daylightEnvironment(renderer) { + const room = new THREE.Scene(); + const box = new THREE.BoxGeometry(1, 1, 1); + const flat = (color, scale = 1) => { + const m = new THREE.MeshBasicMaterial({ color, side: THREE.BackSide, toneMapped: false }); + m.color.multiplyScalar(scale); + return m; + }; + const shell = new THREE.Mesh(box, [ + flat(0xeceae6, 0.95), // +x wall + flat(0xeceae6, 1.05), // -x wall (the window wall) + flat(0xf6f5f2, 1.1), // ceiling + flat(0xd8cbb9, 0.75), // the desk and floor below + flat(0xeceae6, 0.9), // +z + flat(0xeceae6, 1.0), // -z + ]); + shell.scale.set(22, 9, 22); + shell.position.y = 3; + room.add(shell); + // the window: four tall panes of soft sky, brighter than anything else + const pane = new THREE.MeshBasicMaterial({ color: 0xf4f8ff, side: THREE.DoubleSide, toneMapped: false }); + pane.color.multiplyScalar(4.2); + const pg = new THREE.PlaneGeometry(1, 1); + for (let i = 0; i < 2; i++) for (let j = 0; j < 2; j++) { + const p = new THREE.Mesh(pg, pane); + p.rotation.y = Math.PI / 2; + p.scale.set(2.3, 2.5, 1); + p.position.set(-10.9, 2.6 + j * 2.7, -5.2 + i * 2.5); + room.add(p); + } + // dark things across the room (a shelf, a doorway, the far end of the + // desk): glass and lacquer need something dark to reflect, or their edges + // vanish into a white room + const dark = new THREE.MeshBasicMaterial({ color: 0x2a2b2e, side: THREE.DoubleSide, toneMapped: false }); + [ + [10.9, 2.2, -2.0, -Math.PI / 2, 5.5, 3.2], + [10.9, 2.8, 4.5, -Math.PI / 2, 2.4, 5.0], + [-3.5, 2.4, 10.9, Math.PI, 6.0, 2.6], + [4.5, 1.6, -10.9, 0, 4.0, 2.0], + ].forEach(([x, y, z, ry, w, h]) => { + const f = new THREE.Mesh(pg, dark); + f.position.set(x, y, z); + f.rotation.y = ry; + f.scale.set(w, h, 1); + room.add(f); + }); + // a little light from the ceiling, as in a real room + const lamp = new THREE.Mesh(pg, new THREE.MeshBasicMaterial({ color: 0xffffff, side: THREE.DoubleSide, toneMapped: false })); + lamp.material.color.multiplyScalar(1.6); + lamp.rotation.x = Math.PI / 2; + lamp.scale.set(6, 4, 1); + lamp.position.set(1, 7.4, 2); + room.add(lamp); + + const pmrem = new THREE.PMREMGenerator(renderer); + const env = pmrem.fromScene(room, 0.03, 0.1, 60).texture; + pmrem.dispose(); + room.traverse((o) => o.geometry && o.geometry.dispose()); + return env; +} diff --git a/site-src/how/scene.js b/site-src/how/scene.js new file mode 100644 index 0000000..3383708 --- /dev/null +++ b/site-src/how/scene.js @@ -0,0 +1,309 @@ +// The four things on stage — the AI (a glass block with its transcript +// sealed inside), Ask Key (a frosted vault in the shape of the app icon, with +// the vermilion keys inside), the program ./deploy.sh (a graphite box with a +// keyhole) and the website it publishes — plus the paper slips and the +// threads that connect them, on an oiled walnut desk in morning light. +// Vermilion is reserved for the secret. +import * as THREE from "three"; +import { RoundedBoxGeometry } from "three/examples/jsm/geometries/RoundedBoxGeometry.js"; +import { mergeGeometries } from "three/examples/jsm/utils/BufferGeometryUtils.js"; +import { canvasTexture, drawCard, drawChip, drawSite, drawProgramFace, shadowTexture, dotTexture, glowTexture, blurredShapesTexture } from "./textures.js"; +import { glassMaterial, decalMaterial, deskMaterial, dissolveMaterial } from "./materials.js"; +import { createTranscript } from "./transcript.js"; +import { layoutScene } from "./layout.js"; +import { daylightEnvironment } from "./room.js"; + +export const ZHU = new THREE.Color("#b8281e"); +export const BG = "#ffffff"; +const V3 = (x, y, z) => new THREE.Vector3(x, y, z); +const V2 = (x, y) => new THREE.Vector2(x, y); + +function roundedPolygon(points, r) { + const s = new THREE.Shape(); + const n = points.length; + for (let i = 0; i < n; i++) { + const p = points[i], a = points[(i - 1 + n) % n], b = points[(i + 1) % n]; + const da = a.clone().sub(p).normalize().multiplyScalar(r); + const db = b.clone().sub(p).normalize().multiplyScalar(r); + const p1 = p.clone().add(da), p2 = p.clone().add(db); + if (i === 0) s.moveTo(p1.x, p1.y); else s.lineTo(p1.x, p1.y); + s.quadraticCurveTo(p.x, p.y, p2.x, p2.y); + } + s.closePath(); + return s; +} + +function capsulePath(cx, cy, w, h) { + const p = new THREE.Path(); + const r = h / 2; + p.moveTo(cx - w / 2 + r, cy - r); + p.lineTo(cx + w / 2 - r, cy - r); + p.absarc(cx + w / 2 - r, cy, r, -Math.PI / 2, Math.PI / 2, false); + p.lineTo(cx - w / 2 + r, cy + r); + p.absarc(cx - w / 2 + r, cy, r, Math.PI / 2, Math.PI * 1.5, false); + return p; +} + +// Key along +x: tip at the origin, bow at x = -0.5 (like the app icon's key). +function keyShapes() { + const s = 0.13; + const bow = roundedPolygon([V2(-0.5 - s, 0), V2(-0.5, -s), V2(-0.5 + s, 0), V2(-0.5, s)], 0.05); + const hole = new THREE.Path(); + hole.absarc(-0.5, 0, 0.043, 0, Math.PI * 2, true); + bow.holes.push(hole); + const shaft = roundedPolygon([V2(-0.42, -0.034), V2(0, -0.034), V2(0, 0.034), V2(-0.42, 0.034)], 0.02); + const t1 = roundedPolygon([V2(-0.11, -0.13), V2(-0.055, -0.13), V2(-0.055, -0.02), V2(-0.11, -0.02)], 0.018); + const t2 = roundedPolygon([V2(-0.035, -0.105), V2(0, -0.105), V2(0, -0.02), V2(-0.035, -0.02)], 0.014); + return [bow, shaft, t1, t2]; +} + +export function keyGeometry() { + const ex = { depth: 0.05, bevelEnabled: true, bevelThickness: 0.014, bevelSize: 0.012, bevelSegments: 3, curveSegments: 20 }; + const g = mergeGeometries(keyShapes().map((sh) => new THREE.ExtrudeGeometry(sh, ex))); + g.translate(0, 0, -0.025); + g.computeVertexNormals(); + return g; +} + +export function buildScene(renderer, I, paper, assets = {}) { + const scene = new THREE.Scene(); + scene.environment = daylightEnvironment(renderer); + scene.environmentIntensity = 1.0; + + // Morning: cool daylight from a window to the back left, a white room + // bouncing light back. No shadow maps; contact shadows are decals. + const sky = new THREE.HemisphereLight(0xf3f7ff, 0xe6dccf, 0.9); + const sun = new THREE.DirectionalLight(0xf2f6ff, 2.2); + sun.position.set(-5, 7, -4); + scene.add(sky, sun); + + // Images arrive after the programs are compiled. Each material starts + // with a 1×1 stand-in so its program already expects a texture, and the + // real one is swapped in without a recompile mid-film. + const standIn = () => { + const t = new THREE.DataTexture(new Uint8Array([255, 255, 255, 0]), 1, 1); + t.colorSpace = THREE.SRGBColorSpace; + t.needsUpdate = true; + return t; + }; + const floorMat = deskMaterial(); + const uFloor = floorMat.userData.u; + floorMat.map = standIn(); + floorMat.map.repeat.set(7, 7); + const floor = new THREE.Mesh(new THREE.PlaneGeometry(60, 60), floorMat); + floor.rotation.x = -Math.PI / 2; + scene.add(floor); + if (assets.wood) new THREE.TextureLoader().load(assets.wood, (tex) => { + tex.wrapS = tex.wrapT = THREE.RepeatWrapping; + // a tile is two planks, 5.5 wide by 4.25 deep: planks about 2 units + tex.repeat.set(60 / 5.5, 60 / 4.25); + tex.colorSpace = THREE.SRGBColorSpace; + tex.anisotropy = 8; + renderer.initTexture(tex); + floorMat.map = tex; + uFloor.uHasMap.value = 1; + if (assets.onTexture) assets.onTexture(); + }); + + const glowTex = glowTexture(); + const glow = (color, size, opacity = 1) => { + const sp = new THREE.Sprite(new THREE.SpriteMaterial({ map: glowTex, color, transparent: true, opacity, depthWrite: false, toneMapped: false })); + sp.scale.setScalar(size); + return sp; + }; + + // Soft contact shadows, cast away from the window and a little blue. + const shadowTex = shadowTexture(); + const shadow = (sx, sz, op = 1, color = 0x5b6475) => { + const m = new THREE.Mesh(new THREE.PlaneGeometry(1, 1), decalMaterial({ map: shadowTex, color, opacity: op })); + m.rotation.x = -Math.PI / 2; + m.scale.set(sx, sz, 1); + m.renderOrder = 1; + return m; + }; + + // --- The AI: clear glass, transcript sealed inside ------------------------- + const agent = new THREE.Group(); + // Back faces and front faces as two meshes (back first, by creation + // order): a double-sided transparent material would make three.js switch + // its side and look its program up twice every frame. + const clearGlass = { edgeColor: 0x3a525a, edgeMix: 1.0, specEdge: 0.7, base: 0.025, edge: 0.9, power: 2.2, roughness: 0.02, envMapIntensity: 1.2, key: "clear" }; + const slab = new RoundedBoxGeometry(2.6, 1.72, 0.3, 8, 0.12); + const glassBack = new THREE.Mesh(slab, glassMaterial({ ...clearGlass, side: THREE.BackSide, key: "clear-back" })); + agent.add(glassBack); + const glass = new THREE.Mesh(slab, glassMaterial({ ...clearGlass, side: THREE.FrontSide })); + agent.add(glass); + const term = createTranscript(I, paper); + // the sheet floats inside with a clear margin, so the glass reads as glass + term.group.scale.setScalar(0.9); + agent.add(term.group); + const agentShadow = shadow(3.2, 0.95, 0.62); + const agentLight = new THREE.Mesh(new THREE.PlaneGeometry(1, 1), decalMaterial({ map: glowTex, color: 0xffffff, opacity: 0.55 })); + agentLight.rotation.x = -Math.PI / 2; + agentLight.renderOrder = 1; + + // --- Ask Key: a frosted vault shaped like the app icon ------------------- + const vault = new THREE.Group(); + const W = 1.5, H = 1.86, c = 0.36; + const tag = roundedPolygon([V2(-W / 2, -H / 2), V2(W / 2, -H / 2), V2(W / 2, H / 2 - c), V2(W / 2 - c, H / 2), V2(-W / 2 + c, H / 2), V2(-W / 2, H / 2 - c)], 0.16); + tag.holes.push(capsulePath(0, H / 2 - 0.25, 0.44, 0.1)); + const vg = new THREE.ExtrudeGeometry(tag, { depth: 0.52, bevelEnabled: true, bevelThickness: 0.07, bevelSize: 0.06, bevelSegments: 6, curveSegments: 24 }); + vg.center(); + const vaultMat = glassMaterial({ color: 0xc7ced5, edgeColor: 0xf1f4f7, edgeMix: 0.3, base: 0.1, edge: 0.6, power: 1.6, roughness: 0.6, envMapIntensity: 0.8, clearcoat: 1, clearcoatRoughness: 0.05, side: THREE.FrontSide, key: "frost" }); + const vaultBody = new THREE.Mesh(vg, vaultMat); + vault.add(vaultBody); + // the frost scatters light inside: a soft milky core behind the keys hides + // the desk the way ground glass would, without blurring anything per frame + const coreTex = blurredShapesTexture([tag], { minX: -1.05, maxX: 1.05, minY: -1.2, maxY: 1.2, ppu: 128, blur: 40, color: "#eef1f4" }); + const core = new THREE.Mesh(new THREE.PlaneGeometry(2.1, 2.4), decalMaterial({ map: coreTex, opacity: 0.82 })); + core.position.z = -0.16; + core.scale.setScalar(0.9); + core.renderOrder = 1; + vault.add(core); + const kg = keyGeometry(); + const lacquer = new THREE.MeshPhysicalMaterial({ color: ZHU, roughness: 0.32, clearcoat: 1, clearcoatRoughness: 0.06, emissive: ZHU, emissiveIntensity: 0, envMapIntensity: 1.1 }); + // Inside the frosted glass the keys are seen softened but still readable + // as keys, drawn once into a lightly blurred texture. The sharp key exists only + // as the copy that is delivered. + const blurKey = blurredShapesTexture(keyShapes(), { minX: -0.78, maxX: 0.15, minY: -0.3, maxY: 0.3, ppu: 256, blur: 7, color: "#c22d1f", passes: 2 }); + const keyPlaneGeo = new THREE.PlaneGeometry(0.93, 0.6).translate(-0.315, 0, 0); + // Drawn just after the frosted shell (they sit a little in front of its + // centre, so depth sorting puts them there): a white veil over vermilion + // would turn it pink, and the blur already says "behind frosted glass". + const keyBlurMat = new THREE.MeshBasicMaterial({ map: blurKey, transparent: true, depthWrite: false, toneMapped: false, opacity: 0.92 }); + const vaultKeys = []; + [0.42, 0.0, -0.42].forEach((y, i) => { + const k = new THREE.Mesh(keyPlaneGeo, keyBlurMat); + k.rotation.z = -0.32 + i * 0.05; + // centre the key (its centre sits ~0.3 behind the tip) + k.position.set(0.3 * Math.cos(k.rotation.z), y + 0.3 * Math.sin(k.rotation.z) - 0.08, 0.05); + vault.add(k); + vaultKeys.push(k); + }); + const vaultShadow = shadow(2.0, 1.0, 0.55); + const vaultGlow = glow(0xd2402a, 3.0, 0.0); + vaultGlow.position.z = -0.4; + vault.add(vaultGlow); + // light through the red keys tints the desk under the vault + const vaultTint = new THREE.Mesh(new THREE.PlaneGeometry(1, 1), decalMaterial({ map: glowTex, color: 0xd8442c, opacity: 0 })); + vaultTint.rotation.x = -Math.PI / 2; + vaultTint.renderOrder = 1; + + // --- The program: a graphite box with a keyhole -------------------------- + const prog = new THREE.Group(); + const graphite = new THREE.MeshPhysicalMaterial({ color: 0x2b2c30, metalness: 0.5, roughness: 0.36, clearcoat: 0.6, clearcoatRoughness: 0.22, envMapIntensity: 0.75 }); + const box = new THREE.Mesh(new RoundedBoxGeometry(1.5, 0.92, 1.0, 6, 0.09), graphite); + prog.add(box); + const faceT = canvasTexture(1024, 614); + drawProgramFace(faceT, I); + const face = new THREE.Mesh(new THREE.PlaneGeometry(1.4, 0.84), new THREE.MeshBasicMaterial({ map: faceT.tex, transparent: true, toneMapped: false })); + face.position.z = 0.501; + prog.add(face); + const keyhole = V3(-0.44, 0.03, 0.5); + const ring = new THREE.Mesh(new THREE.RingGeometry(0.1, 0.118, 64), new THREE.MeshBasicMaterial({ color: 0xff4a32, transparent: true, opacity: 0, toneMapped: false })); + ring.position.copy(keyhole).add(V3(0, 0, 0.003)); + prog.add(ring); + const ringGlow = glow(0xff3b22, 0.9, 0); + ringGlow.position.copy(keyhole).add(V3(0, 0, 0.05)); + prog.add(ringGlow); + const leds = []; + const ledOff = new THREE.MeshBasicMaterial({ color: 0x47474b, toneMapped: false }); + const ledOn = new THREE.MeshBasicMaterial({ color: 0x5fe07f, toneMapped: false }); + const ledGeo = new THREE.CircleGeometry(0.016, 20); + for (let i = 0; i < 6; i++) { + const led = new THREE.Mesh(ledGeo, ledOff); + led.position.set(-0.17 + i * 0.058, -0.3, 0.503); + const lg = glow(0x34c759, 0.14, 0); + lg.position.copy(led.position).add(V3(0, 0, 0.01)); + prog.add(led, lg); + led.userData.glow = lg; + leds.push(led); + } + const progShadow = shadow(2.2, 1.6, 0.78); + + // --- The website it publishes ------------------------------------------- + const site = new THREE.Group(); + const frame = new THREE.Mesh(new RoundedBoxGeometry(1.74, 1.11, 0.03, 4, 0.014), new THREE.MeshStandardMaterial({ color: 0xdfe1e4, roughness: 0.42, metalness: 0.3 })); + site.add(frame); + const siteIdle = canvasTexture(1024, 650), siteLive = canvasTexture(1024, 650); + drawSite(siteIdle, I, false); + drawSite(siteLive, I, true); + const sIdle = new THREE.Mesh(new THREE.PlaneGeometry(1.7, 1.08), new THREE.MeshBasicMaterial({ map: siteIdle.tex, transparent: true, toneMapped: false })); + const sLive = new THREE.Mesh(new THREE.PlaneGeometry(1.7, 1.08), new THREE.MeshBasicMaterial({ map: siteLive.tex, transparent: true, opacity: 0, toneMapped: false })); + sIdle.position.z = 0.017; + sLive.position.z = 0.018; + site.add(sIdle, sLive); + const siteShadow = shadow(1.9, 0.5, 0.18); + + // --- Paper slips -------------------------------------------------------- + const cardMesh = (tex, w, h) => { + const m = new THREE.Mesh(new THREE.PlaneGeometry(w, h), new THREE.MeshBasicMaterial({ map: tex, transparent: true, toneMapped: false, side: THREE.DoubleSide, forceSinglePass: true, depthWrite: false })); + m.visible = false; + return m; + }; + const c1 = canvasTexture(640, 390), c2 = canvasTexture(640, 390), sl = canvasTexture(640, 390), ch = canvasTexture(560, 150); + const redrawCards = () => { + drawCard(c1, [[I.card.name, "name"], [I.card.note, "note"], [I.card.env, "mono"], [I.card.value, "empty"]], paper); + drawCard(c2, [[I.card.name2, "name"], [I.card.note2, "note"], [I.card.env2, "mono"], [I.card.value, "empty"]], paper); + drawCard(sl, [[I.slip.line1, "name"], [I.slip.line2, "mono"]], paper, { head: I.slip.head }); + drawChip(ch, I.chip); + term.redrawBase(); + }; + redrawCards(); + const card1 = cardMesh(c1.tex, 0.82, 0.5), card2 = cardMesh(c2.tex, 0.82, 0.5), slip = cardMesh(sl.tex, 0.82, 0.5), chip = cardMesh(ch.tex, 0.8, 0.214); + const seal = new THREE.Mesh(new THREE.PlaneGeometry(0.3, 0.3), new THREE.MeshBasicMaterial({ map: standIn(), transparent: true, opacity: 0, depthWrite: false, toneMapped: false, side: THREE.DoubleSide, forceSinglePass: true })); + seal.position.set(0.22, -0.03, 0.002); + seal.rotation.z = 0.06; + slip.add(seal); + if (assets.seal) new THREE.TextureLoader().load(assets.seal, (t) => { + t.colorSpace = THREE.SRGBColorSpace; + renderer.initTexture(t); + seal.material.map = t; + if (assets.onTexture) assets.onTexture(); + }); + const slipShadow = shadow(0.9, 0.55, 0); + + // --- The delivered copy of the key, and its dust ------------------------- + const { mat: copyMat, uDis } = dissolveMaterial(lacquer); + copyMat.emissiveIntensity = 0.1; + const copy = new THREE.Mesh(kg, copyMat); + copy.visible = false; + const copyGlow = glow(0xe0452c, 1.1, 0); + scene.add(copyGlow); + const DUST = 240; + const dustGeo = new THREE.BufferGeometry(); + dustGeo.setAttribute("position", new THREE.BufferAttribute(new Float32Array(DUST * 3), 3)); + const dust = new THREE.Points(dustGeo, new THREE.PointsMaterial({ color: 0xd2381f, size: 0.03, map: dotTexture(), transparent: true, depthWrite: false, opacity: 0, toneMapped: false })); + dust.visible = false; + dust.frustumCulled = false; + const seeds = Array.from({ length: DUST }, (_, i) => { + const r = (n) => { const x = Math.sin(i * 127.1 + n * 311.7) * 43758.5453; return x - Math.floor(x); }; + return { a: r(1) * Math.PI * 2, b: r(2) * 2 - 1, s: 0.25 + r(3) * 0.75, along: r(4), lift: 0.3 + r(5) * 0.8 }; + }); + + // --- Threads ------------------------------------------------------------ + const thread = (color, opacity, radius) => { + const m = new THREE.Mesh(new THREE.BufferGeometry(), new THREE.MeshBasicMaterial({ color, transparent: true, opacity, depthWrite: false, toneMapped: false })); + m.userData = { radius, segs: 260, radial: 8, base: opacity }; + m.frustumCulled = false; + return m; + }; + const reqThread = thread(0x3a3d44, 0.5, 0.0065); + const keyThread = thread(0xc42d1d, 1.0, 0.009); + const outThread = thread(0x3a3d44, 0.5, 0.0065); + + scene.add(agent, agentShadow, agentLight, vault, vaultShadow, vaultTint, prog, progShadow, site, siteShadow, card1, card2, slip, slipShadow, chip, copy, dust, reqThread, keyThread, outThread); + + const W_ = { + scene, floor, uFloor, agent, agentShadow, agentLight, vaultGlow, vaultTint, ringGlow, copyGlow, seal, glass, term, vault, vaultBody, vaultKeys, keyBlurMat, lacquer, + prog, progShadow, ring, leds, ledOn, ledOff, site, siteShadow, sLive, sIdle, card1, card2, slip, slipShadow, chip, copy, uDis, dust, seeds, reqThread, keyThread, outThread, + vaultShadow, keyhole, redrawCards, L: {}, + }; + W_.setLayout = (kind) => layoutScene(W_, kind); + W_.reveal = (m, p) => { + const per = m.userData.radial * 6; + m.geometry.setDrawRange(0, Math.floor(THREE.MathUtils.clamp(p, 0, 1) * m.userData.segs) * per); + m.visible = p > 0.001; + }; + return W_; +} diff --git a/site-src/how/stamp.mjs b/site-src/how/stamp.mjs new file mode 100644 index 0000000..f6d444a --- /dev/null +++ b/site-src/how/stamp.mjs @@ -0,0 +1,18 @@ +// Stamp each script and stylesheet URL in the site's pages with a hash of +// its content, so a browser never pairs new pages with an old cached file. +import { createHash } from "node:crypto"; +import { readFileSync, writeFileSync } from "node:fs"; + +const site = new URL("../../site/", import.meta.url); +const files = ["style.css", "motion.js", "how/how.css", "how/how.js"]; +const hash = Object.fromEntries(files.map((f) => [f, createHash("sha256").update(readFileSync(new URL(f, site))).digest("hex").slice(0, 10)])); +for (const page of ["index.html", "zh/index.html"]) { + const url = new URL(page, site); + let html = readFileSync(url, "utf8"); + for (const f of files) { + const re = new RegExp(`(["'])/${f.replace(/[./]/g, "\\$&")}(?:\\?v=[0-9a-f]+)?\\1`, "g"); + html = html.replace(re, (_, q) => `${q}/${f}?v=${hash[f]}${q}`); + } + writeFileSync(url, html); +} +console.log(hash); diff --git a/site-src/how/textures.js b/site-src/how/textures.js new file mode 100644 index 0000000..208e592 --- /dev/null +++ b/site-src/how/textures.js @@ -0,0 +1,315 @@ +// Canvas-drawn textures: every word inside the 3D scene is drawn here (or +// in transcript.js), from the page's own i18n block, so the scene speaks +// the page's language. All of it is drawn once, at load or when fonts arrive. +import * as THREE from "three"; + +export const MONO = '"IBM Plex Mono", "SF Mono", Menlo, "PingFang SC", "Hiragino Sans GB", monospace'; +export const SANS = '"Hanken Grotesk", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", system-ui, sans-serif'; +export const INK = "#1d1d1f"; +export const GRAY = "#8a8a8e"; +export const GREEN = "#2a9d4b"; + +export function canvasTexture(w, h, { transparent = false } = {}) { + const canvas = document.createElement("canvas"); + canvas.width = w; + canvas.height = h; + const ctx = canvas.getContext("2d"); + const tex = new THREE.CanvasTexture(canvas); + tex.colorSpace = THREE.SRGBColorSpace; + tex.anisotropy = 8; + tex.generateMipmaps = true; + tex.minFilter = THREE.LinearMipmapLinearFilter; + return { canvas, ctx, tex, w, h, transparent }; +} + +export function roundRect(ctx, x, y, w, h, r) { + ctx.beginPath(); + ctx.moveTo(x + r, y); + ctx.arcTo(x + w, y, x + w, y + h, r); + ctx.arcTo(x + w, y + h, x, y + h, r); + ctx.arcTo(x, y + h, x, y, r); + ctx.arcTo(x, y, x + w, y, r); + ctx.closePath(); +} + +export function paperFill(ctx, w, h, paper, alpha = 0.22) { + ctx.fillStyle = "#fbfaf7"; + ctx.fillRect(0, 0, w, h); + if (paper && paper.complete && paper.naturalWidth) { + ctx.save(); + ctx.globalAlpha = alpha; + ctx.globalCompositeOperation = "multiply"; + const pat = ctx.createPattern(paper, "repeat"); + ctx.fillStyle = pat; + ctx.fillRect(0, 0, w, h); + ctx.restore(); + } +} + +export function drawCard(t, lines, paper, { head } = {}) { + const { ctx, w, h } = t; + const m = 14; + ctx.clearRect(0, 0, w, h); + // a soft shadow under the slip, so paper reads against a white room + ctx.save(); + ctx.shadowColor = "rgba(40, 50, 70, 0.22)"; + ctx.shadowBlur = 12; + ctx.shadowOffsetY = 4; + roundRect(ctx, m, m, w - 2 * m, h - 2 * m, 24); + ctx.fillStyle = "#fbfaf7"; + ctx.fill(); + ctx.restore(); + ctx.save(); + roundRect(ctx, m, m, w - 2 * m, h - 2 * m, 24); + ctx.clip(); + paperFill(ctx, w, h, paper, 0.25); + ctx.restore(); + roundRect(ctx, m, m, w - 2 * m, h - 2 * m, 24); + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + ctx.lineWidth = 2; + ctx.stroke(); + let y = 80; + if (head) { + ctx.font = `500 30px ${SANS}`; + ctx.fillStyle = GRAY; + ctx.fillText(head, 46, y); + y += 70; + } + for (const [text, style] of lines) { + if (style === "name") { ctx.font = `600 54px ${SANS}`; ctx.fillStyle = INK; } + else if (style === "note") { ctx.font = `400 36px ${SANS}`; ctx.fillStyle = GRAY; } + else if (style === "mono") { ctx.font = `400 38px ${MONO}`; ctx.fillStyle = INK; } + else if (style === "empty") { + ctx.font = `400 32px ${MONO}`; + ctx.fillStyle = "rgba(0,0,0,0.34)"; + ctx.setLineDash([10, 9]); + ctx.strokeStyle = "rgba(0,0,0,0.25)"; + ctx.lineWidth = 3; + const tw = ctx.measureText(text).width; + roundRect(ctx, 42, y - 42, tw + 40, 58, 10); + ctx.stroke(); + ctx.setLineDash([]); + ctx.fillText(text, 62, y - 2); + y += 70; + continue; + } + ctx.fillText(text, 46, y); + y += style === "name" ? 66 : 56; + } + t.tex.needsUpdate = true; +} + +export function drawChip(t, text) { + const { ctx, w, h } = t; + ctx.clearRect(0, 0, w, h); + ctx.save(); + ctx.shadowColor = "rgba(40, 50, 70, 0.2)"; + ctx.shadowBlur = 10; + ctx.shadowOffsetY = 3; + roundRect(ctx, 14, 14, w - 28, h - 28, (h - 28) / 2); + ctx.fillStyle = "#ffffff"; + ctx.fill(); + ctx.restore(); + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + ctx.lineWidth = 3; + ctx.stroke(); + ctx.strokeStyle = GREEN; + ctx.lineWidth = 9; + ctx.lineCap = "round"; + ctx.beginPath(); + ctx.moveTo(62, h / 2); + ctx.lineTo(80, h / 2 + 18); + ctx.lineTo(112, h / 2 - 22); + ctx.stroke(); + ctx.font = `500 58px ${MONO}`; + ctx.fillStyle = INK; + ctx.textBaseline = "middle"; + ctx.fillText(text, 140, h / 2 + 3); + ctx.textBaseline = "alphabetic"; + t.tex.needsUpdate = true; +} + +export function drawSite(t, I, live) { + const { ctx, w, h } = t; + ctx.clearRect(0, 0, w, h); + ctx.save(); + roundRect(ctx, 0, 0, w, h, 34); + ctx.clip(); + ctx.fillStyle = "#ffffff"; + ctx.fillRect(0, 0, w, h); + // chrome + ctx.fillStyle = "#f1f1f2"; + ctx.fillRect(0, 0, w, 92); + ctx.fillStyle = "rgba(0,0,0,0.08)"; + ctx.fillRect(0, 92, w, 2); + [0, 1, 2].forEach((i) => { + ctx.beginPath(); + ctx.arc(52 + i * 36, 46, 11, 0, Math.PI * 2); + ctx.fillStyle = "#d4d4d8"; + ctx.fill(); + }); + roundRect(ctx, w / 2 - 220, 22, 440, 48, 24); + ctx.fillStyle = "#ffffff"; + ctx.fill(); + ctx.font = `400 28px ${SANS}`; + ctx.fillStyle = "#5a5a5e"; + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; + ctx.fillText(I.site.url, w / 2, 47); + ctx.textAlign = "left"; + if (live) { + const g = ctx.createLinearGradient(0, 94, w, h); + g.addColorStop(0, "#f6efe6"); + g.addColorStop(1, "#e9eef4"); + ctx.fillStyle = g; + ctx.fillRect(0, 94, w, 300); + ctx.font = `600 66px ${SANS}`; + ctx.fillStyle = INK; + ctx.textBaseline = "alphabetic"; + ctx.fillText(I.site.title, 64, 250); + ctx.fillStyle = "rgba(0,0,0,0.12)"; + roundRect(ctx, 64, 290, 420, 20, 10); ctx.fill(); + roundRect(ctx, 64, 326, 300, 20, 10); ctx.fill(); + [0, 1, 2].forEach((i) => { + roundRect(ctx, 64 + i * 296, 430, 270, 190, 18); + ctx.fillStyle = ["#eef1f4", "#f3eee8", "#eef3ee"][i]; + ctx.fill(); + }); + // status + ctx.font = `500 28px ${SANS}`; + const s = I.site.live; + const sw = ctx.measureText(s).width; + roundRect(ctx, w - sw - 112, 24, sw + 74, 44, 22); + ctx.fillStyle = "rgba(42,157,75,0.12)"; + ctx.fill(); + ctx.beginPath(); + ctx.arc(w - sw - 84, 46, 9, 0, Math.PI * 2); + ctx.fillStyle = GREEN; + ctx.fill(); + ctx.fillStyle = "#1f7a3a"; + ctx.textBaseline = "middle"; + ctx.fillText(s, w - sw - 64, 47); + } else { + ctx.fillStyle = "#f6f6f7"; + ctx.fillRect(0, 94, w, h - 94); + ctx.fillStyle = "rgba(0,0,0,0.06)"; + roundRect(ctx, 64, 170, 380, 44, 12); ctx.fill(); + roundRect(ctx, 64, 240, 520, 20, 10); ctx.fill(); + roundRect(ctx, 64, 276, 360, 20, 10); ctx.fill(); + ctx.font = `400 34px ${SANS}`; + ctx.fillStyle = "#9a9a9e"; + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; + ctx.fillText(I.site.idle, w / 2, h - 120); + ctx.textAlign = "left"; + } + ctx.restore(); + ctx.textBaseline = "alphabetic"; + t.tex.needsUpdate = true; +} + +export function drawProgramFace(t, I) { + const { ctx, w, h } = t; + ctx.clearRect(0, 0, w, h); + // keyhole well on the left, where the key arrives + const cx = 190, cy = h / 2 - 20; + const g = ctx.createRadialGradient(cx, cy, 10, cx, cy, 130); + g.addColorStop(0, "rgba(0,0,0,0.6)"); + g.addColorStop(1, "rgba(0,0,0,0)"); + ctx.fillStyle = g; + ctx.fillRect(cx - 140, cy - 140, 280, 280); + ctx.beginPath(); + ctx.arc(cx, cy - 16, 26, 0, Math.PI * 2); + ctx.moveTo(cx - 14, cy); + ctx.lineTo(cx + 14, cy); + ctx.lineTo(cx + 22, cy + 52); + ctx.lineTo(cx - 22, cy + 52); + ctx.closePath(); + ctx.fillStyle = "#050505"; + ctx.fill(); + const x = 372; + ctx.font = `500 64px ${MONO}`; + ctx.fillStyle = "#f4f4f5"; + ctx.fillText(I.prog, x, 150); + ctx.font = `400 30px ${MONO}`; + ctx.fillStyle = "rgba(255,255,255,0.42)"; + ctx.fillText("#!/bin/sh", x + 2, 226); + ctx.fillText("rsync ./site server:", x + 2, 272); + ctx.fillText(" uses $DEPLOY_TOKEN", x + 2, 318); + t.tex.needsUpdate = true; +} + +// A soft contact shadow: dense near the centre, long soft falloff. Drawn in +// white; the decal's colour tints it. +export function shadowTexture() { + const c = document.createElement("canvas"); + c.width = c.height = 256; + const ctx = c.getContext("2d"); + const g = ctx.createRadialGradient(128, 128, 0, 128, 128, 128); + g.addColorStop(0, "rgba(255,255,255,0.62)"); + g.addColorStop(0.3, "rgba(255,255,255,0.36)"); + g.addColorStop(0.62, "rgba(255,255,255,0.1)"); + g.addColorStop(1, "rgba(255,255,255,0)"); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 256, 256); + const tex = new THREE.CanvasTexture(c); + tex.colorSpace = THREE.SRGBColorSpace; + return tex; +} + +// Shapes seen through frosted glass: filled once and blurred with a canvas +// shadow (which every browser blurs, unlike ctx.filter). +export function blurredShapesTexture(shapes, { minX, maxX, minY, maxY, ppu, blur, color, passes = 1 }) { + const c = document.createElement("canvas"); + c.width = Math.round((maxX - minX) * ppu); + c.height = Math.round((maxY - minY) * ppu); + const ctx = c.getContext("2d"); + const off = c.width + 200; + ctx.shadowColor = color; + ctx.shadowBlur = blur; + ctx.shadowOffsetX = off; + ctx.fillStyle = "#000"; + const px = (x) => (x - minX) * ppu - off, py = (y) => (maxY - y) * ppu; + ctx.beginPath(); + for (const sh of shapes) { + const { shape, holes } = sh.extractPoints(24); + [shape, ...holes].forEach((pts) => { + pts.forEach((p, i) => (i ? ctx.lineTo(px(p.x), py(p.y)) : ctx.moveTo(px(p.x), py(p.y)))); + ctx.closePath(); + }); + } + // repeated passes build up density in thin parts (a key's shaft) that a + // single blur would leave faint + for (let i = 0; i < passes; i++) ctx.fill("evenodd"); + const tex = new THREE.CanvasTexture(c); + tex.colorSpace = THREE.SRGBColorSpace; + return tex; +} + +export function glowTexture() { + const c = document.createElement("canvas"); + c.width = c.height = 128; + const ctx = c.getContext("2d"); + const g = ctx.createRadialGradient(64, 64, 0, 64, 64, 64); + g.addColorStop(0, "rgba(255,255,255,1)"); + g.addColorStop(0.18, "rgba(255,255,255,0.55)"); + g.addColorStop(0.45, "rgba(255,255,255,0.16)"); + g.addColorStop(1, "rgba(255,255,255,0)"); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 128, 128); + return new THREE.CanvasTexture(c); +} + +export function dotTexture() { + const c = document.createElement("canvas"); + c.width = c.height = 64; + const ctx = c.getContext("2d"); + const g = ctx.createRadialGradient(32, 32, 0, 32, 32, 32); + g.addColorStop(0, "rgba(255,255,255,1)"); + g.addColorStop(0.5, "rgba(255,255,255,0.8)"); + g.addColorStop(1, "rgba(255,255,255,0)"); + ctx.fillStyle = g; + ctx.fillRect(0, 0, 64, 64); + const tex = new THREE.CanvasTexture(c); + return tex; +} diff --git a/site-src/how/timing.js b/site-src/how/timing.js new file mode 100644 index 0000000..1c8390e --- /dev/null +++ b/site-src/how/timing.js @@ -0,0 +1,16 @@ +// The film's clock: when things happen, and the easing they happen with. +export const PRE = 14.4; // the request reaches you +export const POST = { allow: 16.5, deny: 8.5 }; +export const STEP_AT = { pre: [0, 3.4, 8.6], allow: [0, 9.2], deny: [0, 2.6] }; +// the last seconds of each ending, when the room gives way to the page +export const WHITE_OUT = 2.6; + +export const clamp = (v, a = 0, b = 1) => Math.min(b, Math.max(a, v)); +export const seg = (t, a, b) => clamp((t - a) / (b - a)); +export const ease = (t) => (t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2); +export const easeOut = (t) => 1 - Math.pow(1 - t, 3); +export const smooth = (t) => t * t * (3 - 2 * t); +export const fade = (t, a, b, inn = 0.35, out = 0.35) => Math.min(seg(t, a, a + inn), 1 - seg(t, b - out, b)); + +export const kindOf = (d) => (d === "once" || d === "timed" ? "allow" : d ? "deny" : null); +export const outcomeOf = (d) => (d === "once" ? "allow" : d || "allow"); diff --git a/site-src/how/transcript.js b/site-src/how/transcript.js new file mode 100644 index 0000000..c5561ba --- /dev/null +++ b/site-src/how/transcript.js @@ -0,0 +1,197 @@ +// The agent's transcript, a dark terminal window suspended inside the glass. +// The window (background and title bar) is drawn once. Each line of the +// transcript is its own thin strip with its own small texture, so typing a +// character or turning the spinner re-uploads one strip instead of the +// whole page, and fading a line in is a change of opacity, not a redraw. +import * as THREE from "three"; +import { canvasTexture, roundRect, MONO, SANS } from "./textures.js"; + +// Terminal colours, light on dark. +const INK = "#e9e7e3", GRAY = "#9b9ba1", GREEN = "#5fd38a", DIM = "rgba(255,255,255,0.24)"; +const BG = "#1c1d20", BAR = "#2b2c30"; +import { decalMaterial } from "./materials.js"; + +const TW = 2048, TH = 1296; // the page, in canvas pixels +const PW = 2.34, PH = 1.48; // the page, in scene units +const K = 1.28; // drawing scale: layout below is in units of 1/K pixels +const X0 = 92, LH = 66, Y0 = 178; +const BAND_TOP = 58, BAND_H = 104; // a strip, in canvas pixels, around a baseline + +export function createTranscript(I, paper) { + const group = new THREE.Group(); + const base = canvasTexture(TW, TH); + const sheet = new THREE.Mesh(new THREE.PlaneGeometry(PW, PH), new THREE.MeshBasicMaterial({ map: base.tex, color: 0xffffff, toneMapped: false })); + sheet.position.z = -0.01; + const back = new THREE.Mesh(new THREE.PlaneGeometry(PW, PH), new THREE.MeshBasicMaterial({ color: 0x2b2c30, toneMapped: false })); + back.rotation.y = Math.PI; + back.position.z = -0.012; + group.add(sheet, back); + + const stripGeo = new THREE.PlaneGeometry(PW, (BAND_H / TH) * PH); + const rows = []; + function row(i) { + if (rows[i]) return rows[i]; + const t = canvasTexture(TW, BAND_H); + const mesh = new THREE.Mesh(stripGeo, decalMaterial({ map: t.tex, opacity: 1 })); + mesh.position.z = -0.008; + mesh.renderOrder = 1; + mesh.visible = false; + group.add(mesh); + return (rows[i] = { t, mesh, sig: "", y: -1 }); + } + // Pre-create enough strips for the longest telling so no texture or + // program is created mid-film. + for (let i = 0; i < 11; i++) row(i); + + function redrawBase() { + const { ctx } = base; + ctx.setTransform(1, 0, 0, 1, 0, 0); + const g = ctx.createLinearGradient(0, 0, 0, TH); + g.addColorStop(0, BG); + g.addColorStop(1, "#18191b"); + ctx.fillStyle = g; + ctx.fillRect(0, 0, TW, TH); + ctx.setTransform(K, 0, 0, K, 0, 0); + const w = TW / K; + ctx.fillStyle = BAR; + ctx.fillRect(0, 0, w, 96); + ctx.fillStyle = "rgba(0,0,0,0.5)"; + ctx.fillRect(0, 96, w, 2); + ["#ff5f57", "#febc2e", "#28c840"].forEach((c, i) => { + ctx.beginPath(); + ctx.arc(56 + i * 40, 48, 12, 0, Math.PI * 2); + ctx.fillStyle = c; + ctx.fill(); + }); + ctx.font = `400 30px ${SANS}`; + ctx.fillStyle = GRAY; + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; + ctx.fillText(I.term.title, w / 2, 50); + ctx.textAlign = "left"; + ctx.textBaseline = "alphabetic"; + ctx.setTransform(1, 0, 0, 1, 0, 0); + base.tex.needsUpdate = true; + rows.forEach((r) => (r.sig = "")); + } + + // `lines` is a list of { kind, text, chars, caret, alpha, row } computed by + // the timeline; `spin` is the spinner's phase. + function update(lines, spin) { + let y = Y0; + let n = 0; + for (const L of lines) { + if (L.kind === "gap") { y += L.size ?? 20; continue; } + const r = row(n++); + const sig = `${L.kind}|${L.text ?? ""}|${L.row ?? ""}|${L.chars ?? ""}|${L.caret ? 1 : 0}|${L.kind === "wait" ? spin : ""}`; + if (sig !== r.sig) { + drawLine(r.t, L, y, spin); + r.sig = sig; + } + if (r.y !== y) { + r.y = y; + const cy = y * K - BAND_TOP + BAND_H / 2; + r.mesh.position.y = (0.5 - cy / TH) * PH; + } + r.mesh.visible = true; + r.mesh.material.opacity = L.alpha ?? 1; + y += L.kind === "me" ? LH + 10 : LH; + } + for (let i = n; i < rows.length; i++) rows[i].mesh.visible = false; + } + + return { group, sheet, update, redrawBase }; +} + +function drawLine(t, L, y, spin) { + const { ctx } = t; + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.clearRect(0, 0, t.w, t.h); + ctx.setTransform(K, 0, 0, K, 0, BAND_TOP - y * K); + const x0 = X0; + if (L.kind === "me") { + ctx.font = `500 44px ${MONO}`; + ctx.fillStyle = GRAY; + ctx.fillText("›", x0 - 46, y); + ctx.fillStyle = INK; + const s = [...L.text].slice(0, L.chars ?? Infinity).join(""); + ctx.fillText(s, x0, y); + if (L.caret) { + const m = ctx.measureText(s).width; + ctx.fillRect(x0 + m + 6, y - 36, 20, 44); + } + } else if (L.kind === "ai" || L.kind === "ok" || L.kind === "no" || L.kind === "wait") { + ctx.font = `400 38px ${MONO}`; + ctx.lineCap = "round"; + if (L.kind === "ai") { + ctx.beginPath(); + ctx.arc(x0 - 30, y - 13, 9, 0, Math.PI * 2); + ctx.fillStyle = INK; + ctx.fill(); + } else if (L.kind === "ok") { + ctx.strokeStyle = GREEN; + ctx.lineWidth = 6; + ctx.beginPath(); + ctx.moveTo(x0 - 42, y - 14); + ctx.lineTo(x0 - 32, y - 4); + ctx.lineTo(x0 - 14, y - 28); + ctx.stroke(); + } else if (L.kind === "no") { + ctx.strokeStyle = INK; + ctx.lineWidth = 5; + ctx.beginPath(); + ctx.moveTo(x0 - 40, y - 28); ctx.lineTo(x0 - 18, y - 6); + ctx.moveTo(x0 - 18, y - 28); ctx.lineTo(x0 - 40, y - 6); + ctx.stroke(); + } else { + // spinner: eight ticks, one bright + for (let i = 0; i < 8; i++) { + const ang = (i / 8) * Math.PI * 2; + ctx.strokeStyle = Math.floor(spin * 8) % 8 === i ? INK : DIM; + ctx.lineWidth = 5; + ctx.beginPath(); + ctx.moveTo(x0 - 29 + Math.cos(ang) * 6, y - 16 + Math.sin(ang) * 6); + ctx.lineTo(x0 - 29 + Math.cos(ang) * 15, y - 16 + Math.sin(ang) * 15); + ctx.stroke(); + } + } + ctx.fillStyle = L.kind === "ok" ? GREEN : L.kind === "wait" ? GRAY : INK; + ctx.fillText(L.text, x0, y); + } else if (L.kind === "indent") { + ctx.font = `400 38px ${MONO}`; + ctx.fillStyle = INK; + ctx.fillText(L.text, x0, y); + } else if (L.kind === "cat") { + // name · note · ENV [value: —] + const [name, note, env] = L.row; + ctx.font = `600 36px ${SANS}`; + ctx.fillStyle = INK; + ctx.fillText(name, x0 + 28, y); + ctx.font = `400 32px ${SANS}`; + ctx.fillStyle = GRAY; + ctx.fillText(note, x0 + 400, y); + ctx.font = `400 30px ${MONO}`; + const ew = ctx.measureText(env).width; + roundRect(ctx, x0 + 760, y - 38, ew + 36, 52, 10); + ctx.fillStyle = "rgba(255,255,255,0.08)"; + ctx.fill(); + ctx.fillStyle = INK; + ctx.fillText(env, x0 + 778, y - 2); + // the empty value slot + const vx = x0 + 760 + ew + 64; + ctx.setLineDash([10, 9]); + ctx.strokeStyle = "rgba(255,255,255,0.3)"; + ctx.lineWidth = 3; + roundRect(ctx, vx, y - 38, 250, 52, 10); + ctx.stroke(); + ctx.setLineDash([]); + ctx.fillStyle = DIM; + ctx.fillText("— — —", vx + 44, y - 2); + } else if (L.kind === "note") { + ctx.font = `400 30px ${SANS}`; + ctx.fillStyle = GRAY; + ctx.fillText(L.text, x0 + 28, y - 4); + } + ctx.setTransform(1, 0, 0, 1, 0, 0); + t.tex.needsUpdate = true; +} diff --git a/site-src/how/ui.js b/site-src/how/ui.js new file mode 100644 index 0000000..ba10a71 --- /dev/null +++ b/site-src/how/ui.js @@ -0,0 +1,279 @@ +// The DOM around the scene: labels pinned to objects, the caption, the +// chapter rail, Ask Key's approval prompt with its live countdown, and the +// two endings. +import * as THREE from "three"; +import { PRE, POST, STEP_AT, seg, clamp, kindOf, outcomeOf } from "./timing.js"; + +export function createUI({ root, I, S, W, camera, reduced, wake, renderNow }) { + const $ = (s) => root.querySelector(s); + const $$ = (s) => [...root.querySelectorAll(s)]; + const stage = $(".akhw-stage"), say = $(".akhw-say"), tagLayer = $(".akhw-tags"); + const alert = $(".akhw-alert"), hint = $(".akhw-hint"), pending = $(".akhw-pending"), endBar = $(".akhw-end"), playBtn = $(".akhw-play"); + const count = $(".akhw-count"), details = $(".akhw-alert-details"), rows = $(".akhw-alert-rows"); + const steps = $$(".akhw-steps li"); + + // ------------------------------------------------------------ tags + const tags = []; + const v3 = new THREE.Vector3(), o3 = new THREE.Vector3(); + const tag = (cls, html, anchor, show, dy = 0) => { + if (!html || html.includes("undefined")) return; // copy missing for this language + const el = document.createElement("div"); + el.className = `akhw-tag ${cls}`; + el.innerHTML = html; + tagLayer.appendChild(el); + tags.push({ el, anchor, show, dy, on: false, w: 0, x: NaN, y: NaN }); + }; + const T_ = I.tags; + { + const L = W.L; + const add = (p, x, y, z) => v3.copy(p).add(o3.set(x, y, z)); + const below = (key, s, y) => () => add(L[key], 0, -y * L[s], L.kind === "wide" ? 0 : 0.75 * L[s]); + const finalAllow = (s) => s.phase !== "pre" && s.phase !== "gate" && kindOf(s.decision) === "allow" && s.u > 12.6; + const finalDeny = (s) => s.phase !== "pre" && s.phase !== "gate" && kindOf(s.decision) === "deny" && s.u > 5.6; + const finalAny = (s) => finalAllow(s) || finalDeny(s); + const opening = (s) => s.phase === "pre" && s.T < 1.9; + const catalog = (s) => s.phase === "pre" && s.T > 4.9 && s.T < 8.5; + // Names show while the desk around them is wood: light text cannot sit + // on the white the closing shot fades into, so the end uses pills only. + tag("is-id", `${T_.agent[0]}${T_.agent[1]}`, below("A", "sA", 1.08), (s) => opening(s) || catalog(s)); + tag("is-id", `${T_.vault[0]}${T_.vault[1]}`, () => below("V", "sV", L.kind === "wide" ? 1.5 : 1.32)(), (s) => opening(s) || catalog(s)); + tag("is-id", `${T_.prog[0]}${T_.prog[1]}`, () => add(L.P, 0, -0.62 * L.sP, (L.kind === "wide" ? 0.5 : 1.05) * L.sP), (s) => s.phase === "post" && kindOf(s.decision) === "allow" && s.u > 3.2 && s.u < 4.6); + tag("is-pill", T_.noValue, () => add(L.A, 0.2 * L.sA, 0.98 * L.sA, 0), (s) => s.phase === "pre" && s.T > 7.2 && s.T < 8.6); + tag("is-pill is-key", T_.flying, () => add(W.copy.position, 0, 0.3 * L.sP, 0), (s) => s.phase !== "pre" && s.phase !== "gate" && kindOf(s.decision) === "allow" && s.u > 2.2 && s.u < 4.6); + tag("is-pill is-zero", T_.agentEnd.replace(/(\d+)/, "$1"), () => add(L.A, 0, 1.02 * L.sA, 0), (s) => finalAny(s) || (s.phase === "post" && s.u > (kindOf(s.decision) === "allow" ? 10.8 : 3.4))); + tag("is-pill", T_.vaultEnd, () => add(L.V, 0, 1.2 * L.sV, 0), (s) => finalAllow(s) && s.decision === "once"); + tag("is-pill", T_.vaultTimed, () => add(L.V, 0, 1.2 * L.sV, 0), (s) => finalAllow(s) && s.decision === "timed"); + tag("is-pill", T_.vaultDeny, () => add(L.V, 0, 1.2 * L.sV, 0), (s) => finalDeny(s)); + tag("is-pill is-key", T_.progEnd, () => add(L.W, 0, 0.74 * L.sP, 0), (s) => finalAllow(s)); + tag("is-pill", T_.progDeny, () => add(L.W, 0, 0.74 * L.sP, 0), (s) => finalDeny(s)); + } + + // Positions are written in one pass after every width is known, so the + // browser never lays out mid-frame. A label is measured once, when it + // first shows. + let stageW = stage.clientWidth, stageH = stage.clientHeight; + function measure() { + stageW = stage.clientWidth; + stageH = stage.clientHeight; + tags.forEach((t) => (t.w = 0)); + } + function updateTags(s) { + const w = stageW, h = stageH, now = performance.now(); + for (const t of tags) { + const on = s.phase !== "idle" && t.show(s); + if (on !== t.on) { + t.el.classList.toggle("on", on); + t.on = on; + if (!on) t.offAt = now; + } + if (on && !t.w) t.w = t.el.offsetWidth; + } + for (const t of tags) { + // keep following the object while the label fades out + if (!t.on && !(now - (t.offAt || 0) < 600)) continue; + const p = t.anchor().project(camera); + if (p.z > 1) { if (t.on) { t.el.classList.remove("on"); t.on = false; t.offAt = 0; } continue; } + const half = t.w / 2 + 10; + const x = clamp((p.x * 0.5 + 0.5) * w, half, Math.max(half, w - half)), y = (-p.y * 0.5 + 0.5) * h + t.dy; + if (Math.abs(x - t.x) < 0.05 && Math.abs(y - t.y) < 0.05) continue; + t.x = x; t.y = y; + t.el.style.transform = `translate(${x.toFixed(1)}px, ${y.toFixed(1)}px) translate(-50%, -50%)`; + } + } + + // ------------------------------------------------------------- captions + const sayPs = steps.map(() => { + const p = document.createElement("p"); + say.appendChild(p); + return p; + }); + function stepOf(s) { + if (s.phase === "pre" || s.phase === "idle") return s.T < STEP_AT.pre[1] ? 0 : s.T < STEP_AT.pre[2] ? 1 : 2; + if (s.phase === "gate") return 3; + const k = kindOf(s.decision); + return s.u < STEP_AT[k][1] ? 4 : 5; + } + let lastStep = -1, lastOutcome = ""; + const lastFill = steps.map(() => -1); + function updateCaptions(s) { + const st = stepOf(s); + const oc = outcomeOf(s.decision); + if (oc !== lastOutcome) { + root.dataset.outcome = oc; + lastOutcome = oc; + lastStep = -1; + } + if (st !== lastStep) { + const li = steps[st]; + const src = [...li.querySelectorAll("p")].find((p) => getComputedStyle(p).display !== "none"); + sayPs.forEach((p, i) => { + if (i === st && src) p.innerHTML = src.innerHTML; + p.classList.toggle("on", i === st); + }); + steps.forEach((li, i) => li.classList.toggle("on", i === st)); + lastStep = st; + } + const k = kindOf(s.decision); + for (let i = 0; i < steps.length; i++) { + let f; + if (i < st) f = 1; + else if (i > st) f = 0; + else if (st <= 2) f = seg(s.T, STEP_AT.pre[st], st < 2 ? STEP_AT.pre[st + 1] : PRE); + else if (st === 3) f = 1; + else f = seg(s.u, STEP_AT[k][st - 4], st === 4 ? STEP_AT[k][1] : POST[k]); + f = Math.round(f * 400) / 400; + if (f !== lastFill[i]) { + steps[i].style.setProperty("--fill", f.toFixed(3)); + lastFill[i] = f; + } + } + } + + // ------------------------------------------------------------- the gate + let hintTimer = 0; + function showAlert() { + alert.hidden = false; + alert.classList.remove("leave"); + alert.classList.add("enter"); + pending.hidden = true; + root.classList.remove("is-later"); + clearTimeout(hintTimer); + hintTimer = setTimeout(() => { + if (S.phase === "gate" && !S.later) { + hint.hidden = false; + root.classList.add("is-hinting"); + } + }, 6500); + } + function hideAlert(instant) { + clearTimeout(hintTimer); + hint.hidden = true; + root.classList.remove("is-hinting"); + if (instant || reduced) { + alert.hidden = true; + return; + } + alert.classList.remove("enter"); + alert.classList.add("leave"); + setTimeout(() => { + if (alert.classList.contains("leave")) { + alert.hidden = true; + alert.classList.remove("leave"); + } + }, 280); + } + function enterGate() { + S.phase = "gate"; + S.T = PRE; + S.gateAt = performance.now(); + S.later = false; + root.classList.add("is-gate"); + count.textContent = count.dataset.format.replace("{t}", "4:57"); + showAlert(); + } + function decide(d) { + if (S.phase !== "gate") return; + S.decision = d; + S.phase = "post"; + S.u = 0; + S.ended = false; + S.later = false; + root.classList.remove("is-gate", "is-later"); + pending.hidden = true; + hideAlert(); + if (reduced) { + S.u = POST[kindOf(d)]; + S.phase = "end"; + showEnd(); + renderNow(); + } else wake(); + } + function tickCountdown(now) { + if (S.phase !== "gate") return; + const left = Math.max(0, 297 - Math.floor((now - S.gateAt) / 1000)); + const txt = `${Math.floor(left / 60)}:${String(left % 60).padStart(2, "0")}`; + const full = count.dataset.format.replace("{t}", txt); + if (count.textContent !== full) count.textContent = full; + if (S.later) { + const pt = pending.dataset.base.replace("{t}", txt); + if (pending.textContent !== pt) pending.textContent = pt; + } + if (left === 0) { + S.later = false; + decide("expire"); + } + } + pending.dataset.base = pending.textContent.includes("·") ? pending.textContent.split("·")[0].trim() + " · {t}" : pending.textContent; + function later() { + if (S.phase !== "gate" || S.later) return; + S.later = true; + root.classList.add("is-later"); + hideAlert(); + pending.hidden = false; + wake(); + } + alert.addEventListener("click", (e) => { + const b = e.target.closest("[data-decide]"); + if (b && !root.classList.contains("is-still")) decide(b.dataset.decide); + }); + details.addEventListener("click", () => { + const open = details.getAttribute("aria-expanded") !== "true"; + details.setAttribute("aria-expanded", String(open)); + rows.hidden = !open; + }); + $(".akhw-later").addEventListener("click", later); + pending.addEventListener("click", () => { + S.later = false; + showAlert(); + alert.querySelector(".is-primary").focus({ preventScroll: true }); + wake(); + }); + document.addEventListener("keydown", (e) => { + if (e.key === "Escape" && S.phase === "gate" && !S.later && S.visible) later(); + }); + + // ------------------------------------------------------------- endings + const again = $(".akhw-again"), other = $(".akhw-other"); + function showEnd() { + S.ended = true; + endBar.hidden = false; + other.textContent = kindOf(S.decision) === "allow" ? other.dataset.deny : other.dataset.allow; + } + function hideEnd() { + S.ended = false; + endBar.hidden = true; + } + function seek(i) { + hideEnd(); + playBtn.hidden = true; + S.started = true; + if (i <= 2) { + if (S.phase === "gate") hideAlert(true); + root.classList.remove("is-gate", "is-later"); + pending.hidden = true; + S.phase = "pre"; + S.T = STEP_AT.pre[i] + (i === 0 ? 0 : 0.01); + S.decision = null; + } else if (i === 3) { + S.decision = null; + if (S.phase !== "gate") enterGate(); + else if (S.later) { S.later = false; showAlert(); } + } else { + if (S.phase === "gate") { + hideAlert(true); + root.classList.remove("is-gate", "is-later"); + pending.hidden = true; + } + if (!S.decision) S.decision = "once"; + S.phase = "post"; + S.u = STEP_AT[kindOf(S.decision)][i - 4] + 0.01; + } + wake(); + } + again.addEventListener("click", () => seek(0)); + other.addEventListener("click", () => seek(3)); + steps.forEach((li, i) => li.querySelector("button").addEventListener("click", () => seek(i))); + playBtn.addEventListener("click", () => seek(0)); + + return { updateTags, updateCaptions, tickCountdown, enterGate, decide, showEnd, hideEnd, hideAlert, measure, alert, hint, stage }; +} diff --git a/site-src/how/world.js b/site-src/how/world.js new file mode 100644 index 0000000..98b6634 --- /dev/null +++ b/site-src/how/world.js @@ -0,0 +1,222 @@ +// Every visual is a pure function of the film's time and the reader's +// decision, which makes chapter seeking, replays and the alternate endings +// exact. Nothing here allocates per frame. +import * as THREE from "three"; +import { PRE, POST, WHITE_OUT, clamp, seg, ease, easeOut, smooth, fade, kindOf } from "./timing.js"; + +export function createWorld(W, I, camera) { + // ---------------------------------------------------------- transcript + const out = []; + const lines = Array.from({ length: 12 }, () => ({})); + let nLines = 0; + const push = (kind, text, alpha, extra) => { + const L = lines[nLines++]; + L.kind = kind; L.text = text; L.alpha = alpha; L.chars = undefined; L.caret = false; L.row = undefined; + if (extra) Object.assign(L, extra); + return L; + }; + const askChars = [...I.term.ask].length; + function transcriptLines(s) { + nLines = 0; + const T = s.phase === "pre" ? s.T : PRE + 1; + const post = s.phase === "post" || s.phase === "end"; + const u = post ? s.u : -1; + const k = kindOf(s.decision); + const a = (at) => clamp((T - at) / 0.35); + const au = (at) => clamp((u - at) / 0.35); + const me = push("me", I.term.ask, 1); + me.chars = Math.floor(seg(T, 0.7, 2.7) * askChars); + me.caret = T < 3.0 && (T < 2.7 || Math.floor(T * 2.2) % 2 === 0); + if (T >= 3.4) push("ai", I.term.check, a(3.4)); + if (T >= 6.7) push("cat", "", a(6.7), { row: I.term.cat[0] }); + if (T >= 7.0) push("cat", "", a(7.0), { row: I.term.cat[1] }); + if (T >= 7.3) push("note", I.term.noValue, a(7.3)); + if (T >= 8.6) push("ai", I.term.cant, a(8.6)); + if (T >= 8.9) push("indent", I.term.req, a(8.9)); + if (T >= 12.6) { + if (!post || u < 0.5) push("wait", I.term.wait, a(12.6)); + else if (k === "allow") push("ok", s.decision === "timed" ? I.term.okTimed : I.term.ok, au(0.5)); + else push("no", s.decision === "expire" ? I.term.expired : I.term.denied, au(0.5)); + } + if (post && k === "allow") { + if (u >= 10.0) push("ai", I.term.out, au(10.0)); + if (u >= 10.5) push("ok", I.term.live, au(10.5)); + } + if (post && k === "deny" && u >= 1.7) push("ai", s.decision === "expire" ? I.term.expiredNext : I.term.deniedNext, au(1.7)); + out.length = nLines; + for (let i = 0; i < nLines; i++) out[i] = lines[i]; + return out; + } + function updateTranscript(s, clock) { + const ls = transcriptLines(s); + const waiting = ls.some((l) => l.kind === "wait"); + W.term.update(ls, waiting ? Math.floor(clock * 9) / 8 : 0); + } + + // ------------------------------------------------------------ the world + const q = new THREE.Quaternion(), q2 = new THREE.Quaternion(), X = new THREE.Vector3(1, 0, 0), NZ = new THREE.Vector3(0, 0, -1); + const tmp = new THREE.Vector3(), tmp2 = new THREE.Vector3(), sp = new THREE.Vector3(), ss = new THREE.Vector3(); + const sq = new THREE.Quaternion(); + function along(m, path, p, wobble = 0) { + path.getPoint(p, tmp); + m.position.copy(tmp); + m.quaternion.copy(camera.quaternion); + m.rotateZ(wobble); + } + + function update(s, clock) { + const T = s.phase === "pre" ? s.T : PRE + 1; + const post = s.phase === "post" || s.phase === "end"; + const u = post ? s.u : 0; + const k = post ? kindOf(s.decision) : null; + const L = W.L; + + // catalog cards: vault → AI + for (let i = 0; i < 2; i++) { + const m = i ? W.card2 : W.card1, t0 = i ? 4.75 : 4.3; + const p = seg(T, t0, t0 + 2.2); + m.visible = p > 0 && p < 1; + if (!m.visible) continue; + const e = ease(p); + along(m, L.catPath, e, Math.sin(clock * 2 + i) * 0.04 + (1 - e) * 0.2); + if (i) m.position.y += 0.12 * L.sA; + const sc = L.cardScale * (0.35 + 0.65 * smooth(seg(p, 0, 0.2))) * (1 - 0.5 * smooth(seg(p, 0.82, 1))); + m.scale.setScalar(sc); + m.material.opacity = Math.min(seg(p, 0, 0.12), 1 - seg(p, 0.86, 1)); + } + + // request slip: AI → vault, then it lands on the desk in front of you + { + const p = seg(T, 9.6, 12.2), l = seg(T, 12.2, 13.3); + const base = L.kind === "wide" ? 1 : 0.72; + W.slip.visible = p > 0; + if (p > 0 && l <= 0) { + along(W.slip, L.reqPath, ease(p), Math.sin(clock * 2.4) * 0.05); + W.slip.material.opacity = seg(p, 0, 0.1); + W.slip.scale.setScalar(base * (1 - 0.2 * smooth(seg(p, 0.8, 1)))); + } else if (l > 0) { + L.reqPath.getPoint(1, tmp); + const e = ease(l); + W.slip.position.lerpVectors(tmp, L.slipRest, e); + W.slip.position.y += Math.sin(e * Math.PI) * 0.25 * L.sV; + W.slip.quaternion.slerpQuaternions(camera.quaternion, L.slipRestQ, smooth(l)); + W.slip.scale.setScalar(base * (0.8 + 0.4 * e)); + W.slip.material.opacity = 1; + } + W.slipShadow.material.opacity = 0.5 * smooth(seg(l, 0.55, 1)) * (post && k === "deny" ? 1 - 0.55 * seg(u, 0.5, 1.6) : 1); + const stamp = k === "allow" ? seg(u, 0.12, 0.5) : 0; + W.seal.material.opacity = Math.min(1, stamp * 3) * 0.92; + W.seal.scale.setScalar(1 + 0.6 * (1 - easeOut(stamp))); + if (post && k === "deny") W.slip.material.opacity = 1 - 0.55 * seg(u, 0.5, 1.6); + W.reveal(W.reqThread, ease(seg(T, 9.6, 12.2))); + } + + // the vault answers: keys warm up while it asks you + const ask = seg(T, 12.3, 13.2) * (post ? 1 - seg(u, 0.2, 1.2) : 1); + const pulse = s.phase === "gate" && !s.later ? 0.5 + 0.5 * Math.sin(clock * 3) : 0; + const warm = ask * (0.5 + pulse * 0.5) + (k === "allow" ? 0.7 * fade(u, 0.4, 2.6, 0.4, 0.8) : 0); + W.lacquer.emissiveIntensity = 0.5 * warm; + // the blurred keys brighten toward a lit vermilion + W.keyBlurMat.color.setScalar(1 + 0.45 * warm); + W.vault.scale.setScalar(L.sV * (1 + 0.025 * ask * smooth(fade(T, 12.3, 13.4, 0.4, 0.6)))); + const lantern = 0.1 + ask * (0.2 + pulse * 0.18) + (k === "allow" ? 0.32 * fade(u, 0.3, 2.8, 0.4, 0.9) : 0); + W.vaultGlow.material.opacity = lantern * 0.85; + W.vaultTint.material.opacity = 0.08 + lantern * 0.42; + + // allow: a copy of the key leaves the vault, goes to the program, is used and destroyed + const allow = k === "allow"; + const copy = W.copy; + copy.visible = allow && u > 0.5 && u < 10.4; + W.dust.visible = false; + if (copy.visible) { + const src = W.vaultKeys[1]; + src.updateWorldMatrix(true, false); + src.matrixWorld.decompose(sp, sq, ss); + const base = L.kind === "wide" ? 1.15 : 0.8; + const e = smooth(seg(u, 0.5, 2.0)); + const f = ease(seg(u, 2.0, 5.2)); + const turn = ease(seg(u, 5.3, 5.85)); + if (u < 2.0) { + L.keyPath.getPoint(0, tmp); + L.keyPath.getTangent(0.001, tmp2); + q.setFromUnitVectors(X, tmp2); + copy.position.lerpVectors(sp, tmp, e); + copy.quaternion.slerpQuaternions(sq, q, e); + copy.scale.setScalar(ss.x + (base - ss.x) * e); + } else { + L.keyPath.getPoint(f, tmp); + L.keyPath.getTangent(Math.min(0.999, Math.max(0.001, f)), tmp2); + tmp2.lerp(NZ, smooth(seg(f, 0.8, 1))).normalize(); + copy.position.copy(tmp); + q.setFromUnitVectors(X, tmp2); + q2.setFromAxisAngle(X, Math.sin(f * Math.PI) * Math.PI - (turn * Math.PI) / 2); + copy.quaternion.copy(q).multiply(q2); + copy.scale.setScalar(base); + } + const dis = seg(u, 8.4, 10.2); + W.uDis.value = dis; + if (dis > 0) { + W.dust.visible = true; + const arr = W.dust.geometry.attributes.position.array; + const tip = copy.position; + const len = 0.62 * base; + const seeds = W.seeds; + for (let i = 0; i < seeds.length; i++) { + const sd = seeds[i]; + const t = clamp((dis - sd.along * 0.6) / 0.6); + const r = easeOut(t) * 0.35 * sd.s * L.sP * 1.6; + arr[i * 3] = tip.x + Math.cos(sd.a) * r * 0.8; + arr[i * 3 + 1] = tip.y + sd.b * 0.06 + t * sd.lift * 0.5 * L.sP + Math.sin(sd.a) * r * 0.25; + arr[i * 3 + 2] = tip.z + len * (1 - sd.along) * (t > 0 ? 1 : 0) + Math.abs(Math.sin(sd.a)) * r * 0.4; + } + W.dust.geometry.attributes.position.needsUpdate = true; + W.dust.material.opacity = 0.95 * (1 - seg(dis, 0.55, 1)); + } + } else { + W.uDis.value = 0; + } + W.copyGlow.visible = copy.visible && W.uDis.value < 0.95; + if (W.copyGlow.visible) { + W.copyGlow.position.copy(copy.position); + W.copyGlow.material.opacity = 0.32 * seg(u, 0.6, 1.6) * (1 - W.uDis.value); + } + W.reveal(W.keyThread, allow ? ease(seg(u, 2.0, 5.2)) : 0); + + // the program runs + W.ring.material.opacity = allow ? seg(u, 4.2, 4.8) * (1 - 0.6 * seg(u, 9.4, 10.4)) : 0; + W.ringGlow.material.opacity = W.ring.material.opacity * (0.4 + 0.2 * fade(u, 5.3, 6.4, 0.2, 0.6)); + for (let i = 0; i < W.leds.length; i++) { + const led = W.leds[i]; + const on = allow && u > 5.95 + i * 0.16; + led.material = on ? W.ledOn : W.ledOff; + led.userData.glow.material.opacity = on ? 0.7 : 0; + } + const live = allow ? smooth(seg(u, 6.9, 7.5)) : 0; + W.sLive.material.opacity = live; + W.sIdle.material.opacity = 1 - live; + W.site.position.y = L.W.y + Math.sin(clock * 0.9) * 0.015 * L.sP + live * 0.04 * (1 - seg(u, 7.5, 8.5)) * L.sP; + + // the result comes back: program → AI + { + const p = allow ? seg(u, 7.7, 9.9) : 0; + W.chip.visible = p > 0 && p < 1; + if (W.chip.visible) { + along(W.chip, L.outPath, ease(p), Math.sin(clock * 2) * 0.03); + W.chip.material.opacity = Math.min(seg(p, 0, 0.1), 1 - seg(p, 0.86, 1)); + } + W.reveal(W.outThread, allow ? ease(seg(u, 7.7, 9.9)) : 0); + } + + // threads settle into a faint diagram for the final frame + const settle = post ? seg(u, k === "allow" ? 11 : 3, k === "allow" ? 13 : 5) : 0; + W.reqThread.material.opacity = k === "deny" ? 0.5 - 0.24 * settle : 0.5; + + // the room gives way to the page as each ending closes + W.uFloor.uWhite.value = post ? smooth(seg(u, POST[k] - WHITE_OUT, POST[k])) : 0; + + // idle life + W.agent.position.y = L.A.y + Math.sin(clock * 0.7) * 0.02 * L.sA; + } + + return { update, updateTranscript }; +} diff --git a/site/how/THREE-LICENSE.txt b/site/how/THREE-LICENSE.txt new file mode 100644 index 0000000..8ada2a5 --- /dev/null +++ b/site/how/THREE-LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License + +Copyright © 2010-2026 three.js authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/site/how/how.css b/site/how/how.css new file mode 100644 index 0000000..81f6489 --- /dev/null +++ b/site/how/how.css @@ -0,0 +1,458 @@ +/* Ask Key — "How it works" section. Everything is scoped under .akhw so it + can sit inside the existing site without touching its styles. */ + +@font-face { + font-family: "Hanken Grotesk"; + src: url("/fonts/HankenGrotesk-Variable.woff2") format("woff2"); + font-weight: 200 600; + font-style: normal; + font-display: swap; +} +@font-face { + font-family: "IBM Plex Mono"; + src: url("/fonts/IBMPlexMono-Regular-Latin1.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +/* Standalone page chrome (not needed when embedded in the site). */ +.akhw-page { + margin: 0; + background: #fff; + color: #1a1a1a; + font-family: "Hanken Grotesk", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", system-ui, sans-serif; + font-weight: 300; + -webkit-font-smoothing: antialiased; + overflow-x: hidden; +} +.akhw-bar, .akhw-foot { + display: flex; + align-items: center; + gap: 24px; + padding: 28px clamp(24px, 4.5vw, 64px); + font-size: 13.5px; + color: #6e6e6e; +} +.akhw-bar a, .akhw-foot a { color: inherit; text-decoration: none; } +.akhw-bar a:hover, .akhw-foot a:hover { color: #1a1a1a; } +.akhw-brand { display: flex; align-items: center; gap: 10px; margin-right: auto; color: #1a1a1a !important; font-weight: 400; } +.akhw-foot { justify-content: space-between; margin-top: 120px; border-top: 1px solid #e7e7e7; font-size: 12.5px; color: #9a9a9a; } + +/* Section */ + +.akhw { + --ink: #1a1a1a; + --gray: #6e6e6e; + --soft: #a1a1a6; + --faint: #9a9a9a; + --line: #e7e7e7; + --zhu: #b8281e; + --gutter: clamp(24px, 4.5vw, 64px); + --page: min(1200px, 100% - 2 * var(--gutter)); + --sans: "Hanken Grotesk", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", system-ui, sans-serif; + --song: "Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", serif; + --mono: "IBM Plex Mono", "SF Mono", ui-monospace, Menlo, monospace; + position: relative; + margin-top: clamp(72px, 9vw, 140px); + font-family: var(--sans); + color: var(--ink); +} +.akhw *, .akhw *::before, .akhw *::after { box-sizing: border-box; } + +.akhw-head { width: var(--page); margin: 0 auto; } +.akhw-num { display: block; margin-bottom: 20px; font-family: var(--song); font-size: 15px; color: var(--zhu); } +.akhw-num span { margin-left: 14px; font-family: var(--sans); font-size: 12.5px; letter-spacing: 0.04em; color: var(--faint); } +.akhw-head h2 { + margin: 0; + font-weight: 300; + font-size: clamp(26px, 2.5vw, 34px); + line-height: 1.3; + letter-spacing: -0.01em; + text-wrap: balance; +} +.akhw:lang(zh) .akhw-head h2 { font-family: var(--song); letter-spacing: 0.04em; word-break: keep-all; } +.akhw-lede { margin: 10px 0 0; font-size: 15px; color: var(--gray); } + +/* Stage */ + +.akhw-stage { + position: relative; + width: 100%; + height: clamp(420px, min(56.25vw, 100svh - 260px), 760px); + margin: clamp(16px, 2.4vh, 28px) 0 0; + overflow: hidden; + isolation: isolate; + background: #fff; + color: var(--ink); + user-select: none; + -webkit-user-select: none; +} +.akhw-canvas { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + display: block; + opacity: 0; + transition: filter 0.9s ease, opacity 1.6s ease; +} +/* The room comes up out of the page's white. */ +.akhw.is-ready .akhw-canvas, .akhw.is-still .akhw-canvas { opacity: 1; } +.akhw.is-gate .akhw-canvas { filter: blur(6px) saturate(0.85) brightness(1.04); } +.akhw.is-gate.is-later .akhw-canvas { filter: none; } +/* No hard edge between the page and the room: the top and bottom of the + stage dissolve into white. */ +.akhw-stage::before { + content: ""; + position: absolute; + z-index: 1; + inset: 0; + /* The stage runs the full width of the window; only an object that + crosses its top or bottom edge is softened here. */ + background: + linear-gradient(to bottom, #fff, rgba(255, 255, 255, 0) 2.5%), + linear-gradient(to top, #fff, rgba(255, 255, 255, 0) 2.5%); + pointer-events: none; +} +.akhw-stage::after { + content: ""; + position: absolute; + z-index: 1; + left: 0; + top: 0; + width: min(62%, 860px); + height: 46%; + background: radial-gradient(ellipse 100% 100% at 0 0, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.62) 45%, rgba(255, 255, 255, 0) 100%); + pointer-events: none; +} +.akhw.is-still .akhw-stage::after, .akhw.no-gl .akhw-stage::after { display: none; } +.akhw-poster { display: none; position: absolute; inset: 0; } +.akhw-poster img { width: 100%; height: 100%; object-fit: cover; } +.akhw.no-gl .akhw-poster { display: block; } +.akhw.no-gl .akhw-canvas, .akhw.no-gl .akhw-tags, .akhw.no-gl .akhw-say { display: none; } + +.akhw-frame { position: relative; } + +/* Captions: one at a time, top-left like a film title card. */ +.akhw-say { + position: absolute; + z-index: 3; + left: calc((100% - var(--page)) / 2); + top: clamp(16px, 4%, 36px); + width: min(26em, 40%); + pointer-events: none; +} +.akhw-say p { + position: absolute; + left: 0; + top: 0; + margin: 0; + font-size: clamp(19px, 1.6vw, 24px); + font-weight: 300; + line-height: 1.25; + letter-spacing: -0.01em; + opacity: 0; + transform: translateY(10px); + transition: opacity 0.22s ease, transform 0.22s ease; +} +.akhw:lang(zh) .akhw-say p { font-family: var(--song); letter-spacing: 0.04em; line-height: 1.35; } +.akhw-say p { color: var(--ink); text-wrap: pretty; } +.akhw-say p span { display: block; margin-top: 0.5em; font-family: var(--sans); font-size: 15px; font-weight: 300; line-height: 1.65; letter-spacing: 0; color: var(--gray); } +.akhw-say p.on { opacity: 1; transform: none; transition: opacity 0.5s ease 0.24s, transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) 0.24s; } + +/* Labels pinned to things in the scene. */ +.akhw-tags { position: absolute; inset: 0; z-index: 2; pointer-events: none; } +.akhw-tag { + position: absolute; + left: 0; + top: 0; + white-space: nowrap; + font-size: 13.5px; + line-height: 1.4; + text-align: center; + opacity: 0; + transition: opacity 0.5s ease; + will-change: transform, opacity; +} +.akhw-tag.on { opacity: 1; } +.akhw-tag b { display: block; font-weight: 500; color: var(--ink); font-size: 15px; } +.akhw-tag small { display: block; font-size: 13px; color: var(--gray); } +/* Names lie on the walnut itself, light like a film's lower third. */ +.akhw-tag.is-id { text-shadow: 0 1px 2px rgba(20, 12, 6, 0.55), 0 0 14px rgba(20, 12, 6, 0.35); } +.akhw-tag.is-id b { color: #f6f2ec; } +.akhw-tag.is-id small { color: rgba(246, 242, 236, 0.8); } +/* Paper labels: solid, so nothing has to re-blur the scene behind them. */ +.akhw-tag.is-pill { + padding: 5px 13px; + border-radius: 999px; + background: rgba(255, 255, 255, 0.94); + box-shadow: 0 0 0 0.5px rgba(0, 0, 0, 0.1), 0 6px 18px -8px rgba(40, 50, 70, 0.35); + font-size: 14px; + font-weight: 500; + color: var(--ink); +} +.akhw-tag.is-pill.is-key { color: var(--zhu); } +.akhw-tag.is-pill.is-zero { font-size: 17px; padding: 8px 20px; } +.akhw-tag.is-pill.is-zero em { font-style: normal; font-variant-numeric: tabular-nums; color: var(--zhu); font-weight: 600; } + +/* The approval prompt: Ask Key's real alert layout, 300 pt wide. */ +.akhw-alert { + --s: 1.14; + position: absolute; + z-index: 5; + left: 50%; + top: 50%; + width: 300px; + padding: 24px 16px 14px; + border-radius: 14px; + background: rgba(236, 236, 236, 0.9); + -webkit-backdrop-filter: blur(30px) saturate(1.6); + backdrop-filter: blur(30px) saturate(1.6); + box-shadow: 0 0 0 0.5px rgba(0, 0, 0, 0.22), 0 24px 60px -12px rgba(0, 0, 0, 0.35), 0 8px 18px -8px rgba(0, 0, 0, 0.2); + font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", sans-serif; + font-size: 13px; + font-weight: 400; + line-height: 1.38; + color: #1d1d1f; + text-align: center; + transform: translate(-50%, -50%) scale(var(--s)); + transform-origin: 50% 50%; + user-select: text; + -webkit-user-select: text; +} +.akhw-alert[hidden] { display: none; } +.akhw-alert.enter { animation: akhw-alert-in 0.42s cubic-bezier(0.2, 0.9, 0.25, 1.15) both; } +.akhw-alert.leave { animation: akhw-alert-out 0.28s ease-in both; } +@keyframes akhw-alert-in { from { opacity: 0; transform: translate(-50%, -46%) scale(calc(var(--s) * 0.92)); } to { opacity: 1; transform: translate(-50%, -50%) scale(var(--s)); } } +@keyframes akhw-alert-out { to { opacity: 0; transform: translate(-50%, -50%) scale(calc(var(--s) * 0.96)); } } +.akhw-alert-icon { display: block; width: 64px; height: 64px; margin: 0 auto 12px; } +.akhw-alert strong { display: block; font-weight: 700; } +.akhw-alert-run { margin-top: 8px; } +.akhw-alert code { font-family: "SF Mono", ui-monospace, Menlo, monospace; font-size: 12px; } +.akhw-alert-details { + display: inline-flex; + align-items: center; + gap: 4px; + margin-top: 12px; + padding: 0; + border: 0; + background: none; + font: inherit; + color: #0a7aff; + cursor: pointer; +} +.akhw-alert-details svg { width: 9px; height: 9px; transition: transform 0.2s ease; } +.akhw-alert-details[aria-expanded="true"] svg { transform: rotate(90deg); } +.akhw-alert-rows { + display: grid; + grid-template-columns: auto minmax(0, 1fr); + gap: 6px 12px; + margin: 12px 0 0; + padding-top: 10px; + border-top: 1px solid rgba(0, 0, 0, 0.12); + text-align: left; +} +.akhw-alert-rows[hidden] { display: none; } +.akhw-alert-rows dt { color: #6e6e73; white-space: nowrap; } +.akhw-alert-rows dd { margin: 0; } +.akhw-alert-actions { display: grid; gap: 8px; margin-top: 16px; } +.akhw-btn { + height: 28px; + border: 0; + border-radius: 7px; + background: #fff; + box-shadow: 0 0 0 0.5px rgba(0, 0, 0, 0.18), 0 0.5px 1px rgba(0, 0, 0, 0.14); + font: inherit; + color: #1d1d1f; + cursor: pointer; + transition: filter 0.12s ease, transform 0.12s ease; +} +.akhw-btn:hover { filter: brightness(0.97); } +.akhw-btn:active, .akhw-btn.pressed { filter: brightness(0.82); transform: scale(0.985); } +.akhw-btn.is-primary { background: #0a7aff; color: #fff; box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.2); } +.akhw-btn:focus-visible, .akhw-alert-details:focus-visible, .akhw-later:focus-visible { outline: 3px solid rgba(10, 122, 255, 0.5); outline-offset: 1px; } +.akhw-alert-foot { margin-top: 12px; font-size: 11px; color: #8a8a8e; } +.akhw-count { font-variant-numeric: tabular-nums; } +.akhw-later { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; } +.akhw-later:hover { color: #1d1d1f; } +.akhw.is-hinting .akhw-btn.is-primary { animation: akhw-nudge 2.4s ease-in-out infinite; } +@keyframes akhw-nudge { 0%, 70%, 100% { box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.2), 0 0 0 0 rgba(10, 122, 255, 0.45); } 85% { box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.2), 0 0 0 7px rgba(10, 122, 255, 0); } } + +.akhw-hint { + position: absolute; + z-index: 5; + left: 50%; + bottom: clamp(18px, 5%, 48px); + margin: 0; + transform: translateX(-50%); + font-size: 13px; + color: var(--gray); + white-space: nowrap; +} +.akhw-hint[hidden] { display: none; } +.akhw-pending { + position: absolute; + z-index: 5; + right: calc((100% - var(--page)) / 2); + top: clamp(20px, 5%, 44px); + padding: 8px 16px; + border: 0; + border-radius: 999px; + background: rgba(236, 236, 236, 0.92); + box-shadow: 0 0 0 0.5px rgba(0, 0, 0, 0.12), 0 10px 26px -12px rgba(40, 50, 70, 0.45); + font: inherit; + font-size: 13.5px; + font-weight: 400; + color: var(--ink); + cursor: pointer; +} +.akhw-pending::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 9px; border-radius: 50%; background: var(--zhu); vertical-align: 1px; animation: akhw-blink 1.4s ease-in-out infinite; } +@keyframes akhw-blink { 50% { opacity: 0.25; } } +.akhw-pending[hidden] { display: none; } + +.akhw-end { + position: absolute; + z-index: 4; + left: calc((100% - var(--page)) / 2); + bottom: clamp(18px, 5%, 40px); + display: flex; + flex-wrap: wrap; + gap: 12px; +} +.akhw-end[hidden] { display: none; } +.akhw-end button, .akhw-play { + padding: 8px 18px; + border: 1px solid var(--zhu); + border-radius: 999px; + background: rgba(255, 255, 255, 0.86); + font: inherit; + font-size: 14px; + font-weight: 400; + color: var(--zhu); + cursor: pointer; + transition: background 0.2s ease, color 0.2s ease; +} +.akhw-end button:hover, .akhw-play:hover { background: var(--zhu); color: #fff; } +.akhw-end .akhw-other { border-color: rgba(26, 26, 26, 0.22); color: var(--ink); } +.akhw-end .akhw-other:hover { background: var(--ink); border-color: var(--ink); color: #fff; } +.akhw-play { position: absolute; z-index: 4; left: 50%; bottom: clamp(18px, 5%, 48px); transform: translateX(-50%); } +.akhw-play[hidden] { display: none; } +.akhw button:focus-visible { outline: 1px solid var(--zhu); outline-offset: 4px; } + +/* Chapter rail. Holds the full story as real text; in the animated telling + the text is visually hidden and shown one line at a time as a caption. */ +.akhw-steps { + display: grid; + grid-template-columns: repeat(6, minmax(0, 1fr)); + gap: 0 clamp(10px, 1.6vw, 24px); + width: var(--page); + margin: 10px auto 0; + padding: 0; + list-style: none; +} +.akhw-steps button { + position: relative; + width: 100%; + padding: 6px 0 12px; + border: 0; + background: none; + font: inherit; + font-size: 13.5px; + font-weight: 400; + text-align: left; + color: var(--faint); + cursor: pointer; +} +.akhw-steps button b { font-weight: 400; } +.akhw-steps button:hover, .akhw-steps li.on button { color: var(--ink); } +.akhw-steps button i { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--line); } +.akhw-steps button i::after { content: ""; position: absolute; inset: 0; background: var(--zhu); transform-origin: 0 50%; transform: scaleX(var(--fill, 0)); } +.akhw-steps p { + position: absolute; + width: 1px; + height: 1px; + overflow: hidden; + clip-path: inset(50%); + white-space: nowrap; +} +.akhw-steps p span { color: var(--gray); } +.akhw-steps p[data-when] { display: none; } +.akhw[data-outcome="allow"] .akhw-steps p[data-when="allow"], +.akhw[data-outcome="timed"] .akhw-steps p[data-when="timed"], +.akhw[data-outcome="timed"] .akhw-steps li[data-step="5"] p[data-when="allow"], +.akhw[data-outcome="deny"] .akhw-steps p[data-when="deny"], +.akhw[data-outcome="expire"] .akhw-steps p[data-when="expire"] { display: block; } + +.akhw-note { + width: var(--page); + max-width: 760px; + margin: 28px auto 0; + font-size: 13px; + line-height: 1.7; + text-align: center; + color: var(--faint); +} + +/* Still telling: reduced motion, or no WebGL. The stage shows one composed + frame and the rail becomes a readable list of all six steps. */ +.akhw.is-still .akhw-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px clamp(20px, 3vw, 44px); margin-top: 32px; } +.akhw.is-still .akhw-steps button { color: var(--ink); cursor: default; pointer-events: none; } +.akhw.is-still .akhw-steps button i::after { transform: scaleX(1); } +.akhw.is-still .akhw-steps p { + position: static; + width: auto; + height: auto; + overflow: visible; + clip-path: none; + white-space: normal; + margin: 12px 0 0; + font-size: 15px; + line-height: 1.6; +} +.akhw.is-still .akhw-say, .akhw.is-still .akhw-play { display: none; } +.akhw.is-still .akhw-alert { animation: none; } + +.akhw-still-alert { display: flex; justify-content: center; width: var(--page); margin: 32px auto 0; } +.akhw-still-alert .akhw-alert { position: static; transform: none; animation: none; box-shadow: 0 0 0 0.5px rgba(0, 0, 0, 0.22), 0 12px 30px -12px rgba(0, 0, 0, 0.3); } + +/* On wide, landscape screens the whole chapter, title to rail, fits one + screen. Portrait tablets keep their natural height instead of padding + the scene with empty space. */ +@media (min-width: 701px) and (min-aspect-ratio: 1 / 1) { + .akhw:not(.is-still) { min-height: min(100svh, 980px); display: flex; flex-direction: column; justify-content: center; } +} + +/* Phones and portrait tablets: the scene is recomposed upright by the + script; here the caption moves under the scene so it never covers it. */ +@media (max-width: 700px), (max-aspect-ratio: 1 / 1) { + .akhw-stage { width: 100%; height: clamp(520px, 78svh, 760px); } + .akhw-stage::after { display: none; } + .akhw-say { + position: relative; + left: auto; + top: auto; + width: auto; + height: 7.2em; + margin: 18px var(--gutter) 0; + } + .akhw-say p { font-size: 22px; right: 0; color: var(--ink); } + .akhw-say p span { color: var(--gray); } + .akhw-alert { --s: 1; width: 280px; padding: 20px 14px 12px; } + .akhw-alert-icon { width: 52px; height: 52px; margin-bottom: 10px; } + .akhw-steps { gap: 0 8px; } + .akhw-steps button { font-size: 12.5px; } + .akhw.is-still .akhw-steps { grid-template-columns: minmax(0, 1fr); gap: 18px; } + .akhw-tag { font-size: 11.5px; } + .akhw-tag b { font-size: 12.5px; } + .akhw-tag.is-pill { font-size: 12px; padding: 4px 10px; } + .akhw-tag.is-pill.is-zero { font-size: 13px; padding: 6px 13px; } + .akhw-end { left: 50%; transform: translateX(-50%); flex-wrap: nowrap; } + .akhw-end button { white-space: nowrap; font-size: 13.5px; padding: 8px 14px; } + .akhw-bar, .akhw-foot { padding: 20px var(--gutter, 24px); } + .akhw-foot { flex-direction: column; align-items: flex-start; gap: 8px; } +} +/* Portrait tablets: a square stage, so the upright composition has room. */ +@media (min-width: 701px) and (max-aspect-ratio: 1 / 1) { + .akhw-stage { height: min(100vw, 80svh); } +} diff --git a/site/how/how.js b/site/how/how.js new file mode 100644 index 0000000..ea6c48d --- /dev/null +++ b/site/how/how.js @@ -0,0 +1,4279 @@ +/*! Ask Key: How it works. Includes three.js r186, MIT License, Copyright 2010-2026 three.js authors; full text in THREE-LICENSE.txt next to this file. */ +var Uh=0,Xl=1,Fh=2;var Tr=1,Oh=2,Ts=3,ln=0,It=1,kt=2,Bn=0,ws=1,ql=2,Yl=3,Zl=4,io=5;var Li=100,Bh=101,zh=102,kh=103,Vh=104,Hh=200,so=201,Gh=202,Wh=203,wr=204,As=205,Xh=206,qh=207,Yh=208,Zh=209,Jh=210,$h=211,Kh=212,Qh=213,jh=214,Sa=0,ba=1,Ea=2,rs=3,Ta=4,wa=5,Aa=6,Ra=7,Jl=0,eu=1,tu=2,bn=0,$l=1,Kl=2,Ql=3,jl=4,ec=5,tc=6,Ar=7;var nc=300,xi=301,Di=302,ro=303,ao=304,Rr=306,as=1e3,In=1001,Ca=1002,Ut=1003,nu=1004;var Cr=1005;var zt=1006,oo=1007;var zn=1008;var tn=1009,ic=1010,sc=1011,Rs=1012,lo=1013,En=1014,Tn=1015,wn=1016,co=1017,ho=1018,Cs=1020,rc=35902,ac=35899,oc=1021,lc=1022,fn=1023,Dn=1026,vi=1027,cc=1028,uo=1029,yi=1030,fo=1031;var po=1033,Pr=33776,Ir=33777,Lr=33778,Dr=33779,mo=35840,go=35841,_o=35842,xo=35843,vo=36196,yo=37492,Mo=37496,So=37488,bo=37489,Nr=37490,Eo=37491,To=37808,wo=37809,Ao=37810,Ro=37811,Co=37812,Po=37813,Io=37814,Lo=37815,Do=37816,No=37817,Uo=37818,Fo=37819,Oo=37820,Bo=37821,zo=36492,ko=36494,Vo=36495,Ho=36283,Go=36284,Ur=36285,Wo=36286;var Js=2300,Pa=2301,va=2302,Nl=2303,Ul=2400,Fl=2401,Ol=2402;var iu=3200;var Xo=0,su=1,ti="",St="srgb",$s="srgb-linear",Ks="linear",ht="srgb";var ya=7680;var ru=519,au=512,ou=513,lu=514,qo=515,cu=516,hu=517,Yo=518,uu=519,hc=35044;var uc="300 es",Mn=2e3,os=2001;function Ud(i){for(let e=i.length-1;e>=0;--e)if(i[e]>=65535)return!0;return!1}function Fd(i){return ArrayBuffer.isView(i)&&!(i instanceof DataView)}function ls(i){return document.createElementNS("http://www.w3.org/1999/xhtml",i)}function du(){let i=ls("canvas");return i.style.display="block",i}var nh={},cs=null;function Qs(...i){let e="THREE."+i.shift();cs?cs("log",e,...i):console.log(e,...i)}function fu(i){let e=i[0];if(typeof e=="string"&&e.startsWith("TSL:")){let t=i[1];t&&t.isStackTrace?i[0]+=" "+t.getLocation():i[1]='Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.'}return i}function Ge(...i){i=fu(i);let e="THREE."+i.shift();if(cs)cs("warn",e,...i);else{let t=i[0];t&&t.isStackTrace?console.warn(t.getError(e)):console.warn(e,...i)}}function We(...i){i=fu(i);let e="THREE."+i.shift();if(cs)cs("error",e,...i);else{let t=i[0];t&&t.isStackTrace?console.error(t.getError(e)):console.error(e,...i)}}function Ri(...i){let e=i.join(" ");e in nh||(nh[e]=!0,Ge(...i))}function pu(i,e,t){return new Promise(function(n,s){function r(){switch(i.clientWaitSync(e,i.SYNC_FLUSH_COMMANDS_BIT,0)){case i.WAIT_FAILED:s();break;case i.TIMEOUT_EXPIRED:setTimeout(r,t);break;default:n()}}setTimeout(r,t)})}var mu={[Sa]:ba,[Ea]:Aa,[Ta]:Ra,[rs]:wa,[ba]:Sa,[Aa]:Ea,[Ra]:Ta,[wa]:rs},Nn=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){let n=this._listeners;return n===void 0?!1:n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){let n=this._listeners;if(n===void 0)return;let s=n[e];if(s!==void 0){let r=s.indexOf(t);r!==-1&&s.splice(r,1)}}dispatchEvent(e){let t=this._listeners;if(t===void 0)return;let n=t[e.type];if(n!==void 0){e.target=this;let s=n.slice(0);for(let r=0,a=s.length;r>8&255]+Gt[i>>16&255]+Gt[i>>24&255]+"-"+Gt[e&255]+Gt[e>>8&255]+"-"+Gt[e>>16&15|64]+Gt[e>>24&255]+"-"+Gt[t&63|128]+Gt[t>>8&255]+"-"+Gt[t>>16&255]+Gt[t>>24&255]+Gt[n&255]+Gt[n>>8&255]+Gt[n>>16&255]+Gt[n>>24&255]).toLowerCase()}function tt(i,e,t){return Math.max(e,Math.min(t,i))}function dc(i,e){return(i%e+e)%e}function Od(i,e,t,n,s){return n+(i-e)*(s-n)/(t-e)}function Bd(i,e,t){return i!==e?(t-i)/(e-i):0}function qs(i,e,t){return(1-t)*i+t*e}function zd(i,e,t,n){return qs(i,e,1-Math.exp(-t*n))}function kd(i,e=1){return e-Math.abs(dc(i,e*2)-e)}function Vd(i,e,t){return i<=e?0:i>=t?1:(i=(i-e)/(t-e),i*i*(3-2*i))}function Hd(i,e,t){return i<=e?0:i>=t?1:(i=(i-e)/(t-e),i*i*i*(i*(i*6-15)+10))}function Gd(i,e){return i+Math.floor(Math.random()*(e-i+1))}function Wd(i,e){return i+Math.random()*(e-i)}function Xd(i){return i*(.5-Math.random())}function qd(i){i!==void 0&&(ih=i);let e=ih+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function Yd(i){return i*Xs}function Zd(i){return i*hs}function Jd(i){return i>0&&Number.isInteger(i)&&2**Math.round(Math.log2(i))===i}function $d(i){return Math.pow(2,Math.ceil(Math.log(i)/Math.LN2))}function Kd(i){return Math.pow(2,Math.floor(Math.log(i)/Math.LN2))}function Qd(i,e,t,n,s){let r=Math.cos,a=Math.sin,o=r(t/2),l=a(t/2),c=r((e+n)/2),h=a((e+n)/2),u=r((e-n)/2),d=a((e-n)/2),f=r((n-e)/2),m=a((n-e)/2);switch(s){case"XYX":i.set(o*h,l*u,l*d,o*c);break;case"YZY":i.set(l*d,o*h,l*u,o*c);break;case"ZXZ":i.set(l*u,l*d,o*h,o*c);break;case"XZX":i.set(o*h,l*m,l*f,o*c);break;case"YXY":i.set(l*f,o*h,l*m,o*c);break;case"ZYZ":i.set(l*m,l*f,o*h,o*c);break;default:Ge("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+s)}}function yn(i,e){switch(e.constructor){case Float32Array:return i;case Uint32Array:return i/4294967295;case Uint16Array:return i/65535;case Uint8Array:case Uint8ClampedArray:return i/255;case Int32Array:return Math.max(i/2147483647,-1);case Int16Array:return Math.max(i/32767,-1);case Int8Array:return Math.max(i/127,-1);default:throw new Error("THREE.MathUtils: Invalid component type.")}}function ut(i,e){switch(e.constructor){case Float32Array:return i;case Uint32Array:return Math.round(i*4294967295);case Uint16Array:return Math.round(i*65535);case Uint8Array:case Uint8ClampedArray:return Math.round(i*255);case Int32Array:return Math.round(i*2147483647);case Int16Array:return Math.round(i*32767);case Int8Array:return Math.round(i*127);default:throw new Error("THREE.MathUtils: Invalid component type.")}}var Fr={DEG2RAD:Xs,RAD2DEG:hs,generateUUID:Ln,clamp:tt,euclideanModulo:dc,mapLinear:Od,inverseLerp:Bd,lerp:qs,damp:zd,pingpong:kd,smoothstep:Vd,smootherstep:Hd,randInt:Gd,randFloat:Wd,randFloatSpread:Xd,seededRandom:qd,degToRad:Yd,radToDeg:Zd,isPowerOfTwo:Jd,ceilPowerOfTwo:$d,floorPowerOfTwo:Kd,setQuaternionFromProperEuler:Qd,normalize:ut,denormalize:yn},xc=class xc{constructor(e=0,t=0){this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("THREE.Vector2: index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("THREE.Vector2: index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,n=this.y,s=e.elements;return this.x=s[0]*t+s[3]*n+s[6],this.y=s[1]*t+s[4]*n+s[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=tt(this.x,e.x,t.x),this.y=tt(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=tt(this.x,e,t),this.y=tt(this.y,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(tt(n,e,t))}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(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.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(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(tt(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let n=Math.cos(t),s=Math.sin(t),r=this.x-e.x,a=this.y-e.y;return this.x=r*n-a*s+e.x,this.y=r*s+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}};xc.prototype.isVector2=!0;var ue=xc,qt=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,r,a,o){let l=n[s+0],c=n[s+1],h=n[s+2],u=n[s+3],d=r[a+0],f=r[a+1],m=r[a+2],v=r[a+3];if(u!==v||l!==d||c!==f||h!==m){let g=l*d+c*f+h*m+u*v;g<0&&(d=-d,f=-f,m=-m,v=-v,g=-g);let p=1-o;if(g<.9995){let T=Math.acos(g),w=Math.sin(T);p=Math.sin(p*T)/w,o=Math.sin(o*T)/w,l=l*p+d*o,c=c*p+f*o,h=h*p+m*o,u=u*p+v*o}else{l=l*p+d*o,c=c*p+f*o,h=h*p+m*o,u=u*p+v*o;let T=1/Math.sqrt(l*l+c*c+h*h+u*u);l*=T,c*=T,h*=T,u*=T}}e[t]=l,e[t+1]=c,e[t+2]=h,e[t+3]=u}static multiplyQuaternionsFlat(e,t,n,s,r,a){let o=n[s],l=n[s+1],c=n[s+2],h=n[s+3],u=r[a],d=r[a+1],f=r[a+2],m=r[a+3];return e[t]=o*m+h*u+l*f-c*d,e[t+1]=l*m+h*d+c*u-o*f,e[t+2]=c*m+h*f+o*d-l*u,e[t+3]=h*m-o*u-l*d-c*f,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){let n=e._x,s=e._y,r=e._z,a=e._order,o=Math.cos,l=Math.sin,c=o(n/2),h=o(s/2),u=o(r/2),d=l(n/2),f=l(s/2),m=l(r/2);switch(a){case"XYZ":this._x=d*h*u+c*f*m,this._y=c*f*u-d*h*m,this._z=c*h*m+d*f*u,this._w=c*h*u-d*f*m;break;case"YXZ":this._x=d*h*u+c*f*m,this._y=c*f*u-d*h*m,this._z=c*h*m-d*f*u,this._w=c*h*u+d*f*m;break;case"ZXY":this._x=d*h*u-c*f*m,this._y=c*f*u+d*h*m,this._z=c*h*m+d*f*u,this._w=c*h*u-d*f*m;break;case"ZYX":this._x=d*h*u-c*f*m,this._y=c*f*u+d*h*m,this._z=c*h*m-d*f*u,this._w=c*h*u+d*f*m;break;case"YZX":this._x=d*h*u+c*f*m,this._y=c*f*u+d*h*m,this._z=c*h*m-d*f*u,this._w=c*h*u-d*f*m;break;case"XZY":this._x=d*h*u-c*f*m,this._y=c*f*u-d*h*m,this._z=c*h*m+d*f*u,this._w=c*h*u+d*f*m;break;default:Ge("Quaternion: .setFromEuler() encountered an unknown order: "+a)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let 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){let t=e.elements,n=t[0],s=t[4],r=t[8],a=t[1],o=t[5],l=t[9],c=t[2],h=t[6],u=t[10],d=n+o+u;if(d>0){let f=.5/Math.sqrt(d+1);this._w=.25/f,this._x=(h-l)*f,this._y=(r-c)*f,this._z=(a-s)*f}else if(n>o&&n>u){let f=2*Math.sqrt(1+n-o-u);this._w=(h-l)/f,this._x=.25*f,this._y=(s+a)/f,this._z=(r+c)/f}else if(o>u){let f=2*Math.sqrt(1+o-n-u);this._w=(r-c)/f,this._x=(s+a)/f,this._y=.25*f,this._z=(l+h)/f}else{let f=2*Math.sqrt(1+u-n-o);this._w=(a-s)/f,this._x=(r+c)/f,this._y=(l+h)/f,this._z=.25*f}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(tt(this.dot(e),-1,1)))}rotateTowards(e,t){let n=this.angleTo(e);if(n===0)return this;let 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){let n=e._x,s=e._y,r=e._z,a=e._w,o=t._x,l=t._y,c=t._z,h=t._w;return this._x=n*h+a*o+s*c-r*l,this._y=s*h+a*l+r*o-n*c,this._z=r*h+a*c+n*l-s*o,this._w=a*h-n*o-s*l-r*c,this._onChangeCallback(),this}slerp(e,t){let n=e._x,s=e._y,r=e._z,a=e._w,o=this.dot(e);o<0&&(n=-n,s=-s,r=-r,a=-a,o=-o);let l=1-t;if(o<.9995){let c=Math.acos(o),h=Math.sin(c);l=Math.sin(l*c)/h,t=Math.sin(t*c)/h,this._x=this._x*l+n*t,this._y=this._y*l+s*t,this._z=this._z*l+r*t,this._w=this._w*l+a*t,this._onChangeCallback()}else this._x=this._x*l+n*t,this._y=this._y*l+s*t,this._z=this._z*l+r*t,this._w=this._w*l+a*t,this.normalize();return this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){let e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),s=Math.sqrt(1-n),r=Math.sqrt(n);return this.set(s*Math.sin(e),s*Math.cos(e),r*Math.sin(t),r*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}},vc=class vc{constructor(e=0,t=0,n=0){this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("THREE.Vector3: index is out of range: "+e)}return this}getComponent(e){switch(e){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: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(sh.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(sh.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,n=this.y,s=this.z,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6]*s,this.y=r[1]*t+r[4]*n+r[7]*s,this.z=r[2]*t+r[5]*n+r[8]*s,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,n=this.y,s=this.z,r=e.elements,a=1/(r[3]*t+r[7]*n+r[11]*s+r[15]);return this.x=(r[0]*t+r[4]*n+r[8]*s+r[12])*a,this.y=(r[1]*t+r[5]*n+r[9]*s+r[13])*a,this.z=(r[2]*t+r[6]*n+r[10]*s+r[14])*a,this}applyQuaternion(e){let t=this.x,n=this.y,s=this.z,r=e.x,a=e.y,o=e.z,l=e.w,c=2*(a*s-o*n),h=2*(o*t-r*s),u=2*(r*n-a*t);return this.x=t+l*c+a*u-o*h,this.y=n+l*h+o*c-r*u,this.z=s+l*u+r*h-a*c,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,n=this.y,s=this.z,r=e.elements;return this.x=r[0]*t+r[4]*n+r[8]*s,this.y=r[1]*t+r[5]*n+r[9]*s,this.z=r[2]*t+r[6]*n+r[10]*s,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=tt(this.x,e.x,t.x),this.y=tt(this.y,e.y,t.y),this.z=tt(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=tt(this.x,e,t),this.y=tt(this.y,e,t),this.z=tt(this.z,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(tt(n,e,t))}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(e){return this.x*e.x+this.y*e.y+this.z*e.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(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let n=e.x,s=e.y,r=e.z,a=t.x,o=t.y,l=t.z;return this.x=s*l-r*o,this.y=r*a-n*l,this.z=n*o-s*a,this}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return cl.copy(this).projectOnVector(e),this.sub(cl)}reflect(e){return this.sub(cl.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(tt(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,s=this.z-e.z;return t*t+n*n+s*s}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){let s=Math.sin(t)*e;return this.x=s*Math.sin(n),this.y=Math.cos(t)*e,this.z=s*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),s=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=s,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=Math.random()*Math.PI*2,t=Math.random()*2-1,n=Math.sqrt(1-t*t);return this.x=n*Math.cos(e),this.y=t,this.z=n*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}};vc.prototype.isVector3=!0;var I=vc,cl=new I,sh=new qt,yc=class yc{constructor(e,t,n,s,r,a,o,l,c){this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,n,s,r,a,o,l,c)}set(e,t,n,s,r,a,o,l,c){let h=this.elements;return h[0]=e,h[1]=s,h[2]=o,h[3]=t,h[4]=r,h[5]=l,h[6]=n,h[7]=a,h[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,s=t.elements,r=this.elements,a=n[0],o=n[3],l=n[6],c=n[1],h=n[4],u=n[7],d=n[2],f=n[5],m=n[8],v=s[0],g=s[3],p=s[6],T=s[1],w=s[4],M=s[7],b=s[2],S=s[5],R=s[8];return r[0]=a*v+o*T+l*b,r[3]=a*g+o*w+l*S,r[6]=a*p+o*M+l*R,r[1]=c*v+h*T+u*b,r[4]=c*g+h*w+u*S,r[7]=c*p+h*M+u*R,r[2]=d*v+f*T+m*b,r[5]=d*g+f*w+m*S,r[8]=d*p+f*M+m*R,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[1],s=e[2],r=e[3],a=e[4],o=e[5],l=e[6],c=e[7],h=e[8];return t*a*h-t*o*c-n*r*h+n*o*l+s*r*c-s*a*l}invert(){let e=this.elements,t=e[0],n=e[1],s=e[2],r=e[3],a=e[4],o=e[5],l=e[6],c=e[7],h=e[8],u=h*a-o*c,d=o*l-h*r,f=c*r-a*l,m=t*u+n*d+s*f;if(m===0)return this.set(0,0,0,0,0,0,0,0,0);let v=1/m;return e[0]=u*v,e[1]=(s*c-h*n)*v,e[2]=(o*n-s*a)*v,e[3]=d*v,e[4]=(h*t-s*l)*v,e[5]=(s*r-o*t)*v,e[6]=f*v,e[7]=(n*l-c*t)*v,e[8]=(a*t-n*r)*v,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,s,r,a,o){let l=Math.cos(r),c=Math.sin(r);return this.set(n*l,n*c,-n*(l*a+c*o)+a+e,-s*c,s*l,-s*(-c*a+l*o)+o+t,0,0,1),this}scale(e,t){return Ri("Matrix3: .scale() is deprecated. Use .makeScale() instead."),this.premultiply(hl.makeScale(e,t)),this}rotate(e){return Ri("Matrix3: .rotate() is deprecated. Use .makeRotation() instead."),this.premultiply(hl.makeRotation(-e)),this}translate(e,t){return Ri("Matrix3: .translate() is deprecated. Use .makeTranslation() instead."),this.premultiply(hl.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,n=e.elements;for(let s=0;s<9;s++)if(t[s]!==n[s])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}};yc.prototype.isMatrix3=!0;var Je=yc,hl=new Je,rh=new Je().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),ah=new Je().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function jd(){let i={enabled:!0,workingColorSpace:$s,spaces:{},convert:function(s,r,a){return this.enabled===!1||r===a||!r||!a||(this.spaces[r].transfer===ht&&(s.r=jn(s.r),s.g=jn(s.g),s.b=jn(s.b)),this.spaces[r].primaries!==this.spaces[a].primaries&&(s.applyMatrix3(this.spaces[r].toXYZ),s.applyMatrix3(this.spaces[a].fromXYZ)),this.spaces[a].transfer===ht&&(s.r=ss(s.r),s.g=ss(s.g),s.b=ss(s.b))),s},workingToColorSpace:function(s,r){return this.convert(s,this.workingColorSpace,r)},colorSpaceToWorking:function(s,r){return this.convert(s,r,this.workingColorSpace)},getPrimaries:function(s){return this.spaces[s].primaries},getTransfer:function(s){return s===ti?Ks:this.spaces[s].transfer},getToneMappingMode:function(s){return this.spaces[s].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(s,r=this.workingColorSpace){return s.fromArray(this.spaces[r].luminanceCoefficients)},define:function(s){Object.assign(this.spaces,s)},_getMatrix:function(s,r,a){return s.copy(this.spaces[r].toXYZ).multiply(this.spaces[a].fromXYZ)},_getDrawingBufferColorSpace:function(s){return this.spaces[s].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(s=this.workingColorSpace){return this.spaces[s].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(s,r){return Ri("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),i.workingToColorSpace(s,r)},toWorkingColorSpace:function(s,r){return Ri("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),i.colorSpaceToWorking(s,r)}},e=[.64,.33,.3,.6,.15,.06],t=[.2126,.7152,.0722],n=[.3127,.329];return i.define({[$s]:{primaries:e,whitePoint:n,transfer:Ks,toXYZ:rh,fromXYZ:ah,luminanceCoefficients:t,workingColorSpaceConfig:{unpackColorSpace:St},outputColorSpaceConfig:{drawingBufferColorSpace:St}},[St]:{primaries:e,whitePoint:n,transfer:ht,toXYZ:rh,fromXYZ:ah,luminanceCoefficients:t,outputColorSpaceConfig:{drawingBufferColorSpace:St}}}),i}var rt=jd();function jn(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4)}function ss(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055}var ki,Ia=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{ki===void 0&&(ki=ls("canvas")),ki.width=e.width,ki.height=e.height;let s=ki.getContext("2d");e instanceof ImageData?s.putImageData(e,0,0):s.drawImage(e,0,0,e.width,e.height),n=ki}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){let t=ls("canvas");t.width=e.width,t.height=e.height;let n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);let s=n.getImageData(0,0,e.width,e.height),r=s.data;for(let a=0;a1),this.pmremVersion=0,this.normalized=!1}get width(){return this.source.getSize(dl).x}get height(){return this.source.getSize(dl).y}get depth(){return this.source.getSize(dl).z}get image(){return this.source.data}set image(e){this.source.data=e}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(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.normalized=e.normalized,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.renderTarget=e.renderTarget,this.isRenderTargetTexture=e.isRenderTargetTexture,this.isArrayTexture=e.isArrayTexture,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}setValues(e){for(let t in e){let n=e[t];if(n===void 0){Ge(`Texture.setValues(): parameter '${t}' has value of undefined.`);continue}let s=this[t];if(s===void 0){Ge(`Texture.setValues(): property '${t}' does not exist.`);continue}s&&n&&s.isVector2&&n.isVector2||s&&n&&s.isVector3&&n.isVector3||s&&n&&s.isMatrix3&&n.isMatrix3?s.copy(n):this[t]=n}}toJSON(e){let t=e===void 0||typeof e=="string";if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];let n={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).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&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==nc)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case as:e.x=e.x-Math.floor(e.x);break;case In:e.x=e.x<0?0:1;break;case Ca:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case as:e.y=e.y-Math.floor(e.y);break;case In:e.y=e.y<0?0:1;break;case Ca:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}};Yt.DEFAULT_IMAGE=null;Yt.DEFAULT_MAPPING=nc;Yt.DEFAULT_ANISOTROPY=1;var Mc=class Mc{constructor(e=0,t=0,n=0,s=1){this.x=e,this.y=t,this.z=n,this.w=s}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,s){return this.x=e,this.y=t,this.z=n,this.w=s,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("THREE.Vector4: index is out of range: "+e)}return this}getComponent(e){switch(e){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: "+e)}}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!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,n=this.y,s=this.z,r=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*s+a[12]*r,this.y=a[1]*t+a[5]*n+a[9]*s+a[13]*r,this.z=a[2]*t+a[6]*n+a[10]*s+a[14]*r,this.w=a[3]*t+a[7]*n+a[11]*s+a[15]*r,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,s,r,l=e.elements,c=l[0],h=l[4],u=l[8],d=l[1],f=l[5],m=l[9],v=l[2],g=l[6],p=l[10];if(Math.abs(h-d)<.01&&Math.abs(u-v)<.01&&Math.abs(m-g)<.01){if(Math.abs(h+d)<.1&&Math.abs(u+v)<.1&&Math.abs(m+g)<.1&&Math.abs(c+f+p-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;let w=(c+1)/2,M=(f+1)/2,b=(p+1)/2,S=(h+d)/4,R=(u+v)/4,x=(m+g)/4;return w>M&&w>b?w<.01?(n=0,s=.707106781,r=.707106781):(n=Math.sqrt(w),s=S/n,r=R/n):M>b?M<.01?(n=.707106781,s=0,r=.707106781):(s=Math.sqrt(M),n=S/s,r=x/s):b<.01?(n=.707106781,s=.707106781,r=0):(r=Math.sqrt(b),n=R/r,s=x/r),this.set(n,s,r,t),this}let T=Math.sqrt((g-m)*(g-m)+(u-v)*(u-v)+(d-h)*(d-h));return Math.abs(T)<.001&&(T=1),this.x=(g-m)/T,this.y=(u-v)/T,this.z=(d-h)/T,this.w=Math.acos((c+f+p-1)/2),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=tt(this.x,e.x,t.x),this.y=tt(this.y,e.y,t.y),this.z=tt(this.z,e.z,t.z),this.w=tt(this.w,e.w,t.w),this}clampScalar(e,t){return this.x=tt(this.x,e,t),this.y=tt(this.y,e,t),this.z=tt(this.z,e,t),this.w=tt(this.w,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(tt(n,e,t))}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(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)}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(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}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}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}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}};Mc.prototype.isVector4=!0;var Mt=Mc,La=class extends Nn{constructor(e=1,t=1,n={}){super(),n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:zt,depthBuffer:!0,stencilBuffer:!1,resolveColorBuffer:!0,resolveDepthBuffer:!0,resolveStencilBuffer:!0,storeMultisampledColorBuffer:!0,storeMultisampledDepthBuffer:!0,storeMultisampledStencilBuffer:!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 Mt(0,0,e,t),this.scissorTest=!1,this.viewport=new Mt(0,0,e,t),this.textures=[];let s={width:e,height:t,depth:n.depth},r=new Yt(s),a=n.count;for(let o=0;o1);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 t=0;t1){for(let n=0;n0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),this.pivot!==null&&(s.pivot=this.pivot.toArray()),this.morphTargetDictionary!==void 0&&(s.morphTargetDictionary=Object.assign({},this.morphTargetDictionary)),this.morphTargetInfluences!==void 0&&(s.morphTargetInfluences=this.morphTargetInfluences.slice()),this.isInstancedMesh&&(s.type="InstancedMesh",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(s.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(s.type="BatchedMesh",s.perObjectFrustumCulled=this.perObjectFrustumCulled,s.sortObjects=this.sortObjects,s.drawRanges=this._drawRanges,s.reservedRanges=this._reservedRanges,s.geometryInfo=this._geometryInfo.map(o=>({...o,boundingBox:o.boundingBox?o.boundingBox.toJSON():void 0,boundingSphere:o.boundingSphere?o.boundingSphere.toJSON():void 0})),s.instanceInfo=this._instanceInfo.map(o=>({...o})),s.availableInstanceIds=this._availableInstanceIds.slice(),s.availableGeometryIds=this._availableGeometryIds.slice(),s.nextIndexStart=this._nextIndexStart,s.nextVertexStart=this._nextVertexStart,s.geometryCount=this._geometryCount,s.maxInstanceCount=this._maxInstanceCount,s.maxVertexCount=this._maxVertexCount,s.maxIndexCount=this._maxIndexCount,s.geometryInitialized=this._geometryInitialized,s.matricesTexture=this._matricesTexture.toJSON(e),s.indirectTexture=this._indirectTexture.toJSON(e),this._colorsTexture!==null&&(s.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(s.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(s.boundingBox=this.boundingBox.toJSON()));function r(o,l){return o[l.uuid]===void 0&&(o[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(s.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=r(e.geometries,this.geometry);let o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){let l=o.shapes;if(Array.isArray(l))for(let c=0,h=l.length;c0){s.children=[];for(let o=0;o0){s.animations=[];for(let o=0;o0&&(n.geometries=o),l.length>0&&(n.materials=l),c.length>0&&(n.textures=c),h.length>0&&(n.images=h),u.length>0&&(n.shapes=u),d.length>0&&(n.skeletons=d),f.length>0&&(n.animations=f),m.length>0&&(n.nodes=m)}return n.object=s,n;function a(o){let l=[];for(let c in o){let h=o[c];delete h.metadata,l.push(h)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.pivot=e.pivot!==null?e.pivot.clone():null,this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.static=e.static,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let n=0;nf+m?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&d<=f-m&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(r=t.getPose(e.gripSpace,n),r!==null&&(l.matrix.fromArray(r.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,r.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(r.linearVelocity)):l.hasLinearVelocity=!1,r.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(r.angularVelocity)):l.hasAngularVelocity=!1,l.eventsEnabled&&l.dispatchEvent({type:"gripUpdated",data:e,target:this})));o!==null&&(s=t.getPose(e.targetRaySpace,n),s===null&&r!==null&&(s=r),s!==null&&(o.matrix.fromArray(s.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,s.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(s.linearVelocity)):o.hasLinearVelocity=!1,s.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(s.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(cf)))}return o!==null&&(o.visible=s!==null),l!==null&&(l.visible=r!==null),c!==null&&(c.visible=a!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){let n=new jt;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}},gu={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},oi={h:0,s:0,l:0},Jr={h:0,s:0,l:0};function pl(i,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?i+(e-i)*6*t:t<1/2?e:t<2/3?i+(e-i)*6*(2/3-t):i}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){let 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=St){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,rt.colorSpaceToWorking(this,t),this}setRGB(e,t,n,s=rt.workingColorSpace){return this.r=e,this.g=t,this.b=n,rt.colorSpaceToWorking(this,s),this}setHSL(e,t,n,s=rt.workingColorSpace){if(e=dc(e,1),t=tt(t,0,1),n=tt(n,0,1),t===0)this.r=this.g=this.b=n;else{let r=n<=.5?n*(1+t):n+t-n*t,a=2*n-r;this.r=pl(a,r,e+1/3),this.g=pl(a,r,e),this.b=pl(a,r,e-1/3)}return rt.colorSpaceToWorking(this,s),this}setStyle(e,t=St){function n(r){r!==void 0&&parseFloat(r)<1&&Ge("Color: Alpha component of "+e+" will be ignored.")}let s;if(s=/^(\w+)\(([^\)]*)\)/.exec(e)){let r,a=s[1],o=s[2];switch(a){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,t);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,t);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,t);break;default:Ge("Color: Unknown color model "+e)}}else if(s=/^\#([A-Fa-f\d]+)$/.exec(e)){let r=s[1],a=r.length;if(a===3)return this.setRGB(parseInt(r.charAt(0),16)/15,parseInt(r.charAt(1),16)/15,parseInt(r.charAt(2),16)/15,t);if(a===6)return this.setHex(parseInt(r,16),t);Ge("Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=St){let n=gu[e.toLowerCase()];return n!==void 0?this.setHex(n,t):Ge("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=jn(e.r),this.g=jn(e.g),this.b=jn(e.b),this}copyLinearToSRGB(e){return this.r=ss(e.r),this.g=ss(e.g),this.b=ss(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=St){return rt.workingToColorSpace(Wt.copy(this),e),Math.round(tt(Wt.r*255,0,255))*65536+Math.round(tt(Wt.g*255,0,255))*256+Math.round(tt(Wt.b*255,0,255))}getHexString(e=St){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=rt.workingColorSpace){rt.workingToColorSpace(Wt.copy(this),t);let n=Wt.r,s=Wt.g,r=Wt.b,a=Math.max(n,s,r),o=Math.min(n,s,r),l,c,h=(o+a)/2;if(o===a)l=0,c=0;else{let u=a-o;switch(c=h<=.5?u/(a+o):u/(2-a-o),a){case n:l=(s-r)/u+(s0?s.multiplyScalar(1/Math.sqrt(r)):s.set(0,0,0)}static getBarycoord(e,t,n,s,r){_n.subVectors(s,t),Zn.subVectors(n,t),ml.subVectors(e,t);let a=_n.dot(_n),o=_n.dot(Zn),l=_n.dot(ml),c=Zn.dot(Zn),h=Zn.dot(ml),u=a*c-o*o;if(u===0)return r.set(0,0,0),null;let d=1/u,f=(c*l-o*h)*d,m=(a*h-o*l)*d;return r.set(1-f-m,m,f)}static containsPoint(e,t,n,s){return this.getBarycoord(e,t,n,s,Jn)===null?!1:Jn.x>=0&&Jn.y>=0&&Jn.x+Jn.y<=1}static getInterpolation(e,t,n,s,r,a,o,l){return this.getBarycoord(e,t,n,s,Jn)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(r,Jn.x),l.addScaledVector(a,Jn.y),l.addScaledVector(o,Jn.z),l)}static getInterpolatedAttribute(e,t,n,s,r,a){return vl.setScalar(0),yl.setScalar(0),Ml.setScalar(0),vl.fromBufferAttribute(e,t),yl.fromBufferAttribute(e,n),Ml.fromBufferAttribute(e,s),a.setScalar(0),a.addScaledVector(vl,r.x),a.addScaledVector(yl,r.y),a.addScaledVector(Ml,r.z),a}static isFrontFacing(e,t,n,s){return _n.subVectors(n,t),Zn.subVectors(e,t),_n.cross(Zn).dot(s)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,s){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[s]),this}setFromAttributeAndIndices(e,t,n,s){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,s),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return _n.subVectors(this.c,this.b),Zn.subVectors(this.a,this.b),_n.cross(Zn).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return i.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return i.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,n,s,r){return i.getInterpolation(e,this.a,this.b,this.c,t,n,s,r)}containsPoint(e){return i.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return i.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let n=this.a,s=this.b,r=this.c,a,o;Wi.subVectors(s,n),Xi.subVectors(r,n),gl.subVectors(e,n);let l=Wi.dot(gl),c=Xi.dot(gl);if(l<=0&&c<=0)return t.copy(n);_l.subVectors(e,s);let h=Wi.dot(_l),u=Xi.dot(_l);if(h>=0&&u<=h)return t.copy(s);let d=l*u-h*c;if(d<=0&&l>=0&&h<=0)return a=l/(l-h),t.copy(n).addScaledVector(Wi,a);xl.subVectors(e,r);let f=Wi.dot(xl),m=Xi.dot(xl);if(m>=0&&f<=m)return t.copy(r);let v=f*c-l*m;if(v<=0&&c>=0&&m<=0)return o=c/(c-m),t.copy(n).addScaledVector(Xi,o);let g=h*m-f*u;if(g<=0&&u-h>=0&&f-m>=0)return ph.subVectors(r,s),o=(u-h)/(u-h+(f-m)),t.copy(s).addScaledVector(ph,o);let p=1/(g+v+d);return a=v*p,o=d*p,t.copy(n).addScaledVector(Wi,a).addScaledVector(Xi,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},Un=class{constructor(e=new I(1/0,1/0,1/0),t=new I(-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,xn),xn.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(Bs),Kr.subVectors(this.max,Bs),qi.subVectors(e.a,Bs),Yi.subVectors(e.b,Bs),Zi.subVectors(e.c,Bs),li.subVectors(Yi,qi),ci.subVectors(Zi,Yi),bi.subVectors(qi,Zi);let t=[0,-li.z,li.y,0,-ci.z,ci.y,0,-bi.z,bi.y,li.z,0,-li.x,ci.z,0,-ci.x,bi.z,0,-bi.x,-li.y,li.x,0,-ci.y,ci.x,0,-bi.y,bi.x,0];return!Sl(t,qi,Yi,Zi,Kr)||(t=[1,0,0,0,1,0,0,0,1],!Sl(t,qi,Yi,Zi,Kr))?!1:(Qr.crossVectors(li,ci),t=[Qr.x,Qr.y,Qr.z],Sl(t,qi,Yi,Zi,Kr))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,xn).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(xn).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:($n[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),$n[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),$n[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),$n[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),$n[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),$n[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),$n[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),$n[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints($n),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}},$n=[new I,new I,new I,new I,new I,new I,new I,new I],xn=new I,$r=new Un,qi=new I,Yi=new I,Zi=new I,li=new I,ci=new I,bi=new I,Bs=new I,Kr=new I,Qr=new I,Ei=new I;function Sl(i,e,t,n,s){for(let r=0,a=i.length-3;r<=a;r+=3){Ei.fromArray(i,r);let o=s.x*Math.abs(Ei.x)+s.y*Math.abs(Ei.y)+s.z*Math.abs(Ei.z),l=e.dot(Ei),c=t.dot(Ei),h=n.dot(Ei);if(Math.max(-Math.max(l,c,h),Math.min(l,c,h))>o)return!1}return!0}var Ct=new I,jr=new ue,hf=0,Bt=class extends Nn{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:hf++}),this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=n,this.usage=hc,this.updateRanges=[],this.gpuType=Tn,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,r=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;zs.subVectors(e,this.center);let t=zs.lengthSq();if(t>this.radius*this.radius){let n=Math.sqrt(t),s=(n-this.radius)*.5;this.center.addScaledVector(zs,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):(bl.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(zs.copy(e.center).add(bl)),this.expandByPoint(zs.copy(e.center).sub(bl))),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}},df=0,un=new gt,El=new Ft,Ji=new I,sn=new Un,ks=new Un,Nt=new I,At=class i extends Nn{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:df++}),this.uuid=Ln(),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(e){return Array.isArray(e)?this.index=new(Ud(e)?nr:tr)(e,1):this.index=e,this}setIndirect(e,t=0){return this.indirect=e,this.indirectOffset=t,this}getIndirect(){return this.indirect}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,n=0){this.groups.push({start:e,count:t,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){let t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);let n=this.attributes.normal;if(n!==void 0){let r=new Je().getNormalMatrix(e);n.applyNormalMatrix(r),n.needsUpdate=!0}let s=this.attributes.tangent;return s!==void 0&&(s.transformDirection(e),s.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this._transformed=!0,this}applyQuaternion(e){return un.makeRotationFromQuaternion(e),this.applyMatrix4(un),this}rotateX(e){return un.makeRotationX(e),this.applyMatrix4(un),this}rotateY(e){return un.makeRotationY(e),this.applyMatrix4(un),this}rotateZ(e){return un.makeRotationZ(e),this.applyMatrix4(un),this}translate(e,t,n){return un.makeTranslation(e,t,n),this.applyMatrix4(un),this}scale(e,t,n){return un.makeScale(e,t,n),this.applyMatrix4(un),this}lookAt(e){return El.lookAt(e),El.updateMatrix(),this.applyMatrix4(El.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Ji).negate(),this.translate(Ji.x,Ji.y,Ji.z),this}setFromPoints(e){let t=this.getAttribute("position");if(t===void 0){let n=[];for(let s=0,r=e.length;st.count&&Ge("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),t.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Un);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){We("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new I(-1/0,-1/0,-1/0),new I(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let n=0,s=t.length;n0&&(e.userData=this.userData),this.parameters!==void 0&&this._transformed!==!0){let l=this.parameters;for(let c in l)l[c]!==void 0&&(e[c]=l[c]);return e}e.data={attributes:{}};let t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let n=this.attributes;for(let l in n){let c=n[l];e.data.attributes[l]=c.toJSON(e.data)}let s={},r=!1;for(let l in this.morphAttributes){let c=this.morphAttributes[l],h=[];for(let u=0,d=c.length;u0&&(s[l]=h,r=!0)}r&&(e.data.morphAttributes=s,e.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));let o=this.boundingSphere;return o!==null&&(e.data.boundingSphere=o.toJSON()),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let n=e.index;n!==null&&this.setIndex(n.clone());let s=e.attributes;for(let c in s){let h=s[c];this.setAttribute(c,h.clone(t))}let r=e.morphAttributes;for(let c in r){let h=[],u=r[c];for(let d=0,f=u.length;d1)?null:t.copy(e.start).addScaledVector(s,a)}intersectsLine(e){let 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){let n=t||pf.getNormalMatrix(e),s=this.coplanarPoint(Tl).applyMatrix4(e),r=this.normal.applyMatrix3(n).normalize();return this.constant=-s.dot(r),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)}toJSON(){return{normal:this.normal.toArray(),constant:this.constant}}fromJSON(e){return this.normal.fromArray(e.normal),this.constant=e.constant,this}},mf=0,Fn=class extends Nn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:mf++}),this.uuid=Ln(),this.name="",this.type="Material",this.blending=ws,this.side=ln,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=wr,this.blendDst=As,this.blendEquation=Li,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new Xe(0,0,0),this.blendAlpha=0,this.depthFunc=rs,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=ru,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=ya,this.stencilZFail=ya,this.stencilZPass=ya,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(let t in e){let n=e[t];if(n===void 0){Ge(`Material: parameter '${t}' has value of undefined.`);continue}let s=this[t];if(s===void 0){Ge(`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){let t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});let n={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,n.blending=this.blending,n.side=this.side,n.shadowSide=this.shadowSide,n.vertexColors=this.vertexColors,n.opacity=this.opacity,n.transparent=this.transparent,n.blendSrc=this.blendSrc,n.blendDst=this.blendDst,n.blendEquation=this.blendEquation,n.blendSrcAlpha=this.blendSrcAlpha,n.blendDstAlpha=this.blendDstAlpha,n.blendEquationAlpha=this.blendEquationAlpha,n.blendColor=this.blendColor.getHex(),n.blendAlpha=this.blendAlpha,n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.clipIntersection=this.clipIntersection,n.clipShadows=this.clipShadows,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,n.stencilWrite=this.stencilWrite,n.polygonOffset=this.polygonOffset,n.polygonOffsetFactor=this.polygonOffsetFactor,n.polygonOffsetUnits=this.polygonOffsetUnits,n.dithering=this.dithering,n.alphaTest=this.alphaTest,n.alphaHash=this.alphaHash,n.alphaToCoverage=this.alphaToCoverage,n.premultipliedAlpha=this.premultipliedAlpha,n.forceSinglePass=this.forceSinglePass,n.allowOverride=this.allowOverride,n.visible=this.visible,n.toneMapped=this.toneMapped,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&&(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.retroreflectivity!==void 0&&(n.retroreflectivity=this.retroreflectivity),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&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),Array.isArray(this.clippingPlanes)&&this.clippingPlanes.length>0&&(n.clippingPlanes=this.clippingPlanes.map(r=>r.toJSON())),this.rotation!==void 0&&(n.rotation=this.rotation),this.depthPacking!==void 0&&(n.depthPacking=this.depthPacking),this.linewidth!==void 0&&(n.linewidth=this.linewidth),this.linecap!==void 0&&(n.linecap=this.linecap),this.linejoin!==void 0&&(n.linejoin=this.linejoin),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.wireframe!==void 0&&(n.wireframe=this.wireframe),this.wireframeLinewidth!==void 0&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!==void 0&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!==void 0&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading!==void 0&&(n.flatShading=this.flatShading),this.fog!==void 0&&(n.fog=this.fog),Object.keys(this.userData).length>0&&(n.userData=this.userData);function s(r){let a=[];for(let o in r){let l=r[o];delete l.metadata,a.push(l)}return a}if(t){let r=s(e.textures),a=s(e.images);r.length>0&&(n.textures=r),a.length>0&&(n.images=a)}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.retroreflectivity!==void 0&&(this.retroreflectivity=e.retroreflectivity),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.clippingPlanes!==void 0&&(this.clippingPlanes=e.clippingPlanes.map(n=>new vn().fromJSON(n))),e.clipIntersection!==void 0&&(this.clipIntersection=e.clipIntersection),e.clipShadows!==void 0&&(this.clipShadows=e.clipShadows),e.depthPacking!==void 0&&(this.depthPacking=e.depthPacking),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.linecap!==void 0&&(this.linecap=e.linecap),e.linejoin!==void 0&&(this.linejoin=e.linejoin),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 ue().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 ue().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;let t=e.clippingPlanes,n=null;if(t!==null){let s=t.length;n=new Array(s);for(let r=0;r!==s;++r)n[r]=t[r].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++}},ps=class extends Fn{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}},$i,Vs=new I,Ki=new I,Qi=new I,ji=new ue,Hs=new ue,_u=new gt,ea=new I,Gs=new I,ta=new I,mh=new ue,wl=new ue,gh=new ue,sr=class extends Ft{constructor(e=new ps){if(super(),this.isSprite=!0,this.type="Sprite",$i===void 0){$i=new At;let 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 ir(t,5);$i.setIndex([0,1,2,0,2,3]),$i.setAttribute("position",new fs(n,3,0,!1)),$i.setAttribute("uv",new fs(n,2,3,!1))}this.geometry=$i,this.material=e,this.center=new ue(.5,.5),this.count=1}intersectsFrustum(e){return e.intersectsSprite(this)}raycast(e,t){e.camera===null&&We('Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),Ki.setFromMatrixScale(this.matrixWorld),_u.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),Qi.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&Ki.multiplyScalar(-Qi.z);let n=this.material.rotation,s,r;n!==0&&(r=Math.cos(n),s=Math.sin(n));let a=this.center;na(ea.set(-.5,-.5,0),Qi,a,Ki,s,r),na(Gs.set(.5,-.5,0),Qi,a,Ki,s,r),na(ta.set(.5,.5,0),Qi,a,Ki,s,r),mh.set(0,0),wl.set(1,0),gh.set(1,1);let o=e.ray.intersectTriangle(ea,Gs,ta,!1,Vs);if(o===null&&(na(Gs.set(-.5,.5,0),Qi,a,Ki,s,r),wl.set(0,1),o=e.ray.intersectTriangle(ea,ta,Gs,!1,Vs),o===null))return;let l=e.ray.origin.distanceTo(Vs);le.far||t.push({distance:l,point:Vs.clone(),uv:Qn.getInterpolation(Vs,ea,Gs,ta,mh,wl,gh,new ue),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 na(i,e,t,n,s,r){ji.subVectors(i,t).addScalar(.5).multiply(n),s!==void 0?(Hs.x=r*ji.x-s*ji.y,Hs.y=s*ji.x+r*ji.y):Hs.copy(ji),i.copy(e),i.x+=Hs.x,i.y+=Hs.y,i.applyMatrix4(_u)}var Kn=new I,Al=new I,ia=new I,sa=new I,rr=class{constructor(e=new I,t=new I(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Kn)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=Kn.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Kn.copy(this.origin).addScaledVector(this.direction,t),Kn.distanceToSquared(e))}distanceSqToSegment(e,t,n,s){Al.copy(e).add(t).multiplyScalar(.5),ia.copy(t).sub(e).normalize(),sa.copy(this.origin).sub(Al);let r=e.distanceTo(t)*.5,a=-this.direction.dot(ia),o=sa.dot(this.direction),l=-sa.dot(ia),c=sa.lengthSq(),h=Math.abs(1-a*a),u,d,f,m;if(h>0)if(u=a*l-o,d=a*o-l,m=r*h,u>=0)if(d>=-m)if(d<=m){let v=1/h;u*=v,d*=v,f=u*(u+a*d+2*o)+d*(a*u+d+2*l)+c}else d=r,u=Math.max(0,-(a*d+o)),f=-u*u+d*(d+2*l)+c;else d=-r,u=Math.max(0,-(a*d+o)),f=-u*u+d*(d+2*l)+c;else d<=-m?(u=Math.max(0,-(-a*r+o)),d=u>0?-r:Math.min(Math.max(-r,-l),r),f=-u*u+d*(d+2*l)+c):d<=m?(u=0,d=Math.min(Math.max(-r,-l),r),f=d*(d+2*l)+c):(u=Math.max(0,-(a*r+o)),d=u>0?r:Math.min(Math.max(-r,-l),r),f=-u*u+d*(d+2*l)+c);else d=a>0?-r:r,u=Math.max(0,-(a*d+o)),f=-u*u+d*(d+2*l)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,u),s&&s.copy(Al).addScaledVector(ia,d),f}intersectSphere(e,t){if(e.radius<0)return null;Kn.subVectors(e.center,this.origin);let n=Kn.dot(this.direction),s=Kn.dot(Kn)-n*n,r=e.radius*e.radius;if(s>r)return null;let a=Math.sqrt(r-s),o=n-a,l=n+a;return l<0?null:o<0?this.at(l,t):this.at(o,t)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){let n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,s,r,a,o,l,c=1/this.direction.x,h=1/this.direction.y,u=1/this.direction.z,d=this.origin;return c>=0?(n=(e.min.x-d.x)*c,s=(e.max.x-d.x)*c):(n=(e.max.x-d.x)*c,s=(e.min.x-d.x)*c),h>=0?(r=(e.min.y-d.y)*h,a=(e.max.y-d.y)*h):(r=(e.max.y-d.y)*h,a=(e.min.y-d.y)*h),n>a||r>s||((r>n||isNaN(n))&&(n=r),(a=0?(o=(e.min.z-d.z)*u,l=(e.max.z-d.z)*u):(o=(e.max.z-d.z)*u,l=(e.min.z-d.z)*u),n>l||o>s)||((o>n||n!==n)&&(n=o),(l=0?n:s,t)}intersectsBox(e){return this.intersectBox(e,Kn)!==null}intersectTriangle(e,t,n,s,r){let a=this.origin,o=this.direction,l=o.x,c=o.y,h=o.z,u=e.x-a.x,d=e.y-a.y,f=e.z-a.z,m=t.x-a.x,v=t.y-a.y,g=t.z-a.z,p=n.x-a.x,T=n.y-a.y,w=n.z-a.z,M=Math.abs(l),b=Math.abs(c),S=Math.abs(h),R,x,E,C,P,B,V,N,k,$,q,Y;if(M>=b&&M>=S?(E=l,B=u,k=m,Y=p,l>=0?(R=c,x=h,C=d,P=f,V=v,N=g,$=T,q=w):(R=h,x=c,C=f,P=d,V=g,N=v,$=w,q=T)):b>=S?(E=c,B=d,k=v,Y=T,c>=0?(R=h,x=l,C=f,P=u,V=g,N=m,$=w,q=p):(R=l,x=h,C=u,P=f,V=m,N=g,$=p,q=w)):(E=h,B=f,k=g,Y=w,h>=0?(R=l,x=c,C=u,P=d,V=m,N=v,$=p,q=T):(R=c,x=l,C=d,P=u,V=v,N=m,$=T,q=p)),E===0)return null;let F=R/E,z=x/E,Z=1/E,fe=C-F*B,he=P-z*B,qe=V-F*k,Ve=N-z*k,Ye=$-F*Y,K=q-z*Y,ne=Ye*Ve-K*qe,pe=fe*K-he*Ye,De=qe*he-Ve*fe;if(s){if(ne<0||pe<0||De<0)return null}else if((ne<0||pe<0||De<0)&&(ne>0||pe>0||De>0))return null;let me=ne+pe+De;if(me===0)return null;let Fe=Z*(ne*B+pe*k+De*Y);return(me>0?Fe<0:Fe>0)?null:this.at(Fe/me,r)}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)}},pt=class extends Fn{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 Sn,this.combine=Jl,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}},_h=new gt,Ti=new rr,ra=new Pi,xh=new I,aa=new I,oa=new I,la=new I,Rl=new I,ca=new I,vh=new I,ha=new I,$e=class extends Ft{constructor(e=new At,t=new pt){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(){let t=this.geometry.morphAttributes,n=Object.keys(t);if(n.length>0){let s=t[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=s.length;r(e.far-e.near)**2))&&(_h.copy(r).invert(),Ti.copy(e.ray).applyMatrix4(_h),!(n.boundingBox!==null&&Ti.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(e,t,Ti)))}_computeIntersections(e,t,n){let s,r=this.geometry,a=this.material,o=r.index,l=r.attributes.position,c=r.attributes.uv,h=r.attributes.uv1,u=r.attributes.normal,d=r.groups,f=r.drawRange;if(o!==null)if(Array.isArray(a))for(let m=0,v=d.length;mt.far?null:{distance:c,point:ha.clone(),object:i}}function ua(i,e,t,n,s,r,a,o,l,c){i.getVertexPosition(o,aa),i.getVertexPosition(l,oa),i.getVertexPosition(c,la);let h=gf(i,e,t,n,aa,oa,la,vh);if(h){let u=new I;Qn.getBarycoord(vh,aa,oa,la,u),s&&(h.uv=Qn.getInterpolatedAttribute(s,o,l,c,u,new ue)),r&&(h.uv1=Qn.getInterpolatedAttribute(r,o,l,c,u,new ue)),a&&(h.normal=Qn.getInterpolatedAttribute(a,o,l,c,u,new I),h.normal.dot(n.direction)>0&&h.normal.multiplyScalar(-1));let d={a:o,b:l,c,normal:new I,materialIndex:0};Qn.getNormal(aa,oa,la,d.normal),h.face=d,h.barycoord=u}return h}var ms=class extends Yt{constructor(e=null,t=1,n=1,s,r,a,o,l,c=Ut,h=Ut,u,d){super(null,a,o,l,c,h,s,r,u,d),this.isDataTexture=!0,this.image={data:e,width:t,height:n},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var wi=new Pi,_f=new ue(.5,.5),da=new I,gs=class{constructor(e=new vn,t=new vn,n=new vn,s=new vn,r=new vn,a=new vn){this.planes=[e,t,n,s,r,a]}set(e,t,n,s,r,a){let o=this.planes;return o[0].copy(e),o[1].copy(t),o[2].copy(n),o[3].copy(s),o[4].copy(r),o[5].copy(a),this}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=Mn,n=!1){let s=this.planes,r=e.elements,a=r[0],o=r[1],l=r[2],c=r[3],h=r[4],u=r[5],d=r[6],f=r[7],m=r[8],v=r[9],g=r[10],p=r[11],T=r[12],w=r[13],M=r[14],b=r[15];if(s[0].setComponents(c-a,f-h,p-m,b-T).normalize(),s[1].setComponents(c+a,f+h,p+m,b+T).normalize(),s[2].setComponents(c+o,f+u,p+v,b+w).normalize(),s[3].setComponents(c-o,f-u,p-v,b-w).normalize(),n)s[4].setComponents(l,d,g,M).normalize(),s[5].setComponents(c-l,f-d,p-g,b-M).normalize();else if(s[4].setComponents(c-l,f-d,p-g,b-M).normalize(),t===Mn)s[5].setComponents(c+l,f+d,p+g,b+M).normalize();else if(t===os)s[5].setComponents(l,d,g,M).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(),wi.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{let t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),wi.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(wi)}intersectsSprite(e){wi.center.set(0,0,0);let t=_f.distanceTo(e.center);return wi.radius=.7071067811865476+t,wi.applyMatrix4(e.matrixWorld),this.intersectsSphere(wi)}intersectsSphere(e){let t=this.planes,n=e.center,s=-e.radius;for(let r=0;r<6;r++)if(t[r].distanceToPoint(n)0?e.max.x:e.min.x,da.y=s.normal.y>0?e.max.y:e.min.y,da.z=s.normal.z>0?e.max.z:e.min.z,s.distanceToPoint(da)<0)return!1}return!0}containsPoint(e){let 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)}};var _s=class extends Fn{constructor(e){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new Xe(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!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.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}},yh=new gt,Bl=new rr,fa=new Pi,pa=new I,ar=class extends Ft{constructor(e=new At,t=new _s){super(),this.isPoints=!0,this.type="Points",this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}intersectsFrustum(e){return e.intersectsObject(this)}raycast(e,t){let n=this.geometry,s=this.matrixWorld,r=e.params.Points.threshold,a=n.drawRange;if(n.boundingSphere===null&&n.computeBoundingSphere(),fa.copy(n.boundingSphere),fa.applyMatrix4(s),fa.radius+=r,e.ray.intersectsSphere(fa)===!1)return;yh.copy(s).invert(),Bl.copy(e.ray).applyMatrix4(yh);let o=r/((this.scale.x+this.scale.y+this.scale.z)/3),l=o*o,c=n.index,u=n.attributes.position;if(c!==null){let d=Math.max(0,a.start),f=Math.min(c.count,a.start+a.count);for(let m=d,v=f;m0){let s=t[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=s.length;rs.far)return;r.push({distance:c,distanceToRay:Math.sqrt(o),point:l,index:e,face:null,faceIndex:null,barycoord:null,object:a})}}var or=class extends Yt{constructor(e=[],t=xi,n,s,r,a,o,l,c,h){super(e,t,n,s,r,a,o,l,c,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},ei=class extends Yt{constructor(e,t,n,s,r,a,o,l,c){super(e,t,n,s,r,a,o,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}};var ui=class extends Yt{constructor(e,t,n=En,s,r,a,o=Ut,l=Ut,c,h=Dn,u=1){if(h!==Dn&&h!==vi)throw new Error("THREE.DepthTexture: format must be either THREE.DepthFormat or THREE.DepthStencilFormat");let d={width:e,height:t,depth:u};super(d,s,r,a,o,l,h,n,c),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new us(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){let t=super.toJSON(e);return t.compareFunction=this.compareFunction,t}},Na=class extends ui{constructor(e,t=En,n=xi,s,r,a=Ut,o=Ut,l,c=Dn){let h={width:e,height:e,depth:1},u=[h,h,h,h,h,h];super(e,e,t,n,s,r,a,o,l,c),this.image=u,this.isCubeDepthTexture=!0,this.isCubeTexture=!0}get images(){return this.image}set images(e){this.image=e}},lr=class extends Yt{constructor(e=null){super(),this.sourceTexture=e,this.isExternalTexture=!0}copy(e){return super.copy(e),this.sourceTexture=e.sourceTexture,this}},On=class i extends At{constructor(e=1,t=1,n=1,s=1,r=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:s,heightSegments:r,depthSegments:a};let o=this;s=Math.floor(s),r=Math.floor(r),a=Math.floor(a);let l=[],c=[],h=[],u=[],d=0,f=0;m("z","y","x",-1,-1,n,t,e,a,r,0),m("z","y","x",1,-1,n,t,-e,a,r,1),m("x","z","y",1,1,e,n,t,s,a,2),m("x","z","y",1,-1,e,n,-t,s,a,3),m("x","y","z",1,-1,e,t,n,s,r,4),m("x","y","z",-1,-1,e,t,-n,s,r,5),this.setIndex(l),this.setAttribute("position",new yt(c,3)),this.setAttribute("normal",new yt(h,3)),this.setAttribute("uv",new yt(u,2));function m(v,g,p,T,w,M,b,S,R,x,E){let C=M/R,P=b/x,B=M/2,V=b/2,N=S/2,k=R+1,$=x+1,q=0,Y=0,F=new I;for(let z=0;z<$;z++){let Z=z*P-V;for(let fe=0;fe0?1:-1,h.push(F.x,F.y,F.z),u.push(fe/R),u.push(1-z/x),q+=1}}for(let z=0;z0)l=s-1;else{l=s;break}if(s=l,n[s]===a)return s/(r-1);let h=n[s],d=n[s+1]-h,f=(a-h)/d;return(s+f)/(r-1)}getTangent(e,t){let s=e-1e-4,r=e+1e-4;s<0&&(s=0),r>1&&(r=1);let a=this.getPoint(s),o=this.getPoint(r),l=t||(a.isVector2?new ue:new I);return l.copy(o).sub(a).normalize(),l}getTangentAt(e,t){let n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t=!1){let n=new I,s=[],r=[],a=[],o=new I,l=new gt;for(let f=0;f<=e;f++){let m=f/e;s[f]=this.getTangentAt(m,new I)}r[0]=new I,a[0]=new I;let c=Number.MAX_VALUE,h=Math.abs(s[0].x),u=Math.abs(s[0].y),d=Math.abs(s[0].z);h<=c&&(c=h,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),d<=c&&n.set(0,0,1),o.crossVectors(s[0],n).normalize(),r[0].crossVectors(s[0],o),a[0].crossVectors(s[0],r[0]);for(let f=1;f<=e;f++){if(r[f]=r[f-1].clone(),a[f]=a[f-1].clone(),o.crossVectors(s[f-1],s[f]),o.length()>Number.EPSILON){o.normalize();let m=Math.acos(tt(s[f-1].dot(s[f]),-1,1));r[f].applyMatrix4(l.makeRotationAxis(o,m))}a[f].crossVectors(s[f],r[f])}if(t===!0){let f=Math.acos(tt(r[0].dot(r[e]),-1,1));f/=e,s[0].dot(o.crossVectors(r[0],r[e]))>0&&(f=-f);for(let m=1;m<=e;m++)r[m].applyMatrix4(l.makeRotationAxis(s[m],f*m)),a[m].crossVectors(s[m],r[m])}return{tangents:s,normals:r,binormals:a}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let 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}},xs=class extends rn{constructor(e=0,t=0,n=1,s=1,r=0,a=Math.PI*2,o=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=s,this.aStartAngle=r,this.aEndAngle=a,this.aClockwise=o,this.aRotation=l}getPoint(e,t=new ue){let n=t,s=Math.PI*2,r=this.aEndAngle-this.aStartAngle,a=Math.abs(r)s;)r-=s;r0?0:(Math.floor(Math.abs(o)/r)+1)*r:l===0&&o===r-1&&(o=r-2,l=1);let c,h;this.closed||o>0?c=s[(o-1)%r]:(bh.subVectors(s[0],s[1]).add(s[0]),c=bh);let u=s[o%r],d=s[(o+1)%r];if(this.closed||o+2s.length-2?s.length-1:a+1],u=s[a>s.length-3?s.length-1:a+2];return n.set(Eh(o,l.x,c.x,h.x,u.x),Eh(o,l.y,c.y,h.y,u.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){let a=s[r]-n,o=this.curves[r],l=o.getLength(),c=l===0?0:1-a/l;return o.getPointAt(c,t)}r++}return null}getLength(){let 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;let e=[],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){let u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);let h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}},vs=class extends di{constructor(e){super(e),this.uuid=Ln(),this.type="Shape",this.holes=[]}getPointsHoles(e){let t=[];for(let n=0,s=this.holes.length;n80*t){o=i[0],l=i[1];let h=o,u=l;for(let d=t;dh&&(h=f),m>u&&(u=m)}c=Math.max(h-o,u-l),c=c!==0?32767/c:0}return mr(r,a,t,o,l,c,0),a}function xu(i,e,t,n,s){let r;if(s===Vf(i,e,t,n)>0)for(let a=e;a=e;a-=n)r=Th(a/n|0,i[a],i[a+1],r);return r&&ys(r,r.next)&&(_r(r),r=r.next),r}function Ii(i,e){if(!i)return i;e||(e=i);let t=i,n;do if(n=!1,!t.steiner&&(ys(t,t.next)||bt(t.prev,t,t.next)===0)){if(_r(t),t=e=t.prev,t===t.next)break;n=!0}else t=t.next;while(n||t!==e);return e}function mr(i,e,t,n,s,r,a){if(!i)return;!a&&r&&Uf(i,n,s,r);let o=i;for(;i.prev!==i.next;){let l=i.prev,c=i.next;if(r?Af(i,n,s,r):wf(i)){e.push(l.i,i.i,c.i),_r(i),i=c.next,o=c.next;continue}if(i=c,i===o){a?a===1?(i=Rf(Ii(i),e),mr(i,e,t,n,s,r,2)):a===2&&Cf(i,e,t,n,s,r):mr(Ii(i),e,t,n,s,r,1);break}}}function wf(i){let e=i.prev,t=i,n=i.next;if(bt(e,t,n)>=0)return!1;let s=e.x,r=t.x,a=n.x,o=e.y,l=t.y,c=n.y,h=Math.min(s,r,a),u=Math.min(o,l,c),d=Math.max(s,r,a),f=Math.max(o,l,c),m=n.next;for(;m!==e;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=f&&Ws(s,o,r,l,a,c,m.x,m.y)&&bt(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function Af(i,e,t,n){let s=i.prev,r=i,a=i.next;if(bt(s,r,a)>=0)return!1;let o=s.x,l=r.x,c=a.x,h=s.y,u=r.y,d=a.y,f=Math.min(o,l,c),m=Math.min(h,u,d),v=Math.max(o,l,c),g=Math.max(h,u,d),p=zl(f,m,e,t,n),T=zl(v,g,e,t,n),w=i.prevZ,M=i.nextZ;for(;w&&w.z>=p&&M&&M.z<=T;){if(w.x>=f&&w.x<=v&&w.y>=m&&w.y<=g&&w!==s&&w!==a&&Ws(o,h,l,u,c,d,w.x,w.y)&&bt(w.prev,w,w.next)>=0||(w=w.prevZ,M.x>=f&&M.x<=v&&M.y>=m&&M.y<=g&&M!==s&&M!==a&&Ws(o,h,l,u,c,d,M.x,M.y)&&bt(M.prev,M,M.next)>=0))return!1;M=M.nextZ}for(;w&&w.z>=p;){if(w.x>=f&&w.x<=v&&w.y>=m&&w.y<=g&&w!==s&&w!==a&&Ws(o,h,l,u,c,d,w.x,w.y)&&bt(w.prev,w,w.next)>=0)return!1;w=w.prevZ}for(;M&&M.z<=T;){if(M.x>=f&&M.x<=v&&M.y>=m&&M.y<=g&&M!==s&&M!==a&&Ws(o,h,l,u,c,d,M.x,M.y)&&bt(M.prev,M,M.next)>=0)return!1;M=M.nextZ}return!0}function Rf(i,e){let t=i;do{let n=t.prev,s=t.next.next;!ys(n,s)&&yu(n,t,t.next,s)&&gr(n,s)&&gr(s,n)&&(e.push(n.i,t.i,s.i),_r(t),_r(t.next),t=i=s),t=t.next}while(t!==i);return Ii(t)}function Cf(i,e,t,n,s,r){let a=i;do{let o=a.next.next;for(;o!==a.prev;){if(a.i!==o.i&&Bf(a,o)){let l=Mu(a,o);a=Ii(a,a.next),l=Ii(l,l.next),mr(a,e,t,n,s,r,0),mr(l,e,t,n,s,r,0);return}o=o.next}a=a.next}while(a!==i)}function Pf(i,e,t,n){let s=[];for(let r=0,a=e.length;r=t.next.y&&t.next.y!==t.y){let u=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(u<=n&&u>r&&(r=u,a=t.x=t.x&&t.x>=l&&n!==t.x&&vu(sa.x||t.x===a.x&&Nf(a,t)))&&(a=t,h=u)}t=t.next}while(t!==o);return a}function Nf(i,e){return bt(i.prev,i,e.prev)<0&&bt(e.next,i,i.next)<0}function Uf(i,e,t,n){let s=i;do s.z===0&&(s.z=zl(s.x,s.y,e,t,n)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==i);s.prevZ.nextZ=null,s.prevZ=null,Ff(s)}function Ff(i){let e,t=1;do{let n=i,s;i=null;let r=null;for(e=0;n;){e++;let a=n,o=0;for(let c=0;c0||l>0&&a;)o!==0&&(l===0||!a||n.z<=a.z)?(s=n,n=n.nextZ,o--):(s=a,a=a.nextZ,l--),r?r.nextZ=s:i=s,s.prevZ=r,r=s;n=a}r.nextZ=null,t*=2}while(e>1);return i}function zl(i,e,t,n,s){return i=(i-t)*s|0,e=(e-n)*s|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,i|e<<1}function Of(i){let e=i,t=i;do(e.x=(i-a)*(r-o)&&(i-a)*(n-o)>=(t-a)*(e-o)&&(t-a)*(r-o)>=(s-a)*(n-o)}function Ws(i,e,t,n,s,r,a,o){return!(i===a&&e===o)&&vu(i,e,t,n,s,r,a,o)}function Bf(i,e){return i.next.i!==e.i&&i.prev.i!==e.i&&!zf(i,e)&&(gr(i,e)&&gr(e,i)&&kf(i,e)&&(bt(i.prev,i,e.prev)||bt(i,e.prev,e))||ys(i,e)&&bt(i.prev,i,i.next)>0&&bt(e.prev,e,e.next)>0)}function bt(i,e,t){return(e.y-i.y)*(t.x-e.x)-(e.x-i.x)*(t.y-e.y)}function ys(i,e){return i.x===e.x&&i.y===e.y}function yu(i,e,t,n){let s=ga(bt(i,e,t)),r=ga(bt(i,e,n)),a=ga(bt(t,n,i)),o=ga(bt(t,n,e));return!!(s!==r&&a!==o||s===0&&ma(i,t,e)||r===0&&ma(i,n,e)||a===0&&ma(t,i,n)||o===0&&ma(t,e,n))}function ma(i,e,t){return e.x<=Math.max(i.x,t.x)&&e.x>=Math.min(i.x,t.x)&&e.y<=Math.max(i.y,t.y)&&e.y>=Math.min(i.y,t.y)}function ga(i){return i>0?1:i<0?-1:0}function zf(i,e){let t=i;do{if(t.i!==i.i&&t.next.i!==i.i&&t.i!==e.i&&t.next.i!==e.i&&yu(t,t.next,i,e))return!0;t=t.next}while(t!==i);return!1}function gr(i,e){return bt(i.prev,i,i.next)<0?bt(i,e,i.next)>=0&&bt(i,i.prev,e)>=0:bt(i,e,i.prev)<0||bt(i,i.next,e)<0}function kf(i,e){let t=i,n=!1,s=(i.x+e.x)/2,r=(i.y+e.y)/2;do t.y>r!=t.next.y>r&&t.next.y!==t.y&&s<(t.next.x-t.x)*(r-t.y)/(t.next.y-t.y)+t.x&&(n=!n),t=t.next;while(t!==i);return n}function Mu(i,e){let t=kl(i.i,i.x,i.y),n=kl(e.i,e.x,e.y),s=i.next,r=e.prev;return i.next=e,e.prev=i,t.next=s,s.prev=t,n.next=t,t.prev=n,r.next=n,n.prev=r,n}function Th(i,e,t,n){let s=kl(i,e,t);return n?(s.next=n.next,s.prev=n,n.next.prev=s,n.next=s):(s.prev=s,s.next=s),s}function _r(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function kl(i,e,t){return{i,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function Vf(i,e,t,n){let s=0;for(let r=e,a=t-n;r2&&i[e-1].equals(i[0])&&i.pop()}function Ah(i,e){for(let t=0;tNumber.EPSILON){let A=Math.sqrt(st),_=Math.sqrt(He*He+L*L),O=re.x-se/A,X=re.y+Ae/A,Q=le.x-L/_,de=le.y+He/_,ge=((Q-O)*L-(de-X)*He)/(Ae*L-se*He);j=O+Ae*ge-H.x,ae=X+se*ge-H.y;let ee=j*j+ae*ae;if(ee<=2)return new ue(j,ae);we=Math.sqrt(ee/2)}else{let A=!1;Ae>Number.EPSILON?He>Number.EPSILON&&(A=!0):Ae<-Number.EPSILON?He<-Number.EPSILON&&(A=!0):Math.sign(se)===Math.sign(L)&&(A=!0),A?(j=-se,ae=Ae,we=Math.sqrt(st)):(j=Ae,ae=se,we=Math.sqrt(st/2))}return new ue(j/we,ae/we)}let F=[];for(let H=0,re=k.length,le=re-1,j=H+1;H=0;H--){let re=H/g,le=f*Math.cos(re*Math.PI/2),j=m*Math.sin(re*Math.PI/2)+v;for(let ae=0,we=k.length;ae=0;){let j=le,ae=le-1;ae<0&&(ae=H.length-1);for(let we=0,Ae=h+g*2;we0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let n={};for(let 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(let n in e.uniforms){let 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 ue().fromArray(s.value);break;case"v3":this.uniforms[n].value=new I().fromArray(s.value);break;case"v4":this.uniforms[n].value=new Mt().fromArray(s.value);break;case"m3":this.uniforms[n].value=new Je().fromArray(s.value);break;case"m4":this.uniforms[n].value=new gt().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(let 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}},ka=class extends an{constructor(e){super(e),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}},fi=class extends Fn{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=Xo,this.normalScale=new ue(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 Sn,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}},pi=class extends fi{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 ue(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return tt(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._retroreflectivity=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 retroreflectivity(){return this._retroreflectivity}set retroreflectivity(e){this._retroreflectivity>0!=e>0&&this.version++,this._retroreflectivity=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.retroreflectivity=e.retroreflectivity,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}};var Va=class extends Fn{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=iu,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}},Ha=class extends Fn{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}};function es(i,e){return!i||i.constructor===e?i:typeof e.BYTES_PER_ELEMENT=="number"?new e(i):Array.prototype.slice.call(i)}function Ll(i){return i!==void 0&&i.inTangents!==void 0&&i.outTangents!==void 0}var mi=class{constructor(e,t,n,s){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=s!==void 0?s:new t.constructor(n),this.sampleValues=t,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(e){let t=this.parameterPositions,n=this._cachedIndex,s=t[n],r=t[n-1];n:{e:{let a;t:{i:if(!(e=r)){let o=t[1];e=r)break e}a=n,n=0;break t}break n}for(;n>>1;et;)--a;if(++a,r!==0||a!==s){r>=a&&(a=Math.max(a,1),r=a-1);let o=this.getValueSize();this.times=n.slice(r,a),this.values=this.values.slice(r*o,a*o)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!==0&&(We("KeyframeTrack: Invalid value size in track.",this),e=!1);let n=this.times,s=this.values,r=n.length;r===0&&(We("KeyframeTrack: Track is empty.",this),e=!1);let a=null;for(let o=0;o!==r;o++){let l=n[o];if(typeof l=="number"&&isNaN(l)){We("KeyframeTrack: Time is not a valid number.",this,o,l),e=!1;break}if(a!==null&&a>l){We("KeyframeTrack: Out of order keys.",this,o,l,a),e=!1;break}a=l}if(s!==void 0&&Fd(s))for(let o=0,l=s.length;o!==l;++o){let c=s[o];if(isNaN(c)){We("KeyframeTrack: Value is not a valid number.",this,o,c),e=!1;break}}return e}optimize(){let e=this.times.slice(),t=this.values.slice(),n=this.getValueSize(),s=this.getInterpolation()===va,r=e.length-1,a=1;for(let o=1;o0){e[a]=e[r];for(let o=r*n,l=a*n,c=0;c!==n;++c)t[l+c]=t[o+c];++a}return a!==e.length?(this.times=e.slice(0,a),this.values=t.slice(0,a*n)):(this.times=e,this.values=t),this}clone(){let e=this.times.slice(),t=this.values.slice(),n=this.constructor,s=new n(this.name,e,t);return s.createInterpolant=this.createInterpolant,Ll(this.settings)&&(s.settings={inTangents:this.settings.inTangents.slice(),outTangents:this.settings.outTangents.slice()}),s}};function Ch(i,e){for(let t=0,n=i.length;t!==n;t+=2)i[t]*=e}on.prototype.ValueTypeName="";on.prototype.TimeBufferType=Float32Array;on.prototype.ValueBufferType=Float32Array;on.prototype.DefaultInterpolation=Pa;var gi=class extends on{constructor(e,t,n){super(e,t,n)}};gi.prototype.ValueTypeName="bool";gi.prototype.ValueBufferType=Array;gi.prototype.DefaultInterpolation=Js;gi.prototype.InterpolantFactoryMethodLinear=void 0;gi.prototype.InterpolantFactoryMethodSmooth=void 0;var Ya=class extends on{constructor(e,t,n,s){super(e,t,n,s)}};Ya.prototype.ValueTypeName="color";var Za=class extends on{constructor(e,t,n,s){super(e,t,n,s)}};Za.prototype.ValueTypeName="number";var Ja=class extends mi{constructor(e,t,n,s){super(e,t,n,s)}interpolate_(e,t,n,s){let r=this.resultBuffer,a=this.sampleValues,o=this.valueSize,l=(n-t)/(s-t),c=e*o;for(let h=c+o;c!==h;c+=4)qt.slerpFlat(r,0,a,c-o,a,c,l);return r}},yr=class extends on{constructor(e,t,n,s){super(e,t,n,s)}InterpolantFactoryMethodLinear(e){return new Ja(this.times,this.values,this.getValueSize(),e)}};yr.prototype.ValueTypeName="quaternion";yr.prototype.InterpolantFactoryMethodSmooth=void 0;var _i=class extends on{constructor(e,t,n){super(e,t,n)}};_i.prototype.ValueTypeName="string";_i.prototype.ValueBufferType=Array;_i.prototype.DefaultInterpolation=Js;_i.prototype.InterpolantFactoryMethodLinear=void 0;_i.prototype.InterpolantFactoryMethodSmooth=void 0;var $a=class extends on{constructor(e,t,n,s){super(e,t,n,s)}};$a.prototype.ValueTypeName="vector";var Ma={enabled:!1,files:{},add:function(i,e){this.enabled!==!1&&(Ph(i)||(this.files[i]=e))},get:function(i){if(this.enabled!==!1&&!Ph(i))return this.files[i]},remove:function(i){delete this.files[i]},clear:function(){this.files={}}};function Ph(i){try{let e=i.slice(i.indexOf(":")+1);return new URL(e).protocol==="blob:"}catch{return!1}}var Ka=class{constructor(e,t,n){let s=this,r=!1,a=0,o=0,l,c=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=n,this._abortController=null,this.itemStart=function(h){o++,r===!1&&s.onStart!==void 0&&s.onStart(h,a,o),r=!0},this.itemEnd=function(h){a++,s.onProgress!==void 0&&s.onProgress(h,a,o),a===o&&(r=!1,s.onLoad!==void 0&&s.onLoad())},this.itemError=function(h){s.onError!==void 0&&s.onError(h)},this.resolveURL=function(h){return h=h.normalize("NFC"),l?l(h):h},this.setURLModifier=function(h){return l=h,this},this.addHandler=function(h,u){return c.push(h,u),this},this.removeHandler=function(h){let u=c.indexOf(h);return u!==-1&&c.splice(u,2),this},this.getHandler=function(h){for(let u=0,d=c.length;uf.start-m.start);let d=0;for(let f=1;f 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`,wp=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,Ap=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,Rp=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,Cp=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#endif`,Pp=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#endif`,Ip=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + varying vec4 vColor; +#endif`,Lp=`#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`,Dp=`#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`,Np=`#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`,Up=`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`,Fp=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,Op=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,Bp=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE + emissiveColor = sRGBTransferEOTF( emissiveColor ); + #endif + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,zp=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,kp="gl_FragColor = linearToOutputTexel( gl_FragColor );",Vp=`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 ); +}`,Hp=`#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`,Gp=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform mat3 envMapRotation; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif +#endif`,Wp=`#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`,Xp=`#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`,qp=`#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`,Yp=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,Zp=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,Jp=`#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`,$p=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,Kp=`#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 +}`,Qp=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,jp=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,em=`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`,tm=`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_SUN_LIGHTS > 0 + struct SunLight { + vec3 direction; + vec3 color; + }; + uniform SunLight sunLights[ NUM_SUN_LIGHTS ]; + void getSunLightInfo( const in SunLight sunLight, out IncidentLight light ) { + light.color = sunLight.color; + light.direction = sunLight.direction; + light.visible = true; + } +#endif +#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 `,nm=`#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_RETROREFLECTION + vec3 getIBLRetroRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 retroVec = normalize( mix( viewDir, normal, pow4( roughness ) ) ); + retroVec = transformDirectionByInverseViewMatrix( retroVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, envMapRotation * retroVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #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 + } + #ifdef USE_RETROREFLECTION + vec3 getIBLAnisotropyRetroRadiance( 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 getIBLRetroRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif + #endif +#endif`,im=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,sm=`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`,rm=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,am=`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`,om=`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_RETROREFLECTION + material.retroreflectivity = retroreflectivity; +#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`,lm=`uniform sampler2D dfgLUT; +struct PhysicalMaterial { + vec3 diffuseColor; + vec3 diffuseContribution; + vec3 specularColor; + vec3 specularColorBlended; + float roughness; + float metalness; + float specularF90; + float dispersion; + vec2 dfg; + vec3 multiScatteringCompensation; + #ifdef USE_RETROREFLECTION + float retroreflectivity; + #endif + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0Dielectric; + vec3 iridescenceF0Metallic; + #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 vec2 fab, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec2 fab, const in vec3 specularColor, const in float specularF90, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + #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; +} +#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 + vec3 specularBRDF = BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); + #ifdef USE_RETROREFLECTION + vec3 retroViewDir = reflect( - geometryViewDir, geometryNormal ); + vec3 retroSpecularBRDF = BRDF_GGX( directLight.direction, retroViewDir, geometryNormal, material ); + specularBRDF = mix( specularBRDF, retroSpecularBRDF, saturate( material.retroreflectivity ) ); + #endif + reflectedLight.directSpecular += irradiance * specularBRDF * material.multiScatteringCompensation; + vec3 halfDir = normalize( directLight.direction + geometryViewDir ); + float dotVH = saturate( dot( geometryViewDir, halfDir ) ); + vec3 F = F_Schlick( material.specularColor, material.specularF90, dotVH ); + #ifdef USE_RETROREFLECTION + vec3 retroHalfDir = normalize( directLight.direction + retroViewDir ); + float dotRetroVH = saturate( dot( retroViewDir, retroHalfDir ) ); + vec3 retroF = F_Schlick( material.specularColor, material.specularF90, dotRetroVH ); + F = mix( F, retroF, saturate( material.retroreflectivity ) ); + #endif + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseContribution ) * ( 1.0 - F ); +} +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 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( material.dfg, material.specularColor, material.specularF90, material.iridescence, material.iridescenceF0Dielectric, singleScattering, multiScattering ); + #else + computeMultiscattering( material.dfg, material.specularColor, material.specularF90, singleScattering, multiScattering ); + #endif + vec3 diffuse = irradiance * BRDF_Lambert( material.diffuseContribution ) * ( 1.0 - singleScattering - multiScattering ); + #ifdef USE_SHEEN + float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + sheenSpecularIndirect += irradiance * material.sheenColor * sheenAlbedo * RECIPROCAL_PI; + 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( material.dfg, material.specularColor, material.specularF90, material.iridescence, material.iridescenceF0Dielectric, singleScatteringDielectric, multiScatteringDielectric ); + computeMultiscatteringIridescence( material.dfg, material.diffuseColor, material.specularF90, material.iridescence, material.iridescenceF0Metallic, singleScatteringMetallic, multiScatteringMetallic ); + #else + computeMultiscattering( material.dfg, material.specularColor, material.specularF90, singleScatteringDielectric, multiScatteringDielectric ); + computeMultiscattering( material.dfg, material.diffuseColor, material.specularF90, 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 ); +}`,cm=` +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 ) { + vec3 iridescenceFresnelDielectric = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + vec3 iridescenceFresnelMetallic = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.diffuseColor ); + material.iridescenceFresnel = mix( iridescenceFresnelDielectric, iridescenceFresnelMetallic, material.metalness ); + material.iridescenceF0Dielectric = Schlick_to_F0( iridescenceFresnelDielectric, 1.0, dotNVi ); + material.iridescenceF0Metallic = Schlick_to_F0( iridescenceFresnelMetallic, 1.0, dotNVi ); + } +#endif +#ifdef STANDARD + float dotNVms = saturate( dot( geometryNormal, geometryViewDir ) ); + material.dfg = texture2D( dfgLUT, vec2( material.roughness, dotNVms ) ).rg; + #if ( NUM_SUN_LIGHTS > 0 || NUM_DIR_LIGHTS > 0 || NUM_POINT_LIGHTS > 0 || NUM_SPOT_LIGHTS > 0 ) + float EssMs = material.dfg.x + material.dfg.y; + material.multiScatteringCompensation = 1.0 + material.specularColorBlended * ( 1.0 / EssMs - 1.0 ); + #endif +#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_SUN_LIGHTS > 0 ) && defined( RE_Direct ) + SunLight sunLight; + #if defined( USE_SHADOWMAP ) && NUM_SUN_LIGHT_SHADOWS > 0 + SunLightShadow sunLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SUN_LIGHTS; i ++ ) { + sunLight = sunLights[ i ]; + getSunLightInfo( sunLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SUN_LIGHT_SHADOWS ) + sunLightShadow = sunLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getSunShadow( sunShadowMap[ i ], sunLightShadow, UNROLLED_LOOP_INDEX ) : 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`,hm=`#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 + vec3 iblRadiance = getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + vec3 iblRadiance = getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_RETROREFLECTION + #ifdef USE_ANISOTROPY + vec3 retroIBLRadiance = getIBLAnisotropyRetroRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + vec3 retroIBLRadiance = getIBLRetroRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + iblRadiance = mix( iblRadiance, retroIBLRadiance, saturate( material.retroreflectivity ) ); + #endif + radiance += iblRadiance; + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,um=`#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`,dm=`#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`,fm=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) + gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,pm=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,mm=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER + varying float vFragDepth; + varying float vIsPerspective; +#endif`,gm=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); +#endif`,_m=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,xm=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,vm=`#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`,ym=`#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`,Mm=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,Sm=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,bm=`#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`,Em=`#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`,Tm=`#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`,wm=`#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`,Am=`#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`,Rm=`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;`,Cm=`#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`,Pm=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,Im=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,Lm=`#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`,Dm=`#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`,Nm=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,Um=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,Fm=`#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`,Om=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,Bm=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,zm=`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 +}`,km=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,Vm=`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;`,Hm=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,Gm=`#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`,Wm=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,Xm=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,qm=`#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_SUN_LIGHT_SHADOWS > 0 + #define SUN_LIGHT_CASCADES 2 + #if defined( SHADOWMAP_TYPE_PCF ) + uniform sampler2DShadow sunShadowMap[ NUM_SUN_LIGHT_SHADOWS ]; + #else + uniform sampler2D sunShadowMap[ NUM_SUN_LIGHT_SHADOWS ]; + #endif + uniform mat4 sunShadowMatrix[ NUM_SUN_LIGHT_SHADOWS * SUN_LIGHT_CASCADES ]; + uniform vec4 sunShadowCascade[ NUM_SUN_LIGHT_SHADOWS * SUN_LIGHT_CASCADES ]; + varying vec4 vSunShadowWorldPosition; + varying vec3 vSunShadowWorldNormal; + struct SunLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SunLightShadow sunLightShadows[ NUM_SUN_LIGHT_SHADOWS ]; + #endif + #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_SUN_LIGHT_SHADOWS > 0 + float getSunShadow( + #if defined( SHADOWMAP_TYPE_PCF ) + sampler2DShadow shadowMap, + #else + sampler2D shadowMap, + #endif + SunLightShadow sunLightShadow, + int shadowIndex + ) { + vec4 shadowWorldPosition = vec4( vSunShadowWorldPosition.xyz + vSunShadowWorldNormal * sunLightShadow.shadowNormalBias, 1.0 ); + float viewDepth = vSunShadowWorldPosition.w; + int cascadeOffset = shadowIndex * SUN_LIGHT_CASCADES; + float shadow = 1.0; + for ( int i = SUN_LIGHT_CASCADES - 1; i >= 0; i -- ) { + vec4 cascade = sunShadowCascade[ cascadeOffset + i ]; + if ( viewDepth >= cascade.x && viewDepth < cascade.y ) { + float cascadeShadow = getShadow( + shadowMap, + sunLightShadow.shadowMapSize, + sunLightShadow.shadowIntensity, + sunLightShadow.shadowBias, + sunLightShadow.shadowRadius, + sunShadowMatrix[ cascadeOffset + i ] * shadowWorldPosition + ); + shadow = mix( cascadeShadow, shadow, smoothstep( cascade.z, cascade.y, viewDepth ) ); + } + } + return shadow; + } + #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`,Ym=`#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_SUN_LIGHT_SHADOWS > 0 + varying vec4 vSunShadowWorldPosition; + varying vec3 vSunShadowWorldNormal; + #endif + #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`,Zm=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SUN_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_SUN_LIGHT_SHADOWS > 0 + vSunShadowWorldPosition = vec4( worldPosition.xyz, - mvPosition.z ); + vSunShadowWorldNormal = shadowWorldNormal; + #endif + #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`,Jm=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_SUN_LIGHT_SHADOWS > 0 + SunLightShadow sunLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SUN_LIGHT_SHADOWS; i ++ ) { + sunLight = sunLightShadows[ i ]; + shadow *= receiveShadow ? getSunShadow( sunShadowMap[ i ], sunLight, UNROLLED_LOOP_INDEX ) : 1.0; + } + #pragma unroll_loop_end + #endif + #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; +}`,$m=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,Km=`#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`,Qm=`#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`,jm=`#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`,eg=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,tg=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,ng=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,ig=`#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; }`,sg=`#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`,rg=`#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`,ag=`#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`,og=`#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`,lg=`#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`,cg=`#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`,hg=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,ug=`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 +}`,dg=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,fg=`#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 +}`,pg=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,mg=`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 +}`,gg=`#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; +}`,_g=`#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 +}`,xg=`#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; +}`,vg=`#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 ); +}`,yg=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,Mg=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,Sg=`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 +}`,bg=`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 +}`,Eg=`#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 +}`,Tg=`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 +}`,wg=`#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 +}`,Ag=`#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 +}`,Rg=`#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; +}`,Cg=`#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 +}`,Pg=`#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 +}`,Ig=`#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 +}`,Lg=`#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 +}`,Dg=`#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 +}`,Ng=`#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 +}`,Ug=`#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_RETROREFLECTION + uniform float retroreflectivity; +#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 +}`,Fg=`#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 +}`,Og=`#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 +}`,Bg=`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 +}`,zg=`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 +}`,kg=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,Vg=`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 +}`,Hg=`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 +}`,Gg=`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 +}`,et={alphahash_fragment:hp,alphahash_pars_fragment:up,alphamap_fragment:dp,alphamap_pars_fragment:fp,alphatest_fragment:pp,alphatest_pars_fragment:mp,aomap_fragment:gp,aomap_pars_fragment:_p,batching_pars_vertex:xp,batching_vertex:vp,begin_vertex:yp,beginnormal_vertex:Mp,bsdfs:Sp,iridescence_fragment:bp,bumpmap_pars_fragment:Ep,clipping_planes_fragment:Tp,clipping_planes_pars_fragment:wp,clipping_planes_pars_vertex:Ap,clipping_planes_vertex:Rp,color_fragment:Cp,color_pars_fragment:Pp,color_pars_vertex:Ip,color_vertex:Lp,common:Dp,cube_uv_reflection_fragment:Np,defaultnormal_vertex:Up,displacementmap_pars_vertex:Fp,displacementmap_vertex:Op,emissivemap_fragment:Bp,emissivemap_pars_fragment:zp,colorspace_fragment:kp,colorspace_pars_fragment:Vp,envmap_fragment:Hp,envmap_common_pars_fragment:Gp,envmap_pars_fragment:Wp,envmap_pars_vertex:Xp,envmap_physical_pars_fragment:nm,envmap_vertex:qp,fog_vertex:Yp,fog_pars_vertex:Zp,fog_fragment:Jp,fog_pars_fragment:$p,gradientmap_pars_fragment:Kp,lightmap_pars_fragment:Qp,lights_lambert_fragment:jp,lights_lambert_pars_fragment:em,lights_pars_begin:tm,lights_toon_fragment:im,lights_toon_pars_fragment:sm,lights_phong_fragment:rm,lights_phong_pars_fragment:am,lights_physical_fragment:om,lights_physical_pars_fragment:lm,lights_fragment_begin:cm,lights_fragment_maps:hm,lights_fragment_end:um,lightprobes_pars_fragment:dm,logdepthbuf_fragment:fm,logdepthbuf_pars_fragment:pm,logdepthbuf_pars_vertex:mm,logdepthbuf_vertex:gm,map_fragment:_m,map_pars_fragment:xm,map_particle_fragment:vm,map_particle_pars_fragment:ym,metalnessmap_fragment:Mm,metalnessmap_pars_fragment:Sm,morphinstance_vertex:bm,morphcolor_vertex:Em,morphnormal_vertex:Tm,morphtarget_pars_vertex:wm,morphtarget_vertex:Am,normal_fragment_begin:Rm,normal_fragment_maps:Cm,normal_pars_fragment:Pm,normal_pars_vertex:Im,normal_vertex:Lm,normalmap_pars_fragment:Dm,clearcoat_normal_fragment_begin:Nm,clearcoat_normal_fragment_maps:Um,clearcoat_pars_fragment:Fm,iridescence_pars_fragment:Om,opaque_fragment:Bm,packing:zm,premultiplied_alpha_fragment:km,project_vertex:Vm,dithering_fragment:Hm,dithering_pars_fragment:Gm,roughnessmap_fragment:Wm,roughnessmap_pars_fragment:Xm,shadowmap_pars_fragment:qm,shadowmap_pars_vertex:Ym,shadowmap_vertex:Zm,shadowmask_pars_fragment:Jm,skinbase_vertex:$m,skinning_pars_vertex:Km,skinning_vertex:Qm,skinnormal_vertex:jm,specularmap_fragment:eg,specularmap_pars_fragment:tg,tonemapping_fragment:ng,tonemapping_pars_fragment:ig,transmission_fragment:sg,transmission_pars_fragment:rg,uv_pars_fragment:ag,uv_pars_vertex:og,uv_vertex:lg,worldpos_vertex:cg,background_vert:hg,background_frag:ug,backgroundCube_vert:dg,backgroundCube_frag:fg,cube_vert:pg,cube_frag:mg,depth_vert:gg,depth_frag:_g,distance_vert:xg,distance_frag:vg,equirect_vert:yg,equirect_frag:Mg,linedashed_vert:Sg,linedashed_frag:bg,meshbasic_vert:Eg,meshbasic_frag:Tg,meshlambert_vert:wg,meshlambert_frag:Ag,meshmatcap_vert:Rg,meshmatcap_frag:Cg,meshnormal_vert:Pg,meshnormal_frag:Ig,meshphong_vert:Lg,meshphong_frag:Dg,meshphysical_vert:Ng,meshphysical_frag:Ug,meshtoon_vert:Fg,meshtoon_frag:Og,points_vert:Bg,points_frag:zg,shadow_vert:kg,shadow_frag:Vg,sprite_vert:Hg,sprite_frag:Gg},be={common:{diffuse:{value:new Xe(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Je},alphaMap:{value:null},alphaMapTransform:{value:new Je},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Je}},envmap:{envMap:{value:null},envMapRotation:{value:new Je},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},dfgLUT:{value:null}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Je}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Je}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Je},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Je},normalScale:{value:new ue(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Je},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Je}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Je}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Je}},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:[]},sunLights:{value:[],properties:{direction:{},color:{}}},sunLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},sunShadowMatrix:{value:[]},sunShadowCascade:{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 I},probesMax:{value:new I},probesResolution:{value:new I}},points:{diffuse:{value:new Xe(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Je},alphaTest:{value:0},uvTransform:{value:new Je}},sprite:{diffuse:{value:new Xe(16777215)},opacity:{value:1},center:{value:new ue(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Je},alphaMap:{value:null},alphaMapTransform:{value:new Je},alphaTest:{value:0}}},Vn={basic:{uniforms:Zt([be.common,be.specularmap,be.envmap,be.aomap,be.lightmap,be.fog]),vertexShader:et.meshbasic_vert,fragmentShader:et.meshbasic_frag},lambert:{uniforms:Zt([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:et.meshlambert_vert,fragmentShader:et.meshlambert_frag},phong:{uniforms:Zt([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:et.meshphong_vert,fragmentShader:et.meshphong_frag},standard:{uniforms:Zt([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:et.meshphysical_vert,fragmentShader:et.meshphysical_frag},toon:{uniforms:Zt([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:et.meshtoon_vert,fragmentShader:et.meshtoon_frag},matcap:{uniforms:Zt([be.common,be.bumpmap,be.normalmap,be.displacementmap,be.fog,{matcap:{value:null}}]),vertexShader:et.meshmatcap_vert,fragmentShader:et.meshmatcap_frag},points:{uniforms:Zt([be.points,be.fog]),vertexShader:et.points_vert,fragmentShader:et.points_frag},dashed:{uniforms:Zt([be.common,be.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:et.linedashed_vert,fragmentShader:et.linedashed_frag},depth:{uniforms:Zt([be.common,be.displacementmap]),vertexShader:et.depth_vert,fragmentShader:et.depth_frag},normal:{uniforms:Zt([be.common,be.bumpmap,be.normalmap,be.displacementmap,{opacity:{value:1}}]),vertexShader:et.meshnormal_vert,fragmentShader:et.meshnormal_frag},sprite:{uniforms:Zt([be.sprite,be.fog]),vertexShader:et.sprite_vert,fragmentShader:et.sprite_frag},background:{uniforms:{uvTransform:{value:new Je},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:et.background_vert,fragmentShader:et.background_frag},backgroundCube:{uniforms:{envMap:{value:null},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Je}},vertexShader:et.backgroundCube_vert,fragmentShader:et.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:et.cube_vert,fragmentShader:et.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:et.equirect_vert,fragmentShader:et.equirect_frag},distance:{uniforms:Zt([be.common,be.displacementmap,{referencePosition:{value:new I},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:et.distance_vert,fragmentShader:et.distance_frag},shadow:{uniforms:Zt([be.lights,be.fog,{color:{value:new Xe(0)},opacity:{value:1}}]),vertexShader:et.shadow_vert,fragmentShader:et.shadow_frag}};Vn.physical={uniforms:Zt([Vn.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Je},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Je},clearcoatNormalScale:{value:new ue(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Je},dispersion:{value:0},retroreflectivity:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Je},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Je},sheen:{value:0},sheenColor:{value:new Xe(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Je},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Je},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Je},transmissionSamplerSize:{value:new ue},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Je},attenuationDistance:{value:0},attenuationColor:{value:new Xe(0)},specularColor:{value:new Xe(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Je},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Je},anisotropyVector:{value:new ue},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Je}}]),vertexShader:et.meshphysical_vert,fragmentShader:et.meshphysical_frag};var Zo={r:0,b:0,g:0},Wg=new gt,Yu=new Je;Yu.set(-1,0,0,0,1,0,0,0,1);function Xg(i,e,t,n,s,r){let a=new Xe(0),o=s===!0?0:1,l,c,h=null,u=0,d=null;function f(T){let w=T.isScene===!0?T.background:null;if(w&&w.isTexture){let M=T.backgroundBlurriness>0;w=e.get(w,M)}return w}function m(T){let w=!1,M=f(T);M===null?g(a,o):M&&M.isColor&&(g(M,1),w=!0);let b=i.xr.getEnvironmentBlendMode();b==="additive"?t.buffers.color.setClear(0,0,0,1,r):b==="alpha-blend"&&t.buffers.color.setClear(0,0,0,0,r),(i.autoClear||w)&&(t.buffers.depth.setTest(!0),t.buffers.depth.setMask(!0),t.buffers.color.setMask(!0),i.clear(i.autoClearColor,i.autoClearDepth,i.autoClearStencil))}function v(T,w){let M=f(w);M&&(M.isCubeTexture||M.mapping===Rr)?(c===void 0&&(c=new $e(new On(1,1,1),new an({name:"BackgroundCubeMaterial",uniforms:Ni(Vn.backgroundCube.uniforms),vertexShader:Vn.backgroundCube.vertexShader,fragmentShader:Vn.backgroundCube.fragmentShader,side:It,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),c.geometry.deleteAttribute("normal"),c.geometry.deleteAttribute("uv"),c.onBeforeRender=function(b,S,R){this.matrixWorld.copyPosition(R.matrixWorld)},Object.defineProperty(c.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),n.update(c)),c.material.uniforms.envMap.value=M,c.material.uniforms.backgroundBlurriness.value=w.backgroundBlurriness,c.material.uniforms.backgroundIntensity.value=w.backgroundIntensity,c.material.uniforms.backgroundRotation.value.setFromMatrix4(Wg.makeRotationFromEuler(w.backgroundRotation)).transpose(),M.isCubeTexture&&M.isRenderTargetTexture===!1&&c.material.uniforms.backgroundRotation.value.premultiply(Yu),c.material.toneMapped=rt.getTransfer(M.colorSpace)!==ht,(h!==M||u!==M.version||d!==i.toneMapping)&&(c.material.needsUpdate=!0,h=M,u=M.version,d=i.toneMapping),c.layers.enableAll(),T.unshift(c,c.geometry,c.material,0,0,null)):M&&M.isTexture&&(l===void 0&&(l=new $e(new Et(2,2),new an({name:"BackgroundMaterial",uniforms:Ni(Vn.background.uniforms),vertexShader:Vn.background.vertexShader,fragmentShader:Vn.background.fragmentShader,side:ln,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),n.update(l)),l.material.uniforms.t2D.value=M,l.material.uniforms.backgroundIntensity.value=w.backgroundIntensity,l.material.toneMapped=rt.getTransfer(M.colorSpace)!==ht,M.matrixAutoUpdate===!0&&M.updateMatrix(),l.material.uniforms.uvTransform.value.copy(M.matrix),(h!==M||u!==M.version||d!==i.toneMapping)&&(l.material.needsUpdate=!0,h=M,u=M.version,d=i.toneMapping),l.layers.enableAll(),T.unshift(l,l.geometry,l.material,0,0,null))}function g(T,w){T.getRGB(Zo,pc(i)),t.buffers.color.setClear(Zo.r,Zo.g,Zo.b,w,r)}function p(){c!==void 0&&(c.geometry.dispose(),c.material.dispose(),c=void 0),l!==void 0&&(l.geometry.dispose(),l.material.dispose(),l=void 0)}return{getClearColor:function(){return a},setClearColor:function(T,w=1){a.set(T),o=w,g(a,o)},getClearAlpha:function(){return o},setClearAlpha:function(T){o=T,g(a,o)},render:m,addToRenderList:v,dispose:p}}function qg(i,e){let t=i.getParameter(i.MAX_VERTEX_ATTRIBS),n={},s=d(null),r=s,a=!1;function o(P,B,V,N,k){let $=!1,q=u(P,N,V,B);r!==q&&(r=q,c(r.object)),$=f(P,N,V,k),$&&m(P,N,V,k),k!==null&&e.update(k,i.ELEMENT_ARRAY_BUFFER),($||a)&&(a=!1,M(P,B,V,N),k!==null&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,e.get(k).buffer))}function l(){return i.createVertexArray()}function c(P){return i.bindVertexArray(P)}function h(P){return i.deleteVertexArray(P)}function u(P,B,V,N){let k=N.wireframe===!0,$=n[B.id];$===void 0&&($={},n[B.id]=$);let q=P.isInstancedMesh===!0?P.id:0,Y=$[q];Y===void 0&&(Y={},$[q]=Y);let F=Y[V.id];F===void 0&&(F={},Y[V.id]=F);let z=F[k];return z===void 0&&(z=d(l()),F[k]=z),z}function d(P){let B=[],V=[],N=[];for(let k=0;k=0){let Z=k[F],fe=$[F];if(fe===void 0&&(F==="instanceMatrix"&&P.instanceMatrix&&(fe=P.instanceMatrix),F==="instanceColor"&&P.instanceColor&&(fe=P.instanceColor)),Z===void 0||Z.attribute!==fe||fe&&Z.data!==fe.data)return!0;q++}return r.attributesNum!==q||r.index!==N}function m(P,B,V,N){let k={},$=B.attributes,q=0,Y=V.getAttributes();for(let F in Y)if(Y[F].location>=0){let Z=$[F];Z===void 0&&(F==="instanceMatrix"&&P.instanceMatrix&&(Z=P.instanceMatrix),F==="instanceColor"&&P.instanceColor&&(Z=P.instanceColor));let fe={};fe.attribute=Z,Z&&Z.data&&(fe.data=Z.data),k[F]=fe,q++}r.attributes=k,r.attributesNum=q,r.index=N}function v(){let P=r.newAttributes;for(let B=0,V=P.length;B=0){let z=k[Y];if(z===void 0&&(Y==="instanceMatrix"&&P.instanceMatrix&&(z=P.instanceMatrix),Y==="instanceColor"&&P.instanceColor&&(z=P.instanceColor)),z!==void 0){let Z=z.normalized,fe=z.itemSize,he=e.get(z);if(he===void 0)continue;let qe=he.buffer,Ve=he.type,Ye=he.bytesPerElement,K=Ve===i.INT||Ve===i.UNSIGNED_INT||z.gpuType===lo;if(z.isInterleavedBufferAttribute){let ne=z.data,pe=ne.stride,De=z.offset;if(ne.isInstancedInterleavedBuffer){for(let me=0;me0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision>0)return"highp";R="mediump"}return R==="mediump"&&i.getShaderPrecisionFormat(i.VERTEX_SHADER,i.MEDIUM_FLOAT).precision>0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let c=t.precision!==void 0?t.precision:"highp",h=l(c);h!==c&&(Ge("WebGLRenderer:",c,"not supported, using",h,"instead."),c=h);let u=t.logarithmicDepthBuffer===!0,d=t.reversedDepthBuffer===!0&&e.has("EXT_clip_control");t.reversedDepthBuffer===!0&&d===!1&&Ge("WebGLRenderer: Unable to use reversed depth buffer due to missing EXT_clip_control extension. Fallback to default depth buffer.");let f=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),m=i.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),v=i.getParameter(i.MAX_TEXTURE_SIZE),g=i.getParameter(i.MAX_CUBE_MAP_TEXTURE_SIZE),p=i.getParameter(i.MAX_VERTEX_ATTRIBS),T=i.getParameter(i.MAX_VERTEX_UNIFORM_VECTORS),w=i.getParameter(i.MAX_VARYING_VECTORS),M=i.getParameter(i.MAX_FRAGMENT_UNIFORM_VECTORS),b=i.getParameter(i.MAX_SAMPLES),S=i.getParameter(i.SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:r,getMaxPrecision:l,textureFormatReadable:a,textureTypeReadable:o,precision:c,logarithmicDepthBuffer:u,reversedDepthBuffer:d,maxTextures:f,maxVertexTextures:m,maxTextureSize:v,maxCubemapSize:g,maxAttributes:p,maxVertexUniforms:T,maxVaryings:w,maxFragmentUniforms:M,maxSamples:b,samples:S}}function Jg(i){let e=this,t=null,n=0,s=!1,r=!1,a=new vn,o=new Je,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(u,d){let f=u.length!==0||d||n!==0||s;return s=d,n=u.length,f},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1},this.setGlobalState=function(u,d){t=h(u,d,0)},this.setState=function(u,d,f){let m=u.clippingPlanes,v=u.clipIntersection,g=u.clipShadows,p=i.get(u);if(!s||m===null||m.length===0||r&&!g)r?h(null):c();else{let T=r?0:n,w=T*4,M=p.clippingState||null;l.value=M,M=h(m,d,w,f);for(let b=0;b!==w;++b)M[b]=t[b];p.clippingState=M,this.numIntersection=v?this.numPlanes:0,this.numPlanes+=T}};function c(){l.value!==t&&(l.value=t,l.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function h(u,d,f,m){let v=u!==null?u.length:0,g=null;if(v!==0){if(g=l.value,m!==!0||g===null){let p=f+v*4,T=d.matrixWorldInverse;o.getNormalMatrix(T),(g===null||g.length0&&this._blur(l,0,0,t),this._applyPMREM(l),this._cleanup(l),l}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Ru(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Au(),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),u.setRenderTarget(s),p&&u.render(v,l),u.render(e,l)}u.toneMapping=f,u.autoClear=d,e.background=T}_textureToCubeUV(e,t){let n=this._renderer,s=e.mapping===xi||e.mapping===Di;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=Ru()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Au());let r=s?this._cubemapMaterial:this._equirectMaterial,a=this._lodMeshes[0];a.material=r;let o=r.uniforms;o.envMap.value=e;let l=this._cubeSize;Ps(t,0,0,3*l,2*l),n.setRenderTarget(t),n.render(a,Or)}_applyPMREM(e){let t=this._renderer,n=t.autoClear;t.autoClear=!1;let s=this._lodMeshes.length;for(let r=1;rm-Is?n-m+Is:0),p=4*(this._cubeSize-v);l.envMap.value=e.texture,l.roughness.value=f,l.mipInt.value=m-t,Ps(r,g,p,3*v,2*v),s.setRenderTarget(r),s.render(o,Or),l.envMap.value=r.texture,l.roughness.value=0,l.mipInt.value=m-n,Ps(e,g,p,3*v,2*v),s.setRenderTarget(e),s.render(o,Or)}_blur(e,t,n,s){let r=this._pingPongRenderTarget,a=Math.min(s,Math.PI)/Math.SQRT2;this._blurPass(e,r,t,n,a),this._blurPass(r,e,n,n,a)}_blurPass(e,t,n,s,r){let a=this._renderer,o=this._blurMaterial,l=this._lodMeshes[s];l.material=o;let c=o.uniforms;c.envMap.value=e.texture,c.sigma.value=r,c.mipInt.value=this._lodMax-n;let h=this._sizeLods[s],u=3*h*(s>this._lodMax-Is?s-this._lodMax+Is:0),d=4*(this._cubeSize-h);Ps(t,u,d,3*h,2*h),a.setRenderTarget(t),a.render(l,Or)}};function e0(i){let e=[],t=[],n=i,s=i-Is+1+$g;for(let r=0;r2?0:-1,M=[T,w,0,T+2/3,w,0,T+2/3,w+1,0,T,w,0,T+2/3,w+1,0,T,w+1,0];m.set(M,f*d*p);for(let b=0;bIs&&n--}return{lodMeshes:t,sizeLods:e}}function wu(i,e,t){let n=new en(i,e,t);return n.texture.mapping=Rr,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function Ps(i,e,t,n,s){i.viewport.set(e,t,n,s),i.scissor.set(e,t,n,s)}function t0(i,e,t){return new an({name:"PMREMGGXConvolution",defines:{GGX_SAMPLES:Qg,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${i}.0`},uniforms:{envMap:{value:null},roughness:{value:0},mipInt:{value:0}},vertexShader:Qo(),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:Bn,depthTest:!1,depthWrite:!1})}function n0(i,e,t){return new an({name:"SphericalGaussianBlur",defines:{SAMPLES:Kg,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${i}.0`},uniforms:{envMap:{value:null},sigma:{value:0},mipInt:{value:0}},vertexShader:Qo(),fragmentShader:` + + precision highp float; + precision highp int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform float sigma; + uniform float mipInt; + + #define ENVMAP_TYPE_CUBE_UV + #include + + #define PI 3.14159265359 + #define GOLDEN_ANGLE 2.39996322973 + + void main() { + + if ( sigma == 0.0 ) { + + gl_FragColor = vec4( bilinearCubeUV( envMap, vOutputDirection, mipInt ), 1.0 ); + return; + + } + + vec3 outputDirection = normalize( vOutputDirection ); + + vec3 up = abs( outputDirection.z ) < 0.999 ? vec3( 0.0, 0.0, 1.0 ) : vec3( 1.0, 0.0, 0.0 ); + vec3 tangent = normalize( cross( up, outputDirection ) ); + vec3 bitangent = cross( outputDirection, tangent ); + + // Truncate the kernel at three standard deviations or at the antipode. + float thetaMax = min( 3.0 * sigma, PI ); + float truncation = 1.0 - exp( - 0.5 * thetaMax * thetaMax / ( sigma * sigma ) ); + + vec3 accumColor = vec3( 0.0 ); + float accumWeight = 0.0; + + for ( int i = 0; i < SAMPLES; i ++ ) { + + // Stratified inverse-CDF sampling of the Gaussian, placed on a golden-angle spiral. + float stratum = ( float( i ) + 0.5 ) / float( SAMPLES ); + float theta = sigma * sqrt( - 2.0 * log( 1.0 - stratum * truncation ) ); + float phi = float( i ) * GOLDEN_ANGLE; + + vec3 offset = cos( phi ) * tangent + sin( phi ) * bitangent; + vec3 sampleDirection = cos( theta ) * outputDirection + sin( theta ) * offset; + + // Correct the planar sample density to solid angle. + float weight = sin( theta ) / theta; + + accumColor += weight * bilinearCubeUV( envMap, sampleDirection, mipInt ); + accumWeight += weight; + + } + + gl_FragColor = vec4( accumColor / accumWeight, 1.0 ); + + } + `,blending:Bn,depthTest:!1,depthWrite:!1})}function Au(){return new an({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Qo(),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:Bn,depthTest:!1,depthWrite:!1})}function Ru(){return new an({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Qo(),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:Bn,depthTest:!1,depthWrite:!1})}function Qo(){return` + + precision mediump float; + precision mediump int; + + attribute vec3 outputDirection; + + varying vec3 vOutputDirection; + + void main() { + + vOutputDirection = outputDirection; + gl_Position = vec4( position, 1.0 ); + + } + `}var $o=class extends en{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let n={width:e,height:e,depth:1},s=[n,n,n,n,n,n];this.texture=new or(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;let 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 On(5,5,5),r=new an({name:"CubemapFromEquirect",uniforms:Ni(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:It,blending:Bn});r.uniforms.tEquirect.value=t;let a=new $e(s,r),o=t.minFilter;return t.minFilter===zn&&(t.minFilter=zt),new eo(1,10,this).update(e,a),t.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(e,t=!0,n=!0,s=!0){let r=e.getRenderTarget();for(let a=0;a<6;a++)e.setRenderTarget(this,a),e.clear(t,n,s);e.setRenderTarget(r)}};function i0(i){let e=new WeakMap,t=new WeakMap,n=null;function s(d,f=!1){return d==null?null:f?a(d):r(d)}function r(d){if(d&&d.isTexture){let f=d.mapping;if(f===ro||f===ao)if(e.has(d)){let m=e.get(d).texture;return o(m,d.mapping)}else{let m=d.image;if(m&&m.height>0){let v=new $o(m.height);return v.fromEquirectangularTexture(i,d),e.set(d,v),d.addEventListener("dispose",c),o(v.texture,d.mapping)}else return null}}return d}function a(d){if(d&&d.isTexture){let f=d.mapping,m=f===ro||f===ao,v=f===xi||f===Di;if(m||v){let g=t.get(d),p=g!==void 0?g.texture.pmremVersion:0;if(d.isRenderTargetTexture&&d.pmremVersion!==p)return n===null&&(n=new Ds(i)),g=m?n.fromEquirectangular(d,g):n.fromCubemap(d,g),g.texture.pmremVersion=d.pmremVersion,t.set(d,g),g.texture;if(g!==void 0)return g.texture;{let T=d.image;return m&&T&&T.height>0||v&&T&&l(T)?(n===null&&(n=new Ds(i)),g=m?n.fromEquirectangular(d):n.fromCubemap(d),g.texture.pmremVersion=d.pmremVersion,t.set(d,g),d.addEventListener("dispose",h),g.texture):null}}}return d}function o(d,f){return f===ro?d.mapping=xi:f===ao&&(d.mapping=Di),d}function l(d){let f=0,m=6;for(let v=0;v=65535?nr:tr)(d,1);g.version=v;let p=r.get(u);p&&e.remove(p),r.set(u,g)}function h(u){let d=r.get(u);if(d){let f=u.index;f!==null&&d.versione.maxTextureSize&&(b=Math.ceil(M/e.maxTextureSize),M=e.maxTextureSize);let S=new Float32Array(M*b*4*u),R=new js(S,M,b,u);R.type=Tn,R.needsUpdate=!0;let x=w*4;for(let C=0;C + #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}),u=new $e(c,h),d=new Es(-1,1,1,-1,0,1),f=null,m=null,v=!1,g,p=null,T=[],w=!1;this.setSize=function(M,b){a.setSize(M,b),o!==null&&o.setSize(M,b),l!==null&&l.setSize(M,b);for(let S=0;S0&&T[0].isRenderPass===!0;let b=a.width,S=a.height;T.length>0&&o===null&&(o=new en(b,S,{type:wn,depthBuffer:!1,stencilBuffer:!1}),l=new en(b,S,{type:wn,depthBuffer:!1,stencilBuffer:!1}));for(let R=0;R0)return i;let s=e*t,r=Cu[s];if(r===void 0&&(r=new Float32Array(s),Cu[s]=r),e!==0){n.toArray(r,0);for(let a=1,o=0;a!==e;++a)o+=t,i[a].toArray(r,o)}return r}function Lt(i,e){if(i.length!==e.length)return!1;for(let t=0,n=i.length;t0&&(this.seq=s.concat(r))}setValue(e,t,n,s){let r=this.map[t];r!==void 0&&r.setValue(e,n,s)}setOptional(e,t,n){let s=t[n];s!==void 0&&this.setValue(e,n,s)}static upload(e,t,n,s){for(let r=0,a=t.length;r!==a;++r){let o=t[r],l=n[o.id];l.needsUpdate!==!1&&o.setValue(e,l.value,s)}}static seqWithValue(e,t){let n=[];for(let s=0,r=e.length;s!==r;++s){let a=e[s];a.id in t&&n.push(a)}return n}};function Uu(i,e,t){let n=i.createShader(e);return i.shaderSource(n,t),i.compileShader(n),n}var j0=37297,e_=0;function t_(i,e){let t=i.split(` +`),n=[],s=Math.max(e-6,0),r=Math.min(e+6,t.length);for(let a=s;a":" "} ${o}: ${t[a]}`)}return n.join(` +`)}var Fu=new Je;function n_(i){rt._getMatrix(Fu,rt.workingColorSpace,i);let e=`mat3( ${Fu.elements.map(t=>t.toFixed(4))} )`;switch(rt.getTransfer(i)){case Ks:return[e,"LinearTransferOETF"];case ht:return[e,"sRGBTransferOETF"];default:return Ge("WebGLProgram: Unsupported color space: ",i),[e,"LinearTransferOETF"]}}function Ou(i,e,t){let n=i.getShaderParameter(e,i.COMPILE_STATUS),r=(i.getShaderInfoLog(e)||"").trim();if(n&&r==="")return"";let a=/ERROR: 0:(\d+)/.exec(r);if(a){let o=parseInt(a[1]);return t.toUpperCase()+` + +`+r+` + +`+t_(i.getShaderSource(e),o)}else return r}function i_(i,e){let t=n_(e);return[`vec4 ${i}( vec4 value ) {`,` return ${t[1]}( vec4( value.rgb * ${t[0]}, value.a ) );`,"}"].join(` +`)}var s_={[$l]:"Linear",[Kl]:"Reinhard",[Ql]:"Cineon",[jl]:"ACESFilmic",[tc]:"AgX",[Ar]:"Neutral",[ec]:"Custom"};function r_(i,e){let t=s_[e];return t===void 0?(Ge("WebGLProgram: Unsupported toneMapping:",e),"vec3 "+i+"( vec3 color ) { return LinearToneMapping( color ); }"):"vec3 "+i+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}var Jo=new I;function a_(){rt.getLuminanceCoefficients(Jo);let i=Jo.x.toFixed(4),e=Jo.y.toFixed(4),t=Jo.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${i}, ${e}, ${t} );`," return dot( weights, rgb );","}"].join(` +`)}function o_(i){return[i.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",i.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(zr).join(` +`)}function l_(i){let e=[];for(let t in i){let n=i[t];n!==!1&&e.push("#define "+t+" "+n)}return e.join(` +`)}function c_(i,e){let t={},n=i.getProgramParameter(e,i.ACTIVE_ATTRIBUTES);for(let s=0;s/gm;function Dc(i){return i.replace(h_,d_)}var u_=new Map;function d_(i,e){let t=et[e];if(t===void 0){let n=u_.get(e);if(n!==void 0)t=et[n],Ge('WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,n);else throw new Error("THREE.WebGLProgram: Can not resolve #include <"+e+">")}return Dc(t)}var f_=/#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 ku(i){return i.replace(f_,p_)}function p_(i,e,t,n){let s="";for(let r=parseInt(e);r0&&(g+=` +`),p=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,m].filter(zr).join(` +`),p.length>0&&(p+=` +`)):(g=[Vu(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,m,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.batchingColor?"#define USE_BATCHING_COLOR":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.instancingMorph?"#define USE_INSTANCING_MORPH":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexNormals?"#define HAS_NORMAL":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",t.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(zr).join(` +`),p=[Vu(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,m,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+c:"",t.envMap?"#define "+h:"",t.envMap?"#define "+u:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.packedNormalMap?"#define USE_PACKED_NORMALMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.dispersion?"#define USE_DISPERSION":"",t.retroreflection?"#define USE_RETROREFLECTION":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas||t.batchingColor?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.numLightProbeGrids>0?"#define USE_LIGHT_PROBES_GRID":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",t.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",t.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==bn?"#define TONE_MAPPING":"",t.toneMapping!==bn?et.tonemapping_pars_fragment:"",t.toneMapping!==bn?r_("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",et.colorspace_pars_fragment,i_("linearToOutputTexel",t.outputColorSpace),a_(),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(zr).join(` +`)),a=Dc(a),a=Bu(a,t),a=zu(a,t),o=Dc(o),o=Bu(o,t),o=zu(o,t),a=ku(a),o=ku(o),t.isRawShaderMaterial!==!0&&(T=`#version 300 es +`,g=[f,"#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+g,p=["#define varying in",t.glslVersion===uc?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===uc?"":"#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(` +`)+` +`+p);let w=T+g+a,M=T+p+o,b=Uu(s,s.VERTEX_SHADER,w),S=Uu(s,s.FRAGMENT_SHADER,M);s.attachShader(v,b),s.attachShader(v,S),t.index0AttributeName!==void 0?s.bindAttribLocation(v,0,t.index0AttributeName):t.hasPositionAttribute===!0&&s.bindAttribLocation(v,0,"position"),s.linkProgram(v);function R(P){if(i.debug.checkShaderErrors){let B=s.getProgramInfoLog(v)||"",V=s.getShaderInfoLog(b)||"",N=s.getShaderInfoLog(S)||"",k=B.trim(),$=V.trim(),q=N.trim(),Y=!0,F=!0;if(s.getProgramParameter(v,s.LINK_STATUS)===!1)if(Y=!1,typeof i.debug.onShaderError=="function")i.debug.onShaderError(s,v,b,S);else{let z=Ou(s,b,"vertex"),Z=Ou(s,S,"fragment");We("WebGLProgram: Shader Error "+s.getError()+" - VALIDATE_STATUS "+s.getProgramParameter(v,s.VALIDATE_STATUS)+` + +Material Name: `+P.name+` +Material Type: `+P.type+` + +Program Info Log: `+k+` +`+z+` +`+Z)}else k!==""?Ge("WebGLProgram: Program Info Log:",k):($===""||q==="")&&(F=!1);F&&(P.diagnostics={runnable:Y,programLog:k,vertexShader:{log:$,prefix:g},fragmentShader:{log:q,prefix:p}})}s.deleteShader(b),s.deleteShader(S),x=new Ls(s,v),E=c_(s,v)}let x;this.getUniforms=function(){return x===void 0&&R(this),x};let E;this.getAttributes=function(){return E===void 0&&R(this),E};let C=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return C===!1&&(C=s.getProgramParameter(v,j0)),C},this.destroy=function(){n.releaseStatesOfProgram(this),s.deleteProgram(v),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=e_++,this.cacheKey=e,this.usedTimes=1,this.program=v,this.vertexShader=b,this.fragmentShader=S,this}var T_=0,Nc=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e,t,n){let 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){let t=this.materialCache.get(e);for(let 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){let t=this.materialCache,n=t.get(e);return n===void 0&&(n=new Set,t.set(e,n)),n}_getShaderStage(e){let t=this.shaderCache,n=t.get(e);return n===void 0&&(n=new Uc(e),t.set(e,n)),n}},Uc=class{constructor(e){this.id=T_++,this.code=e,this.usedTimes=0}};function w_(i){return i===yi||i===Nr||i===Ur}function A_(i,e,t,n,s,r){let a=new er,o=new Nc,l=new Set,c=[],h=new Map,u=n.logarithmicDepthBuffer,d=n.precision,f={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(x){return l.add(x),x===0?"uv":`uv${x}`}function v(x,E,C,P,B,V){let N=P.fog,k=B.geometry,$=x.isMeshStandardMaterial||x.isMeshLambertMaterial||x.isMeshPhongMaterial?P.environment:null,q=x.isMeshStandardMaterial||x.isMeshLambertMaterial&&!x.envMap||x.isMeshPhongMaterial&&!x.envMap,Y=e.get(x.envMap||$,q),F=Y&&Y.mapping===Rr?Y.image.height:null,z=f[x.type];x.precision!==null&&(d=n.getMaxPrecision(x.precision),d!==x.precision&&Ge("WebGLProgram.getParameters:",x.precision,"not supported, using",d,"instead."));let Z=k.morphAttributes.position||k.morphAttributes.normal||k.morphAttributes.color,fe=Z!==void 0?Z.length:0,he=0;k.morphAttributes.position!==void 0&&(he=1),k.morphAttributes.normal!==void 0&&(he=2),k.morphAttributes.color!==void 0&&(he=3);let qe,Ve,Ye,K;if(z){let lt=Vn[z];qe=lt.vertexShader,Ve=lt.fragmentShader}else{qe=x.vertexShader,Ve=x.fragmentShader;let lt=o.getVertexShaderStage(x),Re=o.getFragmentShaderStage(x);o.update(x,lt,Re),Ye=lt.id,K=Re.id}let ne=i.getRenderTarget(),pe=i.state.buffers.depth.getReversed(),De=B.isInstancedMesh===!0,me=B.isBatchedMesh===!0,Fe=!!x.map,oe=!!x.matcap,H=!!Y,re=!!x.aoMap,le=!!x.lightMap,j=!!x.bumpMap&&x.wireframe===!1,ae=!!x.normalMap,we=!!x.displacementMap,Ae=!!x.emissiveMap,se=!!x.metalnessMap,He=!!x.roughnessMap,L=x.anisotropy>0,st=x.clearcoat>0,Qe=x.dispersion>0,A=x.retroreflectivity>0,_=x.iridescence>0,O=x.sheen>0,X=x.transmission>0,Q=L&&!!x.anisotropyMap,de=st&&!!x.clearcoatMap,ge=st&&!!x.clearcoatNormalMap,ee=st&&!!x.clearcoatRoughnessMap,ie=_&&!!x.iridescenceMap,_e=_&&!!x.iridescenceThicknessMap,Ie=O&&!!x.sheenColorMap,Me=O&&!!x.sheenRoughnessMap,xe=!!x.specularMap,Oe=!!x.specularColorMap,ke=!!x.specularIntensityMap,Ze=X&&!!x.transmissionMap,U=X&&!!x.thicknessMap,ve=!!x.gradientMap,te=!!x.alphaMap,ye=x.alphaTest>0,Se=!!x.alphaHash,ce=!!x.extensions,Be=bn;x.toneMapped&&(ne===null||ne.isXRRenderTarget===!0)&&(Be=i.toneMapping);let Le={shaderID:z,shaderType:x.type,shaderName:x.name,vertexShader:qe,fragmentShader:Ve,defines:x.defines,customVertexShaderID:Ye,customFragmentShaderID:K,isRawShaderMaterial:x.isRawShaderMaterial===!0,glslVersion:x.glslVersion,precision:d,batching:me,batchingColor:me&&B._colorsTexture!==null,instancing:De,instancingColor:De&&B.instanceColor!==null,instancingMorph:De&&B.morphTexture!==null,outputColorSpace:ne===null?i.outputColorSpace:ne.isXRRenderTarget===!0?ne.texture.colorSpace:rt.workingColorSpace,alphaToCoverage:!!x.alphaToCoverage,map:Fe,matcap:oe,envMap:H,envMapMode:H&&Y.mapping,envMapCubeUVHeight:F,aoMap:re,lightMap:le,bumpMap:j,normalMap:ae,displacementMap:we,emissiveMap:Ae,normalMapObjectSpace:ae&&x.normalMapType===su,normalMapTangentSpace:ae&&x.normalMapType===Xo,packedNormalMap:ae&&x.normalMapType===Xo&&w_(x.normalMap.format),metalnessMap:se,roughnessMap:He,anisotropy:L,anisotropyMap:Q,clearcoat:st,clearcoatMap:de,clearcoatNormalMap:ge,clearcoatRoughnessMap:ee,dispersion:Qe,retroreflection:A,iridescence:_,iridescenceMap:ie,iridescenceThicknessMap:_e,sheen:O,sheenColorMap:Ie,sheenRoughnessMap:Me,specularMap:xe,specularColorMap:Oe,specularIntensityMap:ke,transmission:X,transmissionMap:Ze,thicknessMap:U,gradientMap:ve,opaque:x.transparent===!1&&x.blending===ws&&x.alphaToCoverage===!1,alphaMap:te,alphaTest:ye,alphaHash:Se,combine:x.combine,mapUv:Fe&&m(x.map.channel),aoMapUv:re&&m(x.aoMap.channel),lightMapUv:le&&m(x.lightMap.channel),bumpMapUv:j&&m(x.bumpMap.channel),normalMapUv:ae&&m(x.normalMap.channel),displacementMapUv:we&&m(x.displacementMap.channel),emissiveMapUv:Ae&&m(x.emissiveMap.channel),metalnessMapUv:se&&m(x.metalnessMap.channel),roughnessMapUv:He&&m(x.roughnessMap.channel),anisotropyMapUv:Q&&m(x.anisotropyMap.channel),clearcoatMapUv:de&&m(x.clearcoatMap.channel),clearcoatNormalMapUv:ge&&m(x.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ee&&m(x.clearcoatRoughnessMap.channel),iridescenceMapUv:ie&&m(x.iridescenceMap.channel),iridescenceThicknessMapUv:_e&&m(x.iridescenceThicknessMap.channel),sheenColorMapUv:Ie&&m(x.sheenColorMap.channel),sheenRoughnessMapUv:Me&&m(x.sheenRoughnessMap.channel),specularMapUv:xe&&m(x.specularMap.channel),specularColorMapUv:Oe&&m(x.specularColorMap.channel),specularIntensityMapUv:ke&&m(x.specularIntensityMap.channel),transmissionMapUv:Ze&&m(x.transmissionMap.channel),thicknessMapUv:U&&m(x.thicknessMap.channel),alphaMapUv:te&&m(x.alphaMap.channel),vertexTangents:!!k.attributes.tangent&&(ae||L),vertexNormals:!!k.attributes.normal,vertexColors:x.vertexColors,vertexAlphas:x.vertexColors===!0&&!!k.attributes.color&&k.attributes.color.itemSize===4,pointsUvs:B.isPoints===!0&&!!k.attributes.uv&&(Fe||te),fog:!!N,useFog:x.fog===!0,fogExp2:!!N&&N.isFogExp2,flatShading:x.wireframe===!1&&(x.flatShading===!0||k.attributes.normal===void 0&&ae===!1&&(x.isMeshLambertMaterial||x.isMeshPhongMaterial||x.isMeshStandardMaterial||x.isMeshPhysicalMaterial)),sizeAttenuation:x.sizeAttenuation===!0,logarithmicDepthBuffer:u,reversedDepthBuffer:pe,skinning:B.isSkinnedMesh===!0,hasPositionAttribute:k.attributes.position!==void 0,morphTargets:k.morphAttributes.position!==void 0,morphNormals:k.morphAttributes.normal!==void 0,morphColors:k.morphAttributes.color!==void 0,morphTargetsCount:fe,morphTextureStride:he,numSunLights:E.sun.length,numDirLights:E.directional.length,numPointLights:E.point.length,numSpotLights:E.spot.length,numSpotLightMaps:E.spotLightMap.length,numRectAreaLights:E.rectArea.length,numHemiLights:E.hemi.length,numSunLightShadows:E.sunShadowMap.length,numDirLightShadows:E.directionalShadowMap.length,numPointLightShadows:E.pointShadowMap.length,numSpotLightShadows:E.spotShadowMap.length,numSpotLightShadowsWithMaps:E.numSpotLightShadowsWithMaps,numLightProbes:E.numLightProbes,numLightProbeGrids:V.length,numClippingPlanes:r.numPlanes,numClipIntersection:r.numIntersection,dithering:x.dithering,shadowMapEnabled:i.shadowMap.enabled&&C.length>0,shadowMapType:i.shadowMap.type,toneMapping:Be,decodeVideoTexture:Fe&&x.map.isVideoTexture===!0&&rt.getTransfer(x.map.colorSpace)===ht,decodeVideoTextureEmissive:Ae&&x.emissiveMap.isVideoTexture===!0&&rt.getTransfer(x.emissiveMap.colorSpace)===ht,premultipliedAlpha:x.premultipliedAlpha,doubleSided:x.side===kt,flipSided:x.side===It,useDepthPacking:x.depthPacking>=0,depthPacking:x.depthPacking||0,index0AttributeName:x.index0AttributeName,extensionClipCullDistance:ce&&x.extensions.clipCullDistance===!0&&t.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(ce&&x.extensions.multiDraw===!0||me)&&t.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:t.has("KHR_parallel_shader_compile"),customProgramCacheKey:x.customProgramCacheKey()};return Le.vertexUv1s=l.has(1),Le.vertexUv2s=l.has(2),Le.vertexUv3s=l.has(3),l.clear(),Le}function g(x){let E=[];if(x.shaderID?E.push(x.shaderID):(E.push(x.customVertexShaderID),E.push(x.customFragmentShaderID)),x.defines!==void 0)for(let C in x.defines)E.push(C),E.push(x.defines[C]);return x.isRawShaderMaterial===!1&&(p(E,x),T(E,x),E.push(i.outputColorSpace)),E.push(x.customProgramCacheKey),E.join()}function p(x,E){x.push(E.precision),x.push(E.outputColorSpace),x.push(E.envMapMode),x.push(E.envMapCubeUVHeight),x.push(E.mapUv),x.push(E.alphaMapUv),x.push(E.lightMapUv),x.push(E.aoMapUv),x.push(E.bumpMapUv),x.push(E.normalMapUv),x.push(E.displacementMapUv),x.push(E.emissiveMapUv),x.push(E.metalnessMapUv),x.push(E.roughnessMapUv),x.push(E.anisotropyMapUv),x.push(E.clearcoatMapUv),x.push(E.clearcoatNormalMapUv),x.push(E.clearcoatRoughnessMapUv),x.push(E.iridescenceMapUv),x.push(E.iridescenceThicknessMapUv),x.push(E.sheenColorMapUv),x.push(E.sheenRoughnessMapUv),x.push(E.specularMapUv),x.push(E.specularColorMapUv),x.push(E.specularIntensityMapUv),x.push(E.transmissionMapUv),x.push(E.thicknessMapUv),x.push(E.combine),x.push(E.fogExp2),x.push(E.sizeAttenuation),x.push(E.morphTargetsCount),x.push(E.morphAttributeCount),x.push(E.numSunLights),x.push(E.numDirLights),x.push(E.numPointLights),x.push(E.numSpotLights),x.push(E.numSpotLightMaps),x.push(E.numHemiLights),x.push(E.numRectAreaLights),x.push(E.numSunLightShadows),x.push(E.numDirLightShadows),x.push(E.numPointLightShadows),x.push(E.numSpotLightShadows),x.push(E.numSpotLightShadowsWithMaps),x.push(E.numLightProbes),x.push(E.shadowMapType),x.push(E.toneMapping),x.push(E.numClippingPlanes),x.push(E.numClipIntersection),x.push(E.depthPacking)}function T(x,E){a.disableAll(),E.instancing&&a.enable(0),E.instancingColor&&a.enable(1),E.instancingMorph&&a.enable(2),E.matcap&&a.enable(3),E.envMap&&a.enable(4),E.normalMapObjectSpace&&a.enable(5),E.normalMapTangentSpace&&a.enable(6),E.clearcoat&&a.enable(7),E.iridescence&&a.enable(8),E.alphaTest&&a.enable(9),E.vertexColors&&a.enable(10),E.vertexAlphas&&a.enable(11),E.vertexUv1s&&a.enable(12),E.vertexUv2s&&a.enable(13),E.vertexUv3s&&a.enable(14),E.vertexTangents&&a.enable(15),E.anisotropy&&a.enable(16),E.alphaHash&&a.enable(17),E.batching&&a.enable(18),E.dispersion&&a.enable(19),E.retroreflection&&a.enable(24),E.batchingColor&&a.enable(20),E.gradientMap&&a.enable(21),E.packedNormalMap&&a.enable(22),E.vertexNormals&&a.enable(23),x.push(a.mask),a.disableAll(),E.fog&&a.enable(0),E.useFog&&a.enable(1),E.flatShading&&a.enable(2),E.logarithmicDepthBuffer&&a.enable(3),E.reversedDepthBuffer&&a.enable(4),E.skinning&&a.enable(5),E.morphTargets&&a.enable(6),E.morphNormals&&a.enable(7),E.morphColors&&a.enable(8),E.premultipliedAlpha&&a.enable(9),E.shadowMapEnabled&&a.enable(10),E.doubleSided&&a.enable(11),E.flipSided&&a.enable(12),E.useDepthPacking&&a.enable(13),E.dithering&&a.enable(14),E.transmission&&a.enable(15),E.sheen&&a.enable(16),E.opaque&&a.enable(17),E.pointsUvs&&a.enable(18),E.decodeVideoTexture&&a.enable(19),E.decodeVideoTextureEmissive&&a.enable(20),E.alphaToCoverage&&a.enable(21),E.numLightProbeGrids>0&&a.enable(22),E.hasPositionAttribute&&a.enable(23),x.push(a.mask)}function w(x){let E=f[x.type],C;if(E){let P=Vn[E];C=Su.clone(P.uniforms)}else C=x.uniforms;return C}function M(x,E){let C=h.get(E);return C!==void 0?++C.usedTimes:(C=new E_(i,E,x,s),c.push(C),h.set(E,C)),C}function b(x){if(--x.usedTimes===0){let E=c.indexOf(x);c[E]=c[c.length-1],c.pop(),h.delete(x.cacheKey),x.destroy()}}function S(x){o.remove(x)}function R(){o.dispose()}return{getParameters:v,getProgramCacheKey:g,getUniforms:w,acquireProgram:M,releaseProgram:b,releaseShaderCache:S,programs:c,dispose:R}}function R_(){let i=new WeakMap;function e(a){return i.has(a)}function t(a){let o=i.get(a);return o===void 0&&(o={},i.set(a,o)),o}function n(a){i.delete(a)}function s(a,o,l){i.get(a)[o]=l}function r(){i=new WeakMap}return{has:e,get:t,remove:n,update:s,dispose:r}}function C_(i,e){return i.groupOrder!==e.groupOrder?i.groupOrder-e.groupOrder:i.renderOrder!==e.renderOrder?i.renderOrder-e.renderOrder:i.material.id!==e.material.id?i.material.id-e.material.id:i.materialVariant!==e.materialVariant?i.materialVariant-e.materialVariant:i.z!==e.z?i.z-e.z:i.id-e.id}function Hu(i,e){return i.groupOrder!==e.groupOrder?i.groupOrder-e.groupOrder:i.renderOrder!==e.renderOrder?i.renderOrder-e.renderOrder:i.z!==e.z?e.z-i.z:i.id-e.id}function Gu(){let i=[],e=0,t=[],n=[],s=[];function r(){e=0,t.length=0,n.length=0,s.length=0}function a(d){let f=0;return d.isInstancedMesh&&(f+=2),d.isSkinnedMesh&&(f+=1),f}function o(d,f,m,v,g,p){let T=i[e];return T===void 0?(T={id:d.id,object:d,geometry:f,material:m,materialVariant:a(d),groupOrder:v,renderOrder:d.renderOrder,z:g,group:p},i[e]=T):(T.id=d.id,T.object=d,T.geometry=f,T.material=m,T.materialVariant=a(d),T.groupOrder=v,T.renderOrder=d.renderOrder,T.z=g,T.group=p),e++,T}function l(d,f,m,v,g,p,T){T.reversedDepth===!0&&(g=-g);let w=o(d,f,m,v,g,p);m.transmission>0?n.push(w):m.transparent===!0?s.push(w):t.push(w)}function c(d,f,m,v,g,p){let T=o(d,f,m,v,g,p);m.transmission>0?n.unshift(T):m.transparent===!0?s.unshift(T):t.unshift(T)}function h(d,f){t.length>1&&t.sort(d||C_),n.length>1&&n.sort(f||Hu),s.length>1&&s.sort(f||Hu)}function u(){for(let d=e,f=i.length;d=r.length?(a=new Gu,r.push(a)):a=r[s],a}function t(){i=new WeakMap}return{get:e,dispose:t}}function I_(){let i={};return{get:function(e){if(i[e.id]!==void 0)return i[e.id];let t;switch(e.type){case"SunLight":case"DirectionalLight":t={direction:new I,color:new Xe};break;case"SpotLight":t={position:new I,direction:new I,color:new Xe,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new I,color:new Xe,distance:0,decay:0};break;case"HemisphereLight":t={direction:new I,skyColor:new Xe,groundColor:new Xe};break;case"RectAreaLight":t={color:new Xe,position:new I,halfWidth:new I,halfHeight:new I};break}return i[e.id]=t,t}}}function L_(){let i={};return{get:function(e){if(i[e.id]!==void 0)return i[e.id];let t;switch(e.type){case"SunLight":case"DirectionalLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ue};break;case"SpotLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ue};break;case"PointLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ue,shadowCameraNear:1,shadowCameraFar:1e3};break}return i[e.id]=t,t}}}var D_=0;function N_(i,e){return(e.castShadow?2:0)-(i.castShadow?2:0)+(e.map?1:0)-(i.map?1:0)}function U_(i){let e=new I_,t=L_(),n={version:0,hash:{sunLength:-1,directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numSunShadows:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],sun:[],sunShadow:[],sunShadowMap:[],sunShadowMatrix:[],sunShadowCascade:[],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 c=0;c<9;c++)n.probe.push(new I);let s=new I,r=new gt,a=new gt;function o(c){let h=0,u=0,d=0;for(let B=0;B<9;B++)n.probe[B].set(0,0,0);let f=0,m=0,v=0,g=0,p=0,T=0,w=0,M=0,b=0,S=0,R=0,x=0,E=0,C=0;c.sort(N_);for(let B=0,V=c.length;B0&&(i.has("OES_texture_float_linear")===!0?(n.rectAreaLTC1=be.LTC_FLOAT_1,n.rectAreaLTC2=be.LTC_FLOAT_2):(n.rectAreaLTC1=be.LTC_HALF_1,n.rectAreaLTC2=be.LTC_HALF_2)),n.ambient[0]=h,n.ambient[1]=u,n.ambient[2]=d;let P=n.hash;(P.sunLength!==f||P.directionalLength!==g||P.pointLength!==p||P.spotLength!==T||P.rectAreaLength!==w||P.hemiLength!==M||P.numSunShadows!==m||P.numDirectionalShadows!==b||P.numPointShadows!==S||P.numSpotShadows!==R||P.numSpotMaps!==x||P.numLightProbes!==C)&&(n.sun.length=f,n.directional.length=g,n.spot.length=T,n.rectArea.length=w,n.point.length=p,n.hemi.length=M,n.sunShadow.length=m,n.sunShadowMap.length=m,n.sunShadowMatrix.length=v,n.sunShadowCascade.length=v,n.directionalShadow.length=b,n.directionalShadowMap.length=b,n.directionalShadowMatrix.length=b,n.pointShadow.length=S,n.pointShadowMap.length=S,n.pointShadowMatrix.length=S,n.spotShadow.length=R,n.spotShadowMap.length=R,n.spotLightMatrix.length=R+x-E,n.spotLightMap.length=x,n.numSpotLightShadowsWithMaps=E,n.numLightProbes=C,P.sunLength=f,P.directionalLength=g,P.pointLength=p,P.spotLength=T,P.rectAreaLength=w,P.hemiLength=M,P.numSunShadows=m,P.numDirectionalShadows=b,P.numPointShadows=S,P.numSpotShadows=R,P.numSpotMaps=x,P.numLightProbes=C,n.version=D_++)}function l(c,h){let u=0,d=0,f=0,m=0,v=0,g=0,p=h.matrixWorldInverse;for(let T=0,w=c.length;T=a.length?(o=new Wu(i),a.push(o)):o=a[r],o}function n(){e=new WeakMap}return{get:t,dispose:n}}var O_=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,B_=`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 ); +}`,z_=[new I(1,0,0),new I(-1,0,0),new I(0,1,0),new I(0,-1,0),new I(0,0,1),new I(0,0,-1)],k_=[new I(0,-1,0),new I(0,-1,0),new I(0,0,1),new I(0,0,-1),new I(0,-1,0),new I(0,-1,0)],Xu=new gt,Br=new I,Rc=new I;function V_(i,e,t){let n=new gs,s=new ue,r=new ue,a=new Mt,o=new Va,l=new Ha,c={},h=t.maxTextureSize,u={[ln]:It,[It]:ln,[kt]:kt},d=new an({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new ue},radius:{value:4}},vertexShader:O_,fragmentShader:B_}),f=d.clone();f.defines.HORIZONTAL_PASS=1;let m=new At;m.setAttribute("position",new Bt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let v=new $e(m,d),g=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Tr;let p=this.type;this.render=function(S,R,x){if(g.enabled===!1||g.autoUpdate===!1&&g.needsUpdate===!1||S.length===0)return;this.type===Oh&&(Ge("WebGLShadowMap: PCFSoftShadowMap has been removed. Using PCFShadowMap instead."),this.type=Tr);let E=i.getRenderTarget(),C=i.getActiveCubeFace(),P=i.getActiveMipmapLevel(),B=i.state;B.setBlending(Bn),B.buffers.depth.getReversed()===!0?B.buffers.color.setClear(0,0,0,0):B.buffers.color.setClear(1,1,1,1),B.buffers.depth.setTest(!0),B.setScissorTest(!1);let V=p!==this.type;V&&R.traverse(function(N){N.material&&(Array.isArray(N.material)?N.material.forEach(k=>k.needsUpdate=!0):N.material.needsUpdate=!0)});for(let N=0,k=S.length;Nh||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/Y.x),s.x=r.x*Y.x,q.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/Y.y),s.y=r.y*Y.y,q.mapSize.y=r.y));let F=i.state.buffers.depth.getReversed();if(q.camera._reversedDepth=F,q.map===null||V===!0){if(q.map!==null&&(q.map.depthTexture!==null&&(q.map.depthTexture.dispose(),q.map.depthTexture=null),q.map.dispose()),this.type===Ts){if($.isPointLight){Ge("WebGLShadowMap: VSM shadow maps are not supported for PointLights. Use PCF or BasicShadowMap instead.");continue}q.map=new en(s.x,s.y,{format:yi,type:wn,minFilter:zt,magFilter:zt,generateMipmaps:!1}),q.map.texture.name=$.name+".shadowMap",q.map.depthTexture=new ui(s.x,s.y,Tn),q.map.depthTexture.name=$.name+".shadowMapDepth",q.map.depthTexture.format=Dn,q.map.depthTexture.compareFunction=null,q.map.depthTexture.minFilter=Ut,q.map.depthTexture.magFilter=Ut}else $.isPointLight?(q.map=new $o(s.x),q.map.depthTexture=new Na(s.x,En)):(q.map=new en(s.x,s.y),q.map.depthTexture=new ui(s.x,s.y,En)),q.map.depthTexture.name=$.name+".shadowMap",q.map.depthTexture.format=Dn,this.type===Tr?(q.map.depthTexture.compareFunction=F?Yo:qo,q.map.depthTexture.minFilter=zt,q.map.depthTexture.magFilter=zt):(q.map.depthTexture.compareFunction=null,q.map.depthTexture.minFilter=Ut,q.map.depthTexture.magFilter=Ut);q.camera.updateProjectionMatrix()}q.map.isWebGLCubeRenderTarget!==!0&&(q.map.width!==s.x||q.map.height!==s.y)&&q.map.setSize(s.x,s.y);let z=q.map.isWebGLCubeRenderTarget?6:q.getViewportCount();$.isPointLight!==!0&&q.updateMatrices($,x);for(let Z=0;Z0||R.map&&R.alphaTest>0||R.alphaToCoverage===!0){let B=C.uuid,V=R.uuid,N=c[B];N===void 0&&(N={},c[B]=N);let k=N[V];k===void 0&&(k=C.clone(),N[V]=k,R.addEventListener("dispose",b)),C=k}if(C.visible=R.visible,C.wireframe=R.wireframe,E===Ts?C.side=R.shadowSide!==null?R.shadowSide:R.side:C.side=R.shadowSide!==null?R.shadowSide:u[R.side],C.alphaMap=R.alphaMap,C.alphaTest=R.alphaToCoverage===!0?.5:R.alphaTest,C.map=R.map,C.clipShadows=R.clipShadows,C.clippingPlanes=R.clippingPlanes,C.clipIntersection=R.clipIntersection,C.displacementMap=R.displacementMap,C.displacementScale=R.displacementScale,C.displacementBias=R.displacementBias,C.wireframeLinewidth=R.wireframeLinewidth,C.linewidth=R.linewidth,x.isPointLight===!0&&C.isMeshDistanceMaterial===!0){let B=i.properties.get(C);B.light=x}return C}function M(S,R,x,E,C){if(S.visible===!1)return;if(S.layers.test(R.layers)&&(S.isMesh||S.isLine||S.isPoints)&&(S.castShadow||S.receiveShadow&&C===Ts)&&(!S.frustumCulled||S.intersectsFrustum(n))){S.modelViewMatrix.multiplyMatrices(x.matrixWorldInverse,S.matrixWorld);let V=e.update(S),N=S.material;if(Array.isArray(N)){let k=V.groups;for(let $=0,q=k.length;$=1):F.indexOf("OpenGL ES")!==-1&&(Y=parseFloat(/^OpenGL ES (\d)/.exec(F)[1]),q=Y>=2);let z=null,Z={},fe=i.getParameter(i.SCISSOR_BOX),he=i.getParameter(i.VIEWPORT),qe=new Mt().fromArray(fe),Ve=new Mt().fromArray(he);function Ye(U,ve,te,ye){let Se=new Uint8Array(4),ce=i.createTexture();i.bindTexture(U,ce),i.texParameteri(U,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(U,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let Be=0;Be"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new ue,h=new WeakMap,u=new Set,d,f=new WeakMap,m=!1;try{m=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function v(A,_){return m?new OffscreenCanvas(A,_):ls("canvas")}function g(A,_,O){let X=1,Q=Qe(A);if((Q.width>O||Q.height>O)&&(X=O/Math.max(Q.width,Q.height)),X<1)if(typeof HTMLImageElement<"u"&&A instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&A instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&A instanceof ImageBitmap||typeof VideoFrame<"u"&&A instanceof VideoFrame){let de=Math.floor(X*Q.width),ge=Math.floor(X*Q.height);d===void 0&&(d=v(de,ge));let ee=_?v(de,ge):d;return ee.width=de,ee.height=ge,ee.getContext("2d").drawImage(A,0,0,de,ge),Ge("WebGLRenderer: Texture has been resized from ("+Q.width+"x"+Q.height+") to ("+de+"x"+ge+")."),ee}else return"data"in A&&Ge("WebGLRenderer: Image in DataTexture is too big ("+Q.width+"x"+Q.height+")."),A;return A}function p(A){return A.generateMipmaps}function T(A){i.generateMipmap(A)}function w(A){return A.isWebGLCubeRenderTarget?i.TEXTURE_CUBE_MAP:A.isWebGL3DRenderTarget?i.TEXTURE_3D:A.isWebGLArrayRenderTarget||A.isCompressedArrayTexture?i.TEXTURE_2D_ARRAY:i.TEXTURE_2D}function M(A,_,O,X,Q,de=!1){if(A!==null){if(i[A]!==void 0)return i[A];Ge("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+A+"'")}let ge;X&&(ge=e.get("EXT_texture_norm16"),ge||Ge("WebGLRenderer: Unable to use normalized textures without EXT_texture_norm16 extension"));let ee=_;if(_===i.RED&&(O===i.FLOAT&&(ee=i.R32F),O===i.HALF_FLOAT&&(ee=i.R16F),O===i.UNSIGNED_BYTE&&(ee=i.R8),O===i.UNSIGNED_SHORT&&ge&&(ee=ge.R16_EXT),O===i.SHORT&&ge&&(ee=ge.R16_SNORM_EXT)),_===i.RED_INTEGER&&(O===i.UNSIGNED_BYTE&&(ee=i.R8UI),O===i.UNSIGNED_SHORT&&(ee=i.R16UI),O===i.UNSIGNED_INT&&(ee=i.R32UI),O===i.BYTE&&(ee=i.R8I),O===i.SHORT&&(ee=i.R16I),O===i.INT&&(ee=i.R32I)),_===i.RG&&(O===i.FLOAT&&(ee=i.RG32F),O===i.HALF_FLOAT&&(ee=i.RG16F),O===i.UNSIGNED_BYTE&&(ee=i.RG8),O===i.UNSIGNED_SHORT&&ge&&(ee=ge.RG16_EXT),O===i.SHORT&&ge&&(ee=ge.RG16_SNORM_EXT)),_===i.RG_INTEGER&&(O===i.UNSIGNED_BYTE&&(ee=i.RG8UI),O===i.UNSIGNED_SHORT&&(ee=i.RG16UI),O===i.UNSIGNED_INT&&(ee=i.RG32UI),O===i.BYTE&&(ee=i.RG8I),O===i.SHORT&&(ee=i.RG16I),O===i.INT&&(ee=i.RG32I)),_===i.RGB_INTEGER&&(O===i.UNSIGNED_BYTE&&(ee=i.RGB8UI),O===i.UNSIGNED_SHORT&&(ee=i.RGB16UI),O===i.UNSIGNED_INT&&(ee=i.RGB32UI),O===i.BYTE&&(ee=i.RGB8I),O===i.SHORT&&(ee=i.RGB16I),O===i.INT&&(ee=i.RGB32I)),_===i.RGBA_INTEGER&&(O===i.UNSIGNED_BYTE&&(ee=i.RGBA8UI),O===i.UNSIGNED_SHORT&&(ee=i.RGBA16UI),O===i.UNSIGNED_INT&&(ee=i.RGBA32UI),O===i.BYTE&&(ee=i.RGBA8I),O===i.SHORT&&(ee=i.RGBA16I),O===i.INT&&(ee=i.RGBA32I)),_===i.RGB&&(O===i.UNSIGNED_SHORT&&ge&&(ee=ge.RGB16_EXT),O===i.SHORT&&ge&&(ee=ge.RGB16_SNORM_EXT),O===i.UNSIGNED_INT_5_9_9_9_REV&&(ee=i.RGB9_E5),O===i.UNSIGNED_INT_10F_11F_11F_REV&&(ee=i.R11F_G11F_B10F)),_===i.RGBA){let ie=de?Ks:rt.getTransfer(Q);O===i.FLOAT&&(ee=i.RGBA32F),O===i.HALF_FLOAT&&(ee=i.RGBA16F),O===i.UNSIGNED_BYTE&&(ee=ie===ht?i.SRGB8_ALPHA8:i.RGBA8),O===i.UNSIGNED_SHORT&&ge&&(ee=ge.RGBA16_EXT),O===i.SHORT&&ge&&(ee=ge.RGBA16_SNORM_EXT),O===i.UNSIGNED_SHORT_4_4_4_4&&(ee=i.RGBA4),O===i.UNSIGNED_SHORT_5_5_5_1&&(ee=i.RGB5_A1)}return(ee===i.R16F||ee===i.R32F||ee===i.RG16F||ee===i.RG32F||ee===i.RGBA16F||ee===i.RGBA32F)&&e.get("EXT_color_buffer_float"),ee}function b(A,_){let O;return A?_===null||_===En||_===Cs?O=i.DEPTH24_STENCIL8:_===Tn?O=i.DEPTH32F_STENCIL8:_===Rs&&(O=i.DEPTH24_STENCIL8,Ge("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):_===null||_===En||_===Cs?O=i.DEPTH_COMPONENT24:_===Tn?O=i.DEPTH_COMPONENT32F:_===Rs&&(O=i.DEPTH_COMPONENT16),O}function S(A,_){return p(A)===!0||A.isFramebufferTexture&&A.minFilter!==Ut&&A.minFilter!==zt?Math.log2(Math.max(_.width,_.height))+1:A.mipmaps!==void 0&&A.mipmaps.length>0?A.mipmaps.length:A.isCompressedTexture&&Array.isArray(A.image)?_.mipmaps.length:1}function R(A){let _=A.target;_.removeEventListener("dispose",R),E(_),_.isVideoTexture&&h.delete(_),_.isHTMLTexture&&u.delete(_)}function x(A){let _=A.target;_.removeEventListener("dispose",x),P(_)}function E(A){let _=n.get(A);if(_.__webglInit===void 0)return;let O=A.source,X=f.get(O);if(X){let Q=X[_.__cacheKey];Q.usedTimes--,Q.usedTimes===0&&C(A),Object.keys(X).length===0&&f.delete(O)}n.remove(A)}function C(A){let _=n.get(A);i.deleteTexture(_.__webglTexture);let O=A.source,X=f.get(O);delete X[_.__cacheKey],a.memory.textures--}function P(A){let _=n.get(A);if(A.depthTexture&&(A.depthTexture.dispose(),n.remove(A.depthTexture)),A.isWebGLCubeRenderTarget)for(let X=0;X<6;X++){if(Array.isArray(_.__webglFramebuffer[X]))for(let Q=0;Q<_.__webglFramebuffer[X].length;Q++)i.deleteFramebuffer(_.__webglFramebuffer[X][Q]);else i.deleteFramebuffer(_.__webglFramebuffer[X]);_.__webglDepthbuffer&&i.deleteRenderbuffer(_.__webglDepthbuffer[X])}else{if(Array.isArray(_.__webglFramebuffer))for(let X=0;X<_.__webglFramebuffer.length;X++)i.deleteFramebuffer(_.__webglFramebuffer[X]);else i.deleteFramebuffer(_.__webglFramebuffer);if(_.__webglDepthbuffer&&i.deleteRenderbuffer(_.__webglDepthbuffer),_.__webglMultisampledFramebuffer&&i.deleteFramebuffer(_.__webglMultisampledFramebuffer),_.__webglColorRenderbuffer)for(let X=0;X<_.__webglColorRenderbuffer.length;X++)_.__webglColorRenderbuffer[X]&&i.deleteRenderbuffer(_.__webglColorRenderbuffer[X]);_.__webglDepthRenderbuffer&&i.deleteRenderbuffer(_.__webglDepthRenderbuffer)}let O=A.textures;for(let X=0,Q=O.length;X=s.maxTextures&&Ge("WebGLTextures: Trying to use "+(A+1)+" texture units while this GPU supports only "+s.maxTextures),B+=1,A}function q(A){let _=[];return _.push(A.wrapS),_.push(A.wrapT),_.push(A.wrapR||0),_.push(A.magFilter),_.push(A.minFilter),_.push(A.anisotropy),_.push(A.internalFormat),_.push(A.format),_.push(A.type),_.push(A.generateMipmaps),_.push(A.premultiplyAlpha),_.push(A.flipY),_.push(A.unpackAlignment),_.push(A.colorSpace),_.join()}function Y(A,_){let O=n.get(A);if(A.isVideoTexture&&L(A),A.isRenderTargetTexture===!1&&A.isExternalTexture!==!0&&A.version>0&&O.__version!==A.version){let X=A.image;if(X===null)Ge("WebGLRenderer: Texture marked for update but no image data found.");else if(X.complete===!1)Ge("WebGLRenderer: Texture marked for update but image is incomplete");else{pe(O,A,_);return}}else A.isExternalTexture&&(O.__webglTexture=A.sourceTexture?A.sourceTexture:null);t.bindTexture(i.TEXTURE_2D,O.__webglTexture,i.TEXTURE0+_)}function F(A,_){let O=n.get(A);if(A.isRenderTargetTexture===!1&&A.version>0&&O.__version!==A.version){pe(O,A,_);return}else A.isExternalTexture&&(O.__webglTexture=A.sourceTexture?A.sourceTexture:null);t.bindTexture(i.TEXTURE_2D_ARRAY,O.__webglTexture,i.TEXTURE0+_)}function z(A,_){let O=n.get(A);if(A.isRenderTargetTexture===!1&&A.version>0&&O.__version!==A.version){pe(O,A,_);return}t.bindTexture(i.TEXTURE_3D,O.__webglTexture,i.TEXTURE0+_)}function Z(A,_){let O=n.get(A);if(A.isCubeDepthTexture!==!0&&A.version>0&&O.__version!==A.version){De(O,A,_);return}t.bindTexture(i.TEXTURE_CUBE_MAP,O.__webglTexture,i.TEXTURE0+_)}let fe={[as]:i.REPEAT,[In]:i.CLAMP_TO_EDGE,[Ca]:i.MIRRORED_REPEAT},he={[Ut]:i.NEAREST,[nu]:i.NEAREST_MIPMAP_NEAREST,[Cr]:i.NEAREST_MIPMAP_LINEAR,[zt]:i.LINEAR,[oo]:i.LINEAR_MIPMAP_NEAREST,[zn]:i.LINEAR_MIPMAP_LINEAR},qe={[au]:i.NEVER,[uu]:i.ALWAYS,[ou]:i.LESS,[qo]:i.LEQUAL,[lu]:i.EQUAL,[Yo]:i.GEQUAL,[cu]:i.GREATER,[hu]:i.NOTEQUAL};function Ve(A,_){if(_.type===Tn&&e.has("OES_texture_float_linear")===!1&&(_.magFilter===zt||_.magFilter===oo||_.magFilter===Cr||_.magFilter===zn||_.minFilter===zt||_.minFilter===oo||_.minFilter===Cr||_.minFilter===zn)&&Ge("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),i.texParameteri(A,i.TEXTURE_WRAP_S,fe[_.wrapS]),i.texParameteri(A,i.TEXTURE_WRAP_T,fe[_.wrapT]),(A===i.TEXTURE_3D||A===i.TEXTURE_2D_ARRAY)&&i.texParameteri(A,i.TEXTURE_WRAP_R,fe[_.wrapR]),i.texParameteri(A,i.TEXTURE_MAG_FILTER,he[_.magFilter]),i.texParameteri(A,i.TEXTURE_MIN_FILTER,he[_.minFilter]),_.compareFunction&&(i.texParameteri(A,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(A,i.TEXTURE_COMPARE_FUNC,qe[_.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(_.magFilter===Ut||_.minFilter!==Cr&&_.minFilter!==zn||_.type===Tn&&e.has("OES_texture_float_linear")===!1)return;if(_.anisotropy>1||n.get(_).__currentAnisotropy){let O=e.get("EXT_texture_filter_anisotropic");i.texParameterf(A,O.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(_.anisotropy,s.getMaxAnisotropy())),n.get(_).__currentAnisotropy=_.anisotropy}}}function Ye(A,_){let O=!1;A.__webglInit===void 0&&(A.__webglInit=!0,_.addEventListener("dispose",R));let X=_.source,Q=f.get(X);Q===void 0&&(Q={},f.set(X,Q));let de=q(_);if(de!==A.__cacheKey){Q[de]===void 0&&(Q[de]={texture:i.createTexture(),usedTimes:0},a.memory.textures++,O=!0),Q[de].usedTimes++;let ge=Q[A.__cacheKey];ge!==void 0&&(Q[A.__cacheKey].usedTimes--,ge.usedTimes===0&&C(_)),A.__cacheKey=de,A.__webglTexture=Q[de].texture}return O}function K(A,_,O){return Math.floor(Math.floor(A/O)/_)}function ne(A,_,O,X){let de=A.updateRanges;if(de.length===0)t.texSubImage2D(i.TEXTURE_2D,0,0,0,_.width,_.height,O,X,_.data);else{de.sort((Ie,Me)=>Ie.start-Me.start);let ge=0;for(let Ie=1;Ie0){ke&&Ze&&t.texStorage2D(i.TEXTURE_2D,ve,Me,Oe[0].width,Oe[0].height);for(let te=0,ye=Oe.length;te0){let Se=_c(xe.width,xe.height,_.format,_.type);for(let ce of _.layerUpdates){let Be=xe.data.subarray(ce*Se/xe.data.BYTES_PER_ELEMENT,(ce+1)*Se/xe.data.BYTES_PER_ELEMENT);t.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,te,0,0,ce,xe.width,xe.height,1,_e,Be)}}else t.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,te,0,0,0,xe.width,xe.height,ie.depth,_e,xe.data)}else t.compressedTexImage3D(i.TEXTURE_2D_ARRAY,te,Me,xe.width,xe.height,ie.depth,0,xe.data,0,0);else Ge("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else ke?U&&t.texSubImage3D(i.TEXTURE_2D_ARRAY,te,0,0,0,xe.width,xe.height,ie.depth,_e,Ie,xe.data):t.texImage3D(i.TEXTURE_2D_ARRAY,te,Me,xe.width,xe.height,ie.depth,0,_e,Ie,xe.data);_.layerUpdates.size>0&&_.clearLayerUpdates()}else{ke&&Ze&&t.texStorage2D(i.TEXTURE_2D,ve,Me,Oe[0].width,Oe[0].height);for(let te=0,ye=Oe.length;te0){let te=_c(ie.width,ie.height,_.format,_.type);for(let ye of _.layerUpdates){let Se=ie.data.subarray(ye*te/ie.data.BYTES_PER_ELEMENT,(ye+1)*te/ie.data.BYTES_PER_ELEMENT);t.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,ye,ie.width,ie.height,1,_e,Ie,Se)}_.clearLayerUpdates()}else t.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,0,ie.width,ie.height,ie.depth,_e,Ie,ie.data)}else t.texImage3D(i.TEXTURE_2D_ARRAY,0,Me,ie.width,ie.height,ie.depth,0,_e,Ie,ie.data);else if(_.isData3DTexture)ke?(Ze&&t.texStorage3D(i.TEXTURE_3D,ve,Me,ie.width,ie.height,ie.depth),U&&t.texSubImage3D(i.TEXTURE_3D,0,0,0,0,ie.width,ie.height,ie.depth,_e,Ie,ie.data)):t.texImage3D(i.TEXTURE_3D,0,Me,ie.width,ie.height,ie.depth,0,_e,Ie,ie.data);else if(_.isFramebufferTexture){if(Ze)if(ke)t.texStorage2D(i.TEXTURE_2D,ve,Me,ie.width,ie.height);else{let te=ie.width,ye=ie.height;for(let Se=0;Se>=1,ye>>=1}}else if(_.isHTMLTexture){if("texElementImage2D"in i){let te=i.canvas;if(te.hasAttribute("layoutsubtree")||te.setAttribute("layoutsubtree","true"),ie.parentNode!==te){te.appendChild(ie),u.add(_),te.onpaint=ye=>{let Se=ye.changedElements;for(let ce of u)Se.includes(ce.image)&&(ce.needsUpdate=!0)},te.requestPaint();return}if(i.texElementImage2D.length===3)i.texElementImage2D(i.TEXTURE_2D,i.RGBA8,ie);else{let Se=i.RGBA,ce=i.RGBA,Be=i.UNSIGNED_BYTE;i.texElementImage2D(i.TEXTURE_2D,0,Se,ce,Be,ie)}i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE)}}else if(Oe.length>0){if(ke&&Ze){let te=Qe(Oe[0]);t.texStorage2D(i.TEXTURE_2D,ve,Me,te.width,te.height)}for(let te=0,ye=Oe.length;te0&&ye++;let ce=Qe(Me[0]);t.texStorage2D(i.TEXTURE_CUBE_MAP,ye,Ze,ce.width,ce.height)}for(let ce=0;ce<6;ce++)if(Ie){U?te&&t.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+ce,0,0,0,Me[ce].width,Me[ce].height,Oe,ke,Me[ce].data):t.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+ce,0,Ze,Me[ce].width,Me[ce].height,0,Oe,ke,Me[ce].data);for(let Be=0;Be>de),xe=Math.max(1,_.height>>de);Q===i.TEXTURE_3D||Q===i.TEXTURE_2D_ARRAY?t.texImage3D(Q,de,ie,Me,xe,_.depth,0,ge,ee,null):t.texImage2D(Q,de,ie,Me,xe,0,ge,ee,null)}t.bindFramebuffer(i.FRAMEBUFFER,A),He(_)?o.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,X,Q,Ie.__webglTexture,0,se(_)):(Q===i.TEXTURE_2D||Q>=i.TEXTURE_CUBE_MAP_POSITIVE_X&&Q<=i.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&i.framebufferTexture2D(i.FRAMEBUFFER,X,Q,Ie.__webglTexture,de),t.bindFramebuffer(i.FRAMEBUFFER,null)}function Fe(A,_,O){if(i.bindRenderbuffer(i.RENDERBUFFER,A),_.depthBuffer){let X=_.depthTexture,Q=X&&X.isDepthTexture?X.type:null,de=b(_.stencilBuffer,Q),ge=_.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT;He(_)?o.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,se(_),de,_.width,_.height):O?i.renderbufferStorageMultisample(i.RENDERBUFFER,se(_),de,_.width,_.height):i.renderbufferStorage(i.RENDERBUFFER,de,_.width,_.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,ge,i.RENDERBUFFER,A)}else{let X=_.textures;for(let Q=0;Q{delete _.__boundDepthTexture,delete _.__depthDisposeCallback,X.removeEventListener("dispose",Q)};X.addEventListener("dispose",Q),_.__depthDisposeCallback=Q}_.__boundDepthTexture=X}if(A.depthTexture&&!_.__autoAllocateDepthBuffer)if(O)for(let X=0;X<6;X++)oe(_.__webglFramebuffer[X],A,X);else{let X=A.texture.mipmaps;X&&X.length>0?oe(_.__webglFramebuffer[0],A,0):oe(_.__webglFramebuffer,A,0)}else if(O){_.__webglDepthbuffer=[];for(let X=0;X<6;X++)if(t.bindFramebuffer(i.FRAMEBUFFER,_.__webglFramebuffer[X]),_.__webglDepthbuffer[X]===void 0)_.__webglDepthbuffer[X]=i.createRenderbuffer(),Fe(_.__webglDepthbuffer[X],A,!1);else{let Q=A.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,de=_.__webglDepthbuffer[X];i.bindRenderbuffer(i.RENDERBUFFER,de),i.framebufferRenderbuffer(i.FRAMEBUFFER,Q,i.RENDERBUFFER,de)}}else{let X=A.texture.mipmaps;if(X&&X.length>0?t.bindFramebuffer(i.FRAMEBUFFER,_.__webglFramebuffer[0]):t.bindFramebuffer(i.FRAMEBUFFER,_.__webglFramebuffer),_.__webglDepthbuffer===void 0)_.__webglDepthbuffer=i.createRenderbuffer(),Fe(_.__webglDepthbuffer,A,!1);else{let Q=A.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,de=_.__webglDepthbuffer;i.bindRenderbuffer(i.RENDERBUFFER,de),i.framebufferRenderbuffer(i.FRAMEBUFFER,Q,i.RENDERBUFFER,de)}}t.bindFramebuffer(i.FRAMEBUFFER,null)}function re(A,_,O){let X=n.get(A);_!==void 0&&me(X.__webglFramebuffer,A,A.texture,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,0),O!==void 0&&H(A)}function le(A){let _=A.texture,O=n.get(A),X=n.get(_);A.addEventListener("dispose",x);let Q=A.textures,de=A.isWebGLCubeRenderTarget===!0,ge=Q.length>1;if(ge||(X.__webglTexture===void 0&&(X.__webglTexture=i.createTexture()),X.__version=_.version,a.memory.textures++),de){O.__webglFramebuffer=[];for(let ee=0;ee<6;ee++)if(_.mipmaps&&_.mipmaps.length>0){O.__webglFramebuffer[ee]=[];for(let ie=0;ie<_.mipmaps.length;ie++)O.__webglFramebuffer[ee][ie]=i.createFramebuffer()}else O.__webglFramebuffer[ee]=i.createFramebuffer()}else{if(_.mipmaps&&_.mipmaps.length>0){O.__webglFramebuffer=[];for(let ee=0;ee<_.mipmaps.length;ee++)O.__webglFramebuffer[ee]=i.createFramebuffer()}else O.__webglFramebuffer=i.createFramebuffer();if(ge)for(let ee=0,ie=Q.length;ee0&&He(A)===!1){O.__webglMultisampledFramebuffer=i.createFramebuffer(),O.__webglColorRenderbuffer=[],t.bindFramebuffer(i.FRAMEBUFFER,O.__webglMultisampledFramebuffer);for(let ee=0;ee0)for(let ie=0;ie<_.mipmaps.length;ie++)me(O.__webglFramebuffer[ee][ie],A,_,i.COLOR_ATTACHMENT0,i.TEXTURE_CUBE_MAP_POSITIVE_X+ee,ie);else me(O.__webglFramebuffer[ee],A,_,i.COLOR_ATTACHMENT0,i.TEXTURE_CUBE_MAP_POSITIVE_X+ee,0);p(_)&&T(i.TEXTURE_CUBE_MAP),t.unbindTexture()}else if(ge){for(let ee=0,ie=Q.length;ee0)for(let ie=0;ie<_.mipmaps.length;ie++)me(O.__webglFramebuffer[ie],A,_,i.COLOR_ATTACHMENT0,ee,ie);else me(O.__webglFramebuffer,A,_,i.COLOR_ATTACHMENT0,ee,0);p(_)&&T(ee),t.unbindTexture()}A.depthBuffer&&H(A)}function j(A){let _=A.textures;for(let O=0,X=_.length;O0){if(He(A)===!1){let _=A.textures,O=A.width,X=A.height,Q=i.COLOR_BUFFER_BIT,de=A.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,ge=n.get(A),ee=_.length>1;if(ee)for(let _e=0;_e<_.length;_e++)t.bindFramebuffer(i.FRAMEBUFFER,ge.__webglMultisampledFramebuffer),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+_e,i.RENDERBUFFER,null),t.bindFramebuffer(i.FRAMEBUFFER,ge.__webglFramebuffer),i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0+_e,i.TEXTURE_2D,null,0);t.bindFramebuffer(i.READ_FRAMEBUFFER,ge.__webglMultisampledFramebuffer);let ie=A.texture.mipmaps;ie&&ie.length>0?t.bindFramebuffer(i.DRAW_FRAMEBUFFER,ge.__webglFramebuffer[0]):t.bindFramebuffer(i.DRAW_FRAMEBUFFER,ge.__webglFramebuffer);for(let _e=0;_e<_.length;_e++){if(A.resolveDepthBuffer&&(A.depthBuffer&&(Q|=i.DEPTH_BUFFER_BIT),A.stencilBuffer&&A.resolveStencilBuffer&&(Q|=i.STENCIL_BUFFER_BIT)),ee){i.framebufferRenderbuffer(i.READ_FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.RENDERBUFFER,ge.__webglColorRenderbuffer[_e]);let Ie=n.get(_[_e]).__webglTexture;i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,Ie,0)}i.blitFramebuffer(0,0,O,X,0,0,O,X,Q,i.NEAREST),l===!0&&(ae.length=0,we.length=0,ae.push(i.COLOR_ATTACHMENT0+_e),A.depthBuffer&&A.storeMultisampledDepthBuffer===!1&&(ae.push(de),we.push(de),i.invalidateFramebuffer(i.DRAW_FRAMEBUFFER,we)),i.invalidateFramebuffer(i.READ_FRAMEBUFFER,ae))}if(t.bindFramebuffer(i.READ_FRAMEBUFFER,null),t.bindFramebuffer(i.DRAW_FRAMEBUFFER,null),ee)for(let _e=0;_e<_.length;_e++){t.bindFramebuffer(i.FRAMEBUFFER,ge.__webglMultisampledFramebuffer),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+_e,i.RENDERBUFFER,ge.__webglColorRenderbuffer[_e]);let Ie=n.get(_[_e]).__webglTexture;t.bindFramebuffer(i.FRAMEBUFFER,ge.__webglFramebuffer),i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0+_e,i.TEXTURE_2D,Ie,0)}t.bindFramebuffer(i.DRAW_FRAMEBUFFER,ge.__webglMultisampledFramebuffer)}else if(A.depthBuffer&&A.storeMultisampledDepthBuffer===!1&&l){let _=A.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT;i.invalidateFramebuffer(i.DRAW_FRAMEBUFFER,[_])}}}function se(A){return Math.min(s.maxSamples,A.samples)}function He(A){let _=n.get(A);return A.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&_.__useRenderToTexture!==!1}function L(A){let _=a.render.frame;h.get(A)!==_&&(h.set(A,_),A.update())}function st(A,_){let O=A.colorSpace,X=A.format,Q=A.type;return A.isCompressedTexture===!0||A.isVideoTexture===!0||O!==$s&&O!==ti&&(rt.getTransfer(O)===ht?(X!==fn||Q!==tn)&&Ge("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):We("WebGLTextures: Unsupported texture color space:",O)),_}function Qe(A){return typeof HTMLImageElement<"u"&&A instanceof HTMLImageElement?(c.width=A.naturalWidth||A.width,c.height=A.naturalHeight||A.height):typeof VideoFrame<"u"&&A instanceof VideoFrame?(c.width=A.displayWidth,c.height=A.displayHeight):(c.width=A.width,c.height=A.height),c}this.allocateTextureUnit=$,this.resetTextureUnits=V,this.getTextureUnits=N,this.setTextureUnits=k,this.setTexture2D=Y,this.setTexture2DArray=F,this.setTexture3D=z,this.setTextureCube=Z,this.rebindTextures=re,this.setupRenderTarget=le,this.updateRenderTargetMipmap=j,this.updateMultisampleRenderTarget=Ae,this.setupDepthRenderbuffer=H,this.setupFrameBufferTexture=me,this.useMultisampledRTT=He,this.isReversedDepthBuffer=function(){return t.buffers.depth.getReversed()}}function W_(i,e){function t(n,s=ti){let r,a=rt.getTransfer(s);if(n===tn)return i.UNSIGNED_BYTE;if(n===co)return i.UNSIGNED_SHORT_4_4_4_4;if(n===ho)return i.UNSIGNED_SHORT_5_5_5_1;if(n===rc)return i.UNSIGNED_INT_5_9_9_9_REV;if(n===ac)return i.UNSIGNED_INT_10F_11F_11F_REV;if(n===ic)return i.BYTE;if(n===sc)return i.SHORT;if(n===Rs)return i.UNSIGNED_SHORT;if(n===lo)return i.INT;if(n===En)return i.UNSIGNED_INT;if(n===Tn)return i.FLOAT;if(n===wn)return i.HALF_FLOAT;if(n===oc)return i.ALPHA;if(n===lc)return i.RGB;if(n===fn)return i.RGBA;if(n===Dn)return i.DEPTH_COMPONENT;if(n===vi)return i.DEPTH_STENCIL;if(n===cc)return i.RED;if(n===uo)return i.RED_INTEGER;if(n===yi)return i.RG;if(n===fo)return i.RG_INTEGER;if(n===po)return i.RGBA_INTEGER;if(n===Pr||n===Ir||n===Lr||n===Dr)if(a===ht)if(r=e.get("WEBGL_compressed_texture_s3tc_srgb"),r!==null){if(n===Pr)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===Ir)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===Lr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===Dr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(r=e.get("WEBGL_compressed_texture_s3tc"),r!==null){if(n===Pr)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===Ir)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===Lr)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===Dr)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(n===mo||n===go||n===_o||n===xo)if(r=e.get("WEBGL_compressed_texture_pvrtc"),r!==null){if(n===mo)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===go)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===_o)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===xo)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(n===vo||n===yo||n===Mo||n===So||n===bo||n===Nr||n===Eo)if(r=e.get("WEBGL_compressed_texture_etc"),r!==null){if(n===vo||n===yo)return a===ht?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===Mo)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC;if(n===So)return r.COMPRESSED_R11_EAC;if(n===bo)return r.COMPRESSED_SIGNED_R11_EAC;if(n===Nr)return r.COMPRESSED_RG11_EAC;if(n===Eo)return r.COMPRESSED_SIGNED_RG11_EAC}else return null;if(n===To||n===wo||n===Ao||n===Ro||n===Co||n===Po||n===Io||n===Lo||n===Do||n===No||n===Uo||n===Fo||n===Oo||n===Bo)if(r=e.get("WEBGL_compressed_texture_astc"),r!==null){if(n===To)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===wo)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===Ao)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===Ro)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===Co)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===Po)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===Io)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===Lo)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===Do)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===No)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===Uo)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===Fo)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===Oo)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===Bo)return a===ht?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(n===zo||n===ko||n===Vo)if(r=e.get("EXT_texture_compression_bptc"),r!==null){if(n===zo)return a===ht?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===ko)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===Vo)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(n===Ho||n===Go||n===Ur||n===Wo)if(r=e.get("EXT_texture_compression_rgtc"),r!==null){if(n===Ho)return r.COMPRESSED_RED_RGTC1_EXT;if(n===Go)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===Ur)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===Wo)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return n===Cs?i.UNSIGNED_INT_24_8:i[n]!==void 0?i[n]:null}return{convert:t}}var X_=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,q_=` +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; + + } + +}`,Fc=class{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t){if(this.texture===null){let n=new lr(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){let t=e.cameras[0].viewport,n=new an({vertexShader:X_,fragmentShader:q_,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new $e(new Et(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}},Oc=class extends Nn{constructor(e,t){super();let n=this,s=null,r=1,a=null,o="local-floor",l=1,c=null,h=null,u=null,d=null,f=null,m=null,v=typeof XRWebGLBinding<"u",g=new Fc,p={},T=t.getContextAttributes(),w=null,M=null,b=[],S=[],R=new ue,x=null,E=null,C=new Xt;C.viewport=new Mt;let P=new Xt;P.viewport=new Mt;let B=[C,P],V=new to,N=null,k=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(K){let ne=b[K];return ne===void 0&&(ne=new ds,b[K]=ne),ne.getTargetRaySpace()},this.getControllerGrip=function(K){let ne=b[K];return ne===void 0&&(ne=new ds,b[K]=ne),ne.getGripSpace()},this.getHand=function(K){let ne=b[K];return ne===void 0&&(ne=new ds,b[K]=ne),ne.getHandSpace()};function $(K){let ne=S.indexOf(K.inputSource);if(ne===-1)return;let pe=b[ne];pe!==void 0&&(pe.update(K.inputSource,K.frame,c||a),pe.dispatchEvent({type:K.type,data:K.inputSource}))}function q(){s.removeEventListener("select",$),s.removeEventListener("selectstart",$),s.removeEventListener("selectend",$),s.removeEventListener("squeeze",$),s.removeEventListener("squeezestart",$),s.removeEventListener("squeezeend",$),s.removeEventListener("end",q),s.removeEventListener("inputsourceschange",Y);for(let K=0;K=0&&(S[De]=null,b[De].disconnect(pe))}for(let ne=0;ne=S.length){S.push(pe),De=Fe;break}else if(S[Fe]===null){S[Fe]=pe,De=Fe;break}if(De===-1)break}let me=b[De];me&&me.connect(pe)}}let F=new I,z=new I;function Z(K,ne,pe){F.setFromMatrixPosition(ne.matrixWorld),z.setFromMatrixPosition(pe.matrixWorld);let De=F.distanceTo(z),me=ne.projectionMatrix.elements,Fe=pe.projectionMatrix.elements,oe=me[14]/(me[10]-1),H=me[14]/(me[10]+1),re=(me[9]+1)/me[5],le=(me[9]-1)/me[5],j=(me[8]-1)/me[0],ae=(Fe[8]+1)/Fe[0],we=oe*j,Ae=oe*ae,se=De/(-j+ae),He=se*-j;if(ne.matrixWorld.decompose(K.position,K.quaternion,K.scale),K.translateX(He),K.translateZ(se),K.matrixWorld.compose(K.position,K.quaternion,K.scale),K.matrixWorldInverse.copy(K.matrixWorld).invert(),me[10]===-1)K.projectionMatrix.copy(ne.projectionMatrix),K.projectionMatrixInverse.copy(ne.projectionMatrixInverse);else{let L=oe+se,st=H+se,Qe=we-He,A=Ae+(De-He),_=re*H/st*L,O=le*H/st*L;K.projectionMatrix.makePerspective(Qe,A,_,O,L,st),K.projectionMatrixInverse.copy(K.projectionMatrix).invert()}}function fe(K,ne){ne===null?K.matrixWorld.copy(K.matrix):K.matrixWorld.multiplyMatrices(ne.matrixWorld,K.matrix),K.matrixWorldInverse.copy(K.matrixWorld).invert()}this.updateCamera=function(K){if(s===null)return;let ne=K.near,pe=K.far;g.texture!==null&&(g.depthNear>0&&(ne=g.depthNear),g.depthFar>0&&(pe=g.depthFar)),V.near=P.near=C.near=ne,V.far=P.far=C.far=pe,(N!==V.near||k!==V.far)&&(s.updateRenderState({depthNear:V.near,depthFar:V.far}),N=V.near,k=V.far),V.layers.mask=K.layers.mask|6,C.layers.mask=V.layers.mask&-5,P.layers.mask=V.layers.mask&-3;let De=K.parent,me=V.cameras;fe(V,De);for(let Fe=0;Fe0&&(g.alphaTest.value=p.alphaTest);let T=e.get(p),w=T.envMap,M=T.envMapRotation;w&&(g.envMap.value=w,g.envMapRotation.value.setFromMatrix4(Y_.makeRotationFromEuler(M)).transpose(),w.isCubeTexture&&w.isRenderTargetTexture===!1&&g.envMapRotation.value.premultiply(Qu),g.reflectivity.value=p.reflectivity,g.ior.value=p.ior,g.refractionRatio.value=p.refractionRatio),p.lightMap&&(g.lightMap.value=p.lightMap,g.lightMapIntensity.value=p.lightMapIntensity,t(p.lightMap,g.lightMapTransform)),p.aoMap&&(g.aoMap.value=p.aoMap,g.aoMapIntensity.value=p.aoMapIntensity,t(p.aoMap,g.aoMapTransform))}function a(g,p){g.diffuse.value.copy(p.color),g.opacity.value=p.opacity,p.map&&(g.map.value=p.map,t(p.map,g.mapTransform))}function o(g,p){g.dashSize.value=p.dashSize,g.totalSize.value=p.dashSize+p.gapSize,g.scale.value=p.scale}function l(g,p,T,w){g.diffuse.value.copy(p.color),g.opacity.value=p.opacity,g.size.value=p.size*T,g.scale.value=w*.5,p.map&&(g.map.value=p.map,t(p.map,g.uvTransform)),p.alphaMap&&(g.alphaMap.value=p.alphaMap,t(p.alphaMap,g.alphaMapTransform)),p.alphaTest>0&&(g.alphaTest.value=p.alphaTest)}function c(g,p){g.diffuse.value.copy(p.color),g.opacity.value=p.opacity,g.rotation.value=p.rotation,p.map&&(g.map.value=p.map,t(p.map,g.mapTransform)),p.alphaMap&&(g.alphaMap.value=p.alphaMap,t(p.alphaMap,g.alphaMapTransform)),p.alphaTest>0&&(g.alphaTest.value=p.alphaTest)}function h(g,p){g.specular.value.copy(p.specular),g.shininess.value=Math.max(p.shininess,1e-4)}function u(g,p){p.gradientMap&&(g.gradientMap.value=p.gradientMap)}function d(g,p){g.metalness.value=p.metalness,p.metalnessMap&&(g.metalnessMap.value=p.metalnessMap,t(p.metalnessMap,g.metalnessMapTransform)),g.roughness.value=p.roughness,p.roughnessMap&&(g.roughnessMap.value=p.roughnessMap,t(p.roughnessMap,g.roughnessMapTransform)),p.envMap&&(g.envMapIntensity.value=p.envMapIntensity)}function f(g,p,T){g.ior.value=p.ior,p.sheen>0&&(g.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),g.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(g.sheenColorMap.value=p.sheenColorMap,t(p.sheenColorMap,g.sheenColorMapTransform)),p.sheenRoughnessMap&&(g.sheenRoughnessMap.value=p.sheenRoughnessMap,t(p.sheenRoughnessMap,g.sheenRoughnessMapTransform))),p.clearcoat>0&&(g.clearcoat.value=p.clearcoat,g.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(g.clearcoatMap.value=p.clearcoatMap,t(p.clearcoatMap,g.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(g.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,t(p.clearcoatRoughnessMap,g.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(g.clearcoatNormalMap.value=p.clearcoatNormalMap,t(p.clearcoatNormalMap,g.clearcoatNormalMapTransform),g.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===It&&g.clearcoatNormalScale.value.negate())),p.dispersion>0&&(g.dispersion.value=p.dispersion),p.retroreflectivity>0&&(g.retroreflectivity.value=p.retroreflectivity),p.iridescence>0&&(g.iridescence.value=p.iridescence,g.iridescenceIOR.value=p.iridescenceIOR,g.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],g.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(g.iridescenceMap.value=p.iridescenceMap,t(p.iridescenceMap,g.iridescenceMapTransform)),p.iridescenceThicknessMap&&(g.iridescenceThicknessMap.value=p.iridescenceThicknessMap,t(p.iridescenceThicknessMap,g.iridescenceThicknessMapTransform))),p.transmission>0&&(g.transmission.value=p.transmission,g.transmissionSamplerMap.value=T.texture,g.transmissionSamplerSize.value.set(T.width,T.height),p.transmissionMap&&(g.transmissionMap.value=p.transmissionMap,t(p.transmissionMap,g.transmissionMapTransform)),g.thickness.value=p.thickness,p.thicknessMap&&(g.thicknessMap.value=p.thicknessMap,t(p.thicknessMap,g.thicknessMapTransform)),g.attenuationDistance.value=p.attenuationDistance,g.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(g.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(g.anisotropyMap.value=p.anisotropyMap,t(p.anisotropyMap,g.anisotropyMapTransform))),g.specularIntensity.value=p.specularIntensity,g.specularColor.value.copy(p.specularColor),p.specularColorMap&&(g.specularColorMap.value=p.specularColorMap,t(p.specularColorMap,g.specularColorMapTransform)),p.specularIntensityMap&&(g.specularIntensityMap.value=p.specularIntensityMap,t(p.specularIntensityMap,g.specularIntensityMapTransform))}function m(g,p){p.matcap&&(g.matcap.value=p.matcap)}function v(g,p){let T=e.get(p).light;g.referencePosition.value.setFromMatrixPosition(T.matrixWorld),g.nearDistance.value=T.shadow.camera.near,g.farDistance.value=T.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:s}}function J_(i,e,t,n){let s={},r={},a=[],o=i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS);function l(M,b){let S=b.program;n.uniformBlockBinding(M,S)}function c(M,b){let S=s[M.id];S===void 0&&(g(M),S=h(M),s[M.id]=S,M.addEventListener("dispose",T));let R=b.program;n.updateUBOMapping(M,R);let x=e.render.frame;r[M.id]!==x&&(d(M),r[M.id]=x)}function h(M){let b=u();M.__bindingPointIndex=b;let S=i.createBuffer(),R=M.__size,x=M.usage;return i.bindBuffer(i.UNIFORM_BUFFER,S),i.bufferData(i.UNIFORM_BUFFER,R,x),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,b,S),S}function u(){for(let M=0;M0&&(S+=R-x),M.__size=S,M.__cache={},this}function p(M){let b={boundary:0,storage:0};return typeof M=="number"||typeof M=="boolean"?(b.boundary=4,b.storage=4):M.isVector2?(b.boundary=8,b.storage=8):M.isVector3||M.isColor?(b.boundary=16,b.storage=12):M.isVector4?(b.boundary=16,b.storage=16):M.isMatrix3?(b.boundary=48,b.storage=48):M.isMatrix4?(b.boundary=64,b.storage=64):M.isTexture?Ge("WebGLRenderer: Texture samplers can not be part of an uniforms group."):ArrayBuffer.isView(M)?(b.boundary=16,b.storage=M.byteLength):Ge("WebGLRenderer: Unsupported uniform value type.",M),b}function T(M){let b=M.target;b.removeEventListener("dispose",T);let S=a.indexOf(b.__bindingPointIndex);a.splice(S,1),i.deleteBuffer(s[b.id]),delete s[b.id],delete r[b.id]}function w(){for(let M in s)i.deleteBuffer(s[M]);a=[],s={},r={}}return{bind:l,update:c,dispose:w}}var $_=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]),kn=null;function K_(){return kn===null&&(kn=new ms($_,16,16,yi,wn),kn.name="DFG_LUT",kn.minFilter=zt,kn.magFilter=zt,kn.wrapS=In,kn.wrapT=In,kn.generateMipmaps=!1,kn.needsUpdate=!0),kn}var Ko=class{constructor(e={}){let{canvas:t=du(),context:n=null,depth:s=!0,stencil:r=!1,alpha:a=!1,antialias:o=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:u=!1,reversedDepthBuffer:d=!1,outputBufferType:f=tn}=e;this.isWebGLRenderer=!0;let m;if(n!==null){if(typeof WebGLRenderingContext<"u"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");m=n.getContextAttributes().alpha}else m=a;let v=f,g=new Set([po,fo,uo]),p=new Set([tn,En,Rs,Cs,co,ho]),T=new Uint32Array(4),w=new Int32Array(4),M=new I,b=null,S=null,R=[],x=[],E=null;this.domElement=t,this.debug={checkShaderErrors:!0,diagnostics:{keywords:!1},onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=bn,this.toneMappingExposure=1,this.transmissionResolutionScale=1;let C=this,P=!1,B=null,V=null,N=null,k=null;this._outputColorSpace=St;let $=0,q=0,Y=null,F=-1,z=null,Z=new Mt,fe=new Mt,he=null,qe=new Xe(0),Ve=0,Ye=t.width,K=t.height,ne=1,pe=null,De=null,me=new Mt(0,0,Ye,K),Fe=new Mt(0,0,Ye,K),oe=!1,H=new gs,re=!1,le=!1,j=new gt,ae=new I,we=new Mt,Ae={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},se=!1;function He(){return Y===null?ne:1}let L=n;function st(y,D){return t.getContext(y,D)}let Qe,A,_,O,X,Q,de,ge,ee,ie,_e,Ie,Me,xe,Oe,ke,Ze,U,ve,te,ye,Se,ce;try{let y={alpha:!0,depth:s,stencil:r,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:u};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${"186"}`),t.addEventListener("webglcontextlost",lt,!1),t.addEventListener("webglcontextrestored",Re,!1),t.addEventListener("webglcontextcreationerror",at,!1),L===null){let D="webgl2";if(L=st(D,y),L===null)throw st(D)?new Error("THREE.WebGLRenderer: Error creating WebGL context with your selected attributes."):new Error("THREE.WebGLRenderer: Error creating WebGL context.")}Be()}catch(y){throw t.removeEventListener("webglcontextlost",lt,!1),t.removeEventListener("webglcontextrestored",Re,!1),t.removeEventListener("webglcontextcreationerror",at,!1),We("WebGLRenderer: "+y.message),y}function Be(){Qe=new s0(L),Qe.init(),ye=new W_(L,Qe),A=new Zg(L,Qe,e,ye),_=new H_(L,Qe),A.reversedDepthBuffer&&d&&_.buffers.depth.setReversed(!0),V=L.createFramebuffer(),N=L.createFramebuffer(),k=L.createFramebuffer(),O=new o0(L),X=new R_,Q=new G_(L,Qe,_,X,A,ye,O),de=new i0(C),ge=new cp(L),Se=new qg(L,ge),ee=new r0(L,ge,O,Se),ie=new c0(L,ee,ge,Se,O),U=new l0(L,A,Q),Oe=new Jg(X),_e=new A_(C,de,Qe,A,Se,Oe),Ie=new Z_(C,X),Me=new P_,xe=new F_(Qe),Ze=new Xg(C,de,_,ie,m,l),ke=new V_(C,ie,A),ce=new J_(L,O,A,_),ve=new Yg(L,Qe,O),te=new a0(L,Qe,O),O.programs=_e.programs,C.capabilities=A,C.extensions=Qe,C.properties=X,C.renderLists=Me,C.shadowMap=ke,C.state=_,C.info=O}v!==tn&&(E=new u0(v,t.width,t.height,o,s,r));let Le=new Oc(C,L);this.xr=Le,this.getContext=function(){return L},this.getContextAttributes=function(){return L.getContextAttributes()},this.forceContextLoss=function(){let y=Qe.get("WEBGL_lose_context");y&&y.loseContext()},this.forceContextRestore=function(){let y=Qe.get("WEBGL_lose_context");y&&y.restoreContext()},this.getPixelRatio=function(){return ne},this.setPixelRatio=function(y){y!==void 0&&(ne=y,this.setSize(Ye,K,!1))},this.getSize=function(y){return y.set(Ye,K)},this.setSize=function(y,D,J=!0){if(Le.isPresenting){Ge("WebGLRenderer: Can't change size while VR device is presenting.");return}Ye=y,K=D,t.width=Math.floor(y*ne),t.height=Math.floor(D*ne),J===!0&&(t.style.width=y+"px",t.style.height=D+"px"),E!==null&&E.setSize(t.width,t.height),this.setViewport(0,0,y,D)},this.getDrawingBufferSize=function(y){return y.set(Ye*ne,K*ne).floor()},this.setDrawingBufferSize=function(y,D,J){Ye=y,K=D,ne=J,t.width=Math.floor(y*J),t.height=Math.floor(D*J),this.setViewport(0,0,y,D)},this.setEffects=function(y){if(v===tn){We("WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(y){for(let D=0;D{function Te(){if(G.forEach(function(Pe){let Ne=X.get(Pe).currentProgram;(Ne===void 0||Ne.isReady())&&G.delete(Pe)}),G.size===0){W(y);return}setTimeout(Te,10)}Qe.get("KHR_parallel_shader_compile")!==null?Te():setTimeout(Te,10)})};let ol=null;function Pd(y){ol&&ol(y)}function Yc(){Si.stop()}function Zc(){Si.start()}let Si=new qu;Si.setAnimationLoop(Pd),typeof self<"u"&&Si.setContext(self),this.setAnimationLoop=function(y){ol=y,Le.setAnimationLoop(y),y===null?Si.stop():Si.start()},Le.addEventListener("sessionstart",Yc),Le.addEventListener("sessionend",Zc),this.render=function(y,D){if(D!==void 0&&D.isCamera!==!0){We("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(P===!0)return;B!==null&&B.renderStart(y,D);let J=Le.enabled===!0&&Le.isPresenting===!0,G=E!==null&&(Y===null||J)&&E.begin(C,Y);if(y.matrixWorldAutoUpdate===!0&&y.updateMatrixWorld(),D.parent===null&&D.matrixWorldAutoUpdate===!0&&D.updateMatrixWorld(),Le.enabled===!0&&Le.isPresenting===!0&&(E===null||E.isCompositing()===!1)&&(Le.cameraAutoUpdate===!0&&Le.updateCamera(D),D=Le.getCamera()),y.isScene===!0&&y.onBeforeRender(C,y,D,Y),S=xe.get(y,x.length),S.init(D),S.state.textureUnits=Q.getTextureUnits(),x.push(S),j.multiplyMatrices(D.projectionMatrix,D.matrixWorldInverse),H.setFromProjectionMatrix(j,Mn,D.reversedDepth),le=this.localClippingEnabled,re=Oe.init(this.clippingPlanes,le),b=Me.get(y,R.length),b.init(),R.push(b),Le.enabled===!0&&Le.isPresenting===!0){let Pe=C.xr.getDepthSensingMesh();Pe!==null&&ll(Pe,D,-1/0,C.sortObjects)}ll(y,D,0,C.sortObjects),b.finish(),B!==null&&B.updateLights(S.state.lightsArray),C.sortObjects===!0&&b.sort(pe,De),se=Le.enabled===!1||Le.isPresenting===!1||Le.hasDepthSensing()===!1,se&&Ze.addToRenderList(b,y),this.info.render.frame++,this.info.autoReset===!0&&this.info.reset(),re===!0&&Oe.beginShadows();let W=S.state.shadowsArray;if(ke.render(W,y,D),re===!0&&Oe.endShadows(),(G&&E.hasRenderPass())===!1){let Pe=b.opaque,Ee=b.transmissive;if(S.setupLights(),D.isArrayCamera){let Ne=D.cameras;if(Ee.length>0)for(let ze=0,je=Ne.length;ze0&&$c(Pe,Ee,y,D),se&&Ze.render(y),Jc(b,y,D)}Y!==null&&q===0&&(Q.updateMultisampleRenderTarget(Y),Q.updateRenderTargetMipmap(Y)),G&&E.end(C),y.isScene===!0&&y.onAfterRender(C,y,D),Se.resetDefaultState(),F=-1,z=null,x.pop(),x.length>0?(S=x[x.length-1],Q.setTextureUnits(S.state.textureUnits),re===!0&&Oe.setGlobalState(C.clippingPlanes,S.state.camera)):S=null,R.pop(),R.length>0?b=R[R.length-1]:b=null,B!==null&&B.renderEnd()};function ll(y,D,J,G){if(y.visible===!1)return;if(y.layers.test(D.layers)){if(y.isGroup)J=y.renderOrder;else if(y.isLOD)y.autoUpdate===!0&&y.update(D);else if(y.isLightProbeGrid)S.pushLightProbeGrid(y);else if(y.isLight)S.pushLight(y),y.castShadow&&S.pushShadow(y);else if(y.isSprite){if(!y.frustumCulled||y.intersectsFrustum(H)){G&&we.setFromMatrixPosition(y.matrixWorld).applyMatrix4(j);let Pe=ie.update(y),Ee=y.material;Ee.visible&&b.push(y,Pe,Ee,J,we.z,null,D)}}else if((y.isMesh||y.isLine||y.isPoints)&&(!y.frustumCulled||y.intersectsFrustum(H))){let Pe=ie.update(y),Ee=y.material;if(G&&(y.boundingSphere!==void 0?(y.boundingSphere===null&&y.computeBoundingSphere(),we.copy(y.boundingSphere.center)):(Pe.boundingSphere===null&&Pe.computeBoundingSphere(),we.copy(Pe.boundingSphere.center)),we.applyMatrix4(y.matrixWorld).applyMatrix4(j)),Array.isArray(Ee)){let Ne=Pe.groups;for(let ze=0,je=Ne.length;ze0&&Xr(W,D,J),Te.length>0&&Xr(Te,D,J),Pe.length>0&&Xr(Pe,D,J),_.buffers.depth.setTest(!0),_.buffers.depth.setMask(!0),_.buffers.color.setMask(!0),_.setPolygonOffset(!1)}function $c(y,D,J,G){if((J.isScene===!0?J.overrideMaterial:null)!==null)return;if(S.state.transmissionRenderTarget[G.id]===void 0){let Ue=Qe.has("EXT_color_buffer_half_float")||Qe.has("EXT_color_buffer_float");S.state.transmissionRenderTarget[G.id]=new en(1,1,{generateMipmaps:!0,type:Ue?wn:tn,minFilter:zn,samples:Math.max(4,A.samples),stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,storeMultisampledDepthBuffer:!1,storeMultisampledStencilBuffer:!1,colorSpace:rt.workingColorSpace})}let Te=S.state.transmissionRenderTarget[G.id],Pe=G.viewport||Z;Te.setSize(Pe.z*C.transmissionResolutionScale,Pe.w*C.transmissionResolutionScale);let Ee=C.getRenderTarget(),Ne=C.getActiveCubeFace(),ze=C.getActiveMipmapLevel();C.setRenderTarget(Te),C.getClearColor(qe),Ve=C.getClearAlpha(),Ve<1&&C.setClearColor(16777215,.5),C.clear(),se&&Ze.render(J);let je=C.toneMapping;C.toneMapping=bn;let it=G.viewport;if(G.viewport!==void 0&&(G.viewport=void 0),S.setupLightsView(G),re===!0&&Oe.setGlobalState(C.clippingPlanes,G),Xr(y,J,G),Q.updateMultisampleRenderTarget(Te),Q.updateRenderTargetMipmap(Te),Qe.has("WEBGL_multisampled_render_to_texture")===!1){let Ue=!1;for(let ct=0,Rt=D.length;ct0,G.currentProgram=it,G.uniformsList=null,it}function Qc(y){if(y.uniformsList===null){let D=y.currentProgram.getUniforms();y.uniformsList=Ls.seqWithValue(D.seq,y.uniforms)}return y.uniformsList}function jc(y,D){let J=X.get(y);J.outputColorSpace=D.outputColorSpace,J.batching=D.batching,J.batchingColor=D.batchingColor,J.instancing=D.instancing,J.instancingColor=D.instancingColor,J.instancingMorph=D.instancingMorph,J.skinning=D.skinning,J.morphTargets=D.morphTargets,J.morphNormals=D.morphNormals,J.morphColors=D.morphColors,J.morphTargetsCount=D.morphTargetsCount,J.numClippingPlanes=D.numClippingPlanes,J.numIntersection=D.numClipIntersection,J.vertexAlphas=D.vertexAlphas,J.vertexTangents=D.vertexTangents,J.toneMapping=D.toneMapping}function Id(y,D){if(y.length===0)return null;if(y.length===1)return y[0].texture!==null?y[0]:null;M.setFromMatrixPosition(D.matrixWorld);for(let J=0,G=y.length;J0),Ue=!!J.morphAttributes.position,ct=!!J.morphAttributes.normal,Rt=!!J.morphAttributes.color,xt=bn;G.toneMapped&&(Y===null||Y.isXRRenderTarget===!0)&&(xt=C.toneMapping);let ft=J.morphAttributes.position||J.morphAttributes.normal||J.morphAttributes.color,Ht=ft!==void 0?ft.length:0,Ce=X.get(G),Kt=S.state.lights;if(re===!0&&(le===!0||y!==z)){let mt=y===z&&G.id===F;Oe.setState(G,y,mt)}let ot=!1;G.version===Ce.__version?(Ce.needsLights&&Ce.lightsStateVersion!==Kt.state.version||Ce.outputColorSpace!==Ee||W.isBatchedMesh&&Ce.batching===!1||!W.isBatchedMesh&&Ce.batching===!0||W.isBatchedMesh&&Ce.batchingColor===!0&&W._colorsTexture===null||W.isBatchedMesh&&Ce.batchingColor===!1&&W._colorsTexture!==null||W.isInstancedMesh&&Ce.instancing===!1||!W.isInstancedMesh&&Ce.instancing===!0||W.isSkinnedMesh&&Ce.skinning===!1||!W.isSkinnedMesh&&Ce.skinning===!0||W.isInstancedMesh&&Ce.instancingColor===!0&&W.instanceColor===null||W.isInstancedMesh&&Ce.instancingColor===!1&&W.instanceColor!==null||W.isInstancedMesh&&Ce.instancingMorph===!0&&W.morphTexture===null||W.isInstancedMesh&&Ce.instancingMorph===!1&&W.morphTexture!==null||Ce.envMap!==ze||G.fog===!0&&Ce.fog!==Te||Ce.numClippingPlanes!==void 0&&(Ce.numClippingPlanes!==Oe.numPlanes||Ce.numIntersection!==Oe.numIntersection)||Ce.vertexAlphas!==je||Ce.vertexTangents!==it||Ce.morphTargets!==Ue||Ce.morphNormals!==ct||Ce.morphColors!==Rt||Ce.toneMapping!==xt||Ce.morphTargetsCount!==Ht||!!Ce.lightProbeGrid!=S.state.lightProbeGridArray.length>0)&&(ot=!0):(ot=!0,Ce.__version=G.version);let hn=Ce.currentProgram;ot===!0&&(hn=qr(G,D,W),B&&G.isNodeMaterial&&B.onUpdateProgram(G,hn,Ce));let Cn=!1,ii=!1,Bi=!1,dt=hn.getUniforms(),wt=Ce.uniforms;if(_.useProgram(hn.program)&&(Cn=!0,ii=!0,Bi=!0),G.id!==F&&(F=G.id,ii=!0),Ce.needsLights){let mt=Id(S.state.lightProbeGridArray,W);Ce.lightProbeGrid!==mt&&(Ce.lightProbeGrid=mt,ii=!0)}if(Cn||z!==y){_.buffers.depth.getReversed()&&y.reversedDepth!==!0&&(y._reversedDepth=!0,y.updateProjectionMatrix()),dt.setValue(L,"projectionMatrix",y.projectionMatrix),dt.setValue(L,"viewMatrix",y.matrixWorldInverse);let ri=dt.map.cameraPosition;ri!==void 0&&ri.setValue(L,ae.setFromMatrixPosition(y.matrixWorld)),A.logarithmicDepthBuffer&&dt.setValue(L,"logDepthBufFC",2/(Math.log(y.far+1)/Math.LN2)),(G.isMeshPhongMaterial||G.isMeshToonMaterial||G.isMeshLambertMaterial||G.isMeshBasicMaterial||G.isMeshStandardMaterial||G.isShaderMaterial)&&dt.setValue(L,"isOrthographic",y.isOrthographicCamera===!0),z!==y&&(z=y,ii=!0,Bi=!0)}if(Ce.needsLights&&(Kt.state.sunShadowMap.length>0&&dt.setValue(L,"sunShadowMap",Kt.state.sunShadowMap,Q),Kt.state.directionalShadowMap.length>0&&dt.setValue(L,"directionalShadowMap",Kt.state.directionalShadowMap,Q),Kt.state.spotShadowMap.length>0&&dt.setValue(L,"spotShadowMap",Kt.state.spotShadowMap,Q),Kt.state.pointShadowMap.length>0&&dt.setValue(L,"pointShadowMap",Kt.state.pointShadowMap,Q)),W.isSkinnedMesh){dt.setOptional(L,W,"bindMatrix"),dt.setOptional(L,W,"bindMatrixInverse");let mt=W.skeleton;mt&&(mt.boneTexture===null&&mt.computeBoneTexture(),dt.setValue(L,"boneTexture",mt.boneTexture,Q))}W.isBatchedMesh&&(dt.setOptional(L,W,"batchingTexture"),dt.setValue(L,"batchingTexture",W._matricesTexture,Q),dt.setOptional(L,W,"batchingIdTexture"),dt.setValue(L,"batchingIdTexture",W._indirectTexture,Q),dt.setOptional(L,W,"batchingColorTexture"),W._colorsTexture!==null&&dt.setValue(L,"batchingColorTexture",W._colorsTexture,Q));let si=J.morphAttributes;if((si.position!==void 0||si.normal!==void 0||si.color!==void 0)&&U.update(W,J,hn),(ii||Ce.receiveShadow!==W.receiveShadow)&&(Ce.receiveShadow=W.receiveShadow,dt.setValue(L,"receiveShadow",W.receiveShadow)),(G.isMeshStandardMaterial||G.isMeshLambertMaterial||G.isMeshPhongMaterial)&&G.envMap===null&&D.environment!==null&&(wt.envMapIntensity.value=D.environmentIntensity),wt.dfgLUT!==void 0&&(wt.dfgLUT.value=K_()),ii){if(dt.setValue(L,"toneMappingExposure",C.toneMappingExposure),Ce.needsLights&&Dd(wt,Bi),Te&&G.fog===!0&&Ie.refreshFogUniforms(wt,Te),Ie.refreshMaterialUniforms(wt,G,ne,K,S.state.transmissionRenderTarget[y.id]),Ce.needsLights&&Ce.lightProbeGrid){let mt=Ce.lightProbeGrid;wt.probesSH.value=mt.texture,wt.probesMin.value.copy(mt.boundingBox.min),wt.probesMax.value.copy(mt.boundingBox.max),wt.probesResolution.value.copy(mt.resolution)}Ls.upload(L,Qc(Ce),wt,Q)}if(G.isShaderMaterial&&G.uniformsNeedUpdate===!0&&(Ls.upload(L,Qc(Ce),wt,Q),G.uniformsNeedUpdate=!1),G.isSpriteMaterial&&dt.setValue(L,"center",W.center),dt.setValue(L,"modelViewMatrix",W.modelViewMatrix),dt.setValue(L,"normalMatrix",W.normalMatrix),dt.setValue(L,"modelMatrix",W.matrixWorld),G.uniformsGroups!==void 0){let mt=G.uniformsGroups;for(let ri=0,zi=mt.length;ri0&&Q.useMultisampledRTT(y)===!1?G=X.get(y).__webglMultisampledFramebuffer:Array.isArray(ze)?G=ze[J]:G=ze,Z.copy(y.viewport),fe.copy(y.scissor),he=y.scissorTest}else Z.copy(me).multiplyScalar(ne).floor(),fe.copy(Fe).multiplyScalar(ne).floor(),he=oe;if(J!==0&&(G=V),_.bindFramebuffer(L.FRAMEBUFFER,G)&&_.drawBuffers(y,G),_.viewport(Z),_.scissor(fe),_.setScissorTest(he),W){let Ee=X.get(y.texture);L.framebufferTexture2D(L.FRAMEBUFFER,L.COLOR_ATTACHMENT0,L.TEXTURE_CUBE_MAP_POSITIVE_X+D,Ee.__webglTexture,J)}else if(Te){let Ee=D;for(let Ne=0;Ne1&&L.readBuffer(L.COLOR_ATTACHMENT0+Ee);let Ue=eh(ze);if(Ue.__formatReadable===!1){We("WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(Ue.__typeReadable===!1){We("WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}D>=0&&D<=y.width-G&&J>=0&&J<=y.height-W&&L.readPixels(D,J,G,W,ye.convert(je),ye.convert(it),Te)}finally{let ze=Y!==null?X.get(Y).__webglFramebuffer:null;_.bindFramebuffer(L.FRAMEBUFFER,ze)}}},this.readRenderTargetPixelsAsync=async function(y,D,J,G,W,Te,Pe,Ee=0){if(!(y&&y.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Ne=X.get(y).__webglFramebuffer;if(y.isWebGLCubeRenderTarget&&Pe!==void 0&&(Ne=Ne[Pe]),Ne)if(D>=0&&D<=y.width-G&&J>=0&&J<=y.height-W){_.bindFramebuffer(L.FRAMEBUFFER,Ne);let ze=y.textures[Ee],je=ze.format,it=ze.type;y.textures.length>1&&L.readBuffer(L.COLOR_ATTACHMENT0+Ee);let Ue=eh(ze);if(Ue.__formatReadable===!1)throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(Ue.__typeReadable===!1)throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");let ct=L.createBuffer();L.bindBuffer(L.PIXEL_PACK_BUFFER,ct),L.bufferData(L.PIXEL_PACK_BUFFER,Te.byteLength,L.STREAM_READ),L.readPixels(D,J,G,W,ye.convert(je),ye.convert(it),0),L.bindBuffer(L.PIXEL_PACK_BUFFER,null);let Rt=Y!==null?X.get(Y).__webglFramebuffer:null;_.bindFramebuffer(L.FRAMEBUFFER,Rt);let xt=L.fenceSync(L.SYNC_GPU_COMMANDS_COMPLETE,0);return L.flush(),await pu(L,xt,4),L.bindBuffer(L.PIXEL_PACK_BUFFER,ct),L.getBufferSubData(L.PIXEL_PACK_BUFFER,0,Te),L.bindBuffer(L.PIXEL_PACK_BUFFER,null),L.deleteBuffer(ct),L.deleteSync(xt),Te}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(y,D=null,J=0){let G=Math.pow(2,-J),W=Math.floor(y.image.width*G),Te=Math.floor(y.image.height*G),Pe=D!==null?D.x:0,Ee=D!==null?D.y:0;Q.setTexture2D(y,0),L.copyTexSubImage2D(L.TEXTURE_2D,J,0,0,Pe,Ee,W,Te),_.unbindTexture()},this.copyTextureToTexture=function(y,D,J=null,G=null,W=0,Te=0){let Pe,Ee,Ne,ze,je,it,Ue,ct,Rt,xt=y.isCompressedTexture?y.mipmaps[Te]:y.image;if(J!==null)Pe=J.max.x-J.min.x,Ee=J.max.y-J.min.y,Ne=J.isBox3?J.max.z-J.min.z:1,ze=J.min.x,je=J.min.y,it=J.isBox3?J.min.z:0;else{let wt=Math.pow(2,-W);Pe=Math.floor(xt.width*wt),Ee=Math.floor(xt.height*wt),y.isDataArrayTexture?Ne=xt.depth:y.isData3DTexture?Ne=Math.floor(xt.depth*wt):Ne=1,ze=0,je=0,it=0}G!==null?(Ue=G.x,ct=G.y,Rt=G.z):(Ue=0,ct=0,Rt=0);let ft=ye.convert(D.format),Ht=ye.convert(D.type),Ce;D.isData3DTexture?(Q.setTexture3D(D,0),Ce=L.TEXTURE_3D):D.isDataArrayTexture||D.isCompressedArrayTexture?(Q.setTexture2DArray(D,0),Ce=L.TEXTURE_2D_ARRAY):(Q.setTexture2D(D,0),Ce=L.TEXTURE_2D),_.activeTexture(L.TEXTURE0),_.pixelStorei(L.UNPACK_FLIP_Y_WEBGL,D.flipY),_.pixelStorei(L.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),_.pixelStorei(L.UNPACK_ALIGNMENT,D.unpackAlignment);let Kt=_.getParameter(L.UNPACK_ROW_LENGTH),ot=_.getParameter(L.UNPACK_IMAGE_HEIGHT),hn=_.getParameter(L.UNPACK_SKIP_PIXELS),Cn=_.getParameter(L.UNPACK_SKIP_ROWS),ii=_.getParameter(L.UNPACK_SKIP_IMAGES);_.pixelStorei(L.UNPACK_ROW_LENGTH,xt.width),_.pixelStorei(L.UNPACK_IMAGE_HEIGHT,xt.height),_.pixelStorei(L.UNPACK_SKIP_PIXELS,ze),_.pixelStorei(L.UNPACK_SKIP_ROWS,je),_.pixelStorei(L.UNPACK_SKIP_IMAGES,it);let Bi=y.isDataArrayTexture||y.isData3DTexture,dt=D.isDataArrayTexture||D.isData3DTexture;if(y.isDepthTexture){let wt=X.get(y),si=X.get(D),mt=X.get(wt.__renderTarget),ri=X.get(si.__renderTarget);_.bindFramebuffer(L.READ_FRAMEBUFFER,mt.__webglFramebuffer),_.bindFramebuffer(L.DRAW_FRAMEBUFFER,ri.__webglFramebuffer);for(let zi=0;zi{n.beginPath(),n.arc(52+a*36,46,11,0,Math.PI*2),n.fillStyle="#d4d4d8",n.fill()}),Vt(n,s/2-220,22,440,48,24),n.fillStyle="#ffffff",n.fill(),n.font=`400 28px ${mn}`,n.fillStyle="#5a5a5e",n.textAlign="center",n.textBaseline="middle",n.fillText(e.site.url,s/2,47),n.textAlign="left",t){let a=n.createLinearGradient(0,94,s,r);a.addColorStop(0,"#f6efe6"),a.addColorStop(1,"#e9eef4"),n.fillStyle=a,n.fillRect(0,94,s,300),n.font=`600 66px ${mn}`,n.fillStyle=el,n.textBaseline="alphabetic",n.fillText(e.site.title,64,250),n.fillStyle="rgba(0,0,0,0.12)",Vt(n,64,290,420,20,10),n.fill(),Vt(n,64,326,300,20,10),n.fill(),[0,1,2].forEach(c=>{Vt(n,64+c*296,430,270,190,18),n.fillStyle=["#eef1f4","#f3eee8","#eef3ee"][c],n.fill()}),n.font=`500 28px ${mn}`;let o=e.site.live,l=n.measureText(o).width;Vt(n,s-l-112,24,l+74,44,22),n.fillStyle="rgba(42,157,75,0.12)",n.fill(),n.beginPath(),n.arc(s-l-84,46,9,0,Math.PI*2),n.fillStyle=nd,n.fill(),n.fillStyle="#1f7a3a",n.textBaseline="middle",n.fillText(o,s-l-64,47)}else n.fillStyle="#f6f6f7",n.fillRect(0,94,s,r-94),n.fillStyle="rgba(0,0,0,0.06)",Vt(n,64,170,380,44,12),n.fill(),Vt(n,64,240,520,20,10),n.fill(),Vt(n,64,276,360,20,10),n.fill(),n.font=`400 34px ${mn}`,n.fillStyle="#9a9a9e",n.textAlign="center",n.textBaseline="middle",n.fillText(e.site.idle,s/2,r-120),n.textAlign="left";n.restore(),n.textBaseline="alphabetic",i.tex.needsUpdate=!0}function sd(i,e){let{ctx:t,w:n,h:s}=i;t.clearRect(0,0,n,s);let r=190,a=s/2-20,o=t.createRadialGradient(r,a,10,r,a,130);o.addColorStop(0,"rgba(0,0,0,0.6)"),o.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=o,t.fillRect(r-140,a-140,280,280),t.beginPath(),t.arc(r,a-16,26,0,Math.PI*2),t.moveTo(r-14,a),t.lineTo(r+14,a),t.lineTo(r+22,a+52),t.lineTo(r-22,a+52),t.closePath(),t.fillStyle="#050505",t.fill();let l=372;t.font=`500 64px ${Gn}`,t.fillStyle="#f4f4f5",t.fillText(e.prog,l,150),t.font=`400 30px ${Gn}`,t.fillStyle="rgba(255,255,255,0.42)",t.fillText("#!/bin/sh",l+2,226),t.fillText("rsync ./site server:",l+2,272),t.fillText(" uses $DEPLOY_TOKEN",l+2,318),i.tex.needsUpdate=!0}function rd(){let i=document.createElement("canvas");i.width=i.height=256;let e=i.getContext("2d"),t=e.createRadialGradient(128,128,0,128,128,128);t.addColorStop(0,"rgba(255,255,255,0.62)"),t.addColorStop(.3,"rgba(255,255,255,0.36)"),t.addColorStop(.62,"rgba(255,255,255,0.1)"),t.addColorStop(1,"rgba(255,255,255,0)"),e.fillStyle=t,e.fillRect(0,0,256,256);let n=new ei(i);return n.colorSpace=St,n}function zc(i,{minX:e,maxX:t,minY:n,maxY:s,ppu:r,blur:a,color:o,passes:l=1}){let c=document.createElement("canvas");c.width=Math.round((t-e)*r),c.height=Math.round((s-n)*r);let h=c.getContext("2d"),u=c.width+200;h.shadowColor=o,h.shadowBlur=a,h.shadowOffsetX=u,h.fillStyle="#000";let d=v=>(v-e)*r-u,f=v=>(s-v)*r;h.beginPath();for(let v of i){let{shape:g,holes:p}=v.extractPoints(24);[g,...p].forEach(T=>{T.forEach((w,M)=>M?h.lineTo(d(w.x),f(w.y)):h.moveTo(d(w.x),f(w.y))),h.closePath()})}for(let v=0;v0?pi:fi,m=new f({color:i,roughness:o,metalness:0,envMapIntensity:l,transparent:!0,premultipliedAlpha:!0,depthWrite:!1,side:u});c>0&&Object.assign(m,{clearcoat:c,clearcoatRoughness:h});let v={uBase:{value:s},uEdge:{value:r},uPow:{value:a},uEdgeColor:{value:new Xe(e)},uEdgeMix:{value:t},uSpecEdge:{value:n}};return m.userData.u=v,m.onBeforeCompile=g=>{Object.assign(g.uniforms,v),g.fragmentShader=g.fragmentShader.replace("#include ",`#include +uniform float uBase, uEdge, uPow, uEdgeMix, uSpecEdge; +uniform vec3 uEdgeColor;`).replace("#include ",`float gNV = clamp(abs(dot(normal, normalize(vViewPosition))), 0.0, 1.0); +float gF = pow(1.0 - gNV, uPow); +// what the surface reflects is light the background no longer sends through +float gR = 0.04 + 0.96 * pow(1.0 - gNV, 5.0); +float gA = clamp(uBase + uEdge * gF, 0.0, 1.0); +vec3 gBody = mix(totalDiffuse, uEdgeColor, uEdgeMix); +// thick glass seen edge-on shows its own dark body more than the room +vec3 gSpec = max(outgoingLight - totalDiffuse, vec3(0.0)) * (1.0 - uSpecEdge * gF); +gl_FragColor = vec4(gBody * gA + gSpec, clamp(gA + gR * (1.0 - gA) * (1.0 - uSpecEdge * gF), 0.0, 1.0));`).replace("#include ","")},m.customProgramCacheKey=()=>`akhw-${d}`,m}function Fi(i){return new pt({transparent:!1,blending:io,blendSrc:wr,blendDst:As,blendSrcAlpha:so,blendDstAlpha:As,depthWrite:!1,toneMapped:!1,...i})}function ld(){let i=new pt({color:16777215,toneMapped:!1}),e={uCenter:{value:new I},uRad:{value:new ue(5,11)},uWhite:{value:0},uAsh:{value:new Xe("#7a5643")},uGrain:{value:new Xe("#4a3124")},uGain:{value:1.12},uSheen:{value:.07},uShade:{value:.86},uSun:{value:.5},uWinO:{value:new ue(-1.2,-1)},uWinS:{value:new ue(3.6,2.6)},uWinA:{value:.62},uHasMap:{value:0},uView:{value:new ue(1,1)}};return i.userData.u=e,i.onBeforeCompile=t=>{Object.assign(t.uniforms,e),t.vertexShader=t.vertexShader.replace("#include ",`#include +varying vec3 vWp;`).replace("#include ",`#include +vWp = (modelMatrix * vec4(transformed, 1.0)).xyz;`),t.fragmentShader=t.fragmentShader.replace("#include ",`#include +varying vec3 vWp; +uniform vec3 uCenter, uAsh, uGrain; +uniform vec2 uRad, uWinO, uWinS, uView; +uniform float uWhite, uShade, uSun, uWinA, uHasMap, uGain, uSheen; +float akBand(float x, float h, float s) { return smoothstep(-h - s, -h + s, x) * (1.0 - smoothstep(h - s, h + s, x)); } +float akBars(float x, float pitch, float bar, float s) { float d = abs(fract(x / pitch + 0.5) - 0.5) * pitch; return smoothstep(bar - s, bar + s, d); }`).replace("#include ",`#ifdef USE_MAP + vec4 akT = texture2D(map, vMapUv); + diffuseColor.rgb = mix(mix(uGrain, uAsh, 0.5), akT.rgb * uGain, uHasMap); +#else + diffuseColor.rgb = mix(uGrain, uAsh, 0.82); +#endif + // a tall window to the back left: four soft panes, then a broad falloff + float akC = cos(uWinA), akS = sin(uWinA); + vec2 akQ = mat2(akC, -akS, akS, akC) * (vWp.xz - uWinO); + akQ.x += akQ.y * 0.32; + float akWin = akBand(akQ.x, uWinS.x, 0.45) * akBand(akQ.y, uWinS.y, 0.55); + akWin *= akBars(akQ.x, uWinS.x, 0.1, 0.16) * akBars(akQ.y + uWinS.y, uWinS.y, 0.08, 0.16); + float akFall = 1.0 - smoothstep(-6.0, 9.0, dot(vWp.xz - uWinO, vec2(0.55, 0.83))); + // as an ending closes the window light thins out with the room + diffuseColor.rgb *= uShade + (uSun * akWin + 0.06 * akFall) * (1.0 - uWhite); + // hand-rubbed oil: the window reads as a soft satin sheen on the wood + diffuseColor.rgb += vec3(1.0, 0.96, 0.9) * uSheen * akWin * (1.0 - uWhite);`).replace("#include ",`#include +float akD = length((vWp.xz - uCenter.xz) * vec2(0.8, 1.15)); +float akR0 = mix(uRad.x, uRad.x * 0.2, uWhite), akR1 = mix(uRad.y, uRad.x * 0.85, uWhite); +float akFar = smoothstep(akR0, akR1, akD); +// the desk runs off both sides of the window; only the top and bottom of +// the frame soften into the page +float akY = gl_FragCoord.y / uView.y; +float akEdge = 1.0 - smoothstep(0.0, 0.12, akY) * (1.0 - smoothstep(0.86, 1.0, akY)); +float akW = max(akFar, akEdge); +// a whisper of noise keeps the long fade free of bands +akW = clamp(akW + (fract(sin(dot(gl_FragCoord.xy, vec2(12.9898, 78.233))) * 43758.5453) - 0.5) / 255.0, 0.0, 1.0); +gl_FragColor.rgb = mix(gl_FragColor.rgb, vec3(1.0), akW);`)},i.customProgramCacheKey=()=>"akhw-desk",i}function cd(i){let e={value:0},t=i.clone();return t.onBeforeCompile=n=>{n.uniforms.uDis=e,n.vertexShader=n.vertexShader.replace("#include ",`#include +varying vec3 vKeyPos;`).replace("#include ",`#include +vKeyPos = position;`),n.fragmentShader=n.fragmentShader.replace("#include ",`#include +varying vec3 vKeyPos; +uniform float uDis; +float kh(vec3 p){ p = fract(p*0.3183099+.1); p*=17.0; return fract(p.x*p.y*p.z*(p.x+p.y+p.z)); } +float kn(vec3 x){ vec3 i=floor(x); vec3 f=fract(x); f=f*f*(3.0-2.0*f); + return mix(mix(mix(kh(i+vec3(0,0,0)),kh(i+vec3(1,0,0)),f.x),mix(kh(i+vec3(0,1,0)),kh(i+vec3(1,1,0)),f.x),f.y), + mix(mix(kh(i+vec3(0,0,1)),kh(i+vec3(1,0,1)),f.x),mix(kh(i+vec3(0,1,1)),kh(i+vec3(1,1,1)),f.x),f.y),f.z); }`).replace("#include ",`#include +float kN = kn(vKeyPos*26.0)*0.65 + kn(vKeyPos*61.0)*0.35; +float kD = uDis*1.15 - 0.08 + (vKeyPos.x+0.5)*0.25; +if (kN < kD) discard; +float kEdge = 1.0 - smoothstep(kD, kD+0.07, kN);`).replace("#include ",`#include +totalEmissiveRadiance += vec3(1.0, 0.42, 0.2) * kEdge * step(0.001, uDis) * 2.2;`)},t.customProgramCacheKey=()=>"akhw-dissolve",{mat:t,uDis:e}}var Mi="#e9e7e3",Hr="#9b9ba1",hd="#5fd38a",ud="rgba(255,255,255,0.24)",j_="#1c1d20",ex="#2b2c30",il=2048,Vr=1296,kc=2.34,sl=1.48,Oi=1.28,tx=92,dd=66,nx=178,fd=58,Vc=104;function pd(i,e){let t=new jt,n=An(il,Vr),s=new $e(new Et(kc,sl),new pt({map:n.tex,color:16777215,toneMapped:!1}));s.position.z=-.01;let r=new $e(new Et(kc,sl),new pt({color:2829360,toneMapped:!1}));r.rotation.y=Math.PI,r.position.z=-.012,t.add(s,r);let a=new Et(kc,Vc/Vr*sl),o=[];function l(u){if(o[u])return o[u];let d=An(il,Vc),f=new $e(a,Fi({map:d.tex,opacity:1}));return f.position.z=-.008,f.renderOrder=1,f.visible=!1,t.add(f),o[u]={t:d,mesh:f,sig:"",y:-1}}for(let u=0;u<11;u++)l(u);function c(){let{ctx:u}=n;u.setTransform(1,0,0,1,0,0);let d=u.createLinearGradient(0,0,0,Vr);d.addColorStop(0,j_),d.addColorStop(1,"#18191b"),u.fillStyle=d,u.fillRect(0,0,il,Vr),u.setTransform(Oi,0,0,Oi,0,0);let f=il/Oi;u.fillStyle=ex,u.fillRect(0,0,f,96),u.fillStyle="rgba(0,0,0,0.5)",u.fillRect(0,96,f,2),["#ff5f57","#febc2e","#28c840"].forEach((m,v)=>{u.beginPath(),u.arc(56+v*40,48,12,0,Math.PI*2),u.fillStyle=m,u.fill()}),u.font=`400 30px ${mn}`,u.fillStyle=Hr,u.textAlign="center",u.textBaseline="middle",u.fillText(i.term.title,f/2,50),u.textAlign="left",u.textBaseline="alphabetic",u.setTransform(1,0,0,1,0,0),n.tex.needsUpdate=!0,o.forEach(m=>m.sig="")}function h(u,d){let f=nx,m=0;for(let v of u){if(v.kind==="gap"){f+=v.size??20;continue}let g=l(m++),p=`${v.kind}|${v.text??""}|${v.row??""}|${v.chars??""}|${v.caret?1:0}|${v.kind==="wait"?d:""}`;if(p!==g.sig&&(ix(g.t,v,f,d),g.sig=p),g.y!==f){g.y=f;let T=f*Oi-fd+Vc/2;g.mesh.position.y=(.5-T/Vr)*sl}g.mesh.visible=!0,g.mesh.material.opacity=v.alpha??1,f+=v.kind==="me"?dd+10:dd}for(let v=m;vnew I(i,e,t),md=Ot(.16,0,.12);function gd(i,e){let t=i.L,n=e==="wide",s=n?Ot(-3.05,1.32,.9):Ot(-.92,1,1.9),r=n?Ot(0,1.26,-2.3):Ot(.02,1.58,-2.5),a=n?Ot(3.05,.62,.9):Ot(1,.48,2.3),o=n?1:.66,l=n?1:.8,c=n?1:.68,h=a.clone().add((n?Ot(0,1.62,-.32):Ot(.2,1.4,-1.5)).multiplyScalar(c));Object.assign(t,{kind:e,A:s,V:r,P:a,W:h,sA:o,sV:l,sP:c});let u=(p,T,w,M,b,S=0)=>{p.position.set(T.x+md.x*T.y,.003+S,T.z+md.z*T.y),p.scale.set(M*w,b*w,1)};i.agent.position.copy(s),i.agent.scale.setScalar(o),u(i.agentShadow,s,o,3.2,.95),u(i.agentLight,s,o,2.6,.7,.001),i.agentLight.position.x+=.2*o,i.agentLight.position.z+=.35*o,i.vault.position.copy(r),i.vault.scale.setScalar(l),u(i.vaultShadow,r,l,2,1),u(i.vaultTint,r,l,1.9,1.1,.001),i.vaultTint.position.z+=.3*l,i.prog.position.copy(a),i.prog.scale.setScalar(c),u(i.progShadow,a,c,2.2,1.6),i.site.position.copy(h),i.site.scale.setScalar(c),u(i.siteShadow,h,c,1.9,.5),[i.card1,i.card2,i.slip].forEach(p=>p.scale.setScalar(n?1:.72)),t.cardScale=n?1.45:.9,i.chip.scale.setScalar(n?1:.7),i.copy.scale.setScalar(n?1.15:.8),i.dust.material.size=n?.03:.022;let d=(p,T,w=.5)=>p.clone().lerp(T,w),f=(p,T,w,M,b)=>p.clone().add(Ot(w,M,b).multiplyScalar(T)),m=i.keyhole;t.keyholeW=f(a,c,m.x,m.y,m.z),t.catPath=new dn([f(r,l,-.55,.35,.45),d(s,r).add(Ot(-.1,.7*l,n?1.5:.9)),f(s,o,.55,.25,.4)],!1,"centripetal"),t.reqPath=new dn([f(s,o,1.05,.5,.05),d(s,r).add(Ot(.35,1.2*l,.2)),f(r,l,-.6,.62,.4)],!1,"centripetal"),t.keyPath=new dn([f(r,l,.08,0,1),f(r,l,.75,.35,1.45),d(r,a).add(Ot(.1,.55*l,n?1.55:1.2)),t.keyholeW.clone().add(Ot(-.55,.32,.7).multiplyScalar(c)),t.keyholeW.clone().add(Ot(0,.05,.26).multiplyScalar(c)),t.keyholeW.clone().add(Ot(0,0,.015).multiplyScalar(c))],!1,"centripetal"),t.outPath=new dn([f(a,c,-.8,.12,.45),d(a,s).add(Ot(0,.3,n?1.7:1)),f(s,o,1.1,-.25,.3)],!1,"centripetal");for(let[p,T]of[[i.reqThread,t.reqPath],[i.keyThread,t.keyPath],[i.outThread,t.outPath]])p.geometry.dispose(),p.geometry=new vr(T,p.userData.segs,p.userData.radius*(n?1:.8),p.userData.radial,!1),p.geometry.setDrawRange(0,0);i.copyGlow.scale.setScalar(n?1.1:.75),t.slipRest=Ot(r.x-.05*l,.012,r.z+1.25*l),t.slipRestQ=new qt().setFromEuler(new Sn(-Math.PI/2,0,.12)),i.slipShadow.position.set(t.slipRest.x+.02,.004,t.slipRest.z+.03),i.slipShadow.rotation.z=-.12,i.slipShadow.scale.set(.95*(n?1:.72)*1.2,.58*(n?1:.72)*1.2,1);let v=[[s,1.55*o],[r,1.15*l],[a,.95*c],[h,.95*c]],g=new Un;v.forEach(([p,T])=>g.expandByPoint(p.clone().addScalar(T)).expandByPoint(p.clone().subScalar(T))),t.C=g.getCenter(new I),t.R=Math.max(...v.map(([p,T])=>p.distanceTo(t.C)+T))*(n?.74:.86),i.uFloor.uCenter.value.copy(t.C),i.uFloor.uRad.value.set(n?6.4:3.8,n?14:9),i.uFloor.uWinO.value.set(n?s.x+1.5:s.x+.5,n?s.z-1.3:s.z-1.4),i.uFloor.uWinS.value.set(n?1.9:1.15,n?1.35:.95)}function _d(i){let e=new Ci,t=new On(1,1,1),n=(u,d=1)=>{let f=new pt({color:u,side:It,toneMapped:!1});return f.color.multiplyScalar(d),f},s=new $e(t,[n(15526630,.95),n(15526630,1.05),n(16184818,1.1),n(14207929,.75),n(15526630,.9),n(15526630,1)]);s.scale.set(22,9,22),s.position.y=3,e.add(s);let r=new pt({color:16054527,side:kt,toneMapped:!1});r.color.multiplyScalar(4.2);let a=new Et(1,1);for(let u=0;u<2;u++)for(let d=0;d<2;d++){let f=new $e(a,r);f.rotation.y=Math.PI/2,f.scale.set(2.3,2.5,1),f.position.set(-10.9,2.6+d*2.7,-5.2+u*2.5),e.add(f)}let o=new pt({color:2763566,side:kt,toneMapped:!1});[[10.9,2.2,-2,-Math.PI/2,5.5,3.2],[10.9,2.8,4.5,-Math.PI/2,2.4,5],[-3.5,2.4,10.9,Math.PI,6,2.6],[4.5,1.6,-10.9,0,4,2]].forEach(([u,d,f,m,v,g])=>{let p=new $e(a,o);p.position.set(u,d,f),p.rotation.y=m,p.scale.set(v,g,1),e.add(p)});let l=new $e(a,new pt({color:16777215,side:kt,toneMapped:!1}));l.material.color.multiplyScalar(1.6),l.rotation.x=Math.PI/2,l.scale.set(6,4,1),l.position.set(1,7.4,2),e.add(l);let c=new Ds(i),h=c.fromScene(e,.03,.1,60).texture;return c.dispose(),e.traverse(u=>u.geometry&&u.geometry.dispose()),h}var xd=new Xe("#b8281e"),vd="#ffffff",rl=(i,e,t)=>new I(i,e,t),Tt=(i,e)=>new ue(i,e);function Gr(i,e){let t=new vs,n=i.length;for(let s=0;snew Ms(t,i)));return e.translate(0,0,-.025),e.computeVertexNormals(),e}function Md(i,e,t,n={}){let s=new Ci;s.environment=_d(i),s.environmentIntensity=1;let r=new Sr(15988735,15129807,.9),a=new Er(15922943,2.2);a.position.set(-5,7,-4),s.add(r,a);let o=()=>{let Re=new ms(new Uint8Array([255,255,255,0]),1,1);return Re.colorSpace=St,Re.needsUpdate=!0,Re},l=ld(),c=l.userData.u;l.map=o(),l.map.repeat.set(7,7);let h=new $e(new Et(60,60),l);h.rotation.x=-Math.PI/2,s.add(h),n.wood&&new bs().load(n.wood,Re=>{Re.wrapS=Re.wrapT=as,Re.repeat.set(60/5.5,60/4.25),Re.colorSpace=St,Re.anisotropy=8,i.initTexture(Re),l.map=Re,c.uHasMap.value=1,n.onTexture&&n.onTexture()});let u=ad(),d=(Re,at,nt=1)=>{let $t=new sr(new ps({map:u,color:Re,transparent:!0,opacity:nt,depthWrite:!1,toneMapped:!1}));return $t.scale.setScalar(at),$t},f=rd(),m=(Re,at,nt=1,$t=5989493)=>{let qn=new $e(new Et(1,1),Fi({map:f,color:$t,opacity:nt}));return qn.rotation.x=-Math.PI/2,qn.scale.set(Re,at,1),qn.renderOrder=1,qn},v=new jt,g={edgeColor:3822170,edgeMix:1,specEdge:.7,base:.025,edge:.9,power:2.2,roughness:.02,envMapIntensity:1.2,key:"clear"},p=new Us(2.6,1.72,.3,8,.12),T=new $e(p,nl({...g,side:It,key:"clear-back"}));v.add(T);let w=new $e(p,nl({...g,side:ln}));v.add(w);let M=pd(e,t);M.group.scale.setScalar(.9),v.add(M.group);let b=m(3.2,.95,.62),S=new $e(new Et(1,1),Fi({map:u,color:16777215,opacity:.55}));S.rotation.x=-Math.PI/2,S.renderOrder=1;let R=new jt,x=1.5,E=1.86,C=.36,P=Gr([Tt(-x/2,-E/2),Tt(x/2,-E/2),Tt(x/2,E/2-C),Tt(x/2-C,E/2),Tt(-x/2+C,E/2),Tt(-x/2,E/2-C)],.16);P.holes.push(sx(0,E/2-.25,.44,.1));let B=new Ms(P,{depth:.52,bevelEnabled:!0,bevelThickness:.07,bevelSize:.06,bevelSegments:6,curveSegments:24});B.center();let V=nl({color:13094613,edgeColor:15856887,edgeMix:.3,base:.1,edge:.6,power:1.6,roughness:.6,envMapIntensity:.8,clearcoat:1,clearcoatRoughness:.05,side:ln,key:"frost"}),N=new $e(B,V);R.add(N);let k=zc([P],{minX:-1.05,maxX:1.05,minY:-1.2,maxY:1.2,ppu:128,blur:40,color:"#eef1f4"}),$=new $e(new Et(2.1,2.4),Fi({map:k,opacity:.82}));$.position.z=-.16,$.scale.setScalar(.9),$.renderOrder=1,R.add($);let q=rx(),Y=new pi({color:xd,roughness:.32,clearcoat:1,clearcoatRoughness:.06,emissive:xd,emissiveIntensity:0,envMapIntensity:1.1}),F=zc(yd(),{minX:-.78,maxX:.15,minY:-.3,maxY:.3,ppu:256,blur:7,color:"#c22d1f",passes:2}),z=new Et(.93,.6).translate(-.315,0,0),Z=new pt({map:F,transparent:!0,depthWrite:!1,toneMapped:!1,opacity:.92}),fe=[];[.42,0,-.42].forEach((Re,at)=>{let nt=new $e(z,Z);nt.rotation.z=-.32+at*.05,nt.position.set(.3*Math.cos(nt.rotation.z),Re+.3*Math.sin(nt.rotation.z)-.08,.05),R.add(nt),fe.push(nt)});let he=m(2,1,.55),qe=d(13778986,3,0);qe.position.z=-.4,R.add(qe);let Ve=new $e(new Et(1,1),Fi({map:u,color:14173228,opacity:0}));Ve.rotation.x=-Math.PI/2,Ve.renderOrder=1;let Ye=new jt,K=new pi({color:2829360,metalness:.5,roughness:.36,clearcoat:.6,clearcoatRoughness:.22,envMapIntensity:.75}),ne=new $e(new Us(1.5,.92,1,6,.09),K);Ye.add(ne);let pe=An(1024,614);sd(pe,e);let De=new $e(new Et(1.4,.84),new pt({map:pe.tex,transparent:!0,toneMapped:!1}));De.position.z=.501,Ye.add(De);let me=rl(-.44,.03,.5),Fe=new $e(new xr(.1,.118,64),new pt({color:16730674,transparent:!0,opacity:0,toneMapped:!1}));Fe.position.copy(me).add(rl(0,0,.003)),Ye.add(Fe);let oe=d(16726818,.9,0);oe.position.copy(me).add(rl(0,0,.05)),Ye.add(oe);let H=[],re=new pt({color:4671307,toneMapped:!1}),le=new pt({color:6283391,toneMapped:!1}),j=new cr(.016,20);for(let Re=0;Re<6;Re++){let at=new $e(j,re);at.position.set(-.17+Re*.058,-.3,.503);let nt=d(3458905,.14,0);nt.position.copy(at.position).add(rl(0,0,.01)),Ye.add(at,nt),at.userData.glow=nt,H.push(at)}let ae=m(2.2,1.6,.78),we=new jt,Ae=new $e(new Us(1.74,1.11,.03,4,.014),new fi({color:14672356,roughness:.42,metalness:.3}));we.add(Ae);let se=An(1024,650),He=An(1024,650);Bc(se,e,!1),Bc(He,e,!0);let L=new $e(new Et(1.7,1.08),new pt({map:se.tex,transparent:!0,toneMapped:!1})),st=new $e(new Et(1.7,1.08),new pt({map:He.tex,transparent:!0,opacity:0,toneMapped:!1}));L.position.z=.017,st.position.z=.018,we.add(L,st);let Qe=m(1.9,.5,.18),A=(Re,at,nt)=>{let $t=new $e(new Et(at,nt),new pt({map:Re,transparent:!0,toneMapped:!1,side:kt,forceSinglePass:!0,depthWrite:!1}));return $t.visible=!1,$t},_=An(640,390),O=An(640,390),X=An(640,390),Q=An(560,150),de=()=>{tl(_,[[e.card.name,"name"],[e.card.note,"note"],[e.card.env,"mono"],[e.card.value,"empty"]],t),tl(O,[[e.card.name2,"name"],[e.card.note2,"note"],[e.card.env2,"mono"],[e.card.value,"empty"]],t),tl(X,[[e.slip.line1,"name"],[e.slip.line2,"mono"]],t,{head:e.slip.head}),id(Q,e.chip),M.redrawBase()};de();let ge=A(_.tex,.82,.5),ee=A(O.tex,.82,.5),ie=A(X.tex,.82,.5),_e=A(Q.tex,.8,.214),Ie=new $e(new Et(.3,.3),new pt({map:o(),transparent:!0,opacity:0,depthWrite:!1,toneMapped:!1,side:kt,forceSinglePass:!0}));Ie.position.set(.22,-.03,.002),Ie.rotation.z=.06,ie.add(Ie),n.seal&&new bs().load(n.seal,Re=>{Re.colorSpace=St,i.initTexture(Re),Ie.material.map=Re,n.onTexture&&n.onTexture()});let Me=m(.9,.55,0),{mat:xe,uDis:Oe}=cd(Y);xe.emissiveIntensity=.1;let ke=new $e(q,xe);ke.visible=!1;let Ze=d(14697772,1.1,0);s.add(Ze);let U=240,ve=new At;ve.setAttribute("position",new Bt(new Float32Array(U*3),3));let te=new ar(ve,new _s({color:13776927,size:.03,map:od(),transparent:!0,depthWrite:!1,opacity:0,toneMapped:!1}));te.visible=!1,te.frustumCulled=!1;let ye=Array.from({length:U},(Re,at)=>{let nt=$t=>{let qn=Math.sin(at*127.1+$t*311.7)*43758.5453;return qn-Math.floor(qn)};return{a:nt(1)*Math.PI*2,b:nt(2)*2-1,s:.25+nt(3)*.75,along:nt(4),lift:.3+nt(5)*.8}}),Se=(Re,at,nt)=>{let $t=new $e(new At,new pt({color:Re,transparent:!0,opacity:at,depthWrite:!1,toneMapped:!1}));return $t.userData={radius:nt,segs:260,radial:8,base:at},$t.frustumCulled=!1,$t},ce=Se(3816772,.5,.0065),Be=Se(12856605,1,.009),Le=Se(3816772,.5,.0065);s.add(v,b,S,R,he,Ve,Ye,ae,we,Qe,ge,ee,ie,Me,_e,ke,te,ce,Be,Le);let lt={scene:s,floor:h,uFloor:c,agent:v,agentShadow:b,agentLight:S,vaultGlow:qe,vaultTint:Ve,ringGlow:oe,copyGlow:Ze,seal:Ie,glass:w,term:M,vault:R,vaultBody:N,vaultKeys:fe,keyBlurMat:Z,lacquer:Y,prog:Ye,progShadow:ae,ring:Fe,leds:H,ledOn:le,ledOff:re,site:we,siteShadow:Qe,sLive:st,sIdle:L,card1:ge,card2:ee,slip:ie,slipShadow:Me,chip:_e,copy:ke,uDis:Oe,dust:te,seeds:ye,reqThread:ce,keyThread:Be,outThread:Le,vaultShadow:he,keyhole:me,redrawCards:de,L:{}};return lt.setLayout=Re=>gd(lt,Re),lt.reveal=(Re,at)=>{let nt=Re.userData.radial*6;Re.geometry.setDrawRange(0,Math.floor(Fr.clamp(at,0,1)*Re.userData.segs)*nt),Re.visible=at>.001},lt}var Jt={allow:16.5,deny:8.5},Wn={pre:[0,3.4,8.6],allow:[0,9.2],deny:[0,2.6]},Sd=2.6,ni=(i,e=0,t=1)=>Math.min(t,Math.max(e,i)),Ke=(i,e,t)=>ni((i-e)/(t-e)),Xn=i=>i<.5?4*i*i*i:1-Math.pow(-2*i+2,3)/2,Hc=i=>1-Math.pow(1-i,3),cn=i=>i*i*(3-2*i),Wr=(i,e,t,n=.35,s=.35)=>Math.min(Ke(i,e,e+n),1-Ke(i,t-s,t)),Pt=i=>i==="once"||i==="timed"?"allow":i?"deny":null,al=i=>i==="once"?"allow":i||"allow";var _t=(i,e,t,n)=>({t:i,target:e,dir:new I(...t).normalize(),r:n}),Fs=(i,e,t)=>i.clone().lerp(e,t);function Wc(i){let{A:e,V:t,P:n,W:s,C:r,R:a,sA:o,sV:l,sP:c}=i,h=(T,w,M)=>new I(T,w,M),u=(T,w,M,b,S)=>T.clone().add(h(M,b,S).multiplyScalar(w)),d=i.kind==="tall",f=d?1.15:1,m=_t(14.4,h(t.x,t.y*.55,t.z+.55*l),[0,.3,1],1.5*l*f),v=[_t(0,r.clone().add(h(0,.15,0)),[.02,d?1:.55,1],a*(d?.92:1.04)),_t(1.4,r.clone().add(h(-.2,.1,0)),[.08,.48,1],a*.92),_t(3,u(e,o,.05,.08,0),[.16,.1,1],1.18*o*f),_t(4.2,u(e,o,.12,.02,0),[.24,.13,1],1.3*o*f),_t(6,Fs(e,t,.48).add(h(0,.15,.2)),[.22,.42,1],d?a*.78:2.95),_t(8,Fs(e,t,.4).add(h(0,.05,.3)),[.05,.36,1],d?a*.74:2.75),_t(9.8,u(e,o,.55,.15,0),[.42,.22,1],1.75*o*f),_t(12,Fs(e,t,.7).add(h(0,.45*l,0)),[-.2,.22,1],d?a*.62:1.95),_t(13.3,h(t.x,t.y*.62,t.z+.45*l),[-.06,.26,1],1.55*l*f),m],g=[{...m,t:0},_t(.9,h(t.x,t.y*.5,t.z+.7*l),[.04,.42,1],1.25*l*f),_t(2.2,u(t,l,.25,.1,.6),[.4,.14,1],1.15*l*f),_t(3.6,Fs(t,n,.55).add(h(.2,.75*l,.6)),[.12,.38,1],d?a*.7:2.35),_t(4.9,u(i.keyholeW,1,.1*c,.02,.3*c),[-.5,.16,1],.92*c*f),_t(6.2,u(i.keyholeW,1,.35*c,.05,.15*c),[-.36,.12,1],1*c*f),_t(7.5,Fs(n,s,.62),[-.3,.18,1],1.55*c*f),_t(9,Fs(n,e,.5).add(h(0,.35,.6)),[0,.32,1],d?a*.85:3.6),_t(10.4,u(e,o,.15,.02,0),[.2,.12,1],1.32*o*f),_t(11.6,u(e,o,.2,.05,0),[.28,.18,1],1.45*o*f),_t(14.4,r.clone().add(h(0,.12,0)),[0,d?1.15:.6,1],a*(d?.94:1)),_t(Jt.allow,r.clone().add(h(0,.12,0)),[.03,d?1.12:.58,1],a*(d?.95:1.01))],p=[{...m,t:0},_t(1.3,u(t,l,0,.05,0),[.12,.16,1],1.4*l*f),_t(3,u(e,o,.15,.02,0),[.22,.13,1],1.32*o*f),_t(4.4,u(e,o,.2,.05,0),[.28,.18,1],1.45*o*f),_t(7,r.clone().add(h(0,.12,0)),[0,d?1.15:.6,1],a*(d?.94:1)),_t(Jt.deny,r.clone().add(h(0,.12,0)),[.03,d?1.12:.58,1],a*(d?.95:1.01))];return{pre:Gc(v),allow:Gc(g),deny:Gc(p)}}function Gc(i){let e=i.length,t=new dn(i.map(u=>u.target),!1,"centripetal"),n=new dn(i.map(u=>u.dir.clone()),!1,"catmullrom",.5),s=i.map(u=>u.t),r=i.map(u=>Math.log(u.r)),a=[];for(let u=0;u{if(u<=s[0])return 0;if(u>=s[e-1])return e-1;let d=0;for(;u>s[d+1];)d++;let f=s[d+1]-s[d],m=(u-s[d])/f,v=2*m**3-3*m**2+1,g=m**3-2*m**2+m,p=-2*m**3+3*m**2,T=m**3-m**2;return v*d+g*f*o[d]+p*(d+1)+T*f*o[d+1]},c=u=>{let d=Math.min(e-2,Math.floor(u)),f=u-d;return Math.exp(r[d]+(r[d+1]-r[d])*cn(f))},h={target:new I,dir:new I,r:1};return{end:s[e-1],at(u){let d=ni(l(u),0,e-1),f=d/(e-1);return t.getPoint(f,h.target),n.getPoint(f,h.dir).normalize(),h.r=c(d),h}}}var ax=new I;function bd(i,e,t,n,s){let r=Fr.degToRad(i.fov),a=i.aspect<1.02?Math.min(i.aspect,.75):i.aspect,o=2*Math.atan(Math.tan(r/2)*a),l=Math.min(r,o),c=e.r/Math.sin(l/2),h=ax.copy(e.dir);h.x+=s*(.025*Math.sin(t*.23)+n.sx*.07),h.y+=s*(.018*Math.sin(t*.17+1.3)-n.sy*.045),h.normalize(),i.position.copy(e.target).addScaledVector(h,c),i.lookAt(e.target)}function Ed(i,e,t){let n=[],s=Array.from({length:12},()=>({})),r=0,a=(b,S,R,x)=>{let E=s[r++];return E.kind=b,E.text=S,E.alpha=R,E.chars=void 0,E.caret=!1,E.row=void 0,x&&Object.assign(E,x),E},o=[...e.term.ask].length;function l(b){r=0;let S=b.phase==="pre"?b.T:14.4+1,R=b.phase==="post"||b.phase==="end",x=R?b.u:-1,E=Pt(b.decision),C=V=>ni((S-V)/.35),P=V=>ni((x-V)/.35),B=a("me",e.term.ask,1);B.chars=Math.floor(Ke(S,.7,2.7)*o),B.caret=S<3&&(S<2.7||Math.floor(S*2.2)%2===0),S>=3.4&&a("ai",e.term.check,C(3.4)),S>=6.7&&a("cat","",C(6.7),{row:e.term.cat[0]}),S>=7&&a("cat","",C(7),{row:e.term.cat[1]}),S>=7.3&&a("note",e.term.noValue,C(7.3)),S>=8.6&&a("ai",e.term.cant,C(8.6)),S>=8.9&&a("indent",e.term.req,C(8.9)),S>=12.6&&(!R||x<.5?a("wait",e.term.wait,C(12.6)):E==="allow"?a("ok",b.decision==="timed"?e.term.okTimed:e.term.ok,P(.5)):a("no",b.decision==="expire"?e.term.expired:e.term.denied,P(.5))),R&&E==="allow"&&(x>=10&&a("ai",e.term.out,P(10)),x>=10.5&&a("ok",e.term.live,P(10.5))),R&&E==="deny"&&x>=1.7&&a("ai",b.decision==="expire"?e.term.expiredNext:e.term.deniedNext,P(1.7)),n.length=r;for(let V=0;VE.kind==="wait");i.term.update(R,x?Math.floor(S*9)/8:0)}let h=new qt,u=new qt,d=new I(1,0,0),f=new I(0,0,-1),m=new I,v=new I,g=new I,p=new I,T=new qt;function w(b,S,R,x=0){S.getPoint(R,m),b.position.copy(m),b.quaternion.copy(t.quaternion),b.rotateZ(x)}function M(b,S){let R=b.phase==="pre"?b.T:14.4+1,x=b.phase==="post"||b.phase==="end",E=x?b.u:0,C=x?Pt(b.decision):null,P=i.L;for(let z=0;z<2;z++){let Z=z?i.card2:i.card1,fe=z?4.75:4.3,he=Ke(R,fe,fe+2.2);if(Z.visible=he>0&&he<1,!Z.visible)continue;let qe=Xn(he);w(Z,P.catPath,qe,Math.sin(S*2+z)*.04+(1-qe)*.2),z&&(Z.position.y+=.12*P.sA);let Ve=P.cardScale*(.35+.65*cn(Ke(he,0,.2)))*(1-.5*cn(Ke(he,.82,1)));Z.scale.setScalar(Ve),Z.material.opacity=Math.min(Ke(he,0,.12),1-Ke(he,.86,1))}{let z=Ke(R,9.6,12.2),Z=Ke(R,12.2,13.3),fe=P.kind==="wide"?1:.72;if(i.slip.visible=z>0,z>0&&Z<=0)w(i.slip,P.reqPath,Xn(z),Math.sin(S*2.4)*.05),i.slip.material.opacity=Ke(z,0,.1),i.slip.scale.setScalar(fe*(1-.2*cn(Ke(z,.8,1))));else if(Z>0){P.reqPath.getPoint(1,m);let qe=Xn(Z);i.slip.position.lerpVectors(m,P.slipRest,qe),i.slip.position.y+=Math.sin(qe*Math.PI)*.25*P.sV,i.slip.quaternion.slerpQuaternions(t.quaternion,P.slipRestQ,cn(Z)),i.slip.scale.setScalar(fe*(.8+.4*qe)),i.slip.material.opacity=1}i.slipShadow.material.opacity=.5*cn(Ke(Z,.55,1))*(x&&C==="deny"?1-.55*Ke(E,.5,1.6):1);let he=C==="allow"?Ke(E,.12,.5):0;i.seal.material.opacity=Math.min(1,he*3)*.92,i.seal.scale.setScalar(1+.6*(1-Hc(he))),x&&C==="deny"&&(i.slip.material.opacity=1-.55*Ke(E,.5,1.6)),i.reveal(i.reqThread,Xn(Ke(R,9.6,12.2)))}let B=Ke(R,12.3,13.2)*(x?1-Ke(E,.2,1.2):1),V=b.phase==="gate"&&!b.later?.5+.5*Math.sin(S*3):0,N=B*(.5+V*.5)+(C==="allow"?.7*Wr(E,.4,2.6,.4,.8):0);i.lacquer.emissiveIntensity=.5*N,i.keyBlurMat.color.setScalar(1+.45*N),i.vault.scale.setScalar(P.sV*(1+.025*B*cn(Wr(R,12.3,13.4,.4,.6))));let k=.1+B*(.2+V*.18)+(C==="allow"?.32*Wr(E,.3,2.8,.4,.9):0);i.vaultGlow.material.opacity=k*.85,i.vaultTint.material.opacity=.08+k*.42;let $=C==="allow",q=i.copy;if(q.visible=$&&E>.5&&E<10.4,i.dust.visible=!1,q.visible){let z=i.vaultKeys[1];z.updateWorldMatrix(!0,!1),z.matrixWorld.decompose(g,T,p);let Z=P.kind==="wide"?1.15:.8,fe=cn(Ke(E,.5,2)),he=Xn(Ke(E,2,5.2)),qe=Xn(Ke(E,5.3,5.85));E<2?(P.keyPath.getPoint(0,m),P.keyPath.getTangent(.001,v),h.setFromUnitVectors(d,v),q.position.lerpVectors(g,m,fe),q.quaternion.slerpQuaternions(T,h,fe),q.scale.setScalar(p.x+(Z-p.x)*fe)):(P.keyPath.getPoint(he,m),P.keyPath.getTangent(Math.min(.999,Math.max(.001,he)),v),v.lerp(f,cn(Ke(he,.8,1))).normalize(),q.position.copy(m),h.setFromUnitVectors(d,v),u.setFromAxisAngle(d,Math.sin(he*Math.PI)*Math.PI-qe*Math.PI/2),q.quaternion.copy(h).multiply(u),q.scale.setScalar(Z));let Ve=Ke(E,8.4,10.2);if(i.uDis.value=Ve,Ve>0){i.dust.visible=!0;let Ye=i.dust.geometry.attributes.position.array,K=q.position,ne=.62*Z,pe=i.seeds;for(let De=0;De0?1:0)+Math.abs(Math.sin(me.a))*oe*.4}i.dust.geometry.attributes.position.needsUpdate=!0,i.dust.material.opacity=.95*(1-Ke(Ve,.55,1))}}else i.uDis.value=0;i.copyGlow.visible=q.visible&&i.uDis.value<.95,i.copyGlow.visible&&(i.copyGlow.position.copy(q.position),i.copyGlow.material.opacity=.32*Ke(E,.6,1.6)*(1-i.uDis.value)),i.reveal(i.keyThread,$?Xn(Ke(E,2,5.2)):0),i.ring.material.opacity=$?Ke(E,4.2,4.8)*(1-.6*Ke(E,9.4,10.4)):0,i.ringGlow.material.opacity=i.ring.material.opacity*(.4+.2*Wr(E,5.3,6.4,.2,.6));for(let z=0;z5.95+z*.16;Z.material=fe?i.ledOn:i.ledOff,Z.userData.glow.material.opacity=fe?.7:0}let Y=$?cn(Ke(E,6.9,7.5)):0;i.sLive.material.opacity=Y,i.sIdle.material.opacity=1-Y,i.site.position.y=P.W.y+Math.sin(S*.9)*.015*P.sP+Y*.04*(1-Ke(E,7.5,8.5))*P.sP;{let z=$?Ke(E,7.7,9.9):0;i.chip.visible=z>0&&z<1,i.chip.visible&&(w(i.chip,P.outPath,Xn(z),Math.sin(S*2)*.03),i.chip.material.opacity=Math.min(Ke(z,0,.1),1-Ke(z,.86,1))),i.reveal(i.outThread,$?Xn(Ke(E,7.7,9.9)):0)}let F=x?Ke(E,C==="allow"?11:3,C==="allow"?13:5):0;i.reqThread.material.opacity=C==="deny"?.5-.24*F:.5,i.uFloor.uWhite.value=x?cn(Ke(E,Jt[C]-Sd,Jt[C])):0,i.agent.position.y=P.A.y+Math.sin(S*.7)*.02*P.sA}return{update:M,updateTranscript:c}}function Td({root:i,I:e,S:t,W:n,camera:s,reduced:r,wake:a,renderNow:o}){let l=oe=>i.querySelector(oe),c=oe=>[...i.querySelectorAll(oe)],h=l(".akhw-stage"),u=l(".akhw-say"),d=l(".akhw-tags"),f=l(".akhw-alert"),m=l(".akhw-hint"),v=l(".akhw-pending"),g=l(".akhw-end"),p=l(".akhw-play"),T=l(".akhw-count"),w=l(".akhw-alert-details"),M=l(".akhw-alert-rows"),b=c(".akhw-steps li"),S=[],R=new I,x=new I,E=(oe,H,re,le,j=0)=>{if(!H||H.includes("undefined"))return;let ae=document.createElement("div");ae.className=`akhw-tag ${oe}`,ae.innerHTML=H,d.appendChild(ae),S.push({el:ae,anchor:re,show:le,dy:j,on:!1,w:0,x:NaN,y:NaN})},C=e.tags;{let oe=n.L,H=(se,He,L,st)=>R.copy(se).add(x.set(He,L,st)),re=(se,He,L)=>()=>H(oe[se],0,-L*oe[He],oe.kind==="wide"?0:.75*oe[He]),le=se=>se.phase!=="pre"&&se.phase!=="gate"&&Pt(se.decision)==="allow"&&se.u>12.6,j=se=>se.phase!=="pre"&&se.phase!=="gate"&&Pt(se.decision)==="deny"&&se.u>5.6,ae=se=>le(se)||j(se),we=se=>se.phase==="pre"&&se.T<1.9,Ae=se=>se.phase==="pre"&&se.T>4.9&&se.T<8.5;E("is-id",`${C.agent[0]}${C.agent[1]}`,re("A","sA",1.08),se=>we(se)||Ae(se)),E("is-id",`${C.vault[0]}${C.vault[1]}`,()=>re("V","sV",oe.kind==="wide"?1.5:1.32)(),se=>we(se)||Ae(se)),E("is-id",`${C.prog[0]}${C.prog[1]}`,()=>H(oe.P,0,-.62*oe.sP,(oe.kind==="wide"?.5:1.05)*oe.sP),se=>se.phase==="post"&&Pt(se.decision)==="allow"&&se.u>3.2&&se.u<4.6),E("is-pill",C.noValue,()=>H(oe.A,.2*oe.sA,.98*oe.sA,0),se=>se.phase==="pre"&&se.T>7.2&&se.T<8.6),E("is-pill is-key",C.flying,()=>H(n.copy.position,0,.3*oe.sP,0),se=>se.phase!=="pre"&&se.phase!=="gate"&&Pt(se.decision)==="allow"&&se.u>2.2&&se.u<4.6),E("is-pill is-zero",C.agentEnd.replace(/(\d+)/,"$1"),()=>H(oe.A,0,1.02*oe.sA,0),se=>ae(se)||se.phase==="post"&&se.u>(Pt(se.decision)==="allow"?10.8:3.4)),E("is-pill",C.vaultEnd,()=>H(oe.V,0,1.2*oe.sV,0),se=>le(se)&&se.decision==="once"),E("is-pill",C.vaultTimed,()=>H(oe.V,0,1.2*oe.sV,0),se=>le(se)&&se.decision==="timed"),E("is-pill",C.vaultDeny,()=>H(oe.V,0,1.2*oe.sV,0),se=>j(se)),E("is-pill is-key",C.progEnd,()=>H(oe.W,0,.74*oe.sP,0),se=>le(se)),E("is-pill",C.progDeny,()=>H(oe.W,0,.74*oe.sP,0),se=>j(se))}let P=h.clientWidth,B=h.clientHeight;function V(){P=h.clientWidth,B=h.clientHeight,S.forEach(oe=>oe.w=0)}function N(oe){let H=P,re=B,le=performance.now();for(let j of S){let ae=oe.phase!=="idle"&&j.show(oe);ae!==j.on&&(j.el.classList.toggle("on",ae),j.on=ae,ae||(j.offAt=le)),ae&&!j.w&&(j.w=j.el.offsetWidth)}for(let j of S){if(!j.on&&!(le-(j.offAt||0)<600))continue;let ae=j.anchor().project(s);if(ae.z>1){j.on&&(j.el.classList.remove("on"),j.on=!1,j.offAt=0);continue}let we=j.w/2+10,Ae=ni((ae.x*.5+.5)*H,we,Math.max(we,H-we)),se=(-ae.y*.5+.5)*re+j.dy;Math.abs(Ae-j.x)<.05&&Math.abs(se-j.y)<.05||(j.x=Ae,j.y=se,j.el.style.transform=`translate(${Ae.toFixed(1)}px, ${se.toFixed(1)}px) translate(-50%, -50%)`)}}let k=b.map(()=>{let oe=document.createElement("p");return u.appendChild(oe),oe});function $(oe){if(oe.phase==="pre"||oe.phase==="idle")return oe.T-1);function z(oe){let H=$(oe),re=al(oe.decision);if(re!==Y&&(i.dataset.outcome=re,Y=re,q=-1),H!==q){let ae=[...b[H].querySelectorAll("p")].find(we=>getComputedStyle(we).display!=="none");k.forEach((we,Ae)=>{Ae===H&&ae&&(we.innerHTML=ae.innerHTML),we.classList.toggle("on",Ae===H)}),b.forEach((we,Ae)=>we.classList.toggle("on",Ae===H)),q=H}let le=Pt(oe.decision);for(let j=0;jH?ae=0:H<=2?ae=Ke(oe.T,Wn.pre[H],H<2?Wn.pre[H+1]:14.4):H===3?ae=1:ae=Ke(oe.u,Wn[le][H-4],H===4?Wn[le][1]:Jt[le]),ae=Math.round(ae*400)/400,ae!==F[j]&&(b[j].style.setProperty("--fill",ae.toFixed(3)),F[j]=ae)}}let Z=0;function fe(){f.hidden=!1,f.classList.remove("leave"),f.classList.add("enter"),v.hidden=!0,i.classList.remove("is-later"),clearTimeout(Z),Z=setTimeout(()=>{t.phase==="gate"&&!t.later&&(m.hidden=!1,i.classList.add("is-hinting"))},6500)}function he(oe){if(clearTimeout(Z),m.hidden=!0,i.classList.remove("is-hinting"),oe||r){f.hidden=!0;return}f.classList.remove("enter"),f.classList.add("leave"),setTimeout(()=>{f.classList.contains("leave")&&(f.hidden=!0,f.classList.remove("leave"))},280)}function qe(){t.phase="gate",t.T=14.4,t.gateAt=performance.now(),t.later=!1,i.classList.add("is-gate"),T.textContent=T.dataset.format.replace("{t}","4:57"),fe()}function Ve(oe){t.phase==="gate"&&(t.decision=oe,t.phase="post",t.u=0,t.ended=!1,t.later=!1,i.classList.remove("is-gate","is-later"),v.hidden=!0,he(),r?(t.u=Jt[Pt(oe)],t.phase="end",De(),o()):a())}function Ye(oe){if(t.phase!=="gate")return;let H=Math.max(0,297-Math.floor((oe-t.gateAt)/1e3)),re=`${Math.floor(H/60)}:${String(H%60).padStart(2,"0")}`,le=T.dataset.format.replace("{t}",re);if(T.textContent!==le&&(T.textContent=le),t.later){let j=v.dataset.base.replace("{t}",re);v.textContent!==j&&(v.textContent=j)}H===0&&(t.later=!1,Ve("expire"))}v.dataset.base=v.textContent.includes("\xB7")?v.textContent.split("\xB7")[0].trim()+" \xB7 {t}":v.textContent;function K(){t.phase!=="gate"||t.later||(t.later=!0,i.classList.add("is-later"),he(),v.hidden=!1,a())}f.addEventListener("click",oe=>{let H=oe.target.closest("[data-decide]");H&&!i.classList.contains("is-still")&&Ve(H.dataset.decide)}),w.addEventListener("click",()=>{let oe=w.getAttribute("aria-expanded")!=="true";w.setAttribute("aria-expanded",String(oe)),M.hidden=!oe}),l(".akhw-later").addEventListener("click",K),v.addEventListener("click",()=>{t.later=!1,fe(),f.querySelector(".is-primary").focus({preventScroll:!0}),a()}),document.addEventListener("keydown",oe=>{oe.key==="Escape"&&t.phase==="gate"&&!t.later&&t.visible&&K()});let ne=l(".akhw-again"),pe=l(".akhw-other");function De(){t.ended=!0,g.hidden=!1,pe.textContent=Pt(t.decision)==="allow"?pe.dataset.deny:pe.dataset.allow}function me(){t.ended=!1,g.hidden=!0}function Fe(oe){me(),p.hidden=!0,t.started=!0,oe<=2?(t.phase==="gate"&&he(!0),i.classList.remove("is-gate","is-later"),v.hidden=!0,t.phase="pre",t.T=Wn.pre[oe]+(oe===0?0:.01),t.decision=null):oe===3?(t.decision=null,t.phase!=="gate"?qe():t.later&&(t.later=!1,fe())):(t.phase==="gate"&&(he(!0),i.classList.remove("is-gate","is-later"),v.hidden=!0),t.decision||(t.decision="once"),t.phase="post",t.u=Wn[Pt(t.decision)][oe-4]+.01),a()}return ne.addEventListener("click",()=>Fe(0)),pe.addEventListener("click",()=>Fe(3)),b.forEach((oe,H)=>oe.querySelector("button").addEventListener("click",()=>Fe(H))),p.addEventListener("click",()=>Fe(0)),{updateTags:N,updateCaptions:z,tickCountdown:Ye,enterGate:qe,decide:Ve,showEnd:De,hideEnd:me,hideAlert:he,measure:V,alert:f,hint:m,stage:h}}function Ad(){let i=null;try{i=document.createElement("canvas").getContext("webgl2")}catch{i=null}if(!i)return null;let e=i.getExtension("WEBGL_debug_renderer_info"),t=String(e?i.getParameter(e.UNMASKED_RENDERER_WEBGL):i.getParameter(i.RENDERER));return i.getExtension("WEBGL_lose_context")?.loseContext(),{name:t,software:/swiftshader|llvmpipe|softpipe|software|basic render/i.test(t)}}var Xc=.5,wd=7.5;function Rd(i,e){let t=Math.max(1,window.devicePixelRatio||1),n=e.has("dpr")?Number(e.get("dpr")):0,s=n||Math.min(t,i.software?1:1.5),r={dpr:s,max:s,benchmarked:!!n||e.has("nobench"),changed:!1},a=[],o=0,l=0,c=[];return r.sample=h=>{if(r.benchmarked)return!1;if(c.push(h),c.length<3&&h<250)return!0;let u=c.length>=3?Math.min(c[1],c[2]):h;if(r.benchmarked=!0,u>wd){let d=Math.max(Xc,Math.round(r.dpr*Math.sqrt(wd/u)*20)/20);d{if(n||h<=0||h>.25)return!1;if(l=l?l*.9+h*.1:h,o>0)return o--,!1;if(a.push(h),a.length<40)return!1;let u=a.slice().sort((f,m)=>f-m);return a=[],u[Math.floor(u.length*.75)]>.0205&&r.dpr>Xc?(r.dpr=r.max=Math.max(Xc,Math.round(r.dpr*.87*20)/20),o=30,!0):!1},r.fps=()=>l?1/l:0,r}var Cd=document.querySelector(".akhw");Cd&&ox(Cd);function ox(i){let e=JSON.parse(i.querySelector(".akhw-i18n").textContent),t=Y=>i.querySelector(Y),n=t(".akhw-stage"),s=t(".akhw-canvas"),r=new URLSearchParams(location.search),a=matchMedia("(prefers-reduced-motion: reduce)").matches||r.has("still"),o={phase:"idle",T:0,u:0,decision:null,started:!1,visible:!1,later:!1,gateAt:0,ended:!1},l=Ad(),c=null;if(l)try{c=new Ko({canvas:s,antialias:!l.software,alpha:!1,powerPreference:"high-performance"})}catch{c=null}if(!c||!c.capabilities.isWebGL2){i.classList.add("no-gl","is-still"),q(null);return}c.setClearColor(vd,1),c.outputColorSpace=St,c.toneMapping=Ar,c.toneMappingExposure=1;let h=c.getContext(),u=Rd(l,r),d=Y=>new URL(Y,import.meta.url).href,f=new Image;f.src=d("img/paper.jpg");let m=Md(c,e,f,{wood:d("img/walnut.webp"),seal:d("img/seal-zhun.webp"),onTexture:()=>B(!0)}),v=new Xt(32,1,.1,100),g=null,p=Ed(m,e,v),T=Td({root:i,I:e,S:o,W:m,camera:v,reduced:a,wake:()=>B(!0),renderNow:()=>S(performance.now())}),w={x:0,y:0,sx:0,sy:0},M=0,b=new Uint8Array(4);function S(Y){let F;o.phase==="pre"||o.phase==="idle"?F=g.pre.at(o.T):o.phase==="gate"?F=g.pre.at(14.4):F=g[Pt(o.decision)].at(o.u),bd(v,F,M,w,a?0:1),v.updateMatrixWorld(),p.update(o,M),p.updateTranscript(o,M);let z=performance.now();c.render(m.scene,v),!u.benchmarked&&!a&&(h.readPixels(0,0,1,1,h.RGBA,h.UNSIGNED_BYTE,b),u.sample(performance.now()-z),u.changed&&(u.changed=!1,k())),T.updateTags(o),T.updateCaptions(o),o.visible&&!i.classList.contains("is-ready")&&requestAnimationFrame(()=>i.classList.add("is-ready"))}let R=0,x=0,E=0,C=!0,P=!1;function B(Y){if(Y&&(C=!0),a){g&&S(performance.now());return}!R&&g&&o.visible&&!document.hidden&&(x=0,R=requestAnimationFrame(V))}function V(Y){R=0;let F=x?Math.min(.05,(Y-x)/1e3):0;x=Y;let z=o.started&&!P&&(o.phase==="pre"||o.phase==="post");if(z)if(M+=F,o.phase==="pre")o.T+=F,o.T>=14.4&&T.enterGate();else{o.u+=F;let he=Pt(o.decision);o.u>=Jt[he]&&(o.u=Jt[he],o.phase="end",T.showEnd())}else o.phase==="gate"&&!P&&(M+=F);T.tickCountdown(Y),w.sx+=(w.x-w.sx)*.06,w.sy+=(w.y-w.sy)*.06;let Z=Math.abs(w.x-w.sx)+Math.abs(w.y-w.sy)>.002,fe=o.phase==="gate"&&Y-E>=(o.later?30:46);(z||C||Z||fe||!u.benchmarked)&&(C=!1,E=Y,S(Y),z&&u.frame(F)&&k()),(z||o.phase==="gate"||Z||C||!u.benchmarked)&&o.visible&&!document.hidden&&(R=requestAnimationFrame(V))}function N(){cancelAnimationFrame(R),R=0}n.addEventListener("pointermove",Y=>{if(Y.pointerType!=="mouse"||a)return;let F=n.getBoundingClientRect();w.x=(Y.clientX-F.left)/F.width*2-1,w.y=(Y.clientY-F.top)/F.height*2-1,B()}),n.addEventListener("pointerleave",()=>{w.x=0,w.y=0,B()});function k(){let Y=n.clientWidth,F=n.clientHeight;if(!Y||!F)return;c.setPixelRatio(u.dpr),c.setSize(Y,F,!1),m.uFloor.uView.value.set(Y*u.dpr,F*u.dpr),v.aspect=Y/F;let z=Y/F>=1.02?"wide":"tall";v.fov=z==="wide"?32:46,z!==m.L.kind&&(m.setLayout(z),g=Wc(m.L)),z==="wide"?v.setViewOffset(Y,F,0,-F*.045,Y,F):v.clearViewOffset(),v.updateProjectionMatrix(),T.measure(),g&&o.phase!=="idle"&&S(performance.now())}m.setLayout(n.clientWidth/Math.max(1,n.clientHeight)>=1.02?"wide":"tall"),g=Wc(m.L),Promise.all([document.fonts.load('400 40px "IBM Plex Mono"'),document.fonts.load('500 40px "Hanken Grotesk"'),document.fonts.load('600 40px "Hanken Grotesk"'),new Promise(Y=>f.complete?Y():f.onload=f.onerror=Y)]).catch(()=>{}).then(async()=>{m.redrawCards(),k(),p.update(o,0);try{await(c.compileAsync?c.compileAsync(m.scene,v):c.compile(m.scene,v))}catch{}if(m.scene.traverse(z=>z.material&&z.material.map&&c.initTexture(z.material.map)),o.phase="pre",o.T=0,new ResizeObserver(()=>k()).observe(n),a){i.classList.add("is-still"),o.started=!0,o.decision="once",o.phase="end",o.u=Jt.allow,q(()=>S(performance.now())),S(performance.now());return}S(performance.now());let Y=new IntersectionObserver(z=>{let Z=z[0];o.visible=Z.isIntersecting,Z.intersectionRatio>=.55&&!o.started&&(o.started=!0),o.visible?B(!0):N(),o.visible&&!o.started&&setTimeout(F,250)},{threshold:[0,.55]});function F(){if(o.started||!o.visible)return;let z=n.getBoundingClientRect();Math.min(z.bottom,innerHeight)-Math.max(z.top,0)>=.55*z.height?(o.started=!0,B(!0)):setTimeout(F,250)}Y.observe(n),document.addEventListener("visibilitychange",()=>document.hidden?N():B(!0))}),r.has("debug")&&(window.__akhw={S:o,Q:u,gpu:l,W:m,renderer:c,camera:v,go(Y,F,z){if(T.hideEnd(),o.started=!0,Y==="gate"){o.phase="pre",o.T=14.4-.01,o.decision=null,B(!0);return}Y!=="pre"&&o.phase==="gate"&&(T.hideAlert(!0),i.classList.remove("is-gate","is-later")),o.phase=Y,Y==="pre"?o.T=F:o.u=F,o.decision=z??o.decision,Y==="post"&&F>=Jt[Pt(o.decision)]&&(o.phase="end",o.u=Jt[Pt(o.decision)],T.showEnd()),B(!0)},gate(){T.enterGate(),B(!0)},freeze(Y){P=!!Y,Y||B(!0)},render(){S(performance.now())},decide:T.decide});function q(Y){i.dataset.outcome="allow";let F=t(".akhw-lede");F&&F.dataset.still&&(F.textContent=F.dataset.still);let z=t(".akhw-alert"),Z=document.createElement("div");if(Z.className="akhw-still-alert",n.after(Z),Z.appendChild(z),z.hidden=!1,t(".akhw-hint").hidden=!0,z.querySelector(".akhw-alert-foot").hidden=!0,z.addEventListener("click",fe=>{let he=fe.target.closest("[data-decide]");he&&(o.decision=he.dataset.decide,o.u=Jt[Pt(o.decision)],o.phase="end",i.dataset.outcome=al(o.decision),Y&&Y())}),!Y){let fe=t(".akhw-poster img");fe&&(fe.loading="eager")}}} diff --git a/site/how/img/paper.jpg b/site/how/img/paper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5bd858979da61fcded159861e307753e44a17e1d GIT binary patch literal 38608 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 literal 0 HcmV?d00001 diff --git a/site/how/img/poster-en-tall.webp b/site/how/img/poster-en-tall.webp new file mode 100644 index 0000000000000000000000000000000000000000..70e3d4bd3bcda3e35ce49f86978a2d64e935bca3 GIT binary patch literal 22564 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 e0000000000000000000000000000000002I1)Bx{ literal 0 HcmV?d00001 diff --git a/site/how/img/poster-zh-tall.webp b/site/how/img/poster-zh-tall.webp new file mode 100644 index 0000000000000000000000000000000000000000..4b46deff833b662792d47ad0cce5ee5b98dcc2fa GIT binary patch literal 23086 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 XQl;YGX8#Ia&w>muCiws6|8M&rUl=7S literal 0 HcmV?d00001 diff --git a/site/how/img/poster-zh-wide.webp b/site/how/img/poster-zh-wide.webp new file mode 100644 index 0000000000000000000000000000000000000000..dc02d6d0b3dbed3c322dd2a4f957382eddbd5bcf GIT binary patch literal 36874 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 R000000000000000003+EHbMXZ literal 0 HcmV?d00001 diff --git a/site/how/img/seal-zhun.webp b/site/how/img/seal-zhun.webp new file mode 100644 index 0000000000000000000000000000000000000000..51e2d2cab32043e18fec0aa00147b984395818e8 GIT binary patch literal 50832 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 Bz=Z$+ literal 0 HcmV?d00001 diff --git a/site/how/img/walnut.webp b/site/how/img/walnut.webp new file mode 100644 index 0000000000000000000000000000000000000000..cf9d0d8b6d1498c26edb32c47550e626df8d5af2 GIT binary patch literal 111870 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 Date: Tue, 13 Oct 2026 18:22:06 +0800 Subject: [PATCH 2/2] Add the project website at askkey.sudohg.com (#160) A bilingual one-page site (English at /, Simplified Chinese at /zh/): the hero, the film, per-key permissions stamped as seals, the AI tools that connect in one click or by hand, the limits, and the download, with links to the repository, release notes and the security model. The site is static HTML and CSS with a small script for motion. It loads nothing from other hosts, ships only open fonts, and busts caches with content hashes. A Pages workflow deploys site/ from main. The READMEs link to the site, and the hygiene check allows Chinese in the two pages. --- .github/workflows/pages.yml | 36 ++ README.md | 2 +- README.zh-CN.md | 2 +- scripts/check_hygiene.py | 2 + site/assets/apple-touch-icon.png | Bin 0 -> 33344 bytes site/assets/favicon-64.png | Bin 0 -> 5480 bytes site/assets/hero-desk.jpg | Bin 0 -> 244473 bytes site/assets/icon-256.png | Bin 0 -> 63503 bytes site/assets/og-en.jpg | Bin 0 -> 95514 bytes site/assets/og-zh.jpg | Bin 0 -> 94944 bytes site/assets/paper.jpg | Bin 0 -> 38608 bytes site/assets/pass-key.webp | Bin 0 -> 22450 bytes site/assets/pass-shadow.webp | Bin 0 -> 14944 bytes site/assets/pass.webp | Bin 0 -> 44994 bytes site/assets/seal-stone.webp | Bin 0 -> 79110 bytes site/assets/seal-wen.webp | Bin 0 -> 46312 bytes site/assets/seal-yin.webp | Bin 0 -> 51994 bytes site/assets/seal-zhun.webp | Bin 0 -> 50832 bytes site/fonts/HankenGrotesk-Variable.woff2 | Bin 0 -> 33032 bytes site/fonts/IBMPlexMono-Regular-Latin1.woff2 | Bin 0 -> 17544 bytes site/fonts/OFL-HankenGrotesk.txt | 94 +++++ site/fonts/OFL-IBMPlexMono.txt | 93 +++++ site/index.html | 334 +++++++++++++++++ site/motion.js | 271 ++++++++++++++ site/style.css | 387 ++++++++++++++++++++ site/zh/index.html | 333 +++++++++++++++++ 26 files changed, 1552 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/pages.yml create mode 100644 site/assets/apple-touch-icon.png create mode 100644 site/assets/favicon-64.png create mode 100644 site/assets/hero-desk.jpg create mode 100644 site/assets/icon-256.png create mode 100644 site/assets/og-en.jpg create mode 100644 site/assets/og-zh.jpg create mode 100644 site/assets/paper.jpg create mode 100644 site/assets/pass-key.webp create mode 100644 site/assets/pass-shadow.webp create mode 100644 site/assets/pass.webp create mode 100644 site/assets/seal-stone.webp create mode 100644 site/assets/seal-wen.webp create mode 100644 site/assets/seal-yin.webp create mode 100644 site/assets/seal-zhun.webp create mode 100644 site/fonts/HankenGrotesk-Variable.woff2 create mode 100644 site/fonts/IBMPlexMono-Regular-Latin1.woff2 create mode 100644 site/fonts/OFL-HankenGrotesk.txt create mode 100644 site/fonts/OFL-IBMPlexMono.txt create mode 100644 site/index.html create mode 100644 site/motion.js create mode 100644 site/style.css create mode 100644 site/zh/index.html diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..1e01858 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,36 @@ +name: Website + +on: + push: + branches: [main] + paths: + - "site/**" + - ".github/workflows/pages.yml" + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + deploy: + runs-on: ubuntu-latest + timeout-minutes: 10 + permissions: + contents: read + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 + - uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 + with: + path: site + - id: deployment + uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1 diff --git a/README.md b/README.md index d6f775f..3e2ce9c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A macOS menu bar app that keeps your credentials encrypted on your Mac and lets AI agents use them only after you approve. -English | [Simplified Chinese](README.zh-CN.md) +[Website](https://askkey.sudohg.com/) · English | [Simplified Chinese](README.zh-CN.md) > **[Download the latest release](https://github.com/sudoHG/AskKey/releases/latest/download/AskKey.dmg)** (notarized DMG, macOS 14+). AskKey has no backup or recovery yet, so keep the originals of your credentials somewhere else. diff --git a/README.zh-CN.md b/README.zh-CN.md index 26d4239..db444aa 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -4,7 +4,7 @@ 一个 macOS 菜单栏应用:凭证加密保存在你的 Mac 上,AI Agent 必须经过你的批准才能使用。 -[English](README.md) | 简体中文 +[官网](https://askkey.sudohg.com/zh/) · [English](README.md) | 简体中文 > **[下载最新版本](https://github.com/sudoHG/AskKey/releases/latest/download/AskKey.dmg)**(经过 Apple 公证的 DMG,需要 macOS 14 或更高版本)。请旨目前没有备份和恢复功能,请自行另存一份凭证原件。 diff --git a/scripts/check_hygiene.py b/scripts/check_hygiene.py index 412dee8..11d8576 100644 --- a/scripts/check_hygiene.py +++ b/scripts/check_hygiene.py @@ -20,6 +20,8 @@ "Sources/AskKeyAppKit/Resources/Localizable.xcstrings", # English and Simplified Chinese UI catalog. "Sources/AskKeyHelper/Resources/Localizable.xcstrings", # English and Simplified Chinese helper copy (#83). "README.zh-CN.md", # Simplified Chinese README. + "site/index.html", # Language switcher on the English website (#160). + "site/zh/index.html", # Simplified Chinese website (#160). "docs/glossary.md", # Chinese UI terms alongside English glossary prose (#67). "Sources/AskKeyAppKit/Resources/zh-Hans.lproj/InfoPlist.strings", # Localized product name. "Tests/AskKeyAppTests/AgentClientConnectionPolicyTests.swift", # Chinese client connection errors. diff --git a/site/assets/apple-touch-icon.png b/site/assets/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a73fc1d3a2b728cb132d4e9213665b79e9b515ff GIT binary patch literal 33344 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 T>eIse8Gyjk)z4*}Q$iB}vD^Xm literal 0 HcmV?d00001 diff --git a/site/assets/favicon-64.png b/site/assets/favicon-64.png new file mode 100644 index 0000000000000000000000000000000000000000..0410543cec67b4d12196fdb4ad52fd7e12e71637 GIT binary patch literal 5480 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�W~9TYD>~S@ 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 L?7zarvjBWX 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

B{h{*lQF> zBSQ3ZW8E|zc-DBV05=ARhqQ096;U%1x41Mf!M((>vv25wUCt8}1uHsg zNHyk+ygJYWU}`gDK4AdMFz7i1lt@YP7SRLI$UBZsorH(0@FfVN&*yo?6Ue^@?S9`1 zq(dWWk*YaS!7FTdc#Q@vG|xyTr+|Qt(r_H5)h$e|Ae>q1S_`P=@A{i+L<~kQrXT;H zDuYQ0-Lj_KQfP)RP`0LVqW-eFxYg)1Kv!ZxFE^>l-cp-k?bYOHX&pq_A<>=e?CQ`m zGVR0_I(M(zoIvW|-X2o*3HjfuXC`)CRV=~>twHMa{y2%V@!6QJoV3?7| z&T#Dw7j-P46s*j=v5rL%3x$PVi!&}$!RS0O&|)KNtf zGPjNK7ikCtqExwC(&yGKG~Qp8QfhZyeKAY~)!eCRNEtb+lnPh07xAU_1D-MJQy?fw z+3GCZMU*<^sNh-(f|F36`b&spxnlThqs6>yV)-nIl4O zH43Pyb6|7w#MUYAv?xi+74p2=87x*F2O&3WOB7lVsWX5}%*{hp_rR>zu?(g`F#Z<} zK!aN2K^s8XmI6dJp5=oZ#)!MFarTm3HMg9p7>v?)VLNVXQ!h<~&5gy;|CUO#^`=gs zZLxH%O>dB3Z3R<&@zJiL=c+B97#)r_FB!2olX){pE}4-7@mW4t5lFLzGt)!yvcU4u zi8sOv=R$3|lALZpK&5Y}fpMb{_7%%gc*D7cs}jHupxy5@&Hc%g950Eb z3u^dUb$0sy zZ}eiPf$7`{{l_Qwi?<&# zQRYt%ELz=}!es8mTR10zzX|(Q4s6`|#aF>t)@Z(v8Ir3WeAoDywCSwn!%K@jd1Iz2 z+k`T8=uKk*2~G1?nPE8V?^&mvu5>sAy$nP{d zw^56e*yDJfaMjn`Idhc+adtHnkhNx*;M>mnx8qyxhL?t2FRiYdgg?Ey6-tVDDPxT( z55KX!8oD<*9^UjNH>16FnS;r#D4MrhW`k=Wp)}(drxKnvKA{;Lz2fEk0=+hk{L0LQ zMDIkv;_dD@e=|T|%63J5L0`po=ia*^Dd9&f{iTj`8b9%$eJl`^`+7GD)++xdC`ZbL za~N0{jvRq}0T-gTxR8}>-9jccAanDTPTP{aD`&gc?JQ~1d?tcgQ(ME2_ROYUB9!7U z@<FVXe;Mf$d_R~liIhr*Vl5-YlVBEokA zv;qElV@OIb$+ajqUOK~Tr&WrQpAo=yvsEEhzLC>(1o!6o^)xY^an6jhKLS6j^m~h& zF|r9aIJYxUFUHzqW8>1(vx|-6hj*&siz@<P+HMe1pd$*|h2KZf~>Map9s>&U@V4#f9PzSwT6a zX%Z4*tPeReh@DK>QicY;yzKnXMJyM2FK-L%GW}!f_ekfoeX!iOmnMR_Ur@5a=!*hJ z#9JxGsVA1-o`9Y4@?6@TebXWzXW?R`$DaDVMTCe!O=SK)VxoI@c|D7uaqJKqH|cR_ zB%E;NAq9F>KJI-s`g7t1=ZT>pD5Pfp(Q9m2C#Y5{wTAz=v~<6 zp8v{=#PVZEZ^*!&b_UK zk#Lyo={-eF?*JzA73;aplFp5SeD7O`HJ|j1tnAIYNw;_k3wAbKf1B**0qd>Mg@e-ZXer^t(sctTIJL6=t)`Y?Gkp}$-{@}x6c1|!yiZX z>$iiM%i^O64c`y`N@*e*&<4ydoSbN1f%NzMtx$&u9*yjxO<2xOx39<9NA45-B#Pf} z@?_oSV$Nn>IXG74xLEU=>dBCC!Xyr%_ZWTp>t`6IM2{0`I&u2n)uOC&@W8j)R!4QQ z+591aIxd@>hJ?&)EGaj8yk3meFKcILM0ozxJt}8M+lrW5uBa$^qvG3q{uidKgS1Cn zXl)J?J=V>)+wIn#lZ2OHIZ{dz-t|}H8AbTTyC_HDHnB+Oh7o4N0j1gvN38h6`G$9_ z)it@|j~e3R>#j-7pp>L!g0im$ZtzClL^zB+G454V~UwXGu{0uc+U7$2EM)|$jjHww#PGMfiAIQ{kqLO5G)UQ~SBv$=dIq4n=R6Y*+ zrGDVLa)+^QVoY%APoWnmXN58BPbR);2}P0CVRx>mN64xrjAH}w&$7ZRz5-F5fA!P@ zBBM9N<}7VOf%SM=t8fOL6xNN5&lz&_ZN)92dvar`BYN?vBr@yx++Y%m&^j{5DIh#1! z&=N*H2hYcamIvCZd&B_dua8^$Ej4$2JEcwK`W;<=V`lIWyEFt{`HUxZaCSG9-t zUqS4u`gcc1Y4g&qZG4@&S=MGgs5II-XQfA1OOr@CX|NesU*EIY@{4qdzo+|NbTapG z8kjMR>!1iX$5k8UM@+*0Rk_yrwpPjaHrhWED&?i30?SV8N2IBODn#cB1~7$!2x+>)SW6@B3IKpi8 zCS`wrQBUlY`NycQqIL!d8KG$ZGhvn^M z<&0o(&}KoX_&=uKV!UIDuLSlmN>Bbm_GZIo-6z_(63Y()do13e=Y@mk58NKl?cKyY zvBH^%{$VQ5XVYRh09&$;qz9P=zs~z(U-w!u0QP?`C;DC^SCQp?XaJJXr}shN$>V~5 z)ClQ$<956y%YWmFRYdn!hpe}BIg@7Ugv9jrQZ2UBkyUjFSWn2~+M2Cu#Iu#8*&e?9 zl}nBvVoKh$9yi@zl3=Fy@-3=W@pUBGq4(~*0vg3LxLkqp*PEFW@pYul9~!jtt`a~~ z_2pNCFWuNQV;c)z0DWq`gI4-9XIEG~(Eo6G-;r0-(Q`SG*@q^RD=}t6S_aHM;u7Fk z_3MWMZe9@6pB&yvIFw1&I0$=nuIhq`?+U+&fM~Z0qt#xTq_~*s)xhZCecStXZT_8; z!YnnLm%?pK8Z`|!Z`T@k^7m*$mko49HLYy&*b4rWvFI`R?or+CGrYO#Z%t;+(17_i zG28-va}H!hbaCp6F;#msTp|+>wl!S8ZGF=9+BXRv>2ayVreNmtp(f z$-|`!==XinloN;eeni_h7By_D`qx^=+T76itKyW3f=;oA>qRUyihcUY_uvT)DeI=&XI&8GF|i{zsC-OEK!) zmGDpi&)6`|W@j$k>Lamxa%zhIagSo!K(-gQ6AC}tc63E^jTUbT674_yG4noxy(t1+ zE4rIyUpt{?Ox+c<9(gzuP&Cz*|D-nMbd;?jw5sa`_IgYbvbc8)tkIM~wi1m{aEyF7 zSf2QaEc{@KFXv65?>3qvgJFfY(6m1|US(*;NxprCon>ppT7|Kl?wv>oA1jIO!!)vX z!EA_Ke$@C}CLFWYGwkUUq0)OF_Vr8xQOcs-3F*C?yd>-8A*xG^GOU<*Rs0kXx{?Y8ulYK@qL6+kI+29 zi-uHcit(>2jI!^4m9k|`c6q1RRD5}LuEqI&JOT)Lb zH(YYd@jA%^VZ@*@=4xog=R(Hw>&Gn6(k}zycd*G452!!07_Ee|9vKY!XF!wKy!k6j zzuhvk8NZv>*o=1Oq4jT{fCkcEf|3mi3W@y6GQwqKH&@j2$C^w8BcK{l38`1Fz*Bs* zi{sNWeVpZlE>T_}!oxs0!tyn!2o0y?auJo#njS5hMgYinb<5+HYoE~D)EdA`>ok$` z8kSTov-qv&6CY2hiegya;$r4 zii?pGR_g0cN)M*elc863A|!h#vTq6N-fVau1qvDL=e8Vjo2h6%Eirr#0W0+61T?wa z&WU(^S<-V2IR0C_f9Zb!;WU(@aITpxU2+R*`ne1*k;%k`R3v-@xjaU_B?dRX-z&gx z2X;WgcsjQQUw-A=!-2>Svjcc1!F}y#VNU`wSq9N|ckyq|Vr=(9`m|v0STLnmebPc`99~1*4LnEU8uX(df1b}Pn z2-S-nF@a~YbL0?8j15M^wQBrT!$sXn@|IHr`2X{9w*D=yUM(=d6gii-4Sgmv+wa3; z-}ur{!deaBx4l~Xq?o!Ul|CAZu+#)=nU0c<#}jZJ zqWydic`6DRl!FUd3!_=c_VE;y{&n~)e)b_l!ik`~wlM*t3MC9?a!iHvI8T($U$;Gn zMjc3)p)ONh?M-6{O>}j9v@j(?E0W#5$?I(p9cw$1qj-e+vjKj-iKMmuvGErK|a>VzzXz$PBlb zLdAfRTr(T9lP-;P`)QK8DG3pKzCaUkMv*Z6C8oX!urTk)SyZQ^<&Uni?V1Pv#ES)} zim|UM5}ztEdQveuiVX%lEhRvT;@DC_cEPOxWnZzo!fYIiCWi|~fy3s_QYsvi&mB3c zP6zxl4j06X`M?2o%#8h8lMDLCCxWI<1j)&%Y`;PDN$pOS<(qAX4_6wHyUR`fz(2$S z8Ol%0Ujt}aot36x*Laa?l>d}4DO~I*u&NN|TD<-&{gg!iPK5m*?S_KHli)sBzO||%qS{u*?o!!meJL1IbyT)9=svNo@PoPwOqK*Og zq4_#iWS8GwPsPJ!fnIPrQG-!8zP75L$pFigJ-)ux8Pyz?@tYDIxHlGLy&5I77k7C+ zmi04e!SYd?X?Gh;K1#JanB##KAVQdiM_Wc(#_LWn`7|NJRdO$LVN~Ffkoc=)W3_mE znDnLCBjR{`ozuoSn0;taw_lLjlY$6@2f+pVz2h^p(`qjy`|MH3V*g*0LIqA(+zHl_ z$eE4ifhJCxn5G+FxQzP)gy;|NVa{apK zwP;_!v9d&*aeozkrs^UOpSD;VUM2^iM`>ruO%0#=^yR(myMjaRr#!mc3We6xQM_iJ z-%WrO$TWPhRTm< za(wwN&T1m(57c~Ge@5AZAdn0T9AKgWCyoq@qR$-c;>EF_Bk_s@_vBlh1?qv zv`cc`rAQ!~+aIEMhBy~1O4L`sbNoHsUb3Kz)JvT0(9mlq4D~^|kgG7f!87k+xC4}u ztRw|sW*|l}6w(GuJGzmWJvdeF1|7qo!XFWLD)g{j@Oa;lq*vuJ?hRCQu7Ogc0*#Nd z`;`3Xs*&f^tIx5{E*A=SY4@p#dbg6Q`>nZ_z-)op{b4;(^N(f}>E(UCh#1p`6sq>< z^tX)>5Q`KCWC&$9wIQuG(Lz>6?SWSl3|n=FmY!!`6G?)i2f4GmWa{j`i)L5HAXZ)9 zA{eyMdPukaXOPFX-)QNZ0Llzxwr9+$i4s25-%EV8M_V%|7+|26RYfi)zmx4)y36_{ z63A?PN6W5sLo-^og;R_fs-n&-YWAwr3Ca8qxD&U-`lvHJ|FXY;)B2EBb8e=GeislG)$ z)Zde2&IxFRr3Z|$a+YXUN#x58QAT5;3KlF^SQbeYy$FUbk%uaO^F8nn@BNwUnl4$DMrB?D ztd4Rif^8KkpmX7?hk1ciyG2^ucw?CH#{n4Nd!Y${A*R$)$d?)$$9JmIl>K^5RkA{} zMl8T)A|l*>j}HJ8VlhJ1es`h(I^^pck?*(`11ZNJ8NUKAMWt?Mp_|!hfs;1- zy7&eE*V8wYnSYW^&@WqRK9-g(U3cdiX_j*nXAUkc`C+V{nRS`m)y}x8UDVu2$H{51 z5WP6Yr*7HS*J(~K*BYuMWVLHG)toBWXB)83{GS9cfCn^Ij1<=aLdRl@Sk8tmW<6Tn zv){Z_6?gu3YhDRj2GUl1xB=$L=Z0|NtHhJ4sflsfLhG}LM5}g{ zBV;wSqri__$ao}!;U?_@Z!#;n9PK0o@eUDyJ~BC7&|Y9Ot{BWUM#%yEhtFhkbxUb( z1v>mPua%;fecKyQ2BC*8`q?f!H`T zYHu1L4TI8pE=Bk|07E^QP{>tr)9lOK@|9uE~+{Hwc{|wfkU)~bDC%y-os^ILzIS)E_mKi^>|ljF&90Tm`@USvi3MgRsdD5bf1R5+ z`bwwk{?^gpmz`M&n0c44*x(x~q8y8A%t1C5;gV)-%(<-Z@hCELTr1QsEzQ>P+|8^d z3BD2f2^HNrBPAltP>P$JYIp1Vk!`xoCK4C7-U2FLr8PXK-%1b6yt%(gNtNr0v0|NniNGEFYKIl%P><=)u!Q7r&84>^uV6 z`59!Sy_dzv2ELa6a!1X^X6v*Vg8T|NY)PsN8CL<4 zqW=f*8a1s$IU`?$a}g4TKrx=`Ikv|sRTXma1fHjMw_1iec?Nl-LBEH@lCELfsP>3~ z>S@!OY7zpYpLvEE?5X@AT?Gbz%`@d+DGST?6F%jKiTrRVrA!uYEx zipfWkvA|S&nuXveXo#p$Q9|@9q3h6o}$Lj78MkV7o&MmOoIykl1O@$7It0xn$Awt`CQgTeMwg%wx70k1fOkO{V^Z~)y{9T>g(qC2I0ZgC$#cDn81!_D0;?6hLY3iW z)BV1MQC9bmHNFIP^MQyrXk)%}EY|r%tEyPY2*R z0DmZtnX?5XXbC~*j{lokG>XfY#KN`#S>@ZQYu0~RYk;6C6sh)a1-Xw$%7`Y zA@?M?i0f&8s#LhqMlgnL{59srL zpJ=&b5d&Bq@#K_X%l?^lotIjLPBM5yL+L_?c#OuLfra1#<7`&>3sk`(|eTi zB2SI^>0ZF%1dqNqxtUp`HI=pbX$`l;u_cE)eccCced9XxU#r3DBir{#qFMTwvDy>tiV{C3}}st3U0Mw-pY+T0XL_s;o~zE*V3lG44=-cwv}H6>0+U z+jQ(Zc8Cz}+3ToL4jw6QjOeMX4M`>I(yH58G0V2|Z^3ku>A-f_PuDoo;iT;7a~Z#` zG8W;|CBpNnR+o>?emBimkuYybe2#|KMV8DAYN%Hxk)+u}Qfyb3fCgpQS=qmxgD5-+ zdL!xj8OFEXSzqfNSa>VPd_pqMPB%C^92OHMZCDlm$N3>}vT$m}dg~E5&H315vZwEi zurFiSDrX2&HQqJ$(IG* zH1{T_j%7YcUT><9u>I~MT2N|1fM#dBCH9mGys7GVUXle32k6>~!PylH`z4&<_y5B*Do2tno)}F6GYCR$Q%9 zF~@}-_Wjxs=P(G6B^YTs40**6=Y(ZI|KVgC#ePy*pSk`{qh`0MthiqW|CNzy#Cx>A z6;XQsNdEy@ard$jN3N>s%(A!EZuJA@TX~o~N%w0^W}g`|X1-u~o)T@9wzcc$7i&3{JSpu|q@=)VlM!0x z$<1dhIB)(GMFDz>iQPGMi!%r-xTcqvK9)McE8#Agx^Q`?&&bjDgk`|lBjqTl-a$4q zO6q1jT+^-cl_inNwgmi>T+EETNj$S%^1Xuk)YZ@ zvqx?@DcgwLa{L-@?zGU+V4>X3Q^?7Y6Cv1Axb0bW!Q9Tu!!5sE>enpUzD~R@$RXyL zPl%E@<8UaU670f$SPT-d+wc{)T-;<6>mEu#81I%xuFwI(LPKPgloK3nGSl&B~JWh;3#NJ81f z)l~fpw9tISRBhKkq@=cJjRI zW-@tL#0qWW^Veo;fZc6`U|S~-GfGOr=rV*9m%Ap*!$uQBcJRMUh5jpa3yeooy0ZLc zCZ|AuDo_qcF_Iz|)f*O)O&(=O2s?{81hk5Dh$ba5HU5Z~kIvVAvtHy2lG zmLd1uLUt;b3mID_UY>a!=HH`|4xQzbcg3ExtxpP6lw^%pS1VtzYE}w!To^jUV*o?Q zJNx7oz#B3-r7SHtWx+UBA8cItNXXLhE-SQ0n_B3J@<;#0Eu~lOy}-FMzQ)F(qk0>M zNwZ>ND+d|lUjs+;pDC^- zU1gJVZE>H4cZST+%gi{~&IsSdABy%Zj6TVIE=tOB+{|XFJLi)+froaD>M~DI`M$%} zR#a9kf1X7FBwkDSZ3OwHS)*oFRKAu~c;BxF{lXlk+lu!1NUVa2!S_6st>shM7A3*5D8n5aZWQ|QgEVc z8@msCMO5Ywq=f0<7JB99)>5_!D(7lm1(2wA^q9{y zFSyi=<+eNNPjNb)!0mM2?>JKOmO!5sQz{dc21u=^;v?CFy(Dt`*AEJJ<;F^2qZ{jZ za{Gs>&q?!DA!ZRWMy>GQ6M_tZed5&i3^(I%df%Jl1}bi+tR8;Ht%jW|1dNOC?_p8V zoO~le{@)&4H=Iq}gT4PA{G98IXV!SOMssT5Zqa#?Eo{W4(jfZNE%` zS`ayUdUx8JPj*`Au2qFgfjyvxCXu|Xbw9GkUCS2Y{d@Dog-Tu%imWsCrr+zdvA9v( zyxrc{&0oKl-fgp~zp{-@DRVdDN(~d5+OL`!C?QCv zU@#(rSv7graQTt9!YKLpuatxOXjS&UW>mWhovOS&*FOKf08ZyyPzoQw@1E}=&7@iA zQ{vVi$*bU_oH&Jh{VrOer5MF)$W@zPO_tBSVa(styZ$~X=}+mzhyADgpDkI49!n`X zVOuv@1~xM~qpa>?o+{r;waqKfo$kz$mAAZtc(Z1!9C+URMdlP{>Hh$Lp$vfvcKIAz*90{GmQJj3xxY~YhvHgeib!$A17KEmm{{fD+A+xT)9cmMCjg{k6|#5O-B;!(FM|gn1wU!2vV{Gikq?GVD|F0%;ZBAO=23Ak znj*C*{87%SS^hdD!j~9)eikMdc7kYAJ`;&MW1AMXQEQSINm zWlgR4`3pmp8(*lq<0gR3m_Se}hqo0J+}Ofm+t0e#h~01)IC~ zi=2+u9#iC*@(KWk+?VKZyT!FErsvTVBqhNdiasmacV6NQR75QQcd{oi0~mj!(Rua^ zGHjamw$!2kPBTYWFwvza#`QgK(1&FK&{5X_!OL%8zF;abv~WTGX>bT53K7grQXnTW zl;>46KQga183i%|$6SM$Z2@MT_c>?+8ct}n@NIqiq5ObnwB~gCELA_n*Q>(Av&F*V zOB57Z8`FdRHF4Aoj>#q-u5%26-=0N?JL{WtF(%+oQ*jH>a~69wPaT$pXIcB=fnQ}a zkbLc0E@PG;f2_05GB@1UIRWdPASdgP6nCh4{6*brEG&%}z@Z7;ed)5@DI~~Rcxk7S?J5FZ{KE)`D{mr3f#SRtEz~%xQcG_+){~qi|lWA0_knr_LoAdzuwk+ z7+K6ywc3nxnWA!bufI7=PODw7y#Ti#T&NvwY^EwXao~%zWj(-8xXgE7L~lbDUa(gA zDRHW{I~0u#tP0Paa5O)DqEzMwq5o?Mcbb>Y?_5u7efP?&_Nu0wX_0%crRE4<`^xZ3wBqP&c$UemxIpvL}ez-Xh zWA+&ot*0$y*x`xoN)5MNe8u)M&r!c4tS|IMw7}^x>_9H1PuBRYU?b!)Mk_uM`aeJ< zRSS;*|F&irow>U}HZ5;?NlMkGBxBx}g=*6S;;OES9AEqVCe^Q0T1lx@29oT7fsrJS zu{6U2m%nKQ8_}F*edysd;VKRB`L%@90Kf7(Fk=ZGF&i>;@kNA$8CBpVznJ)>QpcbOt|n->p<*mN}9^j@K!zMlt?Mg*sAZ3IeIk;=E|T zQk*#23#xdz0S^a=awW?5uu+jUiw%wTQSu!$>tX21U9nJ2G>31PV z1`>5TrCxe!N!u6bj@o(TilL*Us;fmc=vJgHR#J)TM`@&7o5>DLfZLIcNhl;nWP+^- z#wh7@!h}+tIiQPj*fsPpeI7J*|--kHa;&0css_&B-mR(+HhCfoTTV~2b> zG@^$=PEB@(PTQ56rtuni@MGj3)3JvSn;eq;6)aiXdT67mpOsmC2X@i^EFloudcQSN zFU|^v($m#{(SFm>z76c$@=H~0j0)#N%<=ZKz7yEo@e1^CP4_o&r^vD2YD{E~u~Vc< zBr{~0jqrMuhVk)1wurQ>Q<4yU#F)^R6}qIGMQ=)l0do|Mh87E_9p%KPNqxlQp-E!? zg`!<*?EAk31A_ONx5<-Uj@J_vL#srnGI%8y5@{OmC^(d-f1j}(Zvp&Rr?61{E8wo` zWejhnV{|QQrK+Kc5j08VzvrP+uR{sY^1T-QF~^(AIddwa;*yX3p4eU%%VRpBDQ6qyeg_-SHYcgc6an6 z*4fRT!NqNwn$5xqm-e37)W&tujQ$;(jSPzGh~CIUJL>s3y}Rb07=)WUNKs(OKSu<; zpKFVoB#OJw{aS>MTCJ)dFuehCx$9bfG&Xpvc@7+63xOO)G1BS+?r>QuXt5Z)i!3#q zrMk$B?H3F^_Ltb&lu>G?=m&aV3qc#`Z8hw^O0Sk^VJ~a!9CH!-^z2MaufRQIGBS<& z?`z|wx{{y#(Y*T`oH6{K4Zl@POtw!Qnm0@CukUuBi#GcM=gu|gx1b&c#tuw)_7$Mt zBKn#mrd)J>7Bx6J|;82NAnFQn^N_Os%(^6CX!aamivH}&2c+Ux=(xlc2ndD&Ga zDuW%gk@VtUvir)!lLT+Pj(k=2_c`tP0uASw&H zdMJ4|;3L9~*gn^}y*{-vO>uNz@fZe=Ao~n@Wt6i!UX;Drzg~6+u{)ATexQUrS!#;q zPAJ-@V61!}9Tych(`@a7qI1ml??~OGejBb3%3X3MWEVWd)?~nb_qQ@f=}nkdxvO<* zivyRPth1(Q3`$L3`gB3*&pc*iEBgUB`a+oP^nUd+x24mDC;hoIM@=6)mU%-;vY5Hp zYMD*6fytpwA;Ewo7w8D@vK>{dYv%Z`5Ts57nFnv;LR`-Tnn0XDWQE*zTA<9_=vAOpqf@)O{mkvw`fU?afq4P z9vny~MSn2d35C?H>mfe)RV~!QKgs;AH+t*LVYxsNipi`5+go#190zxNx(fJL zM8l|BGmxycHG}!)8UfS&o3Z7r-~v<+(zsU0uUet(T#;v^SiBB@Jeh#5%j=L+o(#!3 zl;&~i@~1scyX_f9;daWi_muhW3*A^OmMt&@Z5AsApkdB4&y!PHY-g8zV|ZS&opB6{ zfN<%RP;tSxyy1%Re6*hrnYseM(;QOwT6MBuPPawC(=U&OrUa-gsJ4A`xUD&ow_5If zB?-tiM?e--dd!Na^gRAPlwpeCT)2>3>TfN2S+bkaLbK&724C~Ng;<$X^tmi=JtuaF z4zE}JmMTpzU_-8(a14RVb|I^dMmYmKrH) z_Kw~EEb}E!MXE?Jf0{E2YmDV^A}Q!o~WXFO~}4QwO`{EW?(q5eCr{^6GD z`fE*`mW3@&o1Rc7)4B4&*a5OE?$c^7U;kbc*vF^;Kfpt!Ta$%1?RSPz@X1G&-Oa>qgm#nOfOR4N(2 z$sMYA0Z(gGa|9D~j~M*r%bB*A@o6f~7?e*k^s0*vBDgH(!_c z%f}NVjCZNUMD+XAW z?LFma)#2^^uS1ml>^Xix!eQagxJv}*C`+CiBs7<$H6l6KCBZ~L1Q)Swr-Ev#xvobz zo^laC%9Yv{QnYh{JVU*v!FG6gS8z0;V52&T{u1R6_dRiVMG{dBFf?&WEqa(#6D~b) zw_1sIz@y3OE%qs&RA2zJI-0H(X>Z9lBxXHnJ-VO;oNp4HmVK-N+FnT#tAFwH!4Wdq zD|g0rUocZ#r4wmFl!p6A9gOjZZ42O7hIj@xea)10S`Uuu+~pqMOmTGO3Iwj>L+oVi z+x?S9_lSKo!fAAMaogAyY6V9l*vwDonuQmp4Q56zPXXA2X#&T)cWE>}34IJizV*W^ zt^?=Zg&GcSQ@6KOif%_YRevCLFwcOAUSss^v=N}z_A+FOUQ{lr*XIjGF5M!g4A*Us zR<6VZSdQZ)`i3+Yr=C)avQ|>5rw@0M5-{gnl#gj9Vr(&`_qvwA_A-JE%7wyL_UJW( zM7{>?#@$8%R!JUYh+N$!4Gx@cJ&tCxK=H4mBJc3thMPZyp*nK^6wcIePioP7l zGbg~r3iX$K0Ar#um%4arpdcd(7OJ4ho?R%MDdQ&dl~pjTh{}H zh9s}l0{sX!;#6@21$n@4`;knmV0rcL>aa0>FjDu=^qYEQX=OAhY1Fm3#ZX2aoV_ko zkx+s_gzN)|?fx)&gKb2yxpvVZPvf`#XWSV`HfUQ##}d!cTiXWqFc~i@Pl!C((wy2; z)PCqhfGhT`8kF+DuBRrKT!qs?G; zsPK>I7ZD$*jPSFit|PVB+fq7mW-VnubND_`exSk-hRqS(%4dpk^^MZ&fR<=QWS9^d{mnzXUAE>6ATF2*{= zfcJr1hXk$L1Nky~V=`}rc!rDts4t0{g%-qffMd!J?C}hyM9wWDyki1o^gw20j!CeQ z;W0-x%$5C9O)7L<7t5Ze&N~XD3Fvuht}B$Sq_QUuIWCTp^71cw8;wD#zlu@K`!JRp z#wBDdXxq8X-}S0eRLIBmyx3fRbYHEW`!U7Xe%y+v&o&2DkM_|(vB&4y;u5YolQ$*GEX@>G$2LKVdSHFUWIGsr8r!5tN8 zKRjb5s&Jx4>XAdPviQ2lsoxQDHIDqdLcTZuTM?cqV6htA(ZY%p3O?!VAX_lTq(N(` zwH17GQCAt4S+n|N8=EgR_AawWz{oMhxQE-+A8iuoTR8Scdt)HCbJjimZ0b@Q`5058 zs$d@BGmhSUKe;)X#+Q|mC-*WS*CI+3xTGj5h2Lq()LrRoo2`XU3D9`F=93s?BoN@1XpKa5jp3rxY_ z@`B?0J!{MH^y;~oK<}9WJ_BeVUHO;KaE*arpK$PDKY*`wAU&lmuN#v2 z+P8SkAvT5{Ia^OO+#8Bn=!TNoUz{TR>Ow@k4keKKBEHA=Gi5Qd_hiCGg+TtFU0=sz zmt(}=%R9KgSh3_b^pvXl#qmRi@XyFAVZ=L9d39{lR6)U$9YS?flb1OLqH}gC^4$yc zT+VeB7XIt0+V<3qIK|WINjL;8|Fx`B3Hj-@bin40rM|KpctXqUR@6X_#3Z_s0rT8X zRa!+yx0hZ0+>kIPv+6V@^pZSuc75!(r_D;>?q+2?-x#l~ApCl^%DpEpkWkb1+JWjG z3iZNgiwK5#SqiW0d_LIUmHk#c+E+z>HN=e*G~-njI~Ixoa`L<|ZOp(b`G%YGedn&P z<akZ8Nf@{#K{UvStq(ty$#;8O#( zoYbzytVdkuVSt6r2_ba=#%8Hwgs(<0j{)vr<^nRu#?%yGNSN6wHr)!#>V>gaSRr6a zKtg_@_DHyh5s{fksnNg<^2FDK2=IPqZ4K^;`2JX2`=*F#OGen~7*<4{Ty)k=i@<&^ zonvKVx*r}*9CcM*tef(L1GOpsER;#VlZse*^Ao2-_bz5^ z{ct$&Bf#X+MgE6LD+Bz?Uvu1H;SWSWoqb+~Pf4W;1 z?rln58jvD=n0x+A@_hJXig2@^;2Kxl_~#2VU}`r!ZnSQ5L%Yy_k)bgnF@;o{_|-gA ztov)!28^InU0AX(ywcFLzd;jKO#TP3eb1ofa>8M$*|jxH^K1ZavgZ&i{m!w&s9^ac zSSA3zS1dEWuuIWqzWkK7InWoVdrrqA>Bv^guMKHF=XUF$TJN)#>jr2kn(GZ>-^JzM zbmR-a5H=0i*v883tn9O!);dKEmD-4cS?P12$fDwEWAL%5(3ET(c#L~;@B-MjI<66^ z?}xH0-jL%qt7NN-qI$O;DEN(AM*Pv4;L)o?TFGU2UC<+A9t@&c2VGYWNJ_M7h)Q07 z%2DWwlj3ZDQQL>0=Q4|^K5bA5YTzd16ylo(Ds<47qJO9*54~)$&z>!`hBzs89`UWi zjLZVsHhx(Y6O4Nsz1O8n2%unvPv?TZv@H<=1Yqaugw))JAz=%n@9wJLQ`V+`B|B0@ zTa219IhPE?TXpras5&Zm(|vZzdv`9e=V3^ao;|(-smvrXsvm zE)Bgiv%EE<$r|4M8h+*$#dl4W^0rm{)@ImGlTUddqAJ;d&CQ>ba0RL;PPYd_=os2#BEn*;Btnyk9gsQy3iF+}O zW&fU0mxmrJKZytY+bsA}vG3Hsw`_l(x%hM}bG(l_Lc4;)0?ILcX(I!TlJnW~aOoNo9-dX}P_-l`djiln$p`j(V#r}zw+Dcy#%onY% z0paQ<*0PSXAs#|dg&gy^x?BrTiqq&3M>2@!6_NCO&GjzFxH(+)$BQO-+-sl1{%soH zF31fPdb$rK2^2|S3G2CV=WL0LsmaHv&a4=@WkF%~$ny%-&C;EW3`p0%(Q6GFU#gO}3Or?%tlPkHd{f8mJLpM@*Y@s@aEMlM*b_#kTi! z+6o-aWb{Us70!!3#j#^3LoZ&6b$vMm$@cd?jIl?n?1B-!T zo|>=0+H~`eEMJIhC5E^#G& z2F9(CM&8;bwq@aFbSw}?pT^lv>5~2LS-S}fulf`du z7ZTaEML3Qp4>7aQ3xMMozQ2K+>o8~4z8db-&qJDESNNUkP;gYGuXH`2^o7!s>2hb& z2l_ue{R->;v3&#|G%`e=Z!@JTLY=?^LMu$_?kKV+ub;bdB3XR zuaaI%kDYZ-&fffWK{M@sG(%s9y- zp1NJ(N!bxQ_!umcq37$D&^P_>wYn~v=Wka*H1CgnY4&$&Qg{0Rwy~3p4wnn6RY$uq zROALe`^|+x?A|Gfjk~o&fNm9~gOc-u*D96zm5htYw~ekd`P$4UPu}xRn_kSScGNJF z78`J@u0NOM2=6UT8~B74(?31?oyHY}Z%vBj*TV~|;n1E-j~W-4M`4rM`w+UH4)(Ud zffgLUK%<2^OLwGrkXSZ)|BTb{n+**~P(s8GOGSOW4xmaLP1jghDyF>O@upgb)4D3~ z+g-CM{@9e5Dq1YeaDV0zGu>WbH<_>|7f1^m+v}nu-;*EofQ)%hAKKMy9>I$2f_9jSK zr|X>X)5&EpweT~*Uvr!>vpCVD{uVUai~UMc6|I?95Ml|%I7pOE5M}iL{tpn&+^wjJZ= z?=ublGMmLU(AuY+tQtW#DMry<^eA1@%UN=NKgkIYNzR)xF2?{^5>Wq{4X!C|KnM+G zkr(`L{$}=TR7gHNxZ+OUGw)&c?eH1YT|J~fSvHa%t;}7XSO1xcO=e~%3MSOo3o0xw z$kb0yU-@WovG)M*2!oEuwh|I6s>3BY=1$C~v~VrD(V_(BR3nBO&Bi(#tS?-4q)JP< zmv~21-4kI$_J^dEgk9%A3is#isp{i9Sa|wzz|oe0ct<<-9{~;XZ=b047$4^M0GHSZ z?yZg-QW;`=hThZb^^nfH#<51K0V;2i)&DiQYboVEr1!r7$>BTSV)P%V^!7`#GOkk( zD1J`jxbc}tWWuoJA25mjVWy)+{67GUKy$yM zS=fD8)D*Nt$Y5;lYi|w+tyS!iHXyj>WG9F#y%)F;qj}4yj<)Le9Hb5xR~JAlz?z#? z=rXGdh138#@NNLM09~M@1$6frWe=%K4ToeJSRT8HR*TCmLJQl}vO~{p6Eus_Ik3Kh zULj4t#GusjRNNf^8Zn6c^I9Wn7cch!3^)S^%*MdHE!=j+Fb({`;km*%mg!h6d5S=< z#;_%j=--HKgRY>FQPC*_!)YpQE%07bRl8xTxxk?H7gmPCiEWWYK+z6 z#H%Ql6E((sC z6%I2y(5BL+zDzQxHVM`KZ--pAktFKxvrY{0!j z!iBY@xX(G2+yy`nTezXL!2bZZ37x9}`j(n#H=ZGaP~Gzbl39B2Km}N_`GY&PN$4R183MEtW#v6{?tYa7yhPbnyl&q3s8nD zQdU8agqmiEdVHzY_d1u2YW_FTtqM782brG)e{N`dvbW zvZK%W3gbb8qBU+ksoN2@L7;k=5rzYw@+4jmwNr}AbhW|Ryv#sl$C*SgCW2b3`9~X< z(e5`@VV)t39YJRC9LyHHS9q1MjcHkYtf3isUZDzt-(Gj2p zI%V*Ik^;ieDqeWN&N_j7pbPbi?Jnmv5SXIGH)=pR9zrLtUxrm)*GQ)T)~s-D9t)Z= z!5NFbT!DD*VU6c2i4qCi0tuj)4C`F^gUV=muEJVUFkBOZd-ECUdExB&k62x8XH5Bk zTvE0~49EN)B4j`pIq%aNx`VlzF0X;+Gq5YwZaKJvUV4ZSH1RSaW;0ax1dkITg(u3! z?z4SL%~hgS?3j6nS#ibOOQRJoV!tw$%N1LXHD%XUc)3~wFD)R7O@Kw0!D@S!F?V$U zVEBc))ilOxj%_mEg{4f9I?FHsJWH@2yfNPpE~1#L(89uL-P#A1nio|I;ewfg)yf9J zz}-Pa1mRA{BrV*pEI)KG}?_wTpO{3lrv| zT-O0G7%md|jH2Qba2d7_RS0*fpl*vxKf$#_k8Y*hvBBnD^sOb_rp((o99(DwtHkUL<`@8h|%;7w(e2^QPC-D zmqblp2I{64Lh`_bz^*6E0^oZFsKBWS=9~|hyGT};eM&7`XUulW9UXa%Tv@;cYn9-i z+NFP3BfSoOlD)5xI{yG;(6kG=l*xn*Km`ceAPC?YK?@jqmJqews=*Rka9aM81+xXQ zTu#lnmT$RSON2}<;vmwO?hT_~e=IiQ)_f&PcV;1uHx4~avKq}l5gbNn12+cz4|$}u zD+T4;aKJ9eM4&u9%LvU5IgP~~18itdJaj|^FGk>kC`BbKKS3JBu*Yq}imSJ%alOhw zqL_s`h%4PGO=bucJB(mkR^sMSlP0$R%6{7k2^gTL&ne2dxs%Anb6d#Rw& ztvWiDb%XH_P844{v!a<$8y0pup}`qUm`503*7WkBq}Mg0=8=%Bal2+1y;HWYrxG zG_zrC$^-!diC=gCaTdIy2(6uy4)Uu=yltG9a z^Zr41R}y~U%g?zMm_IWT7GjQ|Roj}>O@;2Bp`Z(T2XNVnGvWY-QBlDuM5U1Z%0PMY zVDl^&2P@x+Vyk?psb99{j9UuFj3s!(KOkWV2HAtZNXU9ZC0@^!%HuIriS*^^T>R*4J=M;A$byFm(oR4h4)k90RCuQEo?2!tX1nt~V-7$5Tc!oF?gUb| z1$kL7EETphTJ)JqI9q~IM9PZhXBAinQv8;(K47*;Nb8mrMuok-5yV~x_E#004*@QP z^F?J2KLmW3wSVo#&y}kG0A_%(tGp2>8)yPlR)l*?7`ZM4XVE-HYcs|3+W@qto|X`T z+1D!%uK8aKT&=cniY1K-P!h(oK?=nar2N1QyVNvQgHVJ(Qj3;ZAPKYFA0s!F&k?G8 z0B`F%JxEpflpq_Wutu<^XW25#c0a7vG}FuCZ1Bp;HC13Ph|L>juiVnBE3$BW#poj0 zAISNISPiw@Fw3w8Ry!&Tj}ax3+uS2%lI$+LLb$&03APgn zp!q7utX=FId+Jc|mw&U(%`mku{#>H*VM|U3m&zg5*v?nWmK+F;3aTM%UR5sT^?+n2 z+^eZtiwa-J&(;xlLEx~MDN1*fGREk3Kgp4}H)G(2D#i}4L^uQIllp|%O(o+~a6COhG7Ed=E6lLA#(Uxd z_e5LJoN4r!b8r_rBYX_Dute+bikh+RYJ=Mi#Fv%;%?r@O=9AkjT?dAt3Up$|{XiQ- zSr-hLKC!8bpb4H}EF~wqs!l`DkjZ_kEEu;2*>wagPYVUC^n>AvD9zW zvVm7`W@w-@cc`7F@r#&*6>e;fNV;H|_K$GYc&3U}aNoQUXfYL#)U41~7aN9WP1GzF zaGF_fE10nSv1~-pB|;ilJ%{22qf+`W1Yix*x7r$zeHkz{jW0>(+yEwXUZJ)lZ!qN$ z)m^7?00q@NH3|nSL_?&u_gzdifUYVG0arFjbxPzZe&J}%;p8JyO#R?UV$Jv9iqh7> zF0g{gp_szMUWceLU@ITkMv5D@HL92(mN>Wn0Aed9 z$1f4JU{pTxu0g`w$R~{v0#x%X0II3pVnDw$!3edA)5L5Q7#L;>tVH4Q0gDL9(JTW8E87wPWb;tLFKBp*6|3Osmgdc?fA*lUi?g8aC^MV6 zieY3=96}N?ZT|$rgTOtLTj&xK)M9rBDgRa!Fh>RCp$r#~wDMya?RI`iraC;`h+-GEo-(C*3>2Cl(F&~q+~Y2+qUp77v0 z{{UsnOFrpv2m{@P%h{8h^|?pA((*Am&CnUSC+pqsh%1VDnDWhu;O4YW0DKz zrQ(IDi-9(>)&?n6m>9f0%DTsyLftL!%!q}F6~lJ~a2Jx{g(B5t#Do(RQX^&NGglFC z{!mscL3@SAN1A~Qoejd51G$J}r86uPCD4g`lLzJ;g-p9KTI>P>#^Q&-V==&HymJB) zA+1EzSGkD`cqQdn9KkohAbVUh#G1DBa*=VBWIfK3k zohf0_bx@L_v4!7=ah(dgLFn!PX&1ux^95FLQ_QtZB?h9R1wqjPt8Joj9Bj;~6%B=U zh>ekWhL+^&T%6m_F~eL779a;K6%czIT}B!gCR!lZ&8^q_4AV^ci&J{Cnt(SOm3B+C zs?DuWHzz2$GqFTz#_I@mcqMxYxCGw~B9sOV3_gwN;PGt3@xX^CPA~1<`_eg8(3vgVDT9ob{#`84WL*^O|isESk4D@pwH-ihs zO1nq3pQJVEMHOWO?Eaz%75WL-jk!#qmd$+$#L4GT1&BS);H)a8y+YL$q8v*qi2b1A zd=4PUjhtLlPYd%K8aN!iLK!BPw57p44{!xmq1;rW2J{(I2xd5i0;0`!d5YaIzDQqv ze1@2rSvWumWiU%999Z#Dnv43e8sI(DP0L|;j#HgGjU5*JkN}|OK&fak{Yr~y%+bYX z1U9~6dJi(gm`7lD<%sX*c>e%p6C4fGxmH_a5&p$AR6z}iQm!ePFJx#3JVws7DsK#0 z6*9_I#XPsaX#B>JBC{2Up=((>JNcQZQ%}e84Ly_|)ZAW~i2-G>A(4c>0w1_RswG>f zfNWq~Rj9}wk#Pxo7-Ee9mz4hixQrp#2*#zAU6FvGaZeB^!fbOgaa}}pr_{i>XsEM> z;%boWF>g4OX>J}@JWz$Gb$1R5Zi!Vv_>8y)hDd<<6v)Q_E)-LKklqqa<4_jg7{nt0 zy#WQ^H)13qBY-S%EKQUV;pJ(K!nM5W0YJRCA}C|rVLg12B|ykxX>j7!)*UvRvzd8k zpl$>}S&&v{0+##2yD&H69lMHON11P8*-F(P5E~=oF|?zoNU-v^sYOBLLb6!++%A1X z3yH2+)+sefK&lrjxy;W;;tHZ=*@)6#6`+QyOEfNEm>$_?WfHZLClyBUOzPLhY1@1RF3IhD}C|Q!{da zis}W8%o4kg3jYAM#XvUKg9w{wIc9NkwRP8w%u>f3FSzcYmsTZm1)6!5148$WM{U}< z$uB8N0v7`EHp9epyOi=5wg~evFghZK zYR=`I>@UF-9w2cE!7e)>g;g*hfLK@{Mra`&z8){XQiu($K3Hv69u30Ni;(BUt6+_*!4Lzo<*WKn zVrd9W&8kkNNJ8*!iRi80Fqmrec;nn_E}o5IB5e$G^C_y-!`xH_gJUe@ z5vUJX5CYf$9@7hn z=%dUN9KE|)Qfu09aq|F?vB>uE)In{vU~=vS&UPssOoe7vG_l+m4Q(Jm3`>Kz%y165 zs`B`jpI`%B#eEklc`l=+Qo*lJiA#kR8Uvt}q~7k;N9LuDBG=_5KDxZX_Zk6nQuTa+CBU>Gs(<`$f3hw8wrn&w~=T^!1b z3g{pK^aQe8reb2n759szS2Fj86M$~->cBx2$}u1!QWFSn-c8Hpvf>O>p2p5pI>4|S z*0oJQfu;7f3kJ5Y2^kLW3Y$hYI3QdpiU5{?>XDiSRxOPak_!-}it9LowD`^l7`k~2 zf(4wHa0LM+DZi`?L-GraVS#$t7{oBOBW~7~Dlw$j{ivZ^E3mbax41SehUE z05#iNBY+`jL!9EhMGcVYRCtyMv_Y>?K~M{o4q*-IS~)ttnPQ8mYq!dWCX@(5kbdDjMpThg6`-zg5xUdi;T5iDyDbQvRTll07j-yO;iYKuD9wc zC^3)P7FjITh^CF0VS!S|>k?N*Z_);Uiv9HfwiDSrKmrPGB&%uf%)14lqC%lsmZAVF zN{AU48eG@`p~Py2%yzyH5O@i!F1?gQI`Q6a{mAx{eAPx(^T!cx+`@ zV-iwm$BwCevaTGw2V+FZ8MQ@b>NoAHA*;v*i(+~F--tx+)G=46Ntlf z(^+8jL3U8LpO#gbp~^PE%#J=GqBcBdJxUu_*O(}R2VJuUE2ZY8gOq9bnM#3ZJCDT| zLD2;cUXHxQDQa5tQA`Ga8K_If!Fp>l&A71oH2@Ys$A`ED1XFKk)!r>sGz1U2hGiuy{x3$bw)poZ;;GrQ3RH8dQ2ORVuQ ze`aXquW;ch=x^pd11#I4>IfLHjYN(6^$kUi>@dKaSYdH4mFoq=7?W8q>oAUlQJ9vg zdCCWHTiU{8Ly?(2V`jJ7dXEWGGCY=zmZJ3z)1bKbDm0%uh`~wSKvq_}Ru`k7{{SWn zl(rQ@DXLMr#rTRK4c2Y(6uwByQQ;e5xVwv^zpGy|jA%M?R9>~IVQg;>U*|C3+q&P} z@Ob8A7$}r`N;N$Tqs%4w0CjXrA_P{8Pjcvt1IPOT$~hUXsw+v7jnuG=Ym+>@5m;7~ zoClgYi2&FQf2?ca7(cNEb@suy0pMS7ma+h?dqki*ym^}iFAwfpC|XkGfVK&gHH@#C zm1M(T@%8zDs@Bg3L>VBk&acD(u|DT9uuzPza|=a~OcyT?YzPX6A+}K2SbK`yuwhU{ z!7`SKas{b+3+`KYh_=2a12tYugvQACD8LgJDZmacTGk9-FR7M4f#=*MVG4tT+-?&B zUy0O7jh=ON|UHndVp+X1>HiQFAV0)L2@Lf?I$P6v=oE zz?)3GT+JP-wJ{(8$QuZt;1?eNLtZR1Q`_MRfvTHJKz8xoXWueeJifdn}M{LGj2R8+2&y6X5Nq6p|eae|6)r>?$yeCDFNOh4j*sCG&^mgdAL_ zQS*WK^@K>Ei$k&oBU;Z7F@Odq-o9=aDnicB=>r9V6kZk$%2t?QoSK#fLuCc@a~+C~ zs#vCs+_PoOrx4i-Ez`rOWjSnLL>y+AA(84YSgLOU2xXX@rG4CKxa2hu!}Cfd*P;Mw z{*Y^?{Z12KB(c!=g4zUW0iDWSQah!9Uf9bFej!dDw7rX@FR=9!K>9&yMe9>oa_E*+ z5{RG&F+f3oSE6kNR{A&~>OPSQ0ylzE79P;Jt==Vv*BG6v)&U8&L;#@S{{YE`p~dhD zlx(wj&((_LE5>P!psMGoNVl!*hbG|v0MiPn-Ga;x7JG@%a?+MIutQdb!KN|fa~n(3 zD@>#eu|k-ohcD?JrQ)z6$#iP)z(v#JnNSDr%F06YL>T9YX+iX<8?WXH#1)ZD z$2#`z90Jw4b2N>JEP!&scOLPEvbqm(;v$jA9mXZH&;_{SCSx92_2?jcG^o&ZDp(!= z0M_4d#gHRsi~P;y1!=?W2(T>%f8qIvfXG)TkBPVQ3orOg#|;=W{E2Y|6jA0P$vo=) zMyCqRH7zs_SD3DfDCyLsEOO_z6>==UGUNdLj^zY{H%I|rOV$rDco=1@ock)9ny*eB^R44J&JT~fB$OiS5f&pTpT0NT?GsWK+J_=;2oe+ft` z&KH=9Zgc7g3v#`px?0#9JiSZ7%POZ@U=_qJ6)b}+d;$f~&~*Y9Ixtg+7N8u~rI-QJ z`+*HX>FQ{eYec(vQByc6foI+rK~q$liBZz-*rH`dwQ_-$I2yj7PT65=o}pAJT(Egr z4kb%8L2w$(HC%dt$t(lG{D}-WN%?h!V>xH$ymo_9YdSmX$c? zAD2}CdAPe-rBegXh~Xf)D=XBn5*!B!5N8$DXqN6uD!5?VL0^P;6}cT;@AWL{G)h=z zpV|S@Uzx7b!D*5jiGk{3ZdmIOq91@-J_&?DbmeJ(?xs8@9vkwH(ieW(}(jg z5X3Dn3lM~4iBap1aK<%dV)YZ(j=y;&S*g_J*SW-APPH!9@`~SyVGz(`ZZS7NyWPW( zT5NfWDO@^@)GL3uhEO>wpXAwwQ1h;|K%*9D;k}#u916u=XWd5CfW;|QA@?2$hDYmsa0TI z-EgFoNI|-PA{QMl3dc~UFPIffoQ!c^0yT+tDmTkg!nD0-^%Q}-<2M~R4brfF#`07` z)^r6_3KvLn#0d{{SLLtLQ=VH)ctKS?Q@j zP&(ppbJh^n3l`-j5CZhX9#qO2G#cpp#Z_%rAMCs=ApTinrmEK7@5CSgs|+7)#7?0C zce`V_g^Kmn%3uN0MpcCy(4oxN@qx;Djbjb+PKlaYKxurznUQHhOkyG#RYA>g5eHGo z51|_>He(&W<1}mtHl0P%3DgWQZ(q7Za9_x{8paK0Hd7UYW(h7*ybHaMg;b zj8q$>wUrDx+Z))lfz3pyCv0U)r_1IGtO}|nR|!{v_KDXJ?*091}pd@SL zHRI+A6qf@w_Q4<`0aX0TT1(M0Z7vQYR&0T&h67ry_HJJ~P{Q*WRSR%;Ea9SnbZwhApZ%Qz7?oY4h# z`k)HIqmGDLR6G%Kk3%uqcaq%*k!tHCcmVODGa)MsTup=8KxM6(TM;b9wc7sxuv-?E zE6g4!f~vE9z%L6u!!2WA&tzIPig+BbXBKAHuQ^A#jo(5oNZ zbkHuld4?MemfhwR6&3^*S4w{bct+Ptl`M#`jVW7y5GufC^7x!V1`1%&eOCkxvXX<$ z>k8zp#v@J`<{;RWeGD-m46Zz=P1adtLU$U)Tmqq0h(OWYmz_Zut0$vJ%78Zq{Tq*O_Gy zQdRnax$s)z1wgYgiZyF7v$#{bR&t}vS<5uy5P@iPZ~mwOCJpJRoqp`#WrFC~)j^D~ zd=k{5aOC=tqqz8kdVH{}cg#~ExtmQ(ty>Jt9^yv5hNcQj<{>afU}TmsSDKqCn~Qpx z>b;P*+_<@8R9@6y9Fa8*9oW02kV3FnNN85~miI1&;u~%mj-q;KaZHS7{qu z6m;TJvf9>gOEgtmXDQ^lK?u?IzY!Y==FNOWQac3|K~n`%C<-4N{>A_!Oqhc1FUUU7 zLzVZmWK0~W+*F<83b2By=*m$jhWcT1kh7Kq;J#AhzyvQ8`IYp%B@+BV&FcQLu&A5b z!izzBNG%X7evB6>QP0?jcxu+d1nq+aD2F1HPj$A zC2#@7%S5(F5zsZ%Z6|aWqN-%<`KefMN-Lic25T~Od5$*)@Gdk_R{$-7Bs{-J_ds&- zQK-IeRTjr>9_0&x3x47ls5ci;UphL521jer+|mO24&^etz>mDT9~M6m0AB&(AZa#+ zxR&~k8$>Dwn?5D=pu8(}GW$CYdLTMe4lrCPN{tB~xZX7umCUH)+!wJ-(S5zcvG5YF z%tOUYe~}=o)&2ZK5db&J!B!5`%kskNVBQR~G$^>fVBkQdEx%IWm1`CBg<>l0vlWYA z0l*nGEVoCW@(ajhD<2S`L{>OiSBqrmCMXoy=3W*q$(m!jJT{R=vJ?=(n{unD+!b(* zJ|WgLHi@=a*sH%WYk*_oP_6)ZVL;*n&#IPv(5T_d`iO5M2k9tW29MPV1|hAdajy4@ z8>qr=gH7B78=ZlaBUw_q^76&lI0hgf&?wcqgO;wbZH9nzqVcq1yH{NvJ;ityaJqo8 zgNk`UMH?GE!_62bUd+U!Zp29xnGmr`HWSE4AV)H2ZN46%+_I*OE1KguVk&@Td{n<` zAb9flxyv%}@9R65TuthETV1(+$@#a+lQt7Q%iiXzXOS4a? z*y!A$%2vuQu z3p_%Mas$hTUR_#4W9m9W1t6*6Y!?isU5pD~XsNRvVx49oT0p3=;$##a)(G3kRvRSNeLX2+;eNL~XG z(Smo>RItOUm<>-jCI$zJBH3QTI7;jc&j9j(xqgZqGb%0R3u4iim=l|-2)`(LOxhad zCF$mA5`$H^EsXPOV8zzeYv>%SVmTbK zK(^6!2n8M4oh!a>B9|eoK*H6N0EwodtNh9(VSzM?K{kfQR}eS=c&Ip94(m1<+h+R9 zKHR|$Xxk&p@h(}_Dg$vy?BxJ;^Tf?Qw>^k~;lh>d%mWupetbX`#e83=)u}mYMM{QR z!m^MZ40r^>UD&HEr9dip1S+W`WXp~S_}o}IU1nEO8&O^Z(K3yw7hGnb=7MB;ige=- z`$RTteA++?1e9<&W)Sf2mzZNS5!6eeVuJ(%rNVyD$6qDt3(Tmm4&@kPfbe^PDu{vE zW6L=`yhCAJgEbu5=pm1YaIYnI;w~zVya*&vz7~J%x&&!uaKzq_IgBU;OSgyxO(|w9 zRSHV!r0n@lRFi=zMMJ&KMM*T`E7i7Z_ zCYE8RSqB5p!rqJLb#Hn&DuoltrRh?Yw!H$^kuQ!JTFn~+L^AXAo zhVBiOmTSKdfU2xH@f>!ZjS>CISSTGGz~v!%;w8;nqf;n%vs~^K z01i7uh{Vf55Iil~J7p>+Yo6Ey8G+_D1yN8Ou~Y$EwagpvKqjy3As|p>^^9egPHiQmb`C?+9RJ@j!wZt|eJtFg)FJ7-^;P8b_7;jZA0E=xIhD z+Mp3$Ep&5GRS{@WXmm^si)su105JjZ?ci0?^h#6#%DC^r4XYocWaoD*7Ax%I?}=5FIY^jD32T z!E`AeC{%hFipv~>^AL-TO3?XpFx5^Awr(e7G-5VHJNZ)XE9tbf6dJ-YKH^4AXY&@FNYO$!rpr2%#DpgU3fJ zEEhh@FdNl3xL5&W2H|81xv+`}M{Y34R%-=Z4gh19iDouxxrhZ3WNXVR0)h9B6;apX zBW&Fe$!hsCGstVo%NBtH(Hk&xgp>(qm5K8fq;2y0Lg*>&WH^K2vl9jEs)Gc8Fgby& zh5@TYs&YP%nWTc+w(Z1l3NpnUW?jjHWnVG4z-y15*oA8x@l*#bh#UG$vW%`t(cID) zEo;D=2(I<_QSFUIUo1vRv_pwC@yuut?cRDlOp?`d`|1pQWuAY5D7G4l^&p_w9K{e8 z%D6j$Aw@8)J@yI+7t~1?MbpcR}ny;iK0;{74 z1~sl(e0cXVs#6sE1T=7+zB+`O$_w0Xivvd|k{%+iyXpvM0}-=YD-Y}hWef)$#Iy?Q zxRhBidX|+cP?Kn>&zN%s7jnXdR#&(SZntiTk#{G9{glgs@ln`wQywD{^0K*(0FK!P z5uzC2GS)Ml9Lt6D@#0#xfhma#6Q_}aK}RkgWmpwA^TfGS9HiUkTbV1I11yR?gO5=F zExI)BRjGZtjJg#9G!_Q@9%4C14F~otrj_!15K+Sf;PdVQBGjdRqkxvR(FwJ7)zC&_ zfae?#EN=^9h_p6|k@Eqeb$vm#hUPJID=PrzR05Bf7}BN=`i(KFWq}zC24joHpjhEo z2nHS=;oDjkb%Y{KhOS!@ee)C+`hhG(*QjUg-9cjt*j=;Qbcne^^T3L_x3I}S*aB^X z*Hc@GhM?81(Bq$^y4(v#7?g4?Ri`n zIaXS(V_t$|4HA@gLe2o4t5AX*^Mm`4a1>6LW&9G50FJV+=~ChZs1|J|6eB?F_XYz_n%43~nrx%N z#2t_U?88AQL8Uy!wi4r6-X_xo50Q%OL@LN~GQm?oZk`YV&;j~27T-{(F5^{WOFDN2 zoXyvMJxmZd2jPg6g|SiH%@l=~XE7qm6uiBWUX5O(n@CWZ=^5CApC0ANfZ-0M*3o8e zH+3p645GMrX4u*+P(DyNA9xKnPZE)b3@Ta@ukc_tLl-%_id9nuH*L#St(Z(o%&>Fz zjdK9JFg1vmR=#1dNsMMQZjLBid7FD#b%pU5kNJs}1AV1BTF|D_P3X+9dK)1{z?;e_ zUV^b|Rd73B{s6fp)rLNNJ~$swjk<=3tkaQ2sVZo z>H=?6ugtQH!XGIa!IX zlI4N{ho~wJu|=?N!hq(Za3x1|#0)O~054XYUlOa&n$vHnr8$EI94tgTC}mDps9@&f z)64>@4Ktr`BDT<1N3NrwqVoR$m$QSEUGf(cK-m7z+shaz5bzSoL0UMEGue(mD~P72^UJ307qOCv4L7YkQ@wo ze^7k_plIxUU_-s*E@^X?>@1t5O*}%P^*(6eo21 zL;%pG19eBz6t;f%{o*Moqf^XajtVRD0NgOlN)>7WY6wMD%o2pLbLvpN<(1k^HalTm z097q*@fwN=L+5cT0cT#}^&DMb{>sJ(yVL|?^=%Sj1m@>2@*rR^6@$#}V(Q`mGGC$# z%8KB1a|D1iG;~F%#cy}iULH<^Y{rF4TIv=Et-F3EV1^6bVPd*va<|ORC7E(C>{L59 z^8q^w4t>LRg|J)@B;#PfzGI3}KUjuESR*MaS1c_EoDlK_Y_}pcZcX9pS{yC3{1Ysq zymSy01SsI~0RVg-sjOP<(f-4xFkN|;Y~aq~tvIl7B@ANdd*b}c;iB7If7yUQvbH_O zr3P%2)NBza7~qLBQ-Kn zaaD&?q{v}L2HCbI>$y^x3%8f_tIr~zOT$c$G2FV=pdTa*uB zA&{a6m8fj>Fe)rCyhOl7%(qS_8_Q2Z%$U)lG*?St4>%xJxtH zT_n3yS5mYib{z!wBqe6ceE=cz@wFyl01}>vhrF>eVoin2(DEkbiW<`5 z{{VFW4GpT-Y{_U&Yf_EnrE>U`1EES~E+EISexPuy+tf6uYK~&ej+$}eW>W%@;PS)Z z@;GJ;DO+Re<{+09bRr;acjuM^1<+t3-p%I6h9L_L8|GyIvyLW*S(N~g=-sMgNpi9-eAEHI3Q>MZvOxXmad=bG=?Dyg< zD-=vXpw`%fNTka586?hZZ^cT`wZRk&XbK#?#*AuU{lXxawRFMf)1c^zD%I`*R3<2f z(P#}GROW9ED_wskKDFBO)FDl$(&fEQ-FbmVkj?UlG(4@oWght!7rr%Lxn3!!Zzf`k zMnw9v^qQGZ*C2|5Y!LHt5R{;z6aC1^I-Vj!o zTjM6+v{|j3q6HO0E5)X=?2WK676(BOZd-z~gerpuS6+y!0m&Oqt{@w+U7Wsk01rt{ zk^cZ{J5`p{z`x{cZML)4h$s?JoAXkdMWa?5HdN*`Rt!=&Hx4KT5O$bLiM9>{5cR2xD5%)mxo z7}4ZkW`6R~1p?!D5GfWt?^5(FSM7M5B=1)L6;56VRv;` zDh_md*|Qd6oti-Twf^g@>D8Yx46?O@I3$<&mW){-b zIjv>|Ee4JXbLt^*c&@ztViYZ>l6B%<%C$qppip6s4(=QPZM!zWrI7yspAZCbRKNRB zOo73x_u>VPU0SZ-LkXvCc=H9ZqOShZjjM3}6b!iKWfVzjtq$wVNExz+x70&TN;jCH zwc9MFjy*=u9*!8ooOpYCi)RX21VdPG9DQd00JBum#mg8sIX!yfx`L!EIE+OXn&vm` zC{cE;BdZ2j zxC^jzo)Dhh8y+FWU=p;-1YI&2W#S+ZjJKj(8*~ic#99MJfz(S}9rVmD+Zp4zNMyPz zWD0{gdhTWls4&z6OBzFRgDq<XSg;0)(fx{Hs9Sr5;@d04Xagz@ z`|c%R1)mXK5kkP_g_3Z`FMgv|y?c~~gJ1VBV7gH6%yl9h7lZwmmR1p<-`X)@jyNG& z(xu+a`DMsbHRe`$R+p$yEkk1Mi0%=mj@fb)KsMB9NlsU1QBpPbPx2vEhZgJNF)FYR z)VLlJ5dZ)K_hARx3VVLxtczA|x{n*lSzl2rP-};lC8Jqy_p}O=K zX5`mTb2GRHVmLk{a40m$ZrhDr$V)FQ^kN)-6dThi2AbM%-p z+Fk9UIyQKl75QKl()x!t5v~`*5N-99Ojpb*4$bzI=z0{+Ru#63{$0?5e0J?yU(U;<2HvBNlMISLvL$cOi9-!|$aV?G* zrengv_a34qlE7sO#T-kvSAs+?n%^W1pt__X7SEJb9)}DH1@_Fbt;?#PJjJ^EsWPAe ziv-{lVfl*OMyYG*4L*SHFA^M-FudZW2Vl$3r%?(mFs&z(ktKM(Vk*1^(d}iGhR-iV zs*tVz;}Vu2+ZyE~i^wTVh-}Ka*nCuWY8)uUUM7PHXZ~f8 zNLWTF&9=p*lbxFc z9Sxi7mNfQT9FpWT6xv@iAq>?&nW+IsRx0v<$*xXhqycZFH#`WS21X-cZKd~EU6iaMVugn2^4X#?MwOQp5 zsT&Uc$IP0}kx&5=N7aIo8F z`w37}iWrj%IO0=wAznL-*gPAUpcf>(TN2hoEF)Mhv_zmr*g`9n5SFQH)^XvMs@i7V zK4wO8xBvyr8Z2wLmE+OeZ6}MXtAbUeHFr_EW*XzvTHG+T`;`nOn$tFBYP&&L#~+p^ zqz#9zVKK$V@iwm|9q}2iBDBTe_c3j!zsx6q=fnmd5&98`EpT~(ibqRMVlE)w z1L%nXxBzw30F0GO!K3SM#0zV-mbS)PYbvK(`^o{T^P0ciKv8&?(FT(PGLb8uhcV$u zus;xjQd+I&mRE#1HhYc;a5(V+VOCLX_?JWsfLXW`S4#4}U=yIDsfKYW?otL@vRcQ= z@iG+sE0uQH;i~(=K06HImm<3z(02GEsgXmNDUUhwgV07-bqYEFn?Pj08ya;HJSbP6 zQs9_Hy9clAY(&)_U^pNt#~XhHzi2K*30lJf&{h;1ZIHpto08vZ? zuBFNl>B$7O35J97F6pcJi1ehU^2J;u^EF2XiMMP10O=FwQ zjZ8wZm7?J5Rd518Kmoy+;Rx+;z-Fh$CSiH-KxJ-OE9NyIwpbF3qr&F=ObK`}R#Zbn z!lPBJ?f(F?D3KSo;Z~u7_3AN5E0|Lu;4MTJ0pj2;N5o4(Q*2XO#$fu*OMIeK zdJkBJj zS+cPgst{hq?eh$rfbzF-EGPjks{G5RMDkgf!mb&j@O-b@P-ljvkC?0g^4oAgIB=$c zaa*IP;dqPE3WgXrwFwxYU*0-pQq{YOBP%Ctrl$r%YjXbpkZo)>+@MOavqy;Zi}VLx zSWk^Axpwc0fQm!P@66X6Jw@7CzhBr>*jCtLs0Yj1Lp z(Zp;*k3UJvX#m?gg8e;|U;S-tQ_puNe@`7Q$AW1>0Hx$n6{L}ISd1pu&b!4|Y# z9rK$~O2hDuvDim?FMR zLUie`h=F=wP!;)tbTNo6On=X;3q%o1ho!g492$vj`O%tPD|i_S(LD34!d9}>MeG9mW0Si_{dv~o#F{wG9?D5 zcMvtlkzB(uWNXwxEn)IM$RYqL+W!EC6J%ukFfKp`0Dr_LDHM8(2TW_T!5T^$F?aV6 zqc1#5bPc!6+&x>6D~r!i!RtX*@8(b%5P6!v6zY0W7Zd9jF|EDC02QfhwfZ1Y?#p(b z0MvBN7O+>I<$)M&R%AUw0x-9D@~=doLzdd|{zSFFIJ!R2)v*t3##92~dESX|S1$Jb zad5DqZ3noEgzsJxA2DpR z@QU)N`+zG6ZHL4JaK4c%490n4m_Eo3Ec!%F7wI;ofpSXoD;fAgt^E>|Q$0h@ntdQz zD!ow%p;ha0*4yp`v4(1*nk%=|(Dkgv0EO--RX(9qBY9!*L?aY9DkUU2WwN8yfZ#wm z2LAx%%gJ@DpSYtsx*L7*I@Y#+CFDJZWJgTp66(U}BO81!Fs6nsAVhYh5|rp-^Yaq- z`B`dfO3ZpLAh3NPTK+?EaRC|-+)yFrErqbnLZ<_QB0f>g@pAV^lh3H&9I5=op0!ZR z{PhylhRk15tXZmPD*+Y?_=@^NwRhliQmG!+QT(%h8Maz>Vy?q?7(m+5RB#^0Xvu4Y7XsA$Bw3{f}%nWlwcNzuIhSs)yCM^{sW=~LoZg>Eff!M}Y>wNv8 zsI+G?u&QqFQruF2=u09Mz%uRlv(Je0HW?p?=~UYX@-7M>+0p0Bq8P^aQ#5T`PrXaY zFUw4zIusL>cpuE5oYvL0zmp(cs~q|DHSl)4{KXQEb9?^)AxWneyzoleR~)Dy*m^X2 zl^>02*;a&In~GU2(-MLx!1R9Nq;ZvV;D9V$0-*Vg(!mFEg^O*DKCpaF`7iPo1RZzv zVG98@Rd1+BlviPe?mJ}_x-k&q>|qg?tJ-0@mZ#e06iZiGf7w-LSgo3B7EN;4zGI7! z-;?GTIcZ%$w>k82E~b@sGDja#O+FNhr8q-ejzY%{qmwrLIbdvey^U;wUg2UcAam>0^m- zIVk!EuA{LWwAI9NmgxTgw=QMeMB=I?GBmv)SKcDUQ=#}Gl2<2^9!9coK3E#TJ(}{w z^#x}u`iwZRaB=OFu+h3(!OX>mR$noMy$o#D^D@IpjP4$-V0RBwHBd#9HXvhnc-vcM zZo4?I#O+8@^&e|3zJJ6eaL{&tjAuYF%WfEk0?|DUTkQM9iDkV8lIxY;qrs$0fI`mA zLfQ*d_=c-AJ;9`I6}WBA*ksF=tpp3T6Yv1m7QD;_CR)(w_>{V*V@9vRa1ckV5l3@(?;mLchW@`rH1jTGw(k=i4G$84YxYM7{4)!F_KZ0L^n+c8xxXuj zoXT)2z#N|t9NMyt?d6KR2wBKisbRtOiL1w{h8lpJN2*%6!7OEq3PpG`8pZic%})da zL-P|+&z7KzEAbkMzMwab*A)<36vekGvp1ADjX7xP%uNPu%M$x2>M02NVcqkVwfKrT zdL}Na>bQvNm*FcZUfX7)bWb6#%%z4Fz@e3Bvl!vl_Z{s50sAIu7EW+$@hjA`W)F#FU^z~_OC-Ej#-`Yyhp1*_!)x&^sa9n?7v+hZ!EJvr7_hEcOMR;x(a)kJTFtTevj2G*WZoDCM72`qq%Z)9_M$ev)^MvMnA z(7FYYj?l$jM1X7>Ad|4;s918CQPeLPx0Yq}1=hSqzdd6xpaDC1{{SFWtQmjqCA*8r zuD!)lR|49C0UVe#O{%uo$yYM2JkIcBwj%pmePNzHTqL4aPRusNLJ zGkWt5Hnz~~s41v1y#y@E#g5I~30C)RxJJN=?-zgMqcW%@w#SUCl&p!&_5BWT$3IF z07Y4&E9&LrC>FVDD>5{rtKwA^ANhR{)5NwfW!DosV?6K;{pK)DJa8y4Y)HQ_u$D(+ zaz#^am;=gfn-aPNA%4TB+$~BC-P}x1=*%*bc%}d^I&K@p0oegHScn~0%(dkCxU^QK ziB>@k1fi84?o)MSQndO;7Tc zQ3OF(mQ{5gu^$Q!P5G`My`sKqyt0AL0<3JOyt zVD6@0N@M07Y9460j$1gpWc-N@4s*0ym zjT~dRZUUJ?0J=8a%8`W;z4>AtF5N_fCe^&kp@l8!;^NeoS-vF$2CjkEa*BqJe1t$b zFuB+JFhw1BfN-xP5h*m`iNT8WLMtGw{{SKzZ5Er${{VhqU^Sw@dG`U?R=&^jTIZ6k zA&Sswd5EFD@T~foG}C#u?e1oSW=;dB@w)QrWUQDwUy?oeOJPUSYO6Vn(xS2V%K^uu z7Da&SPd;Tem3it>5(N?8iBLQmSA*tIRt`-?wepwDrU?sgEnJ{*BvdsC${eq_f~+wu z;$0F_- zZq5i$3fasm@z`Ekm8Gr-n~#;Qx`rynSj?bV*)i%c3dmQl?6on9o31k#RYgZnGNUUc zj>0Dh3oEO9_>@>iito6b5pPwZF}9|ie_;W~V&b4lx{-j+{L7TE2MV;PToT-olYrkL z)FmqD*XklmU>y?JuDnH#OGVA$tU_Thh#P!N+yHtqr|fvdW$KpYgWs8e5L^wwY$-~9 z2|$z>-OZGlu&=YYZuP;*^9LF@s(vN{f`R`4ApuqoJK_Tx)z#tpL_JKW{Av8l*e^?; zAFqf!8XFw(zu9UQT|nHaTwTjIqzmyZE7s))sI`jkm_dTFxGYmk>m0n`o|? z<)4@#-VUIHDNTqv!s=73(II8R!XAll0wCBHLk_ZPM~s6h@ag=CLK%duVxM6fHs z6%?@hmP!PG7y;&6+lORoqxgcG6!io-L(H_{A5yJT@gDe{mRjkld@Lz(?O;q;os#IY z5e|OnDS#a2AT57s$QRTqkI@v6C&ai=KpIzk3E>CTC{~Vyy5F%ar>`WTFV3mlC;_=P z34O2TQA#a51%tF(&PusLo+Pn|ADaR#$rK0A#rGu!@^7R^>C8&rD3+iT58I99f;yRlS%fv-l02x;nMUoK3cJM}Eq${WP zWun5Kh2kv)4HlyNhiOG%K8bN#!EM-ov2J3NdUGiXjZCJQwb=$Tx1rJ89=8GIOn*}B zfu|-JLfFIe8BH1i%^mxgCJM3dhxr9P1zP1q0V2@v+{;Y>aa}Rj+@&}O^fyQ1R61~S zD+cwO2SYDHDodBM;tKw2rwANd=g1ZsH}FAw`Jm?m#)D65P;bpWa2BaB1_ z_Zw%T=r7!*f=cqZ%u5zIKkpHiLCd!KKT_n|GV!@}Ijy0qW#v7~&-}t+X4=Eh9w2jC z@V5P72<8@slIWmjdx>KaG^bu>kroY-Q`jpF57cVc^~$oHYg1msCdT9oxUIj(Ona`8reQ&M|EvmUw&aARbBRuchN@yGfg;g z3r`~ZxI&~$Cor39fad3frM`9t?q=>x9KdFj$J28qiZ|4ysMQ?p?g?1N36ZGo;@nEA zHp+lZyGt?!+BX{pkhuq_ij$jkdu4#9ggCZaU^rVhFn&}|0SpTPU7`<~fvc4RfK)RQ z`c1g`@jD`eN_drn*U&Zg#4cm{cL`S5=?&L{8ARX` z^Y*AZuxKzkhVnY76`=|tWvm|85K=QoEyR=qSacO%8}k|V;iZ0#cB5gcymmb zGZaH~GD6D)qhrOdQ3%#|UU-iLKs>ZRn7)Ldrm8T4Seo_3P||CH-WokbI4gfapR^KR z(MedrWV6rkXpgxq%n6gGXo&T3vxgC@v5umd&3Kq-)EdoW%u_@`g$Y*{^$WpX$%xy; zDQ67H{s_4T*)ITb>H%=RBG(>gJ_<&u5w&nK*_ynr~1(oM|dLIlGE9dNtU4)JhmRagTDKgSpy*+lO-0C>!8o z?#h9IZb7X=2v7y${lo#FIN|=m3MqNsCV;f2*M136Eu-@)D9nIf_+K)Mg|?p&Ce8&E z4rN0qzGlJp1FxEj0x-v;`v9s)0L2^;F4{*I;x1LItFOE|mfF&0wGJlN`xdF7QK973xHxUS7Mrq zWyX%)B6~)6$wwrml8P0-&+;fFb$Y)2#_0_$T#NJuOO4<-h%jlY;%`AN-iTJy5POtGd2~dg!qG<_PwYTm3TIl)yn2aj1j%i$>|ki2X~8$o zG^ZXT9r+<>8$ld5#K6FCZHfiC$3Y0FuyP$Hbf6doAM7xUoxFKsfCX&m33p-&12^UB zD^k*x!Q5k3zi;F$#wLW@2T%;W9wjLkYYTgTWUWEt->H12^aVn}lE_1q;`#`LzYDSV z_lmirg}(GbenQO!ZWV`3yu`QypxgdVEv2UhTr(DVZsro?zuan>mGiu^{52R}qbV%X zp+Tu@%ww1gFLLcgYz$O7*}NCjax(F|=3YbHjxJIcpxXjI6mopVkhK&!#K;sl<}?cp zD7yBbYk~Nd85B82VPUTD{{YxJ?#+z!BU*r^w)%ZT*~P0p5n5X(1ni0-L32}^^C&Q( z(V&TF2*?(K;NLj7%k$K3BGw+#tmcKRuf%$$+~@Ze%%oPF%B+I5v*w|;AXCh%p+Y&T zapqjhYqiVn!A&NoQjKgQXn60K0^TygWort(x%i3It5J32;~V-w*>siS8I}Y80HG*x z3Y7g3TgpIAOifmjgKz^w)JeNOBX(Z`Ahf-OORY`Ikw&?enj#JiKN5vwN2!8@VJ(lO zzoit=VP#hp7fMD8 zW}k>qwLU8{+7E8n#;kW$6jQ$LAS*8pr~CvBh_8XDWh|`_oF`p19s%oUJTZEL1%>pf zWd(JZkT$9;-?+|;?+KA{c1v+J<54vfY#5UKY*Dl}+YrC@>cqXUKX#5F|tZTvBR zrK1rPBGs|=nAD#G(J!-?NSe@eEO?0M!;$@5gs;I(Ly&CY!V-qOKbPz181XA*PA<(v!!~Vo`d9AD+{7cwTZj|z$ zs7UgfQOfK<>Xt?$HE!u0T`Gpvn7j>W z+u6ecE$OGY8ye(GsDK63Jo#m*2w>>_Lf=eTsefqRhK~?l0Vo}pDQdj7-Vr${wQsA5 zfL->XaTUu=mI#{@XO5w}urx0`ZYZuI;A;>XAn0>_##$7!oI=R45$9JjX>L3hG6-NU zx45OO`Vg6Lu8iBvpu<`=TE^7?1?BmJc1&>Q42t$6pAijl(CuQkHyIfnLdu)f@#ZQD zjH{;fLmwkFN==bpa*&wXpNQzH%Xb>8hTGs}+nB}qg_1g(F(KNiR(7iS%(S=cf-{OD zK$3mjzF+~+b8j+~0`Snx=|F7a-}zvmGa;yhOB-qtnZpA$3F)~u^1MoiiUv^U z*)f&ewgv@v{{WF}FX(vn3yHPbUe6;3kTI2c@Q5UIED!rJkbKitvdC1VY=$jP!KVbN zN-^bIhM=h&VYt$P1?AMJI%Ktc`GbXuNmhKZZD1^QQC1~#18L%N(Ts}JU$}<<07ZwY zU~5=W$>LjBBY^q!79k5#@zW~lgk_+9jq#Zpw>!6<5wsYxPgTxKvC>~vu|)s zlJzVAlpaNAGMJ(A8HiYT0F`N`pxwU#6D{LqRtV8g$cc}_)I|_Aih*Hnxj*-a*{OL@ z-)9D?sf(c$mR4uuCf%%aK$ zZv?ahI6%!!Z3OtJ5aB==;sizC4te@Y1WXow0w+m%Zv*>b!F0jF6f3q?t+g_4gfxBS zO$=ngawV`MH5kyNCo-%Uwz% ziFyOS5WMMs;6a#*RrumsfMiwPf3ZPsT43$;B@*D;_ZqkhVEwZc0^K1aP!w5-k7j!p zUSI`rqqo0s1`8#82EDSfSZ&ht90JXSfVE?G8~*?yam*{|lDA*yh+xlfb9rN6Y-)YI z%2c=ovslbzvH<{M;#4^6uX6e+MT@t86Q?m>nt9&7_=V#)&Soyr!=M|uswfG&SSb1xly5{e0VxxdzhkJDWE62-)Us+?syyx>st^Ej&LY-o?#jfmN6_GwyAZFK z1ugEn5e+e=l`CJZc>e%n7oJ{N4owxz9YZ42GK8w$6$B}P3u&##PViV@%m-74a~KNd zu8N7mCdpyyW>ZG4=#~#dH?|Cwg1jZ5px!%)TMGcI_W%rs9L$06<%HpumNCM`rU->F zEgogXSv%=A@-m^OH&aCcii#&i6mC|*e4~(!uxX&GxC_?-V}pna!FKa1n4qEaD}rfG zDrTFIR>`QD!{7WL5C;->!w`~_L-PSB)_UodlmoM8k%oN(PqVnJbA_@#Mk=o$EwAh* z0JS4H&37o|O>_-EMi~#5F)I|@Ej`O=C?0~P^^-*$^#EQ#O1}?K%)EbWq3RQ=Bo)5?W0IHQLQ!2_Zbr59wN`jx6 zOsrkz8p`IJFKn!VPrz5{#BT%fz+;b=P?s4q?jLaz_*t8`Ijt;=nA4F@<|vN7(~d6 zQrog_@9P$gdCp}fwl_$AUdv=#4Ge|P+FG@mzIpQ~&2J}SO7aTfuepOhUL{30bjsx+Emc(;1^C=ltXpMzh7e6?2aDcAJZfg!!Qa8e zpte^c-OQh1YUt`wv25B5hyx)o*?W!S5PRGHN)?O6F#V&5W{7v!Xh5tjCeW#6hZ_N+ zU_`y1pj0=K<}d)m2bdX1IWba*sbqJ{E{Bz?gQ!6k4UKZMfR6tF?j@a+>3)gPJFX(5 z6{pDr;8>=uJAKR0E-b*?7+@N{b10xu$@hrLvoHLKFfF_B6@Gf|ydBC$2g#Hr)T5Wo zuv9eVckvxElB0qEEo@PiBKVaBY2r0TE73$ZEs6o9_bEXx5Bo8@vX{#Ehi^jO3+@)F zfgCVcA;R~}$^{Cw@fElu#JVG+yX%q!(4or3;u|*%np^{*7J+5$iH=zKfWQc_03G?3 ziqr?1BLL$8M-0ppkPbK{2`&!-saBGX8a`!u?WE=eY9lW*YEg5XSBY4Y`4WmdX9Y@< zw&`_!LfwG+V@kwpas!!|WI)9oK?>ZgZ0Yj`uwzeA5h)nz8WB!h`aq+;sjp`eql2?6 z`3BPNb7#X0CCo2WyfGTSO{EINU-AQ0jN`BD%$iv8VvkiTiJIl>2SiCKGT^#bXNjA% zpSb=zP555{hmUZVv=GY3(l9UqqpSxC3B2 z7FgIHF-0+7GSCh>iYCZoCCsL2xRz%#Rb0lB!5veda-9;N3F<4u=_?cv3=zN_#S=uP z@lu=X)F|zK@u7;XR4W)*L1wxQ&H(nsq%Uj}4mdR8QmFizCOjmS>;`Go_fUrg+W^2` zfL%N428~|PFN32Jt_@jf)9DQ~vxUHWxq!V(m%Vo=l8X$_k_0A+pqKJ$5(_s;eOXEe zv$F+2i@nqo5b1XEVNgPp5!jG1D7riqf0GooO03qXmUULP0=?^q0*vL&_x&I&TM2>i zB^AY`T{oPHsdJ|Lr5;|ABv1m|xT19cnFU;T1{U;?j^g3wwq zX}A;vESL3`Z6kb`azG`aJCz{f))5c}1NN5C<3MxWN+ihO3yn}!o>RdJ2KuvF`^(%E zfmu;35u>-^1xA}noJ*8SuazLnuoN7Jaoq!G47be1c*=^u1kn@?*kyi+l~uSLu(nTv z+1>bxkhjBAQgH{LETB?%f0QUR3-190)8@O0T8$NrzVIaQH93HwX9VIUw9*P(PSp zSeSBkeZ@}Lp}37kBhsMJu;6#}mx%-xs`9_7X90m4xDH?nrY-6qm3%HD1yNXc3kL^P z8#3BjOknZ`x99B*jD{ls1G2PC5`_R4YyubsnmLaoI#jq&v&<^%z*9NgthE@PplPat z+Sf<8&`JcS4r8>i(BdqoYYlpoM@I|uEgF?e;PY|P0z*~6_Zk7ALiH&kno8OFhdUSx ze&MJagOD^$ApAbFAj1?K1Xgv$mKf6otz?)TrM2hOd?6(p`Se6}lMt4=W@@tl0Sa$| zKOha8@IU~_9%$G#D$K$^taWW4h#WmbZZR>e8ac0O38H>uygalBBn6?`l@hniN3!pu%R17k#x(Qj4?y!KZpVY0L9IS0Gp^4oi zG_jhakz)iL64Xuuh@#tqI;p1_Gr7@9r;etp41`z>;U#Yf64i8b1}7gD`-!?{ zme?0g+9i_op)J34mZJdgLf2Q!u_j^VxtewWqcP;1^ zhMpyWuq-Wks8HHvj4TiZFCdnwL4_y)54$C)eXEI_9(~MW-Cbc{1Y0Hyz2{#@wPK;A zS2~CY0b@hYxV{fTN1_6)ExfAR`GwkpBD3u7 z>T{C?b(3aAEi>;SHxpf4t79Ml+iMgxM&m|EI_CnR0FD( zUpR+q*2=hOC2jCZ$W#^w+5=}zv1*yd>r+52^@s$uO$L4XoCpMzFBLN)&5hhA7@jNh zED-6bZ5l%v-7ilt8mU{(Ppmqfd4Y`-!%7!d#1!cEQ^DYiZqO}z<(Ff~S)r9z6N5iK z;cT>=9e9`sT?^_6TU^_qCOMo^F%-<4Ug2~?UADQ)aUym$HRX-P23MafE-9j~UlS

uz@YNQUCSm_g5a3|b1Zqx>--U7it@}# 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%0A)fb)srC5kXRgt;py!^D2W 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

W)DJb5qbv3o7>;&Qj}RR-d)bXlcq?OASwaJu z_Cz9BeR`1(nY#HT;|bULZ@lkaZNXQO6Y!YCaWB{&hxfn_UpY9da&Lg$RTl<-+G2d%M}=!W44_kHO=&qM?MBehf=u9>;!LqD1$j)y>-+%AM*igt z#bX>+=oS9O*m(5bH3ory%Szz-BRB)@&miDofY-|Fa3I`zV-b+NQdK^)1f||;a`C*% zb*x^XR8BT#{tmZ4Y*XNmsHA!t;DRbnrAG`YhX%t>E`1CVm8T$Cr!nK*GUo zPiwb*)%|U~dx?)Hk6@B-G!s+!wql(E$bk088FroPlG49 z$84b^Z~`x$6CVbFr?erC>_pQ8`eD6JqeJT?^|YILp4NNp*W1oJf2ggVd;~Zj%k(Zm zMwT@v2FKw*mgDkMj{L#*LQ-Tmemk`9g$E3kv_TTs%gAbd)rlMIDpN<3q%>T0cES|2 zp0{W@fl&jTD7j?m3V=R3P;K)(#10=waW=c-E55c}`qTdt_xGWq&yx@81%L!K2vz$5j6sryi(hqC+KqM%%^Efjl&EM3{~sNCTscAnBcDa~86VjG8fZ0a9Iu1f62Sufe72BC{QF zgF_BIk~JR?Kb2A!V6h4UQ*s6p`m%fJO5S5|`sCy7%2$6|+kWjE+bL&CxkAVQz)LT9 zPa%&lhB!^qp8EtHdMX%gfo3y-cNwa80*M*lfFyqG0DfPoWpz;G8EkU*ALRrbdt*&I z*}X(tg1P#V?#EXOKjk!szhq!7JV{NFHH^Bf!fHG(3v^!94@B&%#Ttmiq6dHV>4MpM z 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 EKY1a|vH$=8 literal 0 HcmV?d00001 diff --git a/site/assets/og-en.jpg b/site/assets/og-en.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d7bb20ae94e1d9e4e2a65a1eadba36ba7552704e GIT binary patch literal 95514 zcmb5V1yCH%*6_W!1%kU1feS2o8%Z?(VKhAUFhBf-M@H#T^zBoW+8>ySuaS z@qg;O_j&89TlcN+>{d-r_w4lVoIZ29XU^=?%+m@0UqSAZ8~_Ok06=>F0G{RnG5}N* zlz+a@f`*2QhJk~DfsT%WhmDPigO5i*fRBg&l8~5^l#qy==p{ZW9T_QAKrh-^DZhn1{&sbE9G;;|H!}Ep0z?oK}ADZFJTfm!rgzan{Z7YiqYCub?CT%W0~?0RY$oSd_Vm(#*RTUn$mqclEx zldeVH@!fwy_;(%c%T>wCm76K%=rZ#pQ|kfFN!LQmfoQn__O3G%aXAyta;{uC7i24< zjt-4KsHN2|=1>Oe?bn=L7AcV~$>-6!tmS>(_FW09@fl{wgbBb@)4Yu6b&+H&)4na! zRs~Y4H-GL2-M9YT-+w9~t8O4M(JMe-+b9c@MN7>wTV9gjF0}KrY;Xz27@kp zArv)*RC0mxQ@2&;*FrckX`W?y!i{aM*z3Y+HPz-85I6E>X^k(2R^J?Mu1gExZF@Nc`PD-Cw(h2?Rk9bRx?Sc-MRW`xjnW8XIm|OwH7R74C1_jHE@R zz&lLCEeIVs+-t&<;EJ{2svA}`Y@0Mg z{m}w+oadgd{P^s{->utaLGw*}OPw&2&CpIua9?)QJj!}zk|UO#JNm?mH=b=B zouXgc?Q2S}CGYCe(8`>dSi0cOh}V{)fWT}M&F2W0DeDWhk=+18AO4Ccfk-Ap0VyxM zlz$=o=j}%0QD?&XINz{a*)T=fsD}*>e@c&8l|y4p!ka%8;R}{cW5uQup;a+vB9VVA z)Yze+rlcDoHLPH4Gf4+gMbZ(yX{Y@m zwU~YyA%oNA1G9t;-$%g#whV3$mKSzXt#Z%K`(Fg9-xZ?5(OY&-t;p<^?^ZBQu8TFz z_#h`|Jy$eXGNhF8aEe}Q<$21aQ=sJIw>?#ENtXh63B-Y@;Rb40#NrdBev@H?QD9CaAQ0&nY^UrxFNIq6w07` zEe>nDWA|1bi|K8r+v`tf4O?3YnN`J{|6KIO{}m1;anrXP7^l?Zn*4mBk`rYxbDkQ0 zng#7MM^NVLI=b?+t|YUliEbwH8q1J$|7aKZ05sLvew$jO=*T*gD-bYQ*2RxyA8oFf zu>Ww@CdD!3Lg|l46Xf47+_gP4t835-k~}HtE6YnAfL^sxH~Tb0eN8G}!bk5ZMZ4b~ z+s)pGdv5$!KqUBCKoE29uN+bj;o)4tY2zMCzL@xCLQXm6s*j;nhdqPKvr$|^+Q9i)syejYuG`e=rByM}?Sy;7IO&0B&3p4%lu5S7xAQ8v5T z*csjM@67z#5U9kuBf_p>twue=Zm2@}vF-M8lg20bzp}YLv}?dmccZ7pXH<|lKilaN zQIya1Danu}Eu?0=l2-qdGW*_xsI0BkyhoLwI^WLTgjs`dF=7j>t7pm=xkg1ETBjou zdFWF!5Ew%~d@}@v8u)s8JqC{OSR^Y`OoFZWUF*{l7C*zl)1`u-hara{I{Ds2J+iFh z_wzsgD;WmQz$JA9EqH)*K-n=`PPe+W>y&stGGd*u^vxg6E@k0*qH>aS+Zlm#4#w0{ zUVC1p6<$`#DQL1z4=2Qjy@~P7kZjrH9Luw5`){)}&(kf20t})(rV9ABFQCcwN50a8 z&984wO-zu(!HD88iTUOCjjYx#REKBPHo_Hrz&HDy{#}j`~zzV zu;)iTI;ZS+&VH&Y%pP9n!92C^yhO28BwDuOX*Vrg3N4|ki$KXI0FT$mJ>?jr8PD#(U)R^rPl^uImerZFb8E}DJ3uiE zyk4pNuWTr3+rCnv1Md5W(-5FJqdXtURtwfzsYQ3?S1XYsaMG-9y)a97L@x@d<@ox8 zQ^dusUp?noXgYARELjD}Q4_fqAnH-dlbPdW_b?lPV)k>l+4~e)RX*rq!Th5cJq~T> zj%0nAe{-@JR!miv>-vSA#UOebhpUvYnm?I&*d;Z{FJ|Sx6GFB{xxL~P*6s7lNwrN| z;!*P)xhJY$m$>Kn14TFo^O1FuKbDnnOUtKRQv?0tJQu9jg|?1Nikr6$e@>o@%>Ugv zTZ)rt;fiBBLNc7TmQG%lD_S$Y?gc&qdr{Hz(}AYEjUdW4Xyz95T+8B^0OcE z4idm_OyVlD&O=qUOG^zSW zpA}Br; zp0NwT|CLxIGw9d0h!cJtM6StraHrqQ2<=CBz57OTd6%hcba66Pcc^8{3tdK^EU(_H z1w;$)&ynT0usi>TBG)_dIIg+V#0opyMyK9Rj|VHeIHR##BbCB$RvEiZdM$<9zOSO0 zX{6u@bfP%*c~u}9Bf;qnze1* znO!wrI6qH%0Iy@(D}3+KgKPlOdRSG}Kk*7_1EV63{{O3!NV(OoEg$##)@?zG%oo56 zikM2)23~%9XRaP(8BRF{96?fwK{Z1&L%)UF?dEWf-f_B$9UJsy2! z#CI{el6k!%KX8$`-Wm5-DqTv}JL0c|8Ahb%VoYJ?xv#E7*e*(Ez(A*p^8?}zqjRMC zl4=C?3RXcX8QKP^4fI0b+^%2PtY#)|Hy5g$!lDL-KF7}IN(ny(&)izY2hf@QEhAJNnk9XBC*Hk-h=pID8|apaO?JbF3WG#PKtm3AqZv>7;qu!rSyoP zd5%WHfh%qXto~AL*Ysyjy0mOkR{azx{Q=fy8v$Q7VLW=`{IokFOX1>*jps&zd>D{B z`m-SEyUq@WYieqt@!j4C2S4)D=bN*a-?j~Vh!?~q4Hv%+__bGxO9#$=OWc3=FC(C& zZQeOr#VN99@Y^TXbF~RqvCRz0?seq~!JB#cU#xr+0U5`qn`jN7Z3nXWQG2brEUcDu zAGK|)nC&NXKwTwt*`Fz_zh?p7rYk21BT5?7xP=HKzVyXHN^M5Yx z4AY0NXO=noE*3_(Q|AhS?YLRR=QUKmMr@W(fUey}-`m-)mNUc^=fBVZNLaD*<^SIM z--1Y{S^nnDMahmnJOA&D*OtUOMw%tBlcIYTT}5=%d}W0HWDKC`3}dI3a}As6X4-Ln z&9fvRfOt|QaYUJ=O_PqBSm+WGME9uAl7vaDJvN+k-TC^8_omNZT;_0R2CxS{7AlKY zS9{8@Bk=ru7S}y5h4{hAf!CD(vzUJ=Ai)MbkE`wdEs7yD_74^LP4C?Q(g6VC`!oT> zPX9zTfUAGI7TjgmqEeAlS{h!hu;)sjnx4P_tsnci@Adv(Sdpl48Te|xoLWO(>F3QnqJ zFqB2L?;@H-Bs`LrR92$?c=r#dIOnyjc;%(lPhS%!{;hP3YVWXu8-}}}sI5D`%^ zWr^aoz!~1PytyT`!@|GbVGR^!T_eV4xJLkl=$5GS#OZKgg`=>6>rn=p@ZnAzK_P9N zhg%R`MPjRq0d&hdsNM>i^00f=?(K=gJm$U-=_9mod z?yk}vi3`p7D_v#LUp@ioB`RMMU$vS2tU2)B9uK1nD!uvHd}G*n4x}JqK-3q_N*voHW#f_W((7n%|ziC^<_|% zxrzCp6*&uyAJ%jgg$ot0rH5c~vLdggT31ujE3Fp>=8oOpZB0S!snkF|emy2oevR;; zewCKs-m}K^c8(l_H_F}4=FW!XDks4$;>>*Caur?2O1$L zF3$XeMuH08Sak)opo$kxg~fV6LVGcm)>%UR@>sq*-M_9{m7Kk(_8Fl$x}fD(Y22td zkJ}ZE4a$%H&j0>)dBHz%$-muX%P{Tu++PK_z%npD6hK#gxcYE=jrh{Ld^>;fA$2*c zQ(}ao5iir$Uvc4dWO9S@@lRFk#Z6dqLuU`efj%{Yqnih451;jZLq!>JepidA`{cX2h9L@IT}9FQGn`P2UhbQ=NVe?*FIY@kbxr zv`Kg}fX?lcURmn)v#FQzvb|=;EcXU9*!w&1V~a` z|G%J;Sl3znyTN$wJ85%a6aNRji$9CoGpz`adNHc5KtbnApbK{Lgry<{MRgH*Jzw-z z#KbD7fBP*()vLkX%IH(Q>^~XR>@@`9D@@{(KGiwo(-cXs)oP;Pr=r-aj@Yg9qpb}Z z;e`%*Z{|yN^F7R6ehj3?jq^M^gVt|%t2WbNiy=exyscaPicGr zfEVT_@!^BK@!#c`c%wh^K9~KEVi3zv&C3nu}w+Y{J}Thz>F5{m~=yBKUt{ zQ6g4bGMVCZ6X_L{_R$)aP*aFtcjfODjak8VM^DH|xA$ z_k^575!_?KJSr@eCC{H6iSh=;N*BD^L|xiLePwQ-u)WKYUV~Y4tj1==k=&P z^eNIaPvQW5$v}R`E#RJr(GP$j@nASD;Fc&-!Q$V)-zg>S#BW4t$uD z=SmHXX=l`(>K)(SuPInu=P$c(KOa^6QCUGMr&l~bU1nZm##lWTr0Cnatpllw zgoaFC<6rpv{x{TrDu~l{!bUo)T1_9Uv^Ir9)2_6taxGoqrO8Bu^@Nk@r&^{DG6D+f zT8Uut>Ib{BwneJ^jLUV)9*=XbpLWJ`B`p@^@C{|mgqRfep~ym^{a^g%oVrOxLtLse zF++lK0v63TQ3Tya;RjY~Nwbpz4j&PX5|YOMiR9mPFR@Q5+)v6Jtu1veBJ5*a-?R`; zdk9xg!M^t}DAg;J&4i|M=<|jC)vIx^iGb(cOe6ces}V5HY5nSo9cw`0BlG(%@_6jWVu7O5M>o@QDM+VWV-|H4&cAW&H$ykugpq|9`!di?v} zmiSKvln!y$p7SpjjQlPFNUzyBe^)tI5u`-^j=*{G-HE?(jCqFCnK6~BXCc<0Y>W}b zJ0!+ZAX&O&+cqytTajPYST`eKnn?HelrG~aqz7%}IhQJc4?sdeK|y{_0;4`BT%S9A z&Yu!ICsPR-c+v5R82R24lh7Muyb%zTCS`i3`il82|Lf;8E9Uc|NNC9Sil+qm-G}2# z%znK#p~d((YVSHS=Si@|94^pUi{x9mNx{DmVmWh~*?uYx>@UZ}oC{kSE^Jh55rsF= zYoxi6$ePkP<^pK2LTJ8pC^o+BdM(#uxSqU^ z`ZG-^CIVk_`r*SX9*^obwH*@?2R*iiv_B;+NUD+S>-D)lDkMb1#~W-o+&2jH*=Tab z6u_m8wzGr{?>xc9A2AVc^4h@I81r=DduF>=G+SznY+vJS4zVR0)fTQ|JL~t|XWn#iu3)F!OaO# zaW3=HfAh>P`tO*Pt|b1*Ud^{5wkzLVfjO2mix25+9+^Cm#4MT@*yQ|Vi;m%#*=m?r z?;Z31ka-5zX5-W3$lDw?eQv=_p*bOmIX9+_1egHg-Re&UdlPU_b0X&liFiWDobFG@yVUqH799u{pkrO zrO8QP!IFVW0SAdbmiyfC@8z)hi^+Zu$JA!i!f}$^24!{Uobk_-E}>=I=(HPA_Dm(3 zfuu8IRw~mzPD%|Q3{%UUKm&+%#ynpWRmz0F{iS{UT_ zcr4ud7Co^`{V;t7ECrL3SQxUaxdvToNd(wawwAse~2KThzEqe=+o z3p;!nSNSA$%BJF7fV5j3G2+|qz7#q`tsdM2it>s1o4b_(sUlqgEwk8PniresVeCT% z^YRk0u3(%{Rxo_I7TVG=R{N-}*_{vbbt+U(jv^!1ks5C?Fx1%?vb%51`fSWy)OJji zRI;yNf3mxz+PAoMGK=FIAiNOzr&`DZT9bl(Sxq9fVA++s!|kJIEb8$!8b+szobLa2 zmeG>|X(MJt><`sP)`QvLG1?qFZ&1nt1${zM!$%)_*vZ@9RJeOwl!=}1ku}kCMvD5` zEsH3LVBDe~-e{z;gmUGw^Y`ZN8PaI~*0?x)b~r5PR17XhrykZrS$`B|EI7IZPEtd1 z2mzwpnYQNMN9n)dg2q6eZ~9@dOxhM#;yc?P9eU%Xa&zMpC$oa9R4OcrNCA$+mBW7N&RLjmPfSgwZQJwZ*)Rcj^v$;= z+N&Ul@i);pixM))_BP6X?y}S4S7nMjuC0*p<%^^b1S)Qm*U2I|cGhZW@TMx>TPW6P!SYB-id%C7DbSu09A7t#{fmo-Sm__5_ z6ktvD6}{H%*l`6*3ky;of3ZucpHj*cL%3W_3ennaEH!SZN#V#CxG`x$OQrn)La8!U~UK@2J8HPz3Ogag7#m zqGk?P!P$(c*6+WNa^Z33$#>XA?S9uZaj?}>Ek-Y7cmmjL#q*&U`zd$R1fNALa4`>< zPlz?kL>$6AJ+{&qei727f!$7~YnS5P$8$7NxwvP1eA!U_Ak2=v4o! zugZsS!glzpWB)tKX)~}##9!UP*Fr~~gsw=bvX5v zSY9<%FmVpw6hu_hCw@yP!l=JDP>D786*rNW^4E-9rM!VgYPd}j{-Ve`u$yl3#L>}m zLSuz){pVt>Nds(RE`}U|wB%58sdZiTQ#`%QjJ#B=$`YXlI-9LQ0C7%J2)5W&Okc>K z#)VjH!i+I}B&b*fz95Q8C;DQYg7r+2m~*havwx0q@)LkH^dWfc`_2g}eO~>Ym8a)` z5mobun|+aH(O!87Wi2$V?i0Q$)k_Y0wx6RtAJ`YwROC$Shrq>jb^QKkkypsb5ShwF z6t;GmdU=e5Eb46*&2XP9GV6)|5i6$Q12?i*JcstS$3UF@;&!M0?C1o~ zk+|>QU>S?DB=T?4#tBsP@UE6eF3N($<}j^pm?cGovYk7kI9^hj9?oTU~fQ%$upaE*+Bkh)sAm7`KI6fyWdmaNrQ9!?nMYAFGxeKj*$Zr<+=(_sD25Eh`G<8AN>*x znQGZ%>F#?kGCyYdSU6sw5S-(@Y>RiYcN01>t4*?x5%n;V0w=o4v_XT9eVHxLj_C}E z^)l?9N0MmzJX_Ut8N`w#sKI&!8{wvj_S|T)naLLV`bqZiH;H*)?0G)TsA{#A`$Sje zgh=mAs^IIhsbgfoVF#b4J?c-X0SDI|C$Q!(JI1M6%_0S}sCat1+8TpRX{>HP+%TLZ zJ!*4Q^kIGU!EdwqA|e80!Cp8CeqxS)T4>@IaevIBG}`z)a^p`Oq$7zqzMoZ~f_C&n zZ?UG3%2MH%>6{$?wy&xQ^rSTJ$&`+Ahe38npa{;RqpM$AyE}TD)aBVt3pl9?#m~9-Ept2pk{Coq4AKuzf}5 zYUaxPmPehs=Qp{GMk@wfh4N6dn_CjiIZk0a6~kT%rFW^=sZ zv(xv8;8BUMV5;KJYhpCNXG=8V9LbumSCyJI9iVdMe_9%CS~%$U+sUl~{y2amCuu*xd|9=tTo32Ck-%F1a?&OfkV| zs8~F&*xp^+F#Fvf7sE2rG6bYTaVCCw;)JLv6Q*H;Jh!Vp5U+g|#|7*8rg}NrNId}( z_dX2Jd>joRsOybCbe4!nFmJ@2N5%FnG14bIM?^{&G?#NV{Mxql%$Ks+64bzKa9YRe z4A?;ZXp6r>RYkbUG5);pCu^isW%s0Rflp!Td$On}J^qmjob&MFrp$d=HH+%St$|8G zz*+`ttJf|p=6$3nK^tHj_-wgHdS6mI^lGus_7cZeeZ3@o-$;gsyW5u`Cbx7_Ak*_6 z$TJ@z1VZZ6BUphfc%E}P*iz+UiJ{7EHb?zU@R2Ro^qg!hKE!W&pIszx!ZAeoO?FRK zI(AMC9~Fuxj58OqUZ*ST|OJ2ftXJ+A>)PPA>h+6-Q3o-1hj)$^(3 zYD~bcx%vVD{fUho;-5309krUP>fVTk^U*u_Hw``GDm@r}4e8m;^I$#7&L;aM+~-7@ zgXQYh3MXqcHlBRNXrfdOtWr+!e*Y(z8GX+~&%w{BY|(x%X+z|TcU(cJv0BmGP%$lT z%R(<`fvgH@T&#T>nZL^6m8CLDXS3-?Gb!8i8yh{Z1I#L7GvSF+CGmZGHqR7D(`1%G}$@Pg2xMF{NAO{?eU2DV}DH?ndci3nq}9^DVc=Ni)b{EPIE!w+ zlm9c?k%s37m81x-6WnFy56M597vvJc`3udI7-#Ox4*hc(#2nA($gss|eh})xu>E9H zz&KwRe3KVr2e?hIdOl|k@P8V~QOm?Ho1UF9daG8+{WdEu-{T{&sb96=zSH%Oi3D(r2u<~~wGdWU_?mq+Mi%<4vo<(inyK<$ zh25+wLX5|KneQsqtrgb9kBd=TE+(6+sM$BiNbH#kyjb9Y%0KAJL%4We+_VncwnusF zlE*#hjy!OeY|op#jbuK=2G(1vzjZD&z$48=l8#BP;7D@vJtn+FYIcY6y+a~Q-xA=x zEUudv#m~3TX1!P8e5bBpjWY{qBxqp85-(bG^dppaZd7fgKZd93}Gmttu(so z`!1}ckB4t8l#)9j6EuPM2%=@BY?G+3!J_$Q-1hFO&2Xt4N!ZO@@p+wLNS(teKUUdd+3OO1mkS|0@1``{sM*=xptS zjD;y%$(;3AiTDDE`Y_nU#Y8(2%zu@sCYGsP!C9QSP-qJR!y&9J49#K;vz=xG(U|Ol z%Ih2-pwDlykS3HLeSpDmHA^+JS=+^SJl^z}hUi*atx&SnXJUSUO?^(DCf?^O{TQ0& zLwt(QCb!%pkiEEx(zF;vxT9@*rxgDqn*3<^#T%6#OW~#zY#MPU++NgBR@0MB94+DvTbDg@N55mGrZ)e6M^#-(`GA}&4@O~Vv!L1)y?IwI*9V3_ ze#~urCq2;U?~r+AY^zJjmG5CgdhJg=Re>~GNO|2h&5Kt@Yx3RcA&?X*??wGMaT2KS zqdZGcr-pLV2NGl!vX~qe6|>b#emy^6N33sHqmfxMH3nK)1;O+QzdT1j&WG}51a_Nf zekK!1d?C0>hi<8)&R2V4M0@oclm~iTe7)~91sfn|6s z+&t!z_26~OPF<4n*w-R)z0K1_RbFw2K53P`X$BhMWhXMBONQ`{3cH26WRbmVW}8?C z?&2;jKM*a+ksDpCN1^IEkI|#HfphH6!7u1NmTD~^JeWWOYn%%2tni~F+)n`w4V>s_ z^#u4qL;<9W4al34EG^ZyGAM{z7;{k;;5;|FvBe+#Ze}yTd9-k8lHh^DR}-3(@@W*l zX-}NT?m5ZSpsndvp_!MjKY9~+L5bB=@hPU{y%vpDg~w+_upzC@5dY^s3g9G~Xi(y` zQI7i|I_RQ@vgJ-+yiy8gH*HZzrSF$n-|qCuWNxqruR*DuD4{U9@^ESy3R+aJ&Ut>l z4|*n8Ut6~0VW_aRch#Bal3eR%K;yJ>QEo9C?WI<^(hM$t>8O2U=7PX5K7QG-M#mIe zKGaTT6}Ho&r|C*V5!0MECZZTeCO-J>bS5*rE?@aLuS)1`v%=9jUDAGrSGVb%9m6@N zXx#pYeT0=kkS@@G5Ps0U*XlG_iJ*$VIS>LZw$+qz&YD=vpT3Om)m)?u03s~@IZ&sh zfedEi7a&99fUq;%U7kp-i*AB?OikL<*KsHMRZ+C%_C3@P{Jl92=?-L=kiwBEEg8*w z?!@AZOe7<8Ghb|9+f4LZ0mNxKkVH`oPIe*HKfq8$tI1B7=j5nKn9bwXJX(yKRGfhN zH5O5i%}hXltCv0e$6~K_S$E>~gb&z`Qfpa;LM}1K{D8(+@`C`Ingfh)qGty+R~3w3 zQ`jGxsAvHf!`~2+ep`#5FNaXydT2MzCCP8^n$G)ZSK&P4q08cq>_>DcQ?jT?WP1}i zVdE*cqn>kX;BiN$@VKmN%d-o50(_pd2&~+rA~SbJ;3Qc1+wS=%@;1hXReBUKH5k-% z59rR0R@M*9PwXmf)^&@u1ejq=?T0Fqa`2iy0Un+J+AH!SzFF=6IB11k)ht{<*X0u* zRJ8CE>qtBK!oeY9rDvT-KYl-SN|Pq8&x31Zq}si>K1LE&-b;jrMx#EC(>w*Y(ID%pTt^@h6eYiXH^o!n4or1oSmj9o~H#T@Ys9RI^NrF6#Ev?}pwQ z08LyHx>mSsXHBMzs8qO2#voGhJr>Dk`RwTi zW63@swGm_MZLZ?+z1HV&>LF)u;zC?mZ+D6gW>Cp@Y3J&^-aDWH4P|0isHJBli^i&t zWpWhV`8Od9;%UUjV>fGmRCvs?% zj{AU^`&;+!2GGVXp%r}Ia}@dtI!k%Gms$uQ*hyt&cjZv3AD)Z9zTg(pJ3V64 zINdYn77F;|{OfFE?@wqdKFzu<9{1m^CxAoQ-xFY0v=fnOKyn~F$t+aq zWMvy87OoOuE75pBu$l9g5e7@g7jcW1sfR4I{zm_8kGjS{!YS!t)^C<0G12=1CSFt|oUt>uA zrx=w?O`d=xC*JwkS?A7}p81>0qVW@O_ex2oCVNs{ywaPA(mK)acDj5kYBu@mcQw{{ zqgR<`5uir2J?_~W)^~cp>I!ST+}_EwNMpWy>%^CxSWGjDpNo}5!%kM~&@Wc#oP%cy z+J1lStQY)wQ6Xu>=yY;Ub-6*cu9qOJ@)GTu| zj=BnBI=l*FN0GFV4jUPgjxr2%W7y)5Y!^e4uw4iNY=0{jC>$Q?G(DK@NfdoE1zsd; zPZP;H@_QY3ufNeH+pNk;R>Gl%mVbJlXj~yOdYw$Sv!Uz^N&uyLG9=~mCahLG%nw9W zYAB&%kRNIbM-W_O55L4M=OhuQR3)tUSee8rtArWZP4W(|-k9Zn3Z7esCj-q66Qi5- z!c`ixHs?|a*z`Se?GeBS@dEULH+%NP#g7bk>AQPRfO#0zz2Di<6X5KTCg|CvWF~^j zA3g0001>Rhp$E!IW7@m9n!l+kHg`Xe+fs{nWd8AumS#ppUV0lQoYU+U?|HbW{6lTg zb(`noR}H=QjAW;iNIn^FcVygEx7GQyfHscxbq2swI!&k2_XS(~tAnhPs)Upkc9F!N z5^rIkyT-wJ5cN`HTL6`0Si47$WL~$Ry9qQN9!RehAh=m&BwW20P1hg89m(Ydd|d1R z_L(2BUl7$^4BMV9zpD0`KNx-wL*4tDGwAN2&jANs!3?zX_z}(MPzA7)uP9K_IM7WI zC;V0d&Ep+t{sOV6FW$VDKJE~=tLRlfQpCU2Khf;R5>Eo0=bR78h6Y`bUW381&{OLqZtm~6JYe)rw#sbv(EEs;9CM7y!w?dB1Y=W`ag z7w&Q}-$Nc_)3fJpopQIp(<&BR&26)LQ%6guFcqEAF83ql&gUh8N{qp$0IPUU?y8E| z*1nnby&!F~Y1J(*K2HSqZs#T4emf-N5SzZjr3%8NoCmm?GxI_#bpBiGs9|Db^9GdN zhyN`jIOOh2Ibhf2eI>S=iF0Py3)^e9d}6$%hYI6~O)(iE(DasIv4DnGp2R$fV|Njl16# zS0D~^SoO^d-#u!SBX-rj^m)Mr3qFy{kggY6ZOVP-oY3-PU*A>4r=SGf+JIz($JitU z5T+N%#iH8pzW8TfG|k0(zpP#^UvR3>#VlxiI%o>WYjN&hcb-NIPril;1t2WchWh3V zr|Nf|#zd>f^2HA5RDt~l9-nQ?`qv_amj{LzF#8TU=4bvKD5NSmexb*jN%&O`(r1<4 zKxr*-R=x)x_fIYes?DImsTem){D_K4sA%HdS(%+Z2!mN&m<=@l4jjbmWn4CXh{%0` ze}YIEGM7#JVxW0aOvLi=MK0aoQZ$q$^EgjA7g?+=ot+*<-gZ)7I+-!ChNA8G7d!%r zOOw&lDiCA*5Qm&`eZr>VBA2dWitv;ybc#YtrB97+T$JFXFMC@hM_?_oH|riMaJzbTRA61A2p*kjnB zd0Tqy*!V?YUp0guU#6BSM%{DbG0c=m?VZET2kDK`p>IU=TWW(*GPL*MWK6a1x0}Rj zZSeeyl=TQUi<*@;9gv*!g@2nI{Ehni0Tpjc`;78C+|y+yG_m`~HO(uU_YlSEdlz=)nAOnE_#=k_x>rC>(0Vc71 zDXsqzezqr{3ZnQ@5Ez{OoV9UI@8=`Zdrt2yDU??4HOB~q%W_Gqw|dSBowIvDVwe=m z%IqZPIi#N_cG%^nct8OQk5g*S&mnyi8@+|`g~FGln6wZw zZu(RiP@kCU{!4TXinzh)e&h0E(J(3p@JKqy;qc10r(T970LUEMzckjbF}US)e9-M; zH~FH^f9jqq$QYigR8LrLClFwf+STxy{5sM;0DHP#2*}y``y%Xc=(T z6<3w{B|UY_R6aaKUEz_%T#$(V?YByG259g)gWvF2R1S7#z{2;P7}!_LMn($(5l1z# zDoJBOwkiq@9Odj$Tn@SXNzyfB56}h;jlShFpo;1srNI8SZ{SinQa!X= zf8pX!urM3Mq!)W06jG{%+PBQ!V zc;|xoo!ODLY9TQbZR`DG}uiFk~hf_-CCtPe3K;A%g;PzPIz=0p`K;wAz z1To`|Q~hr#cQ2;;n59G3x7kax*sr%~m%0~oibAVH{P50iyK|ORt&z~bBPeB;y`KOW z<1;nk-3ZF}5}ogK9}K$BD_kgEjIX^TxcL7436MXM{r?d4)j@5wPq-8>(&Cij?i6<^ z?w;UMC@z8E(o)>rU4jQ`aRL-~4^}KV6t}iWk=}g2duQ%UCV!lq?0M(i>}Joi&$9>p zvH~SzbQS&U&Y%wE>BdN8K=6hk_IdDfv@-zp`;Pg!cGmLc3a6@BYA!ZfTMw&8KHd@2 zslnb2R+GaKo7u5&zQILc8Sxk9mUZBcdj~&mwDYk`k6&vl`SA|y3VP@M3oYy=s>qS9a~f0`y4UD)6=?` z811Q62yc(*;5XREJVn!W!2Wd)m|9$%85AC>qzA1E);k)M%hS7h+7T|>;3lOB*2SpGcG@BiW@^c?jmwjudBo)L9)EXaG`3PtF61lE6CA-!|;2F z%Wh^9KBn?LwOoO2jj2^9)GS=%^p0b(3O4#4-#XlkdGUpU z%Ue00v0?Hijb@S0{P;sGopWz*7G4Lw&G!BlQG$6SuFz2~Oje*k5Or%dt|O%!qKP?X z60CTZxmcm^G;2L}aOlSrdXUXQ?*X&0G4UFc6{=G}6^uZ;uB&xDuRorxRA)?CRC-$I zW*E*;^Yy+arBxeS>@uAoOL`R-fn)IJ$jr_If|a24z-aZ^+0DTb*xG6rTifmcdb_I~ zVh^r3SUQf#Xc98|X6QQPtK)e|^0kf=)*?+|Jb&rxxHeyI$Zot~>a0IFw)%tQ_)$vl zq3`O}ZRyk;tMUB0oE5inUH{6}Io8_|G2i0Kz@~3&V7_naDcc_FHR0i_d2QUY3;OCT ze7<0Ax&d^Z!rWok=N?<*>!uO;^yQv5+80>2w2xA4X4po`bMBPD1SKau(+>!}k8QQP z+4B3-f1hz!VGca6y8Yo3ny1%7@0#7+Y`Gvt?JXYrbo`Us-)9M7_6<;N&{=(#;0~+D z=P4f31^kU-)I2}_6b3aI+dxRKF$RL_dFtyq{eE!k?1KZnJ?buaTos3=Ov}~IkHaWF z`zz>ocNIUxe}9@!aH^M0t+F&*)ekcH^ZRhI`n~?7rJgHI@#x&=pqg$!U%fqQ)%%Cz zbZLeT+aVvI=f)j`UGo8g(&7gYGKob>U^ZSs@_@>Ky6{I)JpSj#CbW4wX}*(jPFk?WhQq zKwI@WwI!7*ag?o!z?D@vLqJLBSF!PuKYk8=Tj*N=7+L)ieUwM!n^FBnQ;#IvN?k6p zm#73iP=i~ijWeQ=4Fgy2y2|=RjVbCi%mr0Eoo24AZr*A%GlDAj`@?Mh;%Y#PF`46L(4({A{2fd=^e<*~>r(4Yt`?#9`ZWSqyGse~lhdC0A z632{h7JALE=5*4P;rO8>J_~`MkoRZIFSV+4ysFt$S#4gvoLNyhrIEWb7;-65@MQ_a ziIh@9b=GCp+8439$=cyhr)uGz`G|w=x-Lb2G0q!};Xt%c-CVZ-Q`G~cQPQO1U>byZKvaSYK5&wSI1#?T}9o2wM7+RkJKU6VNgH|TXB zR__k1P!O$SaDpT`3lbtp&i_%IQIRC)|M9B- zFUgqzNpdEpd#^*nDr^2KSVK$QZX^s>b_O9t<*zvcqBV)b z*|cz4xH`6}k=McBAVn7$4kExQ6%Z!g@zP(7M5xnZ>WHn-i#VEA=`aGp7J^RT3@PNP zawRwg^B%S<`ZXF3YBlDas5KUCc9mV7*k|%?g1V3;EE$Ai+j!iU465qur=9d`VvYy0`^zXT8EGx^JZC^#E= z5wi4V0a3ZcN~!to^g^ODPM{5EkOlmOUq>`T@+-Nn-+0_Gz=8*I<)#G&r$%wg1>`eJ zw6uY$KzZ7nwo+6$;KC85uoDSR$&fanW(PECTf$5$ti059xZ)>T4e+f}%>Y)%Wuo^- zrNWwCeO5-N__54$p?02G=)#>F*Buav%0__}3{`hcLIND&%pt?ySJ9caGrO$KT~TMBV8OFs$8C5JFv{qKz$m4-X?l z&VNbV6la~Iw;(Y#gBJU^Mf>;JV-1lXFnWU^2W}SBQ8XQU`{(u3j|BzcWEtG!pI5t& zR?gtQ9HLi;rfchAy~!65@=;rf{xLTI&Q;wYA0+as7J&(z0S><<&1n(J8^8oso;ZDx zx!n^1Riu$B@90nKO7RkPR{|m%LpBjQ^?zSa5A9Yp|8#u^6K_K3$7)sI{w})h$Xc(j zpBmOv8bALz2$&&^Xn~hR>&!CIkQ)x?TWd;M7BTq>uaB0ZM1 za70n6Mans#1*@a1FmEgXF;Z0agC}?V^V)Q#;9%pQUReF2K(Fkh>aK>qffXQQ* z$_kR)tXEDP{}DRro)Q_$Cz%qzMe=HCo!(YA-s%mKUkpGRCan~#?iH;zxoK#ns~+^w zdZC4dg6fXLm+mgX*1N^aiOi&&|I4HpXc)-xeE&xg9PLjm?XJs@#2LamPjQKxC=I`?v zB`G)zY_qxg)G|1{rfj$-_$Nss=`pp-O+??x=g z8YgZ5wG;d>O|*FL$KYIPxW_YG(CzKXJ>lUF7i{{04Sybx#`o zY{H@=mYpm|$qdg%_6`OD5LuL!S}+v!y%ct6zLlUy}AhW|!{ zlItC5HM({Z{qN}aR|kZa$2s2lYTjwC_2YzWY{;uVEj=bsGK+#rSM$6Zk;j+8;UZ=I zudrf~W?JJY#BY;fs}QAf$%H{wvgkeYb? zN0Gn(Lm~H%>q?tnEW~moPR<|0JO_NGqL8|1O@yK`?8-bQJvjdqVpxUdNqRz=c^Wrt z)+cyCl>IpW4~5{ErB84){dP~DWKvWvh|c;?=^nk*cH9!<-r~Y1iB~cEb zsZQ=Sb#TUm6UBa9M=_k-%QcONKL^=Lntt6kX_6n&v{$Gui&evMau7^F2bXKoE81#B z>qH|XIJ%7cs3YS$OL9-MCTpxvXq)bPAs0xB=E6zt(Casj9DpT9p^elCTWxC+JreHr zCZk#Jx3NUIfLR?Kiy{>VTx2AwBZXVYp_f=_m^j!N82>4^kTne&Aw4<)5wfOXkkz#U zWAKNN@XG0Z=wlRkZ|xD9Qqllt((w#y?BBj56%>+B#Z>TuT7g zyr+iK@Q6iGV`)to8YUR>@^zuPqs7y zZw#Bh_&;{!SiXnVc5SG?OWnWL$h4Ta@x74AviQP2{`hQ}mA{OV==|7-%86$5nZ9$` z8O1qwcHNV;PepE6H1u1X7_~$BrTviWh}(PeKEk3zkMlc#c3%jtz%~~^@uGo?>`HPj5y1AiFyPo-H%y0qrpOZRHEqnD+jBt!2+6RjR}_*_Nvx&&E;$%tQrnZLCBLt#=dY>B5Fvimj=ea2d=A1VA| z=+noBx~S$q5G>8tTeDNQ<=_{PHf}(`j*TDz@t-2A$F0s z{b9<=zgc_1PySfLw_IP*gyLSQJE@G?m7%8AtEfdIykB?E%eHLUEq!$qWAZUVhp&eqkN@pts#2tQK zZB}gQi=s-NVDp6X0%(a!R%_ohU!j39eY?G2Ro`-4TeCjYWv&WGiPg~B$wfbKGAMgm zo0L!cnfO(FBeG!@p~zUvbbf(1CzPv#Y;M9A-z@nt(54Rfh)UN4LtPs(r{}*oq$FWR ztP=mS<;sXvnS@=RIBu8;AnOtLCEys)rmOl@w_>+5I6^^;5hT|N%S0?h6MCVU|w=aWjZszZs zfPQ@~tKS-#L7vRU{v+Px;!!G3nM;M7TlsjFT57Ko;3e`grGcv^wCvkDE`Qm;g07h& zyc#tc*kp&v#zew}Wbx|C6WMYI*H(W89|5IF-b>8z^T`-;s&xwn%+Z$lYz`_>xL1P- zlO?;g!HHcKd4|cM&&HMyzf^X!eB z*=B?pV#QEcwT1b2bvliw4;oGBT@6#YZN5dMu*T>+>i^P;yb^}# z%^iIveRkZu0yc{#zR|b(rdn70%ayq}bI&&Gq)J+3`dsC@i@iFp##fNc!>q;Dm$RbM zD?Jq7^|~XyJ%=mVrA+9s3L>!NQUQ^Z4oO8E*zg+}tyKH^)iSAo^vS(%v|h)O>z!9s zpZ~J+x6BwU?NjxX+wOA*nCqY(xtW7rbzChAv&Xjz(bnv3EOa^j2)aFsu@9 za@H(;+g_;T}dK-ZXV7c?12+) z_}R(y2WR;CR?|{`a^b%E&sq>}?g5CuL%n=mb3r+>HU$Q!@sTUMP^^mI0qgr_N6vCG z%@Rl0Gf3}CjVqL%*3wcY_DFpkgyY7yfH}+vB|!%jk!8aVFx(h=nsvu0`e&tVK3}48#ZOv1t({|&6J{ZVK1;a>D)^;e z(5LqNiCoCEecg?yZqC?j=loDMHAfTeJMks$4?S6+6-fT`^?Fs|dK-jV;ZE5P!Z_#3 z^H5JS)_1ii<2?|77F1SMl`s&S422#Tm^3cpN;IvqQC_DO>vOzkr|0a2)%{6YFCw_e zOZ)H-!3`15Sw6k4CgUWk^?3^U-Bil&B*@4MXS8!htKy>AEQ z9L^diKvlKJ*==8SC}13tevak=*=zc-2d#q9e^O+~{)f_f-B_FcEBAopo?hyNnZI%? ziY{h7cwHALwDo=bqm0egUAhj#2vJBM0q-eFDuQD-l!7~&uXg~x{7z*CAuc;K!fHHCIj?|Als6>Ip|w*Tl- zpTl?F3^!us7)TB7(|udLIi;!!#1MSp(Pt{hA`yNG_Ss2)mgB}Q^X z$~~?u#OSHA0i##H1yUF|)@|(VNWfmPp$dCqNVm}IjP((p*1n@`-w@;anmvA0&2GtA zUc+QpQTeI9{Fiw6u@+E2ceFGp<@><_3^9KW9J9`!Tu8sQ9JA#W;p)-{gLHC^+)@W& zf!w%5TDx9%)d*&dMGrF}k510`tarSi@_P=1qS+t*9>|GTCQDM7j7K)$B8WrzR7r(M zTPRr7+80cNiyOf#)Fi1tNl)0XZ6fD;p-_0e2YcYg8osBi@mAwM`ji05{vlmo4&?7} z4xr-M3*O8XQFR9(K1CL1CCqoGda7h|#!HJBo|!3=ij5IiNDqb79YB5Ejf{5h>Hg-B zirBRR4P|V%X`q4imB`Au&^ckme}QN*D+l5blb1<05PLkTVi)3R?J9vylI!04RG6x4 z_2kQn7H0>bT!>@vQ&nkXdL;LFw_F~|^hn6hjZc&F!ckDyT^nzsxoo326_JZpiTG>R<rwU1X^ILF2*d$ z6;Darj*@KDvADYz)WNvg{L5wH((NS5t=M$oa$vAvCa08YNf9%bVXCln#G8`$?Vxyo zP?{%vLhxSUjn>Y3+5kk$8&eO;+x*MUgKLcJ=+}Krl(vCwW8qH|4MgF1#nwfRWL$66q`Y&5#J%?B?g( zvGNj`jY`QUo^p2y`#QOmL&6?N>$}g_B>dL5FNP$a*EM!2ge*Gr9!ye)na+C zJ7CK2v>lpm$RnP=@W&tVCJOU(>0@db*SFY8hkT?AK`3$_oA{SQ8I53SAw_*nZcX`NUJMfKY<7{O96Ei>o{^fKsa}-5?-MUNdgi60Djf_oB_VVkvw9=zxUG{z zaZNPkXr`LYQ#FwqXm+{5;+RlRf(8o-*_9DC3R-GlT+9z|Aj)qic8?J`6)R0K|+XH7q*>{c^W zXLgOpkA>nT__9gz;$|O2X(rZF?Pc@vbJFszGdlleF>at`Ywoc9FjD&AMft7=KYo5k z49igHa5qK8eD{L2RB|~l3aK(_A$BBeB=@ z+_grZq|hLQ*LR?`M&oP75V{|QN_9;JV*H=ga#^AA7FuyPuK}vulf4acI zl)tWv(m!yNNR`f^Zlm{CPej?~I#ZLioKx7GIyB}jbn zip*@m485RsoS4Dx=14WW=KTghKW9jw|>qW6fM)ZL6WIt=c;JQw` z)~=x9b%*I67Qi0?fbPb!)l5GIfcgP-C!g{vMffdbIPi(O;I4lvU(BjoTr&2k@#-Ku9G(TcTmBBtYBS=Zxl zg#@x4%{i0ByLf9lIKQ1e{UzpR6v=Q}IyJ|p{kwPRPXW`$y5{I4U4*EJ0WsR&s0j3(>Y+@hVkFSPT1$Rhk;k;^1>?^qu zcwP2l+Y)N;<{>T=))gx>v9BY+XkPU3E%ifUZrb=UWmT(}i{--)+H*^MN$(3teq(O} zg~qHYU+<93=J_T4?|&|u>q1bUBTHQex568PnF$0zLBH8v;K*$BWRH982o8!qOjTFS5Rr2ePyqR{H321isAoeGJ zJoXmrBdT96z5zX6CyfhT(rIz=P7radW;uy&KT8?BBg+obo{*jQzCIu%j6VmzN}d82 z8ak!2|0yY#&*jP-hb5(y7@$sC&;AMAJklwGzw_Xo%M4*G<{j+sci=pb5U0XbP;rUb zz!y97Kfy{fp~a=)GSc!7`id;inV>b^0G1U$Z$JxEWmi>`8%`Bv zBtZiElr$c_JnM^h>cKi;VR?j=xPynRULsLeD2u`^n+mfB+uW6kQ9oNG$Ld_t& zBgpJj5U6Hq(E_WxxAv;RDTkvyT!1UWONA_FgF%_Nfj&k6lMkHRLuo zi)nUD!U;?rvk&Q<02vKHK&4-2bHLCuXS@oW56un!8^2uZn8MxO$lOXp59_oH9k6SWkG?SQe&F%WBrQ*D=J&L_;zZa) zIee_+&R-TF>S+qyu zrwGl#nRl>Z?Jk!1d}<4w9n}hwT|38Ibcn+7w-(~Wb)EhBt73BqOEC1+l@G2al#=%N zAZU;Ra|N&KFRRTHQsoq}(~gieE$grxL~uq?YpGdjCpI5IlBZ7;mA}7dm3-l?>%&I` z-zwf-oqyRpBdwYpo{vZsXA{$a;Xh1s?_)=a5GBoHy95j1|4G-47qu>-Cf<^l;Lc1> z>cb|hZKK|WLPBIWk4txmd?d@6rE#2~4uoFU-FPyJwFM9JR?QSFawItKZsQaDsfIKa&tNC=&PYW!PHA|uGu!B#Lt)gG#eCvR5kd<7Ee1+uNaly{>_~kQi5skzEJ%3rok?d(Z z*2CY;P#bJKyzo9c)Uf4DVz!hZ-lTzzFzdeS=)6thYbE$f9WS>|Ywl96#5D)_%cQI* z?M#S)#r%gmwhGWA^)1~&PM8i5vhZciWkdjG5~##&`DV-UQG4yqa;3-e9%REQ_QU~K zN;ynqQ#`{wI@7KROQ5`m(Djq~b>>fY4>_FXITk=B5Uf!c1U`}w%V~xrXV3xOQw4)dEIGg1TJQct zHm9)8);BcqsNa%*SD#?e=#l;No?(W`MWz66G~$_%hW>M^%#i5$_C2RLgnU@2Q!)l( z+p)CCo>cEjt*GJ~J5x4!Un%pUS_Q@az6>kz&lp&iXh+ffdDKw^cZ3eTe0Nh#v zP*HpVp#^gpJogi^afAs14y0Sfo&GN8L9AGUGM#-6tHaxZA6ROybO!QRDRS8Gdw*oL zpJqT@=m|zc^Gcf!^ZGt~ZX+nvvwS-#vA6I(p_Aq1%PWqCE8?8goFo~HFcmX+7PEb( zUu;4SILJxvo{@<>wr;kR=49nvlfKF}vIE=qCQ8Jn^1HpFqEL9PQ?r~Qg|8x3u1t&d zx6iKw=K9@^gg;k2Zg+80DQnH6*=~x0IR6V*X2+}wlg;nO*i*m251aA4%%C5LyNx|AnWGyrj&&26wqbSJYa-e)b z3gMN(R>J(u&{Z<9&CN=_xL&LCL@qV>RJ14`xiQ$X{ZU@|mialx`T3DFR6s&_9%Gh@ z!$iAGjIGrV;=U8lENX<^Vr(zTUxc{lCU;o2#8{j7!jMNZL!c0Tw!5#>1ti>S#Bp#Z z_vltLjm=oGJ-COgi>|I_-nr@cD7&+l5b60L6V4(W{U#O?{?>#ycZ%q+-B?^GjER1L zl3wrJ$*>p13y)q@@+udxi^j3t`o zP>vs%Jp=DLtbFY4RtiMj(v@kEzP--D57qdPj6>yvlvQ-wmsIZ6UgbJR;f`S8ox?wZ zGL61zHOdK9-6d+7A4gGA>pvEx!*;JMk346c%VVnrF$jiy2^sXbbQ~vqeiGG zRK&yB;Mw;YV0J;SDXBP8>ecYU$4lp#uw`RYtbH-b>yZeHlM(kTebXP=zp>f=UrZgofWG0>Q@qa0}0 z(Ao7g`hCRpo`>O4q(j|-qqNt*33ci64VEDXF)3WZQn#X z<`$$0i<6<(P`|2H3A5L5Pn-9bHeaB4{(Te$qxoc!l%|fM8|PZjHS!MJO~x~U^mjm9 zNmj8xdHH7tCnTTrnl+j|-EQxyxZTr@da(bYP^&1-Fw(qW5}YUCn88^?7akp#nnoim zCq9J_E}!l4`c?Ax5w^w&9)tfBQvCVW_RDgIy3~QsH80r5TL-4YzX|Ut*wQFz_dn+c%%{%uKf=2We@u$a(#%>gZJixO z;Yn&Dl5FnS0yS2o5Mv`G;+IG+-}C^cM=}=tpfz`rj%=LrTeU1#T6l#6VD;|fkW>N} z-JW{eyZ9Hweq{hj=JsJ%mgsn$eX(G({JAaJEdX2ID}nRWIQ1L`uv*}}wJ@iNt$xgh z{B@0WZ{{97Pk?6Z(h^}#{YkJdxP|SdOSn5oIksGko)5@SK`t~UdI^|(F0n0=5Xy}z zp1G(zQIQr|I?Xgm)msqHvG-Ajl3y&0{}MEmIE<_?OfX^lt2#D-&qGWJ7U8%>;s-Ay zSTV$^c{P#1o0>!9t@1G{EBghGpbAgyU5cldyv$N^7l<_Zm!6&*cSQseLH8$6UiU+ zr_C>Z=*bt;OO%zB`iDw^*?Hm9CR6aT zj@96tU;)IJO&1?`6=%)_5;@Z$(pe5abNLWhGM;!`Vgli-_57*y=U18-+gan_95xe{ zsO{glu{=!5ye2)r`#Wh7&n~F>m=0r%_b(xHLy0?#rF(X>otj*UbEfL)SiLE$%^6e4@c2&a$vM%YB)m$h!*5LqAJAGdUM-zgtujRQLGlJXONzuv0b zR4s}+X8a@hNJ}cVgp` zeR%_@tgEjac&8GqMX!Mn@GQ7tzdynFp5zy4%NLu+di_2&wDv}YxnHRKIi@!1PimZ9 z?2h$H5qGIE?P;adg0sSS+uDxQerJd`%kDkTOz*9*?bAFD4izn1464?v!O3d_%ekFZ z!S-$euQDVYcx9@af~mF!?-?X{HF0`-FF}v`apYJN^ zFDL^S5*=-SUy@*)phs22tK{Cdwyn$6CcLdQ;&utV{HrYNcd0nd@9d-|97x8}xBenS zG_?U&L-MosPFGwrZk#=PkMP|kY)OKXK`tfp#fFptTV}M?<4b0tl$Tt8RP)Tl*uW*X zG%SRF3xlu{b|Ze1ax&{x_XLb-B)8EEVysk`H07oMItxogFq?*Kz4H7O@@E%zU!-{ovwo?)Dj>J$A1^iNQ6(GEUo^;pBBH$uD=EtVnGG^;7wu&&MLO zGNEmsS%TiiBX1Hio9_E$6W1Za4#p*W^AKv^e<+{Qj5hX!#~iKC)WF)NMff`|ekr)} z;u0hRPj@Uq3qcqnM;#ZN0_z2Exj~jUxPQ#4>y~r+cM#f6eF!v z#ds_^!}e_{GVER~f{~NIdXUc?=}FqW<9_2Q>pFcQSL{7vuk# zA_3(VJOSFA)ci}2L-^zBXH1#Ya(-QXkm)2WFZb!fMx4CsS1+`T&wwC^ce&rqBqR4& zYc}F4(|-I*)J7-G6x#D1cIsaM&7W7q615Hv<^_w-dmC|0-90c2*Tc;noQcKFLC|Rr z;tQd{p+-%-SQ1VtW}v%;PXCUrpc3Tc)XNzgdjF0Zvhza z*S9-)<7~IpZZ67Z7OP2YXs7H5@^b|ACUi8Iiie_<&4d*krLcrGgB#5MJ6C@cDQxZ= zXDP(~WGCJt2D02&evCzS^=0<-n>EwuzKwk+Q8uwqL8H8beMyhnDHcX2T>1+Wored`$;8^rXGc-}`PQJ4JaSo(@W&FR12HEC8&Pc&kssNse) z2m9qjdi%SGhG7>il<;MO4|yW?VIpEHUo2utbFtItliG4WZoOQkqlo-F;HTN-laR}k zNi$6^7ZBQ&IAZs?aB%k$zBv$j_OALu%W~l3m$dB7RIXl<@3fq8Ty`i z%9j4B)%fQF8HQ#ub!qaBG+XW8Iv=F#ZIrYuULrj;UAn^0_fiv9DNVJB{#P&0{6}bV zV-xMX9Ky+wV4#6Wp~3xyIOX8-HUnXT{h$@dj~LyZ!$KR2T(4vm-0{Y(LLnE6{ySMm zaSVy|0Eo>POWk%LM9(&*L%UKiP-%_#r>IaZqc2SUuhyeZ^XTEmET20)HX;2tl(8%! z)f5InhY{}~3mZUaYJIuRt}nM%2ZAJGB;p!Phc1?7o2woI z$s#SaGt=E^-%N$(;+Vp{o`KPPCF{0dV`i7NiG+lge|Y1_J+-zV zF5=PcTd)r#u1n1^`^u?}8|0x(0Ie!tjxptcZ5;hPU4Km~>*LR1DeF#|L4XtD@ry`N z?H)0`UCkNG;bfYAP7Gnzx~$0}QUJ$ZnpIZKy0^Q@0bQ8HSC#PU%0PV#}9z$ynOces<(T2z^1(5hJ z1=sEIH4rkC!{J;oV#J=BM9O(BtNF5|E@NNYzcaT&t@Aj%QGdO5$JC=JYMhE1b)_i> zuFF>!;kSlP>;KUhntFCAWHCX$;HUzlu1;j%B^|#PM+=!3xHEW zY%6wlTgp@^TxN^G0TJzX&uDGJM+NF%`liudF+u?8$AZVMNEp!C!A8azLn_dZuMf?ImEdMZh^k5ZEaML_ntWj@EIeY->#0Hzi@euWB9@_($os=llf|xugv3eDYB?>EpK;v2a?y ztQe>mNbXLq}9YdEj4!+`Nojqg)%ToqNwG(bvoiT9q)vHZZ{f?iQw~leA7L zZ>jV!`os~mqeU+>K4DIO@HSAnF|xXN#P+Sx&%E?wgM5f6p$$V1OWOwE9S4_iyo4Wr?&(Z;)0TJX z@6TzCjvEFN1TK`y&L;L5Z?H%)5Y>C|TCjQWU??{4c%#v2at^sRUh@2j;TH_zN7YNJ z`%?#{y`Sx4b;Qi3GRG`42`ln4J?(1ck+MY*iuuenI zrsEBY9%auB^4_`hHw!abXox28^xxdEU7Z>@T$&Qje#eK>FUsbDDY__ zD|sOFju$epVxzIF`Gxcq+==9LSz2qea^$qL<;#Z|kG6j(yCUm#mUm&ux7}yGbNC!} zLPx@~P0z9LVF8v*n2+mt$DImi&dJcEz^-T;(`{97Fq00^6<7F$$AX=UZ$Cy*}$oIOkydu9UFb3Kx z_4SG9$vI$3BLb+HsiwkV$yt*t2}n;VC%}odJ8h|ip~4XCTo)X$lNaLkYNnyd8|C7) zKZqi3vR(O^p_ZIgh0Vd_I_i2J#5<+_Y?$yUYdfG$v9!s@7J?+B<7wc6;FQtsiaFk3 zV-HR2JMb|sqY;-6?~f>P0os^n9B6Jc(UZFUl`#}*SE0L}L~Y^Zsjt@^N7_qT0Ltn1 z{9dkYRC@?B&)qAlG`UEwhdO6yDlsJU#W2%vHIpl&m9kdSUqs@L`#N^V5->eJE6N70*CP;LoWuzZI>Rw7H>BkS6L_9 zcom}MC>f?kIPBpjJ0=V$qq_MkmpJ3YMPbn+qA^~&R1A0ohd)6`Lup=>>;zrKk`A_# zDx$tBxdba@ATfREm~-a}`qUpD^!yT#7cZaYhcM-0Vqe9Ply^HTR}dG{=pSc~CJmtX zv*>LKS~t?c+XT|nj7Cy#ZFtiy3Hxe6HjriQya*eGSol%+gjwR{Y!bNOYtXQCV%rs<3OSPCH1B=daOE+2KDf+?zLV zkrBvVna#>#h|zZ(*NQ7yZwsmd{n+s2&&)C(DwzeolO0h=zeyj=P-9a04J6mt9P8gYEH+|F@+V3XF7Yu6a?MB;`R zrQ;uR;8UyN;#IAInvB*yEGb55+e1F;XT;7{Q9>h&*^o2kff_+naSRkt8 zp>2K9D)H7*Q#R0}OY<~`xGTH}hR^y#3f@JZv*SN${7A`sP76~m$pCY{i7{-Pbe@iD z4Uex_@4%_jHFs!g?{~y^VbquApmMO9iNF!%LvKR^Y}>EJ(icUbChQCC+4hue!4GZC z)Fv5#r;R_St$bPpqA#`$ELYkt@3rj@A!IvqS{67)v6H2c*n^qSwB4?|`fG8~GELvU zOCw9FkiO>k(O2xhGG93Onx7CuBs=4mSleOiYE!CT>0O4HyQqNzl>KTcyuY!9xvbxB zwSF9=HMWkv6$!5JSW*G;Cda!g$9 zEFbsl;taO3!z3xSY5@~b-3ilN_>n@=RJAD|L^!A><%#{=jlZ&DP?VsI62A~vxjbtc zwQ9i2UgNLnj}hejmQ+H)#9@A>>Qp=3s5qOPx>ThWl7ouIhb2RMALn;z4p-KzJo)WK zsl&};%W=KV%23IH5^}N`Kb=zL7`#I$ul#^a*8lk9dUnspg>N}5i}I(>uP-<#Y8MSG zJ|fA*0ry<#xBjqa5dhF-(G~5q((d`!y|-h*(|*s)BFGpwe$iC1m%}_`1q$VAxnB6` zm7!W#uP$V^aBB`6vuTnZzw!O?YzjkkKW3_P-j1J+PpLTzZQy=azZNkxEUa*r(n#;m znCtvJz~^HKGBz*xwU99f02|jXc}S1{hb=m3)dWmTx_1iYEN#{#8*_CHeyjaDrRmw7 z-bvT^gT)H(2WhY`K;13XJYW26O?2d@s4~F!3)f2#n$@n!sb>kdf z&-@vz4V|b~sU2V8Ni<(-5WpzU+B7Dxh0(9dVwmhKo?kH2b}p6Z7Y|OXJ>l=dn4`is z(spJkV}`U9GurS$*lDc(neFO`}F-BpY;4bRp+U70Kl49y`tDtFG^(>=Ddcb zo@K{Frv@9&zaqQE*<$YcKLCb6dA~;7MpeLIvh&njrX>&|qAQ2eiZd)tFh$J%f%MlO zMM|lasf&c$8m}>^IHR0Qjl%x`NtM81RTa6E9{cKLETH#>Qu;Zc?m#SVyg=+ymw1j4 z`jZZ28r;g<%ZSwP)WcInmPYzVaq#x~G%+ifawKCO<~oUl$0>PuD0Yil5i7$iuA}8E zw6d>_@42{GqudK2glP~{Yp5MJ>@Q(Uph)4-h(kZ&RuBT|rbKw|; zmU9Bk6WUV3@yb-$%(7fN5e_09Ma))iSLsA3n5&k3TA_p78O~~9@her9V7x|}L(6jA zI&Sk7JbFu(s+jkcd5wFOE2(JnF83;6XWQ!(a|=0_ozygL*_4hs#5b8rX!n%$GL*Q0 zT`BGfSV+9Mx6o4Ycx1;3!XOf(4)F>Ln9Z;b;$4jSFfDOUIAymzGpbK?$+YStFQoAP zlT^SkW?!Uk^+Zw)^7_P@+nlm9EOFGgQ5za%D;26q=Z~hogKYqT+*EusLOGQH_cyD8 z*_h*~bX4gv)W=gWv$*$5W_yCmlf^L#jWLzxQ7r0h%M7MkfH80UH>Uw5U*;ZUJ zEj^_o)~b8M?>r&pC^wl#2*vk367eQ!J>WRF zS@(E?0UI8FLi?cIdizfU0Hx%8utNuiMdxi?#V1N)H~|JAR8hWf%m69AvO9_^?t~kJ zH{vW3_nV<9_==R1TtdafzmHc}dFnln?hba=ssv5}S_r$v(y#!pp@rL4K|q)X)QV_4 zFt?88XSBv@4EtqAf{iN=@hMIZmz+wDRH1PP9R*f_i98yVxKOEB-DHLuwGF(_al%Vn zIA6TVgwfG2%`;S-K*ZO7v_}~ZHTqE)rfQC1DyKIG+9ucWvU5?jc%JcvweJhT8n&)j zCTLOFGP3nas^x(q2eUN@Y+0LiOaf0*W1b-Ai0*B&YM*!0ZhnsfJH&1YT+7VSv;HMS zYQjETuSDv>%MlyQxK~I$FY9b|K&s$-oPBUA4_=NvKAJTWVcAmy)ph%`{{XoE0KcRH z4jb-QQJHtRstHdyI1XjEZU~2?jduoM9MlK?52QqLZ6$jN%Uha7=@E%C1opEE4LJDw99RLsN7 zwoFzf4~Q2RE8JK3uAkcD?Vm-jXhjFX<(Rl_9k-v$>t1poE`&3}sCF4bJGSGzj<5;l|@W(W+O=p zI#79jKl>w_`@{ec*G=}7yyes$2X7Gg?ljfMXxiuL0g`;6Qjm4#SV9LdD2*($f(o}a zG8U@pQOLMyg*hd$F1Tj_F)LQi2(E$LRoRZ%D2*S8WN}&u7nqlAQMd=QOq;y4 zGLVB@6i|aKun|$haT#XcqMNv4->j>>5KiL+5pU}L@hFzCpJ{&~9*X)C$oT&N6~p`7 zpxjInpuyj010q4MudL^D`@WrxYynqN@8Wh3EAKZLh@S7CYZBBFAfuLrwp3|lfk0l! zVvF0|)wAKV^tXArnHd{tRlGjk##Q(h{=I#r*HhN4XW@S^3;SsdERX za*I9`$?l+NxHoqI0_)D@j*Be77nG|l#|e$$qF?Qhyab@tR1U$*a0C>M8Yony9XRfB z8QLpU+`{J+(OwiWmNjr1X5zM|w6lOrGide?;Wc4`C6AQgN>?pg1dA_%3>TfABPJ+q zhmmDb#4DMj-Ulox)T=I5d^nA@d*T}%8JY(F0BMCbV(_kJ9Hkw7qj1+OA+>jIqBP&U zHSGtivv9TBH-;E^&qvx|$Hb{rPiWLDO2M|oc8E~qHG(#OMCxVH395DeDpx9EihKk= zyjS{vFf+_RE>~+&{yhDutolFuULWqEZqSxQ^nqRGdAUT#D7i20j278bwPtw;mu(z) znSp?n((iDxn|B;46h6u7h|~n3p4uCmD~XDxrEPS}U{`S{w&jC&nv0W9yfSy@P+kK8 zn>csZ62K2wu-(kisqPfw-+o|HaDC=IvntA$vGyU&uijj`)+cLC{6)UyWmuJUoItx* zrGf76F+?2gmwZ$O9ub9F{KK@Y+G^(H7cOG-iW2CC{8VDAfsNBE!v%M9ZrC>ClPMjS z9KZ?7pNWit4jJoV)Icjv>N}U@ev{w(@jZ?F${Rp#fs2AI=3h~v;$l^e`pSaHfnwvJ zjwZ9zEp_>gP~uoB4g5;H^%p0poej=_#v{&Lz~pHMr zcsNVU_R3lgHy(OrlT2}pbQsm z#1%!sTXPwfFthj!x4FL&FvG7fv2wZ*fimi&sfzrOiA?Rp*SD#4R%#h>ztVPTb^idE zAq7muB3;2igURm-#qB+ZYz&)tm&(%`A-Ltl3S8N{mq~DMMDfOXi0vHT6y^p!8HBrq zi@`5J(JleD_?L{CnHRwodUX{sxnujHJA&6&3ew?axK)yYIn)7&eCrjUN5X92&du1~J08OT4s$Gw^quG}ZWvmR!y(c9Sm{mIAzU3L8COfV>l)C%= zliT|7F7(_nq!IF%{m3hR#fYyF-vh-;0{&v3V1gTUYd(d2QYyG)>6*u4=S$`?6L$sGf~K=F$eJaSlShtyKi6Vmoo2% z{UKGnOc+*o96b8X4GwiZs_q4&TEQAURNx+_1=zG`iM3S{)lDx@181d5%RdTYTo7$> zS&b3NGfb^zfTNh#sV{$+HelbEaYn<8Mz8O-P}>BcZDPE8K(_8TBQA+xCVWMg<~3fi zu-v2^3xTnIux~5`1!ZR~Zgqr9>uN18ZxGvlqIX(4l#UxQ2WA(D@U$HF4c|laC=XEI zQIc+?<%}DH6~ZAFu(Z8_V(rXELmd+2rmNyJ040I z;$5c`aQjbT%-q?;b2x5L=MWmSL@M8jXHCIN>Q&cmP3nIsn-XyhIJL*t)1#4mOeI zK7vzZQiyH>jFxAZSA9i$7f`#{@!}6{%YAv2Jtc=swYiyE=;m;}0$s6Q8E?dOh6F{W zX1-&QrIg__dYA&T<|VnyeL!2QU`#bA7Jn(Q61`!(LC6i)Y$m9Ue{bl9&!s^(?3#4A zamyl9vJ#P0Vm*&f+_AmC!&^7~jb zHWx%k4)5AnuITC>ftjoKB^xfLRem~$Bb1e&L@i~wOg9QH-r&G15G@MH=!wj79Dl82ZMW#5hkjJYKah5AA5WVuKJ(jLhUv?QZ z3k(;hf&^1F^jT9xX8Dvf4;;)Jy(26K=k%J-_u?0fZe3%Ug$Cvrbvf1}A@@M0`XR2| z!o^)}H^HbVqve1TSd@CA$PS>`r||`Lj1_K9`JZ-V@6)-v=Qx^;9yymT^g!sp1x*~0 zf)1TWJp4=G9$-<>N(;*uOboMMT8fzJS!Z(Uj#jfDtjz~f=?10aSh<@j-k{~R<|=3} zIk{Ah<-9I4#P#MgR~*BI#If>Ul3Ni~SE((RcKooy<1*&u5o;Qk#OL!JJq~pgrzMv* zz~IcWetL*p3Lc{>+Fm%C#b+p2*C`tg$29~gn$jzB!qz@Mn%o=Z@8^Qx9KlU#1!5xqNQm>sL3Atc`%Q@zbqE5KlNeu} zaVq{$uqZfvaTTdE!8lF*puM&NAY5D%cr5@UmH~&1!GPQRz@Q2q}S@RJl5m+24#x*Uw?hU2yrB9L-W|$Or zRqV&{^w2ug6pc!v1W>t*TGl*fl?uGTqP!8w>D_^8xsSti5-Pn z=iLx-U3c>`Fawygm5Iu7O8xWnpVO7n^JVNUSmtK>#{U3Go2A$OB?dUVj>xVEVS&+d zg*C*pfWlEiR4*h#>zFF}oCpvJX-d_`8s#i0(U`VXP)!#%s+h}1nA<~D+#CKAmFA&} z=k|-k9K+8kScFt-mlCt>fai^~F6{@*5rN6k6`OMk7k11`MqoLXkZV>qO3F8UnVg$a*B0E@ily&+|QU3s1 zoE*#Pr^K!p8B9dM1*rgJ<{G!GOSDM4EL;i~0>G}=7z*<9IrWKeKKhmw!Mlk@F8WcL^Q>77R4n%V50RE`7WYjuW<-d1H>AR8GK(g z0fC;noEPgUQPj{%q1GeDulJueqQlKjK#t}ad15tb2bfqCxG!+GE+tI!_>1X-l$#X^ zl*zJKAVy|22wlY({aTD&>2O*JW+jwfIaX0f;OvWM7>~5T8o67H1$;Y}t-Ew?HnPyu z)KLEb>J2&lD(fHX5ZmyZUn@4AaWQi0W+_y}$QN$lQNiL6J@px?wJP**#gVC;yTqk2 zxNf(mSEz9;v+)*!z(A(+2NXcI&ofg_{6)n70Mwud?+jX%5L1|6dYzbB{n=H$K)+GT z5%Nq#g}a{TD_#kUoCo)ToM;Rd^e`FE4+tIR zVR!6Ds_U%M9R8IhPHRtze}eIdFw9_6J|=fg^>Hhdz!b1x=JAPw{Y=$Nw~8htJyMWe z8j0L$CGjvhd5Xz^flCX26Sd1^aRS>dskQAndCY9tuQM*P+tfn^{7h8Of?83Dbm-KeebykJGhk?%OMz_l0S*<- z##y^Z2X90G*>p|(W(5-cF+0peDT~?bajNdrwRM=dx@c|GUoAscQS&p`(}Mxea%62c9Le+H!^6!b78L363M%b*KMkQ-r<7VdMYaasbNNL~S|4-d?^dVtHE$STbn?4nuCLptD zUV+RKI)RhO-ryQ|T?@p<4k6cu&SKK0Y0M}d(0J*uRGxtj0bF>V!nGAuTsmAB6+J@X zTBx?|oDH`y?kvb+$nhJjijsIKhk-ECgUoghvlQp^6W8B5K#Ozqs05-{&_7AK{+&mz zR%{vuWe~Q}%*~TBt+zy1E;yBGmlrA9#MJmq#dSATfQTR8sZD1q9dyjV9cC5ZB2t`6 zs1~dadU;`QY|q?G4+q|QrO^{xzY(87o5cpPH)SucXqvjiRW5o?P|>(rCWx!TDyGha ze9J+eS36h+F}XrEhL(ONLZwC9Bw$}SK;&TV3T@%QWQ{uC^?|nPhjqf*xm30a`B`pK z^VC*nNLIhM9em<=rsyRNw6%ML-OCteW@dhs0s;Cx5sN_mD0Tfhm8oT4+6+^~rrgZ0 z2*NjfM5fr6R9I{_Sh>D#=!*+AzOGQe6a$1SSCkyRqu{oVAkaMGEmOAH>Zl%s&CN!) zh-B^x+NyHYwlSUs40(VyxX7g|sP_Z5R$XQK4+vpPev%j(yP6b7v4Z}1$iF}wH>R0fN;b{v9&+RagKFHIYrMWNzhKiQM2o{5>Wg|rc1FrnT zWR?ofhgql%^rFr2xaF%EVWq6OTvzpT7sE)JwhE((G9J{WHM2DA6lW$TA-I!gg?O0E z-MPp4+@(gwJ(K&yzOM6T zJ?=1FeLjhDVJPzhvQx+DIxI8(k-8aWFxzlojPWm9^1-Jq50(W`2mx!k)`X#3g`w5Q z%D9(#m^cq}8=_jZnB)O(J|zXKYFnWUC{)ZE#$sT12Bs87q4OVJL$t zH(Yp)0Hzn{ab(NHLlQp#dPYfUm2+QyCQoQJn7V^}&NjtNlUW#I8(GY~V{RI9|gyp&5o*$&{XQRDJms{c@*xpHLi)A#i z)$=X3-s^Fyd4p_wLAEvA=>^1S7PW8(KM|0FQ;hsf^>q*nxR`tsC$q#X zD@5c??om1h*m3ANhXRh-1kDC-(@`C;rhOnbQQl)^+kX+1Ruh)@UeE!8h*b@-WVwH` z)w)N{aSl~mwqtqEeokfYs1Q=|h-7yqr zQSe{N9rAKRW;yO;@Lv*{)l@%{8$6q1&2e)rK<+R} z0CosjV~)LI*$q%2FA=AQFev@e71c`3vhLsoUN<;}z$r@O%wkJ=^p+A5`eqBsXiN5_ zAy{IWY=GBMPi?iW#6TGL)EpDbwlx-#{i6KJJj*?x6lk2V zyMHsQe=l&TH94B@0rxAZN@m`c0>^&P@khL) zRp|#zxq6psa1l}!)XD1-I>H6D32Zz&jv>tsWx3)|phpe=0E;;&nrU+svS&Y#8}#)0 z@zZ4kU*My2VGL${zs-;>s>2)kW{>`MzuSl~!QxZ3?HRi$XyOX-m5^o3rBSD}m03`% z5{28N0T%)YK*(bp&8s>4$50mK=CoQ=E&|4c8(Ns!)~3`wplaMY;FRX##v_%LQX6sP zd5ADv%U2qd6O$3?1F+y++6Nv_$r|WQv7A>~bqp6z7gB@>h|7~i0BO6S8;1dHLx&ON z&P!{a_=2l1=N>&@KCznzQCXy{N62M51SsG<&A@BpsB>a3Ws1_JlAS!T9tIO$Vp7hY zP(u!GT!92j&pL=)Dr8u8c`^JC)BBE}O~Nc;?#q?l)AFg=jU7FD{{V;C zKuyfhP)x7^R6Tt;3u`IxVv$}H`Lp!FqZ_eL)q3c4@;<+HEnc5bQ>~}jnaL7O!z(vDN zwNSyEtw$zsRlyq3NkaK!V|7#+BkHiir=7JtC6=pt#M0I}CpHla*|?@b+I=E=(^I6? zodYd;ej!J^221xJc=w)j2MJuDqSpaY7e6I#RcV6^ZUBB?av|RoF1(WQ2^8;O!{!I- z(PhE&5$3^fE|2RFCh1O_;$>2n&k5!J=~!_t*X-0BdHy1bqr@*ueLd%}YUi z5I3jSnUTQyo{$#KzUe=)hF>UuQ@vjI4Z{ZE zUVa?v0F)Hl9DJW&vVg3QO+TVP%KJY39t6<@)4f=AZVJo99aQd8_|PKFWse63*hz72 zE-uj<)Enbl`4(>SzoPp~Q*>1Nyd3j}C z-u_;6NnrLb+LoJhSf{2l*}T)|eIBR@xn zxqNi)X-2tmwo?OM06ug`fsNrbCRZgcC7R!vMbR!@-scglPYYvU zX1>#1nt)+}!xt2wc88EhV2@gfY-+g7S0?zKjNgJg0*@Mx5Y(@1_crNxJDZ^Jg<2A; zjJ$eElU9aBW9{$PP+V+q(D{ZOK+{6Uo~BKaF^@ED^D|VASC$P)g3)z}S`!hM)$sC1 zbz3mKKWT0ZI%fiyTfXsf29_?TKk8crZpLT5=iUJA8&><=&Q#kJ>H!M`$8{Gb#O%18 zis!k^^?@gxTy!_w$l{5?cEN>bfD|Ouw~%!SpnW%k@Mf5&OT7s`XZGfUFVVyB0a~T-OJz1-DIEYu(SA`gxGc z!rFK%-hV}p>@a3+Kwhkz4Eu_?*!Q%}i_f%g_bOBV&D=35yZFal?%P8(uW&9<4&;1!}w555@d#je_m2xF9?OL5MUz|(@|k0QJf zXvGl=MVE*$$c6)a+#$UZh;ass(K&Mwz7D1FS916&^ss+15nbk`QCl|^Mx92U)aq8W zABI~cV>ph*!9Q`&5D#-tF7>%kP zB_+yYxtGQBej^!I;PEPjMH1sUl^BW4CisWGWEGc3FdjlKL7=HXrUGyLU(k0yujTY_ z*SJ~#0KxvDxd}XsOh*IlsC(5*0hoJI$JtZk=&3G9g0I-jxtg))e#QI!MKV|>!6Z3C zp!~hDJ6_{w`ya#<0*{f7YO8D&O#QE-fmVVCqQ77aa!lt&?V|7DgP6Bg@Awb9{vUlW zwu&WHd%C^T;tVuBfc+~5u-_BYGGTe)OZFB3>xQ)oLF_0F;+bTw*dMpkPV6~yx2zc8 z1aV8hYd-Rl5^eyZ3M%?3S^0}M)ng=~^bun|Cc5e<8Vt4Yec{0(RtK0`2C&bN@W#ZX zJR;|~f7;%qzw0o=*qNC<$a;AT}r`>#%W;RnAi*tGNs#bbyV&u-9*hUiGul9l-m;~j+#(%J>}I#0-C{+ z{7t~sroR(uq3Ztti11DK64nXXfZM2{wvaKz? z=s~`H<~|-}K>W%<%+)x(LfhHSwA*H-nQv{hLb+n$2a}EsM!5%aGe0Zba zIm4i$)Ljy;IEh<(9`1(2zx*%5<$l-uE+b8i^Q_nNMD#w7_FhD2`A6!y* zSYBR_p|kED0qD)@sf(Kzb+`V^m;y!liO9nk&YUNUPn6f&ixl!DdTLt6w0s7G$I}u~ z#^|@P*$2&+syWhjF!i}ox8&@lD0;w!!JYTNzyO}GCZCAb~Qq&P`iFX(?l2J)#jLQX=ob>{A z5>s`kJ#JZ;^DS<-GH(NL+%#yF((jL0ayH+@M=Phe71zAG7_M#z!JJVv-*ag8Qhc~$ z_l=QPYS(+$%rt{?sHX-o7%Qpl4m8UR<8v={&1ODquL0SQ%sWGUn93Cw#xfU|THu0| zKpbD)!kW(p@-@t*P-qW0s<;hA>(8x`J6iAD-A63&z&x}?pdr4u&l!cepqpg~tyI^~ zaRT)yIbd9})dUI)rfK83*dCE+GG&|?*jGQ=BgVZTS2unk;~6~&1?ICnK#5n}EeCsLGS@j}=9=#Wd1DY3_<_Rx zU;{G-d2SqMark3=3vW?$g$cOdaKKc+T<{6;!=oy9L}6MVSXx?%`6rl(U^mhVp_8{#%B$in4s{V%2JcX|+!;}5 z-K;3=uf)ZjJXBlYZU>KKEGj4j09V3;jxxQGhiSg(xvn_It-Q5WZcp zOrldySRAQrqeA?{SaAV!Eo_YpQ%fIZE&dP z67>qd5~665i~|#f$dD6x+%SiR*uxoCh;-sBZPR)s^g&$uGKB4@LRzO$1H98dvaNN? z5rAqu0Z4|opq-mARXeUbnu3fI0a!SfQBKnU8QJuR?cCfce~5B6eqbEdWhgiJ zg_Z7beqb@n8Ct?^Z-|4|H#!wui?19^JOyRRYaK*OF6!WNVOxuY21|!Hg7Cp8S$Sb0 zm_MKDOaB0&s2HBR)ETH=k@UaXpHLAm{uY1F``**~F5lr$-}r97<7fOY{uUo!w*LS; z0^i;shgaq^nkRs?L8YqdQr>U^DR+%P8OOX@*OI|d<;2!2mDF>#Yl!2+h?TOs#9+L@ z@i#49*HZ5#c#Bnk=^YD?cs%ygnW{@1%`!6JfG#XmE>-SOxkquT@N%*3Pl6Q-TjF-E z_XbI5N?#|4(wcaN66tYJT^&Y@%QST`Zs#<{4V6k7fPymb>|U^S>< zj$Obe_=p?7Nn5V2bpfqavYGD}6VUpa-l8ASV&&&CobuIx zSKH_h2Dwj^c+J*Y9B;{9{{TTvtE!M^_8#+V?pD2S+lwC4v(gY&$0GCX#6TeB{+dR0 zKPOLThHfPm7;Phqo&6jEPKv#g?h@i+5wR&@SskEzLF*UQ2Y~$jNCASF*}Cy9xHD2v zuje;K@=z`jMu48D8Nbq~_WuB&V0|LFYU%CtUdJfcnQ%*-nYaALFSGA?#73-g`)~8W z(f;up2OV7X&lfrrCRGo#u4a5nzRAQZYfjks3}}f{_`Z|vH#04|odCpHyQmljmuy=( zUI|lt4M9fpS;6|XxXd4W@rGpfaR$3F^*s>7>z-w1r5Drh2$Au zisnA;%Mw~b&|W!>w7{uir=irbPNpV)CxrpT6duTJw--T|`G}xD32dOhH>icvnOGzW z6cg+xKJ3h~aE)3llKU)y)>Jy-ZdSSCm&$?Yxa+&{@nTiItxp>Y54jEG2{%t z2&7vtP6zKfr0-@wFTc>=WZoLX?9(xLd#WS%kLq~+9Z$Rb=lkB%`Yzw_$GVkq{mG^w zUY<{w{@A}e038?}0%076dA2_3@$?w%Gm)8vXP;MJf1#)Kef>8@_sB1ahqGUI{x)N5 z43^If96zc~e$%nOyq>1W^3!eMbM__8-O~}Qhphg;`$saeSA%}>5w=%tOj?etdSf*a z<;e56a1H*^3cAmf`)~8!D7$}Tx02BQjm^PGXR0Md#;uQt6jMGgQq;LwmO-jCLC!@S zM-4J32HJqto9fOFrA9sizMB1`>3_FB-~uP!L~L3YZ~7t62YrG3{Cxrv<@hxO>fY@O_$I%o zzJXyDDp>Fr7m^(R0DIbhMce)vQu%%!<;w$5o^-FX=5oBVosW;qC$tiBV*T-Keg5yE zNqL+E3NJzK>+cA!^pJ$OMD?fl`YjfT?t}K9e4o_vf5%zVAU!ZeYtQ&<2?{R|)I24L$hy9uG(VwYCF(|Me<}1+?Z3|j{=7!N zVq?F|Zl04TIEdX~<_=5HxH3NM$Cqye6~^Dh0_a&aIP&_C<-r8XMs0cco7(Oeyt9nN z{xqS7J4lOq{L8DZU{@-~a*g5$Vpa&bY6YlEj`;PC09_^K9sq9Pj&XeVDAN4FDH_bI zWAEHaR2;*hZF4N)4o;)Fj-{x(dGwc$yjuZPWTo2`DGP;aU8Uyw)Wf_*f??dV$;lX+ zd_#f&t(>}<*WJ_v@iK7Z<}-MRe8N8CFm%hyw>Q=4FIlgk=~<1Je^7l1U*ieME$FXTAWRI)?spg{ zv1HThaS|MeYrybDXa%a*6egN%2szGcpYhutT!bxf#L(@PN;`JYNuvSB~QykLv_%5!oLWODDlJ$1z+P z3-k+%bzg*6#}6Mx1NfjZ!hX>(((2T&Vi&Ml0k^2Am6clK{EnPIx`i!Fs`pk6og>aT@xG^+pU=+w=TpJlAkMHUU&IbNw z+y88G@Wncymtqv2dfItA?fEqrAfQEu$fd+v3-{D)qG89qzKa##b;X#P%XNM3g z>)-_oo;9hXgIMgtd1qdK!GdSb_kz^AxQ<-O9}^ z!J(R$XCoOh+iU_Tq&k;@0-fF#>IQe{^o6$EZ9YgNRhHvV(kx+a$+3Mx1qS&cXBd89 zfE8=@f){fcrXbz>M6kQ9%JFoK%eone7-B_giAR`cGg6b5W`Rr0yT^^d#O2EbdI?;v z^nu1<^2lpkKs8})kC9#T`SiLW=QsB#n{{R_4 z0c2yE!QD*b*1`iueg6RYm|lm^+9?Ywh=8~;7T0l|mrrN{E{R_p99^rDLQd-^W77*yfz;`ia2NB;Q%p$JRp0&A=E}jA< zE4S-#E>x%=r0cl9`If!{V5Rt(3&WS0nCUXnWgN@FnWq<|HdTzNZQ}&#Zl%CVJ1_Ap zQKsY4`i1*MP-88z^0=~rNR`RlnUo}waYl)XbiD0(#6fbAuA27O>j&niW zEGzIqg7|7Q^g@?H;lkHFu3`w#=bMI=O(=0x^DEe6pAlylgDmn(9cFKr(V3RFiO?Ud zN`~da6ng%X@>GFt4a}|;`$D4IGfOq1VS=7HhPtOw!-0E>HXCi4>S7C3>D*NUHLdM0 z4J}u2Ru2~%%DhZ@jugfG%2s7!Gp^>a!l0tC{^;2Jq5ThenSq%NvbMDGF&kFbDOH<% zaS&Ci{h~BIErsyO_7Z{Ot^hq4<#;+7l4J|M<*rC^EF|$RYG{J7+i|t@tBI~m^#rc2 zqPkrVFfZuEURaT3-5F5j)omp3Tl zdcR5A2la^A-5E{?oGR^^B^97hab4I1tPmZi5EY05K@IP`%PZ_I1aYnFC4 z)Nd!5hjd?a-`+N-9L2pgh=1UX5m@d9s&g+pIDt$L+EEj%Tq<}XJdy&Aw=bX(H)0v} ziZt=44sc7hg8>4raV)57%vy8Xagyt znTk3o{{Vr$sN(73Ed>=J-o53y47@RG>HNYl)Ou+-{{V;qF2`ZlkNS=Gv~>a~IZSGr z*Zh1EFm}@SiF&SLP___2)YXET_WuCBwC)@-tL7oB&q&dfFSt{2dml3Ex8Rln=51Z^ z6xpkQahN;Zg|aa&@tU~s85pZ_Ifon=sRH7tX)Y(d9%86}B)4b}T|hfZ!g;u&+)R_Y zm3fyh2QH4A(BDI%@L5nC~pEkpY2kY!?lLvCY^|-ZtAkQ8m2JG_* zcP*aN$jrO^kbi&FH4UV+gEVb#60?hrZE@~>;(i#F?yE$zE&|)ffuG*;MSj;x8HeZO zjg&@>DqqH6J%6NAZo*XH7jp~Tf7sRH?f(FHW$xP~vDM@0W}epCe=@^vY4s-Zu?MD5 z?AHDD{o-Y0ZkI>G4~TgaK0)^o0-!S0TwbBzpo)i;1W3Jrl<qVS0NeR1wawiUt7 z#)fXc8cam-iDKdhFt<$(J)?sP3j&&6IhrBe9O{G;!q83Mq8Bymt;Lq!@(dszqee?9$ElrBu<`jTNmy?7&kKqe8Tv%N(Td;;rx@cwK4c%G?K`yf` zSKB7(0c|YFUIkPbSDa+mLv)!VEnE0XFAfsZrs?)l;zz%1y+YXoV9fhG57)eb9}>It zP2nVh)4q+ylIp>hZ73z{$RYx{*_~@^F=HPb$S-6K8-|kU6Gby*j=AMBZxMBOo<|bY z1j6P0{BwGlcF)3sGuFJ{0im(t+;i$hY*BK4np`1MijAtBJw>pF>|j(rrv_2<2GqIe z{s9!|AG7SSye+3Qg%NeYeT-RS>22FY4V2ExZ@T1%_(yVH$>#s)s?wUCk#^``qWS|k zpzK`D8Cx9A`YLu!o?7AG>hd}*c8~Ft-0Yq|g~yoGpm~wbfXvM0k5Ts!1n+vT$u(*A z>la1Jsc9(3TL!KazQ$m&CUMj|2hmi~Vag3Qt*k-&c!x{#m)(e2bkWjsUIp+T`Hg!r@&!(tVxK z>+qsYg<7@w1K4VGu_-)Qv`APpVtvkSxx)2Sn?#0Ns?5c*hjAw+a95fn8TG7bD9piQ zndq(0QbU6zU`wtRppaiiA-!Ybr)(wNPdXO*#Q+w{Wp3L$=ILR_36nlfp)d4>`$7;O z=h!5T*ZkwB2`Z|wMz+frE>|e7fjhLHn&BF>z7lmZ%^o#<@89n)J_b?*SXVf`GqDCC6jp$M?GPdcwW2qjqskdoo2 zhK@cYg#Weg8)KT_H>{O|jA_d;VeIqT&fI3brh7H2zi z5>e75gd0200czPJ`S#cQuqa=@I120Q@1?`_v*nfn9*e`@+i$obp89HflxT;VUyeZx z*5`*d;(lFn0!mD&q!N=YsM|1@%H1Hc>~6*KFfz77ls^FZ^~_P;mi;gA!qQhic@da) zH9I=avB2SQz>|)wcnc-E2WmVUcTyMxH)gggw5oh0*(V;B-iVqjTm1w?-YcT$WseT7 zbX)fe5h|YW%#vhVf&~HSpMuz-G#K?n)AENR|!Wr%U;dS1T*W!gRavEw9TJL#Q1n>HhK5a zCFk0(@H#-O-RWoXdWPYy?s9}Y>AAxx9ivFise!D#p4?rRrG{_~^R-E#>ew+TxsoOK z6hF~g51ZPCK@MjSsVhxhlACSij~`~Sp8$qE5*CtCTAPW_$|SO%M9j;#xKtbhh%Aaw zy{_M%jY$(we*4jA6RTt%Frn7gi1|xRA9Mi=%_}^G$F4;)*_5%cF-Vqs2a_vY{|otE zF{siQN=8H5f1~s2N~WGK!~H^MUdsQwhWw+r*1Ch6RhHsMvty z-I-^`rt?|vKgHsAZexO+?-Ckru|DnMwJw#2N|nUHn0RNdkM8@&4P3%j4t7kJxYBUZ zZCH?wanTm6a{&Y=(V^wV=@8f1Vw&Ps9piE7>sj?(n7(Ev6_tB5$mkmQwa)X0mNb&` zu$;c`_Nd3?OVuDn$)OmOSBHaF{B7w5pLdxFu^b+mcpoTK|_f()A2#K zp&*jrX;c0lOR~BAxkMN~u0bu0=Y*r9Il6{e^~o%59nDkoGwiXxM}3K!+wL0A)*)Ir zFghnT8k^>g$+(xvQj!t=Tr5)|AW48n#9%JA%aYNQ`3_Z5#NS&>{$3I-s%FdZFmbwq z$Y|o);|@Qz^$|Ccc!7kJF;HjFXR;H{#MiJB3~O_o>#5}aX)z_7p})~_c;?H}GJW4T zZ^?>3hBCw*Oy200hJJ-cC%w~!jTY>PJg$TXa0f*_Gv*GP=nkf&%CiEu{9>-KtK#zo z-o=$FS6L)Z>4P(h zREA*=2zXu@!+o@7DGz`3Ti7ptGs`TKI|Fuz38twgJAx_yi1m$%3{|?rGfUxVh4CQ z9!Jg1MeapKULH=JjDx;h)ymo?LK*I-Iy*ofo?zKo^0rYuh9m$}wkmG0&K)2?axy&7vD z`%A%-dJqHulP;6qJd76i<(}2^D*$=#RDz*9&W5uuQ<369UGYh8G2HHl=BK^Qxy4EX z?>zlanhAZuxzo72veTX?B$I_LIyN2TqM^i@CO3ZoZdlxDHoH3FncC2CTzU)wl2Z(z z5HGg&KqZ&Tbl!6tbA6E(s6Ff>{Q{jvnrK91keijXkzkAyy4&yKet!pOTM47c%q+hB%(IUIwy?$(+g$1ZqvzZ-tg<-=^l`(SD}WZONu-V0ZC#&xiRwMfy3?; zJkEx+ZRH^|52;`h8rPBj#=yMp3hM+j zOFswG?>)W#x2O|!9E@5XE>A{V&)^Qy!tGqfkx65A9t#MaAE|2%^E6s&j?;FmNZD1M zR3wKoyfu422cFV2hg?Z>oz@Qa;lM6I!-#~pI^uM&t$$*d7E0{|vCuShUDqUsaN%Pi zWIg2sba?(!aAGrFtKUwym z7{9YvuH}7$gU~Z6v|weE2^&{4T(J^kHt2r;Gy_82NCON}*i2(-*Sa&M9MWun^cDzO z4>1Iy$)-EyavSRiST>}br#Ech8!m9EBSfnYJj5xY2#Ys!Udn`_vBktzMm;NM(d=Qe zZA?=c{jzwog^~1+I*&;IcER)p9I2m1`$c{5$y-n}>9v&MYk@{s7QTNb!5JOur@&+p z?4KCT33(5%@1o!Gmf37sbmo||tW{mq2!iFEC}0~Zqgw=f6@w_(r=i<77Fp1uoeWFP z>EZG+{ktOamsdf!-WeEM`)8G=c9s zEt)M0OV1?(<)48M*^PLo6QUUQHFE0 z!%)@k1gLahsf<{a6Tg4a?X%K_*(I$oqc3@70%Hb!7oRt*qV_idQu+JLfIXI*twlsQrSSxnab~9 z4jh<2xw{6NYv1(eBDqvd$fWZ3`xwR!GnhYV|AI@%B|8zB(;lz0RZzw|NYu;rf~DwTeEe`(fBZg$;TD@o9ZR6Juh(yOEpn@^vACS$X$t$Ky+t4%90t=3 zj*0l8n_uSVSS3-L%BJawdf|Gp9^i`3TqZazY%GdqV@_nElq0V?vuqE)+kEn)h_a`wDZhVG-6|8 z`12I|kTFP*$h)PUil8|N_N)E|*N_&vz)$Kcg#5d(W_;vd9vUum8+wwC%O_H$*Pzo~ z1J?)r90NRq=j#mc8Ju8bk}mbB~Jq}gM>G{;Yfj<(--RJR!jKIe8P2^ zr>iVMJPj6IF^&bb&(Z-rOf5~Edx=T|2{1y*bTaDISP<4lR0uC4Gyn!d&4~Fge#Zaz z0j-Ch$WU~<35Lnv%98u^2VevIfkT96*0Tsb@c*{@SIq{--b$@c1M`Is7OSCa0@NQs z+e6$PXA>%B=>NYV&{Fau<33qosh5IT;WNCU$xjV!gW3UtW_gI6cLEy%Q6eR^Tc_;okc|9;L!#;Mty>*J8xfnNd@V2M5*lU{|%tr$%_^}pl)(K6r3a#=ph z43*Upq>L~T*(85)1;7gbBptH;2l4k3#^-AOyPD9VlREqkY~PHaeO8yV&~z;WtnJ_N z|7c-spkh8B1*S;w>LE$Ns`&<3=-O1Utv=4)h5iHidubAB5amT<3(JpB?5(|6yI=)X z5I5f|57eRjJN_Rng7v(MKe{s%X&hu8E9$F2vZ@&9KkR(6wek<*?2l7_|!z(>flKjcra-&u5S_M&Q)9)%*GpW)KQ{%7j|0tnKdhC*79rNshyNR~* zgX(llD9K<8oIG+p2mXWkt1z0#@sjR6_8sq-bK{*!8#$@R#UvB?Te-mHU*Z2zia^+G zqA)Y=?n`FzX+Na}{qU0SN>m{%$nZ$~59Y4|?90_0PvwmXr$SsKqfufoEI4FeQ!*z0 z$p`}f_mltche`7PV?2P&tS@>?x^jlaNcpZKztYimSC>NzBM>_j0DvtW1X8Ingn zBTCW$5wjMwBtQZes>e3WPRfOUBqcF5k{AYH-BDBJr7>}<39~+2QvR!|vdNpccW44jTmE^^xj-yrk&?f&ar0N?G_}yLvvLYSO>y#KXB4Mu3GGc}K2e zHx%;M9)bl9!U934z(G`?I3nf$VFnn`K*}V3f{;V(ezs&d`Ftf@FoFA?yzLJF`P;z1 z?;$iQB@}=X8WuAg6$kaLfAHr=g(QA2|$2ka&6JH-fTGfpW@B95=zj_Zt?2uT7 zWHG-*plU_3XpAA=B%|(y{$mGtC&8D&O(r#2G@FQ>0_`{>Lp2xBNbh&B_#eby1?W)M zHf?wc__;OKfS;BU`)T@h5I!}v@%K1?h5uJ6q>Cr7YajDfxt>Mxhb@(?rqa4=N5Yxa zE%?8fzexzp8hakOW%89?PbPhiB33pQJ8X3aZ<|FGe?$LQhhhGJAeD?T7>EJzp96V= zcWwqsFM%Q+3_}q9X(lYl$Oghb4GjnPZ}w@38Dwi3lS6`1!$RF17?##@DP9U%*tz;Q z{WJ^|lo;l1Q5aYP4m9r=Z`qHTcAfo% z8TpIfOwkEfik^pv@iP&)cSH%UwDIYkWoh_$vmwJID_ChfC%w&7kz5&Ql}^nd>CYso z=TZ@m-MePyLoefVD@es68Tpa~zL3tPM^s`^(O8IpL7{`&5*^Hz#`@gG;DCfhlP_z1 z$%5u{Vw7z793Rb;X)n8e&-E6odig9S<;2};VRvG|{Z((lXu;h3mX#5n?I7Bam1}}P zbprL{LOT7&o#yYVOKnSBiL(z^#~)0*wiQhnxhp}6u9a*_dI&4l@`^-Y1rM$dINgiw zqG%_EO<}W$oy5YJ*gG5yb!3AEd|obfi|q(Y3n<(HR0-h9pm_Zi7wC=*ZQdJnulNJW z;H+lRikT!#L87H54~C?Z*~7j$VvEnZ_)SA0h5EJj#SY~}96@gQxET@nFq6fw)xEh2tZ z!7r9vIh%&1)gER}gRPC(Sxveeo!C}fIW9lWZ_En6ZJ1C2CFPAjGKMk47Vn)Q`CF3D z^4&|;=}6s<1Z<@=u<{;Dc85`mXkZ)CD`)TyeDaz9O2t>{WG_fxKvH0z^j;;O8r9*< z${rHUOri1A`uvzmx16@0_MZJ0xAQgccGai)1vLAFF$vR3U(Nf}-K+ zmkDSy2&)(A1`1x@6>pz0?weUz(KbzUett7I?2XeM^S3G*PGwPD9NmJ^dJ}l^+*j;!r6};c$LDs^Nt1QZ}EZaz=tw~ z7yI4#SIk0cqU<#^q-;U#&Wfu##&!&5~GT&_&NXyunb0YmX@jfYHm;0cfaAt7-mf#pE zRyg+(tbW|y-t%ZvfxAi(Vi#0mc62npU3Nj%`v<^3P)1yTv_CB-iuo1CCAXGbQJS-h zJPZEQNrnlEK|OhOQtQ}O%AT05VChSqD0fcs9{^QLd*5`s>+v|`9?EhO-CpghjSaL} z;~V2k;&B%+W@_3H-Zmt;6u%NEN+{}MXO7KpR3A+nw9iGrj?EkKKcU?Te1!e35Cos} zyDULj^A`;qBrfvZMoa`*)QQz;Wj}(YLuwkg>>&1Yl78L-4X;ULFVci}MtSA6Q(s--j8hP9&^tgXO0M&a^hGnwk&4 z5IDEL4G%?jOkFmS@0;UncQHsql3_>Vl^SLV)phP<7*(yJz(4ZP6bmIg%V)J;rs?<& z=d3PqXmW3RU-AmlkauT*MLX5$8*b@g24mL;*cadRBecF1T4GjH*H5tDZ zUi(X$r{89LEJK&Q2ZQ$ClJ$8XjnFjJzINRhzr2;NsL;&5`GCM>n%g^eQRt6dIBfOgcAZQMtoieaWHGMYQdVdJ z$uZUFF(MWV zy$!->h%H}{im>KZ!53k+Qkl4pcRnf3Yjl zPdAJ|0%fH*MN*(d_X86^w!3M|F!Nk{U?q8^o4ud$Rb-uo-C;pnZl|)e4=? zvT$0d_lu3@jV|vdGTGgkZJDNU2AR&JC6f0pr%|zp4p7nv1XjA$p9yQNa_D$%7pQr8 zB~{bdP&54muzv}61Dis^hP|6Lo0kiX zRAr=f(M%RI*txPx2CW53=pBtnFXJVNmr4~!QaZ_d81B*0l>!_mh2#h{VA;O1rs@}tn?FO-;5<{ta%r?BMZjU?bJSVwA3mmW2V+CJ6Z3sC?s*~ zU8&@H@yBkBrt{tl6RawZ7BO2gV;S05S@W)@@nP%=A1iywFGn$a5@oh@>%?iqT>B_Z ziaz{`S*fksL$b%38uNm72WpJP5~5N(&hu-X;Duj@dZXul)u&3Kd!=PwKRP(=wp9CZ}M<1_ona7y?7z6 zUVm$f(D6+aNn(-iucg!VfhE3Q5CcH2e81b z(?H*TRCg*Cg3uZH4yY8XN+e9LFhYgMv5RwW?&LZ@`h;l2&K~d7Z-5$N+nBSG|4kSz z+kDd_(P|oR7a!>YlB5T>kq* z!`RJ`js)X0x2e%pA4W|2TI2l0Lb#06B=$Y;BKdV<;B$MCo|w1r zW2ei-@LJ<`AEb_eHQr=eR7nl-B^%MI4m&q`rF^R*oFA}1Fp0HvT^YfOzE3*HN*ul& zzguj&GdU6U2>SKP7IR`eT6lS6^`aPUjE$fdY6h|^c%4W0^e23ds3hTUcs;Oj-)9c{$;#01GUec;XXP+<+x^YZQ0TkH zYO0)&ytKJ_Vq?5)t71l#5r-^GRU})XL3ricyB+=lGdq_Mx9d6UO`%|P2-EmiwTT$KhQ^MYgS}g7vn-=IiGPEf( z4yCs}+6p8|&l9B>Sn-(yq@x|5X)QY{=&f73@#%k*&smy|sSw}y!~fzs2q7hswJQfL z+R4W6cahMj_5Y~NUeX}E2$_$ggM{va_a|NhKfaXfvRhWnT}0L<^OUwV+utXWI*kxr ziG9YcXVNeI10Z;LA?d-~nS&pXdq_X5U@F?xvb=<`dF4ISkB%Q&2IMcncCjEjNqDH) zLR`DF+x84CgZOhakz=e3E!{OLUy-v59hGI+UlFx>eO!-LQcaEGP2UHrWe0dX7)ufW z=^_ZEeL`q$CC)D=o*X@WC>_iiy5shmMm{3b4c{w{k7f_qWO8bO`s25c;GR^{eiE2x z#s+e{=w827l3*XX^V8F7(O5n-ykXq36YiV}b6dG-Ytv5+&5gJo-Y6XS2bv8O%MIGh z!A6D z`_D{Pqq(_Wo-Mt2_xb`WnJQe&w#dojw2g68sScxcjfBf1PQ#hhABZ)nXeDqY^|7U; z2O+rlMxr%x>Wc!gDVO3r z-&-?^4~%u4%uzl7HC_t$B+U|&bJ4uh;~Mtx7kiEK0ZnQaA(3hKd41z7Bnv8{^O3v@}BbKq|G6wp4n- zi@`VQ+oEn;jU5Sv8>yht ziHu!1i@|{Vv4pGbVFAUXsQ1cO#QSQ1@uM zNE27BqJ*qwMO=j$x$DRo@EUDtYcvt@?S0GGCwm;74dK6on`0-Wrto{59T;lx%tzni z+>GSRN=AqM-D4gi#&6=h@0;k=x@C_zN;7y`|BkqKSDkTKvY$xOL+p;n&NVDTMe^D= z!P~IFg%oC&D88F#z<>8nDx8<i2p$aBRP2k4r%~;C6vLA81J;`kM)_ z-!E`m-`K3mHC)vFnkne8F*=t~JJ>T}XwdQt%Gr>Eo5*z4fD}gSK`K(m(mTa|e)fz} zH)bw#U6EY^)fVyUaS&MtF82kQjOo>(G3@fiKoQQxTXlot#szJw(&H>HhD0bVd*MpS z>lN)+@HylCn6(xd8 z4$gx)gFG|=^$~FUly>$QfKBr^llV?@j=+;*5Cq*6$fCqL=CPIQn<-nRpF>=He6Ebe)n9M2y) zZ!Fxwg}NL~huY>3RY3a`r_>l1`c8GAf0T*=j3vsEW7D0?vAWYc-I8Qu8(Zv#O(J6B z!%irdei!afHvqPq+)FWX7q$!Rq{3Cb##=Ro$7;EX`a}%#3%I^|&{2!UFB@ z1%h_(yPtp!d3(GNPhhmcswGl(+RQ~t3hmwrvJn}fDNm=AHG zoH07W5$SPIwG2ArymJ8HWqBZ3gGTsBo@m-f%r8XUy8){roHV>kurf{`LttmFZqjEQ zXEjlXxOKTmRkSyKx|<_pjoyOhdx6>J##9#E)eyqVABtcz=zuUXgc)`-YuDUmn)5r+ zEr!HL^s`WzWf4oO-ba2g+jjjWMk}?-kwHI$hUUIYMHeuxPV?AkZ)36mjJO zZvdWmUN7k&_Mk#3%@5hW=|Q1|MDv5dkX?DMdm?w! zs0Qx=Yw=N`mLx&qQY=5+NZr(~rTpFz0ISS{->XEZ$C9?Ga|-|IJQq#>ccOjk7a&&b z9ISiqnO$zI#^ta=lg(_lh`ASLrT~ z1;$d;eV!)idC=+s=!BtaEJ3!Xr%c3nmmdK@{^GND1Vw^ZFmq;)1-!x63?_hg4ZlLeTQo1NEKG5EPm=nNv%1=s_dxm+ zvm(%lqIoo$pB(GFEUv zBK+l$T}J_*LR3Cs$X>zm;gbSF%o1%|6Fp}4?Rew5d#snO?vyG|gbjN+&d5CwSv_d) zrx_6}_iUj_Mn*z%k|-PUg}!tD5VY6s55Kt=jE7=x+B0KZn;yQ$AnUj;p~aEq9trNA zt*cj`9EqXRr*K2aOpn)5b?k{{C@VnJ>U&NFGAEt{?_sLXUK35O zo@VPziuRyW>g;sc%M5jR`}0(2WY_+i#I7=7!dY_Y`^OQ4lGw{XfI`4@&ClP7s)3{w z{J)1TF$ywS$Y&vwd)?9=`mY(%^QPDH_TqT; zly6h@^4(eZ^>_e9kU<^&#w|J5#HK9C0s|$oWPrAAApsgfobxbQXFHm5 z9tA@Jlk>4YLB_Vdc;jRv;i?B0H^AR-L;y%yzejZ|bi=moS58yu2#T-i1+2ZT0NBwA zK8_-rVE+;@W}ayRot%w)GM7}N$FtY|j)LL0(cnXDHzSUCy#Lpu&3R9kv zsEJo7Z+{_x`Q9%}H(*eRnHT*d4$r=sU&O~Lig1B@H-eCl5AE!bl*|55;_KChFXn=s zOgbjMlf`T78TH}KB=2iTb zW>H95`z{8*N1!BZx5Byqa2|0-8$X0xc{REUT6(hxtw5zC$wUc<`avRCpC17bhf=gq zn+!aEy_%)2gWO;>$r;pU$x0Rocft073@J5#O7*hzKcTydfBn z$}#xOoeIe^gov^sR2s$wBeP7{kMo$)Za(G&sU7m{f zOw*-hR`3Ua^F0qhf*v>4mP>e0bN!a#$Q$OXJ}hv$&DNoh)ZAx{-oIx%A# z@3;___;35$M*EA?i9LtFW}fu33_{)(eAHKj6hC~- zYol460r5znTTR(!zzEzR9{)%FeOTJ$KDS3_rvo=M%yFKsfo1g~2}?25|HZul}q{%jbRZ5YFj zeUHJUxKr%4fo7!s#X^Tv1mVTSL|xurQ|t5(;GEK*oI(K48xS`72N0;fBA+F)VJ-5L z*qFH(*P?7cBEe0>ZZI~6ZL)J&k6fg)uT z9}0d567j2LZ30&RVC>%IZn9wo1c-od%EzuEnpuGJ&(<&{edy>7_7i3ZqnNO8t#R1{ zxH`@jsTVr_YJTRDD$LR4=28B|z+UDs0#na0#PtLINX@mI9wI|_Mwkr715_WBcWYpOrlp`s=St&B-96{t?lyL>!IKO~o^sT)TBk~;Aq z;d>2|X#TiPSSnj>z?;5)d4akw&yKqbGf#NgiB5|UlejPz!!M2Iv)i@K^3gyLMY?-A zk-HnF2|R*G-@8o&9lG@mvJ+&CZ7Q1(0*`jaYC;6hU?==Ir45Vs>H+s7p2LK{z_$SL zP^!d_W298t1fFw1F)+751KIS_Ory4oI+NJ10~b#>e}mw~yh;XcbXDtRs$8c+BI>ju6})ZWup%(J3iP>sOb)8#`Q$u+&BRwj+Mw zYxh`aTVd&05YYQ{g*#(h6gke(;;hS(}QeFJDfW7c3w!TV9kDA2u9usa8 zGkV|k3i0>zvtVU^LC00dYMz~!FJy^8dWJ5*Mjo5Gdp34AI$8)juDk;UMo~4QJF|p# z{s_>ij{}0FMTIwDixHq{_6@RWpRBIJC;`csB}!Gi8+9(72=t#FLFDIoI#9Y7GV_D5 zjI46dF9*A?=9}_vh{IB+`03iygn0x2XMS%9#IumIyAU&dxgCT~!dr;ormh<~1>o1k z++z?x7@rHa9a5f({MJZqc!pBAH;H)PKkERBv=ugh;+<`#>Y*&8269=hoXG}4r za`bM;RRH%Pqd3q=JCARx?-w0ne!F?8#FQfgKphyfibC(kcZuqw<{d6zg<#)|3KE&E z*0=P*QECFdkXWi6Ea_x~QC1=Njv&H)k`=PL*Jh@?g8jI=%yARLcwyUf=gQUt5FTAP z`OD)t&G?O)z|w((jU2dc+rX~tSf0r_2quNBDWg@7R}^+c7PuQ`2< zov%k7PMkZ?Z;DdFw4Qo__{=Cgl>t==IHzscS%%opG5p9Qv_b^TuVHC#a&c-G4Vq2E;uCk4VJv}03?lPT#Z93QsC3~`2<9~GJ*DR1D^Q+k}Mcli!?Z8{q1d4;#*>SiSh|c z48!1yGRsbZ4nyqj`Ek$C9_%}Lz9;JneJ(ve+t?z&D=9be;74O?Xt=t%3-VaX*@!Jd zaiuRJ)}0Y%iMz33SC7MfN~0eQT(CTeABL3z+g^>sVpwnat2)(-EL$3Pn+g$UbYtj^ zLqq=nY}rb=DF8$9Y;_}7;kG}S>$4o?k~(R882Cl3X2Wmq_Mj!<)LdnW3Xn~k{J5lP zI}%|fNJW5$Z0=i>TgvbJ5lxOnpw{-b0xC_TCuJk+@-39y z2P?1E8XJBk2odmOkoBW_z0PEs_{&pBbR%g;BAhUEfk(Z@BRQKY{0!npe`{X&5+P&BP)k1;ZYU#k zw^;oMZZ?VeLFdVEyQ@u3U2w7>5ZNb_W>hheQH+Lo%jmPk0p3SaORb*>CkZQ| z)of<`=8a2aL>ROP6ol61#K*fNU)160`)?1WP+sJM1Bgs3az{*Uiy8jn6D2e;9k{r~?HB&j((*f;PbdeoL^bEQ z12qy(yFjJ@iH$DgrDXe;{&pIfHw?n#(K~a1eSaa=g4=YhxO?c%yAI0h* z%wp`{e8J7j`n+*Rzd<_^s$?;DLqx=u^K+jfXF{V`LG*XA!L>&~iwS;^;0e#zt4eu> z3VUL%ji1l{V36=>`4-ip>Z}=|9bF9{Fr6LgAoGA&^y?@wT-oiMKxtXNPM>@HW%a;h zCPUwsq?T?!#=T<>mpIs4w+5tnKh!e#vq!hsQh;95>tLt~La*)PDu%36aHi^1td+XF z&4+O`uVqzk3nXHYj+eXl@7VUR8&S8}@vS^2Pbfa&19N1Tht4?Moj-s?*^w`6Z=K;u z6q1(Yq07mFV=M7YoI9fEjd;w~Fwgr?nbCg$0)eGv$tgDlQI%%Q;0d5)?6X*63}#<6 zRs%w*DsTghTX;VWI#kH`t7VwihhhJeaGyO^bjwR}R0(9MuuJnAQmVK?#p`~7#){SE zfENouc;%qSOY8pbUEPUjb?CxX>=&-vOO>Gs-@=5Rdg-*l8>cN40T4lB6!>Kqi;>{< zrV_FNqWEgLY;;;=nWc$1wjE+XL=GC>4CYAv&gTTzUyy)Fpzgs|A)Pa8f*>HZCfFD9 z(~c!qH)wq|QH9UI4Nvh~z;LK_d88d5n;j+Z8U+#6kMRHs!pIslME}zxtZUt3+9MQH zf#lZ%F4>4JKz=O(6msY>&s9E6Mh4n1WW%B*dt39wK56= zdW84H7?YifOm&$+ANRSrdcwL<1akM^;#yA8fCm|;;2uj8&=)~bPN>$Z>E$Rgj9^=> zVU*QTrxPm?-JYG2USZ0S$AN$hqZEKorzo&S^UG82F+CXlCYfU(Vk+1}+;@O8j5N~? zvKbQ_Doh|q3@%*~6?ZBLejN7+{Cvjb79zls4kXz)g4t)AF(Xvw#xEl1Aa$q^`Jimk zghJvr;FNzsU?LFe@tA!j7<1fw3y0i}?)-8nFOR_Y1a<28UMw5O#M}*|S5=>yQkd&amQV-Exo`)t0jy>zyO=1>qj&Fs1h``Zyl$EVd`45pBW5> z1A`8~Vs@KH5p5Y$OJHSR5XYo_);Rk2N`omuevj?_!z?^ zRo4@zcVFFv`n2t+h@V_VR&MqH6R6Y9Zc@9y_OC-FY~*BhR_Ndq1s%pON-Z%W9rYPg zE9j2Zw|VJ}l9Vu81Ixx>g&#oLbl)6KG4Y*zZ!Xa4CdKI8SfH5%g=Y3-xmrg_aM6Wx z)$KOP-F5e&mJ7Avll0_f6*m7D0GB{$zX9?7`OS>xKpV~Lk7h#@F7<~WE+7akPd>4f z2GV_HlG3}kuZ%Ym-O%D&-5DUXY1+84YXzLv-P)sTiCgHo48l?`{IbmS#9#5>*nX~V^CC5ez z0fO)y27T`)DNRAokbL)u1*u%>({K2|=N)lr;GY$7wNqo-`p4yJj?nM?WE8DPG=H2S zz_i^ipUx8`2v_a+{cs2fTJLn3Ye&N9I3_R5v8tZ@VFbE1hB;K=?jPSYfCRZ8+a-29 zj=VqhJz?GYX4;i2t>RKN*9gX)s4NbB;^^H3SA5|sAXJ;yDoTT;dH0pD(wNY6a1K`! zki?ho1HGD!;4-jix{jt5jlT}DktgY{DB%En{{UZj0s{U~zkJ3D0TY|n{7+J8Rvzy6qdNCIG39bJCI0B=C>)*?u$N;1^!qov#HNSbV z6kX0PcmY+K+vhJ;8XVVCE(K&qqpa105Inf9CippKkGvj@)j{=xUC7TFblvKdK5+{O zE1o0-m zb^dXL>ovN1V{+7Vg5jlVS~x*PAbjLn>&(^3gNFFgk}qW8Pk0{uHW-O4>)Ycrl?L*G z)@%*#-m%L|06AP7w$d#wBf`2QPCNL>%?+p@&Jqz6-dV$oQ%TGYGH4_K2C+csZ_Z0y z(@9_3FFm$6!Nv$B_khE<1o_B1YEtm$gQA{?j5Yx57iU>nWv8>th9&@HD{)(7Qge}} z2QT;DSdnmEj1pLpO$JB|3%B)fgl-%rup2-C=LXX2!)iRZ9SfSYpWhhT0k+qT;XsM5 z^^XJN&qgu%r3cT9vgVKCPw3;yjl-psaaUbMUuWYE2aGkvG6pHxkHuaggea>NbcU> zhj>ZgYlHp<+@<%S9 zDf7k=O%*P>W9}hpe#fjNm>2I11pv{(cZ0GU2flFRAn%vfIuISk*Bg=qk3XhRAWYwX zcx}}$18%Vz5aw?5d%}{I5a4o#S}X$f?*zDXq`!E?wl3zUSqa={h9Qa(ByQlN4c7Tj zc}Rk^9N>?V&x|(8&m3W`hH0Vg~_u=NDkxTi`t4aG^!nafp+r!HUu4 zjpAT5EwnY^^@fSso_)D^HFRwkpIDUuj#~7gE$X7V+GQk3$Lx$&P)?>!y_?O14nMS3?7r0l;zyT0fOjgJba!pU=JF{FR06U zznmQkJRka>G=!~s%_sqFVZvDf(RQA`GGsyEdBGgu!b^Q;I3dGm-oL&*gAVGpBJg(QN`j^cg{xWTvm8|rJZ;L+ z^oqp&oHbKy{2#M}NEuEJpGmCHdfm2<@^Ij(c`@PwJ7r|nDF`%+tX$QNzHp`lsP5n6 zSX&w?_DLLhmxYJtFUC=FpIOLNwu$RtW5k1F=_`NRkZV{CU$elZeSQDMM6e)%bE zCc&o$`>Wv>P!HYjXAwijUAC+l!n zQ>ER&WSWz&$9O@+!FVrOM>bkj^^R**vhU{zA~lnV^5wiu%j-FiVg`a_Koz$<0p1dY z3t~roU>Idon)8WM*(R0qfI^t8ak?efZy5X{ohN2dG02Vm<0Z>C)_d$0`D4`NPiA$5 zZ@tHXgZa^^Q;U?89!7EThf+BxWJZBW9@7T&H$>;&Zl{)}ucyvzkSLr6G@--B13*#J zyfBMhagM4e2HZcsaycmjSI$bWLg9AcUeqV7KLNMA6pjIU8*=vta(_8DC@W1&D+m>_ zf4&JS5~8?+2|Aw`Vgij$8Z%EW_~&XxD>{O(SAE3$KL6Fav*IYF2Gi1}-Sw7+?v7K}faSrW1iM4a^5gLBIX*Yp&J$BSf7H|h zvVL-KdH2i49fc=ooU`LB3bG!59bqL3=$ki;We)}(IPW!T+^)bo$1PN%ZhhgFC`+~V zi6lkY8~2-4JkzrooumQvVk;?_Yl9&R?$oeq&XGugupH-K7EPWxqK z%2}g*eBi}Z4Lo4m!U~7)kZA>UlM2wQlLi=EI{3#Y21h9Q!N$QW)-6#2i@V8@!kCIn zoJ2@JoIu!+qe1b67?q&LFxZ|L14KDYNB|5EP8nnjOjY9)k}4FsUl==bcQ^k4n8-@d z^?)jV<_$SpeXDiLt^E#ilDM*d`z>r!4`e!V?MTqSG0C>bI1M6#QdlJ4_cMHj|up zV24iw(S|VU&-TF;LBjdVGQa8^qOV2qmI6rEUszz+z`U=l1tF#jCy=+4LjJfk&n*!A z;VP-xcKu)g3FZB;%3DcVt}rl5ySE&vy$|n-R87g&7Uku5CIIY|XP=ynY&S5_orDk5 z96%r~mL9RVPe;;XYCB?qzs@41=qpce;{idotid%aitE$oEH@*;K0mfRHENdmVn5$( zIthkg(W8UM#LHSx#&5^YJZn3o@J~K-V~FWG(43f{#E6mk^MM775wDZW%ki6gL7)#g z?-Nl_hB`V7BGB+V_W8vu@-%q&iAuG9>Y*71aNx9^WM*A zec+Qu!({j{U;*QRed9!s0BD~XNgx=z9sJ;>x4lRna+QEPe_U4!I07$>(9Z3;4g>EH z0+c63_lC4r22HNp8aatQcuMy@2_H(I|K<~0 z8L{<>a2^Bx`f^ix2Pex8`%tm-$9Qy%BrSQD7A_-U9Xxzwu=uA>P~rQ?U&>@WKKHC- z$}3R@m2!wx0ciC!Vt`tCQ_;bV{Ek++rjOG8>}0CEuk>%j`el5F{Z3G43FUF64{=@h zg$Thm+*MKtFAj39LAR_$kWo{E)+`np2mTnsv^47b$aGmNMSI8?*ixl#DDY*jallon z$^O`t5S;BkdOc$x94CKy9A7l^{9%}b#{y>9Es?j+>4L&HR`7p(PiWLFTgGuh;5-;u zodD}OLTsM#tyxNWeCrbE-sJU);)%#CJm3b$CCuQML1F{8W%#F`8o`3VC1mXD@?sg- zHUMLQC|4ZAtO`sgC5-sZI7B7T8d@&RVEhyUWII`_zA`NoASppkQO2{0q5yHqICbPh zXm5Up-UIm!$+GqBgGH1JQ3sM2)(jwsIU!GBzfLg47Le^DcJr(%DdNk)CdGw2aX|`& z6qf1fy{>BxKnOW)bjjggG#GwDbNy)elb-JO7!CUqt03u^AVbF$j(uzA51~} z<#SFb!FKTWVI*Wd>Mya^Q1unv|KDnfYbt^;<&p?!$+EI zHFeK-0A#?)yJU;69~#P;7Q!I2NG7_uFd(HvWR2H7bKU^;q$Yj<-SZS&aVAa>(^syZ zW+(x#5P(-9sBJM7-jVMdfl}#r$%@8^A^c+(;QPg@4wc6a2c}`d9Np>Ba7b2!^{>|~ zMH5JVYk^IW1NLwO=D7+bCNLU~g&5-aebX#W7I?C2K*)t4%D>o=)D4E=CMjD`5?5!))x2w|^w4A5Z_7}B+S z!$>rzpv}^$1jf369u?QWyMPW=U!0D`o4sOyf{czUP5@id(^umFg@8k!&M2~SY1@h# zi3_#<*t=*f{@6A65QNqe(2kEkILZh%`|vq>1b03=K5?LdZvjBn;dnd-30v`eVeJSZ z{PD=QtkHH7wGKmJ&p3PN#Hcfn2;k(t@Ejft^Zl{dDjm3(h$T5?y2p;nu-mSTIBKAp z0wQbHFKeM4KCmfcL1xo+t=|SgEFiS;w#{Nyog=IRroyj3MoF!J8P;jLGjs>nZYJ5g zO^JMZW}UbW7fNy+9iNK<x#a-Y;xv;5PI~-#=76Kx##7B59Sk_B2aYj`3%a*9$XocsvqwA}YCJ9+ z@XhBSn73!?gEk*{D!M*1mz)T}Ga6qR4@_y<_5T1<70u|J;qn;-?el|_fwSid!mW3p z_ljPMpUUN=rvtB8@hu_N^*VmBH9^4e~6}$kCJ0Pw@5TxH2RP2=Y^@%Xpt=;i}$!gQfi;8JqwkK9i8q?=^VX5{8 z3J7`|(Ue1wSEJTY7V$oQG1DY!0RUU-Gj&0Y+2e@2fUKM~*y27fO;+h9U z))Z`H7c;0O5*+U=u?q+#J5_!Rhag}A3HK3vA2`-g2f!Ua7MMhB4YhCpX+(RH%d7K_ zL?KIThbO}yIE1LhePci^#rK3N387nD>J_HmrZqww`Nty=?+y2sW`+lj7`u!tDDZeO zdG=`Ly2McK6~sBj(5*Bc7@9|Dq-FaZk-_(sHHS#|-my|%AS!!t zfLe3%$k_t$OnHn>E7maSzDvx)?gTvEG53Trj&AVOg=(MQ9*)3t*Tz|d2ci4n)P-#r zLlHA$TS`x_4easOEc+eGw)ETOprb;y(n+9u?n>yAE;DEps0@=LbF-VKNZZ9o( zkcx92O_+;}>C;Z|9z{(KRqbjpIL7~bwtU<7bfstM=jyW7gfDmZl zZB!4u-IqfdmQzP{%J;lE;jBHIq7{ukGm{e!PLrT>Fo>3evIqb!{O=Gq6< z1X1g+tOVROOpqDut}}^bykG-i`^7aBP2SiL0(P=}U<7D%<%;$PUFUhvtQhhfP*Ja( zd#e0#l=81eQ4Ji~i+Kdqzx6e)M6XzbHnV-R&&z|RDhs~wsTMTt{AUS8AiVrwtsrFC z?;ziMCHcgG8==OHnaS?}YCx}yDkSFjH>|qCR1JZYmZ}M&{NbcsuWaTKlDe;~RYa}V zw+J|#gH@Y^gbv@VEl`UlBqKpxez{Iyj?cFZwSz@3<2ka1b)mXSP!4$=GdiR=birD#kec?j!Cjy^UYtJTaFPz-2 z$`AsNFN`h!0FFOU&4OCn?*>#=k>3S{{9*tJ3zfeaXA1zfMqr4lXxx{kXYHt=pU^YmCaGagHxgP|zy%`qMT;90j&RK`G zSXUIfNof6k@h<9(;U)N4!o6Gw1zZm=I2Sd7ri0cB8i9XJ{`tL}+6d3PFWwrc&Zdl2 zQRJo?h;GES!2(IR>i~mSq03<>DdQJi6F}=9E;MTJ7z}mM6!{I~YC7^%pIE>v-uHv5 z7X;cq9&w<*h7>6o$Nfxnz(^TbVc_UCrz;A-S|zgQ_)0ee>| z*KZ2A9Z(u)FL=NNo^1L4*)gmDPKVKfgI9b%878z>TUXv$K(8Y3V$dXXyhA4vJzV@5 zEe;aiUYZ+LOE@uc@M?OXAN5=1DILn*34ryx&T=DZTwuf5#{aa`f(Ei?OmaO2FRJPiM|fccz|jlS=dh3cD&yg2k0>g z2T0}d>nh&R`0IXgESOE3Oi)Oa2cGgQng#A}4X6p)@!#G7CT(26ganu=TDzq}O9F1UX3ndA=#0(Z_PGW30Ag&w_Jt>i>#`eD4U z3pFwDK|`hL`NV~MAL)eMe&_@f%wBk04)GM~cnnx%Y!LXI;IYvcbq`*0P$7$G5@{5q zo7MG=WZ;Nx(H2YLTwHiinpOoXZ*3ezJ3?Vw4V{ha0vmyVdU#3BoPQ)EVBKET)h4d7 zY(hy*i08?W9T^ZH4nS#^k#(ypgAm0@J&V3E4(@a5zHtdi)|>jrH8hA$mw(V+aHZ}X zgft7S)~}q@4x7AUf{vT5$RLTpz|hc@-n_X0dx+uShjSo-O%scQa4PK4JN#n`L2H!s z8OHGesK2f|;SS^ok9u%J#0aHubb>*#!MH%zJHkQm9prI#XcySt=4m z+slsc>o`Z}0ed`|#Z4D|W%aI&Nc;1W?7Iv-IWR7W;NuWe}pG=W7_;~l0 zQiB=M?ZgmratDp$WMU%a)WYSw=oNx45#W4aqoO?j0GtU*fN&QCCJLoJ&+n8@Qdj=_ zz^iHv_Itv%`+?ei<^?-xartlz9fHH}q-Q`n#L49ELD2cZbO)2uuDxSn>F>?&1Oy17 z&R77}2Y)y|A=H?OMc2$v8EO6y>(&UsCmi>RHCDUj{{Y-)AUc48@KtM$xWva@1CEsJ zJI6pREY|(wJq>6VP$^}z)@@e#Y0@I_vG1HcYn8x28Ue3(q!t1r-D9oz!j@3M5d{qckRk3io6CR7f zQ)v^Y)(lE&G_P)1DI;Q4JD@P{!e2%aDH@IA;|Dk78B$1%-<);O;M1u4!?UiBznofA zNg{LBX{r?+KCr5>G;rfwC{w+4edP>HxjZcGLInq1f6@IXmns~tpd_3mBBg%92 zg`!%)$1ARTYq9%&a0!WY@3+&8X#k$^)4+7Xg%EIX=8+M>tz-~UKE6!2BW%-N+^B(J zv+zGyqsEr6?f3rx7a7m>r~DWGYd`*ab1l`1fFgJkykSl?bxegQ7CpS@Dr!DPR@4kg zb<39C!MD~h0$WAr->gXkpC-897*0J`lYY#Y2$zn1VNP*}pIEk1G&avCtN&L0o51%t%}wE8S+wE#!4&ygHn&9s$TtQF(RdI^vG`0X zsR0y!L(VjcFCb3m2>$>WY3raC0&!Aw_`oo%Yn>%PsJd$g-wTSMLJ-)#_`&Q3RaIV4 zdJE6zDY~n$2wQHaUN9jz0Gt7Z+kI)dFzo~CvIwwMUOK^0hepe{1*5IJ#`i$m%Z8f7 zlz>ye&soJMM=AVZu!U21d(Gf*)7C*zjRNp6 z62nX!S|KAymx?CyKz8QIiXVaT9!gu>7kpYaBgU4#PoaungGvbw9Mv;9GL z!ILDDp+o)w22<5(CiYA?{{WO&^2N2#c>PBjtF;gR0G&t{yw0(tLqIw9uQ?zCM~>fE zm#Lbm^kWhp2A%%^cK`~pTSF)t1ET$4L@RnXzWg5;0;c=l&IL-b2l0g5T|r;IvEf{R z^0S|;Qg+p@g~9cT5j|qG;$3{?uR$f}jrqe66FH-WI61ptpY4j0!X57sT~{M)GU_B) z`Iv)JxcKhnDrYM9kIaaXo5E00UA@y3Hi-|@7O}B62M3J28ahEWc^UQAJ?JsH(fM#9 zmzG5E-mxYKx~FB}BNl38L5?YIO`V%>yk_u76Z9X;gaNKlkQ`cilbo&>2(-Xn^j}vQ zzHk6=j`hy_#lhEu;)w7Xch)Ao#i$q=%17ae-bGW^*6#E3iEbFEZS!Xa1_GV8WX5Ei z{{W6OAUQgNZ=6|56S@wMmfWZknk8=;WI~$v)>J||KU}HV3TPSnm?1)P`G4QjBwKHa zISl{?CZ4|;YXJ;+lLf$ZJ-lLc@F3yoMSiiV5!SFJRNm(pD%JDn80If`rw9Z>G~wm@ zObh`FiVoZ$?mV4i5g~Y75L@NodvG6%Oy>|U5a|4104{~ac*YzyXF7k?;+#NPqLohuep` zPJJ*wRe*0M(E+8qAT064{()@r{rF@bSX^4V&{c?!Vf`3T6^4R{aP$3L*cL|%s809& zf8Tk>=-;>WjYpdN!AIC+KDe~r04elu`s|@bTjrze$s}Ou_z%|rffo>VB6499I;4#lOyUHf2ex1U;Vx}%!GY<&K;<;3TKrGdhD62^*oma~{WLRcLVFZ_na-GEJ^+`a zfBv?bzL%@#n)MJA)@xvUPCrahwGK$9yo6#mO@i@(#U%j;<2H46LGk-scUrALnOGI6 z6dT)?gd4Tc{{W0uR}?cw2ce>yi9Z+^xhp$*Fr!dby<;&zglWL6m}(%tv5Uc>cKXd= z7=yiM4ku@~yc2|Cg3W&T9I1b>!za{N&TfDLgf0B@f`+iwU0g?R=D`<7lUm2(KVcwh7hZBtmC7`xJ)Q?9$?T;K--R92+%@zx!cFjxIBo7yNM z9^1=XItMO9Q&o;UWI-Lb`~xI%JOrmWHdA-l{jpRcSO;F*WF}5-e)6XqxlM`WnDni? znFZ21l1v+#my%*Fs#wRB!it;Y ztO2^cnQxjQ=PnnqG~2AEO`Lc$=P9>4{{V~qcb*m>*GALu;z97YiQyyT2aM$YpGo6C z+b7`4&r24zSm`Ka2T|b&6qlZH_?Yz!mlUqnBV>s7F~(4+QScb{N5B3#In1Y_&>X7h z4XOrzo{#JwkuVK#7KfGPR;uk)a-{Z(+Nju-O|W*1{PhYA&Ge1FR}u3G(|wBQ*bAiH zBU$lQl}?^R0e(uBcpDi!9^(=kjI|q;Qk)PH6`_4Z`{jjF3f>;yH z_Epwfk`a)wG<#;Y7(1F>4!2r4k?`PLV1v_^%2y(OG7VHuD3sXLdRUBbI8?2hb`^4) zcrk>)n2jq@@+SP4{n1jfLbf7$Bjw8CyYvD2e>)dtk=~@ZCohj`S!3bfU~ncuC?+?n zx226_B4u>QN8kiIu(ApwJdH=_nB~~g6v5;Jty7(;u##9L`+h8y;2fy6y-QAECdmmw zJr3=UL*X$fk^nB_gK<0#$NvD;Q3171&3}AKT=839j~JSW#2c)EW5Ib`I0}VtoMLLK zhfns&v<--G?}l@op&7kPl17|Uk7ob@gG1rx7(@cX{r>=LO+XXFPn>b#UN<~pBm_#E z4+r`@o{;s3%0dXML>lYm43E{b80>?q*XcBeK{J0O;P~IHM<3uo_O$1X#Hf{T0L^N2AB~_ZZf$;1P5`J8T zK+i23#V&426IJ=|AmvGa(^w4dk`L1ahN`;-!-ZqE{&A>;vZj;9Be?9wC%=pYU~&(P zOV*78zVL_uX?&hO@w5|ws~cZ?ePTLYYdLC%a9pA^a3yjuOOX(9`R4_4dwDxJYzA<~ zDl~^P;|S9G@ZyClSF^lKV8c5XgBOyL7W3ryf>N!!Bld9w$;r8!ivsPG_&!O?{{R>I z??33SrFxzv_b7b_Zf$L=;Lp4#vE=@rU8JQwOYA4!7%-XdFSs9H(0+UI-p{5#Si)1@ zgf#mv^_yCP)sW@`i7b9scz4+2tDTA5A_kB<=UyI|@sl4LVjo=xTOatj-}@Pq`x}#i z0b$lbpv*QVe<7Y`7b2LT57>{B%M;9LG`%nAxJr{ik~aII`ToD}yyNt5+W_b(TSSdf z(Z~L7fBCt^%)+Tib`P0_pNN%O6KLoR6wA=xk$w&|WE0fW&?SM;aPJIH4M&6QT(FXz zMGQtzbM$#b;JH>3aA|S-{XPQF1BE;eDn>-Yc*8&Ob7AZf6fFc(pEw1B6a(1wj7P{~ zusjNUsyqs?;Yo}I`==j=6}&d^oP)6JK|lRSJ3ykE%M~4jbul!7vgvxt8jkk!6`=f(soph3Iy`r@Om9ChpG7sN)oT#Rrw zw)|qGN044&V#!7)K<9APQiz{`i;Ss>0R?I@G}}Jll4{Ns15( zJvQP13nXTbIZz$o8dnmaIR`_$H8H?zG4&3ov+on3SuAAAfJc`A992u)D`L*{{btCQ zK%c%;1GkquT9)iQ{&@SsfnY`v!HnQ_Js3(&cIzsS-YC2{FL)4uc`)AM}DLuzI5#AN;IY(;kTyycYjb9i) zLQHW<*#S?4;W|XkMx5~!CEzUaZV~hO!mJ9b0LlAe!Nmm~m;?|#zDe5I8bYKMm(dWi5V5;%w0A0~O+^7H{;^7*fk%K%#p)y|H0P~EX zFl-gUQ$d_c5Y~a-u~7~hcvw8Kj78bmj;Kl)57T|+xKT;k4h1epnz_Qt!$$kaAQmy~ zS83LFs6ZyoJ^b$=7)F)sasL3BWG0tjknVXy9muFYLtNtBYAX}_VCmK0hbvg=7~~3- zuQ*0a>>Ns#zihC*+{euRhZq8=U9GPfGr&9(e;8yFPs}a_44s|V-VFxLmtqXpaX;Y&2cTq?*@VL{0O$~8;HlPqt!O9^`y%faAdNSGwc!wbt6%7J+QMxramM*( zjug{jiu^M2Kl~g;8wLinQWhFYVDTQ~LK>peZrmK?AvTHVKb?&i6eCE2?xs_^3zHS+ zAo%|Pt-xL&0vlVkRowJb7EZt;6M9flFX|W&>sT!iU~mQ+FhF@sF9BQX9M*9%#M5i4 zy|Ze+(7&L?3bQ^=wh2_+2?}2=J^^G(&C{POk7eg2krBd3fu+1l*C#r(4XIoO^47O z`^rT)DnNYvVy;>`F^8fyhDlZ5y&9e|pc5K(tVlZmv#aal7);tvU11a!+8tyELleGl zyde-PO=SQS=U=bJCPdT0zpm{_1M&A>!AHyaU{%M*Jz7zHSZ5_v^xp=gOY0> zfrE%P9f9$Snr`qK;5*nSTjv>7FkG-f2TUPOF~Dkr0k=YwINa+Qa4UnH2S8+D)-+rY zBf#OTB9uYB<1<_`U)Q%I6b+6W0YyV_#y;pO3~Q`N#~=BI7>y#q$PC~Cjib)YE1?m) zWE^eWL&wVNB_Jr8FE}+O476(E_zQKyV{)9nKRC@d?~rqQE$$7wh7OA|8 z)uilr#)omfGUw+l$^rt3fH=*J z;(5sj4Z%-6xOz$kHV?cS&&cCmFc9Hkm&g-u47EyyD*fS8Mc8d)ikdiW^N1O1kam2y z0V?m0^>9T?bPc}l3LYF+XS@KB(A|@#4ueu2Fecm-M*U?}3Q6(n3r=vW!|{qJLPxjG zBKT{i%IXcW{*cJz5L+vMZ&;{4Dk`s^80;a?Ip5EWnhKl8)}~k}8)eRft+P<^azK)^ z1p>d=<$y40kglXxoAr4=Hvw5#sJ>{2im^M=CqSs zOmAeAH|g|m?=)4aF2l$1iNRXiCY7W>xb-G`KleNvR+~Jy{fqGD&I6=iXr193Q7*{w z9x#QvD?FYYMQTPfH-fhE_Tg_CL*xGd+{0oaRFtAqotVVcr35ZfTWTNw08wfc53W@N z;Z9~;#-gikKJgm~s4C2471B)zVo(4v8xs{M;8U5GqAeuj0k#qlhs%&1)Cy^4Jf}q1 zbMc4}0mS@oB+&LG_TZs959}D_m{s=p#RIf1f$KN8DyV|?{9`zdwTf_HN{$;JraQI_ z7x2J$*m&227?p47;^Iayp*MH?V=dW_o!}H}Rm4ICXj^kbjGPnv_l_e?o$t;irA>?( z083Hg`S*oKmC47!fT3y6A;AFoXE{VRvW1wNVcC;{Vy=zLEqnMe0%Ol?79*CIesTgf zI%quQ^kWImyKxAXc`G}?hN}27#Ab%m;$@PY93Sqnp2~MWz7x!7(~JOYY)Q+POJ)4x zjRu8xSFad{VxrBT7$6WjasF~B0P(4baVqHOA0m!CGScw9eVjC`l3VU)oDgfR_%QB~ zzgViF&PfzH^^MnLmy;1%l}#TQ0Y%cBuqLNzipmE7Y&qe;g1ez7{$eE6YQ5mFTK@p4 zlB-TPoRJ8;uHT$NlRzEo5xbkNa@{Vfb$4v8w(W0qqj}qH%4@aMzD4ikCKJG{(2DjcIaux=IExYEoK6CcMO1Kk3{bdCK zD){RsqjA2lRfZi{;OpTL$IcAZ#<7o*6^!n=%1iuK+Qe=YmVt?i(XA<5Of!d z`rs&zge875c;x7(>43(;&c962&@IBE05-{i2x~w&z2F#B@_=`NIrOLABt$*Gwrd(H zw~z9`J%d(oWU{3}>(8u2Y_x;=;LV{Ll>Rc-upp%Bxm$w6iSH4ha&PgB6JyDO;ZsSv zbfNp>1%=eB;}C&PM@KdVk+nq4^B<}27&Spt-k69tYo_jWkrnU`?UTGaX&t5K+od`{Rv2;NUVF#;%m>nn8Tp_=tke5Mef=&}3ZdSiFfoXqnD5sPv4 zkl1*`@gB2uO*8^Nmk?6@SJk#VC0^zorEJYe&&= z0=K|0pE!U+XB%7zssJK*aRLEI-;)iB(On-HAcUyAOweMf&hj@97UVM8Rt0qDc*>)! zFFx|Gmtnfam!M6)@G6jneB_OEwSPDWfM?shwWlRdJ$uBGpb$H_K=u&i#ti3_<6Z_i@m>dRIfj}!!4jdca@B$wU8XkV8xsJb9-92%t_LTE6v&OcVj1bW zM-r|cSvP0i6UN{E1l8V#06nnT!Kx!c>v+-`3U?ve*mk z3-ghzURRgv5hY<~ADnPtHXN(oFm~C%ZkcEo%W22s4uWsN&LRMWy5k#^UCyx*O@)tM zv05w?^5M^?vHRl4&|TEi;~8iGsM_UC0-!2R(8575@O{;&S+aqgB2POhCm{05{%@ z3^u)*kbzdQxY5fZ}q>>N`Ug~1b_Lz(&7bB zJ^ujmGJ+||fB1z;Q>*^~!zDp@ul4@`LF@i=RGLQNb>HVCEo{}$=Nl0L&DrsgL3V+D z{&7Sk8XW!PLLEb|e_2_DKsR1+aiKV@01^!(9IQn_PuDv=rRfhob4^HW2kH2jl!zRT zPgsCn2aK^c)R%o@5aHe5oIoKK1D6+rMhbqe9enKI6UH-UuWOdMV;>Wbi~?vVJkRfr zTLZ82i<7W1G05YC>i}g7{{W0pUfp>2lPo~u2crq06{*%ow3G_4c$i614TojQO`_E1 z;j3ZZ^iD5~VCaXya?~Zag7Z4f6is8B=LN=GKi=`6dzztpe7IdGDK`HAY(x{JCcU^! zJ;PLW#xJu31vQ0^fUm!K7O5Sn^y?V8AXD{w#HLi+_rQHs(SGp5sOxbi8y)`G3T#j~ zCIHgpntpPVt0vr@a!LU}@ay=%S;!teVgjX#c9p&^aj8fg{{ZGIC9Iq{pdsWOV3IU; z88dU|6PJ9t;}1}cot$N@C0{NK{((GT2%qsy82LFVcr%U6Eu!O)qxf=SLJ`=}L!$Q_ zzYge`1xlmph6eSAq^tNGP<+94D)1*7!uN+C5oo;kf)(3)L$gl*07fbsnf|cnpTi~@ zMBpjn$(m+u+RsYnH&xhH>fFBlIrF1A;D1P;WjViG-FlR zexTM|UQM&Dsdg2*aNiZg=tHCwbdCX2;TtvxI@a*cZ;TXVKF`W$2N|OBxuyMGJ~L_t zo=&uEkjDb--YDCyUw_hrQA8$!Y(_s=B7g%)WiqGH{RwQCMIf6nMr%zJf>Sm=0~YYB z052Q`8{UC5u7H3EQ1GOFjD29N2$*^ZgT+sV;e^O^Hx}Evc!}0FfJ}>miL8P5*)Mfm zcym((CQ`^`#*8uk2PCy<(*o=xqi-GMAYP9T0ML4dHJ>myTL>>HpKg68 zIaO%uunbx}2S{DIQ?;oM@d`g?;ld| ztv)admH7OxyfQKx&)?w5p(5}t^@SpYf#F$$dMbf7GnXt3=qE>=d}TXz2Uob40$0bzKl(B5M90*sHEV$nJl)excuP*4(v;;Bb*&bO3v{w`yXrj7-z|y zv!@tBq5l97l?uJypN+U*klMSqv@g79R-dBZ)Iaf?uEwO=m&Rp~mm@a6k@~>g5{S|t zmG__R{A2xRgFoE&pY~oqqce<;b|rlut^R@qaB8pp0gJ3@V&ERe{;(uwDY|X=r_KEu z5{+7E`vCSB%@mhnCyg)4=jd`AXE(?H0DaCCjBbk zSd*D9zkLiTjz>s0^egF{V0I}e2;daoaAf<3<^G~Mcys+vjQ;?o@ZobK;!GdVKOuoX ztB5`8+Jqb$CYlLMQOpJv^Qj+fQoRDb2O-Xo#Za;s><_d)@fmfX2n`2nd;W$uk(U}f zg2(mZW>6i#FWO>|<5Eo!9g3D1q5|?S<-|DNup$F|@%8Hy(o#GFe>whx*Zl4f{jNcq z70`42v2LzN1#6510G}(4bj7rL#?p1p`^dxw&A1}QfN*u2WQhaEx?+Nb0n+z^D50kH znxj~|_oF1xFDpaAjxsVeZbF!d5cT_E66}^KbulxgdTsZBVB&yu7>2zKH~iyqm!RSE zn(9rt4~%q(v`IpTE+P&k<^C`}-ok79;Gtlf<%2q)M=rqXI0p37SOQ7@fhp$DtnBoARZ)X$f=o6pdK68={Yr*3=RPFG|h^R-lObQgiIgoZ? zt%r&mGSI`h%K6PP#Ev^27Hx1-f|1I&mn%~FbBx%@>E2V;KNtQW&}zloPwS5mJ@%h? zcpnl$?F=9MMh5RXAjrN0X74NQj05dIhI)K57=DI-xABklo(%s0bKZa3c>e(8o@fum z3FRRVZn$9D%VPZ|kCpu!Ao7(+J**FDgUIgv!EC;;T?!`w`cch{6HRAJU$!gOxqYwy z0Hc(e0d#Vbqv(B@T9WFzj!@BuvR{x{)PvdKC-Z1wE9eoOPF^G4sv-F|+J6 zeLfBwf|;n$vv8aAUJN7P1S$bEKEI}&owz~EnNUhow~T!ivJ4Kwp1J^-RH52GmAMjn z2H4&3{sw=&^Uw4izoq{Gm6dienGghIJZr`nPPMgln+MSTSOO_avRz>+28ubt(V+fD zu)!OkI~;{R4b~3<;9g7(@58ssxMD8DrFI?+l@Cxh9&>G4Aqg-=Q&_Lj$)Fl6b?XQb zCZFsxf(}nR<;7GfL7|#3vc%bCWr4B{haSJiE((I2rMUoVD>=(B0g}z${on z8ShXoVg&VaQyd_-dZlQCMt#S{{W0Q(Gqlf z^5&LRh1)sDy|q!_Tfz_&*Ti+`z>{H0ziuf9UAn;)8m@Q#uy7H{fHMdY9u)qQ96;C_!2pRz7uF#qVL3JM9yZU4 zo?n3j?yy;<2(3m-og1~)G?H5KwvN!R&Je2_Ab>BR-q`OYf93$2aVF8)kqaObb;l*+v?2!anH$>?xL_MYF_ zDe(S?1OkZ7H>gv%Ci&w{u<(;zy}|j$vsvx>bfMf~t{i-P7o_ZOWAdxu2y@1wkA+D3 zT-<&ac*pTrj-8n#HWxZk2gu{rOn*IWAiT{lb3fAfaFheQ{{Z1o`I{zgf!sNV#H{6ST}k)m^XrhBPDF&m06Ji3Yg>27n!8iw6R8gz8>R z6@nxJYj_O=4&GRbwphtH&4h@6YQ`#+8daYz5V_i#4_L62DkAyTZiXuclJPP|5V$#? zITj5`zH!ru+xjqwNj2l~fV}~_{xBnnR%j0L3R|;7E?+}-Yoi@pRi^C9$fnIua#RC- zy6Yqb5(h8NK!62LcsvV6&FjVhbitJD^^`@x7HID+g5cHVISm$+_nM(tRc5Xlu_y;2 z)*}~IaJg|+ZS$K5*}V+99pg&*ePndD%Df%80p8de8E_v%6pi z(WZD`{CXrbzmo%z@IZYZ*VLRN@Z%&c#(xGZ)L%3D44@xJ{{SdF=Vl^L@}Jc%P-r*& z^uP{3qM#H+cyWTC_kb}1AfE6601sFJh6F_RIOXSPi}V<>p?#PThad6@BJ`Z)S`h#} z+qRb-q~62?$*rznlnHiSOqxmr$mF)F`2|i2m%c*I!;4R6ptUbTBLTqWN$BcV3O|xbKDk2G?>g4Uo zrRDr&)P0dpUa`=GwmdKzk}w&DMXFPwe^(K2Tgq$W869cB+W!C;3_v>g@rrGw(RYn| zdG`>%$&&&CCjs+?DBcTGEK_eHZ&k!V1t~C}7!zyuZqD%Bjvbq~ukVt zT#ATPBo8We-~Ry2?jftwC}<=nE-Ttwt^WY#JOV*d3E&KQInz!aGQeNc>njigx4Vrb zE299xFd0J4h5)Y@&k(_+UhYDq04RQ2iKx0$AcB{6Imx6VxCsC;0;rw~Ka2&sQ{U}? zh13JroB&#Rd~4r$``{J9@M5Y+H0V3ajN7e$>4acQt<&cRG9gF5uJdjYvuu@3AqTE< zSgEJEh(a*NA+B-x2&1>5k_E3X4{j{x!oJ-8L406PUL13*ChQxsYlB%s9ol*L3|6o^ zA+JUqma@Qw^JO_cFjl0CnAAd8?q* zb6&!*!=da2#=Kw^KrC~#H%m6|;Ef^?*Tu+dd4OK^-UY04wjG=jpSP0}q77aj?BNF| z2(a|?h))40e_i1f-K&gmU|v{0$<~ZT5g%qLRVumHyt>Vd<7D}nJzPO0{{X4Rh&2vA zc%m7-C0>m0fP*!^J>h^`8efNuM(D}geXawOjHg@j;zA%0QHAyI5Fi23_-_b8Ci&md z{NaiD9tZPrNY$|p34mf~sB8V0ia{E=d&pL5aY| zqHtuuK{up4%!32qoEfoVr$EJ5y?{(;^uWCJjL5AT{@5n^OAd?;!st_vj64oZc^zUW z(b1{xlZw&PQ>=I@M7vL%l(V;o(Sxd<&K$ARMxV2bVx>FH0l*IU#wn1*mkkmjuO|yYEhAum7;Ncx3-rLK1_r98BNnO}UAV|lZqgqaw2Fb^ z-SBaQpx>QeSw5Jq=Joz_XjH4~)&yW$zE*L7?trR!HRq4U7tnX8AZ`6I&;&@RFhL0m zUxqU&*by8crzalp0U(?VxH&ww!O#q2CNtB92ds|u^@pL2I5?4xF?zrRU#0&5sic4g zYm4GDR;te!yMy#VefNr@1Em7E1s)OO(0s(<-_lN?x)t^wty}rTFsDKM_kwHy z4Ue}ZM5wJR!-)3;;uP_aKq*`Sa5ka@^Y0N_Cc|S6G6o3JL;W)EQD{xS7!_U$c-yR_ zM-=Pvh*SX5d(9bwy1~QEbBH&$uXr>Qm!6f z8LR+PeZ1US5I$JaN{xOx!X1y>kW>-BKJqx{LpgW=8j^?<6`rPF%DqJbY!JmWJ%UHz{|Scqx?9r@$$BJ^1_A+g@~ zec?5)lN}S60{BcSkj<`1k=rrXbk1{#^M?1VO7a-6r1OgT`k(bQF2?yfKq+XS&PLL5 zc-O{jXg%_}%Af&3)2w`(uy(zDV-BD-cl%&U0bV1#li^0X`kBiL7pdSrFhvRlo57GY zXik;w$&;PG9NesP<-Ra;8c$oqjj0-S1D6iq1K@v_0YXYftNpTatH>E3)NILpxjKN* zo;kb3DWEmL!;$b7IR`BSBW35-2;3v&&VBQY!f4R{01P7IOBlRYVt0U}iXDO5aP&rs zJ`)Ox=!bZ%AzpK#!wIYH#we($?DF7)RbP7EjA2QsyMGvU*yu@pVVb8O4hZCt>0C_N zh|RcAniT2toD3QRV@~l&4N)6?>j5SclzG>jg)~|dMKoNS?9oxKZTEnZw_wrb{A(-k z&|Y&*8$j{pzxRw}nJLhnxRBOGuOKm#!QV3;{beTDt`_0!iX|q1p40TlFS#?7n#Bz( zjrX~pV+8m2hUtjl=)hNC{9;6*?^w4w^MH+LrE%&_^z;7!5{b&lptUnx<&z)1h$x<1 z;H=i>bGcW)_f4 z^7+Ct*e#mQKCQ0g@tQ)rr;O>C;APHhpwRQ{)-gb!*+cx}wu%TjQ;cw^s6pVxvEHvP z9AxqutBY2e15uhTPzP#tJz+x&rhs*V89@e26?9?J0`%hqqO4$j_%MT-H5fnR5Mg1z zcnI~KqlTuTZx>n1VN+B*;1g{INOR6^8iuR2=*hI%_`6pT$vzvQ=Ln=CwdckqLXMqi zVc2mLtky{PP~hg0#bcWw3-4u^Tw#BxpP8-QoUF&M0ifF5Ug) zr!J!c4@4lFd70jC%aD@53VGu-+(gcjZiC+s3ONYc8Djf*bH{%S^TfTm{5#!TFzqYU-AzA0fI2bm)i|+)&Gz-f(HX;pH^y6g;yWRHZE0aL? zjZt`!yx1u@TU`E_9Fje?-^NtJFJG=x4J(q@&JZ@_qj>3xJjP@AG&qO|1Ss?9G1cKU zc$oWEs~u;aK#8FKa2>!dLiOGc#vFHin39MbSd%r=ZdY@^kDTG467C!mDFO<`bCw?r zn${)w2&0uXj6N!)yPC=%Xi)IJa@ea;rv^dPqr<*`zFI*W*OwUOSYa%lS1qJT+^%eN z)zZGPw#NSeRpTYc6eD-mJ}8KJ4^t2wC%Ra#hGZMi6xF`55SkqCDF%&~7;3!nhGH7l zy2GnJu*VTvVS`++#w01g0{UYFVe^t3SLYR^FKp-jAfgKNe3%f?9{goH~oR@t6JYRtY&)FO=I#SSvsxd*-}Y@H0+3 z9zqa+IApSG9*ky~cS;~-$w4Th{{RFL`)631jOCa%lR4+S*oTQtT*AQO(S4AIVX&HO z7)d>aN>m6cyU8Su!6tS9m@(J4cH?r)KGO66E=OjHDh4vU1Zb2^if_c_GUCZdq)Ivt zHlfVGyV3IvB8hY8F@X}jrKP<{n)BljR7=S@-}Iv~Wufmb$1iDt*e?7ATuiDUDyW;U z=?bO^c5`tYQld~H<7eX`E{5okb`0Q8VT1;EzyAPp zZ5LmRDKI5G{CJ;vv_Uvbyv^qP8gE0^HY!q(+WE<}VFh*`@oJ(1JmA)tr=UMf01;ZV zVq-<8i!KJ(lSf{%Ed)p!q0j4@(-Ngs_lPM_17Y&w(ZgVq>p3WzIUXN)E)GM(3_vB@ zwR@g2gorbXOi2JR0N29;6cXFZimeEGJnh8|#HD#oF$vn`&$;6RPH=&)d2!ddO7@;G z%+apg9`T4suK<61TXN7Y{+~T!!q^a(|3KD4kahcs=4sf|^cTLB`cGY5U%Gw%QO}0Eub{ zePsYBvcsvAM$wzM-b$13ITOo*$33U(kHU$&9&+225jgjZo(SQQgi(4^u=ADeOx}YM zV2N#*j+mV~Z1`mR$Q>+=c)7{z0A-; z9M{{W&8pr;i6o0co3 zoaa#Vn$AD{#9gyNehB#Ul?wnfO!J9!@E?@MEf6-><02Ql+VcY>l~SEq{&8R)HK~uk zskU$96`btjw>t)%$M2PkPW>4r)0UfYn+rNFzHmzeq&WO$st78Op8Lt#G?QQHn~=_3 z*C4{`ed0;A{*8Y4X!hJY4>@F8vo!otK&C-;vRR38bwvm8=Ao|j}vOlEvpr~ZPA*6M<8NKF9F7$aID*#<(-&^3K|!l zY`_bg0{oK`q%`!K%g2&aQyl?mdYZ*ZTh6-916tK_3qG9Xv?fdSLr)&wJz!)!leOnrI)s7Fk9f_AsmMNZnUbIgTesdF zj!1g>#i?kAmjYA<{5;~dU{*Zj)G4o!`NbzRMt&D0Udpdyc!wL!pg+EGxq;8_G5ua(PZL07-i6KINL zA6~uUkVC{Tc&sl9P2sT?+IStlF@nf74t=kA-R*$Yvl_0a8e4bsg_{Kx)>e=Ns@C(3 zuwPiIO2Bk^-XbUpQ4{#auYyRzV8FIT6TQF2PjM6uPgwgTq&nB0+!$@JO$W!$DhP*Q zv^*IS09kh~Sq(xSeSUF7c5pCqr=7DIxFuQEXe6Zg`@kX6bLjX94CkXkrW+w+_(c_lyLW7z!`Lhh9nZ9Fze*S&sr1S&G5Fv>bT+6VAAV72IGz=-DJd0sV=)~EeXR2oyawsf^+Xbb`Y7_WJ@T}fNyF_@JgbRRh##dXsh zi>U4D<$;ypclE*AjUGXNOs1sLy7!1mJf;>92D%twOPe+Ra70N*Jian%K#|AZ2%WiT zkMn^AP>*YaN>eG?{{R??15tPFhiIg)u3VKW4=C+(gy4A-+m;G6QQvt68WziZVFIBQ zQqA%6gp3+XsDJJRFxf82cdvORQX5I|buWwv;Z^LIg@mW_ zT$NK7%f2$wg9=Rp@M@qjYPy5e+V!h>xa z@E9sCP(*ZG*_vWa)Z^ZH-SahGJL4w=bF0|J0jcHV6az?xvS3-hu_fB!jxm5M!au7L z{95%gwg5#*g29&FU%mntnFD}bLwx0kr?b$#zLt(u1MaakNRV8r@r&H(66KmtmLQJOpf;SGweKD{ zfLn?UDL0|XLcfF50jree;Xu19{GPD*7Nc{7CbT2>oRUnY zBZl?CU1t^J&IMLNMJ+opm?|jKm=X4KMK%ilB5UknmK6g;^ML?fK=FY0r3KEj(Z zbDJUssS@fWmsw!oF{DvPX1wDd;Y+zhjCnW$fC%;@bJhuYOGr@)Q=qvhS8#fOHFBKX zY6Y!zOPQ@q6KL`aSQN$6@vKG2DGOj>N3g*E05L?CK;nA)&2Mob?Ze_=ob&+~*w!@y z*1Dz4)}}pem7f7scsJ@}!I~n45Ky|~fh9yJ9ufZl^nj@rzPe#BGN4(sXJfto~S-gdxVbmgE3}Rs{LO986m;$2eB-M56g|MYJxOf!7{+%P|v_g!|2~XeDXBaR*dF9=FaK zhb0oO11BOqVJ(5x;Ga0oD}b?etSDX-#r)+lXs6b@!5SzJCpJ775Kx&+;QrX1St`^# zT)#q->j9Rwt=GmH)dKr?a6~ps4{wim1rTj~GrV=G7hE&E1tVV!3C^)=W5v^k2kK}) zhD?MU^mh2j&q0U}yM`jCu5ssznkOIdyf_TeEm1U`=H65gh$Xw*9oAgL6*VzF40eqe z?kEG2PEug>J^G>ssHkU*+@C`v2zVnM%r=hhCW=%Gy6A5PC=!Bk06tB>oN`qcDnQW} zg5q*eh;7LkRHo{UUpqU}`^qa)P1~7Mf0=>_8)I9Za z0EJQJ2w*{qNacwRH2axCUFr7uw!?W_H=@XG$URkCJQ54gjAeB+oZ(G zuc0{ubfEVfoIY-n1Ky8oiH`B=q5%D6b#c{{Lej9b5OF726p}Us@G=vubr1HBP&zf^ z7q)?#3usnTMZ~kq0w|OsrSieS^J@Aw0QlZ;TraYiW_+-R#qw~>@hF0+$)fUaywl)+ z6z~b_+6OHbDFOiIa&r1%!O6~7#i9p{S~8OEVQ{Od&JUYc(Xa=`^Md6M3aaJp9P)NsN!KD^z?5YcZ}2hThAhyzzrluzmMO94~%)H`7oz))n1f%j`Vx-YlvH6q-O0N#FXlglQ z*_=KI7w>Gg4c{ftc$uHJBf@uy*7mr*?k&m!3c?vMgSOAx8(-a{e3f<(1L0~|{MzkrIBagOT<ZqN6 zEShvA(U63>csb%6I(^AUAY(kUHlO=qD2ZNCYSJ z763Vcm4Kt*Xk~cP_la@<0O&Q4k`wv}PzBpN#exMmXBZ3uJdQ!p<2b+-0A61>uuxNl zIR2<4cyIs!0SI6PKo^(JKytyNCC@sPG}04e~yzHwlL zXlC&af^jeefI??bX)NAC-tyfMfkL9tp;nTZa89g`ZM0n=v&H}rGk^zrGpIC{Zy|4a z4eOi;PyYZ(g?D2bYW!d*(AJ)Cge|%cyHO{8Pqkb94M+dIm==XLkq$NNT$E(#&DE7-oF_s2;^oVz+LmR zBOSX}5Ki0Y9|iAelB$3_wSrL7dM(G*7kp^?$_r$TevS%A1cR@vDH9Kn;7B1*t$b#< zS43vO-cVoL5U4ztpR6j1u9I^g_AKlgO%gb~6TLEE6QXbXnI6*3K0i4GVWpKaqz(Qb z7MwwX8t}`|AdH9IMaP17WuE@s%Ce;xWMHca$spWmI(c zm9+b~R8sM-TxVlO1m*XXP<(F{MI~Wz(2=nI_!6i(OE4^tP;eEg84eJFXtR^_!iwrP zqb#eu8kj_?)a?1^{-?`M@N6&Ep_1wgp~T9|w}S~lj(y`Rrh}+u(MiT@z6m6l2~9R5 zDTHu?tP_XaIL!?6pyk0jz-%n>kul#)FhxG_6Gl9TS!IxN_%WI(?w2YMM-Ffjh`qYa zq=%c73>*lXVcF;F5IP0nH;#zEF}VPow>vT@Ul8N0pwoKFV^09!KxYPv_l>GaTVISQ zF(}bp_2U|$BfY0TE+)iZf36A%KMarotsm^cD8{NA#WcP3KR9bAk&*I6UAq;XCgTYJG_rZZCYSN_J6|e*XZBce1(BjG`$oUyOiZ zMSEkcuGmbX;LYv&-T_YJg#8Xch?*+z;Ll?-Za#nNd(G+IW2qjB_lki}-O76+$ZH=K z4-CN=euo3?>A{Gu4O3&C4}ipA9~pQR*HaTHHm2|Qz@R!To53of*mIYiK_tba*$OY- zJC|-D`{EMMvgay~A?cG0K1~7WSq9kd2-* zQ-Sv9EkHNl7*h$ifOx?IMp|H^N5!`wJUe^H6s?C0AO+!}fB|Q;!d<6C{`eppcshPu ztrsO`ur_12L6s2sp>dKffS8?5lat;=m1h@>5-oa8e(}O2&=1!fuys%`iM%eym|{c& z%U1nkARrt@LDjQ(D2g8@EGxJsk9a1;?RkC-B`j*|oP*SU_{bB5yyDyq9`F!Bu6e{4 zZ>dELz@`S#BI9hqhin85D_MT<_~E^n$;+`17@#G2T_5_ILLsNyEpEf3 z7l;ntT!p5*UHZdGQLgp)%HdahI>CaZYLf&OtHMlms{0A`f+LQ3%~pkPPTU3r^?YK$ ze5kzqW5T;xfK*<|fPvC@DT^T&gN!B$oGWH5Y95YqX2QJdGz7`5<4+-A;)`d!TwN6d zjY)vJ4=}-pLEPReNN=BbaawhnzvW*z(5w1C7+(aEIDO>`r10^L+9#|{(t$!?_KkIs zAdBxDYT5`i!tp-XQwI{eI{k4;5S^GiirWa;+HZdj0Dv4*tP!GJ8HW(r*~SxDaE>u7 zLN#3PAGC>exFW21Ttak);zEpWVIBgr$%_xu3(a2gMx6BGAx@iyAZj7&lYuT!UQb7O z1QOU!!EhE8ow+*J5NJnn$Vvm5W^fS_yUm>ZpW6bPR%=|gMPB-2M3h>TwzL%oqk@CrjYD2l>=O{=T75l<$v%_)LF%Z>xG=Yf$ z9*Mj_)q$!zzzWdojM2l0iU$!$3%S?cFcI75P8?Hy9x@?&DBcgwa68R-Z_^iuspaDV zTF1xzPU=l5rfiWNy1y9$Yc!x7;wb^>e)Dy^jCWBkD{jH@kq*-rVc&SxReN`dV0Ft9 zj~;b$ngPQME}E*-eq7wb9Hw$kyEp|zQ-S(t5|0rt&L|pi4)4|nNXH8k)*1sn;KUnp zwEqAYGI&oX-Y8cl(Jn~IZ4SNQR+Ff6f&#O`)y-KP(Hs^K-)sVUE<=@{Mrk7|(1<};r z<{_v@fwv%xx9d6!1S|25j&^y&bhP=(W1Yx<3`XTN!9KG<0diOAlxYsB7v3o&RPhJv zBReNE5uz@~0VBYIf7H}>dEt_h78SA>*3|NI@q_`Xs;*EI!W+mg&d3HXS><@kXp@-W znrI!S20}jG{{T$8r$&^)PzC=0Tw&+OLtj~=bX1!$867@}`(jMS;`Q^2)(1w|^HR50 zF95!E!pBaLlXByhAre9qoX&77eY4^gz1akG~kf2-O{8lO38P)^Mcp>j6E#DZG=b%YYeTwReoD^is@$4y+CS`D_{J{{T6{ zu;%8%r=ssIK)gD{G)Ig{z+8A-OKO~%RtMV*<~|F7dhOX}5JM%{T%%jmz=&p^Ooq{4 zoHCZ}0sb+UifD*^=F4x^S~q?5lu~l}F$KSa8K_};rm;~c)N&T7vh##O6U^R9Q9Xwr zWI?xPCM&)?F(8j)S#iC5wf_K9an<2490BxUprrSR0S|5{Z+KX`cwFKFHkTPK<96c_ zCzWZGDfr~c6OHG5@NAfzcbpa}ePWirHI_G*LB=}L{21jS<2fL$w|G)Y_goUN^v)+7 zLDPWXwxixqb>5CLzf$iuOgI|R2gWo$=oxYu;BV&Si&aRjZlPPT34?=C|Jjr0vVZ^p literal 0 HcmV?d00001 diff --git a/site/assets/og-zh.jpg b/site/assets/og-zh.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f0a62209cbbc605c8bef6c784f48afefab73e213 GIT binary patch literal 94944 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Ƿx}{bGWD1QzKhvYj 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 literal 0 HcmV?d00001 diff --git a/site/assets/paper.jpg b/site/assets/paper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5bd858979da61fcded159861e307753e44a17e1d GIT binary patch literal 38608 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 literal 0 HcmV?d00001 diff --git a/site/assets/pass-key.webp b/site/assets/pass-key.webp new file mode 100644 index 0000000000000000000000000000000000000000..ae6b91050cf22aab58de4b149bfa8c96b1da6870 GIT binary patch literal 22450 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

>_qb73a`b*P}rGi7{09^sB3>O{Xg3fLZjL3B-QV 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 At^fc4 literal 0 HcmV?d00001 diff --git a/site/assets/seal-yin.webp b/site/assets/seal-yin.webp new file mode 100644 index 0000000000000000000000000000000000000000..e7b1ab4beb9ab680232379ab0775bb1c2d447eb1 GIT binary patch literal 51994 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 TT1=u(kpKVy0000000000HN$Oo literal 0 HcmV?d00001 diff --git a/site/assets/seal-zhun.webp b/site/assets/seal-zhun.webp new file mode 100644 index 0000000000000000000000000000000000000000..51e2d2cab32043e18fec0aa00147b984395818e8 GIT binary patch literal 50832 zcmV*MKx4mBNk&G9#sC0UMM6+kP&il$0000G0001I0RU$K06|PpNWP8$009gMjU-8u ze5eL9+vEB56t#q7w$CvW8=(_dIGDuCs-nSJu` z#p>|I9(s87Qs&j85;Tu4FT*1nke3PIVTY+*XWnphbYbPg7FHM-Ys+Z9UPfx6pum9knP39?dwy4$)S^>zzgm(p&@Oo$<+ zP0kt1%mlk!GIM6mnQ1Qmx~_9ITeU(Cj$}d=P&s<6wYwg* zt>Cr_cDKbF+V$#I5_*V`nF-oeOAb`TwhCISC=ehC^zbTLMb6BGBr^#lnfHC3=X1Qr zXOiIYJ!cZo`aAxNhzZcg|Nm<@ZFdZTru30uGP+ATW3qQ*L;Bdw-g|Yo*^>-+kJyq) zM}{St{9?$c1On-x0o##mOZUn{y7zqEukSeHdoZ1UopZ1FW%S`cBVq#l z@&E6*X|#WzBOA7)Q?{1`0~bN^rc<{jdF&?Jfh{RlOW9t4s|9nlu-2Rz%GCgqzK!H+ zX%_?x=BlZr=K(=-kwmp;&gU~lnsa2?2DV+Mcs?WkkBAB2|NZ}e1(YO^t6=>D_ECDU z{sF`1JxnSi7^#$wn_K~XqV4YR~>(ui{68%yOawXxW1-TY{CM8_9EDJuX$`=8Z zb+uLas{>}PD=Q{LQ6zt5MP;NiGRn$|NF-8OQBhG5iA1VO&n~TsL@FyPBc@paqQW%m zYG+O@rYJIEWkqG=lq(~rF;G?j#gRy45>OE^b6yO^kw~NniXs)YX8j0CYU(N?ldRIJ zNTebXiA1VO&n~Ts%ugprEWOl5JI4xUj4$5~-|s%wxL) zHGc9_P_gjt%^f>WXWow8!O;Di=sIv!_~GvMWHOmdboTvu^*hHB3nNphL^7G~?d|R9 zNG3Yod+xoCM6$d0SfaW8o+8jaZOyHnTQ414w7R=JnVU%UraF?NPaJ#q#iPl!23z(w zuHD|z-WfOR7QWmX4E0SU63J8S*dE>9(cbm^wa=x}dq4ci7a0HR1KsK0-~4)K;@Go$5W7NG6ksuI^-KqGNwUZM?Q&e@7zZJdr%~ z@6-2oC6e98`wN}(Eq{GvX)*GiFqUoYO!V$=7|AydMdLYkGtW($dN3=s)+$Io{oTvE z0u?($^`}2)mA7}@qjkSSS83O{O1Vd0?De7tch*pK-M*fly^XU6sQQDf)LLsbxVPyb zx_Z=dXxqOX_d{H(YfPZE>x6=xiFjJ&1)e@t-}u_qZhvt6$+eeHA4u_e8+P`)14_&6 zp{mA{Lc7M*`4dN*2Hp_uiN)^V?b&eLQ(Ae)*RAUHlxuQbeTqselX}JRlzX)CNEy3h z|N6?{d|>zu`+K8Z$rnqYG1YBnX?bo$j@vT72yQ__BFAl=9fq0h3MI*g^yZ$w%R6x` z0L)A%Bt$|UxH;SqbVYa9b9Fr4mH6qbiGCKR1riauTc^S`2NaT1$E^O+`);l^BO(!T zJRY^vqD-&c={Xu75vgAg`Sl?(p7q^sjpPLNa1*10h?KuO((z(P%(A=9_soaJz#+%q zTo8KB%V4gJGE&A)iwOM41=pJ6O%ePG}7=U5OKkL^S zCdOdfq=_#KyF6Mu+8edQ8LfV;7}gqOlIc6HIXvVtGm|HY9g^OYI4PKrnZ?2N2R+?Z z?-~pN@)SIH-i9Hfz)hQv76K+2hABcDF>q8( z$_9d2xJodypLH37=f?t+C!>5UQYvX%n!04&>%3b-G5hdr;{H%fIinSNPtPXP+RSE= zH?ENa{^jRW0VX`OP&q(xcYvC^--PI2V~&z0)me3^eg;U+ZVl zE}DvwDv$hhw(jDyPs7V&N}ny=`QFihTooMv$?li?B{P%z%7V!-y+b)(TPc(tDb+EP zJ#nECt@sDorhX9|SZ;{S0)PEWn~@v`3H71tDk^SF`CKwH8?iNez>Z`9W*u@X&&}5F zt4GPyAySSaW|BtrpYzBg<^5oRG_J8>@{UjbxM0TpvM@SA0f`ekqZ(s;(nqhk`lv=? zL>xTpXTRau-kuq;z*d)`6KtAsWwUP`%58*Db<Ku zFgm$*Rzee#Ow9ubuRvz@+Say}v=xs(=WnWORU&U#Flon-=s$biL~V2%wRrJ@%hM{)dP0>kS+u zi`CKtxLz;hsPtFif$sKXGMPwgW~sGQr*@qRYMBAVl)PGD|NejkxT3ejNX7o_si4;7 z@MA*R`a6F$bm}0MXz`pwK6&L4!hQB(*Y}JCl}U|KGl9+uRd<7b#V0YFwMrPP1c(AaCO}SrLjR>tKjINH`cIxyTvb&Ssj8g6)gvNu z%&s5al?-ro*^&(>`gM~Qy>LZU2h&+U<_dDO|4Fd9E z?!9wG$N~ue?n;z=e-m8Sryb(_R^POF#S4YgJ5C2-{`fSi77xIy)jm-$1%U$;=il;B zD0zXHI9K<3k~qKW=gAq0c|QOl1pv{C^H*h)2AR<`je!woCtYMFb!ykCAmj!+4+h$0 ztOCH&w^l-bKKFoxt80K@Z~y&%5LnPW39j5@KXub-I^`X}*G>d$K6Kf2=N)2!|9SP% z&_iFFfvqV`OqfGJF2A-&(>^+y>Wy7h699#kA57ctVGd)kecZV1wE;yFMf%^v764?w zvl8TnAGxCJSt&-sojobqS{5MRTWlB;%e-Mh@s0o)hrq9TR33WbMVVDS#3Pa*;=JhX zzWTK{Q^}ux%f`9V!s6^w5TosNqt=2|Fl}-U-0lcs=8yuQc;b;yTMk0u@S7%kUJyck z%QaVBYfd0H{KO}Ql9rt*0*G2)qrW8nyUw_0C)?XPvu4HoN zxNX{v|L>A{M}3=6cE6I5V&tX6E?qSVGqZ)>o)u5G9q%xV!4R6*03sy1qp*lNfj{_NE`0_WE5uyICWN{9Q|r7V03?RsXslNapTD zG9v>ck)+l-2F6Ddhnj$xg)v5Ppb>*@#Q+O>6$yLis#2izW-D%Ueu{rQ8$;D=6Cz(c zRO2Bt>CXT7`-k1V)eySVc2oN}_r#XVzxT*r+F!1wp*J7-Z%0Ww!_~0kUIVC1@Ycg` zy6ENoKqvL0@;`~4d!H>x4oF6`7H)DFS#e(Z+R<&rn>Vd(IHHME*XEQWX6C@eCmaww z3YH^_3`#~*KeoXjv*XxK-__yGzC$Qd*TTG%K*w#KZZ-G=wlezlKDHf1B+-w$QN_+# zA7mWS_oEq+XS|GqgpPw~rm@i;UIz}l)~1FG$UxoLsONRGd8<}-mqIHD|9clY790zi0n zt7n_WGh==pbcbS#2UsvOq2({`K|$`Jc$Xq(rCpP4+tA}Ft+ZHi?oWhP%Ej$Z9uESe zr99-guJVm>l^aJY_s9#qp3>56nEJ()-rqO;%|5O*>~$U zB(qw}Y}jjQF6CZtibF52X{N^3d%2+TNfAV&+hjmTZ^WOd|=ch*_kP`x{>CJ>Ho}CXN*4-Mz;W$zTOeWjAR~Hss8vmfXx3?>iOeT}Z{`!~h_SUx6_7~51u`AK> z-gEDDw71<3f%R{E(3{L{@46of7BzPylF4LyGMP*!QoUWtQ6`eT+fUMjU+-`E>+6YR z{zNjFOeQ)O#!Pf}Bu9TNnM@`VsdRGWj?Ru`GMVhy9*fmB+;w7pp)=U}qlsgldgsxZ zF zTvipSj8v6{0Sd~hBI8z8R7P?uCd1@NBvMsY0L770tttxxz?ibCNd6)K2$w}FDk>wn zm9u75_BAW0sESmTo?TiMsjGsjne}ExByVLg02D_?TUk*V8Fhs@f|8oLK+Oe_Pq8v` zS}Q6eqpXbNEe3#spMBh8M+Pb=nO;9@a$$q9O=Bp$;Uh#l=sK_KH=SInIyA8kWTvA> zGBfGKbofkK7JTX!oK6c))q>M2K2;0;AJeid7+<7~WgXeGV!}6?$@m{x@MUzkM3S1A z>|kU0b%(V>s1jA7koD;UfOXoz$`97*1OTu`2>{mVMWY2d2LS6+1{F*Iu*L_;vfyTi zQOaj0O!`55%`@GrfA1@w1(qYQ6Kp(t+CD!TkEPlIh+~%m7L_AZLaqP+sOTGe{3F0h zNXG50I@1ygw!T$!jH5#z^ND0{-Rv+d@sxgY1_&kzO=2J|Mc@WcA2%~Fv!hSm_*dT!o}S<4W$fVTGLC^d_rX0HnQTA3PoeU(!=>zf*EY4V zM7hY$wo7VHx@rVEwqe8Kib7>bdgN zhZHv_S?Isy`jlVzh#K3}!V*OMhw!U~lUu$1tA$nVLS-n$!=KLT{U-X)R6Q&C!Os>4YbXmV7M2}N8@RoMn?dZHf!YDA=&CJzm zROfSSZ+%x$7XYRUCQL#rM)&!<)>qk7{cc9VmU<|_)j|Jvvhsh9Arhm%=Y!XI4wqTm zuDc`c1@bFjS`79*PLjMbq9lDD2^|DX%v{^u-LSYslE-Z=Kyl#-A8zvRaeXCEgy&YT z{qZ*^(^t~xj3Y9?_~}m4#7uG3NG?@fSw{Y^PbS!LU`+X}rEf<8xH?GR+fHcj=}D&U(pi_7!vG{H zH&`(J?=F%Pv9_-NODgo*m1V^ONuLM*QuAP!5NatzbI|Yp3^2YsA0yH^?m{HA{g#y} zarot*e``t@0Kl@W(}9fdBrH4DyZl_JHT2OFuxRyHCjcN7y4>meJlkx5yEHNSgSP_L zG3B$Cw90%$=ekQBmzacB><0e8-@X+tzpwxRz>>1#_)yHYmKRRBdpPbh=-1Wyh zrujfBbd#5~DI%GA@DJJ{B08`H1P2Ss_H;P`=OuBDgJE~2Bry{aB8kDb8{YftV?Ufz zYyn7876TtoMq8%OdRw}L+@F@D0{QNm1p`1TWER}7Jz^%MwKAGWjjrWV)fEsjGa=~# z{~YJ{ov}HviJ6F)3AORFAFB4|wKvWf0w75l5NChd6P)(bVIuNeA&CiD_kRY3#cPcmHUYkHX#e9xGyIa#IH*`=4GixUfY7Bu%K$uM0(uQbw{#YGNkU z)l^*yn~ldog==odklX#-;lP|&`zu=zlj@iTx3v?Bo>X%G?;pQ@;Yb727s9)12zP$R?H!mF|Lxn459NBZ{f7&WFAL1#%VDni3R^E6~Z+k)lr7c9~ zcG*GWnU}2FcN{btHxCcoM$+v*bYaQ)bMtJg0xp!&we z!$Acq{)v_Y8+S{UmXX`-(^z2RhD6?o9uyQ%8fr zzQv)*Te3aRUo{b|&!?;6yQQcr`Tol{+^Ex_oWX&?z)MIB`d;E-B68-N`#97vG-q#zJttKLJwGDP{ zs`kxPNuxdZB;3S~8a%kZ96qnF8xXmH>n#j?OaX|}N3Z(&ED$cpf5T_{<55@Cb#eCJ zzWC7MigA!vh2Y}1ecLn@6x|Zr){#h4U(QJSsJRI8mhac7eIn^+Ph=F4UmIO5>}0re z=bRCf?78ddA)lYS_J!RGtpa4hRq@@DJ419tsQ_UVN4@PyAcmcL#+tps%;d}3cMksH z!Eas=0;K$#{dbr6`{SRL#@EU_R^6$oOW51L4!I%g79#icXEFlS{w0lv19Eq)o&{Di z@SZklCv&7>Nij^V`_Hjb0g8X(a()SJIEw1?4+g#2MA8~Jm=nkhg&TM$?kS|$2a@va zc8UIu@s%mpLCkosO?%ZKX07m0`OIW4wm)yS)6`c4-exScII;bP#KrZC2G#}>VXC;MX&W~aym8gKZ!NdDsyQ97Y zP`+3&;g!Jlw@-wdklEf@Q+92ybn1iGuR4Km1R^?vyMJX%CN*pVd7yftHQ_ri>vB0Z z0b`0o4NHnGtK^j-OeUQp@6SSo=ApgO?J1220!9@*zb)HXoBXg}rP7j%;oXxVX>ox8 zQU{C7rib5*STPGB(2C?@nAkjAHnkh2c>E~<0QDbr z)YgDJWEkpRerdBY9-T2SVkR;0(jns!VN}c|hhXw$V*qYEd|=DYRi`dXQ(19U z#e&^hdheY-2zhP#Qn)@@Rkuwq1(BZwCh&AX$yS$`@zF1grl9)!Fi?u&i(G-??(yi?2HzfTAe?LiDwkOxi>u z$=6Q-vAQqQ(XZ;}w&}%KSIq2YjWPEg+I*}KFzX`?Yn~Ypj(IF(jY4q4s?gf(NLo?M zEHrcF=tPA z5s`kYp(A1?cP%eLu(4q5lUbp=rfzLgT-|v{k$y88kJbIr&#c>?3?Y*?CJ>C~sWV|z z^P6wk=~EtsrQh5UpmaJi!e|RZe{frV$$1nm^mkv+1JL9^pacNQ5*njbFl9Lp81O(( zcf#iaYo;GK-5A~E3{{6V3_9o^zGocr&X4_5IY_gYPo>rJYY%_gGWGODS=(A4*r;oV z%nUnhUxsi}_C5*DZ*l%Hk7dz$V8*jSK0#Q$=Z7Eq{^z1xr~sHS7`zz-a1>QbDqwu1 zs^S5MDd@hXor^f3Io>S*g{9p~L0u$=wwA$74*AVD?RuzE%9WJW(@q8pr)HOe6?bj; zJ;V2Awr-nT_u!JlL&hBX;))kQP4na9Fh7KUhbrZFLOn|GsKxX;Swq^ek0N60!vigb9rDQSoDT7QT`IXH# zRYPL(AHC+NCT7Pp!u)=aY*>A!6lEi3Y`nma@*=P)$LgI|JgX9T+Tvn%wge`;ne~}+ zNQDJHB@d*mYqWC*6ueot$piMB#A zKJ(#*`1fDd4+7DBgX9Q+I)l>H(ZR{HPKYQnX~E2-^-{PwcLJ+FSC*A1+jO||wjn4F z;vWZ!0F{TH^1^cH8Of#k-Q*izoU?Lczn~n9id+z$Kdp;>X1FzfvpN{~1D=q&4N}s9? zTpiRQH~9XkT4W-H9D_C>t^A^`5TqO624vL&use%{~x{9`_wY4zw*j zH88uM4ZBTWuh?*{A%%Y9nl??ugy_HgMVNCWs+D$@WW^VD#VtG1^YRRk*H-=FEAM!c z847_oRll2h{iVkGqmuJt)Yr}han?C6KiIPv)B<<#<%}R^lIf%)m_dD|6qwlN$b~Di~3Fbta?XF9&w8?ThtU z%*RFTXv;?jZg9+I(f_?u5d-dT|Ln*whdB`EycnDYCZ$#v7OXeOgv87kY_H0}MQ5!U z_D;U=#rmwH4_5)e6UNc0Z$y0El;kD70y$&A)yZ1m=pK)lS?5o=V9# zS73bQcxTrSh*J=OF(x~xRZD$JkxoC~t=KVtx-b`4ZRnOxuyaCXQj3P{q zGTOw9{@yP*6UGh3Xw(=#59Fz2z<;k_^Y)-iL>RB)0VA%eDc@X=6ZN(8K?RQlDAEIh znTbYFSeiN<4ICk(PaH$P?E>UL)HipnFfeeu(sPhTA!l!@jmK(Nzo}g#NjP_()o2{q z^L-H6T5xApB6`&jNoZoFwHAzG*Y>5LmT;NT`$Y(+GJMPT2aRGB`gi5XL)Ue8;w)Uae{C5N|J(^SqY>(R`0&#iSv~-aFGA%%07up9ih8pu}@YM$$=<+ z&bXdL%yD4#_96f%s(2=_kw~R4hgxF?O@*iBE@`9czaGAlR)`J~F?;62|E&bz``&Lfii@+kvlN4Z8|$`rW&|@c zd5_I+^U%EqEOKz)u<`ocmbI;lJ!2#>yKT|v*4qjJZeTy7|Ld{fRGjc?ugyr;7~?bg ze>g+PE6-bTf{1kc45%5cjX0A8FyUe=JT6AP?Ti3ep@^B$J#@|YoA%p|cBub*_p5qA zz$`VBX)1L9lUDs97HM1P>`bxai&MW^-74kJ-Q}=U3(NWkeJwbz80c2y?vI=fux{TF zTY2rS;lLx+wzi>1qqn;htn4kZg>cdP;LBh+5Y=xT{M!K!GE}@3i$z-`VlnKXY{>10b`3@%XT1ya_ z2b9s6jK5ap1Xh0(1pv5iz$@4}hSjbmM|~TSatP542>mr-IGv&ImIA=~z;;|m%)ReTPNXxMCi$Q9Yet8e52 z5FH(<+dwb^3x1+W9)8&t`okJ)l}}8>%*Yr`Ov`;z8Vkx#+oxK%%RJx0u=j<1+l{6ZF$F~(@hAv^W* zc!UGE{D4yJOAZ%#^N}C_YBe;gV2Knc?2h*uADnd#$RkKqrEqNd!+%#Ql*VijEG#J6 z7NAUB7!~GnyFBTo|D|ZV*XQmSUpt7zDrZbYLbrVmndW!MOc2AdxZwA5py-LfK?Zbw zYc>_w#OOEQ-0U&lKMA1zo%Z=CM@)S@9!Fv(DSuluv~jQ;b(5g;gB7a*Eim?Anh4fryUVJqzX@)yTPm(4_~)BQi@xzf`Kd?xNBU3UjN= zE+i=i1pC7;Oay=%P7Jj4}==Zc?5|jg>Kj=x2 zPb^)D{`TT<-B5DZd_=B=PJFiC7$an2Cct`=Lx?Iku)GZ6gs-QAU6+O-T%Qc*{nGAk z$!!1j!6^Wt!luED_t6pzxdU+Px=Rb-XAYI3Q*p7Nc$;sVnag(EJM4=3+j&{=^|T~o zUkBeBP=uxtCN%rDxw*a6PO|4ZYv};1pqU03d+{$Ny8EXiC-Z)2)*GAkfXrvr{I_N- zZS#qVNgcnUD#7vfMJ^y1cSEeUp~oG#ciQ}2u7ile^N;=JQb0HqweM?h<9L9QmQs*6 zQ#{& z2%zj$kC>TNORLI;jz_pD0D$mn3fy#m;Cg`x2HuV?I0Ha96y;AOQ8>-9XqyY5YHs6G zf#bE!zbi4gWkPXtfNaIzJZB(s=eAqJFzKz!9zqJNB1!E8`yYPkOFy;hI*QBy3hI1f z_Om`Sldzxt-W4lj+m~+nh3w%sRLHJz8T}pO(=Fbz1BGK6iyVmJM^bTx`tT+2ea8u` zn)?X=fU3h9nVCILw4Prgcd#tWg2~@m_1nFFKk&i3ZJT~^{gg0(1&&4S&K_hD7~^qw zSRN3}Dvho@{uQV-$YDGA*?kqr1q&XbyKZV$5aHCWQz7!QxbT=Pd-OsOp%<_d3p=7h zCOT_3@sMoh-~LDQWVq91A|yt$$&V0aFMQ|;B6S!*UAq@@y1>QGqVwL4j^FY zuM9WkU_O5ML7Ci`xNm5+6P9-U@Gj$d+Ts*?*IfR(8&@3^n&A}GHpj)7x!3-QR>hf3 zYxfdrW@a?sSDGa~!eLS!mpMD*lZees^6>8tOU0&kgylpsnMey}CxOB{;IkhNSzuWf zSTOR?Qr7et+m#&>{tC%KSlZar%WvZE zlLk^3a&_Y~v!7M>+|{dyne;6PD0(13W(;-~J3-%0blJ?z+GvV*Z2e^J6tvb_G0WA` z3;e#?SS(t%xDdit(YQc+PDi)3ZbHU=esD1BUD{bklE(NeG0I<&eQ9K&0 ztzEPB&eI0cn2kTT|D30rv{94?QQc%B7m|t2kb+-1FtCypWsQO9$6CJdayz@y7gB}` zQAo7SkeO}SITIQUGO4bG2r+M$CT8?&Lu3}ie|b0=M?@whY$mhI_f@96=50(SKg1(`^A-T7nE-{QjXk|NX25q+ z<_3TE`NoJ&jP}*u8DDPmkkPzWp62o{NzB6eH;|J#t$%pvV`DsKW-5c#Y`Djw)+zb(?T7zbl;~+V0*d7j`{wey5}FW6+(}#B6a(W$sma}85EXw zF9mRwqwVKv+qCVz|B5SxrP)(K-Mzo8L|*s_v%zigvd3Nj>l@yK z%v>NQT^;&bGC&ddgKtbl^d0qAA2E30oKcA4M|&>0v+h^_b zP-LEY%OEl{5m=hOY&sz`vsQwc37JuEn+A(30Wy&inAiQ=*UkYz_%`;Du(bV>sbpXP zax2e)If%(7 z?>-;vyswy4_wz@TBb<%DIeNDx#PI8zHg!uv?`JSdG5OCwDVIMq>DoiSAO>k1#_A8V zZS^30_3>lELGq-Hh)7D94Xdr$WRr)8MMpz_Sq_SQ?_Uhz;Itt+3f7LL?m{^-!Kkd|Yd}6J*T_HM!RymBTn-USdX#3h2(>Q*j?QEFa z_Ag0e;&M4Q_0VgWGp*M`_m-Cy;ah%mSPwUh_vX53v2jqqx?v&EX=hvMM z$KTV?XxXb4ELde*wqwaNwdD8itODU%YFpM{{pcInV&sOW6cYI@3udf191O)44-1M` zALYCXOSAobFM)OE5noF#k#0kI zP)H$R8ie@=t&y1RmJe4H89r72TiIpx?7g}e0Z|HqUMhjGu~oZ zr=qa9)zy0n;mSfYx_cS4EZxwl0)2mI z?ma&}T9?ceZunxO)L;Re{q4Hh_5Tu%|L*+r-{{Frp^kT6JC^ho)EdkatR9^O08xX? zEK-gU+*auA_{$rI4nh-G6Drh4ANQyeQSx>#oVl<%R)5R`_P2lT43q1 zLDm2CO+`1f#~KYY^Jkv%6E_t|7!^_hU;&JU>)vUL9!VtrIa$|Xaqqh~tV3x8R(&24 za>?jma%9QhG%+(PM&{ta($vM-!}isN%!?8_aDLZCEi?6y8+v}<3q%YiRbTn|-dRm( z`i!|fIwO0o19;?rdYK!gS2)jskhswF128bDCW=twr_J8je7NQi{cV&?wgIDBE08)r@ zXO_QTRB$Z#>A}BAVwOjnzJBEnin)nIT`7br+hdWQ)NiWu1Vq}BVdcY00VL9kU${F6 zP^@zyBBPjd@_ayD%p+jUbz`jPXCoBC@EfZR?D+n3FjTaoF*?HHu^`U>x}pHpeW;0< zS$)zJF1}?4X^WBh^tAv0H;ZKF-=00cG;aV&q?d%llI`~zt$46jj&2MlnScqAm^nDW z%6~7l8a^Y@T(7GWfM<{J?TD!fB-ffJ8@Y5ZytsiI1*dF3E@LC>oL^j+(|KF!P`lk66O(Lq$qvO-7d zATYbDHSMF;+Cn3$e;4zv)N_Lz-4K)2yC1kUSsrJAu~Tk<2*@7>18;_i(ZK}>T0GM4_vEHGl^>xqB8b>M{j-cyl-+0Ai5NY&DtCIT$zQ8Wr> zCP7QXRz0aRXPx}n=~K!0k(Z{wbT}5nsPf3(6H8@5TKfwq*_u81^zsvm#8B^G!{(!8 z&%E(FJ)0SWJqu=kcQSmwip6i-RC2+_02%!q;~fC3P$ZLv@yX-rL;IQ|IeMZ1!&zmF{OHsgNiVCWX|%MWW>%*P;*i< zGs#rvFAF|rpklJXT5pgs*jSXwf^jbe7*YU*BeB}Xw4!{(OaLnHnCPw*a!CaK{Dt`- z2p&WUFkv1Vs`};QESPh6Eg$Vd=k=e-z$YNB~N6L7-dJ*=Z)lVIvGf2QpZkk0Pvt|o4v zk%)50@4NF}asn{IMqe@^Z-C5Nfa%mbE)kl>Zx8&BmlsU`=?7-v(Yf<51WS+!?O=;o z;5ux&hlK1|2w|AAH7gNyGV(bi`Bv;_hnUfC8Ij3?^L7S~d-rP&RH9pH$xJf23?}ZV ztQAhb{Pe5s$wUDmRbBG>p_#7^2{ao@A8L2g?Xop@QrJsSuqJN`hA9pe_MP_+LdlFcX>X!v0V|VmWEW-M1~DO(SlabZCg@S z2$SZ=di=!aj3|FOVM(nKiI$>F;k7<8gGQif4AmMtc&-4T=$YEU>YWch@6X=MC1z~Ljxn)V^=unPC>Ebc@Q)OQGX0Ikv>3PtkUDr5lEP%Df@#+1h zMHYnb7Rk>UgNq|}Vt4gX@cE<_i^8MSwzHDMD z=Qh5v=Y`_J<7fSR$FcT4!RS9cE1~i985itn9EkEl+}7Tmw24XJo#$`U3gZqoAuC*O z5Lpi==873@t#yS3AZjw%TDWZ0Huu$uPF^x_!uK`z3ud8m8phTeWSMrdzM#|9$)2F; z7BQ%aWT;B$EpRr~6GD|EK1LwQZi`@1KX1FQi)I-&@g1q>RI+ zE^wHcq}VbQL}8V0wdV+C!E9&iz=9FQ6?kP~b^8!GmB4x*{0 z(76a#M=TlxQ0o(uG=1{`Le|vX*_RenR#iRb#@bLGav`c->WvxW3g#0}Trddbg&cR^ zOc?j$lzCUVX#BR^Q)zc&A0a(8|c{}8OFd3n)a$)GoNZ3Ns zXOG*}0kO#ZH=hh4|4h0*x7 zR7P8xz)gK61l2>t%&bh-CvmiK?aXm6Q0QEUi^9Cznw|8J^dA;neBP$+9gD5mM+Uc@ zZ-v7T-&g11)Zg`6>#~E!UMtMb6PMlR2#nfImB@1%oah+P*=!)N`urMs1Dkjj8U1Y& zAq*G(@!zdTuwaOhuLj7Nt%Z7H2hV&lG=i9XTO691L1?=lltFQ`k2!>BtDfrsvR|1m z4Ak@U*+p&yF1Km|WKzF6_naF~_@=kMMf!)ztPs3T~&m`QW$$=V+jS*w*KX1n+O8kD=KUt2ek47q&&zGcaL za^;C16+(E?I~rMaK9_E-%R<(fcfU9wh(iCG?C1MIOzdu%ZiPHn+_XM>jiIUu7`@$f zJqRWh2}Lxx%CZ0erY+o4&Nc}P&i#FW%p?c4_eX3yaT`h_hHQ9dZ9HBVYjc@Y&z$QA z439`EefQHJ2lBU*&i!$(B(`I%f!sk!=|$7Y09V%mP>!@B453^5JYpgh_#rbJ_|EYx zGqZ{>y>TuGW>no*1ISag@%rpB^U)ogS_&~dX|q|1jNaA~C@8CnOb59C(A=i+&nZQm zJLFp3k&Z7oSoB&2Xy1*tY9yHxx=v$Y)kmb1v zAomWIKuP?#MrJ|esBA>}pFKMVVk~K+X$W611LUDJtp5JWP5rp~tcQIqR$eTb0K~Gk zJ~|gl;vXbCw&%MJ_h*{~6#hCu&J}MT>P;TmF*cKNkG(Nkv#>I@+R6gUqAfyxppi)0Pwq)y|AZ9tBnRFJS^f3=PzoZUw->TjH z#uvS1D(2>b{LMQDJ}Se+g5qtyZPo)+4{N2h(Qz@?94wf1$R%bbeRTdMcW?aY{vy(f zDZfp5SwEdj^eAR#65Wl_=%$PyCPZcYRO4HkhPIslot+)c-7T&J+6qHqX?p5gg+Ttu zl47VHbco4sx#ndTPi^QcfiuFmZq^GvTq@)tR8~Nh91)|c4vk*R{P}xahe#z%dKwPA*mHpj-71^15_lHgW7mF;5UV8jV+JQgYzTxzwE4Y!wd#t z^{z{^Cmk+LzP|~ebdQV7XksuwB~&&BOPL%*It4<+#O_Oc$U~R`W{`4YHj$(zR;iTa zycjhJ3oiJJkNMUYSR%6+_S1h(8AXIDkjzX$-y&=54Zj_bfoZRA$@(YPhMNqc7Y_qm zyl=NVp(qsZdBNoX?LZR0KY6$^xz(Muu{KSdQx{&4lBWWczBy!!QKyh=_3XQ*1bJw* zujAu3D^iL+cgo)L^63wzfh1*GvhVf#8oLy_Z#HxbLcM3v8L+57D+iukIU7o=8xwCf zq!f`nzGC|I!9&faYv9j(?|Xse2u26#^X9_8`Z*+q50!&(SooN@8P3`q*d`i!@?<8vrxc)cPms~c z3Yb(L23Q#c5>U{5pTZ&sLS2Hqli4uusz0&mmMX6{S2|fZP`-Hr0Ki$BgQ00HSjhkQ z!I?ax4y*q61F+~$!AcwBs?U{>RhiJl%rd=WQ6V_AAacMvRNv60(9~HsB)#M!7`teX zMi!Y(Yj+-KTDkmnZ4>Q52pI8@8H9fBp{hD?t9_59HDnaOQOk4n!M>f54==`C>p#$fI)tf6(8pzz-@sW9lvVk$iD0y(Y7o;^H z=l*sC@`O9rb1fA0biQr_AM@$!048h0pmnQoE`wgX#qmksH~aHHumG{uRe9ztA#+ZCD2C_qUB-%3rp-E zq9X>Lo9#%3)_{mVEJYp|rq4h7&Qi2%dPIWY6BAXle!kNdehr&N!Ou?!W|HEC@^BbN z{~yG}`Q6rNJlgbrk0hbBmdqrW_!KcJX5mZ)oMq)GERT0g9tkQw`zNcei&oI=llH%81V|Pt81u^6O0GWh+-vj_C zT`?_#plEA=M9fUY>}8EHo+N1}lgWNT(m_S1;txICDWzpu(y}`)1u=EGV@WBau?HTA zui2DwT`naTn-W|R9b+oA1fXnX(;9op1%G>_R-=)trpT{-#n+?OfFjmYlW@-znjpHB zwm2aIjkdpI;-$N*L36lAAv4MJ6)-(A|K$&Vj51t*f=~%!V#SPkiSfRQ$R#iP?@_|#M#fD^!>CgQ8_8W`O)7#3E=0|EhgU+#2Owr9TQ8dgAt?Jv$%LOe0(JK>#Vj&^J*<31q&qI1 z^^3Y!JBgLay39=BKv$>Sy6GoP%ZfSsla!^DM+3J5z*=tr5lJax>>`%?-aB^iM*tHk z4@)ol%zsu6KwHB6lt_?;)V-Vp_gm`r{UFR>tf(RV%Bv*R0J0eoYJ zBhfv2!`wX{vhcmWmpc{7{+A9JV>GL-#@e@BBBHQ<;#Vh6p8QYi92GBpt5+MN$M9>y zs{7bCCU8?}LDc1VEfpn~lowi|$z)dj-P7Oq$rUGn_~e*2#xy?sgGQ` zEt_l%`Q_y^XO$H|elhO7z!4ud7emT1^`RNhXd+3XZ)R7IWzmzI(n`^5k1eVQDG^08o7OMSWnvIv*WxM=^w~qG!lEaa%YP zn*DdfOuD1uS6O66VjToZb=5bdTuk-^Q85dr7g<*>1^7`i5Qw*g3NO2NZYT$Z)6>&S zMM^1zVipp%;B?9@SzB@W6(wK1_mRb+De=RxKkBgQ8V(fT>LAFEqVx^8@Jm-LMA21X zP5t8=(-0u$r<7x&5V9<5;(gus6#_uPCBLx+>W-PKbC{`X+x8w-#%Sl>^7%XJg`CI; zApt1kILiuIMfd+=sx`Z==c66x!6okwzB?zhEg8tCR4mSHnK@P-$cc{ldSE z2N-iMz|0PXBJ<1}E-{nnzwi8Ui__9^*tz%Y@eei*|>ik}Fa z>`Ityp?p}+UY2FQw0I~70-CD;X)yFZT4h<`_@INNjAYY&G7znHpp-78?Tl%Y3+qaQ zki5s8-TOM{Y79T3?D2JLH)RCl>Vi)3!TN`u9B@Kj`}ez1 zA(5ItQMw_1-xt3a*?b@;uXk=bTnX?2Wmi+pobYX1rWPazgO^JneCr88#A)&a(I*F- zkRhjj@W)5`vZ=D*`Xj$R_ws(Qu(W&0Q#QR%4SWj(1~ogA284c|4yLX^h^p@4AP~%8 z>S8aOHG;OQYl@1A)Nj9S=ZAq_0xSQcbl_I{0l=N>c`QwkTpXS-fI^!`Z!Lk)vOZ1B zDDQP?FU88W7QR|el?CTM_tEir=iOQj)AaXGCq${;_sVl%W?Q_aAd7Aslcus=I>^jo zBoR7@+$l3mXy%Vg9y0x=>Ff>FssQH&Sp9`(KE~|WL%)CmY(dPY<6nW$vObOcS+ZdA zeN9Is#CyIpa0=YMYB86tD^u+K*VMbpVg2O|U#^kKHk;1|Q8cEc@|lPeV8o3h07O-% zCT8X^LTIf8k2a~m&108HmR*}WivmD7fZ{!m9sdX4_7j&Do-_g#p26%JQzoo9p^=#h z8AZBJYF2s66CQO}DMB}8Q23Z{XV+AojPk1oRy{G3z7H%h>#=Ie?=XZ2Q&lKU>6>}* zsCBqZN3tU$K08ytY85~4q72-{e-3~v9e_1|1apu0sbz5E4zmEo2UgErvI8Y@Zpf)! zAX~FFyJR{UDKAQu;F81I$v!l5AqrPIm`QbA4j~n-iQQh#kiC_O@Ue#@`YLoyS`m|T zS}m)esi>UskRnE-3JE}QDZsV;0&VlL4Re*bm77-_pz`m_;6X1ocH(pUY6}iP-L}Z> zC$dbOtMycbZuRA=AkMleDqOev`wkR(FWE4X-PLm!23K_}MB7nT z%x)-0WUA^=gu&)B9ynVYW|EmnE`MO!1CAiZ)YB(bk#k{o-kXbdC{gIWe8UZO2WCPx ztTtB`qGXq4S%;Y-HWn1#&>{&iL-B<*4`XjGHKJ;NZ2?Z zXgpPRluZp8l^q-+?v|o@TrH;Q?157&2*O;aXU`+IjD)ZENlqu5fBM6Bt|>-j!>mjS za)TSU-VxREy#-K_(8O#fe_MlchyRI(O0~K}bgX4f;ejPvTUvf~B!J?PEj_Wvrz$B& zih-0DrAG{YzBbw-;TvOu!B18iz{p?wBDHAxc`$BHF~V6w5i{Dk6i+-Zn`{ig$|t7X zn3g%Q)_^NqzO%M*B-XUC2o)SE%)ro1J)f6%Y{=T4j5M1_Lg!QUg+FtBm8w%ag1Q9m zh{a;jx@A5L8Mj23o$moy0K!>S$`Fgdcoa`ub>%Ik0Oy^PNC{?UJ03LMsJi{&&}p2t zTlu%C1*psqZ0dzP9{r_@;p%-Oc{a&>ipQRK`7_!}5k)^p8C~wLiy*&5$%X`?sSAYw zgmY1{@i2?b#`?aO8~oW9Y5{Jw?^r7)$_cq3%=Yt)FVh+nTLJ~>%4Jgd?o!B~`0Yup z|9Fy}rCr~j<+Yn0G3)O=8lis%c?F0CoyyL}!GhCxPWkeFw__&EB*TRWVCmz}J*FKZ zrRdWOdW|EC$*(D77NGS{7{(3G2~@5u&1~c+-+#*wcQsU)9^;z{8^C*{(v8tryrvWh z|EwQ;hT8u3(;-SW9%gnP``1I2K}AQ61gY3;J#+)_wZmLwkZG zu=0h?0}YEClXm`EJ~UV@q{M>Kzj+9_bLSj{lu~`)?s6F{4JGVE=*m)ZC?3~K!WFBE zM~Nl|OC44(&!4~BQ;B(_ASGU$Gp61kA<}0-%AW^KU?j2Y5;H}Hv}DIb*~4G?K~&79 zC-<&RT^VslL#lHr9*8;56Dkvn=Y>z}T zy<$8}+88+67>SseKzVarA2~$sTW`6YSa9Ah&tbrwJLl+@ zd-E)#a_f=E^R=KHEkpr@VrI`sVrEjQ`uc7uT5B7R2pldYQvdePJ2d4%(-48z`pmUb18@v0E91|6?xnf@~Ir9 z>cH0#Alz}ocQpEg&6A*L%dktt`TcCxrJ!fUbPy9~HrvGc$=|i)kc*`M7LTo4TnM)* znmEaSSJbjDRsM+d0=TU|&{_|#f*I@XW&-}R8y|lE*p4NYH}956(P&3H&iMiWT$T=b zI5RaDg$WeDer_p3!X5BKK?iS`bRLvew*`!pBX>t@-*nY*DVIpd8;M!=6C$x|g5l(B zm{SPV#Id9`77ZSUp*%5;R|BCR?mv?JAb#o8M}K33U;_Bds)_;NL5<|b+oyqGC-};5 zz80yxFH_w0moHoQDj)0@QKd=2zG%;FR(TY+JiL^ z7Lz*1EG{D!mjJ-z$^~tnlcIl*CRs>dVU<@!X3l@#Tp{F_PxXZFKRbiab!kbc`<4}i zVCAq7$V}!X6%4Xt29Qe5fUp(nFv!cpS7tM{3ub3Q>7RULW+vNjICE3)vJ41zg#R|{ zsCL{vr2z2Rz~&*$?dPj#QG8oRS__ieI<6+PyM{m~F0~+h+Zhk8c0hS}rss;bKsFYf^{9uO2W8jhep9+* zG6-hIao=v$%%t0@FS~f_sKupr{|4qHhdnJtrenxgsetSixf8&iakbV;23Y<1A>JS+ zV>C-G*%^!j0IW|2xZx)rz+yI$zbp-$I-H<+(#3Vh3*pb+bk+;X6wuo>+1=DHD2KF% zG6=lz=#Sq8!edC?&{%l*hoSQhPI`y$1E%Of6nT@-$LMWd6z{zM}me)J0 zOK>izc-uo}X7b){HEesnAGoV80(p!Ha~QFvm62TPTKBxzA&D8Y55qs1bgcNv)G^N* zT@1qi7V<_Lv(eDHVPcg|Bs($=T=0WWJP^Flmc)pK+2a=)1EihSfrmtUMJ_tP(nrZs zjBE0da|JD#@}e|#ui^(}PeUFXrBaN{P%;%IW+s2v(tTCMPmF)(Xcbwb8!Ytky=y#W zqA>L(O(eC}0$4q<>Z{RRSGK~03-kRqe&0*}z7Wp2Z{BY0aDMLwCk74_kIz9)Bx9K) zD2H@%1{B{CcWzmJtW<_LuN?3R({Pu-+|1NvCM4@j2T9M`SkErzMSG^=4ROa@-H5A_tV#f1&JR zsc?Hd9*f0eEy@@(_V{cN%v^L`V-6qpZ`~3phbY95owY(Txx1%6cv~Ul279NEItw<= z->SUT;I@b)a#Tyh0h^^UE;Gq2C68^dyK$^Fr(Jg^+5)bGr2ohbJ&ITaMmQrV^sX*! z$|2nna3B?bX~N@=MzyFHg>Ui(15d53eJI$`4uX{%oE$hH4E9{lrLyzH!ZjxqBQdjI zcH;xQEGT=!Los;ErB~co8&>c6(d@OWjtA13#ScKPRds42nYtV&`*J4~7N@ox^srDU zQ(yTE6un@ORQKX(SM2hMnMw988}sco5C3f8BnVrRUQ9$oE@=`n5BV((DMc+*e*Pg_ z@TrKAKRxv7)KU-t^^nktnYCtlv~kTNLumGXS_luN?U!s%2Kw&uDO@7$!O=MrtCsFS zL8^Q$d}rG%Ua;06GeuK7+M#JGU?%k5EB(|El(u-pBAw__oQtL@G$(n|_{X!R=q14DyV^((a`o z2>oCs2rlm63ILdRKQhK^TQVP-44ez6YzlI0n5#o()?y4^oAg--)f;41TG0q=;hsUq zAvyGT#jMIJf7k0yphY@fAehl@pA7}S8HGu$=v4S(TimiuBQV%B?S_<8^*`&En5!Ru zKfpT-Zw$?(kOFOQcs-kRruLeZk1n<*?eLx8kbN0&7JTh3o0(a$3SDDj@K_k!7DW&D zN@6A=&P(2&DRbTwiiquGGLa6)Ljl83UzD|>%B{ox?v1u!rsV}N=cuL;p{G6ViJX98 zNRq*XZAmNa6oc0$-i9nr93#%fuzyphd|;W7dv#2yM5Y#!zmiL7{Y~&+_nlvOQZ~_; z9Xb3;rQ{j0e%E>0>d0SG@>H<40z`6=Zl8Gc6m0pzlpm+Pa52U}Ix!tS%|%CE{L<79 zJjdH#3Z<`l#GR@RKI2hWf7G1C#B|7Cu+}9S70H2@Q!e2n-K4U{WLqvYkXsE$UtiPE zrik-mb;A^3T6hi=Y^Vp-hc_Lma;w`8Uxb%_!w@L8fAjnWdwgU>L_#DY^xdzpNT^d{ zaSMFm^~yk!p-e5FQ5A_qBBke+L{7OF3d<(Lm_}op`oiKDvczZttiIvOEL*?7%6)3_ zjH*Z^5}C2AM-nsH7>@c-5re?Y2+?s6ou2kfeaIEq@ZMzjN=i70Inkd9F2(o78@s*S zpdYAu6LxY-CGv!1VBS$0VCe|}sP>UPV*(vy6%t0hSFuRyQ(MB8g6Qtj=@ zWPA5xUwk~>o*X;T(Y&Y-pa9n9gqI2?@|p_34gdZ6*F1V(ZHQDNnM@{9#|9KJldjwd zcPRDJfFuA{HY>URWcWztX6{4!W^wD%MX%h%KUBA7HrO9e7haZ7|ms-WK zmFZgq0MKA;@4b1i8YH)E>zoI0MKk=y&tYvsLn+(l;c4u5s%1bBRZ!*{>9EkKZ4 z-MMvt=k{phQGpn<<9k;YAy>*u#Kb3d#$(Y|#YAe@VUrLU0x;iy29usT)a=R``-U!f zF(TRmw=A4-Uq+=C02I%fF#VkxD*f~nRx*uXa%^l__}23)o>2PD-2$DU7Ag`F)oD2r z5!pf8g2>Eo9nmEEclHb0-CLeLZ`BKsxzYhlh#B2B?M@U#=GECh{NYmI@&~3CLb%@K z`2MEsp;biy*Y*ZpXID7B_aeg`@Xh|&C+jVM`6-E{w8bVl7>JhK@ZB@c-*I?nO^!t1 zJL_#ro_6g6KMVEth7OQkI)Rd%??VV+%2pRinXXB!s-_r2o4|u~-?ocyNpW`d{9fgl z#)2itBZj0nmt;DTNDF2b9;@KPmGH77PISuXl-fI44L6e@_tg@}Huk&}7N$c8W*^lA z$RBy_dI*=!dnA3ZZvL%Z-3QnDaCJ$;!yoskBXcddqFW&;W3%blytK>!~=H*tHR4)XTJcMO~g_t`6- z)DhTb?Zj=q?Y?`(R^w3H+^N}4fs`w?mYj>SYr}){ezlSqt**Z0j+&{Hclx$ST?Pf~ zt~wsfG+bg?C9k+hZ7ci-3unKc9{S_70%}{1{Ov^Kf@u2JWZXux3dY2JB*JsfY-xKVn33^|{%OWGxbS z6MW%IrN86#56%9>x1FI!VBJaKIxUW?blcze@ynhZmRf6t4ie=HHlGDcl+Pup!wJCb zYjcYL$_@@n%|AUqoc;WnGDP!tBp-(&))=q02Lfr0sC!B~PWi|>fk%aFu-~xcL)tX7*hP@|b5NJkfK}dn|Ev*5|DvbL` z7#zKs6;%@$>GK7-j)__Y@Z}xt+s~R*Txpu7S!X(|E~_?8Gce=Kjn^**bwEf>6sJ00 zSiW1575BV)cVWI`*>R%;_-X>CY0j)-gqgOwm`c-W1(l|0nt@4vTpwd=cGY|<+J6n3 zq;eSCV9^T<{~`kk4l}>GY~9X;43wDwnK08BD%<9S0Ot27#GvwVCdxrXQl4uRE<$J; zEGWJDxIndVap345n5}Ju%q*mCm{APZ4T!w@>JPtSKnPC9^O7ettZv-!^1c`Os8{pR zG^+A_%coCV-_Ybs?|eC3B`-RwI%pJ9?Xgm8^0q)>)OQt=z&9pvt0pk6VA4mfz3jCk zGXbIOktD;I`u&eD28{sZoI7AjO{-+w$`|i;ilKmvG)j*$f}ErDxZk0W;$WfYAXM(K z&B!6Z1=_(#DF-4~l4St^O!&r@o&BIzII{P290O7(R|3=;g;6ob<7m%ovDo&+*FSk8 zXpByoN~z!*hC%K{pyNM0ol*<)+LydE>@kC@3lu{pN>eync{nw@7(+nL``-6r$;g!g z)S-ex0(~vZvH&i+^iLu}zQ5@~*L=CK4w=|-_e?Em^N>x|zMmEWoWJ;`&-h|(fSK6{ zR?0cK4!L3my>*BnK<3bZa%^J2^xbQiW-p(r2STCph3{~3|CTO{kzQC#DA%&qWe?jX zBsci*BeEyYm(~hRBxbjz#bd&#_X-w~MEidfOuGBsWAiHxaCK^`QG~MXRJTG=EfuyL zfRK!2ZH&re`mU9SrKww+$^(97XxQRXnf`ml4_AYA`EkqvAX}HM|3sMs_22*U#eZ%H zg~jQwyU65u#Dqa*F^}X>Z^LUG#KHq^aO2j=IX_DEdR?LUh%VZ2iu9n5HvWPRrq}&4DBA zO%K1!pI;iLi67ci8-&VOTp|gtJwErYMBp={-v0jk4$b8u72VVRnMdKoBOiS<3WcTZ zpGf!mfp$&c6Gh)<63t9>yTPW~Sc~NRXzB~fFT11CEtL(DznZuC;Lurl@R?KoY3rZY zGOf;qdN~ImoE>#H09ardH+uU@K2=k7IW34st4t&oa!K*P{-)YJT67Av z%Y?+FQVnmrpKl|Tu|NPHW-pudnVB%C78wmTUV7RK$>+JJExh55*$}d%QRLsr#LOSr zdN>O3dD4-iBDCUeX%e0>9*;>x(kNz@Mic$N5k$lsQV}Bt`Y)MD2IyVyG$()@$K85q z0Z5~i{@J@hF!0u#xjK9FouzR3wbLGO1dW2(_5h=UI2v|DYIBz&CL|`^5-4ag5!QOz zKyVr*vO?JhlVRmIf8yop5R%A$caG&4rA&Dqhxud&4($Bk^kR_W{8g|7KXW7n@o0s2 zGJaO0!8{mjt}JLFc_K6&=K>xu(@Il?b%V&v(oQROva29!9R1eM=M~`IvCie=qMrm! z0QvqiFWS}^-)1Up%RB-k?B<$Ms5M4NUX~gtxGi;%>fYQHpfb+6;H2qZ5SF$>ZPp<~ zyzh!u&-R=DX?-wY>d*OJ1#$<@yL}E!ZPT_1uzGVgoyH-_?~52nJ>``#Q*gBu{X zGgn-0CJ=1jTTxyB06A=D*G_Eq_R)??_h6lGbFOQF01X^7qu)FUHjf-gNU5Wj-$8<` zy#2+8D;w(l)7Kb>S>=(9?;JY2-jAzNo(!9hUG#E*>^v|v12+|%6yS(3DsWoVi*?f! zfHHkKfE5Z`dC9^@0#B;QGCVqnF~S0BH2^Zo5L5BZH{V@I;n<=V-K39Ifn>m*B+m7U%QNw-V*zrmf(p z8FQg^@m7zpnYnZ-nc}}4tNaLNTnhFm10>EX@;6@$i;hdmgHRqrrVC>9Pl783pnSkF zF(Eprl&h^2xGKV+@`V=QDr)v)`~KH6Lew?%=NA^{`+-is>QQmq#+KXVhA4k+2(<{|ClCq}_oB&j9Nmftg7K#waAO zv6h|O;MVx`S=Z=4>HTnA?x~HWvk5Ei@^HKIXS9ldu>xHR6%7a zn}otVR`0yxrb_62zZC?VN&7s9(Dt5w@a5MclO);#wbX4#Z^A_pIpTIqzd;14ug}`! z5tHjZ<%(M?g9*tA>LABM8jXagglD2aW@cc`$2R;!M{Vu^)?^(f;cvYJ!17ig1e4dg zpa|f>$TN?=n@zXTqNVcCQ-A1U?ai5tCcNz<3-6<+9(~37&n07|3ykhQxP3fwp{mpE zf9Ccr-I;xdH8XQnAG%@H3HGy|8veP}&Vf|-^M?Z+_-UI_K+&Y8YJK$KH}7#_>}9PU zF%t!Ed=o&P8cq!eG*N)?rGJc6P+7`l^8G6wb6OCVy+B31?VR57Q8-UOmFj(J{gsDG z>vF^XC_B1m%@}eo%Jwo1e{lJZ`s;cS0+^_s^0Zmp0@j8v*IzVfmO5RQ2S__@h# zTX(KHhw_*!F=e-p%q(&k6>b=fJYqpz|MT4n-NQHUHVzXhBe_I6_wH804NeRk#BJyw z0^8JEFzMw>v8WGxU?~Xuo7Ww`m$tx;wf*7neTFOJxA~}zWM*&Z)eC>}-^&&(f^0S$ zXbOwTF)L&I-sYQ@A6JA#)ubjlzv|KbB?dg=5i^T{JWL|~;xr_W#D;vu%-qMspRt9e z0IP3&?2Wat^G~H=JofyDWE&R3pxOT5UB;HlDVOv}0d63emG=I80VroVGYTJH2nqCkIYpY4(&Jx1T%;d-u*PJ#{wwDFx zl1wdt(id>*>UK;*Y7*uUB@4?Q08JFCPn!jE-}jIiO~V=6sty>vx306m^2Si$GNCtp zxX`y-6sVee{#+#@rJtV0XwIo12z9C*5K_>GpG);-1dosYLl!x!>T;2pkV&QHLCr8? zjVu%vcl`OsSDmDI`>U>c-aUo2;-Rk`7b+(foc{+OIcF_Ay&u%U=y&{Z49E-d{@=Xr z=4m>6{LyGB0Ke*iNSRHoj288LE@Wl^%8RzyXVhgK$|rRN+a{r0MG}gbWFVOQ_*qRs zPPfdyeXO3n>_IQ<2eZ7s@h7vNyQA!aNn4Bz=D@NFS1Be$bb@DRzI*6Ef|*hG{nt3; z8o(njj;qfO>zzMx^_}H+297q?UZ2J2i)V^DFs7v_z@_bjL@fo^kkmvv^-8}a zmD=2;G$J&~ecLE3PVYSpK1GJ#oSuuK6$2=FWjH7BogPIZFh+_@NAAIe!Z9TPGVjHTJ7pmA!gP{9q&C zCZv(dZ~Xi_?Au6YHcZ!Fv^AN`#sGk_`=(}N!T2U0(Qht>f_h^+Cad;8Xu}Cj{l42KZjT}~DMgS^$EQLFtQ8_pGub2V`Or664}-=c zlsjUzyHyjPqU+}#zHIm< zz9JU=NBV@7`ptY9a>*d)RZJ=7Cil%)w6RAKyRW4Etjnyrrnk%-_n^q(mn!g4zTJ0Z z?~3ym*F|H|RuSx|bccPPwFk$ySNh(x7J zcd$9Ra^efV0j}_{GxRF}uslKXXhZGpfSH*_3kp^cDpWy%lj{8eV)XVsD$AbJ_o6%A zX<``EW|5?NC=OxhkGqy3<3^PBgdgT0C3fX;P&dT-* z!A!UYLR6Qc7gtPY03n;r8cEC`b&+5u9Wot>bK5;;Cile&*_ZbC$ZSLhd3qQOvGzZeR>bJH zUL8GQ7-ioXIfAiM@3RF-Z-kJTNg5Na!_4LkWP}iXlpd7cFanw6AR;jn1g93EgG4H5 z%1~NlFze5OLr5g}*T1v{G1*>oQK-&G?v@|;;Ra(nlD|I^xkD;7A7FNSsMs;v=JB#( z0GM{;bP!zXclXYRTa+M15>oZ*qDo1pZF)bM(!?zLJ&8=hUY0X}D^gN+?;GKbB+|VN z>yK9*3J%?S5deU2D3N)3aD>-_n3*yzEDt>({cJW6j@w>`(~1|84!c>!%&rp5%p~lM z>w6T90MtDon9)1>LN#(nrsj`d+NLl_0lDvf@M4<~fAQ8_K402zs$tykT;jG|p2zk- zJsi-q$oy9fG6^DPBKuqyYFyiY`0L9-ps@6OkBfL0grEGeyam>dES=Myn}Sqa6EIEF ztbhtLZQ!_N9lpaaCs7hHQ+fF5@5-HA|2vOAw1bU&d;au*X_{uBrlivRZa9qY8};3a znTT=(i@-?Y(JH~r^1u&%`tWq*2D55=jeVkH{K)&`OW8qtGHf`)Xl2A}TR3f5za&tO zd&fJ%@yPW?WuO88rfxOF#LP@eU68ZFe|l-iJ#qQD`)dPBGiTn~=VtDkTA2OJH=_ZB zYT)g+`|S#-d8;)TYHq*R@4vUbIn+1U5dl!V=eZ^KJ6aNBdHBa3eru8Y4d0nt_Jy0` zOQ&7`Q79M;?rPgS=H|}sNEoyA<2M^*LPTVdAx0z~HRY<`OqwA5rb6w4COS`UI z^mL{t?J=|0TAvz}+?#-QwS!GQ&5KQ4*DnTOi z*JuBhdiw;qV1B^r{jgd%1 zNZj8qS_-Fb#i7*om%OBj*&EFKu~W*ygKzzhYWRV69g#^S_Qx)USb)sT$|xe$RUeHv zJA!j5(zYOx=#6(B+CBrh(Nu<)pCG7ZfZn7iv^Y>KuAh9r|jX89NZD+E`h zrGsR9%|!q+61o-VADJ0BiyT}E0HN7ON&D`S!D%a#Y`Tu9Yk;6 zOn`Au2bdjt`@VXQV5hswPVQ?M>mH~)!$}IEH*Yvn=F$Gou6!%Uru02eKu85F4m8%3 z0+eobiJ3`co{2rUIwJtw>ZjjYm9vV}U*=q}Al4oPE;`@y-s>4bH1x>WlDd>6(uu0; z>sllQMmm%qk%&n23lxI7El1*1GQ&hfj{oqYgwKTTyH~v8+cG&50KkIUz#$@H-}nM$ zOLXb5njIRWD>Oa3W7Ud|C2oC)v8r z-Z4t&^o8I($o?FFvRmBF!vRqI(R*J*KFIn+Ga3RxCR-Zdn(RxWK?vx9s! z_@V43SLaX;{dd9C_`%H$7gzfzFqNIhuWv{uUkV7rsK955Qie6t7r%BOh%%zH>_){S zFd`A>xAGGMbC*=gS4d#>4UfK|b_khd|BuQS?s1WsSp+>tk9O`Yg9p0Wlevl4-|tAY zrye{1u~d6<^oc|wnKyCl4k+2%nMih|I+E>O_W=M{Q2wW`L^7G^+*1Zc%MT>m+ml@# z$D6a%iq3Ph|jY-G=3Xau^TmXKWP8G81&>L^|#Ow{Hf4I{}KAnnhN90T+ z5;IuZl5I`MdAk#7$+;xE7SE`vDjQ=>j*NIgSydzwDIHfD`4rEy#*|h?B9Y2SBvM(N z12CqvDiVoAs!GRL5Gt#RL?V@u(_A*z0zeYE&8JAxb8JVa;+>!Csbsl?=FgvZQ!<63 zf=RWmeccg!S`|)hbcHytrETjbTExssOUkDc)8X^if=}JDM9%Xo;^?;erq=ro&*jqh z;#UR*5wXf|YiwY4OvLuSa#XkHxe77>wcYD102a3vr@M9LEi7={GO8o3H`Izkx% zxbbExQ0#2_;S zax3q7+=gpzsq^yC)ep;xp76-|0a&=<1kY4PW|g0DQ$HgE4u*Bx!Xk(dB3sG##{DnD z_rJ9qfCwW#gPurs>wRlCWd!GU(E;53!N+B<$SqB0Sq7K3f3$Jpr{%wT4gkO!4>`X} z=N182OOeTr2hIME!^x_{*F5@~L!~$&zIq@++W3O=yTOTp1B!Iw_g~WYerd<%UpNnz zZJiAkxPr_-4ng>;gw7{cZ+>|pgssY?COaPLe^_UOaR;0EV7S+2SvH-F+3;6Vh)l#x zW?22nN8eBzn3Z|Yq2hnT*H+(pdr8QGPlreyzx(odLJ~6ztp3suW`$oG166r~{SQZb zr!YwnhUGU}N%@+XnLVhu`#G=L@YW+2%*g3!3-miW8o@YM6)}j=_io`*^XA^vFUnwX-=JjX zR&;mo>+^2v3P;=PTU~YHE1^1r(oRcaJ8bnnEGR#DAi_0-LSkl?=LGoWJnId;_}%uL z7b^N4WiK3OW|4Vge@99Ysk*}hil;2Tu?C8oO@VkjAHH`g@D<}9 zj3jL<8l3E$0U@Y0wqFAUxAunZWbFNGD-oWNJ=>DEgZg#D|EPnf$)nV8%e~auL(MF-naAGNXxEnakh$eufo- z$v3`r!2PhfxTLOK3#GGNPyG1NCoh_S7aeG*8ldD=pBNL#b^mhHAk_be1(?IAPt^YF zFOLwP`W=gDFnQJj+!7r9+o`OOV9Xg0z4pU%{#$YXiLL{Ge(o2GrVRw-A;p(Vt(|ZOHJ0a6+rDn##yr8Mip4$EYAFYT6G#9P&pC6!w{N)q zn^#Q#;+X(|gcmc&ty}|8Gl-lkGh#q*tcrxd68#xQaeM*%_8$*Nq92@qkg^^>U@XLvg}x@H}dhbmrWLkerT7Fn3>VD-?foXu273ZI$aD9qhbmG z31!B+B9f2}B9d4F@hodUm5S~8#eFO4O99a@?FvRBGm|RYZ;o1QiopDnmK#XUSmwwM^t>Wr584qg1%RsPD%7@yZ#cObX8p}x+~x` z_waoeKAP-%mNg=Pm7o4@M}1>4!6{3n) zamf{99Rf04Ffp8OjIWJRh+$l9B9Y3#?^*gQh@X{zAt#_mvfo`mI~0 zPLF?ZFxJN%5L~=psDz^BC$!@jDi$AiA;d9_0P$fRpj)%qoG3Kdv}Ok>BoWN`ZNRL2AvBZH4^8C~Xbp!xXsGW}j(K_R z2mhn{iI=BaAjf@~BBw7iAM_ubfwbMdpYz{L1&WCKW2OA3D|E(IN4TUTV#%JJM7=lypz-+^L z8v~n&yvBMif%g_ue(#1(rG-??XzD{(#q)BVV@WAvkHn*~(MBgG@Be7sjiHj7cr=zb z8n0eZSyj29Iv$PXT8?c=>8y1eTUv5_v~JzHb&sxJx6ZNU_z!*P1JB*O&61YmSeCu{ zxtq65Ope>ov~uu}uin`hjm3U-`}JSB^>3x!F#~3F#G|oj-H*!dTUT3mZ|Sl}YU>_Z z_h>vCuio_PZIdIT@%zuS=B=^hnMapb$D^?&6|bF~oSeLFvK@^-`p6@WV_WhJqw)W` ze(L<{cr-Td#Mh&M+&Ayo8F((CAFSk3|5`1V=&Ymz{eqZDrW)QJZo~)OhB0RFgUrdm zj2r|_o$mKwu(!S?Yewm(6Uju{H~AZGSl7ng>Byf&b#06ZhWhFsZah#ryet3nsIF6e zhI*w;#x#b8MvN&}$~1oRUpEyEsJ#h*<2OCt2#oPRS^rPXAA2Xe zF8P5yBzJ5$qO!*C=S>>ve$p}-t|*Si=FGKkOcs;Y)G3kLS0+oh27Cm^w#uc4mp_L zk@_sQ)_j)OnJKIDus@I`)l9()qi~XiU5T` zdcTXH?e$<#XWzG{MCL`i=Fi(1xpFof4s&bg!=ZI08-VFSF(BHf0bE`p52L|I*$&#l z`ZMeOjO>_M^yk5C)2%CZxHbi6osNzEiSLF=Kl6O#stII`$%gj~4bgVDf9H~M02`}= zo*HjE8E-vIIXY}3q78?`+&U#QG}~z3GhyCKx;!7an8Cg6QKI3$e|H2z$Fo}iEaO%W zfAhyEi1U)0h(70VWsI%RRDkncCPL&FFH#sB+uM0XW|BRs zgHE1x0%a@^n~XxPN+}2+HYHYaHI)}W{izQ0z^2+*TZlyHV`Mau?AqL=(A_`v`zZQf zi*D@~#1d^uLpv8=-S~cm&Q@wk%tUenho>$2-+AKu*~Q%r9Uw7F-xWg*;qZ@=l9(w| zigbr`uXUiwihIiLEc^bR>p?IHC8M@*4*lTLq;ztaNPh>$DUv;oIcb&RDf&F$51CV)pAb6n0?iOfLw< zJ0_3#Xy-!X-dHkzY;(8vjqzwa2K#<@*kx8mF`CAL_@E<$tdTsjVo%f3Vu*gC!?RGe zt2(8KnTl_|`J07xu=EG1P^ooqJXBRI`d{DQaV#0X7_K~|iHcjc%pCVEg~gf4*H_*W zuYE^#P=spC=2F$6ke&NWtdfHtdV-mSLjCsAiiNEnF-yUOh)9lVzZBr1@5wtvpplrd z-hJttVqWk3V(E(GikKM@DIXD%(o9Tf57$ARu}xD5tT7FFWM&|;v->UtIBT{ZTGx(? zUI(J=W8(p;H8EymFfZjNrd@o<8!)q%Po<$*-jeS>_kmBDDFQ!fvo_r z=C)}kHyg{E+R%n9GGqPsPyYMbKmueaH@y&U>+_u8j~ADIx#IEv6%U{Pa$tL{WdK*F zC4tqmmt~zxP&1O!Y|1}y?Vx!QgvQ)hx7`sW2GWW>N~9GtGckL{7*Fey@q+UnIAC5N z-~Y!$#%HFmG<{oP<)JAM`U&TH#;80(E6?vqvUa2i5{se6N10wx3RCubIiYC^fM~F8 zOnG(FsZiD)Q0PtHUKsdz>6d>V+a;OFYny+ME$H879#g26roL7PS9bL_X4!NyfH4~z z(`XQ!1M1`e#S=5f-O_kOldPNCjg{h7b%4y|&h0z&QEh&dl zwMC6cfvN@hY+fTb;y;Y;s%Nba86rY=Ry(oQBnsGC=MM|!BI zsb+2=EKDgxjkB7>z}_u44%}EVSddc0 zjH?{LZ6|{OsS}GJWLaN7Ed7qzPyiLjhJDE_oM+a5K$7!@l+s||A}HP#AYoWp%*2BE zDYtv^jH*agc_Gvr+pK|jU?UReI$mNnK&T{A5{9B3{;;duUk-5HfFxuB;oV{_e8;nO zYZ;umIY1`w@rqgH;qlX|8e0~H0W7FUXhLDo5lD>no*&I7o7|^YOoWL$yaBho@u6R? z43G(HqVVNT=};ch3hlwQGm@HECKOL@TMhy!`gs%`LG!Y1MTEsg?^fUN!sQ^q1p(WL ze)FTV$DD{7qi!B|c{&dU@@F^SR<#^1F93kh75hBfeYFH2l8_D)k_e0<$|p0kvl~LC zZ61-*+orH7-S1*LkxX>#uWv{x$25g&PI_AAA%9?5!I&HC9$x)$taejIsKZiIL0L_! z+Z1fM^RvvY(j2dtkBW=tPu8lNi{$ z<;HI6VjPCtH-@?(&G`WI#l|bPb5=% z$JNV{fg&d1+-!v=H=pE_Q3(C$=!+Lm*kK&mbN9Tqk5a!stO;K?1(qI$f*-bvOvj23 zRS=`)@BCG_;=E`!Tv7ArP1Ck`$Rm43O0?ZTT9e>WhCnx|?&lA?BejPV7t*uSY$vHkSZjv#baEoNyvW>&Sr)gZXQl&!Aq5D_5~Gr4^~ zgvpWluNXuOo|$>UoV|gKi0Gi}b-8BeuaI#B4b$~kA5o4>-+1ogeh-NWZL?!CeEFEP z-L~mhc9`so-)YxQwkZUQ-nsRRIeXmPhC^ZXvlC_~1Nl(Zp2}pVQIMyZ88Ih#dK>`U zEd-6i%&f!A46NQbZ>w<-afF0S0GfuebM|;>W=JDsC`p*BmJ{kqF__h(Z6szSMs$Qg zeemD^b)Ty`rjKh55IbgFgvd<(kvm!haJAslELaVp03m9>LDw&hg`S8k?D<@tAIb>F>M9YTsdrqz`78d5IModto6!^-w5M zDde1OtqN81W2b^tG}Rc4#4Lh9Fq3e0RbLZ3E{R8WbxLJNnNkUs*1*)QLxJ&K7Z584 zkk>k8+>QVNLiAmsQAY<28e>cW_|-_a)!Qc(Ju3wH1xM{LCe=*(kzVghY&K3|^f827RZz-2Hxii^t5aE(O)SA!77=erGTW zA|$nKo982uuj77C5|1o0o7P5KB{8eEXmpQDXf_UD%IdWZTO2|8PQ#P}vuuivRbLrHT+0 zj#KqDm%UN-NX1XQcj_|%GNWH-EhvZH^7*@JiqKU=%51oydvIfE0Z?)2>WRZ=m4`~& zJY<;xW{9rdJo%o8m=GzC(*HPh>O)!)p+eyxk4!2#6JTMFK$)5kF#C{pyuVGMZ{;%q z=8#NXJ^mg?5Hq=hE)z4F=fkyGSCKNCGjMv#xMnk4abQH70EsYq@*0?53B20g%Wpgw zME4Xu9oR_3q)eBv8$+T~mfh3&X=-27B!s68t7wx9T*i^P@4dP)|IK+ji=mBlx9CSo_0W9h#94z@td4UN$g}k^lq59uj zf8UxlzwA2PKyIyX9D(SlLtk4ptZV3n&vsgtW##2P^XGR* zE)8sQy6k*c$@i2}(Y}A$=_}7K-SNF4<@f)!U-%v(Dlgdg$*&(BcGgMq@Xt@&)VAC} zc)oZ^!+y%9k=l%&{8i0uq;Z1}x0S)-qYZ89Cq}dxd4BVuhBhWX;eb358)Jq~oG`{1 z|Dzqn)?Xgiy52BGH!52zjoR_%@s+7zbMlja`?r7l*VN(Gc~&@N#Xt7V$a>^O`Qq4# zhBkw}_4U1jfzhLTu5O)tmpiPDF}l(7++j1yVAxq#3X2b-8Tv~+zM+4}1P6Pct3*Zf z{`_HJ@@DPh{-7}?7<^^HjQeFaFu_pw=Kt>OF~*Gk>g4!eofsNw7-Jg8e&DWxT)C8f1C{=mekHSwsF(pq~Xw7%@RiOI>y z$=6kY0f;=bEckr4;8PcH_5xBUIIW=&j8eeF3*abVObLlRwLbkEF_8cu&K3Z~Sp!(3 zPG^lC#MuJ?hzZZJasj}~-v_WxCjeOa0YFSJj2FoRh%xzp|Nox>0aj2rAfz_{0Pwj0 zodGIn0cZg}JsgZgA|auX`DPFx1H`l;z{ zFXjh=40qwrynkr@l>W#2KlBlA{R2h<->eL?jH&6|M`>I%u^nNltbKR-rmt;)c48Gfza z1+H+^?7a7(cmL_@&~(jz?7BUAUo&a5jOf?6e*6R@L=Ag|-E~t@zF0=9HviG_j{4z$ z+N-8Gvd!dptrEz#^}pWG_d4T|3QrbG!4yA=_X8d;8}XYvW2G^tz}~!2->vm}@}l$T zO1J|P0)nD{m`$Y&T^rPJi8$zn#{Muzpw}-!t zFwz*0tUJ;~!|mCgR`7sqR;GMuTxyiWU0OMV7zCo=`VL5iD5n6w(1CZDY6;x+TWzNO zhc;7e;a|n!t2v6Ajx2bHir;L~&@Zudv})_bP(9Z~8d%Qd_v1f_VQ%gW zp1~hL^T1D7__`Q$WOtsFWq9ltwQd21c+I(En)KXc2U3?1{Pt!?rcy4b3>CJ)vqPz) zwj*OVUj-NOX-I3y@RxmVRF6_+aOQiD?+J+AH6EEn#00gWfc<@GT2pd@HGerLzs{ta zzyDrt58kSYPJ+tQE)1}^OPA*`D54a~Cvg=3(fR~fjaM8Jf@}%F^L0Di43FaP3}f&# zTP|LF$QYPa@sq*kvH@{o-~^&mF;HoE`vDxFe1;Y2H0|ITAMs5DeFIh)*B62n2FWBF z*$6ow-H1nvqi?ML8SI^2K{B?D$k7X$!bsIUYWKzyQ@HxA6p`ZQM@ z3}`C++vuw*NALPNq3EwMNRc^b{VlNllS6r>$aizdalxYb%Oax&m6THCcGdE-nU*6; zX)3?rGp2EnmUsiE0FRHiz#1b&FEboUM2-hbMuu|k}-hx}2=}&tEV*qF4UkkSXx{y*Am&DMk9;06T@$E1{R(k<8{Ad9X+!a~{|JJ{7yc zj?`HueS~+!0n^EdGU9D-cqceJR#d9SZvJbg(;oF&VNW-~D0>a8VJoSva}(#~fD_3+{W+y6{cTtA=ex6k%l=kK4se);>z0092stbhOj01r1Nwg$)< zx7TKk>w!;q6LeBF@J{lO!EKf8xz3z3dsZEe>@N}rlyC&Y_j?5{y?5X|kUoMF3??J_ zaHKQfiUqpwxmCE!2u5pUO`LuzYf#->K_Z_Uz<(*F-DRsy*L7u)5!QX2ftgu+kangQ zyE}zIe%=bEhL}nGOj_oZSP`)GEHGc8(wV=$^Ui-mdKxf=aB>b?)o?T@Btq6nHLfe+d%d1`p%3s4_!~!iYRVV~71|D@Rg< zK7^SmM7t6QzUEWO6>> zK7Ft>f^LxAb7&)ULQ}yQMLaJVZP==ch}d;A&!`Q7<-!PEL7G8b*?7#c_&*sTs-rJq z&P`ftbVzjH(o=;*6S? z|D`a#0tjOis8hPp=MzK*TAd8juGD%PzS=jMlFoJG&cgccGOaIlk}>@F?PBBJ54^2K zUNhq?20F_L(4POvt}q)*MpcUDqZw5fb<4Jq@4$%pG{fJg;#P~A&1P66*FZ0BVMn0= zKze%`rOGG{My+kU5&pEF6y{GWrli=pZ1;Qf-PRGgThwR^$lU#1FHM4v)o<`F@Wd5_ zak}LJ`Z^`CZrt|k?Y!D5j-rSV8g?^njDBm^l(j2n{u*`ki(h~#p!xYz3ED{d3bWOb z4yOC?IPPJ0+aE@P?f?Y0gBX8c$@jhHt8dT3(ipIjmM*RlkhrBVA!=@Y7pT(sF*k(n z7Jz}@RJ14nNXDQRnvy~+Ep}3e;Bg2mGycRLP=Bx$B7yI=LdG389vSxB*^!XghBCp25GmI0t`4{tT3W9s=cak4WzKF`@Q% zzvYxQyR^Psn@rr1ZDj4tWj7I!_H)Q>4&KClwv!UOV$XV*wx>-7^{I9{(=$ zOe*HRP{T8~vy4^kTTSW&U!>>s{GT^z(QRw)t4}mi^l{kEjA{UG8%M~z;#YjnhgtLO z%0qwwIz(q->ZR?8d?q6G`C`fu>j`P0j;K*-=PpDWP@Da5guh;y#Kn^*d8FXh6T#R3 z1XoM+9?)qR^l)$x`Kow?qMF0y&e&1#^)%!2?vP=)eW|V<40LHpoUvA4OJXgau&gFu z1~~IXtviFb$Dt?86BMbaP|bN!rV833Bd`-LR-520DF?{hR6qU-5}1VtG(BBW#!hN2 zyMol-q$9E1W1Vdt2U;oqyl0?7&u8ayD~tUZuS@Ot!i+Ss8<0i1McvFyeB+_!W=##n zkmTmmQdhsuaG!Jk!s#_OyF`7AeWE0J!LaOWo??&^;tD=^=R)nR+%cU-p z{C^Q%(?YK|gRW-lB^HE?E3^P(=hjZUEgIuy`nU8WXfJUfi7dZ^DU09XY-~UQWgzPD zT%lTM{^ZV`o$Ms<8prm`V~%-t&)Qw9`BO0^@2rd)-MlI&Z*?-*BlJg?srQ9%dB$EJ zRb`;|$_Tif)2@9prVZ$e@mUnylM7jSXMLQlO})jPu6glQ_^#g(wGMLGytR zVk)mb7cB~m_21#+742x_T)7MV%*b>el|i^?V&=xp1&iG#`_jG`Cl#GC0Mzd;#Q{Rw$A<>mE=1Nn$PlX4-2)fSI%CKH%^=unC!H7H^Wy!wg1Fr32lG6Fn6axFwg*B!RxYGASB&(P(0;e`nB#59uI?Hr6d=2A&UkGA$GypJ%}v54|6n0 z`7`t@3|~O2EbqrM0MpQ%o}Na)|8xhGVlJ)tGdiTk;)H1ltcBR4! z)yqKQSXyjpK~>XK?O(t~gT=QBXnNCcsmgcp3%*2cGOe5r=rXNZS4#lPA;!&JVMk^8 zWQpH7I$c_0dS;T7KU;SQD4P<*%_p03BD=Hm21oPqz1{88oITw;$)!0t!LPos*)yJY z93y@zcwPU>w)kiqQl+>B7B@ZUh;1RFT}Bc2gY;_kU&q$Xpg)=D9(A7=!Uqc$`%;t| z{aU^Tm)xdO&-gcKM=xwAMda^h4aDCUsWy#l)Opxy`# z)YnF2H3%QGgT(kjp~`j!5q%c{#VTqgL~iZ~_d)azI$KeGDDfbm%U!0h@PEhJO}DeZ z0v9YH{=S@KUi~_~Sp-r#A&|T}=BOCvr1oi>%AA5tX)~h99ul*_i8}9BQM2Y%-u17A zw|FKBrzqg>+39Z9lNyuO5ZL)#Mh%I?Lu*9MVAuU+;QQu&N-HcRrF{0e;<7n7B8Vc>OEp?&3C3;4bt{YA5>%YC58x74Jkpy{%a_oI_cR=MB+xzNAXJTFPBT!*U@_ z+eHww!MdH!4Wl@7%GC3~nL+gTSjA+ZG;MSv!O~M_+J1MK-~EU9Py94AC;v0L`V^8H z^qc>>)6wL6`{vwBNMD0x%Gvs<%dB>`88lG9%G?IyoUv-E0h4O1#DH^WPeHyIGVA?Z z_h-sCFB}+eD1Ykn%}l$N;{hFrkbn4Cb@DUNv{+U0u^pv{R6ZCOn`hi4{ZkgZFY5_0 z{{NDIJ2|=h+CucN7k0XHTDlH`bHiQ;c*P+OZeth~bC8+abTJP!s{5g~q*ryg#q{?Ow3uGwIl3@bmKV;h6(F!-YSuzDh%|CDt{WZf(S__ql|&p9 z)%r?cxzmKpM&PP9WkiqDd56ls68=^6xvOdN8WB%#LWuHxR={$wweFPcd|vs_&v@ih z#E6UD8o@gUs(y~c|HOgSYM3?7CRuHl^QRD{*HBnDWo>KQ3)DP1!Cw!jZ~(yX>u1>< zWOua75JE#21`=EVAn-nN=Rmh3j$2+le)H8o0Nc~c;?%p~wIpRCaL!aEyGw8gePHT+ zr$#$IUWZp9G8f3qu~MoZpZuGzAOWm5!sY&XItz}jfYrtE5NZLwVE-=D zJ#PUiI`p<`2vU5Rnqse*AO3qc|MS9UV=U>eyC+59Z7Y5*fDEL3G~uTl0JWyDyR-6= z+#bn-0?O2cZSQD|ar!*73NK~_4?96Jn&;IBw#h2aQJGG}jN!8!G>9)-g00KY< zbi4|DY!}nAe#kOz*@*-KGedKp`!|FHa?(Ys-YTtd`O1IR;Pf}x*9_-uXa-SV-D_pG zR8}8;<6VdsS?qfZs~rQ;irO;4u^LuGe$DUm~2!LH#at@O0Zu(<~!TlVH_u|LCHJ=!(r793P;7&%@RZ z1w^)etwoM2dpsLI7s$DW^1+%~#GQveu^PSe<0Zvi&v#^KqXA%3h1PS-1qUce!hc zyigJIP>tViLEpsTKHTXo#4Q|4M2jWiCtB#fuO0UG8pZco1{mxKlrQr-*-QMVON1gh zk;#AMFT~NGNtGw7k<1t}Uc~M52~v&hJ(CI|pnm+sJcmBVe)gXcORJtmP&TTygfrNE zXK+0v{5>-zn=cJ#?-7cVR@Gt{$bfaSSQL-E=S<85>E8XrJhL2>}$;jO(tZk}v9>RCP} z4knW^)UT(syV0j76eu0(-N=^qqZPEH!rsc6T#@0*WIIK)f|Vf>iEhC~4g8e=yjJ`+ zjKU*e!O~e81=kKZDMEp_IZRh2IDcyu~uiKb|u5g_Jvy|bS8Ww&4qK$ZkkL(OnU;VqCDwXb`=x28X)?G z%;}u$EG;EVw=koORdFS3lf~12^k$7%}8bCBa zPlkcuja_GQku??^yJ21;B0+HbBVO11?#3gj%N;sd;ZYZ7zNE}k zLfh4OtYR;e76J^W0uA@G;0^8ms2+fmHf0!Gye&jtT22YO^0oa=pD#>5H;Y) zO+pmvKWD21|F&t#uq_xSesxI5(qQh00f;}sYm0Ew_m(@p~{k6zqM z?1i<73EAvC>Gt%1kY>Drbw+lnos?uwy zYIDw0s`BvpI8!x`RUc&ISqYt{Gh8W3*`T4XRNM~t%Hza}^ql{_SZcRSs|6fYSajr8 zOGQ!_!Ea0;UZh9Mly%43M2(}MCGdCs|C>U&V0U6zKu31a zrp#PF=IJ@%(p&Qkv|aY%dNDgaD_HyZ-KMtHH+PoC%q%m+3ST zBc{Z`nfezLK3{~#0>5SsG;_?h$*h}Sm3I(w$c@ns9>|tlqB3T~*z1_uPI7kf^tifo zSxn=)iIK|V{iTxoux=2{5{##e3%LI&+)!x%O7lCmXJdk@|L1Q{R%7m7q z8&{xY1J+K^#q!WqXmvWFeHr3~2vFzUMvbkH?v${8-ItDm$Juu^jF*0#6BQvRmAgle zyS!>0A%Tn-uuR3Y3j<^nA|Y&E8s4Khm?XwDLcJ0``iI{a zBZ=tjPuQzzqemr;r%FA49a8tj?!PmfXZbK#Xs+-v2T1w_Nf+wAX?)LRI^^=G@mHe| z;}>{Fe&~M*ddsvEIg%sl1!fGaw4oB{_8{Ec)o8pD*-x{;(OR$)2zWYois6kx?Y5{? z@M-v2=7)DqXO`J$EclmaxLUe5jXWrV+LVerZ*EKyPv9#qQ2dm=fH307u9BZuhcT-V z$(ob}w-Nv_RG35;6{nSCYAxJ{v!KB)lWf#ZufaTDzQikFzh!<2)unukXE4-ifODBiyumLI>Jr@QapYx7n{8z3vwR6nxv2?v2Jx~L!u(i-Be z`^Fp}O8k>uJ^;52XH|`Xd0woPKvZO>Rf;@Eu~58=Yg+d}xmFk^U2n8Wgjauw6|Mw?BdBL-G#~;(nKw+4zo)fjNF*vhbUqXjKWh) z@;4zKjCH$h?xrH?znz2A$k-g35(#~v@Vt7iuR6rqceKwG`>AVTAR@Pv zV1s0y7{W^gH?V@!SWhUb+dh#S?wv^v_$CYFB|kQ29e^@ zL{C{+`tw8`h;ZkLF%Wz~7v8DrV-~$`Gl3c+s~&Fn|G1}6Euxajr|5bJ0Fp;cxjrt& ztvF>(s+hpDQ0m2_ zrCeL~IlZIQ!jH?4ky#z9|EYHyve;0}*a832Gk7atXb!BLrbam2L;8I>jtyNNraP*L z2UHo?DF%XSzpu?S{3b6X_Fu-DYf!7xCB4GLYlWD3ItRPKW=XgFe06)aQOZPWsL7y7 zGj|SLsTkV4Ozm7f4Y>SjhzV#$=v3v!}Pb_2;Zn6IJ^LD>+O))RX!8 zE}(8?o!vC+L9%(Ey{OsFzs8vzx~~t2&;v}Jq8|o_O+&Nf4?e%xx-+CVUSadCYvwt% zqj?Umy(Itp_80itP&FKg!7#d=|2qoYo!Uk{r@*S*MEO%151^Vv(jEk74hq4&Zd|)4 zT5wfaw5DZz^dv2>@j5+05qf>!8(3k66V@t-awu6cOUY9>?oGAg``wnTQ2%kQAE+FU zHvUot=o>gB$#`a)5%h75V^~Je4q4&R$R8DMR26$|{Cw9@`tMJbXy~jF6Q+`@o4}yN zw)>7N!WJ8)?yvTNqI?M{YuqQf<{*v$1Mc@>*XMM5SYsvJQX>#3!4MheWrvQu4AkE^ zea7WapsgJq?@D}_fQ7mE@W^!)=5_b6TCp5mVrvN);`K_Y=+^?4(4zjatH-Un=!Ll^ zkmdv~3ZD`^$LLS+WKFtey(A?9`m=Z;CaTP!sOv>tz&HcaBt5?k%I6G`-JdiW05Vii z!{v28pV2MkL5VPLU!NJ$CN?AM{ekeSnBNM>%j#7H5wfQMai%IeubY(U`Vn*thouSA znDHhLGN~J~k$s?JvaNtkY4Zzupy;Npdbj1N<&az}#9O|rV9V;U?guXV1OS!L z=Kyy&X5B2`I&I;|D`J=OTpqTgOTZI&z&T+FT31n0t*_Qwv~nrCUab;u-pt9dk`O&r zl{;T$R@}1Qf<--wJ0=gOT||V(+tM{QoiOX5(cazO{t(kBmjQcMsw4_7j>^799^=Hq zdjG{OA}4Tz3pn9@2<-0~xqImoX<~-zJnH?jcG+*uZSxzgP_O?Z{T)>{aHT9&p;zNV zHi7vDO1FxB;XWB_`0~d9{;g98^Mw_`F0D0rhvU%gzQ@p5u9Rj~+{~PB{nSM8 zG=U3*sD;8=F6hdHk2<%C1;3|DH$Oc9-%#o9?4lp?WcT{L{ZBF`pALyHrbcwnd}uMt z92@dF^b`(F19Bb%75RIzXE^kJUd7huDMUI1z?SWmoL-oY4gHm6wO zOeG&&{md%#rNM1~wGG1`C&A0vyx}cOIdTZ9{FrdW^7l_tAEM_ngL$r?onm0i4U>=K zJ5l-!pFoKQdZW)7=*jvj8u?xcNe^pP?@3V{V<2%ZUf=z-S77S*=jRZ*sl0ipav?>R zN@-g|Bw^y2@%Gxy!K_hC+DOb>H-fYv3|_jIj%#aNKuJBfC)uI>$ptsRF1&K|}j zH3}zRjUc$B;$1&~L-i*WqE1fmZG%Xh@Br>xYRr4uo;2<<>G0tD^=#d7hPW+WatSOh0v?RcQo$%}^bBwY8Zii(IT$!&TYr?yH)q zS>Nv+G0sa%BZB~hA@xJAtqim6J{PDODuWf7eUGH0+dX6IoGvr=oA3-Ls_b?)j>}m2 zr3#i=2%1S_r1dJ5BYRUg(ixscEt`E_9Ygdp91m)sE2+$Cf$3Dvt&X_(RftY!Pn58? zfi(0!`3n{9giTpvNQ$+2x|A39#ACO5(HF@>HGKkc3h4H1#qwJ;o97mqvH2&~+-aPU zNMjC4gR1EbcsMJf1Y0y#AdTPr~M|MdF z&j5`d&NTg~BuT{c|33hb>kXvPsq0>DPi>&Yhrmx|5lF-D8*BUOwQDSgH-(EAt~?BB z-I_w7@4t{Z%6aAL4R3_b9#3AkL@A4AfZpO=1AAHj5Y0u4a_1_Xvdz++hL++84170h0 z4D;4K#r(!#3*KP)%w%RUQ*h#boCkvwhu*o{^T;Si?!*H0%ea#%mKWkR?1j(^IkeNc z3ndkM>=A9|Ps^l-K}zuw1=Aq-rq*||KEc-@vrdkp28?prAj8?OvQ2BHvZmvpnH(0B z#)JB5rN1?mXoqOr0~{;?|38mA>?aFd9VBC)=Tp7FU=`NpC>tq8I#|D0THO)WbQgWG&Xwk>lMEOLEOOcazPsCTjXpa~M|@_lWgPGz7RL$X&QrT_nO&NG zi$|laCnT=9zfDg27XWZqImQU3oi9>h=B z?vwMb8C{TiA13*UZ}j_jrDsK2P4}ShJ<~@f+yq_Gg;5kFFni8BG~=6qubSL*V)UU0 z-X8&`@fI;bNODoBT^6fBh}@|MaG*NWOs9gYvjIG_#%+9;}5E#$gX7PG3H>!ZQB7dKit6IHp$d z%fl?=I9{N|B@?|0ee4lgd1pc_NSG-9er4lRTnC}VAHBAH(bSdDD?WB%3F{zmlv{VN zC8wc=#Eq*W_dkUh*(j{h!O2896MgJv;swtJ(l)wiwAwM{c$v6o6+`k21cLnB5hA@s zWe>1qkE&KYr9}MhV_pzH3%yMVTu3=;7hUhvizZVMH+9?e2j?K3D7a`Y=}T&9-L9V` zHeQNVSXco$JtcJnp@F9EXeV+MkpTK#OVo!cb+Ho$y5cVg)nE>?eH1mR5B0N5017aM zp(j6Si0I2R?27}wyB$F3_b1T_^oo2?;AZMb3`mLVQKL{jY+Do!d^@Eg1prk3Z99X~(#^fx}@8E|6&KxU&yl8OAZ5!_By%`-`-*4XT^7Vg(WU zvM&IFuh0R0Bt{d|Ee2`h>d*Uz{M8fkgu?Q9isb&hdzC}OkKp3O#YTG*C;khthHp(O z5Pl#m942Pj2$IAW2WNX7eWw6OdeEvyG6I?l1o;~xpXCqqGu)!v1=E1%k1G;IE0upgcFqvX?B>vA+)ujpPO!F!Yp2o0SS z9+|=0!pqb6lhW(Xz05~ZH0j0SOt#@AKpo@nKYMWXt*ga(GJGuI2wVva%e{NE1Z)Re zczt`^ppWIMv5Kt+Q~lAB-ydD^b0XH-Fb%Ygfg;H8hl*OLkF8zSzoS{jN%%&zq-2?}kGkj{qsjte;)ULZ8V0 zf2A5Hc8TYg!2T$)jeTRBm>-r=Qf#M4-(KVINWV#hsj(qSzLGrag7eCPg2?!_OAq+r z{^|>es1yw(pVGg7W3SKgehmZqs*{(HqF0BXrAn&0GcO-KmqP|m^(dT$U&Y&24=RO$L@sxye;5*bq^8N*xDX7bQL+sO zLM(YDt#V={2pHOVovp#i)WFvMB(H+lB5ZtG?ggZ$`)kOGxQk%<-X|qg?Pz=p`LHuv z_Lg#PnD9yUbAgAB=3QT%3o3z85c&zr1F>&vDOAa{jk8GXP0#yP(|kGP z4NZ^{z#r1s7##X?x|hkj#PNC5GW8F{k>=qY&FYaZVyV}@PVM6EP`vQ<;-dg_YQKO_ zUuWQ8YV1aVs7^Vnni60r<&2VlgG4ILVe?yqi#QHE&cLC;ST-fN3P@x#-pl2SQf;T4 zOuH(jajQu26G~WgL+r+;wzOFSpLo=%3rV~KjR{u_8{N87oq`DU08*p{2|4G?*8Bq5 zufqM3K3Pi3ViyCrfby|O|IuoaSVy?CnBHULTqhK*+{`y7G4FP_>}dZFUCOD|O*&!S zE@mSS;aJsSUUhXVDjBdwZK-gT-VQEa@ipQ(q-6&0O}0MJ@%aji03T!*bnvfbqA9}) zdGG3%{s<@HNh|5|4&B;#Q(ilnF4?s$Gk}HLLj1-~iX{ELM2GUkJmo3v)E*DuQfnt= zz=r?E$zhPm0LEOyQqOM~vpA}Fq4oIluVcKdh2ftcF^|T+!V~mLmVY~DgXcg5NK%Cqu70x$jD<(!X^EcN5rK!bXj4 z6frGgNCQMC$K$yT13JM)No<$?O@mc!Oj&dP8t!+k>hP6uDe3iPhB1Pf+opUrZxg9h zU5zYAvt>$>D* z{*B1vz2Kvm8yoy+96x_;<1X^Z)XIX}h@YI<2rb`>NQn+qV5v;uN@X!!$EtZda1q<# zpbJOSt9H1Op8kD}$Fp->$lYk49z%wRw$U!RO@Pi@Y3Z4UJb$uY`gEh4I#S*0hx0nb zsK=Zz;BUVAIMp}(GxrADz|!+?`=l!+n}(3UL{JX?@dRvJ53xN)lDAjf`+_L7U6i%z zK(onRnPFIwTRYdWvPPld1m3PANFi}I25RK%^aj+hhv)A-0oSGoL^QY3Whc&oS5Zsv87hiw>%5C7M!lP!10kUm(Q;iHNXh4&9LAzOPl z&92<6O`{OG36ucheq$#^5@R!IZGYw{;NA+A?(ghlNTS(MPtyK^O16u47^lPQO^nDnqe+pRhI5yQNhu-bucymw%Za8#lkRRRa{LEn}tuf&_j0c9(`Id31vsR?jBa zb8VA#K^Qfmmu?Fqw6HNG(uvRS4!6UK4<>sgElC?*v5nD@bU`p29lPS628Y-#Wcld^ zuUn&e$_$0NnVfC|1qTr7L^^}${P2F_(_;yh&seit3-BxEK!}nXvEfVIgC^Vhb~6S~ zqz85OFOIsD2vs$!p6heSJ`~hh$`r=^{7}j z0-wO>eGI9O;a_sy*>tl+<5>izpMkDu+QQVcGdH3-su|l;*8tWb4tl3mTn>Hqi(Fum zJ6d>jmQ({%40??;FHDVmchCEqoRCU(F{yWs+m!Ydl_b^h&(ud(esMv+`Xs)bD~%Lv zhl?a&=^h2m1%v{fe+fs+IU-mdB}gN-~ia8F$w4B;W?jHJR;=w|H zCq6$Yi&lx#;8==4ojtF^l}`960{I46(P-p}*f}y?!l_iE`mv>#Z1>_;vnJJuD&}`~ zGu3l>Y|_w0LjIhhq^1i1mawg!dd2CKbxaRB!f-<*=Tj&~)B>n7VhuYVv{GqN)t2=Q z)_k%_URvoK?fJjqQE$IH|89O7$%{hqB7xU>5ry2Ev?E}@*+S59TL*t}KAC->y<R`cdkO0dS}1mbq5eTuJYS<44p)_&kUN8CN$%_*mi*(z`s z#mS^NIVX8$>e(uAAF{k>p7Jv;rV=0top82mQAzEbCHNY~r^e`^+m)KUdE8%!Gjb%G zhoJv5svfReHZ6KN)j$rIMR`d&XTit4^nrE{SwU;;bvn{S5%j)f0S@$h))+gNrP)SZ z$ELX>T*UJyfo!X@7jfmS3Td$Fz>~*UjS-oiYK=&X1r|QjXEL2fAIU7ozW{wRV7M*{ zXP$c+8P;}!n)tlvP3wrTF^OzBkKst#9ux66s9<6aQ4haaI;;Qy0000000000001xp Bz=Z$+ literal 0 HcmV?d00001 diff --git a/site/fonts/HankenGrotesk-Variable.woff2 b/site/fonts/HankenGrotesk-Variable.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c2b11a42a2e3e585b49259c800d7bc5eb3544e14 GIT binary patch literal 33032 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 jKgRFqz8Z!z + + + + + Ask Key — the Mac key manager for AI + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ +
+

No key leaves
without your seal.

+

The Mac key manager for AI.

+
    +
  • Find keys: AI agents look them up, no more pointing the way
  • +
  • Your rules: everyday keys pass, sensitive ones wait for you
  • +
  • Locked down: keys go only to the program, never to the AI
  • +
+
+
+ +

Free and open source · Requires Apple silicon and macOS 14 or later

+
+
+
+
+ A sheet of handmade paper on a wooden desk, beside an open box of cinnabar ink paste and a stone seal. + A vermilion seal impression of the character 准, approved. +
+
+
+ +
+
+
+ 一How it works +

You say one line and click once. That’s it.

+

Watch one request from start to finish. When it needs a key, it stops and waits for you.

+
+ +
+
+ + Ask Key in the middle, the AI on the left and the program ./deploy.sh on the right. The key goes from Ask Key straight to the program; the AI only gets back one line of output. + + + + + + + + +
+ +
+ +
    +
  1. You tell your AI:
    “Publish the website.”

  2. +
  3. It looks through Ask Key’s catalog and finds the key it needs.
    You don’t have to tell it where the key is.

  4. +
  5. To use it, the AI files a request:
    run ./deploy.sh with “Website server”.

  6. +
  7. Ask Key asks you.
    Who wants which key, to run what. It’s all on one prompt.

  8. +
  9. +

    You allowed it.
    Ask Key hands the key straight to ./deploy.sh, not to the AI.

    +

    You allowed it for 30 minutes.
    The key goes straight to ./deploy.sh. For the next 30 minutes it’s used without asking you again.

    +

    You said no.
    ./deploy.sh never runs, and the key stays put.

    +

    Nobody answered.
    The request expired after five minutes.

    +
  10. +
  11. +

    The AI gets back one line: “Deployed”.
    The job is done, and the AI never held the key. Every use is in Access records.

    +

    The AI gets back one line: “Denied”.
    Using a key always goes through you.

    +

    The AI gets back one line: “Expired”.
    Using a key always goes through you.

    +
  12. +
+ + +
+ +
+
+
+ 二Permissions +

Every key follows your rule.

+

Everyday keys pass, important ones ask you every time, and keys your AI should never touch stay hidden.

+

When a key needs asking, Ask Key shows who wants it, which key, and what for. Allow it once, or for 30 minutes; for those 30 minutes, every AI on the same Mac can use it without asking again.

+
+
+

Allow

Your AI uses it without asking, and every use is recorded.

准, approved
+

Ask every timeDefault

Every use waits for your yes.

问, ask
+

Hidden

Your AI can’t see this key, so it never asks for it.

隐, hidden
+ +
+
+
+ +
+
+ 三Clients +

Works with the AI coding tools you already use.

+

Four connect in one click. Any other tool that speaks MCP works with a short config.

+
+ +
Ask Key
+
    +
  • Claude Code
  • +
  • Codex
  • +
  • Cursor
  • +
  • Grok Build
  • +
+
    +
  • Claude Desktop
  • +
  • VS Code
  • +
  • Kiro
  • +
  • Trae
  • +
  • Windsurf
  • +
  • Qwen Code
  • +
  • Zed
  • +
  • Cline
  • +
+
+
    +
  • One clickAsk Key writes the settings for you
  • +
  • By handPaste a short config into any MCP tool
  • +
+
"askkey": {
+  "command": "/Applications/Ask Key.app/Contents/Helpers/askkey",
+  "args": ["mcp"]
+}
+
+
+ +
+
+
+ 四Limits +

What it doesn’t promise.

+

Ask Key decides who gets a key, and when. A few things are outside its reach; know them before you rely on it.

+ The full security model +
+
    +
  1. 01
    Programs can pass keys on

    A program you approve can print, copy or forward the key it receives. You are approving that program, not just the AI that asked.

  2. +
  3. 02
    Names are self-reported

    The requester and purpose in the prompt come from the AI. They help you read the request; they are not a verified identity.

  4. +
  5. 03
    Other programs in your account

    Once a key reaches a program, other programs in the same Mac account may read it. Hidden doesn’t cover that path.

  6. +
  7. 04
    Timed allow covers every AI

    “Allow for 30 minutes” applies to every AI on this Mac, not just the one that asked.

  8. +
  9. 05
    No backup yet

    There is no backup or restore yet. Keep a copy of important keys somewhere else.

  10. +
+
+
+ +
+
+
+
+ +
+ The Ask Key app icon: an orange access card with a white key + + +
+ +
+
+
+

Ask Key

+

The Mac key manager for AI.

+ Download for Mac +

Free · Requires Apple silicon and macOS 14 or later
Drag the app to Applications and keep its name.

+
    +
  • Free and open sourceMIT licensed, every line of code on GitHub. If it helps you, give it a star.
  • +
  • Notarized by AppleThe installer passed Apple’s security check.
  • +
  • Encrypted on your MacYour keys are encrypted and kept on your own Mac.
  • +
+ +
+
+
+
+ + + + diff --git a/site/motion.js b/site/motion.js new file mode 100644 index 0000000..9e0d1a2 --- /dev/null +++ b/site/motion.js @@ -0,0 +1,271 @@ +// A small, self-contained animation. The markup already shows each +// section's final state; these only add motion on wide screens when the +// reader has not asked for reduced motion. +(() => { + const still = matchMedia("(prefers-reduced-motion: reduce)").matches || innerWidth < 900; + const clamp = (v, a = 0, b = 1) => Math.min(b, Math.max(a, v)); + + // The three permissions, stamped in turn. + const desk = document.querySelector(".desk"); + if (desk) { + if (!still) { + desk.classList.add("animated"); + const stone = desk.querySelector(".stone"); + const slips = [...desk.querySelectorAll(".slip")]; + // Settle on the final state: every seal shown, the stone put away. + const finish = () => { + stone.getAnimations().forEach((a) => a.cancel()); + stone.style.opacity = 0; + stone.classList.remove("moving"); + for (const slip of slips) { + slip.querySelector(".imp").style.opacity = "1"; + if (slip.classList.contains("hidden-slip")) slip.classList.add("gone"); + } + }; + const run = async () => { + // If the layout changes while the stone is in the air, stop rather + // than fly to stale coordinates. + const stop = () => stone.getAnimations().forEach((a) => a.cancel()); + addEventListener("resize", stop, { once: true }); + try { await stamp(); } catch { /* cancelled */ } + removeEventListener("resize", stop); + finish(); + }; + const stamp = async () => { + // Positions come from layout offsets inside the desk, not from the + // viewport, so scrolling while the stone is in the air cannot move + // its target. + const box = (el) => { + let x = 0, y = 0; + for (let e = el; e && e !== desk; e = e.offsetParent) { x += e.offsetLeft; y += e.offsetTop; } + return { x, y, w: el.offsetWidth, h: el.offsetHeight }; + }; + const dw = desk.offsetWidth; + // The seal image has a margin of 40/720 around the printed border; + // the stone's face is as wide as the stone, so size the stone to + // the printed border and land its face on it. + const inset = 40 / 720; + const sw = box(slips[0].querySelector(".imp")).w * (1 - 2 * inset); + const sh = sw * 2.16; + stone.style.width = `${sw}px`; + const spot = (slip) => { + const r = box(slip.querySelector(".imp")); + return { x: r.x + r.w / 2 - sw / 2, y: r.y + r.h - r.h * inset - sh }; + }; + const move = (from, to, ms) => stone.animate( + [{ transform: from, opacity: 1 }, { transform: to, opacity: 1 }], + { duration: ms, easing: "cubic-bezier(.45,0,.2,1)", fill: "forwards" }).finished; + let at = `translate(${dw}px, -40px)`; + stone.classList.add("moving"); + stone.style.opacity = 1; + for (const [i, slip] of slips.entries()) { + const s = spot(slip); + const up = `translate(${s.x}px, ${s.y - 22}px)`; + const down = `translate(${s.x}px, ${s.y}px)`; + await move(at, up, i === 0 ? 700 : 520); + await move(up, down, 170); + // Commit the shown state on the element itself, so the seal never + // depends on a finished animation being kept alive. + const imp = slip.querySelector(".imp"); + imp.style.opacity = "1"; + imp.animate( + [{ opacity: 0, transform: "scale(1.08)" }, { opacity: 1, transform: "scale(1)" }], + { duration: 260, easing: "ease-out" }); + await new Promise((r) => setTimeout(r, 120)); + await move(down, up, 260); + at = up; + if (slip.classList.contains("hidden-slip")) slip.classList.add("gone"); + } + await stone.animate( + [{ transform: at, opacity: 1 }, { transform: `translate(${dw * 0.9}px, -80px)`, opacity: 0 }], + { duration: 700, easing: "ease-in", fill: "forwards" }).finished; + }; + const io = new IntersectionObserver((entries) => { + if (entries.some((e) => e.isIntersecting)) { io.disconnect(); run(); } + }, { threshold: 0.55 }); + io.observe(desk); + } + } + + // The clients: Ask Key in the middle, a red line to each tool it sets up + // itself, a dotted one to every other tool that speaks MCP. Wide screens + // put the tools on both sides; narrow ones fan them out to the right. + const hub = document.querySelector(".hub"); + if (hub) { + const NS = "http://www.w3.org/2000/svg"; + const svg = hub.querySelector(".hub-lines"); + const autos = [...hub.querySelectorAll(".hub-names.is-auto li")]; + const mcps = [...hub.querySelectorAll(".hub-names.is-mcp li")]; + const line = (d, kind, delay) => { + const p = document.createElementNS(NS, "path"); + p.setAttribute("d", d); + p.setAttribute("class", kind); + svg.appendChild(p); + p.style.setProperty("--len", p.getTotalLength()); + p.style.setProperty("--d", `${delay}s`); + }; + const place = (li, x, y, left, delay) => { + li.style.left = `${x}px`; + li.style.top = `${y}px`; + li.classList.toggle("is-left", left); + li.style.setProperty("--d", `${delay}s`); + }; + const wide = () => { + hub.style.height = ""; + const W = hub.clientWidth, H = hub.clientHeight, cx = W / 2, cy = H / 2, r = 56; + const rows = [0.08, 0.24, 0.76, 0.92]; + autos.forEach((li, i) => { + const s = i < 2 ? -1 : 1, x = cx + s * W * 0.17, y = H * (i % 2 ? 0.64 : 0.36); + const ex = cx + s * r, ey = cy + (y / H - 0.5) * 24, mx = (x - s * 14 + ex) / 2; + place(li, x, y, s < 0, i * 0.14); + line(`M${x - s * 14},${y} C${mx},${y} ${mx},${ey} ${ex},${ey}`, "is-auto", i * 0.14); + }); + mcps.forEach((li, i) => { + // run level, then turn into the top of the icon or below its name + const s = i < 4 ? -1 : 1, k = i % 4, x = cx + s * W * 0.3, y = H * rows[k]; + const ex = cx + s * (k === 0 || k === 3 ? 44 : 22), ey = k < 2 ? cy - r : cy + r + 58; + place(li, x, y, s < 0, 0.6 + i * 0.08); + line(`M${x - s * 14},${y} C${ex},${y} ${ex},${y} ${ex},${ey}`, "is-mcp", 0.6 + i * 0.08); + }); + }; + const narrow = () => { + const ix = 36, iy = 36, nx = 116, top = 236, step = 32; + hub.style.height = `${top + mcps.length * step}px`; + autos.forEach((li, i) => { + const y = 18 + i * 48; + place(li, nx, y, false, i * 0.14); + line(`M${ix + 36},${iy} C${ix + 66},${iy} ${ix + 50},${y} ${nx - 12},${y}`, "is-auto", i * 0.14); + }); + // the grey branches leave one shared trunk under the icon + line(`M${ix},${iy + 66} L${ix},${top + (mcps.length - 1) * step - 26}`, "is-mcp", 0.6); + mcps.forEach((li, i) => { + const y = top + i * step; + place(li, nx, y, false, 0.6 + i * 0.08); + line(`M${ix},${y - 26} C${ix},${y} ${ix},${y} ${ix + 22},${y} L${nx - 12},${y}`, "is-mcp", 0.6 + i * 0.08); + }); + }; + const layout = () => { + svg.replaceChildren(); + hub.classList.add("is-laid"); + const thin = hub.clientWidth < 620; + hub.classList.toggle("is-narrow", thin); + svg.setAttribute("viewBox", `0 0 ${hub.clientWidth} ${hub.clientHeight}`); + (thin ? narrow : wide)(); + svg.setAttribute("viewBox", `0 0 ${hub.clientWidth} ${hub.clientHeight}`); + }; + if (!matchMedia("(prefers-reduced-motion: reduce)").matches) { + hub.classList.add("is-pending"); + const io = new IntersectionObserver((entries) => { + if (entries.some((e) => e.isIntersecting)) { io.disconnect(); hub.classList.remove("is-pending"); } + }, { threshold: 0.35 }); + io.observe(hub); + } + // Manual setup is one copy away; the config only shows if copying fails. + const copy = document.querySelector(".hub-copy"), conf = document.querySelector(".hub-config"); + if (copy && conf && navigator.clipboard) { + const label = copy.textContent; + copy.hidden = false; + conf.hidden = true; + copy.addEventListener("click", async () => { + try { + await navigator.clipboard.writeText(conf.textContent); + copy.textContent = copy.dataset.done; + setTimeout(() => (copy.textContent = label), 1800); + } catch { + copy.textContent = copy.dataset.fail; + conf.hidden = false; + } + }); + } + document.fonts.ready.then(layout); + let w = innerWidth; + addEventListener("resize", () => { if (innerWidth !== w) { w = innerWidth; layout(); } }); + } + + // The checksum command, one click to copy. + const cmd = document.querySelector(".dl-copycmd"); + if (cmd && navigator.clipboard) { + const label = cmd.textContent; + cmd.addEventListener("click", async () => { + try { await navigator.clipboard.writeText(cmd.dataset.copy); cmd.textContent = cmd.dataset.done; } + catch { cmd.textContent = cmd.dataset.fail; } + setTimeout(() => (cmd.textContent = label), 1800); + }); + } + + // The access card hangs from its cord. It drops in and swings to rest, + // turns toward the pointer like a real card in the hand, catches the light + // as it turns, and swings when brushed. Only transforms change per frame, + // and the loop sleeps whenever the card is off screen. + const pass = document.querySelector(".pass"); + if (pass && !matchMedia("(prefers-reduced-motion: reduce)").matches) { + const swing = pass.querySelector(".pass-swing"); + const tilt = pass.querySelector(".pass-tilt"); + const shadow = pass.querySelector(".pass-shadow"); + const shine = pass.querySelector(".pass-shine"); + let theta = 0, omega = 0, drop = 0, dropV = 0; + let rx = 0, ry = 0, trx = 0, try_ = 0; + let px = null, pt = 0, shineAt = -1; + let visible = false, raf = 0, last = 0, t = 0; + + const frame = (now) => { + const dt = Math.min(0.034, (now - last) / 1000 || 0.016); + last = now; + t += dt; + // a pendulum with a little air: gravity, damping and a faint draught + const draught = 0.1 * Math.sin(t * 0.8) + 0.05 * Math.sin(t * 1.9); + omega += (-14 * Math.sin(theta) - 1.1 * omega + draught) * dt; + theta += omega * dt; + // the drop: a spring that settles the card on its cord + dropV += (-90 * drop - 13 * dropV) * dt; + drop += dropV * dt; + const k = Math.min(1, dt * 7); + rx += (trx - rx) * k; + ry += (try_ - ry) * k; + swing.style.transform = `translateY(${drop.toFixed(2)}%) rotate(${theta.toFixed(4)}rad)`; + tilt.style.transform = `rotateX(${rx.toFixed(2)}deg) rotateY(${ry.toFixed(2)}deg)`; + shadow.style.transform = `translate(${(14 - ry * 0.9).toFixed(1)}px, ${(26 + rx * 0.7).toFixed(1)}px)`; + // light: follows the turn, and now and then sweeps across on its own + // f is where the highlight crosses the card, 0 at its left edge, 1 at its right + let f = 0.15 + ry * 0.04; + if (shineAt < 0 && t > 1.2 && (t % 7) < dt) shineAt = t; + if (shineAt >= 0) { + const p = (t - shineAt) / 1.3; + if (p >= 1) shineAt = -1; + else f = -0.4 + 1.8 * (p * p * (3 - 2 * p)); + } + shine.style.backgroundPosition = `${((1.5 - f) * 50).toFixed(2)}% 0`; + raf = visible ? requestAnimationFrame(frame) : 0; + }; + const wake = () => { if (!raf && visible) { last = performance.now(); raf = requestAnimationFrame(frame); } }; + + // Wait above the cord's rest until the card first comes into view. + drop = -16; + theta = 0.34; + swing.style.transform = `translateY(${drop}%) rotate(${theta}rad)`; + new IntersectionObserver((entries) => { + visible = entries.some((e) => e.isIntersecting); + wake(); + }, { threshold: 0.2 }).observe(pass); + + pass.addEventListener("pointermove", (e) => { + const r = tilt.getBoundingClientRect(); + const nx = (e.clientX - (r.left + r.width / 2)) / (r.width * 0.9); + const ny = (e.clientY - (r.top + r.height / 2)) / (r.height * 0.9); + try_ = Math.max(-1, Math.min(1, nx)) * 18; + trx = Math.max(-1, Math.min(1, -ny)) * 12; + // brushing past the card sets it swinging + if (px !== null && e.pointerType === "mouse") { + const v = (e.clientX - px) / Math.max(1, e.timeStamp - pt); + omega += Math.max(-0.5, Math.min(0.5, v * 0.04)); + } + px = e.clientX; + pt = e.timeStamp; + }); + pass.addEventListener("pointerleave", () => { trx = 0; try_ = 0; px = null; }); + pass.addEventListener("pointerdown", (e) => { + const r = pass.getBoundingClientRect(); + omega += (e.clientX < r.left + r.width / 2 ? 1 : -1) * 0.9; + }); + } +})(); diff --git a/site/style.css b/site/style.css new file mode 100644 index 0000000..a4838fc --- /dev/null +++ b/site/style.css @@ -0,0 +1,387 @@ +@font-face { + font-family: "Hanken Grotesk"; + src: url("/fonts/HankenGrotesk-Variable.woff2") format("woff2"); + font-weight: 200 600; + font-style: normal; + font-display: swap; +} +@font-face { + font-family: "IBM Plex Mono"; + src: url("/fonts/IBMPlexMono-Regular-Latin1.woff2") format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +:root { + --paper: #ffffff; + --ink: #1a1a1a; + --gray: #6e6e6e; + --faint: #858585; + --line: #e7e7e7; + --zhu: #b8281e; + --wood: #1c1511; + + --sans: "Hanken Grotesk", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", system-ui, sans-serif; + --song: "Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", serif; + --mono: "IBM Plex Mono", "SF Mono", ui-monospace, Menlo, monospace; + + --gutter: clamp(24px, 4.5vw, 64px); + --page: min(1200px, 100% - 2 * var(--gutter)); +} + +*, +*::before, +*::after { box-sizing: border-box; } + +html { -webkit-text-size-adjust: 100%; } + +body { + margin: 0; + background: var(--paper); + color: var(--ink); + font-family: var(--sans); + font-size: 16px; + font-weight: 300; + line-height: 1.75; + -webkit-font-smoothing: antialiased; + font-synthesis-weight: none; +} + +img, video { display: block; max-width: 100%; height: auto; } +a { color: inherit; } +p { text-wrap: pretty; } +code, pre { font-family: var(--mono); } +:focus-visible { outline: 1px solid var(--zhu); outline-offset: 4px; } + +.wrap { width: var(--page); margin-inline: auto; } + +.link { + text-decoration: none; + border-bottom: 1px solid var(--zhu); + padding-bottom: 3px; + font-weight: 400; + color: var(--ink); +} +.link:hover { color: var(--zhu); } + +h1, h2 { text-wrap: balance; font-weight: 300; } +:lang(zh) h1, :lang(zh) h2 { font-family: var(--song); letter-spacing: 0.04em; } +:lang(zh) h2 { word-break: keep-all; } + +.num { + display: block; + margin-bottom: 20px; + font-family: var(--song); + font-size: 15px; + color: var(--zhu); +} +.num span { margin-left: 14px; font-family: var(--sans); font-size: 12.5px; letter-spacing: 0.04em; color: var(--faint); } + +/* Hero */ + +.hero { + position: relative; + display: grid; + /* The text starts on the same left edge as every section below; the + photograph still bleeds to the right edge of the window. */ + grid-template-columns: calc((100% - var(--page)) / 2) calc(var(--page) * 0.5) minmax(0, 1fr); + min-height: 100vh; + min-height: 100svh; +} +.hero-text { + display: flex; + flex-direction: column; + grid-column: 2; + padding: 36px var(--gutter) 56px 0; +} +.nav { + display: flex; + align-items: center; + gap: 26px; + font-size: 14.5px; + color: var(--gray); +} +.nav .brand { + display: flex; + align-items: center; + gap: 10px; + margin-right: auto; + color: var(--ink); + font-weight: 400; + text-decoration: none; +} +.nav .brand img { width: 22px; height: 22px; align-self: center; } +.nav .brand small { margin-left: -2px; font-size: 13px; font-weight: 400; color: var(--faint); } +.nav a { text-decoration: none; } +.nav a:hover { color: var(--ink); } + +.statement { margin: auto 0 0; padding: 56px 0 0; } +.statement h1 { + margin: 0; + font-weight: 200; + font-size: clamp(40px, 4.4vw, 66px); + line-height: 1.14; + letter-spacing: -0.02em; +} +.statement h1 b { font-weight: 400; color: var(--zhu); } +:lang(zh) .statement h1 b { font-weight: inherit; } +:lang(zh) .statement h1 { font-weight: 300; font-size: clamp(36px, 3.8vw, 56px); line-height: 1.35; } +.statement .sub { margin: 26px 0 0; max-width: 26em; font-size: clamp(18px, 1.5vw, 21px); line-height: 1.7; color: #4d4d4d; } +.statement .points { margin: 18px 0 0; padding: 0; list-style: none; font-size: clamp(16px, 1.25vw, 18px); line-height: 1.6; color: #4d4d4d; } +.statement .points li { position: relative; padding-left: 20px; margin-top: 8px; } +.statement .points li b { font-weight: 500; color: var(--ink); } +.statement .points li::before { content: ""; position: absolute; left: 2px; top: 0.72em; width: 8px; height: 2px; background: var(--zhu); } +.statement .sub strong { display: block; margin-bottom: 0; text-wrap: balance; font-size: 1.12em; font-weight: 500; color: var(--ink); } + +.intro { margin: 40px 0 auto; } +.cta { + display: inline-block; + padding: 13px 28px; + border-radius: 999px; + background: var(--ink); + color: #fff; + font-size: 16px; + font-weight: 400; + text-decoration: none; + transition: background 0.2s ease; +} +.cta:hover { background: var(--zhu); } +.ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; } +.cta-alt { font-size: 15px; font-weight: 400; color: var(--gray); text-decoration: none; transition: color 0.2s ease; } +.cta-alt::after { content: " →"; } +.cta-alt:hover { color: var(--zhu); } +.intro .meta { margin: 14px 0 0; font-size: 14px; color: var(--gray); } + +.hero-image { + position: relative; + margin: 0; + overflow: hidden; + grid-column: 3; + background: var(--wood); + container-type: inline-size; +} +.hero-image .plate { + position: absolute; + top: 0; + left: 0; + height: 100%; + aspect-ratio: 1672 / 941; + /* Keep the seal (its centre is 73.6% across the photograph) three quarters + of the way across the column, whatever the window's shape, without ever + uncovering an edge of the column. */ + transform: translateX(clamp(calc(100cqw - 100%), calc(75cqw - 73.6%), 0px)); +} +.hero-image .plate .photo { width: 100%; height: 100%; } +.hero-image .seal { + position: absolute; + left: 67.2%; + top: 37.6%; + width: 12.9%; + height: auto; + mix-blend-mode: multiply; +} + +@media (prefers-reduced-motion: no-preference) { + .hero-image .seal { animation: stamp 0.55s cubic-bezier(0.3, 0.7, 0.2, 1) 0.9s both; } + .fade { animation: fade 1.1s ease 0.15s both; } +} +@keyframes stamp { + 0% { opacity: 0; transform: scale(1.22); filter: blur(3px); } + 55% { opacity: 1; transform: scale(0.97); filter: blur(0); } + 100% { opacity: 1; transform: none; } +} +@keyframes fade { from { opacity: 0; } to { opacity: 1; } } + +/* Seals: three permissions, stamped in turn */ + +.decide { padding: clamp(96px, 12vw, 168px) 0 0; } +.decide-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 4vw, 64px); align-items: start; } +.decide h2 { margin: 0 0 20px; font-size: clamp(26px, 2.5vw, 34px); line-height: 1.3; } +.decide p { margin: 0 0 14px; color: var(--gray); font-size: 16px; } + +/* The slips start level with the heading, under the section number. */ +.desk { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 2vw, 28px); margin-top: 46px; } +.slip { + position: relative; + aspect-ratio: 3 / 4; + padding: 22px 20px; + background: #f3eee5 url("/assets/paper.jpg") center / cover; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06), 0 18px 30px -18px rgba(40, 25, 10, 0.35); + transition: opacity 0.8s ease; +} +.slip h3 { margin: 0 0 6px; font-size: 17px; font-weight: 400; } +:lang(zh) .slip h3 { font-family: var(--song); font-size: 19px; } +/* The short lines on the slips break at punctuation, never inside a word. */ +:lang(zh) .slip p { word-break: keep-all; } +.slip h3 small { display: inline-block; margin-left: 10px; padding: 0 5px; border: 1px solid var(--zhu); border-radius: 2px; font-family: var(--sans); font-size: 11px; line-height: 1.6; letter-spacing: 0.04em; color: var(--zhu); vertical-align: 3px; } +.slip p { margin: 0; font-size: 14.5px; line-height: 1.65; color: #3f3b35; } +.slip .imp { position: absolute; left: 50%; bottom: 9%; width: 32%; margin-left: -16%; opacity: 0; } +.slip.gone { opacity: 0.55; } +.stone { position: absolute; top: 0; left: 0; width: clamp(48px, 4.4vw, 68px); pointer-events: none; opacity: 0; } +.stone.moving { will-change: transform, opacity; } +.stone img { width: 100%; filter: drop-shadow(0 14px 14px rgba(40, 25, 10, 0.25)); } + +.desk:not(.animated) .imp { opacity: 1; } +.desk:not(.animated) .stone { display: none; } +.desk:not(.animated) .hidden-slip { opacity: 0.55; } + +/* Clients, limits, download */ + +.chapter { padding: clamp(96px, 12vw, 168px) 0 0; } +.chapter h2 { margin: 0 0 22px; font-size: clamp(26px, 2.5vw, 34px); line-height: 1.3; } +.chapter p { margin: 0 0 16px; color: var(--gray); font-size: 16px; } + +.chapter .lede { max-width: 40em; margin: 0; font-size: clamp(16px, 1.3vw, 18px); } + +/* Clients: Ask Key in the middle, a red line to each tool it sets up itself and a + dotted one to everything else that speaks MCP. motion.js lays the names out; + without it they read as two plain lists. */ +.hub { position: relative; margin-top: clamp(32px, 4vw, 48px); } +.hub-lines { display: none; } +.hub-core { display: none; } +.hub-names { display: flex; flex-wrap: wrap; gap: 4px 28px; margin: 0 0 16px; padding: 0; list-style: none; } +.hub-names.is-auto { font-size: clamp(22px, 2.3vw, 32px); font-weight: 300; letter-spacing: -0.01em; color: var(--ink); } +.hub-names.is-mcp { font-size: clamp(15px, 1.35vw, 18px); font-weight: 300; color: #8d8d8d; } +.hub.is-laid { height: clamp(440px, 42vw, 560px); } +.hub.is-laid .hub-lines { display: block; position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; } +.hub.is-laid .hub-names { display: contents; } +.hub.is-laid .hub-names li { position: absolute; white-space: nowrap; line-height: 1; transform: translateY(-50%); } +.hub.is-laid .hub-names li.is-left { transform: translate(-100%, -50%); } +.hub.is-laid .hub-core { display: block; position: absolute; left: 50%; top: calc(50% - 56px); transform: translateX(-50%); text-align: center; } +.hub-core img { width: 112px; height: 112px; border-radius: 26px; box-shadow: 0 24px 40px -18px rgba(120, 40, 10, 0.45), 0 2px 6px rgba(0, 0, 0, 0.08); } +.hub-core b { display: block; margin-top: 14px; font-family: var(--song); font-size: 19px; font-weight: 400; letter-spacing: 0.08em; } +:lang(en) .hub-core b { font-family: var(--sans); letter-spacing: 0; } +.hub.is-narrow .hub-core { left: 0; top: 0; transform: none; } +.hub.is-narrow .hub-core img { width: 72px; height: 72px; border-radius: 17px; } +.hub.is-narrow .hub-core b { margin-top: 8px; font-size: 15px; } +.hub.is-narrow .hub-names li.is-left { transform: translateY(-50%); } +.hub.is-narrow .hub-names.is-auto { font-size: 24px; } +.hub.is-narrow .hub-names.is-mcp { font-size: 16px; } +.hub-lines path { fill: none; } +.hub-lines .is-auto { stroke: var(--zhu); stroke-width: 1.4; } +.hub-lines .is-mcp { stroke: #cfcfcf; stroke-width: 1; stroke-dasharray: 2 5; stroke-linecap: round; } +.hub.is-pending .hub-lines .is-auto { stroke-dasharray: var(--len); stroke-dashoffset: var(--len); } +.hub.is-pending .hub-lines .is-mcp, .hub.is-pending .hub-names li { opacity: 0; } +.hub-lines .is-auto { transition: stroke-dashoffset 1.2s cubic-bezier(0.6, 0, 0.2, 1) var(--d); } +.hub-lines .is-mcp, .hub-names li { transition: opacity 0.8s ease var(--d); } +.hub-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 48px; margin: 36px 0 0; padding: 0; list-style: none; font-size: 14.5px; color: var(--gray); } +.hub-legend i { display: inline-block; width: 28px; margin-right: 10px; vertical-align: middle; border-top: 1.4px solid var(--zhu); } +.hub-legend i.is-mcp { border-top: 1.6px dotted #b8b8b8; } +.hub-legend b { margin-right: 6px; font-weight: 500; color: var(--ink); } +.hub.is-narrow + .hub-legend { flex-direction: column; justify-content: flex-start; gap: 8px; } +.hub-copy { margin-left: 14px; padding: 0 0 1px; border: 0; border-bottom: 1px solid var(--zhu); background: none; font: inherit; font-weight: 400; color: var(--ink); cursor: pointer; } +.hub-copy:hover { color: var(--zhu); } +.hub-config { max-width: 560px; margin: 24px auto 0; } +.hub.is-narrow ~ .hub-config { margin-left: 0; } +/* Config is copied as is, so it scrolls rather than wraps inside a path. */ +.code { margin: 0; padding: 16px 20px; border-radius: 10px; background: #f5f5f4; font-size: clamp(11px, 1.1vw, 12.5px); line-height: 1.8; white-space: pre; overflow-x: auto; } + +/* Limits: a pale blue-grey band that fades in and out of the white page, so the + honest part of the page reads as a change of air rather than a new page. */ +.limits-band { position: relative; isolation: isolate; margin-top: clamp(60px, 7vw, 110px); padding: clamp(150px, 15vw, 220px) 0; } +.limits-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to bottom, #fff 0, #eef1f1 160px, #eef1f1 calc(100% - 160px), #fff 100%); } +.limits-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(40px, 5vw, 80px); align-items: start; } +.limits-band h2 { margin: 0; font-size: clamp(28px, 2.8vw, 38px); line-height: 1.3; } +.limits-lead { margin: 20px 0 30px; max-width: 21em; font-size: 16px; line-height: 1.85; color: var(--gray); } +.limits { margin: 0; padding: 0; list-style: none; } +.limits li { display: grid; grid-template-columns: 64px minmax(0, 1fr); padding: 22px 0 24px; border-top: 1px solid rgba(0, 0, 0, 0.08); } +.limits li:last-child { border-bottom: 1px solid rgba(0, 0, 0, 0.08); } +.limits i { padding-top: 4px; font-size: 13px; font-style: normal; letter-spacing: 0.08em; color: var(--zhu); } +.limits b { display: block; font-size: 17px; font-weight: 500; } +.limits p { margin: 6px 0 0; max-width: 36em; font-size: 15px; line-height: 1.75; color: var(--gray); } + +/* Download: the access card on the left, hanging from a vermilion cord; the + brand, the button and three reassurances on the right. motion.js swings + and tilts the card; without it the card simply hangs still. */ +.download { padding: clamp(110px, 13vw, 180px) 0 clamp(96px, 10vw, 140px); overflow-x: clip; } +.dl-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: center; } +.pass { position: relative; aspect-ratio: 1; background: radial-gradient(closest-side at 50% 52%, #fbecdf 0%, #fff6ee 55%, rgba(255, 255, 255, 0) 100%); touch-action: pan-y; } +.pass-swing { position: absolute; inset: 0; transform-origin: 50% 0; perspective: 900px; perspective-origin: 50% 45%; } +.pass-cord { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; } +.pass-cord circle { fill: var(--zhu); } +.pass-cord path { fill: none; stroke: url(#pass-cord-fade); stroke-width: 1.8; stroke-linecap: round; vector-effect: non-scaling-stroke; } +.pass-tilt { position: absolute; left: 25%; top: 19%; width: 50%; } +.pass-tilt { aspect-ratio: 641 / 720; transform-origin: 49.5% 13.6%; transform-style: preserve-3d; } +/* The cast shadow is a pre-blurred image with 120 px of margin around the + card, so no browser has to blur anything while the card moves. */ +.pass-shadow { position: absolute; left: 15.64%; top: 9.64%; width: 68.72%; transform: translate(14px, 26px); } +.pass-card, .pass-key { position: absolute; inset: 0; width: 100%; height: 100%; } +.pass-key { transform: translateZ(18px); } +.pass-shine { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.46) 50%, rgba(255, 255, 255, 0) 60%) 100% 0 / 300% 100% no-repeat; transform: translateZ(19px); -webkit-mask: url("/assets/pass.webp") center / 100% 100% no-repeat; mask: url("/assets/pass.webp") center / 100% 100% no-repeat; pointer-events: none; } +.lock { margin: 0; font-weight: 400; } +.lock b { display: block; font-family: var(--song); font-size: clamp(44px, 4.6vw, 64px); font-weight: 400; line-height: 1.1; letter-spacing: 0.1em; } +:lang(en) .lock b { font-family: var(--sans); font-weight: 300; letter-spacing: -0.02em; } +.lock span { display: block; margin-top: 10px; font-family: var(--sans); font-size: 13px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--faint); } +.download .tagline { margin: 22px 0 0; font-size: clamp(17px, 1.4vw, 20px); font-weight: 400; color: #3a3a3a; } +.dl-cta { margin-top: 30px; padding: 15px 34px; font-size: 17px; } +.download .req { margin: 14px 0 0; font-size: 13.5px; line-height: 1.8; color: var(--gray); } +.assure { margin: 44px 0 0; padding: 0; list-style: none; } +.assure li { display: grid; grid-template-columns: 9em minmax(0, 1fr); gap: 16px; padding: 14px 0; border-top: 1px solid var(--line); font-size: 14.5px; color: var(--gray); } +:lang(en) .assure li { grid-template-columns: 12em minmax(0, 1fr); } +.assure b { font-weight: 500; color: var(--ink); } +.assure .star { white-space: nowrap; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--zhu); } +.assure .star:hover { color: var(--zhu); } +.download .fine { display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 24px 0 0; padding: 0; list-style: none; font-size: 13.5px; } +.download .fine a, .download .fine button { padding: 0; border: 0; background: none; font: inherit; color: var(--gray); text-decoration: none; cursor: pointer; } +.download .fine a:hover, .download .fine button:hover { color: var(--zhu); } + +footer { padding: 28px 0 40px; border-top: 1px solid var(--line); font-size: 13.5px; color: var(--faint); } +footer .wrap { display: flex; flex-wrap: wrap; gap: 10px 26px; } +footer nav { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-left: auto; } +footer a { text-decoration: none; } +footer a:hover { color: var(--ink); } + +/* Responsive */ + +@media (max-width: 900px) { + .dl-grid, .limits-grid { grid-template-columns: minmax(0, 1fr); } + .limits-band { padding: 120px 0; } + .limits-band::before { background: linear-gradient(to bottom, #fff 0, #eef1f1 90px, #eef1f1 calc(100% - 90px), #fff 100%); } + .pass { width: min(100%, 420px); margin: 0 auto; } + .decide-grid { grid-template-columns: minmax(0, 1fr); } + .desk { margin-top: 24px; } +} +/* Narrow windows and portrait tablets keep the two columns; the section + links leave the header, and the seal moves to the middle of the narrower + column. */ +@media (max-width: 1060px) { + .nav .hide-sm { display: none; } +} +@media (max-width: 900px), (max-aspect-ratio: 1 / 1) { + .hero-image .plate { transform: translateX(clamp(calc(100cqw - 100%), calc(50cqw - 73.6%), 0px)); } +} + +/* Phones: the header on white, a shorter band of the photograph, then the + title, the button and only then the three points, so the download is on + the first screen. */ +@media (max-width: 700px) { + .hero { grid-template-columns: minmax(0, 1fr); min-height: 0; } + .hero-image { grid-row: 1; grid-column: 1; height: clamp(240px, 42svh, 420px); } + .hero-text { grid-column: 1; padding: 0 var(--gutter) 56px; } + .statement { display: contents; } + .statement h1 { order: 1; margin-top: 30px; } + .statement .sub { order: 2; margin-top: 16px; } + .intro { order: 3; margin: 24px 0 0; } + .statement .points { order: 4; margin-top: 30px; } + .hero { padding-top: 64px; } + .nav { position: absolute; top: 20px; left: var(--gutter); right: var(--gutter); z-index: 2; } +} +@media (max-width: 560px) { + .ctas { gap: 10px 22px; } + .statement .points li b { display: block; } + .statement .points li b + .sep { display: none; } + .desk { grid-template-columns: minmax(0, 1fr); } + .slip { aspect-ratio: auto; min-height: 168px; } + .slip { padding-right: 124px; } + .limits li { grid-template-columns: 44px minmax(0, 1fr); } + .assure li, :lang(en) .assure li { grid-template-columns: minmax(0, 1fr); gap: 2px; } + .slip .imp { left: auto; right: 18px; bottom: 18px; width: 92px; margin-left: 0; } +} + +/* Touch screens: small links get a finger-sized hit area from an invisible + pseudo-element, so neither the layout nor the underlines move. */ +@media (pointer: coarse) { + .nav a, .cta-alt, .link, .hub-copy, .assure .star, .download .fine a, .download .fine button, footer a { position: relative; } + .nav a::before, .cta-alt::before, .link::before, .hub-copy::before, .assure .star::before, .download .fine a::before, .download .fine button::before, footer a::before { content: ""; position: absolute; inset: -10px -6px; } +} diff --git a/site/zh/index.html b/site/zh/index.html new file mode 100644 index 0000000..843fe78 --- /dev/null +++ b/site/zh/index.html @@ -0,0 +1,333 @@ + + + + + + 请旨 Ask Key:给 AI 用的 Mac 密钥管家 + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+

取用密钥,
先来请旨。

+

给 AI 用的 Mac 密钥管家。

+
    +
  • 密钥在哪,AI 自己就找得到,不用再频繁给它指路
  • +
  • 权限你定,普通密钥直接放行,敏感密钥由你审批
  • +
  • 安全加固,密钥只会交给目标程序,AI 看不到明文
  • +
+
+
+ +

免费开源 · 需 Apple 芯片及 macOS 14 或更高版本

+
+
+
+
+ 木桌上一张宣纸,旁边是打开的印泥盒和一方寿山石印章。 + 纸上盖着朱红的“准”字印 +
+
+
+ +
+
+
+ 一怎么用 +

你说一句话,点一次头,活就干完了。

+

下面是 AI 发布一次网站的全过程。轮到用钥匙时,它会先停下来,等你点头。

+
+ +
+
+ + 请旨在中间,左边是 AI,右边是要用钥匙的程序 ./deploy.sh。钥匙从请旨直接交给程序,AI 只拿回一句结果。 + + + + + + + + +
+ +
+ +
    +
  1. 你跟 AI 说:
    “帮我把网站发布上线。”

  2. +
  3. 它自己去请旨里翻,找到要用的那把钥匙。
    不用你再告诉它钥匙放在哪。

  4. +
  5. 它不能直接拿钥匙,得先向你申请:
    用“网站服务器”运行 ./deploy.sh。

  6. +
  7. 请旨弹个窗,问你批不批。
    谁要、要什么、准备做什么,写得清清楚楚。

  8. +
  9. +

    你点了允许。
    钥匙由请旨直接交给 ./deploy.sh,AI 碰不到。

    +

    你允许了 30 分钟。
    钥匙直接交给 ./deploy.sh。这 30 分钟里再用这把钥匙,就不再问你了。

    +

    你点了拒绝。
    ./deploy.sh 没有运行,钥匙一动没动。

    +

    你一直没理它。
    5 分钟后,这次申请自动作废。

    +
  10. +
  11. +

    AI 只收到一句:“已发布”。
    网站上线了,AI 却从没碰过钥匙。
    每次使用都记在访问记录里。

    +

    AI 只收到一句:“被拒绝”。
    想用钥匙,得先过你这一关。

    +

    AI 只收到一句:“申请已作废”。
    想用钥匙,得先过你这一关。

    +
  12. +
+ + +
+ +
+
+
+ 二权限 +

每把钥匙,规矩你来定。

+

常用的钥匙直接放行,要紧的每次先问你,不想让 AI 碰的,干脆藏起来。

+

需要问你时,请旨会弹窗写明谁要、要什么、准备做什么。可以只允许这一次,也可以允许 30 分钟,这段时间里同一台 Mac 上的所有 AI 都不用再问。

+
+
+

允许

AI 直接用,不用问你,每次使用都有记录。

准
+

每次询问默认

每用一次,都要你点头。

问
+

隐藏

AI 看不到这把钥匙,自然也不会来要。

隐
+ +
+
+
+ +
+
+ 三接入 +

主流 AI 编程工具,都能接上请旨。

+

常用的四款一键自动接入;其他支持 MCP 的工具,粘贴一段配置就能用。

+
+ +
请旨
+
    +
  • Claude Code
  • +
  • Codex
  • +
  • Cursor
  • +
  • Grok Build
  • +
+
    +
  • Claude Desktop
  • +
  • VS Code
  • +
  • Kiro
  • +
  • Trae
  • +
  • Windsurf
  • +
  • Qwen Code
  • +
  • Zed
  • +
  • Cline
  • +
+
+
    +
  • 一键接入在请旨里点一下,自动写好配置
  • +
  • 手动接入粘贴一段配置即可
  • +
+
"askkey": {
+  "command": "/Applications/Ask Key.app/Contents/Helpers/askkey",
+  "args": ["mcp"]
+}
+
+
+ +
+
+
+ 四边界 +

它不承诺的事。

+

请旨管的是钥匙交给谁、什么时候交。下面这几件事,它管不到,用之前心里有数。

+ 完整的安全说明(英文) +
+
    +
  1. 01
    程序能转发出去

    你批准的程序,可以把收到的钥匙打印、复制或转发出去。你批的是这个程序,不只是开口的 AI。

  2. +
  3. 02
    名字是自报的

    弹窗里的请求方和用途由 AI 自己填写,帮你看懂请求,但不是验证过的身份。

  4. +
  5. 03
    同账户的其他程序

    钥匙交给程序后,同一个 Mac 账户里的其他程序也可能读到。“隐藏”管不到这条路。

  6. +
  7. 04
    限时允许不分 AI

    “允许 30 分钟”对这台 Mac 上的所有 AI 都生效,不区分是哪一个。

  8. +
  9. 05
    暂时没有备份

    目前没有备份和恢复。重要的钥匙,请在别处另存一份原件。

  10. +
+
+
+ +
+
+
+
+ +
+ 请旨的应用图标:一张橙色门禁卡,上面是一把白色钥匙 + + +
+ +
+
+
+

请旨Ask Key

+

给 AI 用的 Mac 密钥管家。

+ 下载 macOS 版 +

免费 · 需 Apple 芯片及 macOS 14 或更高版本
下载后把应用拖进“应用程序”,不要改名。

+
    +
  • 免费开源MIT 许可,代码全在 GitHub 上。觉得好用,欢迎点个 Star。
  • +
  • 经过 Apple 公证安装包经过 Apple 的安全检查。
  • +
  • 在本机加密保存密钥加密后存在你自己的 Mac 上。
  • +
+ +
+
+
+
+ + + +

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 U0ssI20000000000000000Nhb`&j0`b literal 0 HcmV?d00001 diff --git a/site/assets/pass-shadow.webp b/site/assets/pass-shadow.webp new file mode 100644 index 0000000000000000000000000000000000000000..3242315437b53f65ee8b891988a54a9a8cda1acc GIT binary patch literal 14944 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 k_@6ZRA9eUYri%Zeo>vmOLQOF~pxQ<+B_4g>@Q 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%0A1CHcsLIn>TBoemy9PDc6JTZ;3F zpT965KpyO5yb|e13BOLCa%&M3Q0 z2EPb>FvQEGf+peG6r}ql$i}^_`6l>u`m3VR7P+6b?|b9;J#Zt8+>3&d_T>)4 z%{B$MPa-M4>{5dxlFC9i)iK(cy7qR>zMk6(yAOaBg#qb{~lV)6$+($9Z?A4DARKp=dd5ID+H2O>z`a6vnr(gda* zXXwwZ*KCYbz_`D`vIB5T%%dpj7!$GaKyGmA4IP%U4wWRl9Zv}A!iYr$t$F9^U(Iq# zbt)!GkqOlKw;hD7tcwON6G+Tn0fvSr;0}PXX*GR{dcjSK1lz#=k-$+pnd+a&u_p4l zM2dgj_CHU#!)Kfl1xXv(^IRA26q1IO?GdRdk!;?OM;&bNJpME{ct@|M zL43K^zVkRABd?vNr$_8JaQN5lDky~LEWVzXiF-JTWHyTFVT1-txRm#N!&~-5ySt#0 z?7-)wtT|u94|U~Iyy2cY^kq_Z-Z|0u1?6KI$?(t)y6^=n`cgQVa@#+}Trio1fHSM+ z<9;47J5a;V-j)Yro`$e2AsdSTj>EIH3637n)+o24GL)uM+8~p_?mk+3}CP zE-TZdsrVK$*i9-AM=m0CVLs+t3f%<$aMJeS3`{tWy zOUTJGu&DZvfV&Xet?_XRr#jx!dJ9HH28iXdnK3B$@rq)hKuWGB43P0$2=E98^}vO* ztIepqxI)naH`geuJUJsT7xE^+Wa)#n(_Fp$_Xn12yl&QbRHqqBPmI6EqZBeAZejMo zqQg2SsX#}|?ALNuW&5A{S~dFm%w44o>D8_e5g|-azx^6_37Wx3&f#M7$)i$}F=|v- z5Wkz%N7+J@NS@Ntml*@g&%)Tt3GNsU13P@L4o?%3xmg5+x1srX2yldX3A$t+kXkg+7D%1g_(g_VGA^a04e1q~8iXa^?gj$zmOrzV^yRIz&GhG}sJOqbAq6!rXu@Pea&dlBOQ5B3a+G z_Rw_~L{voRRSekoI#$wYQe{mLOdB5V;om9^>nM!ogj_wM1=$j)$dw#qn=Rg}kqK72 zn6xtgm5k(+D+?>&M<*qbNf-vqXn+%AUpQrWSk>$CqjX$W6+8n8l^r*KKro8n8!lGe zGk4hCS!4$l?~#5LBV5(JEzlUD1)B`pRmcBbhsAf{Z2y`O^s_ZIS9Gc;{5Vs~#h(In zFvO)?aioN0kxZikx0C$V;I=^`mI-0Hrk|xYskPSh(I>Jo=e8hFyAT{b?*-evgr8@I zlhCadb9@HD-gV>PZfL$@`E7=)Bo63uP4NyAtbPHZw35vwEJYh+p`=3rY2Q8lgNHU8 zellPd{lOK4z3nU5Mr%SKuA&4FL9HS?`b12t`8oW&ZJV8O38@0JShX!O!(Zskd@=aJ z4(tM0Kqagb%axu2i+Xj@wX18cevm4nket1x6tQOZ&x3JX6&nc1$1cubqr9k3YZqzMq^KYWmAV5%^w!M5 zys3Iz!6Jn&10S#B5ubE*F2gh45Q8N&uya`Msh4|_F?a$aWb(fOo7z@*37xIS%>~hM zSKbMetQ5JpXN&7ydf&jnoB6&md=$*7K$fSwinX#?N_d2Ks$O+1RmKQfp~;7iNp3DD2UkThr_9ry3yresP-(g+g1jxF=M=!(PnGB_NJy zsn#DCpM{I+UYk4w^Lwno2zP={lVhpR6c=5;spUrgk)x~)v&h zsTXOmn}>(HQmmva|5h@Gv_#a-{hi-C>o|PA(x$sMfoa?l!$vSXy{G;3;4TS@aQwA& zI~K*z5pKCEHvme*(#{H6%z9A#D3f<>CdjA@lF-?X^=BL{o`{xo#SgzW%7{}}bo)RMVUAhUR*L8`27w-L+mibO=P$iDQ+bF(ob>aXc`%m zv_%Na!IrXRzTVqBaWgrq3ntR9XmO@OW?7&Uk&SL1be089bOS8^wT*ZGH>3C1S(_>xuB7&KF1Uv_V!z7JY_9WaT0ywX7l zs=}Z5TNUh(cUV0Il+btU3c0uHU0G^0Tb$F0{ss~9^R(QFhdjJ5z;vk8r>m^^YXdWI zimB-lBosFzB!qFAH!(grgxUhX?b3BDa`sPQw$;$c?d=^r6T2D*M-|Ur&D6Fm=m8;_ zAZlhiNHPf*I;Tn0_aMA_Pj!AQsdcUrY4EO_n0m$qJ(&Haz!$ zJz6%eI%W@*r(^+{;=?;0w%Y%g4_JK=i zeG+}P1f$L#){z$3lMhtb)wKW z!`@E?VjplM6zJhehf9J}(@Y+f6FPp+`Z}&;Jo(QoCmj=g1!2ezZ-dCx$>7$9?ffVK z%Joh^9H<1VxDB0LyLQpBKc1u>TGxidiE_G^(YSIwPS7eos+YCmr*HSfF zF?8>l5ec;xRPtXIbVT#}x{5uCnUloPp^4ZB{JIF#g@c^-)`ZOBm3|>695zfO@!(d| z9yGt`oXL28FP#;@uUo{-|%f?!fOqCtcQGMDwv9AHL$qRgr(C&gCET_)=tN}W&5&?pf;H5tF zXj8CyI7qX`8OCxflv)3%{|2Fg8T!*}bUAov<)g3%X({D#!*}S3Z!2orIx^i=fQO-M z>|;m>E*}@+)N!^AK%l4A(tPsS-zRe)HUV6sxI{^*67v5syxVk^9&dI}8|~yRKtKS% z(x89&f&a=fFlr^K(pj-TtR8HFJ66DM6bc%G%Y%I#=Dsa#83HTQ!yC=n12^z1^QWHN_`;$blo5Xl_UGD&C*MPvosL z)?cC#d66~twdEpyp+O~M=-i}JQ8mBDQqp|kSCi5a$1W-VSaqNPB9?5)} zB~#O(vHQ?Q07u(>hm0#}s&B*$Qm$e2ti%qvs_pRD+hP zhHD#zG(7I3=NJckfL&?jykIdsDGmKN_5EmTgWAy`563UxJ^&vgqs~dE?uz16d$o}~ z+N_}AJVkq~57>q<809XHlcp+Ss4;8A|Tu{p|qX32P%2IgoQaqUT@O z7Gf#ojUUP!k$nkj*PoXFY8|Hgs%9PC8Q|Jn>37I_EBj~-(BZNjqY8!l^sR%P>qF_@ zN`x2+hbvmI4q5lRr5q}HWj$LqL5HCfHH3c7ZLTvx(c$#L06BWiI^XSdPks+!3U7@@ zQ&X_Z2L1CbvWO$7>O>M@(Wqk+t_7e3h_&D`cMaebRupX2z>lMgT#?=szg6qry$Jz~ z*YZu-UP;o|&~)M_a&cdS70m_GCJa1)^c{)w*)&q0Vi{GeCC{G;#rB)=;=l7iY2RIu z;q}RqFbDg3F}TC3y?$@JkQBn=Y}%uvPWhzLzY4>m;a@H4jgw67wAplK(ltm17P|#Zh8tP1@C%drCCxLljF?H4^JDuZLHuRL$GFQlm_kbt3g{N;y`%&)wQ6Y( zA8SR+4M6*3=i?rCIUkr4H+P!-L+>co59QIndDNQtr!S}pN zvTQ8N;wMS-#L1{;W+fpubvo0Fm3A*&#fW;Kf!4E}UX6!)`_1UtTx^UDEPr_ePlW{@um`XanMI5Ro zhIV_srWJo;8P+O#HO>D~f&xtjVpts2oI5=THhy7Utqpv(%4&nMuLzZPB^Vkmo*#sD zQ(4)w%TDpQ8~3${k?&W?LBLTCOLGOaPoXHh2d4^i%0JY!J2+EEb1UKRq5W{2Ilnvk zNY!;;*}9|`{dQXi@$3|%UP*(mGb7WN5$w!+Ah=$JralAros;>>hEGEn4rtRjI28q^ z%Dmt46d7}mN+NBAfsM{6sBT=h0yqu@nu6YLwYom)K5yjgoQ@1H9^x*)$82EhgKmOl z0=61N`(ykz{A%Cx<2aj(Y7m)!9#fb;9BPC5htigqg_Ds-cktg-og!PXZRWcu6WmN= zs;2F-xmFtO5sNFtLeUJiP-6~{jFT$)SgWSn5Ch)Or`!T}#t5LltR3XE)z#Rs0H;{k zpV7BqqbQ%7Np_*2@pKeS0s!S+cE2Q@O%j5>6PIBmx5cDbg?%pX#vAy@4HPuKc`6PJ zWh2`oMG_6PWsnFEywaSZ>JzwnFPt#Ubju>27o=)2F^NLF_xc)^5)ARf;|!mylC2FSnqfe%4mJCZ0-> z>N8mdoY4KQA@1q0fahkHsq>I$>Zb82?kDaic;|G21XB=&686`KC32-LcSGSYANc#Q zx#1(esz_T;KgQN{V;ha>+_2W}Db;w|+xhl+fx0a+rLU`1AidCYcQh_hZSSr>Cpuu5 z+LEYiGbwjf=z0<7SsyU8{M5BW$32yDtA;T<(HdthyI9nmFVMDJDtyMy$OxbIMzxx9 z53$-SWswt+Dg1vfq7Rr7Oa2#o$XWX#e6pVIyCPhxn@&^`QKt!xaVH zQyL^0G~lzQkk)X(?oa*1r$`A&?^9B&G)I0(!QN9TxW%|7C6DN{o)Fl_7`QU_w|5)5 zCB|7B;foCSS9;2>*32X6HpW^0w6L*|@q89T;TVU0%0RqIG6P4JE$KIUD5k^nKlnkRKwLi`+#7D|`seeVG7M(oU z{E^l4>DC~fB!@Dv#^;hchYA;frIpmNApmiYXWAhJ<{DW>*8V&R@>rxewXR32>(;1f zbye@=^R8>*9JBD}JM^`KfmN9o8Mn$X{U$55cFFi{QY9lfpE!#b=WN4QtY;56rS-N* zXlSt+Jzb|3b{=s_JOn}L)mA^C-syMQ4x<5XbjZPGz+MvBGu<;Ym#_3=gX9OgxJ@07 zbv?A-fxbX)CMoEPO%e{~k4)*aU(j{t!*+VzNqf$JbQp!kU3j5}anJj{UwH6-{kAU* zzCk5&C`lU^!jxzO8#)(^)~jO!7^6-8Wg~x`+bj=^LvW+Jmzb3D((9-EX~fJAJGawc z(0+JbrZMbSs9cs$f6+RngKo|zE4O|u#zdV+C5wth9T+;gEYIJN0Lok4Cj{0T5Qz)Z zZ&ZOb2chCt-z~bb$$GO{KqsD!mD+rj3T{)(eWpibfpb3`1NHkWf7->(die8O!m6 z>x){Or12#}E{cvzrGm7+Jx$p9&-3wFBAxbgB;6rRohW7zmro$46sq*4Te?q~@Z7`3 zTK<*2L1)Xs+n`K6ZIYwgvObZ6taUXwbEnLMLXkTY@05px;t(`!&-yt3?y#lvEE}U~ zefBRmY0(lH{kr7v1KoK_GrssBAKlp|9^a_*rwn9+1n__ig3ehS-dW$B%T|r7(hvUS zc};xIuFa2h-$i1?Q$+tOiZvp)wR?~@yA(NKiZbR}!q_vu64) zszP!oGZwv-98LrN4Dyy=LRl8v@#GzaAWbCpvMpe)s;WXxsT*xtWa?>RYED<{2mQZ` z^F+@yV-V3`vNN0`FHteF)HBd0J#T87N<_N7;%A>viH(~*7XF5pFPD&-Ar}`Ms00x8 zSu51rCl>m+k{ki!kH;#TDW|A|C4FQc4TjN+CY*yig(wvPut`CxsRYXdPdjNeoy;Zb3e+?Ynk8N;r6V^N^u@i3!9~&?)EP@U}@N865pC1N6}zx zoCLoo?YA5IJ2v;4E+hskDw5urOow9@rk#j9YW1+Il%S8dHbn|fAD|;D{lS~CMRCvX zz^$Z=ZD`D!sNScV2?tq7_r@wR45r}8`;>_am znVbUWRZU11YLGxKkW4Cq-na^ks>K4J-j6gKInWJb01{F$qP5J(3 znT9eYW6wE;Atw956&oofoZXOSRL6b3VxL@{|DJzZz$uI!slqV#?CS(h9|70y->{2) z$eMZCW-4FO3b*X1uDzu z=%GW*eUD`jJQL~vi?&W_$m`d$XDp~QvEMSzIH_dpdA8rMTJS2qy*bjzV(;J&g&+~F z({la1$ve0&^&>7xQ$WN$`EsH|^IGN#0ts95CGv@;$ELSpnCE5z*ZP#Hzp;^g7&vol zjceuo4Om*t0h9A=tC{y}N4t#IvuinW?37*%*2s{WtU4UDv*WmwZj5o?ZMG%$*Wy6Z8&OfV&Rbi1Kku`GXD+)(mQ~rP> zUVg@7mh@eoB-doY+IAu$Rd;$o{%$jzNc;U+S(qJ0Il4*%pX>dAFTswge=ZS-mO>Gw zvQt5&f^@|{c`C4s5dJuJ0m@-BErsthz zTz+Nh(LeuOqSA1F+Q2OUj z;tJ#&b}BlfeuE9kD{Y|iqeQI+S!NU0(W+5Q4=)e*IzT~(hIgyd|Aglt1oGGN&-|}^ z5$j4?E`J5-gpEMGB+qF{QH^p%6wBWaYv7@LkqQd+I?rg2;(1*(ake|@>LfHz4b$Ur z#3r{P`J>*RYMwOnTB`8@mfpN*DXFw)5$W}mVkG}d4^s4f^X!Ny^B zOnS{XBQgJy=-d_CHtpVNq}moEMzVBbT6X3tlmrF3$!E+F!GI7&7xPbKF?Bd|OJ%Ye0E7NN2oEIZP!hX87 zoRN%O=Z1)(ou|zakJ*~q`p4zrpXM5quJdqmA94YU_WRhg9WBj82o&*Yk4C6TLK0cN zr4yJAT`4bnjywbWTDVyUewK5dxKEtja2BCG#}q>lRKv7~2=swx6uRC@Z$yi$NV}=B z7l-c&4dTa*3r0Q0#nZQZ#EfiePhz z%?}B^zHFwe%+WFDhWgb=hAor8gsh4amj}%1r&+xMOK3iRY0n+*cRgSa*+Q*Cq5BaI zXvR`Ry2#e%o15&I9m#du%i00igSXfCZ&p9Lk49^M`@$IO8jg!yFWq_2?$Ne+kG7P0-4GQIF5u}gpEeoiSy;>*#?IeYBw!BwkGZcG~}zm-3pectea zye4?L-Tl@z$_t@5H$+)-72hD#^xDeeh+P~%nG5WbcanTL#(sWASGUNLqT@_1 z$$WJtLs=NiAMb|hn6I2%LTXG`y1^eZuJR*=(t6<QPpeva+cH*(|J+d$ZDfw|lAwO0(56Yo?5|+ouelcSYLofFqnc=K!k^TNr5l z-?JHH5r#VR3uKP8W#4rX+fEp~BB;VhvIwxBFsqEc(A$fFP(lo`Keu}l@Hv-V9^9dQ z3w)fm1fl8kvWhu}D?iw9vuY$7F?=-U+n)_Dx4iya5o_%I{{S~Y$iME|SxSrfCCJxE zte2OL_?P$BEpLj3xlEYx-hVtS7;M6f5u@91#mpzO;+73}cg?eJ^P~{GsT4?GRPPur zrWA~T8SoK5V`fuP0Ee<2km?0abfpN%gBhP!-m<$BVLo@A-Q5_n8=@r1h@NM=`!3uw z&^hc+K&ROfe;SXtyo2&4SHJLA=fapnGB7Y3qHj^&Vq{P#f6giTToFOVpQ0rF3~k8i z*9*BA59DWl&K!v@<@)EV0X#sEw|fs9r78e`&shmE3ohJRTU;O%$T1nOGVf|!Wj^at z-|i#t#K3MYgGFrphk^x)?~}1M#eFF^!g$9cc`cW}f#Id+X%KrysA<$U&KP4vPf)Fs zpP3?cQA*XtzcryzHZir0`4#u@UJM_EM50X6v<{Y7(fij{4D%Z4bc;SR9~*ui?`YRA zt#IlyMb(AHBclxLGkc;Djk_T4L0@#jJ=!&y0!Wdd>y-;jZ$$QZjhB5rIKxi54Dz7K z+d@DAI3|Ff)UG@peK@mY4+2Qg=JN0Rmp)Ceh1xMo?SyZv>=i%&0E_>Ui}L^Vk^ykU zzox6N-dIUkr{vAV=GNq)d(szlx|AfWl3S)2d0tQYIC>PE!(s9EXn24^RLC;L@Q~Cs zMo1N>v;z2k=iL@AV9IsUL_=U-_JGX^llSFOJ>}ec9JxNGeIi z3O^^sg9U#!8p#h8bAvRflEFcZX`6{8sT-jp@x-!~6OBT>_1go(HKdM6%*Em`f&%zz z2WM+eoQ!M7VcTb{`f$^!hqeXH)^;v*RlC@i0&eYncE{kK^8WzrJGibpGb^#KsY)!j z@EH~BR0S>+CXy4s<{rHB`JZcRJ0npx~>DN(>B#ggt|i0d&FyeyZRm#S*i-&t@A^h zzj1n&KD>r<;p_y&7RZ_?qu^}d96c~UTX&rzxF7Wk1qrOFu(cF_} zf9TC=#X?@1^@Y8I%_J{`IsPWf6`7hmz0{EZEIUefnGrT29R2>3WkJ*jN7J!V9Od#IZoof^xH9D`ftqJgjampLgP9SWiSVR1TE zzmJED`=)cI1h+K-H$h%>uwRpk**d8*-bHF;8-+#*a?7fvC@SGq4Ngdo#m|-yz#|#I zbz9KuN9c~T&O-YY6e8w~c^klfzj5&AJ?RwDD2HegRc3%&rNCe>O^MY7iqhI*Z=T4m zjjfPFvh5vQG!NLsRXxSG^tjtm!(6l+RQ^5!-gwroH@Alw4r~OGVyG;iFtJ^M`?O7~ ziWB~KdF!Jg?+b(PJJQrW!|}(yxiq>fg`W?&U@dM1fjunP&^~mT&hj2Pca#q%;FRd5R5NRcbFXWWvu(`tNhI+23_|92D5`vNcEo@($cV#ytIjoPK~!>Sh!7)2=f&r2o07?I*uN3dt1kcI0%AaLGe}R%!&TiXN#LH@!wS9;$F-2Ub z&2ra=(}TDi$}bBb8|v6k0Gc0KVxN{g=Lew`80Z5*RGo=Kz~PcPgzBL2OgiwsD-^oB zB>oV``Mqe@O_*^eHs;IFNaw>}tTb>gmc3;cruWK9{5Ir(X)HukgJNb()GamT*_W~0 z?qtSc^M_EDLXj%;jwD^g7}(qRNno_ju1nB>cE^B}LxE9Wra{7(UkQWPWCPPor*h6K zeAz$=AfwVL=jpgS$6{oi*S}5TS!LEpW3fvz9EaL!FhFn9vjmm*D4Un~GKi+)yzZ8zng|$ZY|6K20FeY` zfQ<=R4h$%asmvjnTV@2}tC|$(#QHFycM{v?7v#>9!0S4D@gp49w)3cT%{vgc0Xrw= zva)X3b8qouh+BHo&<30+b5lQl`uM`nyPV^THbfC_DHRSq0x4hX8DZ2@nMgwxBdG7C zH=HJJC=1C5)kewCbU#ubCVyS$>V zd#!drgD4mX3e@I{>*%X!hN@`+o%WF(!-)@2Xi~)PY8L4v_qm=tA!XS(7g}vT!FyL% zi!%R)J%^)Gf`VENJ=p`nh|bikOF>0fD<)ei0aw^bNVoAk00F6+1A*E2j;?b6yW4Qo@hYtEp>Z1aZ%`v`X3@x;&Gi&c2H}DKFHe^O@oB zx=q9=(})fFUTpTVxAjb#INcKm0b=s)h_tM?@+ z^|JiO+2I}#=_1lm&PzO1ckhI{uGwe{Et#;7W&CrJ=G;r8IcB{K`j2=H+q7(`YPnTz_lHW~plJJT~{ z8hR?lt|9VKCyP>WZsniW&01sp_WM=0zf400QU! z%ay@dh87y@at8bhGGg-|IQvD*#Fs~3T7FqnlP6v{0LyXxP^XWvc~*uCcff>23KQgoBVp*<$J`>&$fZx&qXi35P00@~~&b!FQ*e&X^T8 zXs^s*n$32CXL;RrL&*S4QHsc#FP~uo^Y_1UV@c>H-pIWlWf#&&(c(3?5peL!ix}R! zvb3w=&a&GG;SNfHS+Wr7E10Y}S;#H+==a=+bWWH1KQZ(!rZ~hM;&kL^wi~xO>sO+Y zAgT6n?{txq=gHy4ZB=1vi)YZ-;^T913za==JW~S!VQV#Qy*_QaMlho)S+Zs{2VUyX zF`+g|vOH;7QR2W26-MPNRKd(3#^mF&3l-RH9}cHIN>P$})O%#lQUNT054t(n z2Yu{LH@=KoT$Y2$HSG=DZOmUA%zW#7^h`ZP{5k^d__6@y6_ne#$9zN9@pVn!gY@ro z&-(qE(JtOf*4CN@#VpQTANLZKH!Vmwzgd4ynnP7ffU6A%p3}8kLLusZCL=(!G;ScdnRw zizd+U@8SRWhAWh0j3A8XTYY?Q;r^j8nY{T&M*+SbaYshT{lPp-k5go#4bQ46-OE&` zW+OH|fFVVSkb-wZHCSK!CHb76TqyUl!Z3rvJ`h2e)&VzRmElTlkJRR-M53}H=FT0j zqKGBJ+~L2)RI}3p1<2*rLKh13GG^mRl=PYakWr2i;KXHof^*xNoMB>)PUv4LJH6v! zwHbi$XeO-65u3F81x{hcufhPsrtvY!v)C;`f^y$xbAA`}qRd2--PnK$9F4eF$HdBL zEKqkZy%!;8HbMhFaK{Ra|yH#$`kH7y0u zzcxoIk&);3P-lNo+jOrJQNol9+gsy_jyJpZ3tM9U@>6Y0U}(x0$bc22Jdv_S8wb_^ zi%{xJm`9zt3hL4;g^!YwDGRuAUoVgN!ut)8bsYeBzp_HH;7~?Yz5YIY@(9LHr{CR* zk%P4k+d{U@3JG6TjML>k)mubC-6Yyo1rOjSgey}1Xe4df5aN0o7nXF2BvC$BRp}N3 zLO_F<}UUI6i(PDU{)3`(2!rCxR#AlC2Yt?E(usA_sOaT^+Pz2!-}{2 z!Ja_50{ogozLvw4 zgy4DP<0MUGeWz22&YH+0!hVgs8#VOFNoZF{sB0CWI5M^2$>}1riBj+#dmviP0R5IK zPWNEj(+lcdKgq7Zaj5fv0zwLg1?H!CoMFqq<(J(B;gi&^TyeD!RsV-N@=m2ZkceD@ z=zW+a%L&R&dAgZhLzZb8n5AxblACiLA2(<{bIY!%WX)+yYv>H&ef9CUPQo>d|<1}r;FCckE< z>0vVkN2B`ZB%xeUpN8-u{LXrw_Rqt2aYY`c@--GvTXwVK>YAMk*aNIYj)IN&&aVcWGaaK_-~Tl!1u1mC+h42 z+KV`Cig34uyEoiGb3h>lq~C-6o3VE%u z{&cN9=X9F?RJBL(T_V7C*EWk5E`cWWst2VXu<}oUb{R!Uai)%T1dTX3q8(swI3Kq2 z1xA%hLpAZwI4KKvq$t{zx^+sRzegngg(EHnlJ4fkkl1R#&xhH(V>^G6AQ-lMx=W zN%ZX*zw$}VP{KW_u2)W&{KnxjBHRI+uNm|-)bmR&KENj41_^UorMFG<(i$IH9R#jk zXO0WdK#`05}0W{?beE_YrZNKU4e zEl5L`Zc+iich_!uI;HZ$KP9fMTN)|zFTAdEA4GtqHdID{UE20-?lttP+*nkBMvqzv z&2cfc_e#==kep|dI-qRs$onFvBx_XUXrSlMwU{%oe}oP}M{}rQK9%T3FO0k#79HJ= z>z>z`I_j!>hQb0IJ9MX^I-##&tP&z>YS~N_#|j%XlWzN85-*t@R%nT~Cp(#*z$pkh zp~t~T zL|M}VL^Ua4GLMZToPR2hPq>AfgXVoT)B=tRl3D|oi!sAIVe?)?va|%qa|kFKS{oe! z>(sb7?}b1n5#e08PWRBuc37PpWkuV?09e&60pd{Vx7s!AAp-zwRPi5NrN*3>2hzCF z>iG|0{e%8IPXHXc5Jf&%iV%ekX&O#)cN%{7!WLeRDh^No*4&S4zcVO`TwGRpaWP_e zGgG5L8S9j-#J>a1S27c>H!$ShK|0+i-EQv&2Rpy){4|Z7nyAt_WC^L>+h*iirkfDK}iHfl_<B!whrJ2FBCnn9k7QjF$7zHXTEN}SGOp<_z}H6X zU7{r%YtwH6F}?hjtFRJ}dqrBoYGunlKr=`}17>Vz(I0H)++DSaSpgmU{3pc!`@=N7nt zpb)O;aQ{vcyS*lB0bu2E#uwLxmXThRIyL#87YfB%*6n$iqH(m9cjdr=1S zGkahgQjF6}tcCAr_mA;ZK-zhqIzf*yC4}P%j+E=7N(Cb`$}=+MG}aY6*)S!=z97>; zv%>XiBfA5S0(?l0xT@;^IMR2~R(r8K?sliBS(%;+GU;=FLgx{gvLUu~u^|5xSx+lpC7g3 z#CNRIeCI&)@dblG8p+K&d?6WmBKD1~ALQ#{D*3Tx(h953ME2oI)OH-eYdgYw_8T*@ zD>h_=#{?GsLCXRmk;LaTH7edgy8D-OKQN_cJjp%rm>qp5gygt1 zQv`jDWG6h8AUJ_^MBHM!{u$Lb!p3%hD`Hw(cGu42Rlf7~6;Q*T7ydJ%(@DRm2GRk5 zX?c_i4NDeAL=3SWKOLCYY(?y^u3Z>FtTsT2c=DA|_e+d>D!aI}9|%SC|jX#&?(Sptb+z0yP4# z)EO|vO<4Z%peB?E=AeI^GRt*&`W3Bs$i%IJ(9IrA1Y?QyPPTFiH*2yJ%uRu0gJKZq z)Z5lB|BlKofC-o`5WQfB!!f<3U+W_kf!#t!5gGwugb-As3Nb7USV-Xq({i$}j2tn# zIO@Xni{WT#M$pk?k$ZV&j^xp;mKs%<0;pF(otQJ7g+2Yl#k2wHB|IDd9}?-hzl~4b zE5s@?8SKxBsYmcg|B&^;L)s`t6|#P@Xh>@5>v+NmK2z>$n(tmlJZ!wH^cH3KQ}dLq zb)3Dis#Y&!Xaz+z=Aef}cq!E{0fO>C4b=^KhN5c>!9A)Cwj!Nb$UMAz83jq-Ll0FqXB{>@h`h4SX-T(#aECAK z4~P7xV0Y0Tyg_%Dwx4pZHrBSjkyt2N4B2n+<%TYd=)HR|F*Sp;f<4A^*xSeo#crs= zy^H@6jn9=qDOantig2cTY@*xg@?5j&o7=zgu3Yo(i!2$GMDiN&SykKsFHt#Wr#r&v`>2sE#Y-va6b&LZ2y4M@?37>6N@`;Vvr0L zb|k2!T!p~*3q#Yj2mnGD4fve*Kr_`nT)&d%9L*S^ZB9X-E}n?uqvaxsaaq>#HvzhN^Aq+ z1CT^Y`9~nR8`alMjicg?P;d)S4_voE@_Fdqq)G{hDKluC!0vRUm>I#{N!$x_xDjyu zQ1(de0U-hPK5S#s1puJOvd+d0$*qi7+?rE24y6`9!$9s~K`v8|FHY0f_lS z@`&?W9!;9wSWwvZTkcGW6aGtVMtyO`0Kj+4DB1v&)^FfK6H@nAWCn!2`hZR@s&!=E z<@1F(a#Dt&?f}@mdO3ks=OpyI%sh;IPZD*&JD2%m`Z|*oSJQuM?U9+C51O-~TTw}9 z9J5k`Fs zP0Pl22&XlJ>*lkRIWubhMM`~og3ask^Ji_wVLTWfy2I`Z{-(A0KTe7vvy@(jomL{JH#_T=y%V zbO4F74Go2)qWv2+m^WGoeK_>=KKhm}QeJ6dX$jNX)(}oBU`f(yVq*}Mpi(ng>cFmZ zOV1@7t|VzxWAq{*$Y}&`UE@EBz@t;V=iyjJ51S3i3tCKWmyq*4GD!rAefgiGCgfSfiH$AGIFATA4oE00Yz2~S z5%9Rfw^8yv{sd}BeSz|R$k_NEqd!Y0b)Es4qu$$T<~+x6L-1ZgUk~RWKgb}y-I+L> zdP5H4(Lar`z^F171uAwcuuO}hl#Qb>G{B8YS7(jb4bT9qlDA@7mo`;m!f-n==%E8` za2X#DY^2FJ6KW+SYgL5VNTU_sjz-gxIW$UG#Ln9SdM+Im#oiW5g>sMA@1?qS6ZA5Slrm zCobVATGxnO?*S#=W7D*#Ki_7gcdh<>p(%s&3eAGl<7BIgWye}`;?pu?Ov$OQFSdYN zsT+6KaWXBB&h0&*u@+JStdYebES5sVMC4>+H-yKz#`NJ0Z(4W*E3C!z_?pd(-XX)q z=I>Dmhd3!LEmxgwM`NmYZ#6c#gu0tdo~3{AuY)Tgd1_%hMT%akJWd z%7KnaC&nM$UQom}5uB=vj3wlA;SfRV5W=S}I~-?-`W*??qfHRRUAp}ML8P0Ij&qAX z1S&4=$BKl-y9!?;1A{o{CZKLPsO>KGG?kPt){clszxE}R_{>)1!_KGLg9(rft9@C3?YZA29(e;8 ze@lLAhDr^11I9U%r00{h|1T%PeBp^!F}?q@rxaic*aQQ>i=p zWiQ$=&EgY4=tv}7%wXKo1y}GEQ6|3(sh#$qY?7vcLqX4V3r=D(_oa;#x6$IU_%+a@J{JY`*uSbO19nE&r%oP0#UG^ z?JQ5O7zdJAzi?E)4;tHUr zzKp+lYsy9H_S?kWb%XH^;Uvsh_#!#X*>|y5m^d|-9v)QWX7#;TrJ*FDYmul2Z(P;v zK+c#2B?EqkQJc|tA8)tTnItjIJ^us%wSA=4ax}fs zkbIRBCxa9dK>AEBQrR{+w+$XplH4J_fDYu*=nam@MURrrkp#~m#9Cxw4h?wnfR_~m zqQyIl)SHN0#VceUf*m1}#FXxC5fRB(HUop9@H2UqP?ex(r)=Jk-E5}Hw3x#FHeFYW zdoVgp1?+Q`>NR7RGY+xaqqGTrYwDd4WE>mrdRK!ZR3I zV>2~L)bfOmlAHR&=nl+hLON$^y?haupm_wvq-kUws(%XRt(wz-wl{dJ-<5S6|vGByZ6$LJhinv%~F79)V5ZCW> z4lDRfcEZK;CB8hwwc8=>XdmHNV5O88-|lH%&FL03iDap`yMh9UfM8I#DHV1+8rgSM5;N%8RcHkuPp04P7=Dl zF_A;RxXd|kJ{tlxuV=M6i+|UYuD1x#pD4A>DuYjnmm^PO&ur&|?v$l#^x&Nx+|W(c zui}EZ^A0uHw&&K_D)$D5&g(UDd*FfTfz;4ajUWRn(w%X>o4WV1EY8U|8HqU11CUQk zE?B>QA2_@l<O6$w3y8zxuG|uV^*a2KBS`vj9{V9x#Y%c^YTlhAgPL%*%X$(n#i? z7N?a+g;aJVe})(eerv%>%z5=7f}~RomDfa4DXQ!sMu$_$lB0D(D4CB4uFhJJhv5n# z3&Xms!AN4;+SMVmz{<aJzEp8aC1)#acx!%!-4N-|FsZBrCyp zJdOFFfPc~d`6BBf##XU(Tui)|ci6GEJp55 zQDK@{vGEi-`*!&dz^t2VwkRqm^S#h6YR2J-63HS_hoL8_WZ3eN=0LT8m?LIWGK_!@ zKGD$W3>K;pdfYY?9ixgi?O(3DB$TnYM2gi%#}FEH9c!(l+%%z1dZ<6HVlkj$_;CL$ z%Z3u{5cQ>pt{Mjrow&$8i!DN&UcGw^3c!feysXU2!%E2!cDZ0ko7 zKg*@JiC*#IQc$nQRAencT5+z0lA{Eh;uE3+?wk?%6t~ z#Zq6{s6S)fvfhYS0u!%zY*?q}g5(hQ4nLTxSdyUyCnjc)vNi2MuS+!R3HcMB4}XOw zBZgXv0YuhcmD5-{yI2+jb$CfynkF5`%r3g=ZVAs;hinflhr4(vj2t(X{57{XcXv>Wis?r>D<-V9BFsg5@T zsD&%p$>_l|&4}rxwodO}=K;ev>np}+#tY}oN62q9GXS2P?+_CFeg86+CSw>!v=Oh# zzsQk(a}^ldA_9LvxJym`3}%^o)1i`Nl_~tbA}p1fghPt&_T>7lO(#eW5IY1>Y2{wS zOK!;K5L-8JYtR*lbyVy&EUn@70;}X^Oc0}1>Lx;tU|&=5v$b0o+GV5##Vq zfwFo<(I^S1^APEWMCGGL*NP%Zxn3lzUQcKrG#bSt<-i*V>b*1SuBmA?Vw-` z13r9nM!!~o7Cxum`l{ArriU9tHl>zK6CWUIa@Vq13UU?U)rp{~Tz*id^swsuh}1|X z5>`BOK==)G_@d%63&`{$!!2DUf^@JIVL9X;0FgBYLFc<>Rc+u+icxVvLkigaLL`7B z+En$kq^Pjph%uj{zMPV-qayaOj+bOKf`lTzQ%&l_DV8udK~`1v0c;QB(upqdvx3RC zsAuWWMezV4qyl>g;jUpdvg(rLUbYPEeRUR$>k7yDWUzP7LY+9^EtX28cX$jZ$_9;Z zI-m2?4^d_R&J6ANa}$1{Bk>F*moZSwa8%nNE>Em5NsgbFUL zu7MMowbd;-tVkFEkKIp}5?J39cF_NqZa$c1GG+s_H#J->kDP#W>fMyW1igAa=CU!j ziqRl!0C2NuwMJ?}>zF+Wjbw9cMu)*5{h$0&Gawp@f)E9amYXw_Lg=ZgM=C-)yd{W} zg@0FON%n#7!tJO$?I?eRK;sx1kr3lR5W)2XJv{yrgNQ_^)Bva7S7!|d=f3`iC1upk zPbj&&C2CdtZrWo5IP{=vq@!USk_*ZK;9GgnRJfj^hGDZV|EQOt!`(gTL)bZ0SF3o% zn-N2GNo-{lR`@114*>uX3z(4?PX-e>j5_V8QoS}YrzXBxmv+KJ$6tm4TL~kR2lF6! zBwm!O9Hbb4By-}9a^;WEZe>dmsQI+-vU3YCMh8WTbpw)3*cu@jc+1=y-UF_Nm`Ykh zLu%D?CrX>tpsPKW0b?4d1!(H`*bZQU^O|K@V8NG@EoWacQOcP>9{R#T-Ny~KQ zT{5wQ)zO$xTe~+Egy3+N-c6dLyRUqjsE3?IlccebJv89-^T-EMUG)}&0NCpvw1Yu| z#QoVy!BTL?pEKH4NmeK^Be5-iL8V4QL2awF9L$lvCFG$87R@j4_dNis8?x8o7#!k{ zZrQ~@+RQw4FAMi_uMb5T%icY6Piud0^hCtn(|vilBO`|%26JavY3chKE>`7+>N5~0rljKZ<+Jo8r4$~I^ZE+zsJ6$uzJ}eu z;q*!CKxygrY7m0(m;HlRQx#W%2 zEUMYY=+J5CH-EckBGkrau%A*96QPJyBQ^3W0%fui?ZB?idjXV^Dmh`2Nk@_2{Onmk{slp^+Fj`!(dc&p>lpzN#)KOQO4#SBerA^k=+|LngP}#&zR0k(3w7O^ zN~bL$Nt)e7(vcfWv#&z0X-N6Brui+*>J64BTo=Zy{XlC)-`-^( zgpur(v2Sm4v^BbW#l#1IW<*ukLfYx} zl3H<#K42EviGtd`tmyz{WW{DUmMx=yveYcjQccwR6-sWlG{)psyOJ`jiY$xHT zb?SJwpgtK#T1LB3q!yd+4P3S#i*?Nge5fYs^JI6PPEO0whm}*gYc0FFcIDUDwvy)N zb@V9%OTE+dum|W&kjMMfFTth{im>M8L9F*cUTGjsq-gJA=0hEFDFv}er*ezhJ!3vS z8^AAQ38eK^YQ}^HT^1_{8B)CjK*V4;JMs><>VLJ?QHFyunawmf0V#zQs$@`U*B5Y| zhDpe#QL)u(2@by1h^K=Z#cQ?gRF={95q`}YsX9`I(W8izxIkeq=%Gkqn{F|;mK_Q@ z$8&H;0R{2Ye|SD+VDXYkleopKpB;FM(6#m~x~9^TT_GCIX$wq;N%OKk>} zFzWyeHEgrt4d=EGpL3}hV?LuTZpXJz@bPbJ)a#>Z{kKYuB-_Ak$uhe4H1uBYl zOLsO>;V)NZ$%HQ%+MypWsZvHtsW{q8Mi{PPxmzKvWUY{Zt-;DK6L$Ao0m#~!0)fvE zZgv@D8FvgV#m7ybe1kmeBWYd@iRL3pO^r8CL)LzR);zwL&oST&$%_^Uzn5)nl1O+O zjsq%G;GFNqtghab5nQA9hG%J$?tjqXLnWfSpc0d}a&wp+(pW;1A%mz-bu|9OdO~odvmTs11 z%#>0NFzED(<S*#}G6j-htjD*s}EkUroz(g``uX1Ax@dOT+;a(rMlAPY!|R>b*1S5;>N7}^PV8}L-4rB4wbLKsO10ou zND9l{K=Or+wMW=k0TprzEFXj+{DdR7LTte7@h}L9Hm#Y?c#=%W z{7%`L+yS90waw}!Vhmxg=A!$i{mY`V@%pRYRulQ@sUQ~kH*>-Y%v;0syTS-)cB2VP zHj8C_jD?&vd~h0{#N4DwwCDroitX;hEe-Jz8EKI$39|G+_!HHk8J#5>SWCf~whQ{} zS)7^FcXGRzLn$g&4Zp98#g{;Q-cQJg{RU%qMqg=TTo^yde=wfSe{zyPv5)wPd>p0+ z8*Jfxbzvo>uy6&@8nR%cu1)gMi%X0xCEr6DOShlPkhJq+Dgo$X2Q4oZ$)-h&u;9$B zD<#V#Al*HSrdsJK98OviyM&RDk7`-~(hSp3(L*scr_DmvOTBUah6Y@q>=*HC;d^nI z9!Cs2=rS9OOHXOb`>U22&+FZ*05NSjkh@?myU4A-_I6T8%|jxqW!4kNC?>D&uOHaa z_7S)jzk47$Ov-e5a?6vqibh~I!W%&aF^o=$DpOnH$QWdJ^K^Aat&)XOLuOoRe!;P)dx!HB~K_g|b|NTlbn;BoYP z2W(#`=5QMoE%pNoJ<|D;yR+BW(!GjtS;`jN!FdSi`9R+YNvZBx%9~HxS?ZiDMpJ1 zA4^AQ{!#rpc(1ap^teFrzvtcJ;HbF?FVHF6Y`(dW-0lsKoIT3q>Nc>TeD!oronq>d zaz>rCN}&dOBdT)!{6jU?1eZbaQjJyjE%8BszgSPM6`^uc=K8HGMKOP(XlupQ-?n5T zwA|1h6ls_*U2;P~)E$}2OYnq6xz&^!XT}s}r#X=@xR8bzb_yA?tgnBKBL6 zq!%@a-AvgzMZofqXdBi%zDO|xU;*fc$Xd(}LiFHYk`rszFX%uT#QdgTHr#&uF6+?! zqT4<~)2uEnFFvG0~b7K=GTuFX;)kx!5vA+49vP9*cjsanuAw+^I;quht!P4N%YjOR?C*nn|#mu$NV$(onk!-f~1(a6(nx^GR9obXz%|@YhT0a;t+f|Zr7Er(u zO!nl=Fxg->PC_8`of?A>zxT=GYupFZew?=3`Ein?uh6zDVtb<+mMscEY9i~FPO)nx z6GMf79nNgjPo3-+mxDv~#Ztm1j_t(RL}WrVXpDB0zZ)2qo?NO{q0ku>9d_e;7iMF@ z%uiQqPNuzRN&}+4#PCo`4nquOMJr~#Tvmy#k+;Dt&n6Up1 z>GkG#b0??2Y9h!KeI2yO_SAhw2XLd1FrMG zV8SeXc(uTjHa=@Ed|-%uF^K2};%C}U;jX`5;SLFUQ;K-aU7VN4;P9Vyy}23935v5^ z<&fI-%{5+OI)NHH$*+igiloCG(DXE$_SDb7YXo0+Q$;83NNy{qI`cy!v&JdT`qSZ- z5U>f7yLHM-|KhJn`A9*^+=q?XKsE9v~ZSBCn433M8 zkF$@E6nm!E3N9_uIEHf_qs}&7L6AOpSV$~@m@ibz$^P&6RT35?b1(TvmOqH;Ne~~? z8QWFt3;LsSg9&W9tT5Jy^6uuNpUO>mk8q6WJd2mrEsYA@WNQPR-qFV?k7{qS*FWGx zhPxr_7osncLTk)7S_B-5t|U#*ywe+GBO1W=DUj@bZr}|m%fYte3~?&Su6$ zx0;^Fzr$sgtdeHwZs6zN#X$djax!c9)QlX2;)flYV%t)=KmZ;0NFRv5kzVn(!;5Q< z2K2BeyT`7^bLPVLebxq|AOI7tDir0{DBz%U99wdTAIKV^_$q1gdF?Y^C;0zxvVfhz z*ax8Kq(f1*`8Bx#<3F>7W;j7pVUgxHN)!e}QcpoPBWB4bqtI5YGoS%~4gNObrs}hCmUG;mB@{62 zy-|~Z>Z{G5$^Xo0x6)`}oYjwSx0H)|p85XduE!91rfo3ZGtD((HDGBA8Nj>d6ba@t zKF7O@;>rgbNGbphUzcJlgXIQ;kktCN>=uU>%C2WXUo5(fUrx9E{Lu{>oKqc@)wuCB z*iI1?kSf(ENvcE;s8(S9Rxv{Jmf7DJ^dlj9`u`=VpNO~SHyv+ML_22z5% zD9k1Ol9E?*5J5~9b**UIa3&2?$WzO%*jeGr4R`vu65#X7vSw+ zT=ov7ZBZ#{80dgfex|Bn6<0(KNPt|``9-XaDcXmz`uo+pc=`Q>WIi=A8+3(I>DXqf z7ro_28#EE{&J+Gi@0g_W_>MrpxLE{Q)L0*U4%0(=f(yzi^oSa8AX7vg< z$fr7tzap*P$0})goRTEf8^+h>drgfVd-`9Dl<(#eZI7Nh;NHnx(uJ&!07aZe^N~wh z6+#%FpfMzKAosSG-xgW~&Mqnq7$cf7U+~7{9H2aVT=Ck)1_KtSgsk}^1MEtfSheAS zK8Tt%{~YTh!|a;~zA6>&`tb7+TmCfbqHmR4NK})DexWTj)6dAsAq64bqIInNO3-)A zk39h+^R1yM&tl_{?tDaXe5SUEG3;Lq#Uhm>0o^4JVL88f-A;rBQo8KcK3{4%jL|Rv z9M}3G50k85rXXRvxNhaz z3A|bWf0gtj<9{j-d_(dW#p>3ZQK9}CaObO)b~T%Hkq#*D$ChAWEq8&}bv+$ns3wtJ z&2L`6Q-Aq4xfAq8t5O zqHaGohFsyTbLCj!GsnURn)M6oZhHrb-=JQ#F=8yOuSb_O&^*cfhQBKQiQ)sWKJ^fJ zZVEf*96_GX=C}Jm5k4jsO!EQk)1>ToZ;k&PwID~z%84q(vU*_%giKE{_U42SmI3rG z3(?1*Y6<|$N!fMt-a;&P>mRNNq!asBHRWHcN(Bg%DL~lFm>1bWf8<=J7BiyzO^_0N zJWliV%POGs-G9Jr)pz)0DUid*U1|C4=SGo_P2dm z<^MAX+Dstq>jG0+Zo^R>^pDAI*U+ec4tFE-81?z>#lKxv@&qYZMn*p5jCg<@c+=3MKLUW6Vp z{%`V`0Q8bAEmKfMGSuPqD6+vQYDuk;U*jwQyn0ILDe9F^RJO^iXgW^T75b(E0C}dd z_n*c4v~#zfO3`FoPpT+-7zM+=AEoPuV%hwMmZL_}p#<_Wb(x3AE=y``*ssK>&UVC=5lZoO*lRS)D>4osG`{(X< zvHKize#uLKIxu-ZV&F7wxAvQ!{ZMbp$V=N zJ!$CijGOI>_^@IF3#zB?vl+`reyA7!`Q)dvny#!&*l}69G~gkpBEaJo6SskpF3d%L;Elk zqRz8F+OhSjSEgXL7-Y(f5Mmieq>)WVR0+{vWhll`rprJt=cr7L4pC@rpdwS*OFwDBGyk;}_OC4L`1r=;kGB}W z;BWEBNZSoIzWwef-IAvbpA9)$Jmq7u&_liXSIp%BtALJ$gX$mzE z&QUd_AOKbHlh|kA5W__zUcYY>SN3eAM58rS8D{oV2wQ}HzQW;DZtkNN+ zShM!?>?dJ4pldl@#<*9RDF+b54DYic24bN?)J|w~t~ZG_JrSb7>>Hf727Oa6fy2Tm zmTO#S^B6VGFmIN2tK?pN0`qxcyI%DMrKm@z6D3;RYlg+f-Rgf2H!ytvu1*ZWHYkzP z@)E2Weo6~8Ik(WOzj8z1Go0c?9>_wK#z((@pSbNz!4D&>>Tc@5&*^ti4 zbR{)2zTnt%?*AV4es#k-@`L($_2*g z4Gi;YO%W9)O3d}tvIKxQ`Ej$51~}$z0J^*dAIgT6f7Sa*7aUGpkZdA7wfOG?@>ZFw zC>rNh%X?q}~4 zZY6w*AcR=0_6whG#HxNlg+*om=VeL?N;=aKcm(t*rjIc(7(S(cPo!5`DA> zLQ?^e4mk?mddUwZH>l0hJnT%!-?30Ka5F-kQ8Dv`XCDv;eJ}Z}ya#?)9K+7A?GtXT z?C(k9IcrEgj?d)^;4ez4htU1D#hQ2~8OKxg%sn%ok)%g@mLOzTY3tSbw69Df-am4K z49*(DU+Kq`8k}h-e*G{-cPbYLL#^p}cPzRv+uR+aQ_tR?n2PBwZ)9it*Eb3>~v{_ z$EZ-U>!RKz`hzgNkxm-r`?^ghp&M>t6|UBAe`gxG-zEQm2=-e%bD}y?S{f~FS>Y_< zUfgSvT_c))MN0HKp#Kp6a;P((nfr8CG5sTUNOMGzRt|s;%qN;r^^A!lX&kTYI@I+} zL*A%CnGmP4Z${sKK}YO(rws6Vw68-SY@SLXDVh={pHMZj_HMN&uU}xAl~UhIu-*xO z8I7zPAGZg@Wc7e*CqT}$By$8o-RGjRaY&v1DcHzWzps48*(jy`D7SBd;x#5lO-FAm zR41`0YGdn){!+K}Fz0(GbJCac%X1t|vYTuyfsqWa`&wh;e-_#U4lM(k%LX0(B=LI) z#-Cm^!XZNpv;YJryY+#1Uxx6UsSQ1i)>WylIoq{f9{kXx5&`h+hn*ClR&5UqsUIuYtKn2DThR zRK0GOTAU@!ealxE+3XZ|ThJO+1yqMd3ovRrA%ZBRCvmho=x< z;g_#2hrWaSEcGkyR+N*-wupvRIS^Csv(;YV*x%lf_g<$oQCcDfUBO(F z9iR4SPgHmvn?HyZa0FC9d{b4h%v6w5ruqnfAY#<2*nvwP!e;k@Dw0L}7N(0cX@svs zRh}G?X~GH4v)4<2z)*<~d*;Yzd!(^U?Ry9a==eJZ^!Vl;{)EbGm}m7VL=H2$#X;lG z5Yk0q^)<2Vlu25X(Aa@YL}R~B>#OjMr`~8K9*rs@yC)-}E&oL9{Mz-}U-kRcE64#8 zSE(YbkcJkxPyJxR!-yc>r^jOfDqsGALuUXnMU&Msi*{B?8YDooGKAx^8zWHr8_ewU zp1)a&Vmeb~6c+#rs^d!S&3*x&*ba?t8?XsY$(@`Tacpwrp-R-|+Gkq|ri1GYVN{y| z3SUkHh=r_0$zvT~CSM)sE<@Ej--2C#RrXI35$pZFy|GkZlVI(s3&fQ~3({=^AiYNl zJVqz*IK%~9`YSV{vG@Kdj-GaDw(COY<1oK%fVe-|fD=dB2{e*^hhJbnFd z6tDqddCiv!*mOMc_7BFKz5)~Hdrw>GwLM0k;(ZQuLOK6CcWVa;Wy;~X~vqDqx;Y39qdSjox!THJvLrkWJ z9PhqY&mbXGaf;$mMB6WH>AU059Yov2^5DBBux54^9^Sue9H%e$!u40=oX}{xAQZ^o z43+XQuZ?(CF*kyeeR7GzyQ7MwM&Hu*go}{FlJ-;q7NAvhHc{+B#?CTL-(K}vlxegu zIKLh^hrGmde|bF$fl2j54A)8*hbVC$XywtxtzQX1c1XaO(90;3b#^o>yjwQmj7WzO zTlka~5-OXah|?k}C-3G3B(cp;CXb&&BzDQJh!Jpv#u=}Wm{kgi`oPA|AJrvCLfnIN zmm)q%w2JjzlGh{mydPJ_sj>}6^2b$Yz%KG=l?|yZNI4|(#M4k#lWs|2A=3X^6E$lJ zp)^ESmlG}!31BMvD$QwkFCd~P32?XXhF;-(h&zBoc*;dWyB#n5iGhUC!;=RyP3_~J#l%WNhv9}vFx%l2yZPLUSeVR zHwTL!ha%o4SKi!K)5o5+BXN9(Z9cxnw)+HBn|`2VO1N-jM=pDBu=Fj;bDm8l^}gfm zOw)pqqU0z6(Pe^uhL*Oi-PLe;Ga4l}$K`P*dH_LC>%=Ud-M-gX3rndO57?`HYdW|z zaL&OAxfzl<7!hpL8|bkQ9TKD+@r{7W(u|IRI=Xy;PU;Vk zv#E2=kL+sN-d2!nsf4iccm&yMgr|FCA;q-?K9mT5==U{K6jCBElSF!16Jxv0l?t>L zRNbh-f19rQqMiO3RnE@15;zi^F_Z%aYz4!lNI_b2xQ==I*N`IDS;rf2_yTa zOt}{!2*S_adv>VN7afQJ;VqXen7~}xtgSYRXQF(N`(lT9;HnoS=%YB(H0xHAhiC)% zb%zrQHCEVlj2$1l2Cl$qneA{#`~nw~8Ao*z{Ieov{ zb+0}lX`g{WP2P>)0@?m6Nyx^ICp+^tud&Q$K$cKx%(UwdWqH2@{Di6~_XY8s99ZX^ zX!fXYhoB=E`vN7OazIu}C2wsK--sYAFp-?;wGx&)fMXywR4NyBfI2WGjKv$+$zE zFuz#aZ|%UqYDLcPUq9+J`jWjJb`3$Z^yWK4zp&_teg=18hZk9f=|>ztPefUSq6;2C z)BP|G=+-Qis?k2Cmq9UkZrv|hn*W82VCLdX-!5y)s~`5g_HrI5&5L^urZ6TxMfncF zY&Fu+XI&uDMUsjx#lHj~cExRIj@c4o+g{d}qB`N`1CAG#=ZXDur}cqbcaSM>;4*%n zg|QO&c_lLWj@Qn;WKoKF9sTu<-`bmwTsW)jf7ncN%%Oppx>jIH6{uQdW|yE_TFwrF zr3H(ZL`9>##yUA1X!q-V@u-t|Ip`Oo++#1ahJ+u2ki)2()vA5-{*)!UqTNw-9qgif zb>*2)IFK`(@vX~c#svxVj0!pAWyN}D2^7q=;2QS!lf3RSSVy9;ly!pf zl)4t2+{u#y^W>>l;)++q613+R{)cbI>?c%}7ob1@0(g^|!Vnx+gCCxzObAYN-$xzG zVF$g#Z|{+P?BhK9|C#&Yy1B2ErEIyz_@WY^+ZG2lJ}AEP%Crsm7G%odMdS2ywYa92 zzc#>u4e6BwJ$SPtq_)3g+S*hxhc0|P*}OqZ-6Sn$`(%Z%I-fse@*u!AVRNNI);T5d zuz-p`M=V7Ob`Q;D3+E$s=1z0dIG<*QCS;@M)nKv64r>j`4*19I;-NR8rVD3;5l2ze z*u0^GcnS2hwt)7or|0NcXh_oMhFsIkI|_+~=)(6?1_1yTj!rVGi|rQ2En8IvXU~46 zaDEQR67bQ~BqcZbXA~PFPqoUjtbql+La+iwfM?aYaj*%A58FFFCPp@5tU9%Uv7FR0 za88%k=jI+qx5tLbVHuaYH`r7UUKA4&X!vv(0BE2#(kKOj)*{SmAlQoFyGxC|n)Nr`t4W%-ES zda59ALb->7HLmvv!2?u~@~}WPE1u&N&qHsdfAQ#qi;3k(`Pq$+&t@g0KvM1=4i*1) zN-3VlERkQup52EuJ)G29J;A*JZ!)|yL98zOK4BKxg!jZoj}?$C*PI!B`~e{?luKVU zW;YqBAoVuIYGQ<*LSzc6{;!IS@%LnU9N;L#CNuJETQTu^;-`JJGP#8%@y9`hrbY*B z{7$w0zGdJrO`>#^agC>DTsUMYpsF8Gr};y3K2MWS$m5?>SucQMJ|Yv|FZb|FD03qp zVJtJy)6!?rRjELjM6M{yH-r%cAZ?X7Y>)s>KHE0`CFYo8R1SoQ{dvCBM8jIqi|GsgKL*H=+IJGQnh+ZSye|If$?k(uM(Y|?UOdSaFfXqT$GJQ7! z@$iNom04&cfcD&W{PZSm0g2$IiO(OsT&4n1+ckF?N1D(M(X<6sw+|$C=rsA&=e)Fk zZQ6!mgf4O;5^6X0q7nh&MAY9r3xiy;O_EYqf&--L$~^kwTHHg^Nb&8tH3%tg(v{uH zG&2r+o(WXB_#5ghV)e$bG(Cwre%|VyPM+xU|O@I@GrZL zvV7KlGY#eQ5tkH?|JLg0b@P%OYBk}$h56}_*!N@FY)^e=%?&O(1G?#K_6##q^?2jt z)7@5Vu;cP4Hao4Y;h|BaY08Nrhj5LUbL}%QT>YLc&i2shhShY&_h!7*P@2LD(E262 zESTXyLf!W+E_n*`8VTM1{g94gr?OjxiPQvFml@@l%hf6Cq*)E!B~Q9Fq!H=^1TbDNcw5yrWA!y%m?NA)uLiR2YI>im)ktzfM&N z`1RI}#P}`h>hOH7&sp%v`S2i?2L4Jniy{^Y!lPs~_57DQ#ojJj-LLP{fJjD5dJyM} z4wzFs6*^O4l-ztk9Q(Yu)hFqjTGh_7Z-LBc;apI;o`r0R(yIn0A41Sv${k$x$KO#i zz>_MsFu-L*lGS?Oyx36iGKu?=Rs?DxS*>kRa3!aQvtKcgPN>;K_J>${9Q*hSqF>VF z6YlhM!^%wAp^GvXhp4+FUzQpgF~-(WV4Pu5$ae)JewW>Ejd;i#=B#-Sok_Kvrl!1q zG0TCsnU8-M)Oewx%AFJlvOE$lsU!16j92r>ykL zg8zuT*U1x1F=+zU18ihS99%UhG-dUh_0^S5yIka7%ukM-5=AQRti;07pz)-7-&ZV< zYj|y%F(jc=xp@&>rKc*T;{eooQ$EGno*JUssSVLe76a!M!SA3Z1@Ugp=!5t;oD(8B zijRVvUR>I<8nWsSrc*i>YFwZ~!!I>aYuQgXSCr(*R@GeM4V$#XW^y9H+5uJ00CANu zUcpJQ*I9;-8=M*waK5wj?+8l6FXfe!H(@z96gr{40zuEWR$?N;M=3u{kH*qh>t2g{ z+gH7DdU0?8$_rW)I$GZV40j1ph;5-d`{ql7YXPa-;;f}Qgo<5R)4s=(yN2)xe>H?r zjNdofkr8i6VP8e?(8lGH>Vn`{8(bwHD@J*@<{vai0Q)We5?!WE@1mVrtupls*Y7o~ z+iQE_Rdm*~AzmQ>7ff&+XR-HHm$+)?QOz%*Uh*W|eX!-hRl8M(_J_7p<~S_GrlX*I zVJTr6qhEe91uuZk(SJ3HtY54tZ^OK?pk%av&oKO8U~$Sn!RhxcY^?ivOTR_t zD+lQ>1>^W(J+}kqWdbD7?F~u0sabE^xrd3O&uKuH-2w{D3Wb9v(q^8d5$d#yUw9lN#G;DhRRX`_Z-D^TKAnA7;V1*#OCf z#DiC{-k(&U>gRJoC^Qe3^}bF8n2DpkrO#4oouZq)tWdkXu!`qel~C~}==c-^P5Bha zQh5eq2K4JkGMrffQ^psxP(W~1(L;ww_F(sXu~Q1hCcS3|S8a2OGc(bj_uDV|B2jL{ zf_cw4ph__q!DO@1pCXexAsHP<3D@KDfI+%Q_!O|@nmt@}1ymD`HPJsw@$(oX?Y)DB zdI$vG|A3Y^OK7=VON0tR_4ze-gp9`sK^*rTB-rq*i&h{k;ftW|b~;S1hecT;nrc*= zoZ+NbHA}&DOMA30R7);hx;eux$h6k+9Ucexyw0z29iL-a4w;kkjhTRYp!8eL>w>Hx zw$F@D1MXA#oMWpq1=m?FP)KNQ#W6k{o=M2p0n9oalxj8_rnWSej1pPI))J3|#Z!nA zxuY1_4e=Mc(dv^pw_n}Ne&)e-)ol&CdX;ega4|C57JHvryE&LpTKM!=;D$W)+noxx z`Eo{YN(dN+Q@6mg!L_tx((9xMhX^@t&zr(teL>5pV0ZXgC_`uvN-#*P$&CEb0~AMz zwlba1lbfllVFqZC(_SSev7`XH?s?=pLFSqIB3{}lp11V+XtcbFp3dvU9_nz}W)n7v z0R4hBkYxc=zd+gJ(=WtrUn7HV<~|nyxfP<%lJqo~d9AukbGy8RbrtfpAkyF$zun6) zf~E`W!9Eqw79P_~<>w!+yX`rW0Agbad@?(Swl~(I@gObV-LifA(1_)vl16=MJj+PC(aeobL8WsXjlGl&R?$Y{|pdE}3%;$1k8 z4$I|=Y0F`9BRgHLDuw?L*6O7}a)W%!SH;Y#_8Vq!^exDcK7I8#JPQ8DX5`l>)0^6G z*N^WqM1a0JlhK{|UYO4M?l1~tXzln%Dgfzf0=zlo#c1Z&2HeF{a0vy5@fC>uT1xnS zoN{D(vkFlO4*-{?A{wE4Awio0&~jJM~2S0bc6LN*@|rT`m_3RmT8 z5^~HL3FIyTWSV!a#dAL3^TWrT#pOdahsIIm&{LV6Y`|T)R-?RXMHhgat10u-9dPkR zXhrkAoa2cOU1wn##1Z?Xz@p|Dln~|M@c?p`fGoc2im-37epEobw z1^5k7_+RPP24Jeo>{B=db5Q6djBw~sQY$6;);&NxC*jmR4^1&A_eNtLaZpn01xlE8 zo}ECJ92ixDvUFWR5v)-T$a!UzTY>(cUFzrdkOakKLNPfKX!*8GLjPzaAD9{ZY}hkb z^^|rT1UP$E7a6)e301Pia9d7T#-K1_xX#CZ7tC{27T*><+n!D9<#XE^0e|zFE@(Ep z&+Jh{$C0gk@d!=LXav;#b_Z0n*)-Flo5ouePO^C8k5nb!s_wZ=s8QsBJ~}UUWGMSv z7|C*yko{9HP>grP@|6)lJVIxbJOSR!8$`$w`|H5nokQ6X}5ImYwOs(P zipdNtginqKSI~o~DBYay=uG(gDDZsbkw6`u;!9 zT_o0vD*$RLqj>fJQe@Wp@#bF7ar^3JWy+aY*%yOUiO2tRmlOa1&Ah*Zi^hKID^|?( zfg|ht7Bf(93HG*F80noZ_yV8IHYotazDN`r>GkAkV5D$8 z9t;HO3x*$|nDGQg zFy2tasbt5E_e=jRn*Oonmi7=be;-ue$Q5u;x7G@44{%*~9G`P0Z^_}V-wcY1uoUqO zwgqUzFk0S~C(_zDUI#_5Mq8Gu$tI6ZXAvcLcBAnSp#@es8rTQ885>3k8V+z4!IDf z+yU9k5Iiak25ohJ1=4?YULsNg9iW309z_SubY&$8pJX2Jk1xeO*BAbTX-%r+Oregq z+`1fkWn-eEtcyPHHuXsY&155AWe2pOUwp=K=PGf2WI_&s4^~lHcS9kUn+0+~(2daU zq_1&H{^Ts}WzzsEz_g%xtC(f0b)Uu+`ZIw0d5U%_^Sh6+xljd`vtHL{cbjc&pAiN_Y7gnQg-~$S*a6VBYkRf?r4y z+ra>3fxU#_4%Cq?EIaBE{M)|NXF9Kpxl%Z40G9Hs$^|BBCe}nM71p9((@|-DAJ7sM z=(eYuXOL|w(KXQ?mtB4b|3&`GtxEG!+&h8%{^koJz!_=4CNGIP^ZLu&*vKZLvkq`$ zJ*4|!+Av5ooCsYxanMsz9Y8UrN=%+W{dFtpeRi~2|@&S6LH0d3%3aEgA<9NIH6HtrCqoDOP$;p+$M>J);N&PYmFNovky^$WWYwp_%;40G9+e zuPPl^s!`>E?SPlvz*o`WyODxQU{jOUl_$mz-4%ci>S*xGdR5vxUa(tMFN|Wf2BxQZ zX!dhy3dA3ieL|SXWr>nY8*Vav?3ei}JG2~FJs*DtN1z}lbeT|JhHAA*gHJuSJz2ff^xwdAx)tCU4JtC8?I5Ip%gcbd z2CJ|>us>K0CdUu%s|wg}WJ&bYEam!g3_S?A6Yi}m{$#_25KAPmeSJ8}B)N_@PNDZ= z!!-g9f-HSr&%&XykilUz*|_|5)Q$^lJ*hsD0NhC9ND;Prfu5^E*gdolmF&O8oY~H1 zR<>ak1e8o=2zQYo(Ej~Uky|m~6dkX9ghjT5;l!;+?e{sJHtC21_Zr~bJh8AgoF&o_ zW`y3TcZah*jGh-vfeFHG=gx(+h$3$t6>Ee<#MQz*-eo^J=0pfbKUrN9w=Jk3qUz{5 zp&H#?Z}VkwKJY4`uhW2b>SUgh8zj{D8W6ds<>i6i2tNaxQF#QjKl7Ztbjdj^(JHNS zB-`i`+*w>hrdDmP9Vu2O=MB?YmsD^L#lI3K-j&qtQa$gFMT4Q*-wWN6Lk?Aa{-@)*m9nqf;F&>ua--Fp4jIW$mdELPiD_2O;j!kmlQUF zk8%qxkjMo$lj(wabFQHf%0M!If@V+l4;~)e`r1TogMyq%Sv(xd6@eQt0VhYpHIg>e zRVu&rS?yx&rK0nM`wd5p_ZR4oqmK`%95!LO4kB3|vK@YV6x{p>x&1Fs z?3t=NqJ3MAGChqFF5=i!s|!;JlN0Umcak@a8a>jm+;q50w^bsZ%&`moV6QRhC+9>& z`_H7oyxeCoMg0q}U0KX{#`u-wY+q|-9q zLjD|mkethQHON@6LkgGui=&Tlj4@<{GJGiOuBvi05=*#ohB_-wLCEXFtAlihNj6z1 zG8`ml(B}zeZKmR3BpPq>q=92C3gRf&T4}=;0TeFU5Sn`)%%OCR-xMN4*aMig=dAx} z>J@gVSPrSWZ&l_j>tq$`>vs5UuN;UEcC_|vx!`AyN2fOn{OwYw!RGruc2(Q;H4>S% zV}=_?fpp(36JA}46cF_$6e@1yjSWKR%>z+{O*1>WK-g5~JVK}4meV-g1KKq6xJ$b? zZ^q6rUiK7WcANhTTPfY=WJRnl&bFJ)~y_neM^arizrSDVP$jo3*IL?BoLjS6gniW%ggbTiaj z=!@Mh|I0iI$!bGgXcser4?*JTLa*4N0G}E4Eg;9sJ*1TGesv|1@4F$6+$dMlF;gNY zd_hq0GIsdmI4<1q!o$;iN)X@Vt*|C8f4vTZkM4G;g>{YFI6?(tS;YvXK#KFfr-WT{ zr$cMU1f`XcIokMSLa2%QaS*L8hzsqHspJM>@W|e~u0N^L+dfi`uYsa!1MIWU2900d zrJi6`ly1O!A?BbM!H|fYMhU$6)>Wx?1Kc9SK!n7t{Mb@rUyoU}9}`rt_P3ysGjkBX z6(@aX4P8$81;UDrX!t}JG{hGw>437&C8h?rGU?iYWsl1&U^HLIvjo;&aX zOh-a4lx@IPB$*$h7bD_lkq;Qudbl+JQOuriFQ>!{XwPrr_bF58FDK|f5>37U$p>10 z_hDz-%e&dd%ap)QIZ)Th6g66rzdMw*-YY*q@%~mj9|N6zJmdpYRhZ8_Uob}Jh~c31 z+ThIdg-Bi~o;QL`#It*&!XlJ);iD|Uz66_5;C3W$(MJLj4!`pi9k)mv+}{;orPL?} zuD)SQ;?8B`+JCtQhH$o*y!Knjl6Axd_y~|^$BqTEr+W)04b?d7w-gFqZMJ$AK?(sF zcchb?v-yB#he!14|1Amv_k=M;DWSAeA)Jru^tR3iP%_^_aBB9wfw_!0Xd%y|^Xh_0 zDzLd6kAu)lf5 zD~S@=rHAUZSwInda9DG!GCnA(OdPQv<`FN&?sn;Xtu+gCDr?ro)!Ul_-}`G+lH3K; z-MztCt!j4ZWe)pm*-ES=(Qx`TK$LJNtf6ev#8gcyB`%hJ+nC-n8CC|8 zo&mqs1blhCC%>Kn#Wwf{suo+waK#&inUdgj`OtyOfgBWuRF zIG2{j0000000000003Dj$MUjsE@Ub*vXXmC@(A;^(BD#?Ajdd&V(m9~Ju*((|8=w( zjO2|r%|9$qMoVbm96ayjXdcO2^RvI=nszEa74KAxL;jI~4}NTceeD^dJ9u~ken0>K z000000000000000000000000000004d@8!>(Yn+=WWTvzffA&FmMlwz)qxP&dkM5I zcysaa$qNSXumKeNvIRRwxsXh>iSFsvh33KM9c5soFw$fddB^{--wZeB%({i=QAh%M N&;S4c00000003tFZ_)q& literal 0 HcmV?d00001 diff --git a/site/assets/seal-stone.webp b/site/assets/seal-stone.webp new file mode 100644 index 0000000000000000000000000000000000000000..db35de81c7dfd421b51ec22acf227c90e7bac807 GIT binary patch literal 79110 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 literal 0 HcmV?d00001 diff --git a/site/assets/seal-wen.webp b/site/assets/seal-wen.webp new file mode 100644 index 0000000000000000000000000000000000000000..f6e03575541f4379303321d298ba9e267e978a3f GIT binary patch literal 46312 zcmV)(K#RXpNk&HCv;Y8CMM6+kP&il$0000G0001I0RU$K06|PpNWp^u009gMjU-8u zAz7&-}dL@?n4oON)Kc2J--oG?_bE|!Q4j0ft>Oh%Zliu^{BUP!z`+%yRqUrxwRY? z`*`f&Ft#nNZS3ymCf=>&e*n|8!0f;4Sk{O)r+hwD#~6j*|yBKGId!S z_VJ2md1aO6AMvfr2X$F{z7X5?Q1d8tGrj2a(^gikY6H8JGoEi6uwWa#)!VjFwE_D| zz3AJSk6+c7e$e9A=y}+Y2U`2e$jYmW-u$+Wj4pa*+sJ-ePcC`pk;PA7?Cd69_dD!8 zfBL({=|5tpl@=L=DxwmWJufnoqS7)*E6vI*?f{~qG^(H|NQ2n_?O*rD|KBSo@&7$v zGf5CTWP@jhd?stx~|jDnG|8mA1T0-Ri1V)at7JKKJ*%o4zfF ze(t@iTh9Mk5itRj_y0d5NuN(uwOy%M+qP}nwmF`uJq;@9RIlyblWm^%53uc%x3S(m zRX_Fn=JU%heT|3-@W=nZbSJI;eXgB=!`+GudODm|A)t({id6=C25paGha=clKzr)Y zLFwIE?X3_ysF1yP=<&2l1{K8Kr=lIK3SmgVbGKHjb`X&v2_$<5NV2c%^Lekeu3@b! z0n~n{y@Rl6f4}o*L`(qw-~azqKstMX20H-iAE0v!&_Dqiw7uvY19T1nI$O}d%jmoh z9wNfo6JhWZJ}QYokeP6{gn@em35jTM5P*mhpFAa@D2ft~D~h5-fQX_fiD*u~GT=n? zDn(J^vA8ne?Ptu*KE8JHteG>Xi~u4^-^C+xiV}01j>n2ekG1t9)Zu|DR&RBd5@`{vA&X_ed5BUj2iN}=aMMViE5zRqF8R!H8 zjff_c^O=a|0H8rYK>qAi+tca2I}fH+RcmNSYg)P{m8wZ=YWiUH);evV=>u=7n%2}> zr)o1UtsGrh8qT=?h2}T9_w{c4_~_+3(we4ewT;_8Hs$TQrQv4l+iMD@{BNDA^{#Dv z{1VK4t4Y=RR2vWPT^&kRwX?Wq?f5Bws8`j-)`tDR-=9{~2RD?}XtlMfRyW6qCFbs`JtoqF#nT}=K(euq)u3fHGao22bz4w@&k`hSC;i&b@ZQYcyS~|E zvP|tP%S;x=U&gq@T{`bucUKW`#h+cB>pIiD=ku^oPg%bwlO$8OWu{KcO#LjwgTUo| zTE_Z~%h4p`)IxwTabKRPpUv%bS(~SGJ$NFq&&lxKddB|XiFGYjAi`qAw+$wArt5`k z)4I-n_!Jh(rnSNW)rSPiIBy2B9tI)TXrUIK)=X&e=g6ym=*7kzW9X)dCrJK7B{ysX8o z#_H;kLnvqmx;;hF_T==+4BR%(M4urKp>_etcx7>Zc>W$s%qY<-xBuE^LU60$T|@NA z&CVBRgv0lqiUc8daq2d;+qUid4;_kZ((pb!I`-nThj35hSq{% zzZ8gmKZ?v!tty3M%bGz0VI{2DdCE&~s~IpIxqQP_8)Zc=yXP)H=i_&61QGH;zpy|| z@9PSpN>8qA?lD2~(nr0a>DFU6w>J>or=ZAiInj&xArM@aM`q_t5^Kfe;(Z1 zy}AAk=dMM~B5H75_WIE@es2Dd5paBR9^@g)S!x8f)$>~IK(-15fV^fG2s5zy){h*I z>X46a{zc4{(!$`B-HAmP=MvF57GW@UyFmV za|Y!dLzo3BN&K}}iVTIxdC$JKHkk>K35j;yzAF-dUF#Xk0AXqI6^qGQ%9_eBu*%m3 zz;@lVb=K%*6@{9yNfGIiby;emif24!^>Qlz*FW7nb=G(~^RtsMn=a0yikWXPL;`Lg77;n=e1R{8MX&+1ONO!<@NU3fH#DF30WS2P}Q zpeO+(dVUhsJm=?jtVRJ8b(qPue!gHtl^(ojhY``m`I$z?qMb9~jqRbW5rFSqSas3u z$zj(ty2)|bDjL7h8uFFJ6<4c#`r&B^(+t(s0d{Lft#LCzLb!q8& zy=kikVoqCN^`7_F+*;Iv@-WVF0fJ~CNh=_H`@sOwg-=i|{p>fID1i9HJ(HjwVHqee z3zSI`0Bl!KLmGq!o0|@#PmH;us4|EERpWHaSFc_5z~v}gshOzB8Q{rj$Gsms6GRlg z`=l=r)BAL<5$b_(6{vh|BU0y_GXghoOKs+gLb`bZ)xFhZ%qp=3qGKy4L+3XhGGYc| zlZhqr%xN|`IPgn$!x;b&qUov)^kdhIzGg5A)DeWrZ`RT2Pg$P@AR?F%Dg=Ip!sOrm z+Sst^T{xC%|ES3XD6YNZCD+u}!K|YsO03g>NWcP4cFbLCg}*^({Op}Ibiuw*=$IsB znMo30&BAjQ8b7(Ol7xG&zGh!2K&F=b6K~lT0SMuFdqM%U)dC(mghQu~hne|!)Dx$N zhZUC#z+wL)T9Jq>JN=uSWu`ukwyi6{k9O2i-E%{llWkXL+p^uIvH&YxCX`LB(mky! z=N9DxrG6l4;15k(HT_{DM}G7Q@3uZ2J1syE?T~a9W9RAse&<&N-$#8X31fdY2XoqElCQ`6A34j>4`>BGFo?xA`>Nq@hgzSBnKN|{0 z4B}UB-=1(-c&ZTBsfazCzIguFEkl7s+gEK*SU7E>+S}HyDuSGZ$jcrx2G_0H5|I$9RSE!LtaDLx zhjgLJUl%7)S*L%o|pu{ zH{49mg&%n%t^i|DE`=_F*9{5*2;+u8!dGs2D9A_ud{;80`&M6aT9f0hFj=3?t}iJW zVYD6q`Qf+HoT8BtAYrHh(KhN`Sa@VDbcpG?j%Z<*5sA|{5OBP+jwB{Tw)whQoKIud z*?_s}X7y%M01##dX5`qk+BG