From 844b91a804ab780c5c2d72e602e8efb78a19f138 Mon Sep 17 00:00:00 2001 From: Sam Valladares Date: Sun, 12 Jul 2026 06:20:35 +0700 Subject: [PATCH] feat(dashboard): every organ is a living WebGPU field (LivingFieldPass) Turn all 17 sparse organs from text-on-black voids into full-bleed, moving, bioluminescent WebGPU fields. Each cell maps to a real backend fact; verified live on the real brain with a decoded fill% + motion + zero-error probe. Foundation: one reusable LivingFieldPass (src/lib/observatory/field/) does splat -> separable-blur (render passes) -> membrane base coat -> HDR cells with orbital drift and a CPU pick-mirror. Each organ writes a ~20-line data->cells mapper (cell-layout.ts: layoutGalaxy / layoutRings / FIELD_HUE). Organs brought alive (fill% before -> after, all zero WebGPU errors): stats 0.8->80.9, observatory 10.8->81.4, graph 12.3->82.4, memories ->78.4, blackbox 18.2->83.3, contradictions 1.6->69.6, dreams 0.3->64.5, settings 2.7->76.4, reasoning 2.7->39.2, patterns 7.1->45.6, activation 10->64.9, feed ->89, explore ->83.3, intentions ->66.6, importance ->73.7, memory-prs ->74.4, schedule ->37.1. Backend surfaces: add api.memoryChangelog() + ChangelogResponse; surface suppress/unsuppress on the memories field (shift/alt-click -> scar). Tests: palace-launch-gate now asserts fillPct>30 + isAnimating (not just non-black), with a longer settle for reasoning's deep_reference and a raised timeout for the curated tour. all-routes-smoke treats settings as the WebGPU field it now is. Gates green: check 0/0, build ok, palace-launch-gate 22/22 + tour, all-routes-smoke 20/20. Protected work untouched: MemoryCinema, graph/cinema, observatory scene shaders, node-renderer, palace-map. Co-Authored-By: Claude Opus 4.8 --- .../_app/immutable/assets/0.Bor8S3Zo.css | 1 - .../_app/immutable/assets/0.Bor8S3Zo.css.br | Bin 10347 -> 0 bytes .../_app/immutable/assets/0.Bor8S3Zo.css.gz | Bin 12350 -> 0 bytes .../_app/immutable/assets/0.CLR80qKm.css | 1 + .../_app/immutable/assets/0.CLR80qKm.css.br | Bin 0 -> 11640 bytes .../_app/immutable/assets/0.CLR80qKm.css.gz | Bin 0 -> 13795 bytes .../_app/immutable/assets/12.BxoW8Jf1.css | 1 + .../_app/immutable/assets/12.BxoW8Jf1.css.br | Bin 0 -> 1091 bytes .../_app/immutable/assets/12.BxoW8Jf1.css.gz | Bin 0 -> 1276 bytes .../_app/immutable/assets/13.Bjd0S47S.css | 1 - .../_app/immutable/assets/13.Bjd0S47S.css.br | Bin 180 -> 0 bytes .../_app/immutable/assets/13.Bjd0S47S.css.gz | Bin 207 -> 0 bytes .../_app/immutable/assets/15.ChjqzJHo.css | 1 - .../_app/immutable/assets/15.ChjqzJHo.css.br | Bin 1039 -> 0 bytes .../_app/immutable/assets/15.ChjqzJHo.css.gz | Bin 1180 -> 0 bytes .../_app/immutable/assets/16.BnHgRQtR.css | 1 - .../_app/immutable/assets/16.BnHgRQtR.css.br | Bin 109 -> 0 bytes .../_app/immutable/assets/16.BnHgRQtR.css.gz | Bin 140 -> 0 bytes .../_app/immutable/assets/20.DKhUrxcR.css.gz | Bin 2464 -> 0 bytes .../_app/immutable/assets/20.Duj1vJUf.css | 1 + .../_app/immutable/assets/20.Duj1vJUf.css.br | Bin 0 -> 88 bytes .../_app/immutable/assets/20.Duj1vJUf.css.gz | Bin 0 -> 140 bytes .../{20.DKhUrxcR.css => 25.DKhUrxcR.css} | 0 ...{20.DKhUrxcR.css.br => 25.DKhUrxcR.css.br} | Bin .../_app/immutable/assets/25.DKhUrxcR.css.gz | Bin 0 -> 2465 bytes .../_app/immutable/assets/5.DQ_AfUnN.css.gz | Bin 148 -> 0 bytes .../_app/immutable/assets/6.BSSBWVKL.css | 1 - .../_app/immutable/assets/6.BSSBWVKL.css.br | Bin 2562 -> 0 bytes .../_app/immutable/assets/6.BSSBWVKL.css.gz | Bin 2906 -> 0 bytes .../_app/immutable/assets/6.ksI6gQcB.css | 1 + .../_app/immutable/assets/6.ksI6gQcB.css.br | Bin 0 -> 2312 bytes .../_app/immutable/assets/6.ksI6gQcB.css.gz | Bin 0 -> 2626 bytes .../_app/immutable/assets/7.CCrNEDd3.css | 1 - .../_app/immutable/assets/7.CCrNEDd3.css.br | Bin 89 -> 0 bytes .../_app/immutable/assets/7.CCrNEDd3.css.gz | Bin 104 -> 0 bytes .../assets/{5.DQ_AfUnN.css => 7.DQ_AfUnN.css} | 0 .../{5.DQ_AfUnN.css.br => 7.DQ_AfUnN.css.br} | Bin .../_app/immutable/assets/7.DQ_AfUnN.css.gz | Bin 0 -> 148 bytes .../_app/immutable/assets/9.BBx09UGv.css | 1 - .../_app/immutable/assets/9.BBx09UGv.css.br | Bin 110 -> 0 bytes .../_app/immutable/assets/9.BBx09UGv.css.gz | Bin 138 -> 0 bytes .../immutable/assets/Dropdown.C2Z-7Phd.css | 1 + .../immutable/assets/Dropdown.C2Z-7Phd.css.br | Bin 0 -> 818 bytes .../immutable/assets/Dropdown.C2Z-7Phd.css.gz | Bin 0 -> 988 bytes .../_app/immutable/assets/Icon.tTjeJXhC.css | 1 + .../immutable/assets/Icon.tTjeJXhC.css.br | Bin 0 -> 202 bytes .../immutable/assets/Icon.tTjeJXhC.css.gz | Bin 0 -> 250 bytes .../assets/ObservatoryStage.CKoSQgn0.css | 1 + .../assets/ObservatoryStage.CKoSQgn0.css.br | Bin 0 -> 760 bytes .../assets/ObservatoryStage.CKoSQgn0.css.gz | Bin 0 -> 905 bytes .../assets/cognitive-palette.BALpZUFZ.css | 1 + .../assets/cognitive-palette.BALpZUFZ.css.br | Bin 0 -> 351 bytes .../assets/cognitive-palette.BALpZUFZ.css.gz | Bin 0 -> 438 bytes .../_app/immutable/assets/reveal.Dmxpik8H.css | 1 + .../immutable/assets/reveal.Dmxpik8H.css.br | Bin 0 -> 238 bytes .../immutable/assets/reveal.Dmxpik8H.css.gz | Bin 0 -> 289 bytes .../build/_app/immutable/chunks/A7po6GxK.js | 1 - .../_app/immutable/chunks/A7po6GxK.js.br | Bin 565 -> 0 bytes .../_app/immutable/chunks/A7po6GxK.js.gz | Bin 634 -> 0 bytes .../build/_app/immutable/chunks/B4yTwGkE.js | 1 - .../_app/immutable/chunks/B4yTwGkE.js.br | Bin 304 -> 0 bytes .../_app/immutable/chunks/B4yTwGkE.js.gz | Bin 316 -> 0 bytes .../build/_app/immutable/chunks/B7CfdQuM.js | 1 - .../_app/immutable/chunks/B7CfdQuM.js.br | Bin 646 -> 0 bytes .../_app/immutable/chunks/B7CfdQuM.js.gz | Bin 769 -> 0 bytes .../build/_app/immutable/chunks/B9l3DI-J.js | 2 + .../_app/immutable/chunks/B9l3DI-J.js.br | Bin 0 -> 1518 bytes .../_app/immutable/chunks/B9l3DI-J.js.gz | Bin 0 -> 1675 bytes .../build/_app/immutable/chunks/BKh9s_e0.js | 1 + .../_app/immutable/chunks/BKh9s_e0.js.br | Bin 0 -> 559 bytes .../_app/immutable/chunks/BKh9s_e0.js.gz | Bin 0 -> 617 bytes .../build/_app/immutable/chunks/BKuqSeVd.js | 2 - .../_app/immutable/chunks/BKuqSeVd.js.br | Bin 272 -> 0 bytes .../_app/immutable/chunks/BKuqSeVd.js.gz | Bin 302 -> 0 bytes .../build/_app/immutable/chunks/BMB5u1EX.js | 235 + .../_app/immutable/chunks/BMB5u1EX.js.br | Bin 0 -> 8629 bytes .../_app/immutable/chunks/BMB5u1EX.js.gz | Bin 0 -> 9686 bytes .../build/_app/immutable/chunks/BUoSzNdg.js | 1 - .../_app/immutable/chunks/BUoSzNdg.js.br | Bin 315 -> 0 bytes .../_app/immutable/chunks/BUoSzNdg.js.gz | Bin 343 -> 0 bytes .../build/_app/immutable/chunks/BbCqB9Us.js | 1 + .../_app/immutable/chunks/BbCqB9Us.js.br | Bin 0 -> 150 bytes .../_app/immutable/chunks/BbCqB9Us.js.gz | Bin 0 -> 170 bytes .../build/_app/immutable/chunks/BeGBxCGK.js | 238 + .../_app/immutable/chunks/BeGBxCGK.js.br | Bin 0 -> 5120 bytes .../_app/immutable/chunks/BeGBxCGK.js.gz | Bin 0 -> 5693 bytes .../build/_app/immutable/chunks/BeMFXnHE.js | 1 - .../_app/immutable/chunks/BeMFXnHE.js.br | Bin 611 -> 0 bytes .../_app/immutable/chunks/BeMFXnHE.js.gz | Bin 652 -> 0 bytes .../build/_app/immutable/chunks/BfiOPhbz.js | 1 + .../_app/immutable/chunks/BfiOPhbz.js.br | Bin 0 -> 310 bytes .../_app/immutable/chunks/BfiOPhbz.js.gz | Bin 0 -> 340 bytes .../build/_app/immutable/chunks/BlVfL1ME.js | 2 - .../_app/immutable/chunks/BlVfL1ME.js.br | Bin 3142 -> 0 bytes .../_app/immutable/chunks/BlVfL1ME.js.gz | Bin 3497 -> 0 bytes .../build/_app/immutable/chunks/BnXDGOmJ.js | 1 - .../_app/immutable/chunks/BnXDGOmJ.js.br | Bin 516 -> 0 bytes .../_app/immutable/chunks/BnXDGOmJ.js.gz | Bin 582 -> 0 bytes .../build/_app/immutable/chunks/Bo4EDkTQ.js | 1331 ++++++ .../_app/immutable/chunks/Bo4EDkTQ.js.br | Bin 0 -> 108183 bytes .../_app/immutable/chunks/Bo4EDkTQ.js.gz | Bin 0 -> 130784 bytes .../_app/immutable/chunks/Bzak7iHL.js.gz | Bin 98 -> 96 bytes .../build/_app/immutable/chunks/BzfFPM53.js | 1 + .../_app/immutable/chunks/BzfFPM53.js.br | Bin 0 -> 515 bytes .../_app/immutable/chunks/BzfFPM53.js.gz | Bin 0 -> 579 bytes .../build/_app/immutable/chunks/C2CaJvaA.js | 1 + .../_app/immutable/chunks/C2CaJvaA.js.br | Bin 0 -> 4612 bytes .../_app/immutable/chunks/C2CaJvaA.js.gz | Bin 0 -> 5095 bytes .../_app/immutable/chunks/C4h_mRt2.js.br | 2 - .../_app/immutable/chunks/C4h_mRt2.js.gz | Bin 281 -> 0 bytes .../build/_app/immutable/chunks/C6HuKgyx.js | 1 - .../_app/immutable/chunks/C6HuKgyx.js.br | Bin 357 -> 0 bytes .../_app/immutable/chunks/C6HuKgyx.js.gz | Bin 394 -> 0 bytes .../build/_app/immutable/chunks/CGEBXrjl.js | 1 - .../_app/immutable/chunks/CGEBXrjl.js.br | Bin 1804 -> 0 bytes .../_app/immutable/chunks/CGEBXrjl.js.gz | Bin 1954 -> 0 bytes .../build/_app/immutable/chunks/CGq8RnJq.js | 1 + .../_app/immutable/chunks/CGq8RnJq.js.br | Bin 0 -> 9260 bytes .../_app/immutable/chunks/CGq8RnJq.js.gz | Bin 0 -> 10303 bytes .../build/_app/immutable/chunks/CHOnp4oo.js | 1 - .../_app/immutable/chunks/CHOnp4oo.js.br | Bin 723 -> 0 bytes .../_app/immutable/chunks/CHOnp4oo.js.gz | Bin 798 -> 0 bytes .../build/_app/immutable/chunks/CJCPY1OL.js | 1 - .../_app/immutable/chunks/CJCPY1OL.js.br | Bin 163 -> 0 bytes .../_app/immutable/chunks/CJCPY1OL.js.gz | Bin 169 -> 0 bytes .../build/_app/immutable/chunks/CJsMJEun.js | 1 - .../_app/immutable/chunks/CJsMJEun.js.br | Bin 197 -> 0 bytes .../_app/immutable/chunks/CJsMJEun.js.gz | Bin 228 -> 0 bytes .../build/_app/immutable/chunks/CKbQrCJw.js | 1 + .../_app/immutable/chunks/CKbQrCJw.js.br | Bin 0 -> 1929 bytes .../_app/immutable/chunks/CKbQrCJw.js.gz | Bin 0 -> 2207 bytes .../build/_app/immutable/chunks/CbBCXwzm.js | 1 + .../_app/immutable/chunks/CbBCXwzm.js.br | Bin 0 -> 141 bytes .../_app/immutable/chunks/CbBCXwzm.js.gz | Bin 0 -> 164 bytes .../_app/immutable/chunks/CcUbQ_Wl.js.gz | Bin 409 -> 407 bytes .../build/_app/immutable/chunks/Ccqjq5DS.js | 1 + .../_app/immutable/chunks/Ccqjq5DS.js.br | Bin 0 -> 418 bytes .../_app/immutable/chunks/Ccqjq5DS.js.gz | Bin 0 -> 455 bytes .../build/_app/immutable/chunks/Ch9vNiEl.js | 1 + .../_app/immutable/chunks/Ch9vNiEl.js.br | Bin 0 -> 932 bytes .../_app/immutable/chunks/Ch9vNiEl.js.gz | Bin 0 -> 1054 bytes .../build/_app/immutable/chunks/CkiUhdKe.js | 376 ++ .../_app/immutable/chunks/CkiUhdKe.js.br | Bin 0 -> 114708 bytes .../_app/immutable/chunks/CkiUhdKe.js.gz | Bin 0 -> 138730 bytes .../build/_app/immutable/chunks/CpWkWWOo.js | 1 - .../_app/immutable/chunks/CpWkWWOo.js.br | Bin 8721 -> 0 bytes .../_app/immutable/chunks/CpWkWWOo.js.gz | Bin 9697 -> 0 bytes .../build/_app/immutable/chunks/Cqe0su6e.js | 1 + .../_app/immutable/chunks/Cqe0su6e.js.br | Bin 0 -> 3179 bytes .../_app/immutable/chunks/Cqe0su6e.js.gz | Bin 0 -> 3477 bytes .../build/_app/immutable/chunks/Cqk6fVmx.js | 5 + .../_app/immutable/chunks/Cqk6fVmx.js.br | Bin 0 -> 3972 bytes .../_app/immutable/chunks/Cqk6fVmx.js.gz | Bin 0 -> 5534 bytes .../build/_app/immutable/chunks/CtgMtoAJ.js | 1 - .../_app/immutable/chunks/CtgMtoAJ.js.br | Bin 7651 -> 0 bytes .../_app/immutable/chunks/CtgMtoAJ.js.gz | Bin 8414 -> 0 bytes .../build/_app/immutable/chunks/Cx-f-Pzo.js | 1 - .../_app/immutable/chunks/Cx-f-Pzo.js.br | Bin 163 -> 0 bytes .../_app/immutable/chunks/Cx-f-Pzo.js.gz | Bin 204 -> 0 bytes .../build/_app/immutable/chunks/D35IQVqe.js | 1 + .../_app/immutable/chunks/D35IQVqe.js.br | Bin 0 -> 913 bytes .../_app/immutable/chunks/D35IQVqe.js.gz | Bin 0 -> 1050 bytes .../build/_app/immutable/chunks/D4ymNiig.js | 1 - .../_app/immutable/chunks/D4ymNiig.js.br | Bin 1616 -> 0 bytes .../_app/immutable/chunks/D4ymNiig.js.gz | Bin 1768 -> 0 bytes .../build/_app/immutable/chunks/D7ozXiSB.js | 134 + .../_app/immutable/chunks/D7ozXiSB.js.br | Bin 0 -> 4661 bytes .../_app/immutable/chunks/D7ozXiSB.js.gz | Bin 0 -> 5230 bytes .../build/_app/immutable/chunks/DAau0uzT.js | 2 + .../_app/immutable/chunks/DAau0uzT.js.br | Bin 0 -> 3827 bytes .../_app/immutable/chunks/DAau0uzT.js.gz | Bin 0 -> 4289 bytes .../build/_app/immutable/chunks/DGM4cicq.js | 1 + .../_app/immutable/chunks/DGM4cicq.js.br | Bin 0 -> 457 bytes .../_app/immutable/chunks/DGM4cicq.js.gz | Bin 0 -> 517 bytes .../build/_app/immutable/chunks/DJDK-KWF.js | 1 + .../_app/immutable/chunks/DJDK-KWF.js.br | Bin 0 -> 7796 bytes .../_app/immutable/chunks/DJDK-KWF.js.gz | Bin 0 -> 8549 bytes .../build/_app/immutable/chunks/DV6OI5iy.js | 1 + .../_app/immutable/chunks/DV6OI5iy.js.br | Bin 0 -> 787 bytes .../_app/immutable/chunks/DV6OI5iy.js.gz | Bin 0 -> 842 bytes .../build/_app/immutable/chunks/DY7cP31Q.js | 1 + .../_app/immutable/chunks/DY7cP31Q.js.br | Bin 0 -> 2615 bytes .../_app/immutable/chunks/DY7cP31Q.js.gz | Bin 0 -> 2941 bytes .../build/_app/immutable/chunks/DdEqwvdI.js | 1 - .../_app/immutable/chunks/DdEqwvdI.js.br | Bin 883 -> 0 bytes .../_app/immutable/chunks/DdEqwvdI.js.gz | Bin 991 -> 0 bytes .../chunks/{C4h_mRt2.js => De_e6MzK.js} | 2 +- .../_app/immutable/chunks/De_e6MzK.js.br | Bin 0 -> 254 bytes .../_app/immutable/chunks/De_e6MzK.js.gz | Bin 0 -> 281 bytes .../build/_app/immutable/chunks/DnDQzBs4.js | 1 + .../_app/immutable/chunks/DnDQzBs4.js.br | Bin 0 -> 1688 bytes .../_app/immutable/chunks/DnDQzBs4.js.gz | Bin 0 -> 1929 bytes .../build/_app/immutable/chunks/Dp1pzeXC.js | 1 + .../_app/immutable/chunks/Dp1pzeXC.js.br | Bin 0 -> 623 bytes .../_app/immutable/chunks/Dp1pzeXC.js.gz | Bin 0 -> 730 bytes .../build/_app/immutable/chunks/DqfV0sZu.js | 1 + .../_app/immutable/chunks/DqfV0sZu.js.br | Bin 0 -> 2216 bytes .../_app/immutable/chunks/DqfV0sZu.js.gz | Bin 0 -> 2398 bytes .../build/_app/immutable/chunks/GG5zm9kr.js | 1 - .../_app/immutable/chunks/GG5zm9kr.js.br | Bin 227 -> 0 bytes .../_app/immutable/chunks/GG5zm9kr.js.gz | Bin 268 -> 0 bytes .../build/_app/immutable/chunks/HFGAk8XQ.js | 1 + .../_app/immutable/chunks/HFGAk8XQ.js.br | Bin 0 -> 279 bytes .../_app/immutable/chunks/HFGAk8XQ.js.gz | Bin 0 -> 320 bytes .../build/_app/immutable/chunks/MAY1QfFZ.js | 1 - .../_app/immutable/chunks/MAY1QfFZ.js.br | Bin 819 -> 0 bytes .../_app/immutable/chunks/MAY1QfFZ.js.gz | Bin 918 -> 0 bytes .../build/_app/immutable/chunks/V6gjw5Ec.js | 1 - .../_app/immutable/chunks/V6gjw5Ec.js.br | Bin 524 -> 0 bytes .../_app/immutable/chunks/V6gjw5Ec.js.gz | Bin 564 -> 0 bytes .../build/_app/immutable/chunks/W8qDZJD6.js | 1 + .../_app/immutable/chunks/W8qDZJD6.js.br | Bin 0 -> 878 bytes .../_app/immutable/chunks/W8qDZJD6.js.gz | Bin 0 -> 998 bytes .../build/_app/immutable/chunks/aVbAZ-t7.js | 1 - .../_app/immutable/chunks/aVbAZ-t7.js.br | Bin 233 -> 0 bytes .../_app/immutable/chunks/aVbAZ-t7.js.gz | Bin 282 -> 0 bytes .../build/_app/immutable/chunks/g4XF1_b9.js | 1 - .../_app/immutable/chunks/g4XF1_b9.js.br | Bin 2611 -> 0 bytes .../_app/immutable/chunks/g4XF1_b9.js.gz | Bin 2949 -> 0 bytes .../build/_app/immutable/chunks/kcrnba3G.js | 2 + .../_app/immutable/chunks/kcrnba3G.js.br | Bin 0 -> 1839 bytes .../_app/immutable/chunks/kcrnba3G.js.gz | Bin 0 -> 2022 bytes .../build/_app/immutable/chunks/sZcqyNBA.js | 1 - .../_app/immutable/chunks/sZcqyNBA.js.br | Bin 465 -> 0 bytes .../_app/immutable/chunks/sZcqyNBA.js.gz | Bin 516 -> 0 bytes .../build/_app/immutable/chunks/uCQU803Y.js | 2 + .../_app/immutable/chunks/uCQU803Y.js.br | Bin 0 -> 958 bytes .../_app/immutable/chunks/uCQU803Y.js.gz | Bin 0 -> 1046 bytes .../build/_app/immutable/chunks/yYBa834L.js | 1 + .../_app/immutable/chunks/yYBa834L.js.br | Bin 0 -> 1558 bytes .../_app/immutable/chunks/yYBa834L.js.gz | Bin 0 -> 1739 bytes .../_app/immutable/entry/app.DIsclQy8.js | 2 + .../_app/immutable/entry/app.DIsclQy8.js.br | Bin 0 -> 3273 bytes .../_app/immutable/entry/app.DIsclQy8.js.gz | Bin 0 -> 3701 bytes .../_app/immutable/entry/app.DU6MZpw-.js | 2 - .../_app/immutable/entry/app.DU6MZpw-.js.br | Bin 3559 -> 0 bytes .../_app/immutable/entry/app.DU6MZpw-.js.gz | Bin 4093 -> 0 bytes .../_app/immutable/entry/start.DQakSJT1.js | 1 - .../_app/immutable/entry/start.DQakSJT1.js.br | Bin 110 -> 0 bytes .../_app/immutable/entry/start.DQakSJT1.js.gz | Bin 108 -> 0 bytes .../_app/immutable/entry/start.DeXDFAvJ.js | 1 + .../_app/immutable/entry/start.DeXDFAvJ.js.br | Bin 0 -> 119 bytes .../_app/immutable/entry/start.DeXDFAvJ.js.gz | Bin 0 -> 107 bytes .../build/_app/immutable/nodes/0.CcZXq7cA.js | 86 + .../_app/immutable/nodes/0.CcZXq7cA.js.br | Bin 0 -> 11380 bytes .../_app/immutable/nodes/0.CcZXq7cA.js.gz | Bin 0 -> 12827 bytes .../build/_app/immutable/nodes/0.D_38hT9S.js | 86 - .../_app/immutable/nodes/0.D_38hT9S.js.br | Bin 9946 -> 0 bytes .../_app/immutable/nodes/0.D_38hT9S.js.gz | Bin 11353 -> 0 bytes .../build/_app/immutable/nodes/1.8UKMSR8s.js | 1 + .../_app/immutable/nodes/1.8UKMSR8s.js.br | 4 + .../_app/immutable/nodes/1.8UKMSR8s.js.gz | Bin 0 -> 376 bytes .../build/_app/immutable/nodes/1.CzSrpo2A.js | 1 - .../_app/immutable/nodes/1.CzSrpo2A.js.br | Bin 342 -> 0 bytes .../_app/immutable/nodes/1.CzSrpo2A.js.gz | Bin 383 -> 0 bytes .../build/_app/immutable/nodes/10.8yVvC2-0.js | 1 + .../_app/immutable/nodes/10.8yVvC2-0.js.br | Bin 0 -> 2456 bytes .../_app/immutable/nodes/10.8yVvC2-0.js.gz | Bin 0 -> 2755 bytes .../build/_app/immutable/nodes/10.CQzEYpYT.js | 4115 ----------------- .../_app/immutable/nodes/10.CQzEYpYT.js.br | Bin 123948 -> 0 bytes .../_app/immutable/nodes/10.CQzEYpYT.js.gz | Bin 149521 -> 0 bytes .../build/_app/immutable/nodes/11.CncxcJx_.js | 7 - .../_app/immutable/nodes/11.CncxcJx_.js.br | Bin 4826 -> 0 bytes .../_app/immutable/nodes/11.CncxcJx_.js.gz | Bin 5447 -> 0 bytes .../build/_app/immutable/nodes/11.DTIAuaCd.js | 1 + .../_app/immutable/nodes/11.DTIAuaCd.js.br | Bin 0 -> 2085 bytes .../_app/immutable/nodes/11.DTIAuaCd.js.gz | Bin 0 -> 2270 bytes .../build/_app/immutable/nodes/12.CuFt2FF9.js | 4076 ++++++++++++++++ .../_app/immutable/nodes/12.CuFt2FF9.js.br | Bin 0 -> 97261 bytes .../_app/immutable/nodes/12.CuFt2FF9.js.gz | Bin 0 -> 113369 bytes .../build/_app/immutable/nodes/12.DxkSrFsy.js | 1 - .../_app/immutable/nodes/12.DxkSrFsy.js.br | Bin 2402 -> 0 bytes .../_app/immutable/nodes/12.DxkSrFsy.js.gz | Bin 2729 -> 0 bytes .../build/_app/immutable/nodes/13.CD5qzYsO.js | 6 - .../_app/immutable/nodes/13.CD5qzYsO.js.br | Bin 5190 -> 0 bytes .../_app/immutable/nodes/13.CD5qzYsO.js.gz | Bin 5961 -> 0 bytes .../build/_app/immutable/nodes/13.z1_JLKKx.js | 1 + .../_app/immutable/nodes/13.z1_JLKKx.js.br | Bin 0 -> 2083 bytes .../_app/immutable/nodes/13.z1_JLKKx.js.gz | Bin 0 -> 2313 bytes .../build/_app/immutable/nodes/14.B4QyiRph.js | 1 + .../_app/immutable/nodes/14.B4QyiRph.js.br | Bin 0 -> 2060 bytes .../_app/immutable/nodes/14.B4QyiRph.js.gz | Bin 0 -> 2273 bytes .../build/_app/immutable/nodes/14.DUh3SXOF.js | 3 - .../_app/immutable/nodes/14.DUh3SXOF.js.br | Bin 5958 -> 0 bytes .../_app/immutable/nodes/14.DUh3SXOF.js.gz | Bin 6837 -> 0 bytes .../build/_app/immutable/nodes/15.-ohAmwvw.js | 1 + .../_app/immutable/nodes/15.-ohAmwvw.js.br | Bin 0 -> 1967 bytes .../_app/immutable/nodes/15.-ohAmwvw.js.gz | Bin 0 -> 2145 bytes .../build/_app/immutable/nodes/15.CyCv1LGV.js | 5 - .../_app/immutable/nodes/15.CyCv1LGV.js.br | Bin 7453 -> 0 bytes .../_app/immutable/nodes/15.CyCv1LGV.js.gz | Bin 8554 -> 0 bytes .../build/_app/immutable/nodes/16.Cth-SSqa.js | 9 - .../_app/immutable/nodes/16.Cth-SSqa.js.br | Bin 5678 -> 0 bytes .../_app/immutable/nodes/16.Cth-SSqa.js.gz | Bin 6485 -> 0 bytes .../build/_app/immutable/nodes/16.Dp0Kyz4w.js | 1 + .../_app/immutable/nodes/16.Dp0Kyz4w.js.br | Bin 0 -> 1839 bytes .../_app/immutable/nodes/16.Dp0Kyz4w.js.gz | Bin 0 -> 2019 bytes .../build/_app/immutable/nodes/17.DAadB7bO.js | 1 + .../_app/immutable/nodes/17.DAadB7bO.js.br | Bin 0 -> 2582 bytes .../_app/immutable/nodes/17.DAadB7bO.js.gz | Bin 0 -> 2865 bytes .../build/_app/immutable/nodes/17.k6k7874Y.js | 2 - .../_app/immutable/nodes/17.k6k7874Y.js.br | Bin 3389 -> 0 bytes .../_app/immutable/nodes/17.k6k7874Y.js.gz | Bin 3879 -> 0 bytes .../build/_app/immutable/nodes/18.C60Wuzj2.js | 1 - .../_app/immutable/nodes/18.C60Wuzj2.js.br | Bin 2022 -> 0 bytes .../_app/immutable/nodes/18.C60Wuzj2.js.gz | Bin 2285 -> 0 bytes .../build/_app/immutable/nodes/18.DdPknQfI.js | 159 + .../_app/immutable/nodes/18.DdPknQfI.js.br | Bin 0 -> 6129 bytes .../_app/immutable/nodes/18.DdPknQfI.js.gz | Bin 0 -> 6785 bytes .../build/_app/immutable/nodes/19.BIUSI5ln.js | 1 - .../_app/immutable/nodes/19.BIUSI5ln.js.br | Bin 1557 -> 0 bytes .../_app/immutable/nodes/19.BIUSI5ln.js.gz | Bin 1766 -> 0 bytes .../build/_app/immutable/nodes/19.DCcjdG9r.js | 1 + .../_app/immutable/nodes/19.DCcjdG9r.js.br | Bin 0 -> 1803 bytes .../_app/immutable/nodes/19.DCcjdG9r.js.gz | Bin 0 -> 2002 bytes .../build/_app/immutable/nodes/2.D-vKwnTC.js | 1 - .../_app/immutable/nodes/2.D-vKwnTC.js.br | Bin 143 -> 0 bytes .../_app/immutable/nodes/2.D-vKwnTC.js.gz | Bin 182 -> 0 bytes .../build/_app/immutable/nodes/2.zvt29sR6.js | 1 + .../_app/immutable/nodes/2.zvt29sR6.js.br | 2 + .../_app/immutable/nodes/2.zvt29sR6.js.gz | Bin 0 -> 240 bytes .../_app/immutable/nodes/20.DENLzARE.js.br | Bin 5508 -> 0 bytes .../_app/immutable/nodes/20.DENLzARE.js.gz | Bin 6456 -> 0 bytes .../build/_app/immutable/nodes/20.Dqd6_QcY.js | 198 + .../_app/immutable/nodes/20.Dqd6_QcY.js.br | Bin 0 -> 9872 bytes .../_app/immutable/nodes/20.Dqd6_QcY.js.gz | Bin 0 -> 11025 bytes .../build/_app/immutable/nodes/21.CwMgmxy2.js | 1 + .../_app/immutable/nodes/21.CwMgmxy2.js.br | Bin 0 -> 1972 bytes .../_app/immutable/nodes/21.CwMgmxy2.js.gz | Bin 0 -> 2184 bytes .../build/_app/immutable/nodes/22.CdolZyzx.js | 1 + .../_app/immutable/nodes/22.CdolZyzx.js.br | Bin 0 -> 3118 bytes .../_app/immutable/nodes/22.CdolZyzx.js.gz | Bin 0 -> 3505 bytes .../build/_app/immutable/nodes/23.CWsheXid.js | 1 + .../_app/immutable/nodes/23.CWsheXid.js.br | Bin 0 -> 1975 bytes .../_app/immutable/nodes/23.CWsheXid.js.gz | Bin 0 -> 2159 bytes .../build/_app/immutable/nodes/24.BbbXGX69.js | 286 ++ .../_app/immutable/nodes/24.BbbXGX69.js.br | Bin 0 -> 9325 bytes .../_app/immutable/nodes/24.BbbXGX69.js.gz | Bin 0 -> 10326 bytes .../nodes/{20.DENLzARE.js => 25.CpxKI_0Q.js} | 10 +- .../_app/immutable/nodes/25.CpxKI_0Q.js.br | Bin 0 -> 5508 bytes .../_app/immutable/nodes/25.CpxKI_0Q.js.gz | Bin 0 -> 6417 bytes .../build/_app/immutable/nodes/3.2jAIqAuY.js | 1 - .../_app/immutable/nodes/3.2jAIqAuY.js.br | Bin 164 -> 0 bytes .../_app/immutable/nodes/3.2jAIqAuY.js.gz | Bin 196 -> 0 bytes .../build/_app/immutable/nodes/3.C6cru0cW.js | 1 + .../_app/immutable/nodes/3.C6cru0cW.js.br | Bin 0 -> 166 bytes .../_app/immutable/nodes/3.C6cru0cW.js.gz | Bin 0 -> 203 bytes .../build/_app/immutable/nodes/4.CIxbWFkr.js | 1 + .../_app/immutable/nodes/4.CIxbWFkr.js.br | Bin 0 -> 903 bytes .../_app/immutable/nodes/4.CIxbWFkr.js.gz | Bin 0 -> 995 bytes .../build/_app/immutable/nodes/4.DYVet_v-.js | 8 - .../_app/immutable/nodes/4.DYVet_v-.js.br | Bin 4439 -> 0 bytes .../_app/immutable/nodes/4.DYVet_v-.js.gz | Bin 5013 -> 0 bytes .../build/_app/immutable/nodes/5.C0AYWqwr.js | 3 - .../_app/immutable/nodes/5.C0AYWqwr.js.br | Bin 7288 -> 0 bytes .../_app/immutable/nodes/5.C0AYWqwr.js.gz | Bin 8441 -> 0 bytes .../build/_app/immutable/nodes/5.bHY_C0IS.js | 1 + .../_app/immutable/nodes/5.bHY_C0IS.js.br | Bin 0 -> 1751 bytes .../_app/immutable/nodes/5.bHY_C0IS.js.gz | Bin 0 -> 1954 bytes .../build/_app/immutable/nodes/6.B5Ezgq8d.js | 14 - .../_app/immutable/nodes/6.B5Ezgq8d.js.br | Bin 5621 -> 0 bytes .../_app/immutable/nodes/6.B5Ezgq8d.js.gz | Bin 6360 -> 0 bytes .../build/_app/immutable/nodes/6.BAqyGpdp.js | 232 + .../_app/immutable/nodes/6.BAqyGpdp.js.br | Bin 0 -> 12361 bytes .../_app/immutable/nodes/6.BAqyGpdp.js.gz | Bin 0 -> 13808 bytes .../build/_app/immutable/nodes/7.2YrTacps.js | 5 - .../_app/immutable/nodes/7.2YrTacps.js.br | Bin 4942 -> 0 bytes .../_app/immutable/nodes/7.2YrTacps.js.gz | Bin 5700 -> 0 bytes .../build/_app/immutable/nodes/7.AFPOwdob.js | 249 + .../_app/immutable/nodes/7.AFPOwdob.js.br | Bin 0 -> 14122 bytes .../_app/immutable/nodes/7.AFPOwdob.js.gz | Bin 0 -> 15871 bytes .../build/_app/immutable/nodes/8.BTNjDzh8.js | 1 + .../_app/immutable/nodes/8.BTNjDzh8.js.br | Bin 0 -> 2804 bytes .../_app/immutable/nodes/8.BTNjDzh8.js.gz | Bin 0 -> 3085 bytes .../build/_app/immutable/nodes/8.DGKslLJe.js | 6 - .../_app/immutable/nodes/8.DGKslLJe.js.br | Bin 3012 -> 0 bytes .../_app/immutable/nodes/8.DGKslLJe.js.gz | Bin 3513 -> 0 bytes .../build/_app/immutable/nodes/9.Vu2AXN40.js | 8 - .../_app/immutable/nodes/9.Vu2AXN40.js.br | Bin 2949 -> 0 bytes .../_app/immutable/nodes/9.Vu2AXN40.js.gz | Bin 3363 -> 0 bytes .../build/_app/immutable/nodes/9.h0jHlQck.js | 253 + .../_app/immutable/nodes/9.h0jHlQck.js.br | Bin 0 -> 11550 bytes .../_app/immutable/nodes/9.h0jHlQck.js.gz | Bin 0 -> 12864 bytes apps/dashboard/build/_app/version.json | 2 +- apps/dashboard/build/_app/version.json.br | 2 +- apps/dashboard/build/_app/version.json.gz | Bin 40 -> 39 bytes apps/dashboard/build/favicon.svg.gz | Bin 462 -> 457 bytes apps/dashboard/build/index.html | 30 +- apps/dashboard/build/index.html.br | Bin 607 -> 569 bytes apps/dashboard/build/index.html.gz | Bin 798 -> 758 bytes apps/dashboard/build/manifest.json.gz | Bin 278 -> 278 bytes apps/dashboard/build/msdf/jetbrains-mono.json | 1 + .../build/msdf/jetbrains-mono.json.br | Bin 0 -> 1855 bytes .../build/msdf/jetbrains-mono.json.gz | Bin 0 -> 2334 bytes apps/dashboard/build/msdf/jetbrains-mono.png | Bin 0 -> 97823 bytes apps/dashboard/e2e/all-routes-smoke.spec.ts | 61 + .../dashboard/e2e/capture-determinism.spec.ts | 171 + apps/dashboard/e2e/cross-organ-nav.spec.ts | 122 + apps/dashboard/e2e/helpers/dashboard.ts | 204 + .../e2e/live-materialization.spec.ts | 9 +- .../dashboard/e2e/live-nervous-system.spec.ts | 66 + apps/dashboard/e2e/organ-activation.spec.ts | 144 + apps/dashboard/e2e/organ-blackbox.spec.ts | 177 + .../e2e/organ-contradictions.spec.ts | 183 + apps/dashboard/e2e/organ-dreams.spec.ts | 151 + apps/dashboard/e2e/organ-duplicates.spec.ts | 214 + apps/dashboard/e2e/organ-explore.spec.ts | 198 + apps/dashboard/e2e/organ-feed.spec.ts | 247 + apps/dashboard/e2e/organ-graph.spec.ts | 162 + apps/dashboard/e2e/organ-importance.spec.ts | 215 + apps/dashboard/e2e/organ-intentions.spec.ts | 235 + apps/dashboard/e2e/organ-memories.spec.ts | 133 + apps/dashboard/e2e/organ-memory-prs.spec.ts | 263 ++ apps/dashboard/e2e/organ-observatory.spec.ts | 214 + apps/dashboard/e2e/organ-patterns.spec.ts | 208 + apps/dashboard/e2e/organ-picks.spec.ts | 139 + apps/dashboard/e2e/organ-reasoning.spec.ts | 169 + apps/dashboard/e2e/organ-schedule.spec.ts | 207 + apps/dashboard/e2e/organ-stats.spec.ts | 170 + apps/dashboard/e2e/organ-timeline.spec.ts | 151 + apps/dashboard/e2e/palace-launch-gate.spec.ts | 191 + apps/dashboard/e2e/palace-navigation.spec.ts | 238 + apps/dashboard/e2e/pulse-toast.spec.ts | 8 +- apps/dashboard/e2e/reasoning-flow.spec.ts | 154 + apps/dashboard/e2e/settings-triggers.spec.ts | 201 + .../e2e/timeline-motion-pick.spec.ts | 65 + .../lib/components/DuplicateCluster.svelte | 93 +- .../lib/observatory/ObservatoryStage.svelte | 4 + .../src/lib/observatory/RouteStage.svelte | 28 +- .../__tests__/blackbox-scene.test.ts | 65 + .../__tests__/engine-passes.test.ts | 134 + apps/dashboard/src/lib/observatory/camera.ts | 67 + .../observatory/duplicates/duplicates-pass.ts | 51 +- apps/dashboard/src/lib/observatory/engine.ts | 29 + .../src/lib/observatory/field/cell-layout.ts | 135 + .../observatory/field/living-field-pass.ts | 368 ++ .../observatory/field/living-field.wgsl.ts | 280 ++ .../src/lib/observatory/nav/nav-layer.ts | 105 +- .../src/lib/observatory/palace-labels.ts | 233 + .../src/lib/observatory/palace-map.ts | 71 + .../src/lib/observatory/palace-node-pass.ts | 614 +++ .../reasoning/reasoning-geometry-pass.ts | 172 + .../reasoning/reasoning-geometry.wgsl.ts | 206 + .../reasoning/reasoning-trace-pass.ts | 380 ++ .../lib/observatory/reasoning/trace-layout.ts | 179 + .../text/shaders/msdf-text.wgsl.ts | 15 +- .../src/lib/observatory/text/text-layer.ts | 23 +- .../lib/observatory/timeline/timeline-pass.ts | 627 +++ .../observatory/timeline/timeline-scene.ts | 259 ++ apps/dashboard/src/lib/stores/api.ts | 33 +- .../dashboard/src/routes/(app)/+layout.svelte | 12 +- .../src/routes/(app)/activation/+page.svelte | 507 +- .../src/routes/(app)/blackbox/+page.svelte | 70 +- .../routes/(app)/contradictions/+page.svelte | 67 +- .../src/routes/(app)/dreams/+page.svelte | 927 ++-- .../src/routes/(app)/duplicates/+page.svelte | 61 +- .../src/routes/(app)/explore/+page.svelte | 596 ++- .../src/routes/(app)/feed/+page.svelte | 505 +- .../src/routes/(app)/graph/+page.svelte | 42 + .../src/routes/(app)/importance/+page.svelte | 575 +-- .../src/routes/(app)/intentions/+page.svelte | 481 +- .../src/routes/(app)/memories/+page.svelte | 75 +- .../src/routes/(app)/memory-prs/+page.svelte | 904 +--- .../src/routes/(app)/observatory/+page.svelte | 342 +- .../src/routes/(app)/palace/+page.svelte | 203 + .../src/routes/(app)/patterns/+page.svelte | 544 +-- .../src/routes/(app)/reasoning/+page.svelte | 834 +--- .../src/routes/(app)/schedule/+page.svelte | 515 ++- .../src/routes/(app)/settings/+page.svelte | 836 ++-- .../src/routes/(app)/stats/+page.svelte | 439 +- .../src/routes/(app)/timeline/+page.svelte | 403 +- apps/dashboard/src/routes/+layout.svelte | 9 +- .../ALIVE-OVERHAUL-GOD-TIER-PROMPT.md | 144 + 473 files changed, 21722 insertions(+), 8901 deletions(-) delete mode 100644 apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css delete mode 100644 apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/0.CLR80qKm.css create mode 100644 apps/dashboard/build/_app/immutable/assets/0.CLR80qKm.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/0.CLR80qKm.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/12.BxoW8Jf1.css create mode 100644 apps/dashboard/build/_app/immutable/assets/12.BxoW8Jf1.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/12.BxoW8Jf1.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css delete mode 100644 apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/assets/15.ChjqzJHo.css delete mode 100644 apps/dashboard/build/_app/immutable/assets/15.ChjqzJHo.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/15.ChjqzJHo.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css delete mode 100644 apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/20.Duj1vJUf.css create mode 100644 apps/dashboard/build/_app/immutable/assets/20.Duj1vJUf.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/20.Duj1vJUf.css.gz rename apps/dashboard/build/_app/immutable/assets/{20.DKhUrxcR.css => 25.DKhUrxcR.css} (100%) rename apps/dashboard/build/_app/immutable/assets/{20.DKhUrxcR.css.br => 25.DKhUrxcR.css.br} (100%) create mode 100644 apps/dashboard/build/_app/immutable/assets/25.DKhUrxcR.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/assets/5.DQ_AfUnN.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css delete mode 100644 apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/6.ksI6gQcB.css create mode 100644 apps/dashboard/build/_app/immutable/assets/6.ksI6gQcB.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/6.ksI6gQcB.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css delete mode 100644 apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css.gz rename apps/dashboard/build/_app/immutable/assets/{5.DQ_AfUnN.css => 7.DQ_AfUnN.css} (100%) rename apps/dashboard/build/_app/immutable/assets/{5.DQ_AfUnN.css.br => 7.DQ_AfUnN.css.br} (100%) create mode 100644 apps/dashboard/build/_app/immutable/assets/7.DQ_AfUnN.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/assets/9.BBx09UGv.css delete mode 100644 apps/dashboard/build/_app/immutable/assets/9.BBx09UGv.css.br delete mode 100644 apps/dashboard/build/_app/immutable/assets/9.BBx09UGv.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/Dropdown.C2Z-7Phd.css create mode 100644 apps/dashboard/build/_app/immutable/assets/Dropdown.C2Z-7Phd.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/Dropdown.C2Z-7Phd.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css create mode 100644 apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/ObservatoryStage.CKoSQgn0.css create mode 100644 apps/dashboard/build/_app/immutable/assets/ObservatoryStage.CKoSQgn0.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/ObservatoryStage.CKoSQgn0.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/cognitive-palette.BALpZUFZ.css create mode 100644 apps/dashboard/build/_app/immutable/assets/cognitive-palette.BALpZUFZ.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/cognitive-palette.BALpZUFZ.css.gz create mode 100644 apps/dashboard/build/_app/immutable/assets/reveal.Dmxpik8H.css create mode 100644 apps/dashboard/build/_app/immutable/assets/reveal.Dmxpik8H.css.br create mode 100644 apps/dashboard/build/_app/immutable/assets/reveal.Dmxpik8H.css.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/B9l3DI-J.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/B9l3DI-J.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/B9l3DI-J.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/BKh9s_e0.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BKh9s_e0.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BKh9s_e0.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/BMB5u1EX.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BMB5u1EX.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BMB5u1EX.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/BbCqB9Us.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BbCqB9Us.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BbCqB9Us.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/BeGBxCGK.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BeGBxCGK.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BeGBxCGK.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/BfiOPhbz.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BfiOPhbz.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BfiOPhbz.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/Bo4EDkTQ.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/Bo4EDkTQ.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/Bo4EDkTQ.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/BzfFPM53.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/BzfFPM53.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/BzfFPM53.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/C2CaJvaA.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/C2CaJvaA.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/C2CaJvaA.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/C4h_mRt2.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/C4h_mRt2.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/C6HuKgyx.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/C6HuKgyx.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/C6HuKgyx.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/CGq8RnJq.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/CGq8RnJq.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/CGq8RnJq.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/CKbQrCJw.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/CKbQrCJw.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/CKbQrCJw.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/CbBCXwzm.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/CbBCXwzm.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/CbBCXwzm.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/Ccqjq5DS.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/Ccqjq5DS.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/Ccqjq5DS.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/Ch9vNiEl.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/Ch9vNiEl.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/Ch9vNiEl.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/CkiUhdKe.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/CkiUhdKe.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/CkiUhdKe.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CpWkWWOo.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CpWkWWOo.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CpWkWWOo.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/Cqe0su6e.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/Cqe0su6e.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/Cqe0su6e.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/Cqk6fVmx.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/Cqk6fVmx.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/Cqk6fVmx.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/Cx-f-Pzo.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/Cx-f-Pzo.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/Cx-f-Pzo.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/D35IQVqe.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/D35IQVqe.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/D35IQVqe.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/D7ozXiSB.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/D7ozXiSB.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/D7ozXiSB.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DAau0uzT.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DAau0uzT.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DAau0uzT.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DGM4cicq.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DGM4cicq.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DGM4cicq.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DJDK-KWF.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DJDK-KWF.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DJDK-KWF.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DV6OI5iy.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DV6OI5iy.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DV6OI5iy.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DY7cP31Q.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DY7cP31Q.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DY7cP31Q.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/DdEqwvdI.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/DdEqwvdI.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/DdEqwvdI.js.gz rename apps/dashboard/build/_app/immutable/chunks/{C4h_mRt2.js => De_e6MzK.js} (51%) create mode 100644 apps/dashboard/build/_app/immutable/chunks/De_e6MzK.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/De_e6MzK.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DnDQzBs4.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DnDQzBs4.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DnDQzBs4.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/DqfV0sZu.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/DqfV0sZu.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/DqfV0sZu.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/HFGAk8XQ.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/HFGAk8XQ.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/HFGAk8XQ.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/W8qDZJD6.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/W8qDZJD6.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/W8qDZJD6.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/kcrnba3G.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/kcrnba3G.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/kcrnba3G.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js delete mode 100644 apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.br delete mode 100644 apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/uCQU803Y.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/uCQU803Y.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/uCQU803Y.js.gz create mode 100644 apps/dashboard/build/_app/immutable/chunks/yYBa834L.js create mode 100644 apps/dashboard/build/_app/immutable/chunks/yYBa834L.js.br create mode 100644 apps/dashboard/build/_app/immutable/chunks/yYBa834L.js.gz create mode 100644 apps/dashboard/build/_app/immutable/entry/app.DIsclQy8.js create mode 100644 apps/dashboard/build/_app/immutable/entry/app.DIsclQy8.js.br create mode 100644 apps/dashboard/build/_app/immutable/entry/app.DIsclQy8.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js delete mode 100644 apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.br delete mode 100644 apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js delete mode 100644 apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js.br delete mode 100644 apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js.gz create mode 100644 apps/dashboard/build/_app/immutable/entry/start.DeXDFAvJ.js create mode 100644 apps/dashboard/build/_app/immutable/entry/start.DeXDFAvJ.js.br create mode 100644 apps/dashboard/build/_app/immutable/entry/start.DeXDFAvJ.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/0.CcZXq7cA.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/0.CcZXq7cA.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/0.CcZXq7cA.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/0.D_38hT9S.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/0.D_38hT9S.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/0.D_38hT9S.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/1.8UKMSR8s.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/1.8UKMSR8s.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/1.8UKMSR8s.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/10.8yVvC2-0.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/10.8yVvC2-0.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/10.8yVvC2-0.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/11.CncxcJx_.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/11.CncxcJx_.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/11.CncxcJx_.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/11.DTIAuaCd.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/11.DTIAuaCd.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/11.DTIAuaCd.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/12.CuFt2FF9.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/12.CuFt2FF9.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/12.CuFt2FF9.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/12.DxkSrFsy.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/12.DxkSrFsy.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/12.DxkSrFsy.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/13.CD5qzYsO.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/13.CD5qzYsO.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/13.CD5qzYsO.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/13.z1_JLKKx.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/13.z1_JLKKx.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/13.z1_JLKKx.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/14.B4QyiRph.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/14.B4QyiRph.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/14.B4QyiRph.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/14.DUh3SXOF.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/14.DUh3SXOF.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/14.DUh3SXOF.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/15.-ohAmwvw.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/15.-ohAmwvw.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/15.-ohAmwvw.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/15.CyCv1LGV.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/15.CyCv1LGV.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/15.CyCv1LGV.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/16.Cth-SSqa.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/16.Cth-SSqa.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/16.Cth-SSqa.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/16.Dp0Kyz4w.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/16.Dp0Kyz4w.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/16.Dp0Kyz4w.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/17.DAadB7bO.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/17.DAadB7bO.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/17.DAadB7bO.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/17.k6k7874Y.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/17.k6k7874Y.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/17.k6k7874Y.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/18.C60Wuzj2.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/18.C60Wuzj2.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/18.C60Wuzj2.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/18.DdPknQfI.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/18.DdPknQfI.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/18.DdPknQfI.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/19.BIUSI5ln.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/19.BIUSI5ln.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/19.BIUSI5ln.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/19.DCcjdG9r.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/19.DCcjdG9r.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/19.DCcjdG9r.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/2.D-vKwnTC.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/2.D-vKwnTC.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/2.D-vKwnTC.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/2.zvt29sR6.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/2.zvt29sR6.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/2.zvt29sR6.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/20.DENLzARE.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/20.DENLzARE.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/20.Dqd6_QcY.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/20.Dqd6_QcY.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/20.Dqd6_QcY.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/21.CwMgmxy2.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/21.CwMgmxy2.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/21.CwMgmxy2.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/22.CdolZyzx.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/22.CdolZyzx.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/22.CdolZyzx.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/23.CWsheXid.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/23.CWsheXid.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/23.CWsheXid.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/24.BbbXGX69.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/24.BbbXGX69.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/24.BbbXGX69.js.gz rename apps/dashboard/build/_app/immutable/nodes/{20.DENLzARE.js => 25.CpxKI_0Q.js} (67%) create mode 100644 apps/dashboard/build/_app/immutable/nodes/25.CpxKI_0Q.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/25.CpxKI_0Q.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/3.2jAIqAuY.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/3.2jAIqAuY.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/3.2jAIqAuY.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/3.C6cru0cW.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/3.C6cru0cW.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/3.C6cru0cW.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/4.CIxbWFkr.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/4.CIxbWFkr.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/4.CIxbWFkr.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/4.DYVet_v-.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/4.DYVet_v-.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/4.DYVet_v-.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/5.C0AYWqwr.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/5.C0AYWqwr.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/5.C0AYWqwr.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/5.bHY_C0IS.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/5.bHY_C0IS.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/5.bHY_C0IS.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/6.B5Ezgq8d.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/6.B5Ezgq8d.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/6.B5Ezgq8d.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/6.BAqyGpdp.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/6.BAqyGpdp.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/6.BAqyGpdp.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/7.2YrTacps.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/7.2YrTacps.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/7.2YrTacps.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/7.AFPOwdob.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/7.AFPOwdob.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/7.AFPOwdob.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/8.BTNjDzh8.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/8.BTNjDzh8.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/8.BTNjDzh8.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/8.DGKslLJe.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/8.DGKslLJe.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/8.DGKslLJe.js.gz delete mode 100644 apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js delete mode 100644 apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js.br delete mode 100644 apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js.gz create mode 100644 apps/dashboard/build/_app/immutable/nodes/9.h0jHlQck.js create mode 100644 apps/dashboard/build/_app/immutable/nodes/9.h0jHlQck.js.br create mode 100644 apps/dashboard/build/_app/immutable/nodes/9.h0jHlQck.js.gz create mode 100644 apps/dashboard/build/msdf/jetbrains-mono.json create mode 100644 apps/dashboard/build/msdf/jetbrains-mono.json.br create mode 100644 apps/dashboard/build/msdf/jetbrains-mono.json.gz create mode 100644 apps/dashboard/build/msdf/jetbrains-mono.png create mode 100644 apps/dashboard/e2e/all-routes-smoke.spec.ts create mode 100644 apps/dashboard/e2e/capture-determinism.spec.ts create mode 100644 apps/dashboard/e2e/cross-organ-nav.spec.ts create mode 100644 apps/dashboard/e2e/helpers/dashboard.ts create mode 100644 apps/dashboard/e2e/live-nervous-system.spec.ts create mode 100644 apps/dashboard/e2e/organ-activation.spec.ts create mode 100644 apps/dashboard/e2e/organ-blackbox.spec.ts create mode 100644 apps/dashboard/e2e/organ-contradictions.spec.ts create mode 100644 apps/dashboard/e2e/organ-dreams.spec.ts create mode 100644 apps/dashboard/e2e/organ-duplicates.spec.ts create mode 100644 apps/dashboard/e2e/organ-explore.spec.ts create mode 100644 apps/dashboard/e2e/organ-feed.spec.ts create mode 100644 apps/dashboard/e2e/organ-graph.spec.ts create mode 100644 apps/dashboard/e2e/organ-importance.spec.ts create mode 100644 apps/dashboard/e2e/organ-intentions.spec.ts create mode 100644 apps/dashboard/e2e/organ-memories.spec.ts create mode 100644 apps/dashboard/e2e/organ-memory-prs.spec.ts create mode 100644 apps/dashboard/e2e/organ-observatory.spec.ts create mode 100644 apps/dashboard/e2e/organ-patterns.spec.ts create mode 100644 apps/dashboard/e2e/organ-picks.spec.ts create mode 100644 apps/dashboard/e2e/organ-reasoning.spec.ts create mode 100644 apps/dashboard/e2e/organ-schedule.spec.ts create mode 100644 apps/dashboard/e2e/organ-stats.spec.ts create mode 100644 apps/dashboard/e2e/organ-timeline.spec.ts create mode 100644 apps/dashboard/e2e/palace-launch-gate.spec.ts create mode 100644 apps/dashboard/e2e/palace-navigation.spec.ts create mode 100644 apps/dashboard/e2e/reasoning-flow.spec.ts create mode 100644 apps/dashboard/e2e/settings-triggers.spec.ts create mode 100644 apps/dashboard/e2e/timeline-motion-pick.spec.ts create mode 100644 apps/dashboard/src/lib/observatory/__tests__/blackbox-scene.test.ts create mode 100644 apps/dashboard/src/lib/observatory/__tests__/engine-passes.test.ts create mode 100644 apps/dashboard/src/lib/observatory/field/cell-layout.ts create mode 100644 apps/dashboard/src/lib/observatory/field/living-field-pass.ts create mode 100644 apps/dashboard/src/lib/observatory/field/living-field.wgsl.ts create mode 100644 apps/dashboard/src/lib/observatory/palace-labels.ts create mode 100644 apps/dashboard/src/lib/observatory/palace-map.ts create mode 100644 apps/dashboard/src/lib/observatory/palace-node-pass.ts create mode 100644 apps/dashboard/src/lib/observatory/reasoning/reasoning-geometry-pass.ts create mode 100644 apps/dashboard/src/lib/observatory/reasoning/reasoning-geometry.wgsl.ts create mode 100644 apps/dashboard/src/lib/observatory/reasoning/reasoning-trace-pass.ts create mode 100644 apps/dashboard/src/lib/observatory/reasoning/trace-layout.ts create mode 100644 apps/dashboard/src/lib/observatory/timeline/timeline-pass.ts create mode 100644 apps/dashboard/src/lib/observatory/timeline/timeline-scene.ts create mode 100644 apps/dashboard/src/routes/(app)/palace/+page.svelte create mode 100644 docs/dashboard/ALIVE-OVERHAUL-GOD-TIER-PROMPT.md diff --git a/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css b/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css deleted file mode 100644 index f5bdd49..0000000 --- a/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v4.2.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"JetBrains Mono", "Fira Code", "SF Mono", monospace;--color-amber-400:oklch(82.8% .189 84.429);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-void:#050510;--color-abyss:#0a0a1a;--color-deep:#10102a;--color-surface:#161638;--color-elevated:#1e1e4a;--color-subtle:#2a2a5e;--color-muted:#4a4a7a;--color-dim:#7a7aaa;--color-text:#e0e0ff;--color-bright:#fff;--color-synapse:#6366f1;--color-synapse-glow:#818cf8;--color-dream:#a855f7;--color-dream-glow:#c084fc;--color-memory:#3b82f6;--color-recall:#10b981;--color-decay:#ef4444;--color-warning:#f59e0b;--color-node-pattern:#ec4899}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.end\!{inset-inline-end:var(--spacing)!important}.top-0{top:calc(var(--spacing) * 0)}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:calc(var(--spacing) * 1)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-10{top:calc(var(--spacing) * 10)}.right-0{right:calc(var(--spacing) * 0)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-\[29px\]{left:-29px}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.left-6{left:calc(var(--spacing) * 6)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-\[-12px\]{margin-top:-12px}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-28{height:calc(var(--spacing) * 28)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-\[520px\]{height:520px}.h-\[560px\]{height:560px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[620px\]{max-height:620px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-\[240px\]{min-height:240px}.min-h-\[320px\]{min-height:320px}.min-h-\[520px\]{min-height:520px}.min-h-full{min-height:100%}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-96{width:calc(var(--spacing) * 96)}.w-\[3px\]{width:3px}.w-\[90\%\]{width:90%}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-\[220px\]{max-width:220px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-16{min-width:calc(var(--spacing) * 16)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-\[2rem\]{min-width:2rem}.min-w-\[3\.5rem\]{min-width:3.5rem}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-separate{border-collapse:separate}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[fadeSlide_0\.35s_ease-out_both\]{animation:.35s ease-out both fadeSlide}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[2px\]{gap:2px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.\!border-decay\/20{border-color:#ef444433!important}@supports (color:color-mix(in lab,red,red)){.\!border-decay\/20{border-color:color-mix(in oklab,var(--color-decay) 20%,transparent)!important}}.\!border-decay\/30{border-color:#ef44444d!important}@supports (color:color-mix(in lab,red,red)){.\!border-decay\/30{border-color:color-mix(in oklab,var(--color-decay) 30%,transparent)!important}}.\!border-decay\/40{border-color:#ef444466!important}@supports (color:color-mix(in lab,red,red)){.\!border-decay\/40{border-color:color-mix(in oklab,var(--color-decay) 40%,transparent)!important}}.\!border-dream\/20{border-color:#a855f733!important}@supports (color:color-mix(in lab,red,red)){.\!border-dream\/20{border-color:color-mix(in oklab,var(--color-dream) 20%,transparent)!important}}.\!border-synapse\/15{border-color:#6366f126!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/15{border-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)!important}}.\!border-synapse\/20{border-color:#6366f133!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/20{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)!important}}.\!border-synapse\/25{border-color:#6366f140!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/25{border-color:color-mix(in oklab,var(--color-synapse) 25%,transparent)!important}}.\!border-synapse\/30{border-color:#6366f14d!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/30{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)!important}}.\!border-synapse\/40{border-color:#6366f166!important}@supports (color:color-mix(in lab,red,red)){.\!border-synapse\/40{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)!important}}.border-\[\#A33FFF\]\/40{border-color:#a33fff66}.border-decay\/20{border-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.border-decay\/20{border-color:color-mix(in oklab,var(--color-decay) 20%,transparent)}}.border-dream-glow\/40{border-color:#c084fc66}@supports (color:color-mix(in lab,red,red)){.border-dream-glow\/40{border-color:color-mix(in oklab,var(--color-dream-glow) 40%,transparent)}}.border-dream\/10{border-color:#a855f71a}@supports (color:color-mix(in lab,red,red)){.border-dream\/10{border-color:color-mix(in oklab,var(--color-dream) 10%,transparent)}}.border-dream\/20{border-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.border-dream\/20{border-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.border-dream\/30{border-color:#a855f74d}@supports (color:color-mix(in lab,red,red)){.border-dream\/30{border-color:color-mix(in oklab,var(--color-dream) 30%,transparent)}}.border-dream\/40{border-color:#a855f766}@supports (color:color-mix(in lab,red,red)){.border-dream\/40{border-color:color-mix(in oklab,var(--color-dream) 40%,transparent)}}.border-dream\/50{border-color:#a855f780}@supports (color:color-mix(in lab,red,red)){.border-dream\/50{border-color:color-mix(in oklab,var(--color-dream) 50%,transparent)}}.border-recall\/30{border-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.border-recall\/30{border-color:color-mix(in oklab,var(--color-recall) 30%,transparent)}}.border-recall\/40{border-color:#10b98166}@supports (color:color-mix(in lab,red,red)){.border-recall\/40{border-color:color-mix(in oklab,var(--color-recall) 40%,transparent)}}.border-subtle\/15{border-color:#2a2a5e26}@supports (color:color-mix(in lab,red,red)){.border-subtle\/15{border-color:color-mix(in oklab,var(--color-subtle) 15%,transparent)}}.border-subtle\/20{border-color:#2a2a5e33}@supports (color:color-mix(in lab,red,red)){.border-subtle\/20{border-color:color-mix(in oklab,var(--color-subtle) 20%,transparent)}}.border-subtle\/30{border-color:#2a2a5e4d}@supports (color:color-mix(in lab,red,red)){.border-subtle\/30{border-color:color-mix(in oklab,var(--color-subtle) 30%,transparent)}}.border-synapse{border-color:var(--color-synapse)}.border-synapse\/5{border-color:#6366f10d}@supports (color:color-mix(in lab,red,red)){.border-synapse\/5{border-color:color-mix(in oklab,var(--color-synapse) 5%,transparent)}}.border-synapse\/10{border-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.border-synapse\/10{border-color:color-mix(in oklab,var(--color-synapse) 10%,transparent)}}.border-synapse\/15{border-color:#6366f126}@supports (color:color-mix(in lab,red,red)){.border-synapse\/15{border-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)}}.border-synapse\/20{border-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.border-synapse\/20{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.border-synapse\/30{border-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.border-synapse\/30{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.border-synapse\/40{border-color:#6366f166}@supports (color:color-mix(in lab,red,red)){.border-synapse\/40{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)}}.border-transparent{border-color:#0000}.border-warning\/30{border-color:#f59e0b4d}@supports (color:color-mix(in lab,red,red)){.border-warning\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.border-warning\/40{border-color:#f59e0b66}@supports (color:color-mix(in lab,red,red)){.border-warning\/40{border-color:color-mix(in oklab,var(--color-warning) 40%,transparent)}}.border-warning\/50{border-color:#f59e0b80}@supports (color:color-mix(in lab,red,red)){.border-warning\/50{border-color:color-mix(in oklab,var(--color-warning) 50%,transparent)}}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\/5{border-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.border-t-dream{border-top-color:var(--color-dream)}.border-t-synapse{border-top-color:var(--color-synapse)}.border-t-warning{border-top-color:var(--color-warning)}.bg-\[\#A33FFF\]{background-color:#a33fff}.bg-\[\#A33FFF\]\/10{background-color:#a33fff1a}.bg-amber-400{background-color:var(--color-amber-400)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-decay{background-color:var(--color-decay)}.bg-decay\/10{background-color:#ef44441a}@supports (color:color-mix(in lab,red,red)){.bg-decay\/10{background-color:color-mix(in oklab,var(--color-decay) 10%,transparent)}}.bg-decay\/20{background-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.bg-decay\/20{background-color:color-mix(in oklab,var(--color-decay) 20%,transparent)}}.bg-decay\/\[0\.05\]{background-color:#ef44440d}@supports (color:color-mix(in lab,red,red)){.bg-decay\/\[0\.05\]{background-color:color-mix(in oklab,var(--color-decay) 5%,transparent)}}.bg-deep{background-color:var(--color-deep)}.bg-deep\/40{background-color:#10102a66}@supports (color:color-mix(in lab,red,red)){.bg-deep\/40{background-color:color-mix(in oklab,var(--color-deep) 40%,transparent)}}.bg-deep\/60{background-color:#10102a99}@supports (color:color-mix(in lab,red,red)){.bg-deep\/60{background-color:color-mix(in oklab,var(--color-deep) 60%,transparent)}}.bg-dream{background-color:var(--color-dream)}.bg-dream\/5{background-color:#a855f70d}@supports (color:color-mix(in lab,red,red)){.bg-dream\/5{background-color:color-mix(in oklab,var(--color-dream) 5%,transparent)}}.bg-dream\/10{background-color:#a855f71a}@supports (color:color-mix(in lab,red,red)){.bg-dream\/10{background-color:color-mix(in oklab,var(--color-dream) 10%,transparent)}}.bg-dream\/15{background-color:#a855f726}@supports (color:color-mix(in lab,red,red)){.bg-dream\/15{background-color:color-mix(in oklab,var(--color-dream) 15%,transparent)}}.bg-dream\/20{background-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.bg-dream\/20{background-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.bg-muted{background-color:var(--color-muted)}.bg-node-pattern{background-color:var(--color-node-pattern)}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500) 20%,transparent)}}.bg-recall{background-color:var(--color-recall)}.bg-recall\/10{background-color:#10b9811a}@supports (color:color-mix(in lab,red,red)){.bg-recall\/10{background-color:color-mix(in oklab,var(--color-recall) 10%,transparent)}}.bg-recall\/15{background-color:#10b98126}@supports (color:color-mix(in lab,red,red)){.bg-recall\/15{background-color:color-mix(in oklab,var(--color-recall) 15%,transparent)}}.bg-recall\/20{background-color:#10b98133}@supports (color:color-mix(in lab,red,red)){.bg-recall\/20{background-color:color-mix(in oklab,var(--color-recall) 20%,transparent)}}.bg-synapse{background-color:var(--color-synapse)}.bg-synapse-glow{background-color:var(--color-synapse-glow)}.bg-synapse\/10{background-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/10{background-color:color-mix(in oklab,var(--color-synapse) 10%,transparent)}}.bg-synapse\/15{background-color:#6366f126}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/15{background-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)}}.bg-synapse\/20{background-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/20{background-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.bg-synapse\/25{background-color:#6366f140}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/25{background-color:color-mix(in oklab,var(--color-synapse) 25%,transparent)}}.bg-synapse\/70{background-color:#6366f1b3}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/70{background-color:color-mix(in oklab,var(--color-synapse) 70%,transparent)}}.bg-transparent{background-color:#0000}.bg-void{background-color:var(--color-void)}.bg-void\/60{background-color:#05051099}@supports (color:color-mix(in lab,red,red)){.bg-void\/60{background-color:color-mix(in oklab,var(--color-void) 60%,transparent)}}.bg-warning{background-color:var(--color-warning)}.bg-warning\/5{background-color:#f59e0b0d}@supports (color:color-mix(in lab,red,red)){.bg-warning\/5{background-color:color-mix(in oklab,var(--color-warning) 5%,transparent)}}.bg-warning\/20{background-color:#f59e0b33}@supports (color:color-mix(in lab,red,red)){.bg-warning\/20{background-color:color-mix(in oklab,var(--color-warning) 20%,transparent)}}.bg-white\/\[0\.02\]{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.02\]{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.bg-white\/\[0\.06\]{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.06\]{background-color:color-mix(in oklab,var(--color-white) 6%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-dream{--tw-gradient-from:var(--color-dream);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-synapse{--tw-gradient-to:var(--color-synapse);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-\[10vh\]{padding-top:10vh}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-14{padding-left:calc(var(--spacing) * 14)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#E4C8FF\]{color:#e4c8ff}.text-amber-400{color:var(--color-amber-400)}.text-bright{color:var(--color-bright)}.text-decay{color:var(--color-decay)}.text-decay\/60{color:#ef444499}@supports (color:color-mix(in lab,red,red)){.text-decay\/60{color:color-mix(in oklab,var(--color-decay) 60%,transparent)}}.text-dim{color:var(--color-dim)}.text-dream{color:var(--color-dream)}.text-dream-glow{color:var(--color-dream-glow)}.text-dream\/40{color:#a855f766}@supports (color:color-mix(in lab,red,red)){.text-dream\/40{color:color-mix(in oklab,var(--color-dream) 40%,transparent)}}.text-dream\/80{color:#a855f7cc}@supports (color:color-mix(in lab,red,red)){.text-dream\/80{color:color-mix(in oklab,var(--color-dream) 80%,transparent)}}.text-memory{color:var(--color-memory)}.text-muted{color:var(--color-muted)}.text-muted\/50{color:#4a4a7a80}@supports (color:color-mix(in lab,red,red)){.text-muted\/50{color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.text-muted\/60{color:#4a4a7a99}@supports (color:color-mix(in lab,red,red)){.text-muted\/60{color:color-mix(in oklab,var(--color-muted) 60%,transparent)}}.text-node-pattern{color:var(--color-node-pattern)}.text-purple-400{color:var(--color-purple-400)}.text-recall{color:var(--color-recall)}.text-subtle{color:var(--color-subtle)}.text-synapse{color:var(--color-synapse)}.text-synapse-glow{color:var(--color-synapse-glow)}.text-text{color:var(--color-text)}.text-text\/80{color:#e0e0ffcc}@supports (color:color-mix(in lab,red,red)){.text-text\/80{color:color-mix(in oklab,var(--color-text) 80%,transparent)}}.text-warning{color:var(--color-warning)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.accent-synapse{accent-color:var(--color-synapse)}.accent-synapse-glow{accent-color:var(--color-synapse-glow)}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-35{opacity:.35}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow\!{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(239\,68\,68\,0\.7\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#ef4444b3);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(99\,102\,241\,0\.15\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#6366f126);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(99\,102\,241\,0\.18\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#6366f12e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(163\,63\,255\,0\.15\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#a33fff26);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_rgba\(99\,102\,241\,0\.3\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,#6366f14d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_rgba\(168\,85\,247\,0\.3\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,#a855f74d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-synapse\/10{--tw-shadow-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.shadow-synapse\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-synapse) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-synapse\/20{--tw-shadow-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.shadow-synapse\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-synapse) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-dream-glow{--tw-ring-color:var(--color-dream-glow)}.ring-dream\/60{--tw-ring-color:#a855f799}@supports (color:color-mix(in lab,red,red)){.ring-dream\/60{--tw-ring-color:color-mix(in oklab, var(--color-dream) 60%, transparent)}}.ring-recall\/30{--tw-ring-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.ring-recall\/30{--tw-ring-color:color-mix(in oklab, var(--color-recall) 30%, transparent)}}.ring-synapse\/60{--tw-ring-color:#6366f199}@supports (color:color-mix(in lab,red,red)){.ring-synapse\/60{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 60%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-muted::placeholder{color:var(--color-muted)}@media(hover:hover){.hover\:z-10:hover{z-index:10}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:scale-\[1\.03\]:hover{scale:1.03}.hover\:\!border-synapse\/30:hover{border-color:#6366f14d!important}@supports (color:color-mix(in lab,red,red)){.hover\:\!border-synapse\/30:hover{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)!important}}.hover\:border-synapse\/20:hover{border-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/20:hover{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.hover\:border-synapse\/30:hover{border-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/30:hover{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.hover\:border-synapse\/50:hover{border-color:#6366f180}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/50:hover{border-color:color-mix(in oklab,var(--color-synapse) 50%,transparent)}}.hover\:bg-decay\/20:hover{background-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.hover\:bg-decay\/20:hover{background-color:color-mix(in oklab,var(--color-decay) 20%,transparent)}}.hover\:bg-decay\/30:hover{background-color:#ef44444d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-decay\/30:hover{background-color:color-mix(in oklab,var(--color-decay) 30%,transparent)}}.hover\:bg-dream\/20:hover{background-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.hover\:bg-dream\/20:hover{background-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.hover\:bg-dream\/30:hover{background-color:#a855f74d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-dream\/30:hover{background-color:color-mix(in oklab,var(--color-dream) 30%,transparent)}}.hover\:bg-purple-500\/30:hover{background-color:#ac4bff4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-purple-500\/30:hover{background-color:color-mix(in oklab,var(--color-purple-500) 30%,transparent)}}.hover\:bg-recall\/30:hover{background-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-recall\/30:hover{background-color:color-mix(in oklab,var(--color-recall) 30%,transparent)}}.hover\:bg-synapse\/30:hover{background-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-synapse\/30:hover{background-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.hover\:bg-warning\/30:hover{background-color:#f59e0b4d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-warning\/30:hover{background-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.hover\:bg-white\/\[0\.02\]:hover{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.02\]:hover{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.hover\:bg-white\/\[0\.03\]:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.03\]:hover{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.hover\:bg-white\/\[0\.04\]:hover{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.04\]:hover{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.hover\:bg-white\/\[0\.08\]:hover{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.08\]:hover{background-color:color-mix(in oklab,var(--color-white) 8%,transparent)}}.hover\:text-bright:hover{color:var(--color-bright)}.hover\:text-dim:hover{color:var(--color-dim)}.hover\:text-synapse-glow:hover{color:var(--color-synapse-glow)}.hover\:text-text:hover{color:var(--color-text)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:\!border-synapse\/40:focus{border-color:#6366f166!important}@supports (color:color-mix(in lab,red,red)){.focus\:\!border-synapse\/40:focus{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)!important}}.focus\:border-dream\/40:focus{border-color:#a855f766}@supports (color:color-mix(in lab,red,red)){.focus\:border-dream\/40:focus{border-color:color-mix(in oklab,var(--color-dream) 40%,transparent)}}.focus\:border-synapse\/40:focus{border-color:#6366f166}@supports (color:color-mix(in lab,red,red)){.focus\:border-synapse\/40:focus{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-synapse-glow:focus{--tw-ring-color:var(--color-synapse-glow)}.focus\:ring-synapse\/20:focus{--tw-ring-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.focus\:ring-synapse\/20:focus{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 20%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-dream-glow\/60:focus-visible{--tw-ring-color:#c084fc99}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-dream-glow\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-dream-glow) 60%, transparent)}}.focus-visible\:ring-recall\/60:focus-visible{--tw-ring-color:#10b98199}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-recall\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-recall) 60%, transparent)}}.focus-visible\:ring-synapse\/60:focus-visible{--tw-ring-color:#6366f199}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-synapse\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 60%, transparent)}}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:block{display:block}.sm\:inline-flex{display:inline-flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media(min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline-flex{display:inline-flex}.md\:min-w-\[340px\]{min-width:340px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.md\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}.md\:flex-row{flex-direction:row}.md\:pt-\[15vh\]{padding-top:15vh}.md\:pb-0{padding-bottom:calc(var(--spacing) * 0)}}@media(min-width:64rem){.lg\:block{display:block}.lg\:inline-flex{display:inline-flex}.lg\:w-56{width:calc(var(--spacing) * 56)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[1fr_280px\]{grid-template-columns:1fr 280px}.lg\:grid-cols-\[1fr_340px\]{grid-template-columns:1fr 340px}.lg\:grid-cols-\[1fr_360px\]{grid-template-columns:1fr 360px}.lg\:grid-cols-\[minmax\(0\,1fr\)_340px\]{grid-template-columns:minmax(0,1fr) 340px}}.\[\&\:\:-webkit-slider-thumb\]\:h-3::-webkit-slider-thumb{height:calc(var(--spacing) * 3)}.\[\&\:\:-webkit-slider-thumb\]\:w-3::-webkit-slider-thumb{width:calc(var(--spacing) * 3)}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-thumb\]\:bg-synapse-glow::-webkit-slider-thumb{background-color:var(--color-synapse-glow)}.\[\&\:\:-webkit-slider-thumb\]\:shadow-\[0_0_8px_rgba\(129\,140\,248\,0\.4\)\]::-webkit-slider-thumb{--tw-shadow:0 0 8px var(--tw-shadow-color,#818cf866);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}html{background:var(--color-void);color:var(--color-text);font-family:var(--font-mono)}body{min-height:100vh;margin:0;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-subtle);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}.glass{-webkit-backdrop-filter:blur(20px)saturate(180%);background:#16163873;border:1px solid #6366f114;box-shadow:inset 0 1px #ffffff08,0 4px 24px #0000004d}.glass-subtle{-webkit-backdrop-filter:blur(12px)saturate(150%);background:#10102a66;border:1px solid #6366f10f;box-shadow:inset 0 1px #ffffff05,0 2px 12px #0003}.glass-sidebar{-webkit-backdrop-filter:blur(24px)saturate(180%);background:#0a0a1a99;border-right:1px solid #6366f11a;box-shadow:inset -1px 0 #ffffff05,4px 0 24px #0000004d}.glass-panel{-webkit-backdrop-filter:blur(24px)saturate(180%);background:#0a0a1acc;border:1px solid #6366f11a;box-shadow:inset 0 1px #ffffff08,0 8px 32px #0006}.glow-synapse{box-shadow:0 0 20px #6366f14d,0 0 60px #6366f11a}.glow-dream{box-shadow:0 0 20px #a855f74d,0 0 60px #a855f71a}.glow-memory{box-shadow:0 0 20px #3b82f64d,0 0 60px #3b82f61a}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}@keyframes orb-float-1{0%,to{transform:translate(0)scale(1)}25%{transform:translate(60px,-40px)scale(1.1)}50%{transform:translate(-30px,-80px)scale(.95)}75%{transform:translate(-60px,-20px)scale(1.05)}}@keyframes orb-float-2{0%,to{transform:translate(0)scale(1)}25%{transform:translate(-50px,30px)scale(1.08)}50%{transform:translate(40px,60px)scale(.92)}75%{transform:translate(20px,-40px)scale(1.03)}}@keyframes orb-float-3{0%,to{transform:translate(0)scale(1)}25%{transform:translate(30px,50px)scale(1.05)}50%{transform:translate(-60px,20px)scale(.98)}75%{transform:translate(40px,-30px)scale(1.1)}}.ambient-orb{filter:blur(80px);pointer-events:none;z-index:0;opacity:.35;border-radius:50%;position:fixed}.ambient-orb-1{background:radial-gradient(circle,#a855f766,#0000 70%);width:400px;height:400px;animation:20s ease-in-out infinite orb-float-1;top:-10%;right:-5%}.ambient-orb-2{background:radial-gradient(circle,#6366f159,#0000 70%);width:350px;height:350px;animation:25s ease-in-out infinite orb-float-2;bottom:-15%;left:-5%}.ambient-orb-3{background:radial-gradient(circle,#f59e0b33,#0000 70%);width:300px;height:300px;animation:22s ease-in-out infinite orb-float-3;top:40%;left:40%}.nav-active-border{position:relative}.nav-active-border:before{content:"";background:linear-gradient(180deg,var(--color-synapse),var(--color-dream),var(--color-synapse));background-size:100% 200%;border-radius:1px;width:2px;animation:3s ease-in-out infinite gradient-shift;position:absolute;top:4px;bottom:4px;left:0}@keyframes gradient-shift{0%,to{background-position:0 0}50%{background-position:0 100%}}@keyframes float{0%,to{transform:translateY(0)translate(0)}25%{transform:translateY(-10px)translate(5px)}50%{transform:translateY(-5px)translate(-5px)}75%{transform:translateY(-15px)translate(3px)}}.retention-critical{color:var(--color-decay)}.retention-low{color:var(--color-warning)}.retention-good{color:var(--color-recall)}.retention-strong{color:var(--color-synapse)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}.toast-layer.svelte-pry2ep{position:fixed;z-index:60;pointer-events:none;display:flex;flex-direction:column;gap:.5rem;right:1.25rem;bottom:1.25rem;max-width:22rem;width:calc(100vw - 2.5rem)}@media(max-width:768px){.toast-layer.svelte-pry2ep{right:.75rem;left:.75rem;bottom:auto;top:5.25rem;max-width:none;width:auto;align-items:stretch}}.toast-item.svelte-pry2ep{pointer-events:auto;position:relative;display:flex;gap:.75rem;align-items:stretch;text-align:left;font:inherit;color:inherit;background:#0c0e16b8;backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border:1px solid rgba(255,255,255,.06);border-radius:.75rem;padding:.75rem .9rem .75rem .5rem;overflow:hidden;box-shadow:0 10px 40px -12px #000c,0 0 22px -6px var(--toast-color);cursor:pointer;animation:svelte-pry2ep-toast-in .32s cubic-bezier(.16,1,.3,1);transform-origin:right center;transition:transform .15s ease,box-shadow .15s ease}.toast-item.svelte-pry2ep:hover{transform:translateY(-1px) scale(1.015);box-shadow:0 14px 48px -12px #000000d9,0 0 32px -4px var(--toast-color)}.toast-item.svelte-pry2ep:focus-visible{outline:1px solid var(--toast-color);outline-offset:2px}.toast-accent.svelte-pry2ep{width:3px;border-radius:2px;background:var(--toast-color);box-shadow:0 0 10px var(--toast-color);flex-shrink:0}.toast-body.svelte-pry2ep{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.toast-head.svelte-pry2ep{display:flex;align-items:center;gap:.5rem}.toast-icon.svelte-pry2ep{color:var(--toast-color);font-size:.95rem;text-shadow:0 0 8px var(--toast-color);line-height:1;width:1rem;display:inline-flex;justify-content:center}.toast-title.svelte-pry2ep{color:#f5f5fa;font-size:.82rem;font-weight:600;letter-spacing:.01em}.toast-sub.svelte-pry2ep{color:#b0b6c4;font-size:.74rem;line-height:1.35;padding-left:1.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-progress.svelte-pry2ep{position:absolute;left:0;bottom:0;height:2px;width:100%;background:#ffffff0a}.toast-progress-fill.svelte-pry2ep{height:100%;background:var(--toast-color);opacity:.55;transform-origin:left center;animation:svelte-pry2ep-toast-progress var(--toast-dwell) linear forwards}.toast-item.svelte-pry2ep:hover .toast-progress-fill:where(.svelte-pry2ep),.toast-item.svelte-pry2ep:focus-visible .toast-progress-fill:where(.svelte-pry2ep){animation-play-state:paused}@keyframes svelte-pry2ep-toast-in{0%{opacity:0;transform:translate(24px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}@media(max-width:768px){.toast-item.svelte-pry2ep{transform-origin:top center;animation:svelte-pry2ep-toast-in-mobile .3s cubic-bezier(.16,1,.3,1)}}@keyframes svelte-pry2ep-toast-in-mobile{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes svelte-pry2ep-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.toast-item.svelte-pry2ep{animation:none}.toast-progress-fill.svelte-pry2ep{animation:none;transform:scaleX(.5)}}.strip-item.svelte-1kk3799{display:inline-flex;align-items:center;gap:.4rem;padding:0 .75rem;white-space:nowrap;flex-shrink:0}.strip-divider.svelte-1kk3799{width:1px;height:14px;background:#6366f11f;flex-shrink:0}.ambient-strip.ambient-flash.svelte-1kk3799{background:linear-gradient(90deg,#ef444414,#ef444400 70%),#0006;border-bottom-color:#ef444459;transition:background .3s ease,border-color .3s ease}@keyframes svelte-1kk3799-ping-slow{0%{transform:scale(1);opacity:.8}80%,to{transform:scale(2);opacity:0}}.animate-ping-slow{animation:svelte-1kk3799-ping-slow 2.2s cubic-bezier(0,0,.2,1) infinite}@media(prefers-reduced-motion:reduce){.ambient-strip.svelte-1kk3799 .animate-ping,.ambient-strip.svelte-1kk3799 .animate-ping-slow,.ambient-strip.svelte-1kk3799 .animate-pulse{animation:none!important}}.verdict-bar.svelte-1j425e6{border-bottom:1px solid rgba(255,255,255,.06);background:#080912b8;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:0 6px 24px #0000002e}.verdict-summary.svelte-1j425e6{width:100%;min-height:2.75rem;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.55rem 1rem;color:var(--color-text);text-align:left;font:inherit}.sr-only.svelte-1j425e6{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.label.svelte-1j425e6,.field-label.svelte-1j425e6,.appeal-row.svelte-1j425e6>span:where(.svelte-1j425e6){color:var(--color-dim);font-size:.68rem;text-transform:uppercase;letter-spacing:0}.levels.svelte-1j425e6{display:flex;align-items:center;gap:.25rem}.levels.svelte-1j425e6 span:where(.svelte-1j425e6){border:1px solid rgba(255,255,255,.08);border-radius:.35rem;padding:.18rem .38rem;color:var(--color-muted);font-size:.64rem;line-height:1}.levels.svelte-1j425e6 span.active:where(.svelte-1j425e6){color:var(--color-bright);border-color:var(--verdict-color);background:color-mix(in srgb,var(--verdict-color) 18%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--verdict-color) 28%,transparent)}.summary-text.svelte-1j425e6{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:var(--color-dim)}.when.svelte-1j425e6{color:var(--color-muted);font-size:.68rem}.receipt.svelte-1j425e6{margin:0 1rem .75rem;border:1px solid rgba(255,255,255,.08);border-radius:.5rem;background:#0a0a1ac7;padding:.85rem}.receipt-grid.svelte-1j425e6{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(10rem,.8fr) minmax(0,1.1fr) minmax(0,1.1fr);gap:.85rem}.receipt.svelte-1j425e6 p:where(.svelte-1j425e6),.receipt.svelte-1j425e6 li:where(.svelte-1j425e6){margin:.25rem 0 0;color:var(--color-text);font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}.receipt.svelte-1j425e6 ul:where(.svelte-1j425e6){margin:.25rem 0 0;padding-left:1rem}.appeal-row.svelte-1j425e6{display:flex;align-items:center;gap:.4rem;margin-top:.85rem;flex-wrap:wrap}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6),.appeal-row.svelte-1j425e6 p:where(.svelte-1j425e6){border:1px solid rgba(255,255,255,.1);border-radius:.4rem;padding:.35rem .6rem;color:var(--color-text);background:#ffffff0a;font-size:.72rem;margin:0}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6):hover:not(:disabled),.verdict-summary.svelte-1j425e6:hover{background:#ffffff0d}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6):disabled{opacity:.55;cursor:wait}.tone-pass.svelte-1j425e6,.tone-note.svelte-1j425e6{--verdict-color: #10b981}.tone-caution.svelte-1j425e6{--verdict-color: #f59e0b}.tone-veto.svelte-1j425e6{--verdict-color: #ef4444}.tone-appealed.svelte-1j425e6{--verdict-color: #818cf8}@media(max-width:900px){.verdict-summary.svelte-1j425e6{grid-template-columns:auto minmax(0,1fr) auto}.levels.svelte-1j425e6{grid-column:1 / -1;order:4;overflow-x:auto;padding-bottom:.1rem}.receipt-grid.svelte-1j425e6{grid-template-columns:1fr}}.theme-toggle.svelte-1cmi4dh{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:8px;background:#6366f10f;border:1px solid rgba(99,102,241,.14);color:var(--color-text);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .12s ease;-webkit-tap-highlight-color:transparent}.theme-toggle.svelte-1cmi4dh:hover{background:#6366f124;border-color:#6366f14d;color:var(--color-bright)}.theme-toggle.svelte-1cmi4dh:active{transform:scale(.94)}.theme-toggle.svelte-1cmi4dh:focus-visible{outline:1px solid var(--color-synapse);outline-offset:2px}.icon-wrap.svelte-1cmi4dh{position:relative;width:18px;height:18px;display:inline-block}.icon.svelte-1cmi4dh{position:absolute;top:0;right:0;bottom:0;left:0;width:18px;height:18px;opacity:0;transform:scale(.7) rotate(-30deg);transition:opacity .2s ease,transform .2s cubic-bezier(.16,1,.3,1);pointer-events:none}.icon.active.svelte-1cmi4dh{opacity:1;transform:scale(1) rotate(0)}.theme-toggle[data-mode=dark].svelte-1cmi4dh{color:var(--color-synapse-glow, #818cf8)}.theme-toggle[data-mode=light].svelte-1cmi4dh{color:var(--color-warning, #f59e0b)}.theme-toggle[data-mode=auto].svelte-1cmi4dh{color:var(--color-dream-glow, #c084fc)}@media(prefers-reduced-motion:reduce){.theme-toggle.svelte-1cmi4dh,.icon.svelte-1cmi4dh{transition:none}}.safe-bottom.svelte-12qhfyh{padding-bottom:env(safe-area-inset-bottom,0px)}@keyframes svelte-12qhfyh-page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-page-in.svelte-12qhfyh{animation:svelte-12qhfyh-page-in .2s ease-out} diff --git a/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.br b/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.br deleted file mode 100644 index ace1ff437589234eefa27803dc60b61a0f2af0b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10347 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 J4!!Y4$1lz*BLM&a diff --git a/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.gz b/apps/dashboard/build/_app/immutable/assets/0.Bor8S3Zo.css.gz deleted file mode 100644 index 468dbeb3dd93dac70b6caa10ccaabedab36faa9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12350 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 diff --git a/apps/dashboard/build/_app/immutable/assets/0.CLR80qKm.css b/apps/dashboard/build/_app/immutable/assets/0.CLR80qKm.css new file mode 100644 index 0000000..87ee11f --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/0.CLR80qKm.css @@ -0,0 +1 @@ +/*! tailwindcss v4.2.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--angle:0deg;--shine:0%}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"JetBrains Mono", "Fira Code", "SF Mono", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-void:#050510;--color-abyss:#0a0a1a;--color-deep:#10102a;--color-surface:#161638;--color-elevated:#1e1e4a;--color-subtle:#2a2a5e;--color-muted:#4a4a7a;--color-dim:#7a7aaa;--color-text:#e0e0ff;--color-bright:#fff;--color-synapse:#6366f1;--color-synapse-glow:#818cf8;--color-dream:#a855f7;--color-dream-glow:#c084fc;--color-recall:#10b981;--color-decay:#ef4444;--color-warning:#f59e0b;--color-node-pattern:#ec4899}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\!{visibility:visible!important}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.start\!{inset-inline-start:var(--spacing)!important}.end{inset-inline-end:var(--spacing)}.end\!{inset-inline-end:var(--spacing)!important}.top-0{top:calc(var(--spacing) * 0)}.top-0\.5{top:calc(var(--spacing) * .5)}.top-10{top:calc(var(--spacing) * 10)}.top-20{top:calc(var(--spacing) * 20)}.right-0{right:calc(var(--spacing) * 0)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-\[29px\]{left:-29px}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-\[-12px\]{margin-top:-12px}.mr-1{margin-right:calc(var(--spacing) * 1)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-40{height:calc(var(--spacing) * 40)}.h-\[100dvh\]{height:100dvh}.h-\[520px\]{height:520px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[620px\]{max-height:620px}.max-h-dvh{max-height:100dvh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-\[520px\]{min-height:520px}.min-h-full{min-height:100%}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-96{width:calc(var(--spacing) * 96)}.w-\[3px\]{width:3px}.w-\[6ch\]{width:6ch}.w-\[90\%\]{width:90%}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-16{min-width:calc(var(--spacing) * 16)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-\[3\.5rem\]{min-width:3.5rem}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-separate{border-collapse:separate}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-none{cursor:none}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\[2px\]{gap:2px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-\[\#5dcaa5\]{border-color:#5dcaa5}.border-\[\#5dcaa5\]\/20{border-color:#5dcaa533}.border-\[\#5dcaa5\]\/25{border-color:#5dcaa540}.border-\[\#5dcaa5\]\/40{border-color:#5dcaa566}.border-\[\#22C7DE\]\/25{border-color:#22c7de40}.border-\[\#A33FFF\]\/40{border-color:#a33fff66}.border-\[\#F4F1D0\]\/18{border-color:#f4f1d02e}.border-\[\#FF3B30\]\/20{border-color:#ff3b3033}.border-\[\#FF3B30\]\/24{border-color:#ff3b303d}.border-\[\#FF3B30\]\/35{border-color:#ff3b3059}.border-\[\#ff2d55\]\/40{border-color:#ff2d5566}.border-dream-glow\/40{border-color:#c084fc66}@supports (color:color-mix(in lab,red,red)){.border-dream-glow\/40{border-color:color-mix(in oklab,var(--color-dream-glow) 40%,transparent)}}.border-dream\/20{border-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.border-dream\/20{border-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.border-dream\/40{border-color:#a855f766}@supports (color:color-mix(in lab,red,red)){.border-dream\/40{border-color:color-mix(in oklab,var(--color-dream) 40%,transparent)}}.border-recall\/25{border-color:#10b98140}@supports (color:color-mix(in lab,red,red)){.border-recall\/25{border-color:color-mix(in oklab,var(--color-recall) 25%,transparent)}}.border-recall\/40{border-color:#10b98166}@supports (color:color-mix(in lab,red,red)){.border-recall\/40{border-color:color-mix(in oklab,var(--color-recall) 40%,transparent)}}.border-red-900\/50{border-color:#82181a80}@supports (color:color-mix(in lab,red,red)){.border-red-900\/50{border-color:color-mix(in oklab,var(--color-red-900) 50%,transparent)}}.border-subtle\/15{border-color:#2a2a5e26}@supports (color:color-mix(in lab,red,red)){.border-subtle\/15{border-color:color-mix(in oklab,var(--color-subtle) 15%,transparent)}}.border-subtle\/20{border-color:#2a2a5e33}@supports (color:color-mix(in lab,red,red)){.border-subtle\/20{border-color:color-mix(in oklab,var(--color-subtle) 20%,transparent)}}.border-subtle\/30{border-color:#2a2a5e4d}@supports (color:color-mix(in lab,red,red)){.border-subtle\/30{border-color:color-mix(in oklab,var(--color-subtle) 30%,transparent)}}.border-synapse\/5{border-color:#6366f10d}@supports (color:color-mix(in lab,red,red)){.border-synapse\/5{border-color:color-mix(in oklab,var(--color-synapse) 5%,transparent)}}.border-synapse\/10{border-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.border-synapse\/10{border-color:color-mix(in oklab,var(--color-synapse) 10%,transparent)}}.border-synapse\/15{border-color:#6366f126}@supports (color:color-mix(in lab,red,red)){.border-synapse\/15{border-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)}}.border-synapse\/20{border-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.border-synapse\/20{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.border-synapse\/25{border-color:#6366f140}@supports (color:color-mix(in lab,red,red)){.border-synapse\/25{border-color:color-mix(in oklab,var(--color-synapse) 25%,transparent)}}.border-synapse\/30{border-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.border-synapse\/30{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.border-synapse\/40{border-color:#6366f166}@supports (color:color-mix(in lab,red,red)){.border-synapse\/40{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)}}.border-transparent{border-color:#0000}.border-warning\/20{border-color:#f59e0b33}@supports (color:color-mix(in lab,red,red)){.border-warning\/20{border-color:color-mix(in oklab,var(--color-warning) 20%,transparent)}}.border-warning\/30{border-color:#f59e0b4d}@supports (color:color-mix(in lab,red,red)){.border-warning\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.border-warning\/50{border-color:#f59e0b80}@supports (color:color-mix(in lab,red,red)){.border-warning\/50{border-color:color-mix(in oklab,var(--color-warning) 50%,transparent)}}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\/5{border-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.border-t-synapse{border-top-color:var(--color-synapse)}.bg-\[\#1a0508\]\/85{background-color:#1a0508d9}.bg-\[\#5dcaa5\]{background-color:#5dcaa5}.bg-\[\#5dcaa5\]\/15{background-color:#5dcaa526}.bg-\[\#5dcaa5\]\/25{background-color:#5dcaa540}.bg-\[\#03040a\]{background-color:#03040a}.bg-\[\#05060a\]{background-color:#05060a}.bg-\[\#05060a\]\/70{background-color:#05060ab3}.bg-\[\#05060a\]\/80{background-color:#05060acc}.bg-\[\#020307\]{background-color:#020307}.bg-\[\#020307\]\/70{background-color:#020307b3}.bg-\[\#160407\]\/70{background-color:#160407b3}.bg-\[\#A33FFF\]{background-color:#a33fff}.bg-\[\#A33FFF\]\/10{background-color:#a33fff1a}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\/30{background-color:color-mix(in oklab,var(--color-black) 30%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-decay{background-color:var(--color-decay)}.bg-decay\/20{background-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.bg-decay\/20{background-color:color-mix(in oklab,var(--color-decay) 20%,transparent)}}.bg-deep{background-color:var(--color-deep)}.bg-deep\/60{background-color:#10102a99}@supports (color:color-mix(in lab,red,red)){.bg-deep\/60{background-color:color-mix(in oklab,var(--color-deep) 60%,transparent)}}.bg-dream{background-color:var(--color-dream)}.bg-dream\/10{background-color:#a855f71a}@supports (color:color-mix(in lab,red,red)){.bg-dream\/10{background-color:color-mix(in oklab,var(--color-dream) 10%,transparent)}}.bg-dream\/20{background-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.bg-dream\/20{background-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.bg-muted{background-color:var(--color-muted)}.bg-node-pattern{background-color:var(--color-node-pattern)}.bg-recall{background-color:var(--color-recall)}.bg-recall\/10{background-color:#10b9811a}@supports (color:color-mix(in lab,red,red)){.bg-recall\/10{background-color:color-mix(in oklab,var(--color-recall) 10%,transparent)}}.bg-recall\/15{background-color:#10b98126}@supports (color:color-mix(in lab,red,red)){.bg-recall\/15{background-color:color-mix(in oklab,var(--color-recall) 15%,transparent)}}.bg-recall\/20{background-color:#10b98133}@supports (color:color-mix(in lab,red,red)){.bg-recall\/20{background-color:color-mix(in oklab,var(--color-recall) 20%,transparent)}}.bg-red-950\/30{background-color:#4608094d}@supports (color:color-mix(in lab,red,red)){.bg-red-950\/30{background-color:color-mix(in oklab,var(--color-red-950) 30%,transparent)}}.bg-synapse-glow{background-color:var(--color-synapse-glow)}.bg-synapse\/10{background-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/10{background-color:color-mix(in oklab,var(--color-synapse) 10%,transparent)}}.bg-synapse\/15{background-color:#6366f126}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/15{background-color:color-mix(in oklab,var(--color-synapse) 15%,transparent)}}.bg-synapse\/20{background-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/20{background-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.bg-synapse\/25{background-color:#6366f140}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/25{background-color:color-mix(in oklab,var(--color-synapse) 25%,transparent)}}.bg-synapse\/70{background-color:#6366f1b3}@supports (color:color-mix(in lab,red,red)){.bg-synapse\/70{background-color:color-mix(in oklab,var(--color-synapse) 70%,transparent)}}.bg-transparent{background-color:#0000}.bg-void{background-color:var(--color-void)}.bg-void\/60{background-color:#05051099}@supports (color:color-mix(in lab,red,red)){.bg-void\/60{background-color:color-mix(in oklab,var(--color-void) 60%,transparent)}}.bg-warning{background-color:var(--color-warning)}.bg-warning\/5{background-color:#f59e0b0d}@supports (color:color-mix(in lab,red,red)){.bg-warning\/5{background-color:color-mix(in oklab,var(--color-warning) 5%,transparent)}}.bg-warning\/10{background-color:#f59e0b1a}@supports (color:color-mix(in lab,red,red)){.bg-warning\/10{background-color:color-mix(in oklab,var(--color-warning) 10%,transparent)}}.bg-white\/\[0\.02\]{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.02\]{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.bg-white\/\[0\.06\]{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.06\]{background-color:color-mix(in oklab,var(--color-white) 6%,transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-\[\#05060a\]\/85{--tw-gradient-from:oklab(12.2919% .000261273 -.0107539/.85);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-dream{--tw-gradient-from:var(--color-dream);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-synapse{--tw-gradient-to:var(--color-synapse);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.\[padding-top\:max\(0\.75rem\,env\(safe-area-inset-top\)\)\]{padding-top:max(.75rem,env(safe-area-inset-top))}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-\[10vh\]{padding-top:10vh}.\[padding-right\:max\(0\.75rem\,env\(safe-area-inset-right\)\)\]{padding-right:max(.75rem,env(safe-area-inset-right))}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-28{padding-bottom:calc(var(--spacing) * 28)}.\[padding-left\:max\(0\.75rem\,env\(safe-area-inset-left\)\)\]{padding-left:max(.75rem,env(safe-area-inset-left))}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-wrap{text-wrap:wrap}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#5dcaa5\]{color:#5dcaa5}.text-\[\#5dcaa5\]\/60{color:#5dcaa599}.text-\[\#5dcaa5\]\/70{color:#5dcaa5b3}.text-\[\#7fe6c0\]{color:#7fe6c0}.text-\[\#22C7DE\]\/60{color:#22c7de99}.text-\[\#22C7DE\]\/80{color:#22c7decc}.text-\[\#05060a\]{color:#05060a}.text-\[\#E4C8FF\]{color:#e4c8ff}.text-\[\#F4F1D0\]{color:#f4f1d0}.text-\[\#FF3B30\]{color:#ff3b30}.text-\[\#a6dcff\]{color:#a6dcff}.text-\[\#ff5c78\]{color:#ff5c78}.text-\[\#ff5c78\]\/70{color:#ff5c78b3}.text-\[\#ffd0d8\]{color:#ffd0d8}.text-\[\#ffffff\]\/\[0\.5\]{color:#ffffff80}.text-\[\#ffffff\]\/\[0\.55\]{color:#ffffff8c}.text-bright{color:var(--color-bright)}.text-decay{color:var(--color-decay)}.text-dim{color:var(--color-dim)}.text-dream-glow{color:var(--color-dream-glow)}.text-dream\/80{color:#a855f7cc}@supports (color:color-mix(in lab,red,red)){.text-dream\/80{color:color-mix(in oklab,var(--color-dream) 80%,transparent)}}.text-muted{color:var(--color-muted)}.text-muted\/50{color:#4a4a7a80}@supports (color:color-mix(in lab,red,red)){.text-muted\/50{color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.text-muted\/60{color:#4a4a7a99}@supports (color:color-mix(in lab,red,red)){.text-muted\/60{color:color-mix(in oklab,var(--color-muted) 60%,transparent)}}.text-node-pattern{color:var(--color-node-pattern)}.text-recall{color:var(--color-recall)}.text-red-400{color:var(--color-red-400)}.text-subtle{color:var(--color-subtle)}.text-synapse{color:var(--color-synapse)}.text-synapse-glow{color:var(--color-synapse-glow)}.text-text{color:var(--color-text)}.text-text\/80{color:#e0e0ffcc}@supports (color:color-mix(in lab,red,red)){.text-text\/80{color:color-mix(in oklab,var(--color-text) 80%,transparent)}}.text-warning{color:var(--color-warning)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.\[font-variant-numeric\:tabular-nums\]{font-variant-numeric:tabular-nums}.underline-offset-4{text-underline-offset:4px}.accent-\[\#22C7DE\]{accent-color:#22c7de}.accent-synapse{accent-color:var(--color-synapse)}.opacity-35{opacity:.35}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow\!{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(239\,68\,68\,0\.7\)\]{--tw-shadow:0 0 10px var(--tw-shadow-color,#ef4444b3);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(99\,102\,241\,0\.15\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#6366f126);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(99\,102\,241\,0\.18\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#6366f12e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(163\,63\,255\,0\.15\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#a33fff26);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_rgba\(99\,102\,241\,0\.3\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,#6366f14d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_16px_rgba\(168\,85\,247\,0\.3\)\]{--tw-shadow:0 0 16px var(--tw-shadow-color,#a855f74d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_40px_rgba\(255\,59\,48\,0\.12\)\]{--tw-shadow:0 0 40px var(--tw-shadow-color,#ff3b301f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-synapse\/10{--tw-shadow-color:#6366f11a}@supports (color:color-mix(in lab,red,red)){.shadow-synapse\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-synapse) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-synapse\/20{--tw-shadow-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.shadow-synapse\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-synapse) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-dream-glow{--tw-ring-color:var(--color-dream-glow)}.ring-dream\/60{--tw-ring-color:#a855f799}@supports (color:color-mix(in lab,red,red)){.ring-dream\/60{--tw-ring-color:color-mix(in oklab, var(--color-dream) 60%, transparent)}}.ring-recall\/30{--tw-ring-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.ring-recall\/30{--tw-ring-color:color-mix(in oklab, var(--color-recall) 30%, transparent)}}.ring-synapse\/60{--tw-ring-color:#6366f199}@supports (color:color-mix(in lab,red,red)){.ring-synapse\/60{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 60%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.placeholder\:text-muted::placeholder{color:var(--color-muted)}@media(hover:hover){.hover\:z-10:hover{z-index:10}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:scale-\[1\.03\]:hover{scale:1.03}.hover\:rotate-180:hover{rotate:180deg}.hover\:border-\[\#5dcaa5\]\/50:hover{border-color:#5dcaa580}.hover\:border-\[\#5dcaa5\]\/60:hover{border-color:#5dcaa599}.hover\:border-\[\#22C7DE\]\/50:hover{border-color:#22c7de80}.hover\:border-\[\#FF3B30\]\/40:hover{border-color:#ff3b3066}.hover\:border-synapse\/20:hover{border-color:#6366f133}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/20:hover{border-color:color-mix(in oklab,var(--color-synapse) 20%,transparent)}}.hover\:border-synapse\/30:hover{border-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.hover\:border-synapse\/30:hover{border-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.hover\:bg-\[\#5dcaa5\]\/25:hover{background-color:#5dcaa540}.hover\:bg-decay\/30:hover{background-color:#ef44444d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-decay\/30:hover{background-color:color-mix(in oklab,var(--color-decay) 30%,transparent)}}.hover\:bg-dream\/20:hover{background-color:#a855f733}@supports (color:color-mix(in lab,red,red)){.hover\:bg-dream\/20:hover{background-color:color-mix(in oklab,var(--color-dream) 20%,transparent)}}.hover\:bg-dream\/30:hover{background-color:#a855f74d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-dream\/30:hover{background-color:color-mix(in oklab,var(--color-dream) 30%,transparent)}}.hover\:bg-recall\/30:hover{background-color:#10b9814d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-recall\/30:hover{background-color:color-mix(in oklab,var(--color-recall) 30%,transparent)}}.hover\:bg-synapse\/30:hover{background-color:#6366f14d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-synapse\/30:hover{background-color:color-mix(in oklab,var(--color-synapse) 30%,transparent)}}.hover\:bg-white\/\[0\.02\]:hover{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.02\]:hover{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.hover\:bg-white\/\[0\.03\]:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.03\]:hover{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.hover\:bg-white\/\[0\.04\]:hover{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.04\]:hover{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.hover\:bg-white\/\[0\.08\]:hover{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.08\]:hover{background-color:color-mix(in oklab,var(--color-white) 8%,transparent)}}.hover\:text-\[\#5dcaa5\]:hover{color:#5dcaa5}.hover\:text-\[\#22C7DE\]:hover{color:#22c7de}.hover\:text-\[\#FF3B30\]:hover{color:#ff3b30}.hover\:text-bright:hover{color:var(--color-bright)}.hover\:text-dim:hover{color:var(--color-dim)}.hover\:text-text:hover{color:var(--color-text)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:\!border-synapse\/40:focus{border-color:#6366f166!important}@supports (color:color-mix(in lab,red,red)){.focus\:\!border-synapse\/40:focus{border-color:color-mix(in oklab,var(--color-synapse) 40%,transparent)!important}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-synapse-glow:focus{--tw-ring-color:var(--color-synapse-glow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-dream-glow\/60:focus-visible{--tw-ring-color:#c084fc99}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-dream-glow\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-dream-glow) 60%, transparent)}}.focus-visible\:ring-synapse\/60:focus-visible{--tw-ring-color:#6366f199}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-synapse\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-synapse) 60%, transparent)}}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:top-4{top:calc(var(--spacing) * 4)}.sm\:right-4{right:calc(var(--spacing) * 4)}.sm\:left-4{left:calc(var(--spacing) * 4)}.sm\:ml-auto{margin-left:auto}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:w-56{width:calc(var(--spacing) * 56)}.sm\:w-auto{width:auto}.sm\:max-w-md{max-width:var(--container-md)}.sm\:flex-1{flex:1}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:p-0{padding:calc(var(--spacing) * 0)}.sm\:\[padding-top\:0\]{padding-top:0}.sm\:\[padding-right\:0\]{padding-right:0}.sm\:\[padding-left\:0\]{padding-left:0}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media(min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline{display:inline}.md\:inline-flex{display:inline-flex}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:pt-\[15vh\]{padding-top:15vh}.md\:pb-0{padding-bottom:calc(var(--spacing) * 0)}}@media(min-width:64rem){.lg\:block{display:block}.lg\:inline{display:inline}.lg\:inline-flex{display:inline-flex}.lg\:w-56{width:calc(var(--spacing) * 56)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[1fr_340px\]{grid-template-columns:1fr 340px}.lg\:grid-cols-\[minmax\(0\,0\.9fr\)_380px\]{grid-template-columns:minmax(0,.9fr) 380px}}.\[\&\:\:-webkit-slider-thumb\]\:h-3::-webkit-slider-thumb{height:calc(var(--spacing) * 3)}.\[\&\:\:-webkit-slider-thumb\]\:w-3::-webkit-slider-thumb{width:calc(var(--spacing) * 3)}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-thumb\]\:bg-synapse-glow::-webkit-slider-thumb{background-color:var(--color-synapse-glow)}.\[\&\:\:-webkit-slider-thumb\]\:shadow-\[0_0_8px_rgba\(129\,140\,248\,0\.4\)\]::-webkit-slider-thumb{--tw-shadow:0 0 8px var(--tw-shadow-color,#818cf866);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}html{background:var(--color-void);color:var(--color-text);font-family:var(--font-mono)}@supports (color:oklch(0 0 0)){:root{--color-synapse:oklch(58.5% .222 277);--color-synapse-glow:oklch(68.5% .169 277);--color-dream:oklch(62.7% .265 304);--color-dream-glow:oklch(71.4% .203 305);--color-memory:oklch(62.3% .214 259);--color-recall:oklch(69.6% .17 162);--color-decay:oklch(63.7% .237 25);--color-warning:oklch(76.9% .188 70);--color-node-fact:oklch(62.3% .214 259);--color-node-concept:oklch(60.6% .25 292);--color-node-event:oklch(76.9% .188 70);--color-node-person:oklch(69.6% .17 162);--color-node-place:oklch(71.5% .143 215);--color-node-note:oklch(55.1% .027 264);--color-node-pattern:oklch(65.6% .241 354);--color-node-decision:oklch(63.7% .237 25)}}body{min-height:100vh;margin:0;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-subtle);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-muted)}.glass{-webkit-backdrop-filter:blur(20px)saturate(180%);background:#16163873;border:1px solid #6366f114;box-shadow:inset 0 1px #ffffff08,0 4px 24px #0000004d}.glass-subtle{-webkit-backdrop-filter:blur(12px)saturate(150%);background:#10102a66;border:1px solid #6366f10f;box-shadow:inset 0 1px #ffffff05,0 2px 12px #0003}.glass-sidebar{-webkit-backdrop-filter:blur(24px)saturate(180%);background:#0a0a1a99;border-right:1px solid #6366f11a;box-shadow:inset -1px 0 #ffffff05,4px 0 24px #0000004d}.glass-panel{-webkit-backdrop-filter:blur(24px)saturate(180%);background:#0a0a1acc;border:1px solid #6366f11a;box-shadow:inset 0 1px #ffffff08,0 8px 32px #0006}.glow-synapse{box-shadow:0 0 20px #6366f14d,0 0 60px #6366f11a}.glow-dream{box-shadow:0 0 20px #a855f74d,0 0 60px #a855f71a}.glow-memory{box-shadow:0 0 20px #3b82f64d,0 0 60px #3b82f61a}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}@keyframes orb-float-1{0%,to{transform:translate(0)scale(1)}25%{transform:translate(60px,-40px)scale(1.1)}50%{transform:translate(-30px,-80px)scale(.95)}75%{transform:translate(-60px,-20px)scale(1.05)}}@keyframes orb-float-2{0%,to{transform:translate(0)scale(1)}25%{transform:translate(-50px,30px)scale(1.08)}50%{transform:translate(40px,60px)scale(.92)}75%{transform:translate(20px,-40px)scale(1.03)}}@keyframes orb-float-3{0%,to{transform:translate(0)scale(1)}25%{transform:translate(30px,50px)scale(1.05)}50%{transform:translate(-60px,20px)scale(.98)}75%{transform:translate(40px,-30px)scale(1.1)}}.ambient-orb{filter:blur(80px);pointer-events:none;z-index:0;opacity:.35;border-radius:50%;position:fixed}.ambient-orb-1{background:radial-gradient(circle,#a855f766,#0000 70%);width:400px;height:400px;animation:20s ease-in-out infinite orb-float-1;top:-10%;right:-5%}.ambient-orb-2{background:radial-gradient(circle,#6366f159,#0000 70%);width:350px;height:350px;animation:25s ease-in-out infinite orb-float-2;bottom:-15%;left:-5%}.ambient-orb-3{background:radial-gradient(circle,#f59e0b33,#0000 70%);width:300px;height:300px;animation:22s ease-in-out infinite orb-float-3;top:40%;left:40%}.nav-active-border{position:relative}.nav-active-border:before{content:"";background:linear-gradient(180deg,var(--color-synapse),var(--color-dream),var(--color-synapse));background-size:100% 200%;border-radius:1px;width:2px;animation:3s ease-in-out infinite gradient-shift;position:absolute;top:4px;bottom:4px;left:0}@keyframes gradient-shift{0%,to{background-position:0 0}50%{background-position:0 100%}}@keyframes float{0%,to{transform:translateY(0)translate(0)}25%{transform:translateY(-10px)translate(5px)}50%{transform:translateY(-5px)translate(-5px)}75%{transform:translateY(-15px)translate(3px)}}.retention-critical{color:var(--color-decay)}.retention-low{color:var(--color-warning)}.retention-good{color:var(--color-recall)}.retention-strong{color:var(--color-synapse)}@media not all and (prefers-reduced-motion:reduce){::view-transition-old(root){animation-duration:.18s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.18s;animation-timing-function:ease}::view-transition-old(root){animation-name:vt-fade-out}::view-transition-new(root){animation-name:vt-fade-in}@keyframes vt-fade-out{0%{opacity:1}to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}to{opacity:1}}}@property --angle{syntax:"";inherits:false;initial-value:0deg}@property --shine{syntax:"";inherits:false;initial-value:0%}.reveal{opacity:0;transform:translateY(var(--reveal-y,16px));transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s);will-change:opacity,transform}.reveal-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}@media not all and (prefers-reduced-motion:reduce){.enter{transition:opacity .4s,transform .4s cubic-bezier(.22,1,.36,1)}@starting-style{.enter{opacity:0;transform:translateY(10px)}}}.live-border{isolation:isolate;position:relative}.live-border:before{content:"";border-radius:inherit;background:conic-gradient(from var(--angle),transparent 0%,var(--color-synapse) 18%,var(--color-dream) 33%,transparent 50%,transparent 100%);pointer-events:none;opacity:.6;z-index:-1;padding:1px;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@media not all and (prefers-reduced-motion:reduce){.live-border:before{animation:6s linear infinite border-rotate}@keyframes border-rotate{to{--angle:360deg}}}.spotlight-surface{position:relative;overflow:hidden}.spotlight-surface:after{content:"";pointer-events:none;background:radial-gradient(340px circle at var(--spot-x,50%) var(--spot-y,50%),#818cf81f,transparent 60%);opacity:var(--spot-o,0);z-index:0;transition:opacity .3s;position:absolute;top:0;right:0;bottom:0;left:0}.tilt-glare{position:relative;overflow:hidden}.tilt-glare:after{content:"";pointer-events:none;background:radial-gradient(circle at var(--glare-x,50%) var(--glare-y,50%),#ffffff24,transparent 45%);opacity:var(--glare-o,0);transition:opacity .3s;position:absolute;top:0;right:0;bottom:0;left:0}.breathe{animation:3.2s ease-in-out infinite breathe}@keyframes breathe{0%,to{filter:drop-shadow(0 0 2px);opacity:.85;transform:scale(1)}50%{filter:drop-shadow(0 0 7px);opacity:1;transform:scale(1.18)}}@media(prefers-reduced-motion:reduce){.breathe{animation:none}}.ping-host{position:relative}.ping-host:before{content:"";opacity:.6;z-index:-1;background:currentColor;border-radius:50%;position:absolute;top:0;right:0;bottom:0;left:0}@media not all and (prefers-reduced-motion:reduce){.ping-host:before{animation:2.4s cubic-bezier(0,0,.2,1) infinite ping}@keyframes ping{0%{opacity:.5;transform:scale(1)}80%,to{opacity:0;transform:scale(2.6)}}}.shimmer{background:#ffffff08;position:relative;overflow:hidden}.shimmer:after{content:"";background:linear-gradient(90deg,#0000,#818cf81f,#0000);position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%)}@media not all and (prefers-reduced-motion:reduce){.shimmer:after{animation:1.6s ease-in-out infinite shimmer}@keyframes shimmer{to{transform:translate(100%)}}}.text-aurora{background:linear-gradient(100deg,var(--color-synapse-glow),var(--color-dream-glow),var(--color-recall),var(--color-synapse-glow));color:#0000;background-size:250% 100%;-webkit-background-clip:text;background-clip:text}@media not all and (prefers-reduced-motion:reduce){.text-aurora{animation:8s ease-in-out infinite aurora-drift}@keyframes aurora-drift{0%,to{background-position:0%}50%{background-position:100%}}}.lift{transition:transform .28s cubic-bezier(.34,1.56,.64,1),box-shadow .28s,border-color .28s}.lift:hover{transform:translateY(-3px);box-shadow:0 12px 32px #00000059,0 0 0 1px #6366f12e}@media(prefers-reduced-motion:reduce){.lift:hover{transform:none}}.tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}:where(button,a,input,select,[role=button],[tabindex]):focus-visible{outline:2px solid var(--color-synapse-glow);outline-offset:2px;border-radius:.4rem}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}.toast-layer.svelte-pry2ep{position:fixed;z-index:60;pointer-events:none;display:flex;flex-direction:column;gap:.5rem;right:1.25rem;bottom:1.25rem;max-width:22rem;width:calc(100vw - 2.5rem)}@media(max-width:768px){.toast-layer.svelte-pry2ep{right:.75rem;left:.75rem;bottom:auto;top:5.25rem;max-width:none;width:auto;align-items:stretch}}.toast-item.svelte-pry2ep{pointer-events:auto;position:relative;display:flex;gap:.75rem;align-items:stretch;text-align:left;font:inherit;color:inherit;background:#0c0e16b8;backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border:1px solid rgba(255,255,255,.06);border-radius:.75rem;padding:.75rem .9rem .75rem .5rem;overflow:hidden;box-shadow:0 10px 40px -12px #000c,0 0 22px -6px var(--toast-color);cursor:pointer;animation:svelte-pry2ep-toast-in .32s cubic-bezier(.16,1,.3,1);transform-origin:right center;transition:transform .15s ease,box-shadow .15s ease}.toast-item.svelte-pry2ep:hover{transform:translateY(-1px) scale(1.015);box-shadow:0 14px 48px -12px #000000d9,0 0 32px -4px var(--toast-color)}.toast-item.svelte-pry2ep:focus-visible{outline:1px solid var(--toast-color);outline-offset:2px}.toast-accent.svelte-pry2ep{width:3px;border-radius:2px;background:var(--toast-color);box-shadow:0 0 10px var(--toast-color);flex-shrink:0}.toast-body.svelte-pry2ep{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.toast-head.svelte-pry2ep{display:flex;align-items:center;gap:.5rem}.toast-icon.svelte-pry2ep{color:var(--toast-color);font-size:.95rem;text-shadow:0 0 8px var(--toast-color);line-height:1;width:1rem;display:inline-flex;justify-content:center}.toast-title.svelte-pry2ep{color:#f5f5fa;font-size:.82rem;font-weight:600;letter-spacing:.01em}.toast-sub.svelte-pry2ep{color:#b0b6c4;font-size:.74rem;line-height:1.35;padding-left:1.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-progress.svelte-pry2ep{position:absolute;left:0;bottom:0;height:2px;width:100%;background:#ffffff0a}.toast-progress-fill.svelte-pry2ep{height:100%;background:var(--toast-color);opacity:.55;transform-origin:left center;animation:svelte-pry2ep-toast-progress var(--toast-dwell) linear forwards}.toast-item.svelte-pry2ep:hover .toast-progress-fill:where(.svelte-pry2ep),.toast-item.svelte-pry2ep:focus-visible .toast-progress-fill:where(.svelte-pry2ep){animation-play-state:paused}@keyframes svelte-pry2ep-toast-in{0%{opacity:0;transform:translate(24px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}@media(max-width:768px){.toast-item.svelte-pry2ep{transform-origin:top center;animation:svelte-pry2ep-toast-in-mobile .3s cubic-bezier(.16,1,.3,1)}}@keyframes svelte-pry2ep-toast-in-mobile{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes svelte-pry2ep-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.toast-item.svelte-pry2ep{animation:none}.toast-progress-fill.svelte-pry2ep{animation:none;transform:scaleX(.5)}}.strip-item.svelte-1kk3799{display:inline-flex;align-items:center;gap:.4rem;padding:0 .75rem;white-space:nowrap;flex-shrink:0}.strip-divider.svelte-1kk3799{width:1px;height:14px;background:#6366f11f;flex-shrink:0}.ambient-strip.ambient-flash.svelte-1kk3799{background:linear-gradient(90deg,#ef444414,#ef444400 70%),#0006;border-bottom-color:#ef444459;transition:background .3s ease,border-color .3s ease}@keyframes svelte-1kk3799-ping-slow{0%{transform:scale(1);opacity:.8}80%,to{transform:scale(2);opacity:0}}.animate-ping-slow{animation:svelte-1kk3799-ping-slow 2.2s cubic-bezier(0,0,.2,1) infinite}@media(prefers-reduced-motion:reduce){.ambient-strip.svelte-1kk3799 .animate-ping,.ambient-strip.svelte-1kk3799 .animate-ping-slow,.ambient-strip.svelte-1kk3799 .animate-pulse{animation:none!important}}.verdict-bar.svelte-1j425e6{border-bottom:1px solid rgba(255,255,255,.06);background:#080912b8;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:0 6px 24px #0000002e}.verdict-summary.svelte-1j425e6{width:100%;min-height:2.75rem;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.55rem 1rem;color:var(--color-text);text-align:left;font:inherit}.sr-only.svelte-1j425e6{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.label.svelte-1j425e6,.field-label.svelte-1j425e6,.appeal-row.svelte-1j425e6>span:where(.svelte-1j425e6){color:var(--color-dim);font-size:.68rem;text-transform:uppercase;letter-spacing:0}.levels.svelte-1j425e6{display:flex;align-items:center;gap:.25rem}.levels.svelte-1j425e6 span:where(.svelte-1j425e6){border:1px solid rgba(255,255,255,.08);border-radius:.35rem;padding:.18rem .38rem;color:var(--color-muted);font-size:.64rem;line-height:1}.levels.svelte-1j425e6 span.active:where(.svelte-1j425e6){color:var(--color-bright);border-color:var(--verdict-color);background:color-mix(in srgb,var(--verdict-color) 18%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--verdict-color) 28%,transparent)}.summary-text.svelte-1j425e6{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:var(--color-dim)}.when.svelte-1j425e6{color:var(--color-muted);font-size:.68rem}.receipt.svelte-1j425e6{margin:0 1rem .75rem;border:1px solid rgba(255,255,255,.08);border-radius:.5rem;background:#0a0a1ac7;padding:.85rem}.receipt-grid.svelte-1j425e6{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(10rem,.8fr) minmax(0,1.1fr) minmax(0,1.1fr);gap:.85rem}.receipt.svelte-1j425e6 p:where(.svelte-1j425e6),.receipt.svelte-1j425e6 li:where(.svelte-1j425e6){margin:.25rem 0 0;color:var(--color-text);font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}.receipt.svelte-1j425e6 ul:where(.svelte-1j425e6){margin:.25rem 0 0;padding-left:1rem}.appeal-row.svelte-1j425e6{display:flex;align-items:center;gap:.4rem;margin-top:.85rem;flex-wrap:wrap}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6),.appeal-row.svelte-1j425e6 p:where(.svelte-1j425e6){border:1px solid rgba(255,255,255,.1);border-radius:.4rem;padding:.35rem .6rem;color:var(--color-text);background:#ffffff0a;font-size:.72rem;margin:0}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6):hover:not(:disabled),.verdict-summary.svelte-1j425e6:hover{background:#ffffff0d}.appeal-row.svelte-1j425e6 button:where(.svelte-1j425e6):disabled{opacity:.55;cursor:wait}.tone-pass.svelte-1j425e6,.tone-note.svelte-1j425e6{--verdict-color: #10b981}.tone-caution.svelte-1j425e6{--verdict-color: #f59e0b}.tone-veto.svelte-1j425e6{--verdict-color: #ef4444}.tone-appealed.svelte-1j425e6{--verdict-color: #818cf8}@media(max-width:900px){.verdict-summary.svelte-1j425e6{grid-template-columns:auto minmax(0,1fr) auto}.levels.svelte-1j425e6{grid-column:1 / -1;order:4;overflow-x:auto;padding-bottom:.1rem}.receipt-grid.svelte-1j425e6{grid-template-columns:1fr}}.theme-toggle.svelte-1cmi4dh{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:8px;background:#6366f10f;border:1px solid rgba(99,102,241,.14);color:var(--color-text);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .12s ease;-webkit-tap-highlight-color:transparent}.theme-toggle.svelte-1cmi4dh:hover{background:#6366f124;border-color:#6366f14d;color:var(--color-bright)}.theme-toggle.svelte-1cmi4dh:active{transform:scale(.94)}.theme-toggle.svelte-1cmi4dh:focus-visible{outline:1px solid var(--color-synapse);outline-offset:2px}.icon-wrap.svelte-1cmi4dh{position:relative;width:18px;height:18px;display:inline-block}.icon.svelte-1cmi4dh{position:absolute;top:0;right:0;bottom:0;left:0;width:18px;height:18px;opacity:0;transform:scale(.7) rotate(-30deg);transition:opacity .2s ease,transform .2s cubic-bezier(.16,1,.3,1);pointer-events:none}.icon.active.svelte-1cmi4dh{opacity:1;transform:scale(1) rotate(0)}.theme-toggle[data-mode=dark].svelte-1cmi4dh{color:var(--color-synapse-glow, #818cf8)}.theme-toggle[data-mode=light].svelte-1cmi4dh{color:var(--color-warning, #f59e0b)}.theme-toggle[data-mode=auto].svelte-1cmi4dh{color:var(--color-dream-glow, #c084fc)}@media(prefers-reduced-motion:reduce){.theme-toggle.svelte-1cmi4dh,.icon.svelte-1cmi4dh{transition:none}}.safe-bottom.svelte-12qhfyh{padding-bottom:env(safe-area-inset-bottom,0px)}.logo-mark.svelte-12qhfyh{transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease}.logo-link.svelte-12qhfyh:hover .logo-mark:where(.svelte-12qhfyh){transform:rotate(-6deg) scale(1.08);box-shadow:0 0 0 1px #818cf866,0 0 22px #6366f180}.nav-link.text-synapse-glow.svelte-12qhfyh .nav-icon:where(.svelte-12qhfyh) svg,.nav-active-border.svelte-12qhfyh .nav-icon:where(.svelte-12qhfyh) svg{filter:drop-shadow(0 0 6px rgba(129,140,248,.55))} diff --git a/apps/dashboard/build/_app/immutable/assets/0.CLR80qKm.css.br b/apps/dashboard/build/_app/immutable/assets/0.CLR80qKm.css.br new file mode 100644 index 0000000000000000000000000000000000000000..a466de37acdc0eb2df3ca29e96cef816deba859c GIT binary patch literal 11640 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 ZH&}EAYr>RjGP(Vi{|k5Qcf}1I0RRK9Es6jD literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/12.BxoW8Jf1.css b/apps/dashboard/build/_app/immutable/assets/12.BxoW8Jf1.css new file mode 100644 index 0000000..79f5904 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/12.BxoW8Jf1.css @@ -0,0 +1 @@ +.cinema-overlay.svelte-1uwqs3k{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:radial-gradient(circle at 50% 40%,#05050f,#010108);display:flex;flex-direction:column}body.cinema-open .graph-stats-pill{display:none}.cinema-canvas.svelte-1uwqs3k{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.cinema-top.svelte-1uwqs3k{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:max(.75rem,env(safe-area-inset-top)) 1rem .75rem;flex-wrap:wrap}.cinema-badge.svelte-1uwqs3k{font-size:.65rem;padding:.1rem .45rem;border-radius:999px;border:1px solid rgba(129,140,248,.4);color:var(--color-synapse-glow)}.cinema-badge-gpu.svelte-1uwqs3k{border-color:#14e8c680;color:#14e8c6}.cinema-act.svelte-1uwqs3k{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-dream-glow);opacity:.85}.cinema-plan-card.svelte-1uwqs3k{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);max-width:520px;padding:1.5rem 1.75rem;border-radius:16px;text-align:center;animation:svelte-1uwqs3k-cinema-plan-in .5s ease both}@keyframes svelte-1uwqs3k-cinema-plan-in{0%{opacity:0;transform:translate(-50%,-46%)}to{opacity:1;transform:translate(-50%,-50%)}}.cinema-plan-kicker.svelte-1uwqs3k{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-synapse-glow);margin-bottom:.5rem}.cinema-plan-logline.svelte-1uwqs3k{font-size:clamp(1.05rem,2.2vw,1.4rem);line-height:1.5;color:var(--color-bright);margin:0}.cinema-note.svelte-1uwqs3k{font-size:.78rem;color:var(--color-synapse-glow);opacity:.85;margin:0 0 .6rem;font-style:italic}.cinema-dot.svelte-1uwqs3k{width:8px;height:8px;border-radius:50%;background:var(--color-muted)}.cinema-dot.active.svelte-1uwqs3k{background:#14e8c6;box-shadow:0 0 10px #14e8c6}.cinema-toggle.svelte-1uwqs3k{font-size:.7rem;color:var(--color-dim);display:flex;align-items:center;gap:.3rem;cursor:pointer}.cinema-close.svelte-1uwqs3k{background:transparent;border:1px solid rgba(255,255,255,.15);color:var(--color-text);border-radius:8px;width:32px;height:32px;cursor:pointer}.cinema-caption-wrap.svelte-1uwqs3k{position:relative;z-index:2;margin-top:auto;padding:1rem 1.25rem max(1.25rem,env(safe-area-inset-bottom));max-width:720px}.cinema-chip.svelte-1uwqs3k{display:inline-block;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-dream-glow);margin-bottom:.35rem}.cinema-caption.svelte-1uwqs3k{font-size:clamp(1.05rem,2.4vw,1.6rem);line-height:1.45;color:var(--color-bright);text-shadow:0 2px 24px rgba(0,0,0,.9);min-height:2.6em;margin:0 0 .75rem}.cinema-progress.svelte-1uwqs3k{height:3px;background:#ffffff1a;border-radius:3px;overflow:hidden}.cinema-progress-fill.svelte-1uwqs3k{height:100%;background:linear-gradient(90deg,var(--color-synapse),color-mix(in oklch,var(--color-dream),#ff2d55 calc(var(--tension, 0) * 100%)));transition:width .2s linear,background .4s ease}.cinema-beatcount.svelte-1uwqs3k{margin-top:.4rem;display:flex;gap:.75rem;align-items:center}.cinema-replay.svelte-1uwqs3k{background:transparent;border:1px solid rgba(129,140,248,.4);color:var(--color-synapse-glow);border-radius:999px;padding:.15rem .7rem;cursor:pointer;font-size:.75rem}.cinema-dream.svelte-1uwqs3k{color:var(--color-dream-glow);letter-spacing:.08em;animation:svelte-1uwqs3k-cinema-dream-pulse 3s ease-in-out infinite}.cinema-restore.svelte-1uwqs3k{position:absolute;bottom:.6rem;right:.8rem;z-index:95;background:#0a0a1a80;border:1px solid rgba(129,140,248,.25);color:var(--color-muted);border-radius:999px;padding:.2rem .7rem;font-size:.7rem;letter-spacing:.04em;cursor:pointer;opacity:.4;transition:opacity .2s ease}.cinema-restore.svelte-1uwqs3k:hover{opacity:1}@keyframes svelte-1uwqs3k-cinema-dream-pulse{0%,to{opacity:.55}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.cinema-progress-fill.svelte-1uwqs3k{transition:none}} diff --git a/apps/dashboard/build/_app/immutable/assets/12.BxoW8Jf1.css.br b/apps/dashboard/build/_app/immutable/assets/12.BxoW8Jf1.css.br new file mode 100644 index 0000000000000000000000000000000000000000..9c07b618f9d7089d897a894c3d9bd5df9aefef60 GIT binary patch literal 1091 zcmV-J1ibqjL=ONQg>g)5w+Zr>7n@Kr)#kMRm%utZzJRh#WuCfCwLQzki0;t0BEC(l zY%7H8Z?K)3BW-U-Ypsg6_Msy&^E-kSkQt(jJmHDaKFjgf2d&7~l4VC@yM z@>voici-N%Rbm%>{QUmg^XX#$z|U0sE|pLVaPFkGDp3n_&QvY?45+m%rYBFHBf4>q z*zY_er#kalR5nu z%$UfUi>1_LM{6rYO}8(N%7J!EZ+frEkDhK|tyX60n3?C9`1l=3Q@%Xw`TYDpU^`{5 zP0+=%0fUF4s|%BiM?I~+$*Z@FdYLY1+dOt5#SC4n5ZfI^O|U}iK4s`|MdaAR@2o@s z0L7u&j*)#NnQRDfC`7=pXNuZtih@x#5q&F!GlU=VcApA8zp~Jr7y%m}V^0yGTPdzl zg|wAQqC$mE3v5tdn*q!*O#7fvgFY+a>plb`4c-1ua>C4wH+9$E3;LI)3KpVecx=1% za{KIRCc!ki2zDEmS^t4axs-YP^<%LXnxEmUF&2l=hO~4QIaRF!5C4OSeK(`xPf1`Q zd@B`lR5YNN;)Pe38{hWTACX)o&+UA0GdmO&e4zcCrs=Nt<@_BS#j3Y zKEduuXmRE2%CvNupbiXxY*n-ji48qgiU3I~s01UPOkbqXKU`AI^Im^A= z0VkeM;4D)^nnM7?U>&&m!)kwjYshp~mO^2S(Tp^FTK#2ASQk2X}{WivLe@y!>&)ul55AGdsY z4Q$cM%^M6K@F4k}%?y$%Y5xU%lN|O7`RB#7z&wI~ysW=qtEOT9ycqlG#dOi;;Q}{A JPV8M)-gZKR8n^%e literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/12.BxoW8Jf1.css.gz b/apps/dashboard/build/_app/immutable/assets/12.BxoW8Jf1.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..9b07e153da566ae347b55fa5c77b7bf3848b3813 GIT binary patch literal 1276 zcmV5ef+KMBxABcG;vZ0E^ZILf!cC$fo4afqDqp6 zmE~7&rRFtU`)5;HAE|ukC*4Z4ui%@mdN;fH{6nJxN~+iqh6qhPq$MkA!W2|8PBBCv zl0OHjSbiZX$J1KHvY{!EEvOSfofNc*eF0U{&@5wh5m)rQaz7)y^$9#eQ?PFsv-IM6snSKiD{a=s7{ScHGcTFr!?=M=Dl?m}4R@HEkr2qU0xg3XT-b z;T~YObZh6AAHq8QSbNFj{APuw>Y0Pul@b)@fasXFZU%T!!5IT7Xf1Ots`$_}AW|w} z0e*&&uUha4*GAMOcGuAj0%pEOB8u!a4SUAC8$x2iv<%b-0~T|H6oVDP8;;)C2~vWb zSf+My6nL16K54$I(`ES`5vFPLKk!N8so`YLMq0Cq8emhvWb6>b8jPd`7!wQYWq19( zhf6MK1=4!@+L!nC)rZM@;#TUXpv3{PoY0KjAKBK@_Ye zoqm|mPf?Y;DDm_$thA(6v+`ZfRCnM8$CKl`A)eTYev|CLh!o~^0nOGZSdU|*S2b79 z3jK4fWAVzn5xH+GSf15ZQEN?IN{E?4I;FR@Gd?T9mZ@uGU+2#HCLcXFHRnfdWsIuA zQpxOzeJpcS+?i4g?{~U@i=2tv(TtxAb{}iSy4MWFi=uoQuH|TDtg>H9y%ux#-559s zi542p^o^lqm0Uja#PG5~xv$j&#SNm!>Hl3nT9RDNaQiOeItOiH-h&}C=J*j*+Gv?D zo#iL(uqzX-arB`0AXcqZ1xB)Tlk1KbyIfmj_E`Epwe$_>c5H^K&kn0iF>Onp?vt4) zJgonFweZ%P61J4tw-XhIjj@5@1Gv&99y4kMA#My?JV*cB4MIhn zoxQ;QK+ncS{y7yh!3zO$Hd*zg(d9fUzTEuz^p0`*F+Gar7^!&2vJC3k3M9wj?!hv? zHx&sT5h{k+bK_-DI17SiJDrlS^9mao-3&$A%;_%dV%wfm@s#3f)Q^-+?810JEAB{(ITNyNPi&ns@RNMFq~t%2rH;yCl(CJA+h@Po2g zowFJPJc_GST)^vbt}lAiAlr`%*L2!m3OCWDOg!pQpRT>{BqLbV^|m!WPeU+d;l8KM zLKn_cb(;dhG3&dlhW8VOF9$2$>AD|gyVuj>C_y+uI-|kRjiPHb8Y=zk^>+pM6}oB! m*li{animation:svelte-kf1sc6-event-rise .4s cubic-bezier(.22,.8,.3,1) backwards}@keyframes svelte-kf1sc6-event-rise{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:translate(0)}}.audit-trail .marker{transition:transform .2s ease}.audit-trail li:hover .marker{transform:scale(1.15)} diff --git a/apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css.br b/apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css.br deleted file mode 100644 index b0484eb81c4f7378bc59aaee30ffffaadc65466a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmV;l089THLID62A<69V^S-Yn`Nl7#`Y=FG4**h2Y6WdAKgj9Lug?!BK4D?#$wHBx z{X0#N0gW^rET=c1pTc4Ytvqsja%Jn{TckUx(h~W-J~Py6BG%?^LeR5h#3`|GxTRsI zg6ElVH^DbujctXzQh)yQaMkdtXY0+~k@nhEO)u*=@1g0LZAO&t}eJ2?PLI1L0ljJ diff --git a/apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css.gz b/apps/dashboard/build/_app/immutable/assets/13.Bjd0S47S.css.gz deleted file mode 100644 index 6ec156c94b033f349ce3ba5237e9c9cda25b0e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmV;=05Ja_iwFP!000026LpW#YQr!LMc?-oei~wa;53e4>y#P=I?s4cUl>1uO_)^`XdrJ zNeSBeeQUpJ$(z{gL?Y3w^>4eghnXkayV|qPIkkETj8B;lZo9^}!;_`MvAi z2g_i*jTg7x+`ccu-c2(-SJZxe5j@8)so6dBrrSIm|7_gONF-8@q>;lz`Z{8~^d%n! z`sY4tN<(I=*z5ys4kNHz7s&!3_aUjjG#j?r$?^I{Ss^{sX$9$a59e|AT`?w`&M=DC z>$l?bE9c(u)ezBWK|iExN}n6?p>1;Ztdz)*D8`XAd@*(k4TZlJvnYblN~mlF2UG$k z!&4YDgjoGbv^gZv&xNt?yfUTpj0kzkUJKz%3ADGV{%c2K1eU;Ao%xC|rh;V*GSugY z7DA#^A|+magOl8O=(Bc!K)Ug^6Qx?A@-U=OA%iwQ zFL2x!KthMsk9UX750{D~r9vDZ&8*SD93&Z1Sej}}g1+-Q2M!Cdu~w{25ZPOAF**5? zlF}Iq2VhLN<{10bHB@n%GU`tN;}MbBf`&zb$Y*_TLovL|9RzNq`jx01r!$tZ^uewB zoI?o-V5L|*bMR6)QQ8B9;I4QzAxSsQE#t;oDVll|yx8}GM;@}!87hXOaQd~}=Rntz zeeFC%DZZ(6DOH&i>p3J)td6MVu=xu0{#epMfb_YdHqY=27feY1M(y*wg@B|FRoR*I@+P*ZQW91o~MH@>Z4%sa0P{crbuI?N8|W! z+M(xyQB=S`4Aj;SL(fk=f9D0RQxN)oC92eUEj4RhDd5Dg3*?1VB`8ECmn!>_?2@Dk zf~fI3?@|>rG*?!dV-}|MEkA-iyL;~4C{nVs&SJdD?V$%H&!WuiD&gp0e?gcnWr}ie zh;ep!W53>yG)QTcM%e2i;L`1VW`8zi+nXWnc$SMxE zoN#s!h#5HPjDj$r@?U3dSoMLZ6b6JDmY;=KlUb?)9k{%{s_`IQedc-|%KNFL(2}1G z!LyDx>`$5t; zuHM4LT_tq~h)PASjvs3Whz2CjX39gIg<#_F$inFYm|c&cVEg!=`+ruWx8$MXjJ|_% zLO<#;Gtt6kqGEy>X#RSKk4ljfXlE6|C*FL@nowpwGMpPlgs!AIW$hCu2DT`zZ|-9C zW85SY^I*2A3q!nbjGXLQIs&_E-DRD_P;HjL=u=a|Ve2PuK9VZr4e28(wmzQ(gI{<;j0CAlEQPn$6JH6#@~Fp(Kqk8lwtF2=+5)muhSOW`c3%S0=NgoT66Vnuvciw!S8cMRynq@l_l>V42UIi8 z=Um5YY{;A{@0rs#T2$2wQ%xAV-_X|?!OX6#?tk|IR3~5<4WKHZgpzzIMoIEg!hP@j zPLy3boKNB+x{LCdv?*?Uqt4o(>RITuqUsFv6`*#4*Q)BdIm`?6%iHwl*3M?GGqm*7 z{qlCS-Od>rd9w~;Lde4Ch9|t4l+QgcqlZJA#F9 zwd3#qYv^X4)*{yjDt2e1&cfWV8p<(vK2a3a#2jDbX}5QC>1#Z5ZIpZmR1$rZRi(jX zc%A#;{gL~`1yPE8WY~!?e&qJFCvu{mT`A3X$VtV! PATOCKn8zy-cCR~8 diff --git a/apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css.gz b/apps/dashboard/build/_app/immutable/assets/16.BnHgRQtR.css.gz deleted file mode 100644 index ad885221976289adfdc6675e1923372c1c68623e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmV;70CWEziwFP!000026LZK;txPLQ%uOv;C@xFQDM{5WDmJV#Pt+|)%uCJD&CIJd zP_51{NKDQwskAb%E-6aPD^ANV%C!QsauQ2YBQfOY-6B46&;-(5$W1OU%p6 uO)N=;o3DprZ8bzXGe6G?yK@xu3@wTkQWJ|)b@NM0YPkUAw9o0l00001<2m5~ diff --git a/apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css.gz b/apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css.gz deleted file mode 100644 index f9799b65288e956d9a22326cf8d9ca41a1310562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2464 zcmV;R319XfiwFP!000026Rld?jaKG!gH51T2gq}a zpCA{29B;e+U$MDWloLT{8D``HX(VVB+7ToBg9z;?rb5snw4)p{`MG^Ix`y~DXcXh* zYtQJhOv4X*>)3V{B{Zij{D3suW^R--zo89u-Dxje3iZTLuI?&9t)KzpM`x1nJ zzod9YiIg6}2};4kl9sTz`Rz|c$`mf4T|W_{{i4%1W==}L4DA_C36$bt{rAWP$*w4&rGQd|yut~f7{nQ%jP|$+9R@{oCaE}t1t~ur zC$OuFnczJ6bZq;Vfee>Hv06n1W_wbGwxMFO!f8s%y;^SAwG}g5j$>m|XrsiZ@O%IU zpMyIq(>eg72q)4EeDt`AQJNt}&!an>>`R=Zcv1+4lP|PqWPFPstBNv#Vk$=W7{zIU zs~4{uIhoPv!AH}Ex=naa`o`Ky=QO#VWmzQPB2WqmWmpA@%n+UZXHYp6*sU*6f!Wtw zxJY9}RW4)UVN)FkuH~%d#s~e(_G3(03M_Q0i@|A5QiJVd{OS3ov)h_G-?aQ-)qDxb z%sBEes4hzh=Xh(CH?Etk*Wjh*hrNk6sqgMqt=4gzZBx7cb|lT3)Mrr4Jr2)3tQ96m zwuwFIh3`u^zuVY`ZMIn(=?TLMltYx`Ir$SpD+m_UdP9crAd8S`mH31bfroL_uSl8t zaok><)>G*AZH%cE7%Yac{DTA(RgMLqgyzShQioQZcb-Y+H^Gqq6H~YlMBJ-bhvw?w|;#(o4zHTurh3=jg}rIw7L#eDDVYo zYiy-NwFOs*r%)}UtUw3Aa<`#Vt62!;py2bn3vYMh+lJDlb?9abLAL8h+cvm|UxzzU zE(wTjkNGhcMC35<=Zy^bXeiL8Cs4YDO*)oIMz9ph zwfxiBbS!^863nsI^-|fq$-0Bi3|FE2qft;f@KGKev=t)-W>+Mc;kaBvLd$gi_AxGq zK=DxsI!gaBs14(18djGDdcNaAy$Uv~2X3v)Q0o!fcRV|eVtPURfKz%7Z9}H3;k(tv zXls`JS4?)huyZfb4}N`P0M{$O9S+$n;;(x>tiq*YK|jGfG_4_p1L zlR=S{nPGYg0zCzR^lZ$6RUF^Lq12nR0c%7>Z|$av{a^%y7Ywpc#r|-7azENA(O4vMRz5MmMQtJA(rH5(Lv!45O z1jn4_M*(_jgd7PN)uruLo$3;ehI5NNq37^kOsjP5D$csC&rxz@oU*W)RXw)w|az&YN-G@;exOK8pV?_jnsvV|>eExH=|XdRtca3encKE)RZ1>awtm;Snd(L~!8T`BV>OuR6x9!zZfUX$?( ziYy5`NH15jF|~`;rP%E9zt7`Hm=VSWN)9AX=S;G&T;ZoGm$JKZ^^C%{f30dOrUH>t zjE7`hu6zENMU8zZA5`ITO!?H_PV|Ebx`TOY?>5w4io*pK$H^mrq7sv50NNU3GV|<^ zWMRLXLN0~lLwdSf8s1pJW@19Nu#v$Foaaw)LGc}ZBKT~y;f}g$jaT>D1;+V13u^k9UY84y>mlC_;NW?BZ|gNmo~OFl8;VP zUx?)wIK3RH>^ge}cT>g3I3CRcP3y=deVMw~%hn+H6)jBvx9hG+SlH~=0x5?)3pKVr zjTk4G8iqOkV~p2JdOU0kWjeFz#&iPLbRE~UT>o)Xef;BO{j-F5Js0ZSyp+%9-{U+U z0A_SP5CN(Shp=Lx$n86F{`R8^{PsjM-Ku-{iPAKVPSSP1hk#ADZ`cbDF?0j8Ostnv z&|gKb@oyUjFuc&9jRy$#-10Xnw>Ivwd6qTP$7Yk=?P&cNN2gyJDUdU~_BX%;je2m?UKD(J*|Lq!u*cy-) zNAo>=*WZ3a{=xCaY)3E{k=0|ztvAYX6Yl`bybv@vJTj0Pw3+%ffz=!De)J}Ki#_E} zzO>OzeS)r#JWvT~t??=K_!L@IXwwP0R|=k-Gxx>`Tl0%>zSwi+y4P*qmEtYDF6U$gvnX} diff --git a/apps/dashboard/build/_app/immutable/assets/20.Duj1vJUf.css b/apps/dashboard/build/_app/immutable/assets/20.Duj1vJUf.css new file mode 100644 index 0000000..a7c31af --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/20.Duj1vJUf.css @@ -0,0 +1 @@ +.sr-only.svelte-q2v96u{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0} diff --git a/apps/dashboard/build/_app/immutable/assets/20.Duj1vJUf.css.br b/apps/dashboard/build/_app/immutable/assets/20.Duj1vJUf.css.br new file mode 100644 index 0000000000000000000000000000000000000000..93e1c684f7a1e5cd2807190e0bcbe953b5b0b22d GIT binary patch literal 88 zcmV-e0H^;OlK>!Oy>%(E`FDcN-=e)KeiWmV1NN^i=t)_aXch(Rf!mOdGYAi3Xrmk4 uALv)-R#^4+cAg|jIt2noJ3)aH48rP%_6#;1J5pYm#NXguGGUi|7X1MG<|ktS literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/20.Duj1vJUf.css.gz b/apps/dashboard/build/_app/immutable/assets/20.Duj1vJUf.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..99d89f8c07b35b892506ee95beef98057ef45741 GIT binary patch literal 140 zcmV;70CWEziwFP!000026CI5~4gw(z0Pns;6WO2#6U%E@s7n*1Sh}Dw{$1V7WipqU zniwwmHMNde(LB!mdRgC<8!2%CKR3>+q8k)7!Kpr7LRyk;T78UE7O?K_WuXG*U%8{) uG7m@;BNi7jRS*oix5tfx8;O3iR((JyJj7QwvqTiIpWPR_sD4V60001|H#gz{ literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css b/apps/dashboard/build/_app/immutable/assets/25.DKhUrxcR.css similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css rename to apps/dashboard/build/_app/immutable/assets/25.DKhUrxcR.css diff --git a/apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css.br b/apps/dashboard/build/_app/immutable/assets/25.DKhUrxcR.css.br similarity index 100% rename from apps/dashboard/build/_app/immutable/assets/20.DKhUrxcR.css.br rename to apps/dashboard/build/_app/immutable/assets/25.DKhUrxcR.css.br diff --git a/apps/dashboard/build/_app/immutable/assets/25.DKhUrxcR.css.gz b/apps/dashboard/build/_app/immutable/assets/25.DKhUrxcR.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..a175ffadc92c08505c30bc9e50ab6ecda6ce6053 GIT binary patch literal 2465 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 C^*Y%A diff --git a/apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css b/apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css deleted file mode 100644 index 65c46b1..0000000 --- a/apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css +++ /dev/null @@ -1 +0,0 @@ -.replay-stage.svelte-1cq1ntk{border:1px solid rgba(168,85,247,.18);box-shadow:inset 0 1px #ffffff08,0 8px 36px -8px #0000008c,0 0 48px -16px #a855f740}.stage-canvas.svelte-1cq1ntk{position:relative;height:360px;overflow:hidden;background:radial-gradient(at 50% 50%,color-mix(in srgb,var(--stage-color) 10%,transparent),transparent 60%),radial-gradient(at 20% 80%,rgba(99,102,241,.08),transparent 50%),#08081a}.edges-layer.svelte-1cq1ntk{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.edge-line.svelte-1cq1ntk{transition:stroke-opacity .52s ease,stroke-width .52s ease,x1 .6s cubic-bezier(.34,1.56,.64,1),y1 .6s cubic-bezier(.34,1.56,.64,1),x2 .6s cubic-bezier(.34,1.56,.64,1),y2 .6s cubic-bezier(.34,1.56,.64,1)}.memory-card.svelte-1cq1ntk{position:absolute;width:44px;height:32px;transform:translate(-50%,-50%) scale(var(--card-scale, 1));transition:left .6s cubic-bezier(.34,1.56,.64,1),top .6s cubic-bezier(.34,1.56,.64,1),transform .5s cubic-bezier(.34,1.56,.64,1),opacity .5s ease;transition-delay:var(--card-delay, 0ms);animation:svelte-1cq1ntk-card-float 6s ease-in-out infinite;animation-delay:var(--card-delay, 0ms);will-change:transform}.card-inner.svelte-1cq1ntk{width:100%;height:100%;border-radius:6px;background:linear-gradient(135deg,color-mix(in srgb,var(--stage-color) 30%,transparent),color-mix(in srgb,var(--stage-color) 10%,transparent));border:1px solid color-mix(in srgb,var(--stage-color) 50%,transparent);box-shadow:inset 0 1px #ffffff14,0 0 8px color-mix(in srgb,var(--stage-color) 30%,transparent);filter:hue-rotate(var(--card-hue, 0deg));padding:5px 6px;display:flex;flex-direction:column;justify-content:center;gap:3px;position:relative;overflow:hidden}.card-dot.svelte-1cq1ntk{width:4px;height:4px;border-radius:50%;background:color-mix(in srgb,var(--stage-color) 90%,white);box-shadow:0 0 6px var(--stage-color);position:absolute;top:4px;right:4px}.card-bar.svelte-1cq1ntk{height:3px;border-radius:1.5px;background:color-mix(in srgb,var(--stage-color) 70%,transparent);width:80%}.card-bar.short.svelte-1cq1ntk{width:50%;opacity:.6}.memory-card.is-pulsing.svelte-1cq1ntk{animation:svelte-1cq1ntk-card-float 6s ease-in-out infinite,svelte-1cq1ntk-card-pulse 1.4s ease-in-out infinite}.memory-card.is-pulsing.svelte-1cq1ntk .card-inner:where(.svelte-1cq1ntk){border-color:var(--color-dream-glow);background:linear-gradient(135deg,color-mix(in srgb,var(--color-dream-glow) 40%,transparent),color-mix(in srgb,var(--color-dream) 25%,transparent));box-shadow:inset 0 1px #ffffff1f,0 0 22px color-mix(in srgb,var(--color-dream-glow) 60%,transparent),0 0 44px color-mix(in srgb,var(--color-dream) 35%,transparent)}.memory-card.is-pruning.svelte-1cq1ntk .card-inner:where(.svelte-1cq1ntk){animation:svelte-1cq1ntk-dissolve 1.2s ease-out forwards}.memory-card.is-transferring.svelte-1cq1ntk .card-inner:where(.svelte-1cq1ntk){border-color:#10b981;background:linear-gradient(135deg,#10b98159,#10b9811f);box-shadow:inset 0 1px #ffffff14,0 0 14px #10b98180}.memory-card.is-transferring.semantic-side.svelte-1cq1ntk .card-inner:where(.svelte-1cq1ntk){border-color:#c084fc;background:linear-gradient(135deg,#c084fc59,#a855f726);box-shadow:inset 0 1px #ffffff14,0 0 14px #c084fc80}.replay-pulse.svelte-1cq1ntk{position:absolute;top:50%;left:50%;width:60%;aspect-ratio:1 / 1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--stage-color) 25%,transparent),transparent 60%);filter:blur(30px);animation:svelte-1cq1ntk-pulse-in 3s ease-in-out infinite;pointer-events:none}.transfer-label.svelte-1cq1ntk{position:absolute;top:12px;display:flex;flex-direction:column;align-items:center;gap:2px;z-index:2}.transfer-label.episodic.svelte-1cq1ntk{left:6%}.transfer-label.semantic.svelte-1cq1ntk{right:6%}.label-tag.svelte-1cq1ntk{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:#00000059;color:#e0e0ff}.transfer-label.episodic.svelte-1cq1ntk .label-tag:where(.svelte-1cq1ntk){border-color:#10b98180;color:#10b981}.transfer-label.semantic.svelte-1cq1ntk .label-tag:where(.svelte-1cq1ntk){border-color:#c084fc80;color:#c084fc}.label-sub.svelte-1cq1ntk{font-size:9px;color:var(--color-dim);letter-spacing:.1em}.divider-line.svelte-1cq1ntk{position:absolute;top:15%;bottom:15%;left:50%;width:1px;background:linear-gradient(180deg,transparent,rgba(168,85,247,.35),transparent);transform:translate(-.5px)}@keyframes svelte-1cq1ntk-card-float{0%,to{translate:0 0}25%{translate:2px -3px}50%{translate:-2px 2px}75%{translate:3px 1px}}@keyframes svelte-1cq1ntk-card-pulse{0%,to{filter:brightness(1) hue-rotate(var(--card-hue, 0deg))}50%{filter:brightness(1.3) hue-rotate(var(--card-hue, 0deg))}}@keyframes svelte-1cq1ntk-dissolve{0%{opacity:1;transform:scale(1);filter:blur(0)}60%{opacity:.3;filter:blur(2px)}to{opacity:0;transform:scale(.5);filter:blur(6px)}}@keyframes svelte-1cq1ntk-pulse-in{0%,to{opacity:.3;transform:translate(-50%,-50%) scale(1)}50%{opacity:.7;transform:translate(-50%,-50%) scale(1.15)}}@media(prefers-reduced-motion:reduce){.memory-card.svelte-1cq1ntk,.replay-pulse.svelte-1cq1ntk,.memory-card.is-pulsing.svelte-1cq1ntk{animation:none}}.insight-card.svelte-1y17hsl{position:relative;border:1px solid color-mix(in srgb,var(--insight-color) 20%,transparent);transition:transform .4s cubic-bezier(.34,1.56,.64,1),border-color .22s ease,box-shadow .22s ease;animation:svelte-1y17hsl-card-in .42s cubic-bezier(.34,1.56,.64,1) both;animation-delay:var(--enter-delay, 0ms)}.insight-card.svelte-1y17hsl:hover{transform:translateY(-2px) scale(1.01);border-color:color-mix(in srgb,var(--insight-color) 45%,transparent)}.insight-card.high-novelty.svelte-1y17hsl{border-color:#f59e0b66;box-shadow:0 0 0 1px #f59e0b40,0 0 24px -4px #f59e0b73,0 0 60px -12px #f59e0b40,inset 0 1px #ffffff0d;background:radial-gradient(at top right,rgba(245,158,11,.08),transparent 50%),#0a0a1acc}.insight-card.low-novelty.svelte-1y17hsl{opacity:.6;filter:saturate(.7)}.insight-card.low-novelty.svelte-1y17hsl:hover{opacity:.9;filter:saturate(1)}.novelty-track.svelte-1y17hsl{height:4px;background:#ffffff0d;border-radius:2px;overflow:hidden}.novelty-fill.svelte-1y17hsl{height:100%;border-radius:2px;transition:width .6s cubic-bezier(.34,1.56,.64,1);box-shadow:0 0 8px color-mix(in srgb,var(--insight-color) 60%,transparent)}.source-chip.svelte-1y17hsl{background:#6366f11f;border:1px solid rgba(99,102,241,.25);color:var(--color-synapse-glow);text-decoration:none;transition:all .18s ease}.source-chip.svelte-1y17hsl:hover{background:#6366f140;border-color:#818cf880;transform:translateY(-1px)}.sparkle.svelte-1y17hsl{display:inline-block;animation:svelte-1y17hsl-sparkle-spin 3s linear infinite}@keyframes svelte-1y17hsl-sparkle-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes svelte-1y17hsl-card-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.insight-card.svelte-1y17hsl,.sparkle.svelte-1y17hsl{animation:none}}.header-glyph.svelte-1fv2vo0{display:inline-block;color:var(--color-dream-glow);text-shadow:0 0 12px var(--color-dream),0 0 24px color-mix(in srgb,var(--color-dream) 50%,transparent);animation:svelte-1fv2vo0-twinkle 4s ease-in-out infinite}@keyframes svelte-1fv2vo0-twinkle{0%,to{opacity:1;transform:rotate(0)}50%{opacity:.75;transform:rotate(10deg)}}.dream-button.svelte-1fv2vo0{display:inline-flex;align-items:center;gap:.6rem;padding:.7rem 1.4rem;border-radius:999px;font-size:.9rem;font-weight:600;letter-spacing:.02em;color:#fff;background:linear-gradient(135deg,var(--color-dream),var(--color-synapse));border:1px solid color-mix(in srgb,var(--color-dream-glow) 60%,transparent);box-shadow:inset 0 1px #ffffff2e,0 8px 24px -6px #a855f78c,0 0 48px -10px #a855f773;cursor:pointer;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease,filter .22s ease}.dream-button.svelte-1fv2vo0:hover:not(:disabled){transform:translateY(-2px) scale(1.03);box-shadow:inset 0 1px #ffffff38,0 12px 32px -6px #a855f7b3,0 0 64px -10px #a855f78c}.dream-button.svelte-1fv2vo0:disabled{cursor:not-allowed;filter:saturate(.85)}.dream-button.is-dreaming.svelte-1fv2vo0{background:linear-gradient(135deg,var(--color-synapse),var(--color-dream));animation:svelte-1fv2vo0-button-breathe 2s ease-in-out infinite}@keyframes svelte-1fv2vo0-button-breathe{0%,to{box-shadow:0 8px 24px -6px #a855f780,0 0 48px -10px #a855f766}50%{box-shadow:0 12px 36px -6px #a855f7cc,0 0 80px -10px #a855f799}}.dream-icon.svelte-1fv2vo0{display:inline-block;animation:svelte-1fv2vo0-twinkle 3s ease-in-out infinite}.spinner.svelte-1fv2vo0{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.25);border-top-color:#fff;animation:svelte-1fv2vo0-spin .8s linear infinite}@keyframes svelte-1fv2vo0-spin{to{transform:rotate(360deg)}}.empty-state.svelte-1fv2vo0{border:1px dashed rgba(168,85,247,.25)}.empty-glyph.svelte-1fv2vo0{font-size:3rem;color:var(--color-dream-glow);opacity:.5;text-shadow:0 0 20px var(--color-dream);animation:svelte-1fv2vo0-twinkle 4s ease-in-out infinite}.scrubber-wrap.svelte-1fv2vo0{position:relative;padding:4px 0 8px}.scrubber.svelte-1fv2vo0{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--color-synapse-glow) 0%,var(--color-dream) 50%,var(--color-recall) 100%);opacity:.35;outline:none;cursor:pointer;transition:opacity .22s ease}.scrubber.svelte-1fv2vo0:hover:not(:disabled){opacity:.55}.scrubber.svelte-1fv2vo0::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-dream-glow);border:2px solid white;box-shadow:0 0 0 3px #c084fc40,0 0 20px var(--color-dream),0 4px 12px #0006;cursor:grab;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.scrubber.svelte-1fv2vo0::-webkit-slider-thumb:hover{transform:scale(1.2)}.scrubber.svelte-1fv2vo0::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-dream-glow);border:2px solid white;box-shadow:0 0 0 3px #c084fc40,0 0 20px var(--color-dream);cursor:grab}.scrubber.svelte-1fv2vo0:disabled{cursor:not-allowed;opacity:.25}.scrubber-ticks.svelte-1fv2vo0{display:flex;justify-content:space-between;margin-top:10px;gap:4px}.tick.svelte-1fv2vo0{display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:none;cursor:pointer;padding:2px 4px;color:var(--color-dim);font-size:10px;letter-spacing:.04em;transition:color .22s ease,transform .22s cubic-bezier(.34,1.56,.64,1)}.tick.svelte-1fv2vo0:disabled{cursor:not-allowed}.tick.svelte-1fv2vo0:hover:not(:disabled){color:var(--color-dream-glow);transform:translateY(-1px)}.tick-dot.svelte-1fv2vo0{width:8px;height:8px;border-radius:50%;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);transition:all .28s ease}.tick.passed.svelte-1fv2vo0 .tick-dot:where(.svelte-1fv2vo0){background:var(--color-synapse-glow);border-color:var(--color-synapse-glow);opacity:.7}.tick.active.svelte-1fv2vo0 .tick-dot:where(.svelte-1fv2vo0){background:var(--color-dream-glow);border-color:#fff;box-shadow:0 0 0 3px #c084fc4d,0 0 14px var(--color-dream);transform:scale(1.3)}.tick.active.svelte-1fv2vo0{color:var(--color-dream-glow);font-weight:600}.tick-label.svelte-1fv2vo0{white-space:nowrap}.step-btn.svelte-1fv2vo0{width:28px;height:28px;border-radius:6px;background:#6366f11a;border:1px solid rgba(99,102,241,.2);color:var(--color-synapse-glow);cursor:pointer;transition:all .18s ease;font-size:11px}.step-btn.svelte-1fv2vo0:hover:not(:disabled){background:#6366f133;transform:translateY(-1px)}.step-btn.svelte-1fv2vo0:disabled{opacity:.35;cursor:not-allowed}.insights-scroll.svelte-1fv2vo0{max-height:520px;overflow-y:auto;padding-right:4px}.stat-cell.svelte-1fv2vo0{padding:.5rem .75rem;border-left:2px solid rgba(168,85,247,.3)}.stat-value.svelte-1fv2vo0{font-family:var(--font-mono);font-size:1.25rem;font-weight:700;color:var(--color-bright);font-variant-numeric:tabular-nums;line-height:1.1}.stat-label.svelte-1fv2vo0{font-size:10px;color:var(--color-dim);text-transform:uppercase;letter-spacing:.1em;margin-top:2px} diff --git a/apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css.br b/apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css.br deleted file mode 100644 index 1e5f381611bdd7a6041c97b126708402cdb5fb3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2562 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 YQd{aHC6cCU(q<}{>G4RnLK?Vu11wAhsQ>@~ diff --git a/apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css.gz b/apps/dashboard/build/_app/immutable/assets/6.BSSBWVKL.css.gz deleted file mode 100644 index 31323c7b9b16251d665e25d75628da0bf23b3ede..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2906 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 E09@Cu0RR91 diff --git a/apps/dashboard/build/_app/immutable/assets/6.ksI6gQcB.css b/apps/dashboard/build/_app/immutable/assets/6.ksI6gQcB.css new file mode 100644 index 0000000..ba453ce --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/6.ksI6gQcB.css @@ -0,0 +1 @@ +.receipt.svelte-1wdzvwu{border:1px solid color-mix(in oklab,var(--risk) 30%,transparent);border-left:3px solid var(--risk);border-radius:12px;padding:14px 16px;background:color-mix(in oklab,var(--color-void, #050510) 50%,transparent);display:flex;flex-direction:column;gap:12px}.receipt.compact.svelte-1wdzvwu{gap:10px;padding:12px 14px}.r-head.svelte-1wdzvwu{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.r-id.svelte-1wdzvwu{font-size:.78rem;color:var(--color-synapse-glow, #818cf8);word-break:break-all}.r-risk.svelte-1wdzvwu{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.r-metrics.svelte-1wdzvwu{display:flex;gap:20px}.metric.svelte-1wdzvwu{display:flex;flex-direction:column;gap:1px}.m-val.svelte-1wdzvwu{font-size:1.25rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.m-label.svelte-1wdzvwu{font-size:.64rem;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-dim, #8b8ba7)}.r-section.svelte-1wdzvwu{display:flex;flex-direction:column;gap:6px}.r-section-title.svelte-1wdzvwu{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-dim, #8b8ba7)}.path.svelte-1wdzvwu{font-size:.8rem;font-family:var(--font-mono, monospace);color:var(--color-text, #e2e2f0);padding:4px 8px;border-radius:6px;background:color-mix(in oklab,var(--color-synapse) 8%,transparent)}.chips.svelte-1wdzvwu{display:flex;flex-wrap:wrap;gap:5px}.chip.svelte-1wdzvwu{font-size:.72rem;padding:2px 8px;border-radius:6px}.chip.recall.svelte-1wdzvwu{color:var(--color-recall, #10b981);background:color-mix(in oklab,var(--color-recall) 12%,transparent);border:1px solid color-mix(in oklab,var(--color-recall) 28%,transparent)}.chip.suppress.svelte-1wdzvwu{color:#a78bfa;background:color-mix(in oklab,#a78bfa 12%,transparent);border:1px solid color-mix(in oklab,#a78bfa 28%,transparent);text-decoration:line-through;text-decoration-color:color-mix(in oklab,#a78bfa 50%,transparent)}.cinema-btn.svelte-1wdzvwu{margin-top:2px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 14px;font-size:.8rem;font-weight:600;border-radius:9px;border:1px solid color-mix(in oklab,var(--color-synapse) 40%,transparent);background:color-mix(in oklab,var(--color-synapse) 12%,transparent);color:var(--color-synapse-glow, #818cf8);cursor:pointer;transition:all .18s ease}.cinema-btn.svelte-1wdzvwu:hover:not(:disabled){background:color-mix(in oklab,var(--color-synapse) 24%,transparent);transform:translateY(-1px)}.cinema-btn.svelte-1wdzvwu:disabled{opacity:.4;cursor:not-allowed}.mode-toggle.svelte-1ayqwv0,.export-btn.svelte-1ayqwv0{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;font-size:.78rem;font-weight:600;border-radius:9px;border:1px solid color-mix(in oklab,var(--color-synapse) 30%,transparent);background:color-mix(in oklab,var(--color-synapse) 8%,transparent);color:var(--color-synapse-glow);cursor:pointer;transition:all .18s ease}.mode-toggle.svelte-1ayqwv0:hover,.export-btn.svelte-1ayqwv0:hover:not(:disabled){background:color-mix(in oklab,var(--color-synapse) 18%,transparent);transform:translateY(-1px)}.mode-toggle.on.svelte-1ayqwv0{background:var(--color-synapse);color:#fff}.export-btn.svelte-1ayqwv0:disabled{opacity:.4;cursor:not-allowed}.spine.svelte-1ayqwv0{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;border-radius:14px;padding:14px 18px;margin-bottom:18px;overflow:hidden}.spine-item.svelte-1ayqwv0{display:flex;flex-direction:column;gap:4px;padding:2px 14px}.spine-label.svelte-1ayqwv0{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-dim, #8b8ba7)}.spine-value.svelte-1ayqwv0{font-size:.92rem;font-weight:600;display:inline-flex;align-items:center;gap:7px}.spine-run.svelte-1ayqwv0{font-size:.82rem;color:var(--color-synapse-glow);word-break:break-all}.dot.svelte-1ayqwv0{width:8px;height:8px;border-radius:50%;background:#64748b;box-shadow:0 0 0 0 transparent}.dot.live.svelte-1ayqwv0{background:var(--color-recall, #10b981);animation:svelte-1ayqwv0-ping 2s ease-in-out infinite}.dot.big.svelte-1ayqwv0{width:12px;height:12px}@keyframes svelte-1ayqwv0-ping{0%,to{box-shadow:0 0 color-mix(in oklab,var(--color-recall) 60%,transparent)}50%{box-shadow:0 0 0 6px transparent}}.ev-chip.svelte-1ayqwv0{font-size:.74rem;font-weight:700;padding:2px 8px;border-radius:6px;color:var(--c);background:color-mix(in oklab,var(--c) 14%,transparent);border:1px solid color-mix(in oklab,var(--c) 35%,transparent)}.layout.svelte-1ayqwv0{display:grid;grid-template-columns:260px 1fr;gap:16px;align-items:start}@media(max-width:860px){.layout.svelte-1ayqwv0{grid-template-columns:1fr}}.glass.svelte-1ayqwv0{background:linear-gradient(180deg,#02030742,#00051029);border:1px solid color-mix(in oklab,var(--color-synapse) 16%,transparent);-webkit-backdrop-filter:blur(8px) saturate(122%);backdrop-filter:blur(8px) saturate(122%);border-radius:14px}.panel-title.svelte-1ayqwv0{font-size:.82rem;font-weight:700;letter-spacing:.02em;margin:0 0 12px}.text-dim.svelte-1ayqwv0{color:var(--color-text-dim, #8b8ba7);font-weight:400}.empty.svelte-1ayqwv0{font-size:.82rem;color:var(--color-text-dim, #8b8ba7);line-height:1.5}.runs.svelte-1ayqwv0{padding:16px;position:sticky;top:16px;max-height:calc(100vh - 40px);overflow-y:auto}.runs.svelte-1ayqwv0 ul:where(.svelte-1ayqwv0){list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.run-row.svelte-1ayqwv0{width:100%;text-align:left;padding:9px 11px;border-radius:10px;border:1px solid transparent;background:color-mix(in oklab,white 3%,transparent);cursor:pointer;transition:all .16s ease}.run-row.svelte-1ayqwv0:hover{background:color-mix(in oklab,var(--color-synapse) 12%,transparent)}.run-row.active.svelte-1ayqwv0{border-color:color-mix(in oklab,var(--color-synapse) 45%,transparent);background:color-mix(in oklab,var(--color-synapse) 16%,transparent)}.run-top.svelte-1ayqwv0{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.run-id.svelte-1ayqwv0{font-size:.78rem;color:var(--color-synapse-glow)}.run-tool.svelte-1ayqwv0{font-size:.7rem;color:var(--color-text-dim, #8b8ba7);white-space:nowrap}.run-stats.svelte-1ayqwv0{display:flex;gap:8px;margin-top:5px;font-size:.68rem;color:var(--color-text-dim, #8b8ba7)}.s-recall.svelte-1ayqwv0{color:var(--color-recall, #10b981)}.s-suppress.svelte-1ayqwv0{color:#b90d2b}.s-write.svelte-1ayqwv0{color:#38bdf8}.s-veto.svelte-1ayqwv0{color:#f43f5e}.replay.svelte-1ayqwv0{display:flex;flex-direction:column;gap:14px;min-width:0}.center-msg.svelte-1ayqwv0{padding:40px;text-align:center;color:var(--color-text-dim, #8b8ba7)}.center-msg.err.svelte-1ayqwv0{color:#f87171}.scrubber.svelte-1ayqwv0{padding:16px 18px}.scrub-head.svelte-1ayqwv0{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:.82rem}.scrub-time.svelte-1ayqwv0{color:var(--color-synapse-glow);font-variant-numeric:tabular-nums}.scrub-range.svelte-1ayqwv0{width:100%;accent-color:var(--color-synapse)}.ticks.svelte-1ayqwv0{display:flex;gap:2px;margin-top:10px;height:22px;align-items:stretch}.tick.svelte-1ayqwv0{flex:1;min-width:2px;border:none;border-radius:2px;background:color-mix(in oklab,var(--c) 22%,transparent);cursor:pointer;transition:all .16s ease;padding:0}.tick.past.svelte-1ayqwv0{background:var(--c);box-shadow:0 0 6px -1px var(--c)}.tick.svelte-1ayqwv0:hover{transform:scaleY(1.25)}.event-detail.svelte-1ayqwv0{padding:16px 18px;border-left:3px solid var(--c)}.ed-head.svelte-1ayqwv0{display:flex;align-items:center;gap:10px}.ed-glyph.svelte-1ayqwv0{font-size:1.2rem;color:var(--c)}.ed-label.svelte-1ayqwv0{font-weight:700;color:var(--c)}.ed-time.svelte-1ayqwv0{margin-left:auto;font-size:.74rem;color:var(--color-text-dim, #8b8ba7)}.ed-summary.svelte-1ayqwv0{margin:10px 0 0;font-size:.9rem;line-height:1.5}.ids-grid.svelte-1ayqwv0{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.id-chip.svelte-1ayqwv0{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:7px;background:color-mix(in oklab,var(--color-recall) calc(var(--a, 0) * 30%),transparent);border:1px solid color-mix(in oklab,var(--color-recall) 30%,transparent);font-size:.74rem}.id-chip.svelte-1ayqwv0 small:where(.svelte-1ayqwv0){color:var(--color-recall, #10b981);font-weight:700}.contra.svelte-1ayqwv0{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:.8rem}.winner.svelte-1ayqwv0{color:var(--color-recall, #10b981);font-weight:700}.vs.svelte-1ayqwv0{color:var(--color-text-dim, #8b8ba7)}.loser.svelte-1ayqwv0{color:#fb7185;text-decoration:line-through;opacity:.7}.veto-evidence.svelte-1ayqwv0{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.veto-evidence.svelte-1ayqwv0 code:where(.svelte-1ayqwv0){padding:2px 7px;border-radius:6px;background:color-mix(in oklab,#f43f5e 12%,transparent);font-size:.74rem}.pulse.svelte-1ayqwv0{padding:16px 18px}.pulse-grid.svelte-1ayqwv0{display:flex;flex-wrap:wrap;gap:6px}.pulse-node.svelte-1ayqwv0{padding:3px 8px;border-radius:7px;background:color-mix(in oklab,var(--color-synapse) 12%,transparent);border:1px solid color-mix(in oklab,var(--color-synapse) 28%,transparent);font-size:.74rem;color:var(--color-synapse-glow);animation:svelte-1ayqwv0-pulse-in .4s ease}@keyframes svelte-1ayqwv0-pulse-in{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.receipts-panel.svelte-1ayqwv0{padding:16px 18px}.receipts-grid.svelte-1ayqwv0{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.producers.svelte-1ayqwv0{padding:16px 18px}.producer-list.svelte-1ayqwv0{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.producer.svelte-1ayqwv0{display:flex;align-items:center;gap:9px;font-size:.78rem;color:var(--color-text-dim, #8b8ba7)}.producer.svelte-1ayqwv0 .p-dot:where(.svelte-1ayqwv0){width:8px;height:8px;border-radius:50%;background:#475569;flex-shrink:0}.producer.ok.svelte-1ayqwv0{color:var(--color-text, #e2e2f0)}.producer.ok.svelte-1ayqwv0 .p-dot:where(.svelte-1ayqwv0){background:var(--color-recall, #10b981);box-shadow:0 0 6px -1px var(--color-recall, #10b981)}.producer.caveat.svelte-1ayqwv0:not(.ok) .p-dot:where(.svelte-1ayqwv0){background:#f59e0b;opacity:.6}.p-state.svelte-1ayqwv0{margin-left:auto;font-size:.7rem;font-style:italic;text-align:right;color:var(--color-text-dim, #8b8ba7)}.producer.caveat.svelte-1ayqwv0:not(.ok) .p-state:where(.svelte-1ayqwv0){color:#f59e0b}.log.svelte-1ayqwv0{padding:16px 18px}.log-list.svelte-1ayqwv0{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.log-row.svelte-1ayqwv0{border-radius:8px;border-left:2px solid var(--c);transition:all .16s ease}.log-row.active.svelte-1ayqwv0{background:color-mix(in oklab,var(--c) 14%,transparent)}.log-row.dim.svelte-1ayqwv0{opacity:.4}.log-btn.svelte-1ayqwv0{width:100%;display:grid;grid-template-columns:22px 110px 1fr auto;align-items:center;gap:8px;padding:7px 10px;background:none;border:none;cursor:pointer;text-align:left;font-size:.8rem}.log-glyph.svelte-1ayqwv0{color:var(--c);text-align:center}.log-label.svelte-1ayqwv0{font-weight:600;color:var(--c)}.log-summary.svelte-1ayqwv0{color:var(--color-text-dim, #8b8ba7);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-t.svelte-1ayqwv0{font-size:.7rem;color:var(--color-text-dim, #8b8ba7);font-variant-numeric:tabular-nums}.proof-stage.svelte-1ayqwv0{padding:60px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:26px;min-height:50vh;justify-content:center}.proof-headline.svelte-1ayqwv0{display:flex;align-items:center;gap:12px}.proof-run.svelte-1ayqwv0{font-size:1.4rem;color:var(--color-synapse-glow);font-weight:700}.proof-event.svelte-1ayqwv0{display:flex;align-items:center;gap:16px;padding:18px 26px;border-radius:14px;border:1px solid color-mix(in oklab,var(--c) 40%,transparent);background:color-mix(in oklab,var(--c) 10%,transparent)}.proof-glyph.svelte-1ayqwv0{font-size:2rem;color:var(--c)}.proof-ev-label.svelte-1ayqwv0{font-size:1.1rem;font-weight:700;color:var(--c)}.proof-ev-sum.svelte-1ayqwv0{font-size:.85rem;color:var(--color-text-dim, #8b8ba7)}.proof-counter.svelte-1ayqwv0{font-size:3.4rem;font-weight:800;line-height:1;color:var(--color-synapse-glow)}.proof-counter-label.svelte-1ayqwv0{display:block;font-size:.8rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-dim, #8b8ba7);margin-top:8px}.proof-tagline.svelte-1ayqwv0{font-size:1rem;color:var(--color-text-dim, #c0c0d8);max-width:32ch;line-height:1.5} diff --git a/apps/dashboard/build/_app/immutable/assets/6.ksI6gQcB.css.br b/apps/dashboard/build/_app/immutable/assets/6.ksI6gQcB.css.br new file mode 100644 index 0000000000000000000000000000000000000000..677656476d4dab3fb3355dab971f6b2c4b7bb206 GIT binary patch literal 2312 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 kG4E?Ba8crs6F&b@oP{th)4-p& vFW>mz4)&`Yj#9JEw_E#HtJ0#}q57NjpL^OhJ@av2f=z_IJd$StSTvCU#)>Ui diff --git a/apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css.gz b/apps/dashboard/build/_app/immutable/assets/7.CCrNEDd3.css.gz deleted file mode 100644 index c8d6d4360e29673f6cfbc68dfed7ad88860a37fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104 zcmb2|=3oE;CgI`}ertWSz0UaRhH2<|pVjodYO1sLjMkZTSA4yFJbBNZ^zmG47O?i5 zzK72_ot0aRHt1=3ozeC?t$%7O)8--}?;vGU9WE`CZ0}DGPw{NjHomZC?NcU(<7Qg z-JRa)og+PiVy3#S4@yRGxW#!KBA|Mhl!LWl*Q#lW1QXV4389j?p2 z@@~sHX|N{o=(!@!a;_d;5qrlYyDd6t!~QSm5vfiW^>3pOkVJ(2{JvR!;Zyb15A`_M Q?G%t#RxpoOlHUO!?>{<862YhqE%f@>)ivUmK`ch)33p&R1p+?`{_JJec6b|bT2Gr zb2LZ8>KcGWV=caT?bO1}3F4N__jVDJP}D-Rnm&_As0edEaP{hv7V*CTE??Kd|2yv} zxWj2a-&^F@6??+V51lQ-z|{)B(rB3=ickNw%V995f(EreXjObty9(h+E+eKK%9}mS zM@<<_aU+LSdWE~jZMCzM6QC}N?lp!Ww>_YSlV>}lb$Ya{|GNi1I%xl!FHbH;R zY(qo4rdZIPGd}sT$5H)um|;ji`=Y4C`~LVgj*O5qE{Os0_j%e;%*9#>y(-?T=q-`Y z7}2J9iFMzFZaK}h0cQ@(RAW02BO`~u5a=a`e2CskM$uw#NWT2789}aRmpCI)%?%bpKj3u{@cYY&|#ph>w-T z>dLn8t=XRJB4xvaf$PBj54fr~yPB{teuXa?2+0VPW}qdbcLU_HM|kkJl(Jd#HyY6S zC^}*wT-69xsKD?OTbXI?|CTj76F(Ek;*%(ER^VJFHf!WFG!yN~4kRN*gBu&QI9W&? zLxu%QVv)i5n1^E7&Q|80xAcGgi!>I#eHV=K7DY4<#Wass?dtvOvHjjIm@zlzV0=DF znG?{Eq}J=7pGAJ>n#A;d@%dZ!Je!CvE#jx!4g7k8&WHTDut&nE-~V0tunbVac9})< z+ z=mv*-@tQe9$h+dQctVtIqUMvNZK^H|KbB2q>CKX)B$vM|E_b(e5kqM&##fGo%f%ELN38MFvNDO6so34xwT|-~|v|#17Ho8}w z{;0wy-Qy=%Y-mzTYndCFskrjrT~_I`w`3=* zC?w3sf;iM2s9R|0-g!(=r4{5;Mr_jj>JUvM|6O24&)ZowHiw8(->JCIr9CRvSs=C4 z`*^D2!ks%Nd$_A8+@;x2M*+gr*FgRqgf9ca_6_cYdh^cj4eN5Bhzd=jjo=*ApyYiK zq!gVMHrR&BN@%p?_r><8Xu~+AnL}QCm#!Al|BtTWE&&YmfodhjY&c1 z8}#%auQuo_8`znzq=buhG85wxc;_v|^~$2MLX@O{R{>_0ESB>uS*_>E8VB)M`6TYH z9B8y-4rT~64t1P=f|hV`3#xy}5Tq0s(TQtatj#j*E#rC7XfhFa8mYr6DkQx{C%BzWr)}3l=Hu zqFHC40%M5*-j{%`>2o{s)A;nrTc$+Ig5<{y;<1UEl5F!yf_`n`SQ*xWjV7-+rB5gA zyOBF$w65t2BkYy%?~EYi;>co*VV1nC<2R?@k7UzF(u+J=@b)&4l6PaeC_*|ep!`nP z3VmvQP0pF#u4Eca>XuE* zac>yN_<8xLafWLwNPNKn|0Y3S()2}gf5aq@J&DE&=pI9hc={+3f7!_Cci7N1{*3br z#%uWWg%=jkOu_J9^)2G0q>dH6WX8|!<5%5Ov%i8m9Zh>`)7Lf_jq_7?>S!4aO*Z5$Eg*H}Ss zcDlQ9GjB1H=$Fj8&V6gt-?|4&5`hxGDmC}W1$01zIGGohM`4bUIBt_Nd+uM6aP#`& zl-8}=|Gfd#xZ~WIC=#Mdo;I2bs6v{Fkik#rBt0n+Mz$VX__DCHRR#)NjwP@@ujkh^ zat?)ZMgZs_lIyoh-&pybm-ysiPS6_qdU5uRPXjxc2Q@n0{uw4oO;~|)Xg7;g3y`+o E2K;ehp8x;= literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css.gz b/apps/dashboard/build/_app/immutable/assets/Icon.tTjeJXhC.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..8bf20dce6a8e2facfee4f80975e870ef4b51ccd8 GIT binary patch literal 250 zcmVotaBN>Ca)D#0n=r$zVH$LD+OUD%Zx@snH zCToH=fex`A$hm+f-LMboTu&s_1}yslj*N;atJTQxV9^YBvT%AxnNqAj&h=d07iq`l z{4Gn3CU?c(GfQj({xM|OJWJ-(Lpvj#VZJ@Rdur}j@?MbNpouh?_u{XbProXkMcGqJ zR=2nkcvbGUMOBoK+hVg;KJnSGlV#uI;@J!k^_yzWY5rMJEz9!o3U|YC{JH@E0JE@p AHvj+t literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/ObservatoryStage.CKoSQgn0.css b/apps/dashboard/build/_app/immutable/assets/ObservatoryStage.CKoSQgn0.css new file mode 100644 index 0000000..7a14e9b --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/ObservatoryStage.CKoSQgn0.css @@ -0,0 +1 @@ +.spine.svelte-8n8iia{position:absolute;left:8%;right:8%;bottom:calc(2.5rem + env(safe-area-inset-bottom,0px));pointer-events:none}.active-label.svelte-8n8iia{text-align:center;margin-bottom:.6rem;font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.08em;color:#cfe9ff;text-shadow:0 0 24px rgba(30,180,255,.35);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track.svelte-8n8iia{position:relative;height:2px;background:#ffffff12;border-radius:1px}.tick.svelte-8n8iia{position:absolute;top:50%;width:3px;height:10px;transform:translate(-50%,-50%);border-radius:2px;background:#6ef0e6;transition:opacity .2s linear}.tick.hot.svelte-8n8iia{box-shadow:0 0 12px #6ef0e6bf}.tick.backward.svelte-8n8iia{background:#ff4070}.tick.backward.hot.svelte-8n8iia{box-shadow:0 0 12px #ff4070bf}.playhead.svelte-8n8iia{position:absolute;top:50%;width:1.5px;height:16px;transform:translate(-50%,-50%);background:#cfe9ffe6;box-shadow:0 0 10px #1eb4ff80}.verdict.svelte-ssd7yu{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;padding:clamp(18px,3vw,40px) clamp(28px,6vw,80px);border-radius:20px;background:radial-gradient(ellipse at center,#05070edb,#05070eb8 60%,#05070e00);pointer-events:none}.k.svelte-ssd7yu{font-size:clamp(13px,1.8vw,18px);color:#9fd0e4;letter-spacing:.16em;text-transform:uppercase}.v.svelte-ssd7yu{font-size:clamp(32px,6.4vw,72px);font-weight:600;margin-top:.12em;line-height:1.05;background:linear-gradient(90deg,#7fe6c0,#6ef0e6,#a6dcff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 26px rgba(110,240,220,.45))}.s.svelte-ssd7yu{font-size:clamp(11px,1.5vw,15px);color:#8fb0be;margin-top:.6em;font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em}.quarantine.svelte-ssd7yu .k:where(.svelte-ssd7yu){color:#ffb0a6}.quarantine.svelte-ssd7yu .v:where(.svelte-ssd7yu){background:linear-gradient(90deg,#ff6a5e,#ff9d6b,#ffd2a8);filter:drop-shadow(0 0 26px rgba(255,90,70,.45))}.quarantine.svelte-ssd7yu .s:where(.svelte-ssd7yu){color:#d9a49a} diff --git a/apps/dashboard/build/_app/immutable/assets/ObservatoryStage.CKoSQgn0.css.br b/apps/dashboard/build/_app/immutable/assets/ObservatoryStage.CKoSQgn0.css.br new file mode 100644 index 0000000000000000000000000000000000000000..7042b88eae0b84dc722d627c2de38c594828e71e GIT binary patch literal 760 zcmV}o4iWrbwr zD`cO`I6{Z;Hvmv90pn4Q^_-bdq#~Pl+kn*4oBa=&rZ|vH2ih(q>YKWm=k*dOQ<0s9Ry|^ zlmPZiq@8KkNpk1wSN3NdM!t_?w;&pMmH(k(JMvHCkj5=0UMM}-q9`lfI;z}=NMk)( z2{r8^rn3vwgwWxl_GoW`0egUrpN&7$V^#oHHE?YVmxakYEtB@8sr4h!G;}Nq2Ge#M zrxeru%_Bex8OLIrQDmD(T7JqXeMaeiF{6+B)T-%pm%%tWi(4(@)Ec1lF{AK&5>3MC zX0#78No1mtAU`li-eDNuMV11P?OZb5ju#>trB3WsaTwCQ{*4RTUHy2{zENq`)=VFo z#2v(81U4?~=&%whXl6<}Nn3#XIIM7_O{GeADru&kS^=N?;htnWd@8U})R!UD(DOjE zk8T-xNy%5|Jz*Cb*m%W2P6`Yhk#h8f1Sv*DVhw(z!SWw;`3C<8BR~I2tC85>AN)IQ z541#w{KFh^%c+eMcn7z|-IOtY8!rw=&i3h?6{xh*Dr?x~=72FSs>7{V9d4ju$)c>0 z7%qRdw2{wXpaSy!x<_9#3vW)@2mo`)Zx7vo$urtJQ=Nx|7(l#y42*CGQVDF>Lt& literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/ObservatoryStage.CKoSQgn0.css.gz b/apps/dashboard/build/_app/immutable/assets/ObservatoryStage.CKoSQgn0.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..365075667b9604a5f381c9b1a504c0bedd54c274 GIT binary patch literal 905 zcmV;419to$iwFP!000026QxyMkLorMeebV`w7L?gPUHjA8E*U+aUGsn8Y{VS_?9j{(Q|4B1UlI0kUWnAuDm6{_u zmXG~jv+cF1a{8q{Nbc9w4Bd}NDWf%FQcl-}=8_aUXeum4@igKgjQ(_JHCu@{5&B5r;!71KG{04CXv25a zmXyPayezQrT1v)_BQLDrtq{{1ahi?9QGfLiwC z8S8q|57*){T+m0usCCNOWPS1&ZmV&fTK^{_&-=v@v4Q=3qB*p)_Mn2sdbJ(7f zzjh1*^f%Y*z%xoV)nN@5CLit7ZzDf}{8;fl2m1#Op65`Ag5?m_B`=z=@{EUy_hM1RG*7Nw7GlvL|RtC=YJxLS=O3kyC*S zWG&!7cptV_dJnjNAj^OTG=+i8XPb=$^{b%fNIOqAh=Rua#P}Z^FK;OD@W3nmN42|E zAgt7Wzx=k#-HxZo({58(YK4aWOq1{`@()lJ@b)d z)nRueljGrf+~Jk1d>UwQ;1(uQsssrO-mC=%&ooa=SsVev07lj9&2aW08jL#T)PF`BoTAwpg9N-z2XaLpZa1>9_GR6Md;A8re%D?A2= xd&1b`E2k<-*Hvh|LeQAB2G);v*2#pS=GTk53U!?V2GNE|$tn(lF%#A4^#>IAqpkn| literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/cognitive-palette.BALpZUFZ.css.gz b/apps/dashboard/build/_app/immutable/assets/cognitive-palette.BALpZUFZ.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..1b8ea3b8c93a13173644c1b73290bd5a071085b3 GIT binary patch literal 438 zcmV;n0ZINJiwFP!000026Qz>LZrm^ohVOj}13`fVunf)OS>$7Z-g4>_&@yGKkwrtI zXK9gluk3--LD1yVizJfL_mdP0sw0LIFomno;7<^XctXc0R=f4~(6_$_ik2;T1$87h zGFD83l2x#6$7!#Lnfi2aXeRq?8}8If%CA+2^PTzJ*f==2s@jo$scO(KZJ^ON>Oq!r zC*id);N0Z@-vkyVJtK4i^u7XTTQ4kQAC*SW7^H0h-<&|7y^KfY(rM`LcCYEV;v gd2G_0VwjX}kvCJ2F%em9hRf@hKc70A#P&djJ3c literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/assets/reveal.Dmxpik8H.css b/apps/dashboard/build/_app/immutable/assets/reveal.Dmxpik8H.css new file mode 100644 index 0000000..180e2a9 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/assets/reveal.Dmxpik8H.css @@ -0,0 +1 @@ +.header-tile.svelte-162svzm:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;box-shadow:0 0 18px -2px currentColor;opacity:.35;pointer-events:none}@media not (prefers-reduced-motion:reduce){.header-tile.svelte-162svzm:after{animation:svelte-162svzm-tile-glow 4s ease-in-out infinite}@keyframes svelte-162svzm-tile-glow{0%,to{opacity:.22}50%{opacity:.5}}}.text-balance.svelte-162svzm{text-wrap:balance}.text-pretty.svelte-162svzm{text-wrap:pretty} diff --git a/apps/dashboard/build/_app/immutable/assets/reveal.Dmxpik8H.css.br b/apps/dashboard/build/_app/immutable/assets/reveal.Dmxpik8H.css.br new file mode 100644 index 0000000000000000000000000000000000000000..417d6c038226981f430c373d2f7099762dc39320 GIT binary patch literal 238 zcmVWy4*{4y$3$ zjoCnYePxm1>u8W;>S>_C!|1TX3vfz^R&>HCb3e`oWaleilQn2CM&}(3zBACRu23%- zAfN#Wjij6Fb(TjVQ0|0<;t%jQz8YP!5xp`3>A)BHNV=bNGN*y2W{_OUM)K?KFyH0A o)2g0M!V3hP7b!=@-CzGpO?OwyEbdg5YGbh(~ za>OMCTcMmy_OwqKFy&zlLxQ96(Yg`RqgoNu#Ne7^evz;{Q&@c{q;maU4F literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js b/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js deleted file mode 100644 index 8840e85..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js +++ /dev/null @@ -1 +0,0 @@ -import{a1 as u,a2 as v,a3 as h,N as i,a4 as g,a5 as f,Y as A,a6 as S}from"./CpWkWWOo.js";const N=Symbol("is custom element"),p=Symbol("is html"),T=f?"link":"LINK",E=f?"progress":"PROGRESS";function k(r){if(i){var s=!1,a=()=>{if(!s){if(s=!0,r.hasAttribute("value")){var e=r.value;_(r,"value",null),r.value=e}if(r.hasAttribute("checked")){var o=r.checked;_(r,"checked",null),r.checked=o}}};r.__on_r=a,A(a),S()}}function l(r,s){var a=d(r);a.value===(a.value=s??void 0)||r.value===s&&(s!==0||r.nodeName!==E)||(r.value=s??"")}function _(r,s,a,e){var o=d(r);i&&(o[s]=r.getAttribute(s),s==="src"||s==="srcset"||s==="href"&&r.nodeName===T)||o[s]!==(o[s]=a)&&(s==="loading"&&(r[u]=a),a==null?r.removeAttribute(s):typeof a!="string"&&L(r).includes(s)?r[s]=a:r.setAttribute(s,a))}function d(r){return r.__attributes??(r.__attributes={[N]:r.nodeName.includes("-"),[p]:r.namespaceURI===v})}var c=new Map;function L(r){var s=r.getAttribute("is")||r.nodeName,a=c.get(s);if(a)return a;c.set(s,a=[]);for(var e,o=r,n=Element.prototype;n!==o;){e=g(o);for(var t in e)e[t].set&&a.push(t);o=h(o)}return a}export{l as a,k as r,_ as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.br b/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.br deleted file mode 100644 index fe4ef81fcfe97ba93639fa77c894caec5b455b1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?PdxSOh>EseSdWTI6eK`#YCY;zMLhrq$7de&e?qnzhWbq0P#sw5g=0x>_5Z z&KACqw%z|_oc}C}pcWKJ96_NMkFY3>V^Ggd`~rcL!mxK+Y%H2bwWU9JiZ0`ce!hSq zy24(aqN{kU|4v{px~BiAEPkZ9`Gct}bJszs!gIg*j7<<{(oklR62TpbPSKHugRrfi z81Ik_V%nnF&DHhjP74kG=vmHHlGrwH*yVi~^Prqzfp$?1EZ9DbHjv?IdqI6}VzKw2 z2Mi`DF-b_4GkgxJo6gx4l~)sCiQZpCuEUt=p=>z%5h)ZT@uP9jKj!-lO06~d-1&LA zKX;h!v5Ed*sa15~*3_VR%W%mq$vBe(7=UAE$A#=K$j66cSdFgZXn_T2WT=tBf-u|> zzB6{h0U}{BdR|e}%xb*+FmxT4K2G7Y&ha5c0|14O=;H&Bi~R6H20uVu#{+=KPeh&H z0@UgzdhXd)cj(3@V8fNdULJ1o;Tgr$2H9W DDsmp% diff --git a/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.gz b/apps/dashboard/build/_app/immutable/chunks/A7po6GxK.js.gz deleted file mode 100644 index 0b6c8051c2b9309f7485fa16605a29e894a3d4bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_n_iwFP!000026J1pAYuhjo{l34#)(0bj=C%9vA?6m!2&1e^N7GS82;u6; zi56QjCplY*{l5<-ah>+llke%?-8;$BRc*=d@iIaeH4@(k+)4Zpa3iMyw8W1A*AhPk zEadM1R}w!5oOK1+ily(q)(_imTB2}tN8P9~Q z&)JQyN+#qz6k}Fuvt=W8b3Oge(byeG2l0iZbc627d(w}MSDfvzY!nm6JOz{<0@;$2JaN)AWhvx| z0oCb(zgEdND&MMAuVaDIQ|PGF^UqqR0NAeUGD??AYnB8kuQ&=hBi%o)vM@2v@Jc;E=jnH0WLz&*p-@MrDA}IXj@K0Dq~`(7aDdFrRu#L zYU(86cJ3BH>00^0x)ag?0CSYHw(XZr`TlD|s$fYn)CYij(Y8S>1~`hM2%U!QrNxyt zYnCLO=1pKE0)(-RDJ50eojNZ*@=vw0MT9Xh=joVv!%3vt>F@G6={d~F@4VH#t>@5>=ULQ!Tl&djUzwWL9VAqK*%rgh0 z{zgBr9&T^w_jGSxO_yoM#QEV#ggk8FPGq{^C{7JymIrge6U-MPD=hKDjg}Tj8kija zxwIzhZJ1eRVgQ?oy@EBjLxPXAiIh-tzX*a!f@$5j4fi6mu;Es8eZ@}wJ3Jj_cmq&w U1CU$>a9#H1Kd~>r5m^KP0FA*lIsgCw diff --git a/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js b/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js deleted file mode 100644 index 964c791..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js +++ /dev/null @@ -1 +0,0 @@ -import{b as T,N as o,ab as b,E as h,ac as R,ax as p,ad as A,ae as E,T as g,R as l}from"./CpWkWWOo.js";import{B as v}from"./DdEqwvdI.js";function m(t,c,u=!1){o&&b();var n=new v(t),_=u?h:0;function i(a,r){if(o){const e=R(t);var s;if(e===p?s=0:e===A?s=!1:s=parseInt(e.substring(1)),a!==s){var f=E();g(f),n.anchor=f,l(!1),n.ensure(a,r),l(!0);return}}n.ensure(a,r)}T(()=>{var a=!1;c((r,s=0)=>{a=!0,i(s,r)}),a||i(!1,null)},_)}export{m as i}; diff --git a/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.br b/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.br deleted file mode 100644 index ca1901d6d4dba9fc062e7c9181783941479d097c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh#$vjG6C4s26v2m2c~7EC)jS?k66&1s-jo!6UmWJ@l+tvu%ADe(xwA!l0h z=Ai{zv-IulY=y5dH~I7y*H?FIMg9N3sqbIFNOKyCCT`#3cpB=YV$a-__7de`+gNs< zh`fmNuPdCZI9g|~B8NDaMij%-_XRIH!KWSqcjTDdi1y^DG^J4+K^HJdIV?}w7hAn|}3lJA|^GR&S6aOi?hLa6Xpt+zzLd$?KK zS6g@xF!QN%Wy9*RULj5E%2C(`0a%-8N-|&3Q3`n^v}+ooH4N1`q#UHllz}ffAvV)E z6SDs&Z*~MgZV!6wurzHC;6hh61OhWQD1oc)0aCwT0@9?d*uhBrKc5kO3-NV-_dfuO CppzE> diff --git a/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.gz b/apps/dashboard/build/_app/immutable/chunks/B4yTwGkE.js.gz deleted file mode 100644 index 30c2f17a85989acd1652e35433e1622e5009df67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316 zcmV-C0mJ?uiwFP!000026IGDGYQr!PMDP6yJBP4>#kH?7+mNu}o6j=DEh(AGpP1gx;9I1{5? zE=v&kAYEk0sB1Jp5O}11eOaY{5e*WZ7{const o=e?"?"+new URLSearchParams(e).toString():"";return t(`/memories${o}`)},get:e=>t(`/memories/${e}`),delete:e=>t(`/memories/${e}`,{method:"DELETE"}),promote:e=>t(`/memories/${e}/promote`,{method:"POST"}),demote:e=>t(`/memories/${e}/demote`,{method:"POST"}),suppress:(e,o)=>t(`/memories/${e}/suppress`,{method:"POST",body:o?JSON.stringify({reason:o}):void 0}),unsuppress:e=>t(`/memories/${e}/unsuppress`,{method:"POST"})},search:(e,o=20)=>t(`/search?q=${encodeURIComponent(e)}&limit=${o}`),stats:()=>t("/stats"),health:()=>t("/health"),timeline:(e=7,o=200)=>t(`/timeline?days=${e}&limit=${o}`),graph:e=>{const o=e?"?"+new URLSearchParams(Object.entries(e).filter(([,i])=>i!==void 0).map(([i,s])=>[i,String(s)])).toString():"";return t(`/graph${o}`)},dream:()=>t("/dream",{method:"POST"}),explore:(e,o="associations",i,s=10)=>t("/explore",{method:"POST",body:JSON.stringify({from_id:e,action:o,to_id:i,limit:s})}),predict:()=>t("/predict",{method:"POST"}),importance:e=>t("/importance",{method:"POST",body:JSON.stringify({content:e})}),consolidate:()=>t("/consolidate",{method:"POST"}),retentionDistribution:()=>t("/retention-distribution"),intentions:(e="active")=>t(`/intentions?status=${e}`),deepReference:(e,o=20)=>t("/deep_reference",{method:"POST",body:JSON.stringify({query:e,depth:o})}),sanhedrin:{latest:()=>t("/sanhedrin/latest"),telemetry:(e=7)=>t(`/sanhedrin/telemetry?days=${e}`),appeal:(e,o,i,s)=>t("/sanhedrin/appeal",{method:"POST",body:JSON.stringify({reason:e,note:o,claimId:i,receiptId:s})})}};export{n as a}; diff --git a/apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.br b/apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.br deleted file mode 100644 index d93874181fbfac113a243da8c24b659269520584..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t!#+XeuP)LN}JY}?Z5o@H`WdRXyu~xbAY%b+MUk zKZM853b+j>zn96b*=+HU=wXaS$-`$$Y0o*`vaB)n&A;Z7K$&m}r4Tp~O75$nV#33^i zf+?LKO%72xcBLADSu5K~_)RPNwp<#LM>=t#;NXCO1Cp1o4G|_P8vqrIfyv=Sptq2dFRlp^zq gM1_0p8dTk#F4dahx&~I%eKMG#LXJh%e}#N90ut>otN;K2 diff --git a/apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.gz b/apps/dashboard/build/_app/immutable/chunks/B7CfdQuM.js.gz deleted file mode 100644 index a99151aec26ca858483f7fc395cfc810b4eaa869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEIUiwFP!000026OB|&Z`&{oz3*3eLNHjEW_P;`P~Zl`+Czt8E&6dPhDEiR znw>4FlCm~1^xp@`9|_uY=uvzk`A9ypRMNV{6eJfK$z0ftER)q*mJXFnTnbFlu8g0s z5RU>~vI1Au>2lT?KkL9RSyzLoz*ydq?@Bt5?$gyq1K~ty-C!v~to+_8Nj%H4OnExT zRr($?^@qCJsK-RYV{&YaGU@W$`AIVCFtbj$we@`GaRpD#FX`NXTN{~R7GkE<_xxnh zwa_YqV0qV|bsUPrfx9YTK^Ej=$a8&hdI`dm^|>&jwJFfdsY_>2-ldciGKP2QG9LrZ zI^~ztvpa}UccDBsfwBr3aIha`T??*O6(>i>r^i>v#8ak?YSk+a`2g-Xo}XP_1-A-b z_v*1dPIj%e0c&}j=RVi*$8%?PtEvrGiyxO~KQkMfgsV;384y-Ut~}*`6;{cCr)({! zJbUSF@s|`mvvDSoVe#c)AlVxi55=qlS*i-IFHXLzRx1h8r9l0M23vGRKOYukVtE>! zNgiK>vKmC=>dD+c31tpjXix%Aq4*lJj%i0^QHhNWxu4~^GeXyIl-JqqJ(Mm3=|U%h z+E&;&Fll-m2pCrgW^fPwY-f|*@G~YOoRxrtCYmJq!#4cU1BSL)6=KtZVe0 z&`;G4OejM+0Ac3}658<>$RMvRxabdCG2IZ*7q9{Yq2k?DAbG%kn-P3l@egY-8xE`j z?dq_s;T8y4LuF9%t`QFGb_^4e_dr+?XrKjWHgQMBrJVjv@ODv_lnJdtG?9ML(u?Rl z{{var r=R(()=>e(t,a==null?void 0:a())||{});if(a&&(r!=null&&r.update)){var i=!1,n={};T(()=>{var s=a();U(s),i&&X(n,s)&&(n=s,r.update(s))}),i=!0}if(r!=null&&r.destroy)return()=>r.destroy()})}var V=k('

'),W=k('
'),Z=k('

');function fe(t,e){let a=m(e,"accent",3,"synapse");var r=Z(),i=f(r),n=f(i),s=f(n);S(s,{get name(){return e.icon},size:22,draw:!0}),l(n);var x=F(n,2),u=f(x),v=f(u,!0);l(u);var h=F(u,2);{var b=c=>{var d=V(),y=f(d,!0);l(d),L(()=>P(y,e.subtitle)),A(c,d)};B(h,c=>{e.subtitle&&c(b)})}l(x),l(i);var p=F(i,2);{var g=c=>{var d=W(),y=f(d);K(y,()=>e.children),l(d),A(c,d)};B(p,c=>{e.children&&c(g)})}l(r),L(()=>{E(n,1,`header-tile relative flex items-center justify-center w-11 h-11 rounded-xl shrink-0 + bg-${a()??""}/12 border border-${a()??""}/25 text-${a()??""}-glow`,"svelte-162svzm"),P(v,e.title)}),A(t,r)}var $=k(" ");function le(t,e){var q;Y(e,!0);let a=m(e,"decimals",3,0),r=m(e,"scale",3,1),i=m(e,"prefix",3,""),n=m(e,"suffix",3,""),s=m(e,"duration",3,900),x=m(e,"class",3,""),u=m(e,"group",3,!0),v=G(0),h=0,b=0,p=0,g=!1;const c=typeof window<"u"&&((q=window.matchMedia)==null?void 0:q.call(window,"(prefers-reduced-motion: reduce)").matches);function d(o){return o===1?1:1-Math.pow(2,-10*o)}function y(o){if(c){j(v,o,!0);return}cancelAnimationFrame(h),b=I(v),p=0;function w(M){p||(p=M);const _=Math.min(1,(M-p)/s());j(v,b+(o-b)*d(_)),_<1?h=requestAnimationFrame(w):j(v,o,!0)}h=requestAnimationFrame(w)}C(()=>{const o=e.value;return g||(g=!0),y(o),()=>cancelAnimationFrame(h)});let H=J(()=>(()=>{const w=(I(v)*r()).toFixed(a());if(!u())return w;const[M,_]=w.split("."),O=M.replace(/\B(?=(\d{3})+(?!\d))/g,",");return _!==void 0?`${O}.${_}`:O})());var z=$(),N=f(z);l(z),L(()=>{E(z,1,`tabular-nums ${x()??""}`),P(N,`${i()??""}${I(H)??""}${n()??""}`)}),A(t,z),D()}const ee=()=>{var t;return typeof window<"u"&&((t=window.matchMedia)==null?void 0:t.call(window,"(prefers-reduced-motion: reduce)").matches)};function me(t,e={}){const{y:a=16,delay:r=0,once:i=!0,threshold:n=.12}=e;if(ee())return t.classList.add("reveal-in"),{};t.classList.add("reveal"),t.style.setProperty("--reveal-y",`${a}px`),r&&t.style.setProperty("--reveal-delay",`${r}ms`);const s=new IntersectionObserver(x=>{for(const u of x)u.isIntersecting?(t.classList.add("reveal-in"),i&&s.unobserve(t)):i||t.classList.remove("reveal-in")},{threshold:n,rootMargin:"0px 0px -8% 0px"});return s.observe(t),{destroy(){s.disconnect()}}}export{le as A,fe as P,de as a,me as r}; diff --git a/apps/dashboard/build/_app/immutable/chunks/B9l3DI-J.js.br b/apps/dashboard/build/_app/immutable/chunks/B9l3DI-J.js.br new file mode 100644 index 0000000000000000000000000000000000000000..eeca7b10330edefde204b3ac43b45a99c3b395e8 GIT binary patch literal 1518 zcmV2i78tgw5L24z_K%wXUDL_tNbjX1IXhip1|+BC>e~EEA$Khg zi5!EP-7JHh(tyj6Idu(nSx8*`D6VoLw(i4%*48!K7ktC6)*bIjFJDrh_X@Cr=@*8<@xpf@5%g` z%cWG$-oww!;~%2sj-^|j-Bb5k?Vi-;dbyfqFyy3Yt^u%)8vRRCx=A40Q>h%IWShId z29pD77}LxLGp<8J0M&uXUkfVMtq;(7kB~j3R6nFU;&0KShSR-iP=xRVk{V$Rq%=u{ z1PwU2X5!U`1#KNwY)gc$Io%3q%$e+ZP;Be^MN}@2)X!Gjc~^yc=_i@Qv?srPaAR6a zfAhp}GF{Dd)urgDnDkUC_(-mYzB)HgFL3UdjrdGg1=l&574=pL8Iwr?WS;aZy$aa+ zB)>2o(+=&4-x5CD3w4?LdI94x6Qq_8oa-!#=Nq!>7xcHGsMIv5a+ZX1B0UHt3Q?&fgUE2@nMO9#10bPR zWO)ocGo7{<(2_^}CzjN2SI-0ecCe^CT>D1arsH2!g zexEGNwY&4}M)#iddusT26Loz&on6C>Mtf{mXNKNA`AB8(l+|BEy4DW7f{HwrG4qga zs9F@XG7=5cL$44yysLI%Lco)Y^n42y*j))}AA;$p{0XSGz|NdJYo>yb9RU)Ys2cyl@;JyA*5Aw)|;P3S(OyfTnIO+$lZSf2W1 z^6veF|LCh5)&L5n(Xpi9Lc62jeF7_v3yKVyH9|ImNP;E~h)VtuL8^6^j=LZ?o$Ip9 zVwM@(2QxXE9#0RZBePG-#OFw2a*=BVZ3}^FkmMSSv_Dx?UH8(CbV9TT<-p&OT|a-!`Tzu8>fB{~%i9iYI`+nzxnl&I z_8SAn0TB^o&;PU?=}7hCua*ANW2F7(aP{}nVYp%Xcc&G=yl{N$kP_<}5w5${T)SmL z6?yqewYAbWcFe9UHu+-ol`0CuZ<)t-6dV$i+H(C4+ym@|k;Sv)jM$C1eXD-dOw5>J z9+b2V$yYz1y4v*Z0o8OhTK-tB(u6DYBJNNvnyun`;a#nyHm0*dxe8FJ=TXdh9a3sfOsfc$_Jr2M(2 zmbIUj%=MoPqumVpH(pOr&}h;4uL^+QQx@6AYVZ|Bjj?$dY+4rEi4b%wUoyIffB_Cf z+oH+6j-D^GoqfqN_Ri$Lv0Cddn!GjE&s6ez5Kls`-qUnsl*HZzZP4h*D&6U-0POB# U&SmsT?zcc(dqt+DOmmf|CF}eJFaQ7m literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/B9l3DI-J.js.gz b/apps/dashboard/build/_app/immutable/chunks/B9l3DI-J.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..c1883cd3a67beb59c756e0d55db6d56b158e35d2 GIT binary patch literal 1675 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BKh9s_e0.js.gz b/apps/dashboard/build/_app/immutable/chunks/BKh9s_e0.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..28aa55b4152c285d6988829201ba955fe7e62cc2 GIT binary patch literal 617 zcmV-v0+#(BiwFP!000026Md7xj@mE~hVOlf91}BH;=r!9q;ud>sRyLqBOjv3X;OiW zY-dT><=s1DKy;<5Lh?WJDKi+Q$QjK1Tk|Y73PwIH6zXN z(%pwRU5B`hPzSIuD?C?w9TI~fZ>TeLXep2i9L^M!3R;YV_Vdw()IbL=`}mNRSz-$v zAC8XLq(@Da!sVLkLEeBOy3_Wxbko>xW>(OYpKDHR$L+L0%rEsi8F3OkZlg%inFg*z^wLdQxa zdD@Gx@WL)8F=q@{3Avu420HMN9cwP}e63YrV?IZKrgGx&Znq zR!N#gGdav>He}06e(YJvj{a}cIB21db|e#eX!#)f_}F2>Rup+JBn;S7=0;){var r=l+i;(l===0||e.includes(n[l-1]))&&(r===n.length||e.includes(n[r]))?n=(l===0?"":n.substring(0,l))+n.substring(r+1):l=r}}return n===""?null:n}function c(t,f){return t==null?null:String(t)}export{c as a,o as t}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.br b/apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.br deleted file mode 100644 index 262d659ac377853302c31e978235ce4d8492a4b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 zcmV+r0q_1BsR1C2#5fjmav%+gA*(jk!KjCR^w|H|pb}$%w0d)-Rd3QRMqr?(ZtCBI z(%RYB=iOsdqaq71khB1oZu78??vSZzl2-&hUvzT0suk)SQa!6VH|zh+y}6BsT5A+^ zyXcy((_6&;5?lefF;|YG9VfY(-8xzaK_rk$5=S}7TCYh$I2A6cTPshZCMPJM+(c(xB=ZLh_J6yO&DWfzILoPpnOHMQxY>n+1oa{gf)O^3IFV?t{nzMdO z6a>*3fSDzjK2uc*R1i1UvO%V_wn>;L=cG@XasK_X?M47NP9-;HEx$0rg(y_KF(5B~ W^_6~)Wz0VdHM^);+RYHS_!$e5#DPKp diff --git a/apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.gz b/apps/dashboard/build/_app/immutable/chunks/BKuqSeVd.js.gz deleted file mode 100644 index ac3f7e94c0d91ae6c022dc1e9416d17696cc7322..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmV+}0nz>+iwFP!000026J3x^PQx$|h1c{HmKTvn30AsIG-O4$U9fB-wN33}u*S$g zRZ*L}a28I6Oj|&#Mtb_*o0&H{3Xv&XNh#OtZr1x=e}43bJ}n*>i}ldzL}N6Lm=m$m zRf5xD;~8N@q-1T!dBb@bTcd?83PDI6m7MWXHySdoofp{>nA2>zeNkhSuj)OB1YopC zt1!T?D>R{1HYjGaAZZot<1^eM42G*zS*%-Ok))xWIxe*cl?8afy1g9e(Uv9?i1qob zq@mHKoeF|h_I^G96ov4Jc-!%h@dH3dc=6{SNrtoy(Hq)}I5>#-QpY#v<7s4@z&4f3BTnt?3&7(q*{T5m0BOFC A761SM diff --git a/apps/dashboard/build/_app/immutable/chunks/BMB5u1EX.js b/apps/dashboard/build/_app/immutable/chunks/BMB5u1EX.js new file mode 100644 index 0000000..f783822 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/BMB5u1EX.js @@ -0,0 +1,235 @@ +var k=Object.defineProperty;var G=(a,e,t)=>e in a?k(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var s=(a,e,t)=>G(a,typeof e!="symbol"?e+"":e,t);import"./Bzak7iHL.js";import{o as V,a as U,s as z}from"./DAau0uzT.js";import{p as H,d as q,e as X,aH as W,a as T,b as Y,f as B,s as K,X as E,g as S,c as P,r as A,af as j,Y as J}from"./CGq8RnJq.js";import{b as Z,i as Q}from"./Ccqjq5DS.js";import{p as $}from"./DV6OI5iy.js";function D(a){let e=1779033703^a.length;for(let t=0;t>>19;return function(){let t=e+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}}function R(a){return function(){let e=a+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}class ee{constructor(e){s(this,"fps");s(this,"loopFrames");s(this,"seedStr");s(this,"_frame");s(this,"_totalFrames");s(this,"_rng");this.fps=e.fps??60,this.loopFrames=e.loopFrames??720,this.seedStr=e.seed,this._frame=0,this._totalFrames=0;const t=D(this.seedStr)();this._rng=R(Math.floor(t*2**32))}tick(){return this._frame=(this._frame+1)%this.loopFrames,this._totalFrames++,this.state}get state(){return{frame:this._frame,phase:this._frame/this.loopFrames,rng:this._rng,totalFrames:this._totalFrames}}reset(){this._frame=0,this._totalFrames=0;const e=D(this.seedStr)();this._rng=R(Math.floor(e*2**32))}get loopDuration(){return this.loopFrames/this.fps}get framesPerLoop(){return this.loopFrames}}function Fe(a,e,t,i){const r=Math.PI*(3-Math.sqrt(5)),o=1-a/(e-1||1)*2,n=Math.sqrt(1-o*o),l=r*a,h=Math.cos(l)*n,m=Math.sin(l)*n,u=(i()-.5)*.1*t,p=(i()-.5)*.1*t,c=(i()-.5)*.1*t;return[h*t+u,o*t+p,m*t+c]}const C=["recall-path","engram-birth","salience-rescue","forgetting-horizon","firewall"];function Se(a){return C.includes(a)}const Le=16,Me={posRadius:0,velRetention:4,colorFlags:8},Te={isCenter:1,suppressed:2,isAha:4,isFailure:8,isConfusion:16},Ee=2,Pe=4,Ae={recall:0,backwardCause:1,probe:2},te=20,De={none:0,firewall:1,dreamStorm:2,causalRecall:3,birth:4},y={liveKind:12,liveFrame:13,liveEnergy:14,projectionDays:15,cursorX:16,cursorY:17,cursorVx:18,cursorVy:19};function se(a){const e=C.indexOf(a);return e<0?0:e}function Re(a,e){return{id:a.id,index:e,label:a.label,type:a.type,retention:typeof a.retention=="number"?a.retention:0,tags:Array.isArray(a.tags)?a.tags:[],isCenter:!!a.isCenter,suppressed:(a.suppression_count??0)>0,stability:typeof a.stability=="number"?a.stability:void 0,lastAccessed:typeof a.lastAccessed=="string"?a.lastAccessed:void 0}}function re(a,e){const t=Math.max(1,a>>1),i=Math.max(1,e>>1),r=Math.min(6,Math.max(1,1+Math.floor(Math.log2(Math.min(t,i)/8)))),o=Array.from({length:r},(n,l)=>[Math.max(1,t>>l),Math.max(1,i>>l)]);return{baseW:t,baseH:i,mipCount:r,sizes:o}}const F=.18,ae=0,ie=2/255,oe=.85,ne=.62,le=` +// Tuning constants — interpolated from post.wgsl.ts (TS single source of truth). +const BLOOM_STRENGTH: f32 = ${F}; +const BLOOM_CHROMATIC_TEXELS: f32 = ${ae}; +const GRAIN_AMP: f32 = ${ie}; +const VIGNETTE_LIFT: f32 = ${oe}; +const VIGNETTE_TAN: f32 = ${ne}; + +// Params layout — VERBATIM from render-nodes.wgsl.ts (types.PARAMS_FLOATS). +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + _pad: f32, +}; + +// Globally unique bindings — each entry point statically uses a subset; the +// explicit bind group layouts in post-chain.ts carry exactly what each +// pipeline needs (blur: 1+2, composite: 0+2+3+4). +@group(0) @binding(0) var params: Params; // composite only +@group(0) @binding(1) var src: texture_2d; // blur chain input +@group(0) @binding(2) var samp: sampler; // shared +@group(0) @binding(3) var scene_tex: texture_2d; // composite only +@group(0) @binding(4) var bloom_tex: texture_2d; // composite only (FULL-mip view) + +struct FSOut { + @builtin(position) pos: vec4f, + @location(0) uv: vec2f, +}; + +// Fullscreen triangle from bit math — no vertex buffer, no arrays. +// vi 0/1/2 → clip (-1,-1) (3,-1) (-1,3); uv y flipped so uv(0,0) = top-left. +@vertex +fn vs_fullscreen(@builtin(vertex_index) vi: u32) -> FSOut { + let xy = vec2f(f32((vi << 1u) & 2u), f32(vi & 2u)) * 2.0 - 1.0; + var out: FSOut; + out.pos = vec4f(xy, 0.0, 1.0); + out.uv = vec2f(xy.x, -xy.y) * 0.5 + 0.5; + return out; +} + +fn luma(c: vec3f) -> f32 { + return dot(c, vec3f(0.2126, 0.7152, 0.0722)); +} + +// --------------------------------------------------------------------------- +// Bloom downsample — 13-tap Jimenez (SIGGRAPH 2014 "Next Generation Post +// Processing in Call of Duty: Advanced Warfare"), taps fully unrolled. +// +// a b c outer ring at ±2 texels +// j k inner ring at ±1 texels +// d e f e = center +// l m +// g h i +// +// Grouped as 5 overlapping 4-tap boxes: center box (the four inner taps) +// weight 0.5, four corner boxes weight 0.125 each. A flat field reproduces +// itself EXACTLY (0.5 + 4·0.125 = 1) — that exactness is what the void +// preimage in tone-reference.ts depends on. +// --------------------------------------------------------------------------- + +@fragment +fn fs_downsample_karis(in: FSOut) -> @location(0) vec4f { + let ts = 1.0 / vec2f(textureDimensions(src)); + let a = textureSampleLevel(src, samp, in.uv + vec2f(-2.0, -2.0) * ts, 0.0).rgb; + let b = textureSampleLevel(src, samp, in.uv + vec2f( 0.0, -2.0) * ts, 0.0).rgb; + let c = textureSampleLevel(src, samp, in.uv + vec2f( 2.0, -2.0) * ts, 0.0).rgb; + let d = textureSampleLevel(src, samp, in.uv + vec2f(-2.0, 0.0) * ts, 0.0).rgb; + let e = textureSampleLevel(src, samp, in.uv, 0.0).rgb; + let f = textureSampleLevel(src, samp, in.uv + vec2f( 2.0, 0.0) * ts, 0.0).rgb; + let g = textureSampleLevel(src, samp, in.uv + vec2f(-2.0, 2.0) * ts, 0.0).rgb; + let h = textureSampleLevel(src, samp, in.uv + vec2f( 0.0, 2.0) * ts, 0.0).rgb; + let i = textureSampleLevel(src, samp, in.uv + vec2f( 2.0, 2.0) * ts, 0.0).rgb; + let j = textureSampleLevel(src, samp, in.uv + vec2f(-1.0, -1.0) * ts, 0.0).rgb; + let k = textureSampleLevel(src, samp, in.uv + vec2f( 1.0, -1.0) * ts, 0.0).rgb; + let l = textureSampleLevel(src, samp, in.uv + vec2f(-1.0, 1.0) * ts, 0.0).rgb; + let m = textureSampleLevel(src, samp, in.uv + vec2f( 1.0, 1.0) * ts, 0.0).rgb; + + let box_c = (j + k + l + m) * 0.25; + let box_tl = (a + b + d + e) * 0.25; + let box_tr = (b + c + e + f) * 0.25; + let box_bl = (d + e + g + h) * 0.25; + let box_br = (e + f + h + i) * 0.25; + + // Karis average (fireflies killer) — used ONLY on the full→mip0 hop. + // Each box is additionally weighted 1/(1 + luma) and the sum RENORMALIZED: + // on a flat field every Karis factor is equal, so the result is exact. + let w_c = 0.5 / (1.0 + luma(box_c)); + let w_tl = 0.125 / (1.0 + luma(box_tl)); + let w_tr = 0.125 / (1.0 + luma(box_tr)); + let w_bl = 0.125 / (1.0 + luma(box_bl)); + let w_br = 0.125 / (1.0 + luma(box_br)); + let sum = w_c * box_c + w_tl * box_tl + w_tr * box_tr + w_bl * box_bl + w_br * box_br; + return vec4f(sum / (w_c + w_tl + w_tr + w_bl + w_br), 1.0); +} + +@fragment +fn fs_downsample(in: FSOut) -> @location(0) vec4f { + let ts = 1.0 / vec2f(textureDimensions(src)); + let a = textureSampleLevel(src, samp, in.uv + vec2f(-2.0, -2.0) * ts, 0.0).rgb; + let b = textureSampleLevel(src, samp, in.uv + vec2f( 0.0, -2.0) * ts, 0.0).rgb; + let c = textureSampleLevel(src, samp, in.uv + vec2f( 2.0, -2.0) * ts, 0.0).rgb; + let d = textureSampleLevel(src, samp, in.uv + vec2f(-2.0, 0.0) * ts, 0.0).rgb; + let e = textureSampleLevel(src, samp, in.uv, 0.0).rgb; + let f = textureSampleLevel(src, samp, in.uv + vec2f( 2.0, 0.0) * ts, 0.0).rgb; + let g = textureSampleLevel(src, samp, in.uv + vec2f(-2.0, 2.0) * ts, 0.0).rgb; + let h = textureSampleLevel(src, samp, in.uv + vec2f( 0.0, 2.0) * ts, 0.0).rgb; + let i = textureSampleLevel(src, samp, in.uv + vec2f( 2.0, 2.0) * ts, 0.0).rgb; + let j = textureSampleLevel(src, samp, in.uv + vec2f(-1.0, -1.0) * ts, 0.0).rgb; + let k = textureSampleLevel(src, samp, in.uv + vec2f( 1.0, -1.0) * ts, 0.0).rgb; + let l = textureSampleLevel(src, samp, in.uv + vec2f(-1.0, 1.0) * ts, 0.0).rgb; + let m = textureSampleLevel(src, samp, in.uv + vec2f( 1.0, 1.0) * ts, 0.0).rgb; + + let box_c = (j + k + l + m) * 0.25; + let box_tl = (a + b + d + e) * 0.25; + let box_tr = (b + c + e + f) * 0.25; + let box_bl = (d + e + g + h) * 0.25; + let box_br = (e + f + h + i) * 0.25; + return vec4f(box_c * 0.5 + (box_tl + box_tr + box_bl + box_br) * 0.125, 1.0); +} + +// --------------------------------------------------------------------------- +// Bloom upsample — 9-tap 3×3 tent, 1/16·[1 2 1; 2 4 2; 1 2 1], radius = one +// SOURCE-mip texel. Rendered with additive one/one blending onto the stored +// downsample of the destination mip (accumulate-up-the-chain). The resulting +// DC gain of exactly mipCount is normalized in fs_composite. +// --------------------------------------------------------------------------- + +@fragment +fn fs_upsample_tent(in: FSOut) -> @location(0) vec4f { + let ts = 1.0 / vec2f(textureDimensions(src)); + let a = textureSampleLevel(src, samp, in.uv + vec2f(-1.0, -1.0) * ts, 0.0).rgb; + let b = textureSampleLevel(src, samp, in.uv + vec2f( 0.0, -1.0) * ts, 0.0).rgb; + let c = textureSampleLevel(src, samp, in.uv + vec2f( 1.0, -1.0) * ts, 0.0).rgb; + let d = textureSampleLevel(src, samp, in.uv + vec2f(-1.0, 0.0) * ts, 0.0).rgb; + let e = textureSampleLevel(src, samp, in.uv, 0.0).rgb; + let f = textureSampleLevel(src, samp, in.uv + vec2f( 1.0, 0.0) * ts, 0.0).rgb; + let g = textureSampleLevel(src, samp, in.uv + vec2f(-1.0, 1.0) * ts, 0.0).rgb; + let h = textureSampleLevel(src, samp, in.uv + vec2f( 0.0, 1.0) * ts, 0.0).rgb; + let i = textureSampleLevel(src, samp, in.uv + vec2f( 1.0, 1.0) * ts, 0.0).rgb; + let sum = (a + c + g + i) + (b + d + f + h) * 2.0 + e * 4.0; + return vec4f(sum * (1.0 / 16.0), 1.0); +} + +// --------------------------------------------------------------------------- +// Composite — bloom-add → PBR Neutral → grain → vignette (order is mandated). +// --------------------------------------------------------------------------- + +// Khronos PBR Neutral — EXACT port of the Khronos reference implementation. +// Hue-preserving; the FSRS palette keeps its channel ordering. Pinned to the +// CPU mirror in post/tone-reference.ts (pbrNeutralReference) — keep in +// lockstep, the void-preimage tests run against the mirror. +fn pbr_neutral(color_in: vec3f) -> vec3f { + let start_compression = 0.8 - 0.04; + let desaturation = 0.15; + var color = color_in; + let x = min(color.r, min(color.g, color.b)); + // WGSL select(false_value, true_value, condition) — argument order trap. + let offset = select(0.04, x - 6.25 * x * x, x < 0.08); + color = color - vec3f(offset); + let peak = max(color.r, max(color.g, color.b)); + if (peak < start_compression) { + return color; + } + let d = 1.0 - start_compression; + let new_peak = 1.0 - d * d / (peak + d - start_compression); + color = color * (new_peak / peak); + let g = 1.0 / (desaturation * (peak - new_peak) + 1.0); + // mix weight = 1 - g per the Khronos spec. + return mix(color, vec3f(new_peak), 1.0 - g); +} + +// PCG hash — integers only, 24-bit-exact output in [0, 1). Deterministic. +fn pcg(v: u32) -> u32 { + var s = v * 747796405u + 2891336453u; + let t = ((s >> ((s >> 28u) + 4u)) ^ s) * 277803737u; + return (t >> 22u) ^ t; +} + +fn hashf(p: vec2u, f: u32) -> f32 { + return f32(pcg(p.x ^ pcg(p.y ^ pcg(f))) >> 8u) / 16777216.0; +} + +@fragment +fn fs_composite(in: FSOut) -> @location(0) vec4f { + let pix = vec2u(in.pos.xy); + // Exact 1:1 fetch (alpha discarded — see module header). + let scene = textureLoad(scene_tex, pix, 0).rgb; + + // Bloom, normalized by the mip count: the additive up-chain has DC gain + // exactly mipCount, so /mips makes flat-field gain exactly 1 — the void + // preimage holds and brightness is viewport-stable. Chromatic dispersion + // rides the bloom term ONLY (BLOOM_CHROMATIC_TEXELS = 0.0 kills it). + let mips = f32(textureNumLevels(bloom_tex)); + let dims = vec2f(textureDimensions(bloom_tex)); + let dvec = in.uv - vec2f(0.5); + let off = dvec * (BLOOM_CHROMATIC_TEXELS * dot(dvec, dvec) * 4.0) / dims; + let bloom = vec3f( + textureSampleLevel(bloom_tex, samp, in.uv - off, 0.0).r, + textureSampleLevel(bloom_tex, samp, in.uv, 0.0).g, + textureSampleLevel(bloom_tex, samp, in.uv + off, 0.0).b + ) / mips; + + var c = pbr_neutral(scene + BLOOM_STRENGTH * bloom); + + // Seeded TPDF film grain (post-tonemap dither): keyed to the WRAPPED loop + // frame → 720-periodic and capture-pinned. Full strength in the shadows + // (kills #05060a banding), fades out of highlights. + let f = u32(params.frame + 0.5); + let n = hashf(pix, f) + hashf(pix ^ vec2u(0x9E3779B9u, 0x85EBCA6Bu), f) - 1.0; + let w = 1.0 - smoothstep(0.0, 0.8, luma(c)); + c += GRAIN_AMP * n * w; + + // cos⁴ vignette: cos⁴θ = (1 + r²·tan²)⁻², aspect-normalized so rn = 1.0 + // exactly at the corners regardless of viewport shape. Lifted floor keeps + // it an observatory, not a tunnel. + let ar = vec2f(params.viewport_w / max(params.viewport_h, 1.0), 1.0); + let rn = length((in.uv * 2.0 - 1.0) * ar) / length(ar); + let k = rn * rn * VIGNETTE_TAN * VIGNETTE_TAN; + c *= mix(VIGNETTE_LIFT, 1.0, 1.0 / ((1.0 + k) * (1.0 + k))); + + // NO gamma encode — display-referred pass-through, matching the pre-post + // look where shader outputs went straight to the swapchain. + return vec4f(c, 1.0); +} +`,x="rgba16float",ce={color:{srcFactor:"one",dstFactor:"one",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one",operation:"add"}};class ue{constructor(e,t,i){s(this,"device");s(this,"paramsBuffer");s(this,"samp");s(this,"blurLayout");s(this,"compositeLayout");s(this,"pipeDownFirst");s(this,"pipeDown");s(this,"pipeUp");s(this,"pipeComposite");s(this,"width",0);s(this,"height",0);s(this,"plan",null);s(this,"sceneTex",null);s(this,"_sceneView",null);s(this,"bloomTex",null);s(this,"mipViews",[]);s(this,"bloomFullView",null);s(this,"downBind",[]);s(this,"upBind",[]);s(this,"compositeBind",null);this.device=e,this.paramsBuffer=t,this.samp=e.createSampler({label:"observatory-post-sampler",minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"});const r=e.createShaderModule({label:"observatory-post",code:le});this.blurLayout=e.createBindGroupLayout({label:"observatory-post-blur-layout",entries:[{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),this.compositeLayout=e.createBindGroupLayout({label:"observatory-post-composite-layout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}}]});const o=e.createPipelineLayout({label:"observatory-post-blur-pipe-layout",bindGroupLayouts:[this.blurLayout]}),n=e.createPipelineLayout({label:"observatory-post-composite-pipe-layout",bindGroupLayouts:[this.compositeLayout]}),l=(h,m,u,p,c)=>e.createRenderPipeline({label:h,layout:m,vertex:{module:r,entryPoint:"vs_fullscreen"},fragment:{module:r,entryPoint:u,targets:[{format:p,blend:c}]},primitive:{topology:"triangle-list"}});this.pipeDownFirst=l("observatory-post-down-karis",o,"fs_downsample_karis",x),this.pipeDown=l("observatory-post-down",o,"fs_downsample",x),this.pipeUp=l("observatory-post-up",o,"fs_upsample_tent",x,ce),this.pipeComposite=l("observatory-post-composite",n,"fs_composite",i)}get sceneView(){if(!this._sceneView)throw new Error("PostChain.ensure() must run before sceneView is used");return this._sceneView}ensure(e,t){var h,m;const i=Math.max(1,Math.floor(e)),r=Math.max(1,Math.floor(t));if(i===this.width&&r===this.height&&this.sceneTex!==null)return;this.width=i,this.height=r,(h=this.sceneTex)==null||h.destroy(),(m=this.bloomTex)==null||m.destroy(),this.sceneTex=this.device.createTexture({label:"observatory-scene-hdr",size:[i,r],format:x,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING}),this._sceneView=this.sceneTex.createView({label:"observatory-scene-hdr-view"});const o=re(i,r);this.plan=o,this.bloomTex=this.device.createTexture({label:"observatory-bloom-mips",size:[o.baseW,o.baseH],format:x,mipLevelCount:o.mipCount,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING});const n=this.bloomTex;this.mipViews=Array.from({length:o.mipCount},(u,p)=>n.createView({label:`observatory-bloom-mip-${p}`,baseMipLevel:p,mipLevelCount:1})),this.bloomFullView=n.createView({label:"observatory-bloom-full"});const l=this._sceneView;this.downBind=this.mipViews.map((u,p)=>this.device.createBindGroup({label:`observatory-bloom-down-bind-${p}`,layout:this.blurLayout,entries:[{binding:1,resource:p===0?l:this.mipViews[p-1]},{binding:2,resource:this.samp}]})),this.upBind=[];for(let u=0;u+1=0;n--){const l=e.beginRenderPass({label:`observatory-bloom-up-${n}`,colorAttachments:[{view:this.mipViews[n],loadOp:"load",storeOp:"store"}]});l.setPipeline(this.pipeUp),l.setBindGroup(0,this.upBind[n]),l.draw(3),l.end()}const o=e.beginRenderPass({label:"observatory-post-composite",colorAttachments:[{view:t,loadOp:"clear",storeOp:"store"}]});o.setPipeline(this.pipeComposite),o.setBindGroup(0,this.compositeBind),o.draw(3),o.end()}dispose(){var e,t;(e=this.sceneTex)==null||e.destroy(),(t=this.bloomTex)==null||t.destroy(),this.sceneTex=null,this.bloomTex=null,this._sceneView=null,this.bloomFullView=null,this.mipViews=[],this.downBind=[],this.upBind=[],this.compositeBind=null,this.plan=null,this.width=0,this.height=0}}const I=Math.sqrt(5/255/6.25),N=I-5/255,pe={r:I/(1+F),g:(6/255+N)/(1+F),b:(10/255+N)/(1+F),a:1},w=class w{constructor(e){s(this,"canvas");s(this,"device",null);s(this,"context",null);s(this,"format","bgra8unorm");s(this,"clock");s(this,"demo");s(this,"freezeFrame");s(this,"rafId",0);s(this,"running",!1);s(this,"disposed",!1);s(this,"maxDpr");s(this,"onFrame");s(this,"params",new Float32Array(te));s(this,"paramsBuffer",null);s(this,"passes",[]);s(this,"post",null);s(this,"_status",{state:"booting"});s(this,"statusListeners",new Set);s(this,"preFrameHook",null);s(this,"lastRafTs",0);s(this,"fpsEstimate",0);s(this,"accumulatorMs",0);s(this,"paused",!1);s(this,"frame",e=>{var p,c,d,b;if(!this.running||!this.device||!this.context||!this.paramsBuffer||!this.post)return;let t=0;for(this.lastRafTs>0&&(t=e-this.lastRafTs,t>0&&(this.fpsEstimate=Math.round(1e3/t))),this.lastRafTs=e,this.accumulatorMs+=Math.min(t,250);this.accumulatorMs>=w.FIXED_DT_MS;)this.paused||this.clock.tick(),this.accumulatorMs-=w.FIXED_DT_MS;const i=this.clock.state,r=this.freezeFrame??i.frame,o=r/this.clock.framesPerLoop,n=this.params;n[0]=r,n[1]=o,n[5]=.5+.5*Math.sin(2*Math.PI*4*o),n[6]=this.canvas.width,n[7]=this.canvas.height,n[9]=se(this.demo),n[10]=r/60,n[11]=this.freezeFrame!==null?1:0,(p=this.preFrameHook)==null||p.call(this,i.totalFrames),this.device.queue.writeBuffer(this.paramsBuffer,0,n);let l;try{l=this.context.getCurrentTexture()}catch{this.rafId=requestAnimationFrame(this.frame);return}this.post.ensure(l.width,l.height);const h=l.createView(),m=this.device.createCommandEncoder({label:"observatory-frame"});for(const v of this.passes)(c=v.compute)==null||c.call(v,m,r);const u=m.beginRenderPass({label:"observatory-main",colorAttachments:[{view:this.post.sceneView,clearValue:pe,loadOp:"clear",storeOp:"store"}]});for(const v of this.passes)(d=v.render)==null||d.call(v,u,r);u.end(),this.post.encode(m,h),this.device.queue.submit([m.finish()]),(b=this.onFrame)==null||b.call(this,r,this.fpsEstimate),this.rafId=requestAnimationFrame(this.frame)});this.canvas=e.canvas,this.demo=e.demo,this.maxDpr=e.maxDpr??2,this.onFrame=e.onFrame,this.clock=new ee({seed:e.seed}),this.freezeFrame=typeof e.freezeFrame=="number"&&Number.isFinite(e.freezeFrame)?(Math.floor(e.freezeFrame)%this.clock.framesPerLoop+this.clock.framesPerLoop)%this.clock.framesPerLoop:null,this.params[8]=1,this.setCursorPreNdc(999,999,0,0)}get status(){return this._status}get gpuDevice(){return this.device}get presentationFormat(){return this.format}get sceneFormat(){return x}get demoClock(){return this.clock}onStatus(e){return this.statusListeners.add(e),e(this._status),()=>this.statusListeners.delete(e)}setStatus(e){this._status=e;for(const t of this.statusListeners)t(e)}addPass(e){this.passes.push(e)}removePass(e){var i;const t=this.passes.indexOf(e);t!==-1&&(this.passes.splice(t,1),(i=e.dispose)==null||i.call(e))}clearPasses(){var e;for(const t of this.passes)(e=t.dispose)==null||e.call(t);this.passes.length=0}setPreFrameHook(e){this.preFrameHook=e}get totalFrames(){return this.clock.state.totalFrames}setCursorPreNdc(e,t,i=0,r=0){this.params[y.cursorX]=Number.isFinite(e)?e:999,this.params[y.cursorY]=Number.isFinite(t)?t:999,this.params[y.cursorVx]=Number.isFinite(i)?i:0,this.params[y.cursorVy]=Number.isFinite(r)?r:0}setPaused(e){this.paused=e}get isPaused(){return this.paused}get wallNowMs(){return Date.now()}async start(){var r;if(this.disposed)return!1;const e=navigator.gpu;if(!e)return this.setStatus({state:"unsupported",reason:"WebGPU is not available in this browser."}),!1;let t=null;try{t=await e.requestAdapter()}catch(o){return this.setStatus({state:"error",reason:o instanceof Error?o.message:"requestAdapter failed"}),!1}if(!t)return this.setStatus({state:"unsupported",reason:"No suitable GPU adapter found."}),!1;try{this.device=await t.requestDevice()}catch(o){return this.setStatus({state:"error",reason:o instanceof Error?o.message:"requestDevice failed"}),!1}if(this.disposed)return(r=this.device)==null||r.destroy(),this.device=null,!1;this.device.lost.then(o=>{this.disposed||o.reason==="destroyed"||(this.setStatus({state:"error",reason:`GPU device lost: ${o.message}`}),this.stopLoop())}),this.device.onuncapturederror=o=>{console.error("[observatory] WebGPU error:",o.error.message)};const i=this.canvas.getContext("webgpu");return i?(this.context=i,this.format=e.getPreferredCanvasFormat(),this.configureContext(),this.paramsBuffer=this.device.createBuffer({label:"observatory-params",size:this.params.byteLength,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.post=new ue(this.device,this.paramsBuffer,this.format),this.setStatus({state:"running"}),this.running=!0,this.rafId=requestAnimationFrame(this.frame),!0):(this.setStatus({state:"error",reason:"Could not get webgpu canvas context."}),!1)}resize(){var r;if(!this.device||!this.context)return;const e=Math.min(window.devicePixelRatio||1,this.maxDpr),t=Math.max(1,Math.floor(this.canvas.clientWidth*e)),i=Math.max(1,Math.floor(this.canvas.clientHeight*e));(this.canvas.width!==t||this.canvas.height!==i)&&(this.canvas.width=t,this.canvas.height=i,this.configureContext(),(r=this.post)==null||r.ensure(t,i))}configureContext(){!this.device||!this.context||this.context.configure({device:this.device,format:this.format,alphaMode:"opaque"})}stopLoop(){this.running=!1,this.rafId!==0&&(cancelAnimationFrame(this.rafId),this.rafId=0)}dispose(){var e,t,i;this.disposed||(this.disposed=!0,this.stopLoop(),(e=this.paramsBuffer)==null||e.destroy(),this.paramsBuffer=null,(t=this.post)==null||t.dispose(),this.post=null,(i=this.device)==null||i.destroy(),this.device=null,this.context=null,this.passes=[],this.setStatus({state:"disposed"}),this.statusListeners.clear())}};s(w,"FIXED_DT_MS",1e3/60);let M=w;var me=B(``),he=B(' ',1);function Ne(a,e){H(e,!0);let t=$(e,"freezeFrame",3,null),i,r=null,o=q(X({state:"booting"})),n=null,l=null;V(()=>{r=new M({canvas:i,demo:e.demo,seed:e.seed,freezeFrame:t(),maxDpr:2,onFrame:(c,d)=>{var b;return(b=e.onframe)==null?void 0:b.call(e,c,d)}}),n=r.onStatus(c=>K(o,c,!0)),l=new ResizeObserver(()=>r==null?void 0:r.resize()),l.observe(i),r.start().then(c=>{var d;c&&r&&(r.resize(),(d=e.onready)==null||d.call(e,r))})}),U(()=>{n==null||n(),l==null||l.disconnect(),r==null||r.dispose(),r=null});var h=he(),m=W(h);Z(m,c=>i=c,()=>i);var u=E(m,2);{var p=c=>{var d=me(),b=E(P(d),2),v=P(b,!0);A(b),j(2),A(d),J(()=>z(v,S(o).reason)),T(c,d)};Q(u,c=>{(S(o).state==="unsupported"||S(o).state==="error")&&c(p)})}T(a,h),Y()}function O(a){const e=/^#?([0-9a-fA-F]{6})$/.exec(a.trim());if(!e)return[2/255,3/255,7/255];const t=parseInt(e[1],16);return[(t>>16&255)/255,(t>>8&255)/255,(t&255)/255]}const de={blackwater:"#020307"},f={luciferin:"#E9FFB7",healthy:"#A8FF5E",recall:"#29F2A9",bridge:"#1BD6FF",debt:"#8A4B18",extinction:"#2A160B"},fe=[f.extinction,f.debt,f.healthy,f.luciferin],g={trustMembrane:"#F4F1D0",caution:"#FFD166",veto:"#FF3B30",suppressionScar:"#B90D2B",labile:"#FF7A1A"},_={forward:"#00F5D4",retrograde:"#FF2DF7"},L={validRing:"#6BFFB8",txShadow:"#7C6CFF",supersession:"#FFB000"},Be={throughput:"#9DFFEB"};function Ce(a){const e=Math.max(0,Math.min(1,a)),t=fe.map(O),i=e*(t.length-1),r=Math.min(t.length-2,Math.floor(i)),o=i-r,n=t[r],l=t[r+1];return[n[0]+(l[0]-n[0])*o,n[1]+(l[1]-n[1])*o,n[2]+(l[2]-n[2])*o]}const ve={MemoryCreated:f.healthy,SearchPerformed:_.forward,ActivationSpread:f.recall,ImportanceScored:L.supersession,RetentionDecayed:f.debt,ConnectionDiscovered:_.forward,DeepReferenceCompleted:f.luciferin,BackfillFired:_.retrograde,CausalReceipt:_.retrograde,MemorySuppressed:g.suppressionScar,MemoryUnsuppressed:g.labile,MemoryPromoted:f.luciferin,MemoryDemoted:f.debt,MemoryPrOpened:g.caution,MemoryPrDecided:g.trustMembrane,HookVerdictRecorded:g.veto,TraceEvent:_.forward,DreamStarted:L.txShadow,DreamCompleted:L.validRing,Rac1CascadeSwept:g.suppressionScar};function Ie(a){return O(ve[a]??de.blackwater)}function Oe(a){const e=Math.max(0,Math.min(1,a));return .003+(.018-.003)*e}export{_ as C,C as D,Le as F,g as I,De as L,de as M,Me as N,Ne as O,Ae as P,f as R,Ee as U,Be as V,Ce as a,Te as b,Pe as c,Fe as d,Ie as e,ee as f,y as g,Se as i,Oe as m,O as r,Re as t}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BMB5u1EX.js.br b/apps/dashboard/build/_app/immutable/chunks/BMB5u1EX.js.br new file mode 100644 index 0000000000000000000000000000000000000000..8681c2c33acb12ea5ff71778d5c27f8a33324f36 GIT binary patch literal 8629 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 HHj!TeEepzn literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BMB5u1EX.js.gz b/apps/dashboard/build/_app/immutable/chunks/BMB5u1EX.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..bc2274143dd9996d132a567f31455fa94e125f28 GIT binary patch literal 9686 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

~4WQ_S*p&`1rNwHoGu;+V*} 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 Yeu9?-6dkYGWaGvE2j@Dpn>}j)09jqwHUIzs literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js b/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js deleted file mode 100644 index 41853ff..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js +++ /dev/null @@ -1 +0,0 @@ -import{az as g,aA as d,aB as c,v as m,aC as i,aD as b,g as p,aE as v,z as h,aF as k}from"./CpWkWWOo.js";function x(t=!1){const a=g,e=a.l.u;if(!e)return;let f=()=>v(a.s);if(t){let n=0,s={};const _=h(()=>{let l=!1;const r=a.s;for(const o in r)r[o]!==s[o]&&(s[o]=r[o],l=!0);return l&&n++,n});f=()=>p(_)}e.b.length&&d(()=>{u(a,f),i(e.b)}),c(()=>{const n=m(()=>e.m.map(b));return()=>{for(const s of n)typeof s=="function"&&s()}}),e.a.length&&c(()=>{u(a,f),i(e.a)})}function u(t,a){if(t.l.s)for(const e of t.l.s)p(e);a()}k();export{x as i}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.br b/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.br deleted file mode 100644 index 762f9297bc2bd60a82d71be354bbcdbd7244b4ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmV-B0mS|r76JgA1>6u-9_k)0!xxePstej2z^<|Nj5*{%o| zI5FPoViF2ieF|dVwb{fES{qY!{@kW1BG(ej)VNOi z2}St81A1K#+LGZ~Zk)_N_jb2jzDaP0ats3WGXl2v8CIdduWd)M#*S*p0-&5zDHx>Q NNw6O}{LWHmZWkrxm4*NS diff --git a/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.gz b/apps/dashboard/build/_app/immutable/chunks/BUoSzNdg.js.gz deleted file mode 100644 index 8f4a3ef5e74806a6a78cd59f09b7865764d443b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jT~TiwFP!000026J?UIZo)7ShW9>&!w~tz$%WavN-b^IjtmH)BXuApv7^{Q zw2|Mva#CRE^yz+|{aI&MP3yWa@Q+|G4#>}mpU5wX1)dWcH8b_NYS*Xr`opO&KhtGzi%>Z$E;3NIgrRWO2f=heL#%4m>#CHQfzE`! zv${4xlq7+k&XSdfv>ISYv84ri8ls+#*wIm@zHzOlZ26aW#LDZ^b#khmsI2Iq+qi8; zzmAJoge}1T>0o^5UPIAws;(xR(JL phBPu&D-U;*Nv0`mr2)+n;z@!wm+>21#%GTD;TPdv+9wwR007LDs&D`R diff --git a/apps/dashboard/build/_app/immutable/chunks/BbCqB9Us.js b/apps/dashboard/build/_app/immutable/chunks/BbCqB9Us.js new file mode 100644 index 0000000..520d3a5 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/BbCqB9Us.js @@ -0,0 +1 @@ +import{i as p,E as t}from"./CGq8RnJq.js";import{B as i}from"./W8qDZJD6.js";function E(r,s,...a){var e=new i(r);p(()=>{const n=s()??null;e.ensure(n,n&&(o=>n(o,...a)))},t)}export{E as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BbCqB9Us.js.br b/apps/dashboard/build/_app/immutable/chunks/BbCqB9Us.js.br new file mode 100644 index 0000000000000000000000000000000000000000..06f545368f07ceea1f179ef8d69cab9ef9ead24e GIT binary patch literal 150 zcmV;H0BQdlxd4FVU|xMCL3d-DUyNWAM?5``GS9Uw3tH5cCv9=g=|S!`wta3zkbaH0 zz+Jz|b4&*E1eUb^C#`CuS!k}jWvG5)+7ZG~-wLuf!|`c3)+OhdKqSYqs;cL1fA1ad zo|A8g&^{i9|@z8%<(c zki2_Q>2#Kl!*9mPy09A7dN%QTn-F_v$3&d3w>i60GmDo`q&Z-@3G)|^Y_6V7b=gI~ zP#26PR)gc73n5xu->qX>k^V3P4&?-ZDqlNGJ}^=quqbF52C0Q6zc>xVDNVtuoWLF* Yh>-`3`nw10i9X8H54n>wp1J@401JLc7XSbN literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BeGBxCGK.js b/apps/dashboard/build/_app/immutable/chunks/BeGBxCGK.js new file mode 100644 index 0000000..7b9ca2b --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/BeGBxCGK.js @@ -0,0 +1,238 @@ +var F=Object.defineProperty;var D=(o,e,t)=>e in o?F(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var c=(o,e,t)=>D(o,typeof e!="symbol"?e+"":e,t);import{r as m,C as A,I as E,R as _,a as O}from"./BMB5u1EX.js";const S=` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + capture_mode: f32, + live_kind: f32, + live_frame: f32, + live_energy: f32, + projection_days: f32, + cursor_x: f32, + cursor_y: f32, + cursor_vx: f32, + cursor_vy: f32, +}; + +// One living cell. 16 floats = 4 vec4, 16-byte aligned lanes. +struct LivingCellGpu { + // x,y NDC base position; z billboard radius; w orbit ring radius (== length(xy)) + pos_radius: vec4f, + // rgb hue; w energy 0..1 (brightness / activation) + hue_energy: vec4f, + // x orbit phase (0..1); y flags (bit0 selected, bit1 endangered/scar, bit2 pulse-strong); + // z secondary metric (retention-ish 0..1); w spin scale + phase_flags: vec4f, + // x ring index / group; y satellite twinkle seed; z,w reserved + extra: vec4f, +}; + +const TAU: f32 = 6.28318530718; + +// Living orbital drift — the thing that makes the field MOVE. Deterministic: +// a pure function of params.time + the cell's own phase. ring_spin gives inner +// (high-phase) cells a faster turn, like a spinning galaxy core. +fn ring_spin(phase01: f32) -> f32 { + let speed = 0.045 + phase01 * 0.10; + return params.time * speed; +} + +fn orbit(base: vec2f, phase01: f32, spin_scale: f32) -> vec2f { + let radius = length(base); + if (radius < 0.0001) { return base; } + let ang0 = atan2(base.y, base.x); + let ang = ang0 + ring_spin(phase01) * spin_scale + sin(params.time * 0.6 + phase01 * TAU) * 0.02; + let rr = radius * (1.0 + 0.016 * sin(params.time * 1.1 + phase01 * TAU)); + return vec2f(cos(ang), sin(ang)) * rr; +} +`,N=` +${S} + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var cells: array; + +const QUAD = array( + vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0), + vec2f(-1.0, -1.0), vec2f(1.0, 1.0), vec2f(-1.0, 1.0) +); + +struct VSOut { + @builtin(position) clip: vec4f, + @location(0) uv: vec2f, + @location(1) @interpolate(flat) hue_energy: vec4f, + @location(2) @interpolate(flat) info: vec4f, // x phase, y flags, z metric2, w spin +}; + +@vertex +fn vs_splat(@builtin(vertex_index) vi: u32, @builtin(instance_index) ii: u32) -> VSOut { + let c = cells[ii]; + let corner = QUAD[vi]; + let phase = c.phase_flags.x; + // breathe the splat radius so density is never a flat print + let breathe = 1.0 + 0.14 * sin(params.time * 1.5 + phase * TAU); + let r = c.pos_radius.z * 2.4 * breathe * (1.0 + c.hue_energy.w * 0.9); + let center = orbit(c.pos_radius.xy, phase, c.phase_flags.w); + var out: VSOut; + out.clip = vec4f(center + corner * r, 0.0, 1.0); + out.uv = corner; + out.hue_energy = c.hue_energy; + out.info = c.phase_flags; + return out; +} + +@fragment +fn fs_splat(in: VSOut) -> @location(0) vec4f { + let d = length(in.uv); + if (d > 1.0) { discard; } + let energy = clamp(in.hue_energy.w, 0.0, 1.0); + let metric2 = clamp(in.info.z, 0.0, 1.0); + let flags = in.info.y; + let scar = select(0.0, 1.0, (flags >= 2.0 && flags < 4.0) || flags >= 6.0); + let body = exp(-d * d * 2.7) * (0.32 + energy * 0.95); + // .r = raw density (fills the void), .g = oxygen (energy-weighted), + // .b = scar/seam accent for endangered cells + return vec4f(body, body * (0.4 + metric2 * 0.9), body * scar * 0.7, 1.0); +} +`,I=` +struct BlurDir { dir: vec2f, _pad: vec2f }; +@group(0) @binding(0) var blur_sampler: sampler; +@group(0) @binding(1) var blur_src: texture_2d; +@group(0) @binding(2) var blur_dir: BlurDir; +const QUAD = array( + vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0), + vec2f(-1.0, -1.0), vec2f(1.0, 1.0), vec2f(-1.0, 1.0) +); +struct VSOut { @builtin(position) clip: vec4f, @location(0) uv: vec2f }; +@vertex +fn vs_fullscreen(@builtin(vertex_index) vi: u32) -> VSOut { + var out: VSOut; + let p = QUAD[vi]; + out.clip = vec4f(p, 0.0, 1.0); + out.uv = p * 0.5 + vec2f(0.5); + return out; +} +@fragment +fn fs_blur(in: VSOut) -> @location(0) vec4f { + let dims = vec2f(textureDimensions(blur_src, 0)); + let stepv = blur_dir.dir / max(dims, vec2f(1.0)); + var acc = textureSampleLevel(blur_src, blur_sampler, in.uv - stepv * 2.0, 0.0) * 0.06136; + acc = acc + textureSampleLevel(blur_src, blur_sampler, in.uv - stepv, 0.0) * 0.24477; + acc = acc + textureSampleLevel(blur_src, blur_sampler, in.uv, 0.0) * 0.38774; + acc = acc + textureSampleLevel(blur_src, blur_sampler, in.uv + stepv, 0.0) * 0.24477; + acc = acc + textureSampleLevel(blur_src, blur_sampler, in.uv + stepv * 2.0, 0.0) * 0.06136; + return acc; +} +`,z=` +${S} + +@group(0) @binding(0) var params: Params; +@group(0) @binding(3) var field_sampler: sampler; +@group(0) @binding(4) var field_tex: texture_2d; + +const QUAD = array( + vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0), + vec2f(-1.0, -1.0), vec2f(1.0, 1.0), vec2f(-1.0, 1.0) +); +struct VSOut { @builtin(position) clip: vec4f, @location(0) uv: vec2f }; +@vertex +fn vs_fullscreen(@builtin(vertex_index) vi: u32) -> VSOut { + var out: VSOut; + let p = QUAD[vi]; + out.clip = vec4f(p, 0.0, 1.0); + out.uv = p * 0.5 + vec2f(0.5); + return out; +} + +@fragment +fn fs_membrane(in: VSOut) -> @location(0) vec4f { + let dims = vec2f(textureDimensions(field_tex, 0)); + let px = 1.0 / max(dims, vec2f(1.0)); + let f = textureSample(field_tex, field_sampler, in.uv); + let left = textureSampleLevel(field_tex, field_sampler, in.uv - vec2f(px.x, 0.0), 0.0); + let right = textureSampleLevel(field_tex, field_sampler, in.uv + vec2f(px.x, 0.0), 0.0); + let down = textureSampleLevel(field_tex, field_sampler, in.uv - vec2f(0.0, px.y), 0.0); + let up = textureSampleLevel(field_tex, field_sampler, in.uv + vec2f(0.0, px.y), 0.0); + let density = clamp(f.r, 0.0, 5.0); + let oxygen = clamp(f.g, 0.0, 5.0); + let scar = clamp(f.b, 0.0, 3.0); + let grad = length(vec2f((right.r + right.g) - (left.r + left.g), (up.r + up.g) - (down.r + down.g))); + let membrane = smoothstep(0.05, 0.62, density) * (1.0 - smoothstep(2.0, 4.0, density)); + let edge = smoothstep(0.008, 0.11, grad) * membrane; + let breath = 0.72 + 0.55 * params.pulse; + let blackwater = vec3f(0.006, 0.012, 0.015); + let amber = vec3f(0.86, 0.42, 0.12); + let oxygen_col = vec3f(0.66, 1.0, 0.37); + let scarlet = vec3f(1.0, 0.23, 0.18); + var color = blackwater * (0.35 + density * 0.14); + color = color + mix(amber, oxygen_col, clamp(oxygen / max(density, 0.001), 0.0, 1.0)) * density * 0.34 * breath; + color = color + vec3f(0.91, 1.0, 0.72) * edge * (0.85 + 0.5 * params.pulse); + color = color + scarlet * scar * (0.6 + 0.4 * params.pulse); + let vignette = smoothstep(1.02, 0.10, distance(in.uv, vec2f(0.5))); + return vec4f(color * (0.5 + 0.5 * vignette) * params.brightness, 1.0); +} +`,k=` +${S} + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var cells: array; + +const QUAD = array( + vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0), + vec2f(-1.0, -1.0), vec2f(1.0, 1.0), vec2f(-1.0, 1.0) +); + +struct VSOut { + @builtin(position) clip: vec4f, + @location(0) uv: vec2f, + @location(1) @interpolate(flat) hue_energy: vec4f, + @location(2) @interpolate(flat) info: vec4f, +}; + +@vertex +fn vs_cell(@builtin(vertex_index) vi: u32, @builtin(instance_index) ii: u32) -> VSOut { + let c = cells[ii]; + let corner = QUAD[vi]; + let phase = c.phase_flags.x; + let flags = c.phase_flags.y; + let selected = select(0.0, 1.0, flags == 1.0 || flags == 3.0 || flags == 5.0 || flags == 7.0); + let beat = 1.0 + 0.22 * sin(params.time * 2.3 + c.extra.y * 1.7); + let r = c.pos_radius.z * (0.85 + c.hue_energy.w * 0.9 + selected * 1.3) * beat; + let center = orbit(c.pos_radius.xy, phase, c.phase_flags.w); + var out: VSOut; + out.clip = vec4f(center + corner * r, 0.0, 1.0); + out.uv = corner; + out.hue_energy = c.hue_energy; + out.info = c.phase_flags; + return out; +} + +@fragment +fn fs_cell(in: VSOut) -> @location(0) vec4f { + let d = length(in.uv); + if (d > 1.0) { discard; } + let hue = in.hue_energy.rgb; + let energy = clamp(in.hue_energy.w, 0.0, 1.0); + let flags = in.info.y; + let metric2 = clamp(in.info.z, 0.0, 1.0); + let selected = select(0.0, 1.0, flags == 1.0 || flags == 3.0 || flags == 5.0 || flags == 7.0); + let scar = select(0.0, 1.0, (flags >= 2.0 && flags < 4.0) || flags >= 6.0); + let phase = in.info.x; + let twinkle = 0.6 + 0.8 * (0.5 + 0.5 * sin(params.time * 2.1 + phase * 26.0)); + let body = exp(-d * d * 2.7) * (0.55 + energy * 1.7) * twinkle; + let rim = smoothstep(0.98, 0.72, d) * (1.0 - smoothstep(0.72, 0.40, d)); + let scarlet = vec3f(1.0, 0.23, 0.18); + let ivory = vec3f(0.95, 1.0, 0.86); + var color = hue * body; + color = color + ivory * rim * (0.9 + selected * 1.6); + color = color + scarlet * scar * smoothstep(0.16, 0.0, abs(d - 0.74)) * 1.5; + return vec4f(color, 1.0); +} +`,x="rgba16float",B=2048,L=16;class Q{constructor(e){c(this,"engine");c(this,"cells",[]);c(this,"scalars",{});c(this,"resources",null);c(this,"sampler",null);c(this,"splatBindLayout",null);c(this,"blurBindLayout",null);c(this,"membraneBindLayout",null);c(this,"splatPipeline",null);c(this,"blurPipeline",null);c(this,"membranePipeline",null);c(this,"cellPipeline",null);c(this,"cellCount",0);this.engine=e}setCells(e,t={}){this.cells=e.slice(0,B),this.scalars=t;const l=this.engine.gpuDevice;l&&(this.ensurePipelines(l),this.ensureResources(l),this.uploadBuffers(l))}ensurePipelines(e){if(this.splatPipeline||!this.engine.paramsBuffer)return;const t=P(e,"living-field-splat",N),l=P(e,"living-field-blur",I),r=P(e,"living-field-membrane",z),n=P(e,"living-field-cell",k);this.splatBindLayout=e.createBindGroupLayout({label:"living-field-splat-layout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage"}}]}),this.blurBindLayout=e.createBindGroupLayout({label:"living-field-blur-layout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.membraneBindLayout=e.createBindGroupLayout({label:"living-field-membrane-layout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]});const s=e.createPipelineLayout({label:"living-field-splat-pl",bindGroupLayouts:[this.splatBindLayout]}),i=e.createPipelineLayout({label:"living-field-blur-pl",bindGroupLayouts:[this.blurBindLayout]}),u=e.createPipelineLayout({label:"living-field-membrane-pl",bindGroupLayouts:[this.membraneBindLayout]});this.sampler=e.createSampler({magFilter:"linear",minFilter:"linear"});const a={color:{srcFactor:"one",dstFactor:"one",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one",operation:"add"}};this.splatPipeline=e.createRenderPipeline({label:"living-field-splat",layout:s,vertex:{module:t,entryPoint:"vs_splat"},fragment:{module:t,entryPoint:"fs_splat",targets:[{format:x,blend:a}]},primitive:{topology:"triangle-list"}}),this.blurPipeline=e.createRenderPipeline({label:"living-field-blur",layout:i,vertex:{module:l,entryPoint:"vs_fullscreen"},fragment:{module:l,entryPoint:"fs_blur",targets:[{format:x}]},primitive:{topology:"triangle-list"}}),this.membranePipeline=e.createRenderPipeline({label:"living-field-membrane",layout:u,vertex:{module:r,entryPoint:"vs_fullscreen"},fragment:{module:r,entryPoint:"fs_membrane",targets:[{format:this.engine.sceneFormat,blend:a}]},primitive:{topology:"triangle-list"}}),this.cellPipeline=e.createRenderPipeline({label:"living-field-cells",layout:s,vertex:{module:n,entryPoint:"vs_cell"},fragment:{module:n,entryPoint:"fs_cell",targets:[{format:this.engine.sceneFormat,blend:a}]},primitive:{topology:"triangle-list"}})}ensureResources(e){var G,M,w,R,U;if(!this.splatBindLayout||!this.blurBindLayout||!this.membraneBindLayout||!this.engine.paramsBuffer||!this.sampler)return;const t=Math.max(16,Math.floor((this.engine.params[6]||1280)/2)),l=Math.max(16,Math.floor((this.engine.params[7]||720)/2)),r=!this.resources||this.resources.fieldSize[0]!==t||this.resources.fieldSize[1]!==l;let n=(G=this.resources)==null?void 0:G.cellBuffer,s=(M=this.resources)==null?void 0:M.blurHBuffer,i=(w=this.resources)==null?void 0:w.blurVBuffer;if(n||(n=e.createBuffer({label:"living-field-cells",size:B*L*4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST})),s||(s=e.createBuffer({label:"living-field-blur-h",size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),e.queue.writeBuffer(s,0,new Float32Array([1,0,0,0]))),i||(i=e.createBuffer({label:"living-field-blur-v",size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),e.queue.writeBuffer(i,0,new Float32Array([0,1,0,0]))),!r&&this.resources)return;(R=this.resources)==null||R.fieldA.destroy(),(U=this.resources)==null||U.fieldB.destroy();const u=GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING,a=e.createTexture({label:"living-field-a",size:[t,l],format:x,usage:u}),p=e.createTexture({label:"living-field-b",size:[t,l],format:x,usage:u}),f=a.createView(),b=p.createView(),v=e.createBindGroup({label:"living-field-splat-bind",layout:this.splatBindLayout,entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:n}}]}),d=e.createBindGroup({label:"living-field-cell-bind",layout:this.splatBindLayout,entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:n}}]}),h=e.createBindGroup({label:"living-field-blur-h-bind",layout:this.blurBindLayout,entries:[{binding:0,resource:this.sampler},{binding:1,resource:f},{binding:2,resource:{buffer:s}}]}),g=e.createBindGroup({label:"living-field-blur-v-bind",layout:this.blurBindLayout,entries:[{binding:0,resource:this.sampler},{binding:1,resource:b},{binding:2,resource:{buffer:i}}]}),T=e.createBindGroup({label:"living-field-membrane-bind",layout:this.membraneBindLayout,entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:3,resource:this.sampler},{binding:4,resource:f}]});this.resources={cellBuffer:n,blurHBuffer:s,blurVBuffer:i,splatBindGroup:v,cellBindGroup:d,blurHBindGroup:h,blurVBindGroup:g,membraneBindGroup:T,fieldA:a,fieldB:p,fieldAView:f,fieldBView:b,fieldSize:[t,l]}}uploadBuffers(e){if(!this.resources)return;const t=new Float32Array(B*L);this.cellCount=Math.min(B,this.cells.length);for(let l=0;l.8&&(s|=4);const i=l*L;t[i+0]=r.x,t[i+1]=r.y,t[i+2]=Math.max(.006,r.radius),t[i+3]=n,t[i+4]=r.hue[0],t[i+5]=r.hue[1],t[i+6]=r.hue[2],t[i+7]=C(r.energy),t[i+8]=r.phase,t[i+9]=s,t[i+10]=C(r.metric2??r.energy),t[i+11]=r.spin??1,t[i+12]=l,t[i+13]=r.seed??r.phase*97.13,t[i+14]=0,t[i+15]=0}this.engine.params[2]=this.cellCount,e.queue.writeBuffer(this.resources.cellBuffer,0,t)}compute(e){const t=this.engine.gpuDevice;if(!t||!this.resources||!this.splatPipeline||!this.blurPipeline)return;this.ensureResources(t);const l=this.resources,r=e.beginRenderPass({label:"living-field-splat-pass",colorAttachments:[{view:l.fieldAView,clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"store"}]});r.setPipeline(this.splatPipeline),r.setBindGroup(0,l.splatBindGroup),this.cellCount>0&&r.draw(6,this.cellCount),r.end();const n=e.beginRenderPass({label:"living-field-blur-h",colorAttachments:[{view:l.fieldBView,clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"store"}]});n.setPipeline(this.blurPipeline),n.setBindGroup(0,l.blurHBindGroup),n.draw(6,1),n.end();const s=e.beginRenderPass({label:"living-field-blur-v",colorAttachments:[{view:l.fieldAView,clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"store"}]});s.setPipeline(this.blurPipeline),s.setBindGroup(0,l.blurVBindGroup),s.draw(6,1),s.end()}render(e){!this.resources||!this.membranePipeline||!this.cellPipeline||(e.setPipeline(this.membranePipeline),e.setBindGroup(0,this.resources.membraneBindGroup),e.draw(6,1),this.cellCount>0&&(e.setPipeline(this.cellPipeline),e.setBindGroup(0,this.resources.cellBindGroup),e.draw(6,this.cellCount)))}orbitCpu(e,t,l,r){const n=Math.hypot(e,t);if(n<1e-4)return{x:e,y:t};const s=this.engine.params[10]||0,i=Math.atan2(t,e),u=(.045+l*.1)*s*r,a=i+u+Math.sin(s*.6+l*Math.PI*2)*.02,p=n*(1+.016*Math.sin(s*1.1+l*Math.PI*2));return{x:Math.cos(a)*p,y:Math.sin(a)*p}}pickAt(e,t){let l=null,r=1/0;for(let n=0;n{for(const n of r.messages)n.type==="error"&&console.error(`[living-field] ${e} WGSL ${n.type} ${n.lineNum}:${n.linePos} ${n.message}`)}),o.popErrorScope().then(r=>{r&&console.error(`[living-field] ${e} shader module validation: ${r.message}`)}),l}const V=2.399963229728653;function q(o,e={}){const t=o.length;if(t===0)return[];const l=e.maxRadius??.92,r=e.minCellR??.012,n=e.maxCellR??.05;return o.map((i,u)=>({d:i,i:u})).sort((i,u)=>(u.d.score||0)-(i.d.score||0)).map(({d:i},u)=>{const a=t>1?u/(t-1):0,p=l*Math.sqrt(.06+.94*a),f=u*V,b=Math.cos(f)*p,v=Math.sin(f)*p,d=y(i.score),h=r+(n-r)*Math.sqrt(d),g=i.hue??O(d);return{x:b,y:v,radius:h,hue:[g[0],g[1],g[2]],energy:y(i.energy??.35+.65*d),phase:u/t,pickId:i.id,kind:i.kind,payload:i.payload??i,selected:i.selected,scar:i.scar,metric2:y(i.metric2??d),spin:1}})}function W(o,e,t={}){if(o.length===0)return[];const r=t.maxRadius??.9,n=t.minCellR??.014,s=t.maxCellR??.05,i=Math.max(1,t.ringCount??new Set(o.map(e)).size),u=new Map;return o.map((a,p)=>{const f=(e(a,p)%i+i)%i,b=u.get(f)??0;u.set(f,b+1);const v=r*(.18+.82*(f/Math.max(1,i-1))),d=b*V+f*.7,h=y(a.score),g=a.hue??O(h);return{x:Math.cos(d)*v,y:Math.sin(d)*v,radius:n+(s-n)*Math.sqrt(h),hue:[g[0],g[1],g[2]],energy:y(a.energy??.35+.65*h),phase:f/i,pickId:a.id,kind:a.kind,payload:a.payload??a,selected:a.selected,scar:a.scar,metric2:y(a.metric2??h),spin:1}})}const X={oxygen:m(_.luciferin),healthy:m(_.healthy),recall:m(_.recall),bridge:m(_.bridge),debt:m(_.debt),scarlet:m(E.veto),caution:m(E.caution),forward:m(A.forward),retrograde:m(A.retrograde)};function y(o){return Math.min(1,Math.max(0,Number.isFinite(o)?o:0))}export{X as F,Q as L,W as a,q as l}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BeGBxCGK.js.br b/apps/dashboard/build/_app/immutable/chunks/BeGBxCGK.js.br new file mode 100644 index 0000000000000000000000000000000000000000..e5f8e463fb426510ed7c1df13be1aaf7ae4b3552 GIT binary patch literal 5120 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js b/apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js deleted file mode 100644 index 529c227..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js +++ /dev/null @@ -1 +0,0 @@ -import{H as a,v as m,aH as q,aC as x}from"./CpWkWWOo.js";function _(e,t,n){if(e==null)return t(void 0),n&&n(void 0),a;const r=m(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}const f=[];function z(e,t){return{subscribe:A(e,t).subscribe}}function A(e,t=a){let n=null;const r=new Set;function i(u){if(q(e,u)&&(e=u,n)){const o=!f.length;for(const s of r)s[1](),f.push(s,e);if(o){for(let s=0;s{r.delete(s),r.size===0&&n&&(n(),n=null)}}return{set:i,update:b,subscribe:l}}function k(e,t,n){const r=!Array.isArray(e),i=r?[e]:e;if(!i.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const b=t.length<2;return z(n,(l,u)=>{let o=!1;const s=[];let d=0,p=a;const y=()=>{if(d)return;p();const c=t(r?s[0]:s,l,u);b?l(c):p=typeof c=="function"?c:a},h=i.map((c,g)=>_(c,w=>{s[g]=w,d&=~(1<{d|=1<t=n)(),t}export{k as d,B as g,_ as s,A as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js.br b/apps/dashboard/build/_app/immutable/chunks/BeMFXnHE.js.br deleted file mode 100644 index 9dea1054322a4c1ec45894ff6cf5555c6d10ae1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmV-p0-XIDW(0tY)JFAI7Hz89o@HW^e;#mw>nIs1eg9EultjsLAr*pl=jYYa+WcQr z|NDRkMiIF#thAdQ4hMLkiztiQC4CRoVj@TYJ5TS*h%&S-BWp4-`&+{&eV^!Ey&8_5 zdXpb66Wa(L<*u*_qRgn;W2X4=hTB&W4&uA98_PNE9D20*^Gza#^v#9&$o z!;Ndj-*r0fQw7XIA~n-+@hK8K(j$X%>fXp6{71MsDfI#$R5m$S8OmwFNEzhpPW`iy zex!qqx~G4^(gw8#%Nuftr#=dvFPn>evW*W=of7366;O)FCm=PWUPQ=FjA4(bE^+2f z!sA?K1m?>PPq8WFvlxGZ$=)xQN7SR{1^5oeF7ZNVqo==FoOkIN@ zg;$$+gn6PhIF8U!iRZIHqQ?{X(Nh>s0ps0+G4IMKAmJ9rl#s95m~}L|C9;w-f3^zc z<@iIxEnNP8Kcf>9XWrRyxGU^uW}z}JyFco2=+XO?H4ZV(gWsv4MEvi%iL2iM5C>Eb z_cKNP3w7d}*rlzH%BaSy=1S)Ii6^N`_aoM`pmvcny7HuwJ~+zrG-xC9_C0r xASvcgY3zwUf}JMhhy^~qA8~ve*&!gsWcPCrxI}7t47c>1|paE9H;DzV($g`)U0Bv3YuV zdirhRziygTtuDMWT0Da!PZ~Q_fn?TgU89x0wOV*M7*&cHl8z#M{m7HTXy=9HJpl4b z#;)DC!m5pgfP~2<-^Q)JKCMIO7Z2dV_GhSy)9gm+Jy62#jM81>7x#nzR;}-^DZ>-z z*wxYtJ#=wpspV1pk^Y9SpdH$M1xYPN5lC(W@9vyocv8i+)LXwxDr4d7b;4A_qD$u) zAXRbGx*a%@n5YU2b|EqpcRWkn@(SSY_y<<0%hFi}RqF2M87AW^&-zb2YzA7;f<(M| zYiP-Y&Mq`KZOLReiSx1qhh$@?-X$~7qX;y6P_)61j~prBQ4qhgaVcx*<(K$b6zPxx zNN3%!??>gOUnpvuGWT+^q1zzpPpn_Y{Tbz++*_NUV&w)KiYvD3RAvhqq?)K$9;7|N zgE6(tHKN~Ha};4pKdm(urlqv%AWJ|Y-x^tXC!9A{y0FbkH?1eJHD2VR%4>HLhrDj( z6fg7Mu)nCg{4uKZ4w|5*Hi!^rWOy=9u6kxk@RdBHhR5AL@t~NhpuAi|(!f}vU=Mcf z(pk1}6kwChx`qN54f|6gO(hEE>8Q|jT`cmRcC6xk-T)M|MP5BaK}TM7F5PB)q%z`v zFkddWNG6I-fc<%7*C}lNp`D3SRI5yEoV&HGmWv>-$gJ^8oUE6MoDO_pW*6 mStB6%UcL=~ke48CNe{tn={Xoj_rV diff --git a/apps/dashboard/build/_app/immutable/chunks/BfiOPhbz.js b/apps/dashboard/build/_app/immutable/chunks/BfiOPhbz.js new file mode 100644 index 0000000..0c4d998 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/BfiOPhbz.js @@ -0,0 +1 @@ +import{Q as g,R as d,j as c,y as m,S as i,T as b,g as p,U as v,V as y,W as h}from"./CGq8RnJq.js";function x(n=!1){const s=g,e=s.l.u;if(!e)return;let f=()=>v(s.s);if(n){let a=0,t={};const _=y(()=>{let l=!1;const r=s.s;for(const o in r)r[o]!==t[o]&&(t[o]=r[o],l=!0);return l&&a++,a});f=()=>p(_)}e.b.length&&d(()=>{u(s,f),i(e.b)}),c(()=>{const a=m(()=>e.m.map(b));return()=>{for(const t of a)typeof t=="function"&&t()}}),e.a.length&&c(()=>{u(s,f),i(e.a)})}function u(n,s){if(n.l.s)for(const e of n.l.s)p(e);s()}h();export{x as i}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BfiOPhbz.js.br b/apps/dashboard/build/_app/immutable/chunks/BfiOPhbz.js.br new file mode 100644 index 0000000000000000000000000000000000000000..83e5cbafd75061623b979bd401b48d0231effe30 GIT binary patch literal 310 zcmV-60m=Rw4+0>J!nWD-lD909TrM(frrMm=d`h-@Pg|wPB^p*hiadDEPd39hE}{*% znO1;D8K*SXvPprAWte!I-e0##ctm$NZK6_VVh)G?H27g8t_21IiVcq&8V?905?%~^ z*!X>=)IV($H#)g=g?^6A!@2BCeeimqPLtjXs;g_dy&5BF`Q2dD2Cz!P!X) zdFJx@S+NML?BbYR39_yt@=mbBT+;SmR3R9e;Et6+5s|dOa?-G}@R6S-BFrJ!ZKC65 zvo@HYsH%uK*l}cI z2XGY2;=312(+r({@DAQP-PLX188^KUX-S3ah#ejx3LGO^e2u8_En`x65K+SLa|Jx5lP1sQa*5IdPfhf6175K$Ym~0sKF@b4bD$PWz?y~{c)%jbDN%}c zzADzTR`zrYmw@@vwYAV(NhG+jSK;7<$S&i`^4wAI!C5i+7he1emm%E$&3K?1ElhD_ mVX_vkNh&5Kv8M{S4d#0aT%G6rpXVKWe)9uA%6cde0ssIkAf6`x literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js b/apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js deleted file mode 100644 index 74a84e4..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js +++ /dev/null @@ -1,2 +0,0 @@ -var Me=Object.defineProperty;var ue=t=>{throw TypeError(t)};var ke=(t,e,r)=>e in t?Me(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var U=(t,e,r)=>ke(t,typeof e!="symbol"?e+"":e,r),re=(t,e,r)=>e.has(t)||ue("Cannot "+r);var s=(t,e,r)=>(re(t,e,"read from private field"),r?r.call(t):e.get(t)),c=(t,e,r)=>e.has(t)?ue("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),n=(t,e,r,a)=>(re(t,e,"write to private field"),a?a.call(t,r):e.set(t,r),r),p=(t,e,r)=>(re(t,e,"access private method"),r);import{aQ as Ie,g as Te,X as Le,v as Ve,aR as _e,Y as q,ao as we,U as M,N as k,o as B,aS as pe,b as xe,ab as Be,ad as Ce,aT as ge,ai as Y,J as me,aU as se,ar as ie,ay as He,aV as ve,aW as We,aX as ye,aY as Pe,aZ as qe,a_ as G,a$ as Z,b0 as be,b1 as ze,b2 as Re,az as Se,ag as Ue,aw as ae,T as K,n as $e,ae as je,b3 as $,E as Je,M as Qe,b4 as Xe,b5 as Ge,F as Ze,b6 as Ke,G as et,b7 as ne,V as tt,O as Ne,ax as rt,Q as st,b8 as fe,R as j,b9 as it,av as at,ba as nt,al as ft,p as ht,af as ot,bb as lt,a as ct}from"./CpWkWWOo.js";import{d as dt}from"./CHOnp4oo.js";function ut(t){let e=0,r=we(0),a;return()=>{Ie()&&(Te(r),Le(()=>(e===0&&(a=Ve(()=>t(()=>_e(r)))),e+=1,()=>{q(()=>{e-=1,e===0&&(a==null||a(),a=void 0,_e(r))})})))}}var _t=Je|Qe;function pt(t,e,r,a){new gt(t,e,r,a)}var E,z,m,L,g,R,T,w,S,V,A,C,H,W,N,ee,o,De,Ae,Oe,he,Q,X,oe;class gt{constructor(e,r,a,h){c(this,o);U(this,"parent");U(this,"is_pending",!1);U(this,"transform_error");c(this,E);c(this,z,k?M:null);c(this,m);c(this,L);c(this,g);c(this,R,null);c(this,T,null);c(this,w,null);c(this,S,null);c(this,V,0);c(this,A,0);c(this,C,!1);c(this,H,new Set);c(this,W,new Set);c(this,N,null);c(this,ee,ut(()=>(n(this,N,we(s(this,V))),()=>{n(this,N,null)})));var i;n(this,E,e),n(this,m,r),n(this,L,f=>{var u=B;u.b=this,u.f|=pe,a(f)}),this.parent=B.b,this.transform_error=h??((i=this.parent)==null?void 0:i.transform_error)??(f=>f),n(this,g,xe(()=>{if(k){const f=s(this,z);Be();const u=f.data===Ce;if(f.data.startsWith(ge)){const d=JSON.parse(f.data.slice(ge.length));p(this,o,Ae).call(this,d)}else u?p(this,o,Oe).call(this):p(this,o,De).call(this)}else p(this,o,he).call(this)},_t)),k&&n(this,E,M)}defer_effect(e){qe(e,s(this,H),s(this,W))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!s(this,m).pending}update_pending_count(e){p(this,o,oe).call(this,e),n(this,V,s(this,V)+e),!(!s(this,N)||s(this,C))&&(n(this,C,!0),q(()=>{n(this,C,!1),s(this,N)&&Ue(s(this,N),s(this,V))}))}get_effect_pending(){return s(this,ee).call(this),Te(s(this,N))}error(e){var r=s(this,m).onerror;let a=s(this,m).failed;if(!r&&!a)throw e;s(this,R)&&(ae(s(this,R)),n(this,R,null)),s(this,T)&&(ae(s(this,T)),n(this,T,null)),s(this,w)&&(ae(s(this,w)),n(this,w,null)),k&&(K(s(this,z)),$e(),K(je()));var h=!1,i=!1;const f=()=>{if(h){Ge();return}h=!0,i&&Xe(),s(this,w)!==null&&ie(s(this,w),()=>{n(this,w,null)}),p(this,o,X).call(this,()=>{se.ensure(),p(this,o,he).call(this)})},u=l=>{try{i=!0,r==null||r(l,f),i=!1}catch(d){$(d,s(this,g)&&s(this,g).parent)}a&&n(this,w,p(this,o,X).call(this,()=>{se.ensure();try{return Y(()=>{var d=B;d.b=this,d.f|=pe,a(s(this,E),()=>l,()=>f)})}catch(d){return $(d,s(this,g).parent),null}}))};q(()=>{var l;try{l=this.transform_error(e)}catch(d){$(d,s(this,g)&&s(this,g).parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(u,d=>$(d,s(this,g)&&s(this,g).parent)):u(l)})}}E=new WeakMap,z=new WeakMap,m=new WeakMap,L=new WeakMap,g=new WeakMap,R=new WeakMap,T=new WeakMap,w=new WeakMap,S=new WeakMap,V=new WeakMap,A=new WeakMap,C=new WeakMap,H=new WeakMap,W=new WeakMap,N=new WeakMap,ee=new WeakMap,o=new WeakSet,De=function(){try{n(this,R,Y(()=>s(this,L).call(this,s(this,E))))}catch(e){this.error(e)}},Ae=function(e){const r=s(this,m).failed;r&&n(this,w,Y(()=>{r(s(this,E),()=>e,()=>()=>{})}))},Oe=function(){const e=s(this,m).pending;e&&(this.is_pending=!0,n(this,T,Y(()=>e(s(this,E)))),q(()=>{var r=n(this,S,document.createDocumentFragment()),a=me();r.append(a),n(this,R,p(this,o,X).call(this,()=>(se.ensure(),Y(()=>s(this,L).call(this,a))))),s(this,A)===0&&(s(this,E).before(r),n(this,S,null),ie(s(this,T),()=>{n(this,T,null)}),p(this,o,Q).call(this))}))},he=function(){try{if(this.is_pending=this.has_pending_snippet(),n(this,A,0),n(this,V,0),n(this,R,Y(()=>{s(this,L).call(this,s(this,E))})),s(this,A)>0){var e=n(this,S,document.createDocumentFragment());He(s(this,R),e);const r=s(this,m).pending;n(this,T,Y(()=>r(s(this,E))))}else p(this,o,Q).call(this)}catch(r){this.error(r)}},Q=function(){this.is_pending=!1;for(const e of s(this,H))ve(e,We),ye(e);for(const e of s(this,W))ve(e,Pe),ye(e);s(this,H).clear(),s(this,W).clear()},X=function(e){var r=B,a=Re,h=Se;G(s(this,g)),Z(s(this,g)),be(s(this,g).ctx);try{return e()}catch(i){return ze(i),null}finally{G(r),Z(a),be(h)}},oe=function(e){var r;if(!this.has_pending_snippet()){this.parent&&p(r=this.parent,o,oe).call(r,e);return}n(this,A,s(this,A)+e),s(this,A)===0&&(p(this,o,Q).call(this),s(this,T)&&ie(s(this,T),()=>{n(this,T,null)}),s(this,S)&&(s(this,E).before(s(this,S)),n(this,S,null)))};const vt=["touchstart","touchmove"];function yt(t){return vt.includes(t)}const I=Symbol("events"),Fe=new Set,le=new Set;function bt(t,e,r,a={}){function h(i){if(a.capture||ce.call(e,i),!i.cancelBubble)return Ke(()=>r==null?void 0:r.call(this,i))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?q(()=>{e.addEventListener(t,h,a)}):e.addEventListener(t,h,a),h}function Rt(t,e,r,a,h){var i={capture:a,passive:h},f=bt(t,e,r,i);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&Ze(()=>{e.removeEventListener(t,f,i)})}function St(t,e,r){(e[I]??(e[I]={}))[t]=r}function Nt(t){for(var e=0;e{throw F});throw D}}finally{t[I]=e,delete t.currentTarget,Z(x),G(P)}}}function Dt(t,e){var r=e==null?"":typeof e=="object"?e+"":e;r!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=r,t.nodeValue=r+"")}function Et(t,e){return Ye(t,e)}function At(t,e){ne(),e.intro=e.intro??!1;const r=e.target,a=k,h=M;try{for(var i=tt(r);i&&(i.nodeType!==Ne||i.data!==rt);)i=st(i);if(!i)throw fe;j(!0),K(i);const f=Ye(t,{...e,anchor:i});return j(!1),f}catch(f){if(f instanceof Error&&f.message.split(` -`).some(u=>u.startsWith("https://svelte.dev/e/")))throw f;return f!==fe&&console.warn("Failed to hydrate: ",f),e.recover===!1&&it(),ne(),at(r),j(!1),Et(t,e)}finally{j(a),K(h)}}const J=new Map;function Ye(t,{target:e,anchor:r,props:a={},events:h,context:i,intro:f=!0,transformError:u}){ne();var l=void 0,d=nt(()=>{var x=r??e.appendChild(me());pt(x,{pending:()=>{}},v=>{ht({});var _=Se;if(i&&(_.c=i),h&&(a.$$events=h),k&&dt(v,null),l=t(v,a)||{},k&&(B.nodes.end=M,M===null||M.nodeType!==Ne||M.data!==ot))throw lt(),fe;ct()},u);var P=new Set,D=v=>{for(var _=0;_{var O;for(var v of P)for(const b of[e,document]){var _=J.get(b),y=_.get(v);--y==0?(b.removeEventListener(v,ce),_.delete(v),_.size===0&&J.delete(b)):_.set(v,y)}le.delete(D),x!==r&&((O=x.parentNode)==null||O.removeChild(x))}});return de.set(l,d),l}let de=new WeakMap;function Ot(t,e){const r=de.get(t);return r?(de.delete(t),r(e)):Promise.resolve()}export{St as a,Nt as d,Rt as e,At as h,Et as m,Dt as s,Ot as u}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js.br b/apps/dashboard/build/_app/immutable/chunks/BlVfL1ME.js.br deleted file mode 100644 index 75ea48d603ab5cf38484e5f24da852c8588455ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3142 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 diff --git a/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js b/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js deleted file mode 100644 index 227886d..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js +++ /dev/null @@ -1 +0,0 @@ -import{Z as s,_ as v,W as o,F as c,a7 as b,a8 as m,a9 as h,a0 as y}from"./CpWkWWOo.js";function d(e,r,f=!1){if(e.multiple){if(r==null)return;if(!b(r))return m();for(var a of e.options)a.selected=r.includes(i(a));return}for(a of e.options){var t=i(a);if(h(t,r)){a.selected=!0;return}}(!f||r!==void 0)&&(e.selectedIndex=-1)}function q(e){var r=new MutationObserver(()=>{d(e,e.__value)});r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),c(()=>{r.disconnect()})}function p(e,r,f=r){var a=new WeakSet,t=!0;s(e,"change",u=>{var l=u?"[selected]":":checked",n;if(e.multiple)n=[].map.call(e.querySelectorAll(l),i);else{var _=e.querySelector(l)??e.querySelector("option:not([disabled])");n=_&&i(_)}f(n),v!==null&&a.add(v)}),o(()=>{var u=r();if(e===document.activeElement){var l=y??v;if(a.has(l))return}if(d(e,u,t),t&&u===void 0){var n=e.querySelector(":checked");n!==null&&(u=i(n),f(u))}e.__value=u,t=!1}),q(e)}function i(e){return"__value"in e?e.__value:e.value}export{p as b}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.br b/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.br deleted file mode 100644 index ca545db530a207e79c23c442bd42c121634ba738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i_N<^y14)0umg2|W0uJH_Fru9UXbPBq^Rrls)y|L>>X^8i25ca5q=CB2Py zh94(3(55KgtvwM!Qdfzs{od?S8nGT+@87++_G$_%(a{T0&}BKLc({tmjz+LWV_2ZT z{&V793UzQ+zN}wfZVI)k#Z>6?3^Y}gvp>LonS)l&VwSjKhMR_c1PzK>0u`3Nw*{Pf zWH$DS+|$aiJjTj)pR2#8(O5!^uVl!MbqgCCYrA1OT3TrV4VB&gYQ7)vpK##kyItio z-+GP*C?#lx*a7bk(Af%>mEc$WeXGe;+hCd-No%|UKtAjpQq?L9le*_{TB%g4fTkWx z^z&Zh6F;E3O;VL^V<6tF>|jpG*8OrwshnP=vSkfG09;M2jEGt(i(-1(?Dm6h zsBu8I22BDf9YHN063%V7JrW;B?@LU?>U>x|mNHgxmO+OO zsQ^G*IxSa#Iv1F^H(;}c>*_T$y8L%^)RE4|Y7y74L8j!+(UH81o699l$&3!B?Wlm`w8Q&{X^$q#YJ(JqLk@$?aEGSRA`x#?D%zD(WN GP4@tl!~#kH diff --git a/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.gz b/apps/dashboard/build/_app/immutable/chunks/BnXDGOmJ.js.gz deleted file mode 100644 index b3d68cb941c082046fec70f27fa8a8ba84c3a924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fMkiwFP!000026J=A&Zrd;ry!R_49fVzgWt~%73ye_|4N#y(4mlX8VHmWu zs@YJa!iSo`(Z2_j94Adr!zE_+!C9)Vw=NuiWzuJ!?Gg-ZoxrlI1T~W%6YiP(l(1v+ zbHW3Yi-Zqj>ugu>4`2KB?RtG}`5#|YZ8UXI)?^J3bF3Bl1s+uk#Ji}2>NQQF6T(ET z(NT!bRH}u14-QXp)&W+nbudVm$;`GHaoeY~9wqmrsSeZ#$CasdY{-KGiCE3*F)81u zjww?RiI$2TATWn`e3dL;Jj+MO+s8+j3o%&LWD6`ypfmBiY3N?OzrgW4>K)KrzzIWt zv!5}@bbr0~nZTO6fpuxhbY>#dbti&t)8Ml&`HZR0qKERhRwA5I6TKr(V}2Z*M5DkmmP5tf&vt z{HB6MaXIm{h^u1rJpHy<7R&lT^({38n~ZzqtPz_n?_|$wsWlM4i{u_|CaHB_v<8h# zVMW^0lzS)Ma6sc~_4clqO?a{aW9!(F30&4e4fIV@itse^!)i4orsN0dK|e3%s9H!yMi!8TvW()q zB$LqmH_*##VP($!K@=)=+(JYg&ubxKGU8%HmR9P;I+Ye|?w~kP3uQ7|os~=C6OMF0 Ued~VuxnuS23A{iPGv@;U0D+$qYybcN diff --git a/apps/dashboard/build/_app/immutable/chunks/Bo4EDkTQ.js b/apps/dashboard/build/_app/immutable/chunks/Bo4EDkTQ.js new file mode 100644 index 0000000..6690bb6 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/Bo4EDkTQ.js @@ -0,0 +1,1331 @@ +var Ol=Object.defineProperty;var Dl=(l,t,e)=>t in l?Ol(l,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[t]=e;var z=(l,t,e)=>Dl(l,typeof t!="symbol"?t+"":t,e);import{bf as Ll,i as Nl,w as Ul,ai as Vl,p as Wn,c as ot,r as at,X as ct,Y as jt,a as mt,b as Hn,f as vt,aS as Ph,aH as Fh,g as F,u as Bn,j as ji,d as xt,e as Gl,s as rt,bg as Wl,af as Hl}from"./CGq8RnJq.js";import{B as ql}from"./W8qDZJD6.js";import"./Bzak7iHL.js";import{d as Rh,s as Ot,b as Ri,o as Xl,e as Yl}from"./DAau0uzT.js";import{i as _t,b as Jl}from"./Ccqjq5DS.js";import{e as Eh,s as Cn,r as Zl}from"./DqfV0sZu.js";import{s as vs}from"./uCQU803Y.js";import{b as $l}from"./DGM4cicq.js";import{p as ut,a as jl,s as Kl}from"./DV6OI5iy.js";import{a as Ql}from"./D35IQVqe.js";import{e as tc}from"./Ch9vNiEl.js";import{b as ec}from"./DY7cP31Q.js";import{s as Hr}from"./HFGAk8XQ.js";import{t as ic,d as Oh,N as me,U as ir,F as Mt,b as Ki,P as ze,c as Qi,f as ea,L as At,g as zt,O as sc,D as nc}from"./BMB5u1EX.js";import{o as Ya}from"./BKh9s_e0.js";import{N as Ja}from"./CcUbQ_Wl.js";const rc=Symbol("NaN");function g0(l,t,e){Ul&&Vl();var i=new ql(l),s=!Ll();Nl(()=>{var n=t();n!==n&&(n=rc),s&&n!==null&&typeof n=="object"&&(n={}),i.ensure(n,e)})}/** + * @license + * Copyright 2010-2024 Three.js Authors + * SPDX-License-Identifier: MIT + */const Dh="172",y0={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},x0={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},b0=0,v0=1,w0=2,_0=3,M0=0,S0=1,A0=2,I0=3,qr=0,Lh=1,T0=2,ac=0,Za=1,oc=2,C0=3,B0=4,z0=5,$a=100,k0=101,P0=102,F0=103,R0=104,E0=200,O0=201,D0=202,L0=203,ja=204,Ka=205,N0=206,U0=207,V0=208,G0=209,W0=210,H0=211,q0=212,X0=213,Y0=214,J0=0,Z0=1,$0=2,Qa=3,j0=4,K0=5,Q0=6,tg=7,ia=0,eg=1,ig=2,sg=0,ng=1,rg=2,ag=3,og=4,hg=5,lg=6,cg=7,to="attached",hc="detached",sa=300,na=301,lc=302,cc=303,uc=304,dc=306,Xr=1e3,ge=1001,Yr=1002,pe=1003,fc=1004,ug=1004,pc=1005,dg=1005,ae=1006,mc=1007,fg=1007,qn=1008,pg=1008,Nh=1009,gc=1010,yc=1011,xc=1012,bc=1013,ra=1014,Gi=1015,vc=1016,wc=1017,_c=1018,Mc=1020,Sc=35902,Ac=1021,Ic=1022,As=1023,Tc=1024,Cc=1025,sr=1026,eo=1027,Uh=1028,Vh=1029,Bc=1030,zc=1031,mg=1032,kc=1033,Pc=33776,Fc=33777,Rc=33778,Ec=33779,Oc=35840,Dc=35841,Lc=35842,Nc=35843,Uc=36196,Vc=37492,Gc=37496,Wc=37808,Hc=37809,qc=37810,Xc=37811,Yc=37812,Jc=37813,Zc=37814,$c=37815,jc=37816,Kc=37817,Qc=37818,tu=37819,eu=37820,iu=37821,su=36492,nu=36494,ru=36495,au=36283,ou=36284,hu=36285,lu=36286,cu=2200,uu=2201,du=2202,zn=2300,Jr=2301,nr=2302,Ei=2400,Oi=2401,kn=2402,aa=2500,Gh=2501,gg=0,yg=1,xg=2,fu=3200,bg=3201,vg=3202,wg=3203,Hi=0,_g=1,Wh="",ne="srgb",io="srgb-linear",so="linear",rr="srgb",Mg=0,pi=7680,Sg=7681,Ag=7682,Ig=7683,Tg=34055,Cg=34056,Bg=5386,zg=512,kg=513,Pg=514,Fg=515,Rg=516,Eg=517,Og=518,no=519,Dg=512,Lg=513,Ng=514,Ug=515,Vg=516,Gg=517,Wg=518,Hg=519,Pn=35044,qg=35048,Xg=35040,Yg=35045,Jg=35049,Zg=35041,$g=35046,jg=35050,Kg=35042,Qg="100",ty="300 es",Be=2e3,Fn=2001;class Xe{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[t]===void 0&&(i[t]=[]),i[t].indexOf(e)===-1&&i[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;const i=this._listeners;return i[t]!==void 0&&i[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;const s=this._listeners[t];if(s!==void 0){const n=s.indexOf(e);n!==-1&&s.splice(n,1)}}dispatchEvent(t){if(this._listeners===void 0)return;const i=this._listeners[t.type];if(i!==void 0){t.target=this;const s=i.slice(0);for(let n=0,r=s.length;n>8&255]+kt[l>>16&255]+kt[l>>24&255]+"-"+kt[t&255]+kt[t>>8&255]+"-"+kt[t>>16&15|64]+kt[t>>24&255]+"-"+kt[e&63|128]+kt[e>>8&255]+"-"+kt[e>>16&255]+kt[e>>24&255]+kt[i&255]+kt[i>>8&255]+kt[i>>16&255]+kt[i>>24&255]).toLowerCase()}function X(l,t,e){return Math.max(t,Math.min(e,l))}function oa(l,t){return(l%t+t)%t}function pu(l,t,e,i,s){return i+(l-t)*(s-i)/(e-t)}function mu(l,t,e){return l!==t?(e-l)/(t-l):0}function ws(l,t,e){return(1-e)*l+e*t}function gu(l,t,e,i){return ws(l,t,1-Math.exp(-e*i))}function yu(l,t=1){return t-Math.abs(oa(l,t*2)-t)}function xu(l,t,e){return l<=t?0:l>=e?1:(l=(l-t)/(e-t),l*l*(3-2*l))}function bu(l,t,e){return l<=t?0:l>=e?1:(l=(l-t)/(e-t),l*l*l*(l*(l*6-15)+10))}function vu(l,t){return l+Math.floor(Math.random()*(t-l+1))}function wu(l,t){return l+Math.random()*(t-l)}function _u(l){return l*(.5-Math.random())}function Mu(l){l!==void 0&&(ro=l);let t=ro+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function Su(l){return l*ai}function Au(l){return l*Is}function Iu(l){return(l&l-1)===0&&l!==0}function Tu(l){return Math.pow(2,Math.ceil(Math.log(l)/Math.LN2))}function Cu(l){return Math.pow(2,Math.floor(Math.log(l)/Math.LN2))}function Bu(l,t,e,i,s){const n=Math.cos,r=Math.sin,a=n(e/2),o=r(e/2),h=n((t+i)/2),c=r((t+i)/2),u=n((t-i)/2),d=r((t-i)/2),f=n((i-t)/2),p=r((i-t)/2);switch(s){case"XYX":l.set(a*c,o*u,o*d,a*h);break;case"YZY":l.set(o*d,a*c,o*u,a*h);break;case"ZXZ":l.set(o*u,o*d,a*c,a*h);break;case"XZX":l.set(a*c,o*p,o*f,a*h);break;case"YXY":l.set(o*f,a*c,o*p,a*h);break;case"ZYZ":l.set(o*p,o*f,a*c,a*h);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+s)}}function Dt(l,t){switch(t.constructor){case Float32Array:return l;case Uint32Array:return l/4294967295;case Uint16Array:return l/65535;case Uint8Array:return l/255;case Int32Array:return Math.max(l/2147483647,-1);case Int16Array:return Math.max(l/32767,-1);case Int8Array:return Math.max(l/127,-1);default:throw new Error("Invalid component type.")}}function Y(l,t){switch(t.constructor){case Float32Array:return l;case Uint32Array:return Math.round(l*4294967295);case Uint16Array:return Math.round(l*65535);case Uint8Array:return Math.round(l*255);case Int32Array:return Math.round(l*2147483647);case Int16Array:return Math.round(l*32767);case Int8Array:return Math.round(l*127);default:throw new Error("Invalid component type.")}}const ey={DEG2RAD:ai,RAD2DEG:Is,generateUUID:Qt,clamp:X,euclideanModulo:oa,mapLinear:pu,inverseLerp:mu,lerp:ws,damp:gu,pingpong:yu,smoothstep:xu,smootherstep:bu,randInt:vu,randFloat:wu,randFloatSpread:_u,seededRandom:Mu,degToRad:Su,radToDeg:Au,isPowerOfTwo:Iu,ceilPowerOfTwo:Tu,floorPowerOfTwo:Cu,setQuaternionFromProperEuler:Bu,normalize:Y,denormalize:Dt};class B{constructor(t=0,e=0){B.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,i=this.y,s=t.elements;return this.x=s[0]*e+s[3]*i+s[6],this.y=s[1]*e+s[4]*i+s[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=X(this.x,t.x,e.x),this.y=X(this.y,t.y,e.y),this}clampScalar(t,e){return this.x=X(this.x,t,e),this.y=X(this.y,t,e),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(X(i,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const i=this.dot(t)/e;return Math.acos(X(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,i=this.y-t.y;return e*e+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const i=Math.cos(e),s=Math.sin(e),n=this.x-t.x,r=this.y-t.y;return this.x=n*i-r*s+t.x,this.y=n*s+r*i+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class be{constructor(t,e,i,s,n,r,a,o,h){be.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,e,i,s,n,r,a,o,h)}set(t,e,i,s,n,r,a,o,h){const c=this.elements;return c[0]=t,c[1]=s,c[2]=a,c[3]=e,c[4]=n,c[5]=o,c[6]=i,c[7]=r,c[8]=h,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this}extractBasis(t,e,i){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const i=t.elements,s=e.elements,n=this.elements,r=i[0],a=i[3],o=i[6],h=i[1],c=i[4],u=i[7],d=i[2],f=i[5],p=i[8],m=s[0],g=s[3],x=s[6],y=s[1],b=s[4],v=s[7],_=s[2],M=s[5],A=s[8];return n[0]=r*m+a*y+o*_,n[3]=r*g+a*b+o*M,n[6]=r*x+a*v+o*A,n[1]=h*m+c*y+u*_,n[4]=h*g+c*b+u*M,n[7]=h*x+c*v+u*A,n[2]=d*m+f*y+p*_,n[5]=d*g+f*b+p*M,n[8]=d*x+f*v+p*A,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],i=t[1],s=t[2],n=t[3],r=t[4],a=t[5],o=t[6],h=t[7],c=t[8];return e*r*c-e*a*h-i*n*c+i*a*o+s*n*h-s*r*o}invert(){const t=this.elements,e=t[0],i=t[1],s=t[2],n=t[3],r=t[4],a=t[5],o=t[6],h=t[7],c=t[8],u=c*r-a*h,d=a*o-c*n,f=h*n-r*o,p=e*u+i*d+s*f;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=u*m,t[1]=(s*h-c*i)*m,t[2]=(a*i-s*r)*m,t[3]=d*m,t[4]=(c*e-s*o)*m,t[5]=(s*n-a*e)*m,t[6]=f*m,t[7]=(i*o-h*e)*m,t[8]=(r*e-i*n)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,i,s,n,r,a){const o=Math.cos(n),h=Math.sin(n);return this.set(i*o,i*h,-i*(o*r+h*a)+r+t,-s*h,s*o,-s*(-h*r+o*a)+a+e,0,0,1),this}scale(t,e){return this.premultiply(ar.makeScale(t,e)),this}rotate(t){return this.premultiply(ar.makeRotation(-t)),this}translate(t,e){return this.premultiply(ar.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,i,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,i=t.elements;for(let s=0;s<9;s++)if(e[s]!==i[s])return!1;return!0}fromArray(t,e=0){for(let i=0;i<9;i++)this.elements[i]=t[i+e];return this}toArray(t=[],e=0){const i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t}clone(){return new this.constructor().fromArray(this.elements)}}const ar=new be;function zu(l){for(let t=l.length-1;t>=0;--t)if(l[t]>=65535)return!0;return!1}const ku={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function Di(l,t){return new ku[l](t)}function Rn(l){return document.createElementNS("http://www.w3.org/1999/xhtml",l)}function iy(){const l=Rn("canvas");return l.style.display="block",l}const ao={};function sy(l){l in ao||(ao[l]=!0,console.warn(l))}function ny(l,t,e){return new Promise(function(i,s){function n(){switch(l.clientWaitSync(t,l.SYNC_FLUSH_COMMANDS_BIT,0)){case l.WAIT_FAILED:s();break;case l.TIMEOUT_EXPIRED:setTimeout(n,e);break;default:i()}}setTimeout(n,e)})}function ry(l){const t=l.elements;t[2]=.5*t[2]+.5*t[3],t[6]=.5*t[6]+.5*t[7],t[10]=.5*t[10]+.5*t[11],t[14]=.5*t[14]+.5*t[15]}function ay(l){const t=l.elements;t[11]===-1?(t[10]=-t[10]-1,t[14]=-t[14]):(t[10]=-t[10],t[14]=-t[14]+1)}const oo=new be().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),ho=new be().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Pu(){const l={enabled:!0,workingColorSpace:io,spaces:{},convert:function(s,n,r){return this.enabled===!1||n===r||!n||!r||(this.spaces[n].transfer===rr&&(s.r=ke(s.r),s.g=ke(s.g),s.b=ke(s.b)),this.spaces[n].primaries!==this.spaces[r].primaries&&(s.applyMatrix3(this.spaces[n].toXYZ),s.applyMatrix3(this.spaces[r].fromXYZ)),this.spaces[r].transfer===rr&&(s.r=Ui(s.r),s.g=Ui(s.g),s.b=Ui(s.b))),s},fromWorkingColorSpace:function(s,n){return this.convert(s,this.workingColorSpace,n)},toWorkingColorSpace:function(s,n){return this.convert(s,n,this.workingColorSpace)},getPrimaries:function(s){return this.spaces[s].primaries},getTransfer:function(s){return s===Wh?so:this.spaces[s].transfer},getLuminanceCoefficients:function(s,n=this.workingColorSpace){return s.fromArray(this.spaces[n].luminanceCoefficients)},define:function(s){Object.assign(this.spaces,s)},_getMatrix:function(s,n,r){return s.copy(this.spaces[n].toXYZ).multiply(this.spaces[r].fromXYZ)},_getDrawingBufferColorSpace:function(s){return this.spaces[s].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(s=this.workingColorSpace){return this.spaces[s].workingColorSpaceConfig.unpackColorSpace}},t=[.64,.33,.3,.6,.15,.06],e=[.2126,.7152,.0722],i=[.3127,.329];return l.define({[io]:{primaries:t,whitePoint:i,transfer:so,toXYZ:oo,fromXYZ:ho,luminanceCoefficients:e,workingColorSpaceConfig:{unpackColorSpace:ne},outputColorSpaceConfig:{drawingBufferColorSpace:ne}},[ne]:{primaries:t,whitePoint:i,transfer:rr,toXYZ:oo,fromXYZ:ho,luminanceCoefficients:e,outputColorSpaceConfig:{drawingBufferColorSpace:ne}}}),l}const $t=Pu();function ke(l){return l<.04045?l*.0773993808:Math.pow(l*.9478672986+.0521327014,2.4)}function Ui(l){return l<.0031308?l*12.92:1.055*Math.pow(l,.41666)-.055}let mi;class Fu{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{mi===void 0&&(mi=Rn("canvas")),mi.width=t.width,mi.height=t.height;const i=mi.getContext("2d");t instanceof ImageData?i.putImageData(t,0,0):i.drawImage(t,0,0,t.width,t.height),e=mi}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap){const e=Rn("canvas");e.width=t.width,e.height=t.height;const i=e.getContext("2d");i.drawImage(t,0,0,t.width,t.height);const s=i.getImageData(0,0,t.width,t.height),n=s.data;for(let r=0;r0&&(i.userData=this.userData),e||(t.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==sa)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Xr:t.x=t.x-Math.floor(t.x);break;case ge:t.x=t.x<0?0:1;break;case Yr:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Xr:t.y=t.y-Math.floor(t.y);break;case ge:t.y=t.y<0?0:1;break;case Yr:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(t){t===!0&&this.pmremVersion++}}yt.DEFAULT_IMAGE=null;yt.DEFAULT_MAPPING=sa;yt.DEFAULT_ANISOTROPY=1;class It{constructor(t=0,e=0,i=0,s=1){It.prototype.isVector4=!0,this.x=t,this.y=e,this.z=i,this.w=s}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,i,s){return this.x=t,this.y=e,this.z=i,this.w=s,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,i=this.y,s=this.z,n=this.w,r=t.elements;return this.x=r[0]*e+r[4]*i+r[8]*s+r[12]*n,this.y=r[1]*e+r[5]*i+r[9]*s+r[13]*n,this.z=r[2]*e+r[6]*i+r[10]*s+r[14]*n,this.w=r[3]*e+r[7]*i+r[11]*s+r[15]*n,this}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this.w/=t.w,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,i,s,n;const o=t.elements,h=o[0],c=o[4],u=o[8],d=o[1],f=o[5],p=o[9],m=o[2],g=o[6],x=o[10];if(Math.abs(c-d)<.01&&Math.abs(u-m)<.01&&Math.abs(p-g)<.01){if(Math.abs(c+d)<.1&&Math.abs(u+m)<.1&&Math.abs(p+g)<.1&&Math.abs(h+f+x-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const b=(h+1)/2,v=(f+1)/2,_=(x+1)/2,M=(c+d)/4,A=(u+m)/4,S=(p+g)/4;return b>v&&b>_?b<.01?(i=0,s=.707106781,n=.707106781):(i=Math.sqrt(b),s=M/i,n=A/i):v>_?v<.01?(i=.707106781,s=0,n=.707106781):(s=Math.sqrt(v),i=M/s,n=S/s):_<.01?(i=.707106781,s=.707106781,n=0):(n=Math.sqrt(_),i=A/n,s=S/n),this.set(i,s,n,e),this}let y=Math.sqrt((g-p)*(g-p)+(u-m)*(u-m)+(d-c)*(d-c));return Math.abs(y)<.001&&(y=1),this.x=(g-p)/y,this.y=(u-m)/y,this.z=(d-c)/y,this.w=Math.acos((h+f+x-1)/2),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this.w=e[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=X(this.x,t.x,e.x),this.y=X(this.y,t.y,e.y),this.z=X(this.z,t.z,e.z),this.w=X(this.w,t.w,e.w),this}clampScalar(t,e){return this.x=X(this.x,t,e),this.y=X(this.y,t,e),this.z=X(this.z,t,e),this.w=X(this.w,t,e),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(X(i,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this.z=t.z+(e.z-t.z)*i,this.w=t.w+(e.w-t.w)*i,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),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}}class ha extends Xe{constructor(t=1,e=1,i={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new It(0,0,t,e),this.scissorTest=!1,this.viewport=new It(0,0,t,e);const s={width:t,height:e,depth:1};i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:ae,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},i);const n=new yt(s,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace);n.flipY=!1,n.generateMipmaps=i.generateMipmaps,n.internalFormat=i.internalFormat,this.textures=[];const r=i.count;for(let a=0;a=0?1:-1,b=1-x*x;if(b>Number.EPSILON){const _=Math.sqrt(b),M=Math.atan2(_,x*y);g=Math.sin(g*M)/_,a=Math.sin(a*M)/_}const v=a*y;if(o=o*g+d*v,h=h*g+f*v,c=c*g+p*v,u=u*g+m*v,g===1-a){const _=1/Math.sqrt(o*o+h*h+c*c+u*u);o*=_,h*=_,c*=_,u*=_}}t[e]=o,t[e+1]=h,t[e+2]=c,t[e+3]=u}static multiplyQuaternionsFlat(t,e,i,s,n,r){const a=i[s],o=i[s+1],h=i[s+2],c=i[s+3],u=n[r],d=n[r+1],f=n[r+2],p=n[r+3];return t[e]=a*p+c*u+o*f-h*d,t[e+1]=o*p+c*d+h*u-a*f,t[e+2]=h*p+c*f+a*d-o*u,t[e+3]=c*p-a*u-o*d-h*f,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,i,s){return this._x=t,this._y=e,this._z=i,this._w=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const i=t._x,s=t._y,n=t._z,r=t._order,a=Math.cos,o=Math.sin,h=a(i/2),c=a(s/2),u=a(n/2),d=o(i/2),f=o(s/2),p=o(n/2);switch(r){case"XYZ":this._x=d*c*u+h*f*p,this._y=h*f*u-d*c*p,this._z=h*c*p+d*f*u,this._w=h*c*u-d*f*p;break;case"YXZ":this._x=d*c*u+h*f*p,this._y=h*f*u-d*c*p,this._z=h*c*p-d*f*u,this._w=h*c*u+d*f*p;break;case"ZXY":this._x=d*c*u-h*f*p,this._y=h*f*u+d*c*p,this._z=h*c*p+d*f*u,this._w=h*c*u-d*f*p;break;case"ZYX":this._x=d*c*u-h*f*p,this._y=h*f*u+d*c*p,this._z=h*c*p-d*f*u,this._w=h*c*u+d*f*p;break;case"YZX":this._x=d*c*u+h*f*p,this._y=h*f*u+d*c*p,this._z=h*c*p-d*f*u,this._w=h*c*u-d*f*p;break;case"XZY":this._x=d*c*u-h*f*p,this._y=h*f*u-d*c*p,this._z=h*c*p+d*f*u,this._w=h*c*u+d*f*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+r)}return e===!0&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const i=e/2,s=Math.sin(i);return this._x=t.x*s,this._y=t.y*s,this._z=t.z*s,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,i=e[0],s=e[4],n=e[8],r=e[1],a=e[5],o=e[9],h=e[2],c=e[6],u=e[10],d=i+a+u;if(d>0){const f=.5/Math.sqrt(d+1);this._w=.25/f,this._x=(c-o)*f,this._y=(n-h)*f,this._z=(r-s)*f}else if(i>a&&i>u){const f=2*Math.sqrt(1+i-a-u);this._w=(c-o)/f,this._x=.25*f,this._y=(s+r)/f,this._z=(n+h)/f}else if(a>u){const f=2*Math.sqrt(1+a-i-u);this._w=(n-h)/f,this._x=(s+r)/f,this._y=.25*f,this._z=(o+c)/f}else{const f=2*Math.sqrt(1+u-i-a);this._w=(r-s)/f,this._x=(n+h)/f,this._y=(o+c)/f,this._z=.25*f}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let i=t.dot(e)+1;return iMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=i):(this._x=0,this._y=-t.z,this._z=t.y,this._w=i)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=i),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(X(this.dot(t),-1,1)))}rotateTowards(t,e){const i=this.angleTo(t);if(i===0)return this;const s=Math.min(1,e/i);return this.slerp(t,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(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const i=t._x,s=t._y,n=t._z,r=t._w,a=e._x,o=e._y,h=e._z,c=e._w;return this._x=i*c+r*a+s*h-n*o,this._y=s*c+r*o+n*a-i*h,this._z=n*c+r*h+i*o-s*a,this._w=r*c-i*a-s*o-n*h,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);const i=this._x,s=this._y,n=this._z,r=this._w;let a=r*t._w+i*t._x+s*t._y+n*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=r,this._x=i,this._y=s,this._z=n,this;const o=1-a*a;if(o<=Number.EPSILON){const f=1-e;return this._w=f*r+e*this._w,this._x=f*i+e*this._x,this._y=f*s+e*this._y,this._z=f*n+e*this._z,this.normalize(),this}const h=Math.sqrt(o),c=Math.atan2(h,a),u=Math.sin((1-e)*c)/h,d=Math.sin(e*c)/h;return this._w=r*u+this._w*d,this._x=i*u+this._x*d,this._y=s*u+this._y*d,this._z=n*u+this._z*d,this._onChangeCallback(),this}slerpQuaternions(t,e,i){return this.copy(t).slerp(e,i)}random(){const t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),i=Math.random(),s=Math.sqrt(1-i),n=Math.sqrt(i);return this.set(s*Math.sin(t),s*Math.cos(t),n*Math.sin(e),n*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class w{constructor(t=0,e=0,i=0){w.prototype.isVector3=!0,this.x=t,this.y=e,this.z=i}set(t,e,i){return i===void 0&&(i=this.z),this.x=t,this.y=e,this.z=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(lo.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(lo.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,i=this.y,s=this.z,n=t.elements;return this.x=n[0]*e+n[3]*i+n[6]*s,this.y=n[1]*e+n[4]*i+n[7]*s,this.z=n[2]*e+n[5]*i+n[8]*s,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,i=this.y,s=this.z,n=t.elements,r=1/(n[3]*e+n[7]*i+n[11]*s+n[15]);return this.x=(n[0]*e+n[4]*i+n[8]*s+n[12])*r,this.y=(n[1]*e+n[5]*i+n[9]*s+n[13])*r,this.z=(n[2]*e+n[6]*i+n[10]*s+n[14])*r,this}applyQuaternion(t){const e=this.x,i=this.y,s=this.z,n=t.x,r=t.y,a=t.z,o=t.w,h=2*(r*s-a*i),c=2*(a*e-n*s),u=2*(n*i-r*e);return this.x=e+o*h+r*u-a*c,this.y=i+o*c+a*h-n*u,this.z=s+o*u+n*c-r*h,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,i=this.y,s=this.z,n=t.elements;return this.x=n[0]*e+n[4]*i+n[8]*s,this.y=n[1]*e+n[5]*i+n[9]*s,this.z=n[2]*e+n[6]*i+n[10]*s,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=X(this.x,t.x,e.x),this.y=X(this.y,t.y,e.y),this.z=X(this.z,t.z,e.z),this}clampScalar(t,e){return this.x=X(this.x,t,e),this.y=X(this.y,t,e),this.z=X(this.z,t,e),this}clampLength(t,e){const i=this.length();return this.divideScalar(i||1).multiplyScalar(X(i,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this.z=t.z+(e.z-t.z)*i,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const i=t.x,s=t.y,n=t.z,r=e.x,a=e.y,o=e.z;return this.x=s*o-n*a,this.y=n*r-i*o,this.z=i*a-s*r,this}projectOnVector(t){const e=t.lengthSq();if(e===0)return this.set(0,0,0);const i=t.dot(this)/e;return this.copy(t).multiplyScalar(i)}projectOnPlane(t){return hr.copy(this).projectOnVector(t),this.sub(hr)}reflect(t){return this.sub(hr.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const i=this.dot(t)/e;return Math.acos(X(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,i=this.y-t.y,s=this.z-t.z;return e*e+i*i+s*s}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,i){const s=Math.sin(e)*t;return this.x=s*Math.sin(i),this.y=Math.cos(e)*t,this.z=s*Math.cos(i),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,i){return this.x=t*Math.sin(e),this.y=i,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),s=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=i,this.z=s,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,e=Math.random()*2-1,i=Math.sqrt(1-e*e);return this.x=i*Math.cos(t),this.y=e,this.z=i*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const hr=new w,lo=new te;class Ht{constructor(t=new w(1/0,1/0,1/0),e=new w(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,i=t.length;e=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y&&t.z>=this.min.z&&t.z<=this.max.z}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y&&t.max.z>=this.min.z&&t.min.z<=this.max.z}intersectsSphere(t){return this.clampPoint(t.center,ue),ue.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,i;return t.normal.x>0?(e=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=-t.constant&&i>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(ts),Ls.subVectors(this.max,ts),gi.subVectors(t.a,ts),yi.subVectors(t.b,ts),xi.subVectors(t.c,ts),De.subVectors(yi,gi),Le.subVectors(xi,yi),Je.subVectors(gi,xi);let e=[0,-De.z,De.y,0,-Le.z,Le.y,0,-Je.z,Je.y,De.z,0,-De.x,Le.z,0,-Le.x,Je.z,0,-Je.x,-De.y,De.x,0,-Le.y,Le.x,0,-Je.y,Je.x,0];return!lr(e,gi,yi,xi,Ls)||(e=[1,0,0,0,1,0,0,0,1],!lr(e,gi,yi,xi,Ls))?!1:(Ns.crossVectors(De,Le),e=[Ns.x,Ns.y,Ns.z],lr(e,gi,yi,xi,Ls))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,ue).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(ue).length()*.5),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:(_e[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),_e[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),_e[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),_e[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),_e[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),_e[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),_e[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),_e[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(_e),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const _e=[new w,new w,new w,new w,new w,new w,new w,new w],ue=new w,Ds=new Ht,gi=new w,yi=new w,xi=new w,De=new w,Le=new w,Je=new w,ts=new w,Ls=new w,Ns=new w,Ze=new w;function lr(l,t,e,i,s){for(let n=0,r=l.length-3;n<=r;n+=3){Ze.fromArray(l,n);const a=s.x*Math.abs(Ze.x)+s.y*Math.abs(Ze.y)+s.z*Math.abs(Ze.z),o=t.dot(Ze),h=e.dot(Ze),c=i.dot(Ze);if(Math.max(-Math.max(o,h,c),Math.min(o,h,c))>a)return!1}return!0}const Ou=new Ht,es=new w,cr=new w;class Lt{constructor(t=new w,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const i=this.center;e!==void 0?i.copy(e):Ou.setFromPoints(t).getCenter(i);let s=0;for(let n=0,r=t.length;nthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;es.subVectors(t,this.center);const e=es.lengthSq();if(e>this.radius*this.radius){const i=Math.sqrt(e),s=(i-this.radius)*.5;this.center.addScaledVector(es,s/i),this.radius+=s}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(cr.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(es.copy(t.center).add(cr)),this.expandByPoint(es.copy(t.center).sub(cr))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Me=new w,ur=new w,Us=new w,Ne=new w,dr=new w,Vs=new w,fr=new w;class ks{constructor(t=new w,e=new w(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Me)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const i=e.dot(this.direction);return i<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=Me.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Me.copy(this.origin).addScaledVector(this.direction,e),Me.distanceToSquared(t))}distanceSqToSegment(t,e,i,s){ur.copy(t).add(e).multiplyScalar(.5),Us.copy(e).sub(t).normalize(),Ne.copy(this.origin).sub(ur);const n=t.distanceTo(e)*.5,r=-this.direction.dot(Us),a=Ne.dot(this.direction),o=-Ne.dot(Us),h=Ne.lengthSq(),c=Math.abs(1-r*r);let u,d,f,p;if(c>0)if(u=r*o-a,d=r*a-o,p=n*c,u>=0)if(d>=-p)if(d<=p){const m=1/c;u*=m,d*=m,f=u*(u+r*d+2*a)+d*(r*u+d+2*o)+h}else d=n,u=Math.max(0,-(r*d+a)),f=-u*u+d*(d+2*o)+h;else d=-n,u=Math.max(0,-(r*d+a)),f=-u*u+d*(d+2*o)+h;else d<=-p?(u=Math.max(0,-(-r*n+a)),d=u>0?-n:Math.min(Math.max(-n,-o),n),f=-u*u+d*(d+2*o)+h):d<=p?(u=0,d=Math.min(Math.max(-n,-o),n),f=d*(d+2*o)+h):(u=Math.max(0,-(r*n+a)),d=u>0?n:Math.min(Math.max(-n,-o),n),f=-u*u+d*(d+2*o)+h);else d=r>0?-n:n,u=Math.max(0,-(r*d+a)),f=-u*u+d*(d+2*o)+h;return i&&i.copy(this.origin).addScaledVector(this.direction,u),s&&s.copy(ur).addScaledVector(Us,d),f}intersectSphere(t,e){Me.subVectors(t.center,this.origin);const i=Me.dot(this.direction),s=Me.dot(Me)-i*i,n=t.radius*t.radius;if(s>n)return null;const r=Math.sqrt(n-s),a=i-r,o=i+r;return o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(t.normal)+t.constant)/e;return i>=0?i:null}intersectPlane(t,e){const i=this.distanceToPlane(t);return i===null?null:this.at(i,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let i,s,n,r,a,o;const h=1/this.direction.x,c=1/this.direction.y,u=1/this.direction.z,d=this.origin;return h>=0?(i=(t.min.x-d.x)*h,s=(t.max.x-d.x)*h):(i=(t.max.x-d.x)*h,s=(t.min.x-d.x)*h),c>=0?(n=(t.min.y-d.y)*c,r=(t.max.y-d.y)*c):(n=(t.max.y-d.y)*c,r=(t.min.y-d.y)*c),i>r||n>s||((n>i||isNaN(i))&&(i=n),(r=0?(a=(t.min.z-d.z)*u,o=(t.max.z-d.z)*u):(a=(t.max.z-d.z)*u,o=(t.min.z-d.z)*u),i>o||a>s)||((a>i||i!==i)&&(i=a),(o=0?i:s,e)}intersectsBox(t){return this.intersectBox(t,Me)!==null}intersectTriangle(t,e,i,s,n){dr.subVectors(e,t),Vs.subVectors(i,t),fr.crossVectors(dr,Vs);let r=this.direction.dot(fr),a;if(r>0){if(s)return null;a=1}else if(r<0)a=-1,r=-r;else return null;Ne.subVectors(this.origin,t);const o=a*this.direction.dot(Vs.crossVectors(Ne,Vs));if(o<0)return null;const h=a*this.direction.dot(dr.cross(Ne));if(h<0||o+h>r)return null;const c=-a*Ne.dot(fr);return c<0?null:this.at(c/r,n)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class Z{constructor(t,e,i,s,n,r,a,o,h,c,u,d,f,p,m,g){Z.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!==void 0&&this.set(t,e,i,s,n,r,a,o,h,c,u,d,f,p,m,g)}set(t,e,i,s,n,r,a,o,h,c,u,d,f,p,m,g){const x=this.elements;return x[0]=t,x[4]=e,x[8]=i,x[12]=s,x[1]=n,x[5]=r,x[9]=a,x[13]=o,x[2]=h,x[6]=c,x[10]=u,x[14]=d,x[3]=f,x[7]=p,x[11]=m,x[15]=g,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Z().fromArray(this.elements)}copy(t){const e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this}copyPosition(t){const e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,i=t.elements,s=1/bi.setFromMatrixColumn(t,0).length(),n=1/bi.setFromMatrixColumn(t,1).length(),r=1/bi.setFromMatrixColumn(t,2).length();return e[0]=i[0]*s,e[1]=i[1]*s,e[2]=i[2]*s,e[3]=0,e[4]=i[4]*n,e[5]=i[5]*n,e[6]=i[6]*n,e[7]=0,e[8]=i[8]*r,e[9]=i[9]*r,e[10]=i[10]*r,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,i=t.x,s=t.y,n=t.z,r=Math.cos(i),a=Math.sin(i),o=Math.cos(s),h=Math.sin(s),c=Math.cos(n),u=Math.sin(n);if(t.order==="XYZ"){const d=r*c,f=r*u,p=a*c,m=a*u;e[0]=o*c,e[4]=-o*u,e[8]=h,e[1]=f+p*h,e[5]=d-m*h,e[9]=-a*o,e[2]=m-d*h,e[6]=p+f*h,e[10]=r*o}else if(t.order==="YXZ"){const d=o*c,f=o*u,p=h*c,m=h*u;e[0]=d+m*a,e[4]=p*a-f,e[8]=r*h,e[1]=r*u,e[5]=r*c,e[9]=-a,e[2]=f*a-p,e[6]=m+d*a,e[10]=r*o}else if(t.order==="ZXY"){const d=o*c,f=o*u,p=h*c,m=h*u;e[0]=d-m*a,e[4]=-r*u,e[8]=p+f*a,e[1]=f+p*a,e[5]=r*c,e[9]=m-d*a,e[2]=-r*h,e[6]=a,e[10]=r*o}else if(t.order==="ZYX"){const d=r*c,f=r*u,p=a*c,m=a*u;e[0]=o*c,e[4]=p*h-f,e[8]=d*h+m,e[1]=o*u,e[5]=m*h+d,e[9]=f*h-p,e[2]=-h,e[6]=a*o,e[10]=r*o}else if(t.order==="YZX"){const d=r*o,f=r*h,p=a*o,m=a*h;e[0]=o*c,e[4]=m-d*u,e[8]=p*u+f,e[1]=u,e[5]=r*c,e[9]=-a*c,e[2]=-h*c,e[6]=f*u+p,e[10]=d-m*u}else if(t.order==="XZY"){const d=r*o,f=r*h,p=a*o,m=a*h;e[0]=o*c,e[4]=-u,e[8]=h*c,e[1]=d*u+m,e[5]=r*c,e[9]=f*u-p,e[2]=p*u-f,e[6]=a*c,e[10]=m*u+d}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Du,t,Lu)}lookAt(t,e,i){const s=this.elements;return Jt.subVectors(t,e),Jt.lengthSq()===0&&(Jt.z=1),Jt.normalize(),Ue.crossVectors(i,Jt),Ue.lengthSq()===0&&(Math.abs(i.z)===1?Jt.x+=1e-4:Jt.z+=1e-4,Jt.normalize(),Ue.crossVectors(i,Jt)),Ue.normalize(),Gs.crossVectors(Jt,Ue),s[0]=Ue.x,s[4]=Gs.x,s[8]=Jt.x,s[1]=Ue.y,s[5]=Gs.y,s[9]=Jt.y,s[2]=Ue.z,s[6]=Gs.z,s[10]=Jt.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const i=t.elements,s=e.elements,n=this.elements,r=i[0],a=i[4],o=i[8],h=i[12],c=i[1],u=i[5],d=i[9],f=i[13],p=i[2],m=i[6],g=i[10],x=i[14],y=i[3],b=i[7],v=i[11],_=i[15],M=s[0],A=s[4],S=s[8],T=s[12],C=s[1],P=s[5],V=s[9],q=s[13],L=s[2],I=s[6],U=s[10],wt=s[14],Ct=s[3],tt=s[7],J=s[11],ht=s[15];return n[0]=r*M+a*C+o*L+h*Ct,n[4]=r*A+a*P+o*I+h*tt,n[8]=r*S+a*V+o*U+h*J,n[12]=r*T+a*q+o*wt+h*ht,n[1]=c*M+u*C+d*L+f*Ct,n[5]=c*A+u*P+d*I+f*tt,n[9]=c*S+u*V+d*U+f*J,n[13]=c*T+u*q+d*wt+f*ht,n[2]=p*M+m*C+g*L+x*Ct,n[6]=p*A+m*P+g*I+x*tt,n[10]=p*S+m*V+g*U+x*J,n[14]=p*T+m*q+g*wt+x*ht,n[3]=y*M+b*C+v*L+_*Ct,n[7]=y*A+b*P+v*I+_*tt,n[11]=y*S+b*V+v*U+_*J,n[15]=y*T+b*q+v*wt+_*ht,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],i=t[4],s=t[8],n=t[12],r=t[1],a=t[5],o=t[9],h=t[13],c=t[2],u=t[6],d=t[10],f=t[14],p=t[3],m=t[7],g=t[11],x=t[15];return p*(+n*o*u-s*h*u-n*a*d+i*h*d+s*a*f-i*o*f)+m*(+e*o*f-e*h*d+n*r*d-s*r*f+s*h*c-n*o*c)+g*(+e*h*u-e*a*f-n*r*u+i*r*f+n*a*c-i*h*c)+x*(-s*a*c-e*o*u+e*a*d+s*r*u-i*r*d+i*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,i){const s=this.elements;return t.isVector3?(s[12]=t.x,s[13]=t.y,s[14]=t.z):(s[12]=t,s[13]=e,s[14]=i),this}invert(){const t=this.elements,e=t[0],i=t[1],s=t[2],n=t[3],r=t[4],a=t[5],o=t[6],h=t[7],c=t[8],u=t[9],d=t[10],f=t[11],p=t[12],m=t[13],g=t[14],x=t[15],y=u*g*h-m*d*h+m*o*f-a*g*f-u*o*x+a*d*x,b=p*d*h-c*g*h-p*o*f+r*g*f+c*o*x-r*d*x,v=c*m*h-p*u*h+p*a*f-r*m*f-c*a*x+r*u*x,_=p*u*o-c*m*o-p*a*d+r*m*d+c*a*g-r*u*g,M=e*y+i*b+s*v+n*_;if(M===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const A=1/M;return t[0]=y*A,t[1]=(m*d*n-u*g*n-m*s*f+i*g*f+u*s*x-i*d*x)*A,t[2]=(a*g*n-m*o*n+m*s*h-i*g*h-a*s*x+i*o*x)*A,t[3]=(u*o*n-a*d*n-u*s*h+i*d*h+a*s*f-i*o*f)*A,t[4]=b*A,t[5]=(c*g*n-p*d*n+p*s*f-e*g*f-c*s*x+e*d*x)*A,t[6]=(p*o*n-r*g*n-p*s*h+e*g*h+r*s*x-e*o*x)*A,t[7]=(r*d*n-c*o*n+c*s*h-e*d*h-r*s*f+e*o*f)*A,t[8]=v*A,t[9]=(p*u*n-c*m*n-p*i*f+e*m*f+c*i*x-e*u*x)*A,t[10]=(r*m*n-p*a*n+p*i*h-e*m*h-r*i*x+e*a*x)*A,t[11]=(c*a*n-r*u*n-c*i*h+e*u*h+r*i*f-e*a*f)*A,t[12]=_*A,t[13]=(c*m*s-p*u*s+p*i*d-e*m*d-c*i*g+e*u*g)*A,t[14]=(p*a*s-r*m*s-p*i*o+e*m*o+r*i*g-e*a*g)*A,t[15]=(r*u*s-c*a*s+c*i*o-e*u*o-r*i*d+e*a*d)*A,this}scale(t){const e=this.elements,i=t.x,s=t.y,n=t.z;return e[0]*=i,e[4]*=s,e[8]*=n,e[1]*=i,e[5]*=s,e[9]*=n,e[2]*=i,e[6]*=s,e[10]*=n,e[3]*=i,e[7]*=s,e[11]*=n,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],i=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],s=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,i,s))}makeTranslation(t,e,i){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,i,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),i=Math.sin(t);return this.set(1,0,0,0,0,e,-i,0,0,i,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,0,i,0,0,1,0,0,-i,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,0,i,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const i=Math.cos(e),s=Math.sin(e),n=1-i,r=t.x,a=t.y,o=t.z,h=n*r,c=n*a;return this.set(h*r+i,h*a-s*o,h*o+s*a,0,h*a+s*o,c*a+i,c*o-s*r,0,h*o-s*a,c*o+s*r,n*o*o+i,0,0,0,0,1),this}makeScale(t,e,i){return this.set(t,0,0,0,0,e,0,0,0,0,i,0,0,0,0,1),this}makeShear(t,e,i,s,n,r){return this.set(1,i,n,0,t,1,r,0,e,s,1,0,0,0,0,1),this}compose(t,e,i){const s=this.elements,n=e._x,r=e._y,a=e._z,o=e._w,h=n+n,c=r+r,u=a+a,d=n*h,f=n*c,p=n*u,m=r*c,g=r*u,x=a*u,y=o*h,b=o*c,v=o*u,_=i.x,M=i.y,A=i.z;return s[0]=(1-(m+x))*_,s[1]=(f+v)*_,s[2]=(p-b)*_,s[3]=0,s[4]=(f-v)*M,s[5]=(1-(d+x))*M,s[6]=(g+y)*M,s[7]=0,s[8]=(p+b)*A,s[9]=(g-y)*A,s[10]=(1-(d+m))*A,s[11]=0,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=1,this}decompose(t,e,i){const s=this.elements;let n=bi.set(s[0],s[1],s[2]).length();const r=bi.set(s[4],s[5],s[6]).length(),a=bi.set(s[8],s[9],s[10]).length();this.determinant()<0&&(n=-n),t.x=s[12],t.y=s[13],t.z=s[14],de.copy(this);const h=1/n,c=1/r,u=1/a;return de.elements[0]*=h,de.elements[1]*=h,de.elements[2]*=h,de.elements[4]*=c,de.elements[5]*=c,de.elements[6]*=c,de.elements[8]*=u,de.elements[9]*=u,de.elements[10]*=u,e.setFromRotationMatrix(de),i.x=n,i.y=r,i.z=a,this}makePerspective(t,e,i,s,n,r,a=Be){const o=this.elements,h=2*n/(e-t),c=2*n/(i-s),u=(e+t)/(e-t),d=(i+s)/(i-s);let f,p;if(a===Be)f=-(r+n)/(r-n),p=-2*r*n/(r-n);else if(a===Fn)f=-r/(r-n),p=-r*n/(r-n);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return o[0]=h,o[4]=0,o[8]=u,o[12]=0,o[1]=0,o[5]=c,o[9]=d,o[13]=0,o[2]=0,o[6]=0,o[10]=f,o[14]=p,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this}makeOrthographic(t,e,i,s,n,r,a=Be){const o=this.elements,h=1/(e-t),c=1/(i-s),u=1/(r-n),d=(e+t)*h,f=(i+s)*c;let p,m;if(a===Be)p=(r+n)*u,m=-2*u;else if(a===Fn)p=n*u,m=-1*u;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return o[0]=2*h,o[4]=0,o[8]=0,o[12]=-d,o[1]=0,o[5]=2*c,o[9]=0,o[13]=-f,o[2]=0,o[6]=0,o[10]=m,o[14]=-p,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this}equals(t){const e=this.elements,i=t.elements;for(let s=0;s<16;s++)if(e[s]!==i[s])return!1;return!0}fromArray(t,e=0){for(let i=0;i<16;i++)this.elements[i]=t[i+e];return this}toArray(t=[],e=0){const i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t[e+9]=i[9],t[e+10]=i[10],t[e+11]=i[11],t[e+12]=i[12],t[e+13]=i[13],t[e+14]=i[14],t[e+15]=i[15],t}}const bi=new w,de=new Z,Du=new w(0,0,0),Lu=new w(1,1,1),Ue=new w,Gs=new w,Jt=new w,co=new Z,uo=new te;class xe{constructor(t=0,e=0,i=0,s=xe.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=i,this._order=s}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,i,s=this._order){return this._x=t,this._y=e,this._z=i,this._order=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,i=!0){const s=t.elements,n=s[0],r=s[4],a=s[8],o=s[1],h=s[5],c=s[9],u=s[2],d=s[6],f=s[10];switch(e){case"XYZ":this._y=Math.asin(X(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,f),this._z=Math.atan2(-r,n)):(this._x=Math.atan2(d,h),this._z=0);break;case"YXZ":this._x=Math.asin(-X(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,f),this._z=Math.atan2(o,h)):(this._y=Math.atan2(-u,n),this._z=0);break;case"ZXY":this._x=Math.asin(X(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-u,f),this._z=Math.atan2(-r,h)):(this._y=0,this._z=Math.atan2(o,n));break;case"ZYX":this._y=Math.asin(-X(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(d,f),this._z=Math.atan2(o,n)):(this._x=0,this._z=Math.atan2(-r,h));break;case"YZX":this._z=Math.asin(X(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,h),this._y=Math.atan2(-u,n)):(this._x=0,this._y=Math.atan2(a,f));break;case"XZY":this._z=Math.asin(-X(r,-1,1)),Math.abs(r)<.9999999?(this._x=Math.atan2(d,h),this._y=Math.atan2(a,n)):(this._x=Math.atan2(-c,f),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,i===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,i){return co.makeRotationFromQuaternion(t),this.setFromRotationMatrix(co,e,i)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return uo.setFromEuler(this),this.setFromQuaternion(uo,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}xe.DEFAULT_ORDER="XYZ";class Xh{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){for(let i=0;i0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(s.matrixAutoUpdate=!1),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.visibility=this._visibility,s.active=this._active,s.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),s.maxInstanceCount=this._maxInstanceCount,s.maxVertexCount=this._maxVertexCount,s.maxIndexCount=this._maxIndexCount,s.geometryInitialized=this._geometryInitialized,s.geometryCount=this._geometryCount,s.matricesTexture=this._matricesTexture.toJSON(t),this._colorsTexture!==null&&(s.colorsTexture=this._colorsTexture.toJSON(t)),this.boundingSphere!==null&&(s.boundingSphere={center:s.boundingSphere.center.toArray(),radius:s.boundingSphere.radius}),this.boundingBox!==null&&(s.boundingBox={min:s.boundingBox.min.toArray(),max:s.boundingBox.max.toArray()}));function n(a,o){return a[o.uuid]===void 0&&(a[o.uuid]=o.toJSON(t)),o.uuid}if(this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(s.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=n(t.geometries,this.geometry);const a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){const o=a.shapes;if(Array.isArray(o))for(let h=0,c=o.length;h0){s.children=[];for(let a=0;a0){s.animations=[];for(let a=0;a0&&(i.geometries=a),o.length>0&&(i.materials=o),h.length>0&&(i.textures=h),c.length>0&&(i.images=c),u.length>0&&(i.shapes=u),d.length>0&&(i.skeletons=d),f.length>0&&(i.animations=f),p.length>0&&(i.nodes=p)}return i.object=s,i;function r(a){const o=[];for(const h in a){const c=a[h];delete c.metadata,o.push(c)}return o}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let i=0;i0?s.multiplyScalar(1/Math.sqrt(n)):s.set(0,0,0)}static getBarycoord(t,e,i,s,n){fe.subVectors(s,e),Ae.subVectors(i,e),mr.subVectors(t,e);const r=fe.dot(fe),a=fe.dot(Ae),o=fe.dot(mr),h=Ae.dot(Ae),c=Ae.dot(mr),u=r*h-a*a;if(u===0)return n.set(0,0,0),null;const d=1/u,f=(h*o-a*c)*d,p=(r*c-a*o)*d;return n.set(1-f-p,p,f)}static containsPoint(t,e,i,s){return this.getBarycoord(t,e,i,s,Ie)===null?!1:Ie.x>=0&&Ie.y>=0&&Ie.x+Ie.y<=1}static getInterpolation(t,e,i,s,n,r,a,o){return this.getBarycoord(t,e,i,s,Ie)===null?(o.x=0,o.y=0,"z"in o&&(o.z=0),"w"in o&&(o.w=0),null):(o.setScalar(0),o.addScaledVector(n,Ie.x),o.addScaledVector(r,Ie.y),o.addScaledVector(a,Ie.z),o)}static getInterpolatedAttribute(t,e,i,s,n,r){return br.setScalar(0),vr.setScalar(0),wr.setScalar(0),br.fromBufferAttribute(t,e),vr.fromBufferAttribute(t,i),wr.fromBufferAttribute(t,s),r.setScalar(0),r.addScaledVector(br,n.x),r.addScaledVector(vr,n.y),r.addScaledVector(wr,n.z),r}static isFrontFacing(t,e,i,s){return fe.subVectors(i,e),Ae.subVectors(t,e),fe.cross(Ae).dot(s)<0}set(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this}setFromPointsAndIndices(t,e,i,s){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[s]),this}setFromAttributeAndIndices(t,e,i,s){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,i),this.c.fromBufferAttribute(t,s),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return fe.subVectors(this.c,this.b),Ae.subVectors(this.a,this.b),fe.cross(Ae).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Kt.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Kt.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,i,s,n){return Kt.getInterpolation(t,this.a,this.b,this.c,e,i,s,n)}containsPoint(t){return Kt.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Kt.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const i=this.a,s=this.b,n=this.c;let r,a;_i.subVectors(s,i),Mi.subVectors(n,i),gr.subVectors(t,i);const o=_i.dot(gr),h=Mi.dot(gr);if(o<=0&&h<=0)return e.copy(i);yr.subVectors(t,s);const c=_i.dot(yr),u=Mi.dot(yr);if(c>=0&&u<=c)return e.copy(s);const d=o*u-c*h;if(d<=0&&o>=0&&c<=0)return r=o/(o-c),e.copy(i).addScaledVector(_i,r);xr.subVectors(t,n);const f=_i.dot(xr),p=Mi.dot(xr);if(p>=0&&f<=p)return e.copy(n);const m=f*h-o*p;if(m<=0&&h>=0&&p<=0)return a=h/(h-p),e.copy(i).addScaledVector(Mi,a);const g=c*p-f*u;if(g<=0&&u-c>=0&&f-p>=0)return xo.subVectors(n,s),a=(u-c)/(u-c+(f-p)),e.copy(s).addScaledVector(xo,a);const x=1/(g+m+d);return r=m*x,a=d*x,e.copy(i).addScaledVector(_i,r).addScaledVector(Mi,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const Yh={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},Ve={h:0,s:0,l:0},Hs={h:0,s:0,l:0};function _r(l,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?l+(t-l)*6*e:e<1/2?t:e<2/3?l+(t-l)*6*(2/3-e):l}class G{constructor(t,e,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,i)}set(t,e,i){if(e===void 0&&i===void 0){const s=t;s&&s.isColor?this.copy(s):typeof s=="number"?this.setHex(s):typeof s=="string"&&this.setStyle(s)}else this.setRGB(t,e,i);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=ne){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,$t.toWorkingColorSpace(this,e),this}setRGB(t,e,i,s=$t.workingColorSpace){return this.r=t,this.g=e,this.b=i,$t.toWorkingColorSpace(this,s),this}setHSL(t,e,i,s=$t.workingColorSpace){if(t=oa(t,1),e=X(e,0,1),i=X(i,0,1),e===0)this.r=this.g=this.b=i;else{const n=i<=.5?i*(1+e):i+e-i*e,r=2*i-n;this.r=_r(r,n,t+1/3),this.g=_r(r,n,t),this.b=_r(r,n,t-1/3)}return $t.toWorkingColorSpace(this,s),this}setStyle(t,e=ne){function i(n){n!==void 0&&parseFloat(n)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let s;if(s=/^(\w+)\(([^\)]*)\)/.exec(t)){let n;const r=s[1],a=s[2];switch(r){case"rgb":case"rgba":if(n=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(n[4]),this.setRGB(Math.min(255,parseInt(n[1],10))/255,Math.min(255,parseInt(n[2],10))/255,Math.min(255,parseInt(n[3],10))/255,e);if(n=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(n[4]),this.setRGB(Math.min(100,parseInt(n[1],10))/100,Math.min(100,parseInt(n[2],10))/100,Math.min(100,parseInt(n[3],10))/100,e);break;case"hsl":case"hsla":if(n=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(n[4]),this.setHSL(parseFloat(n[1])/360,parseFloat(n[2])/100,parseFloat(n[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(s=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=s[1],r=n.length;if(r===3)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,e);if(r===6)return this.setHex(parseInt(n,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=ne){const i=Yh[t.toLowerCase()];return i!==void 0?this.setHex(i,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=ke(t.r),this.g=ke(t.g),this.b=ke(t.b),this}copyLinearToSRGB(t){return this.r=Ui(t.r),this.g=Ui(t.g),this.b=Ui(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=ne){return $t.fromWorkingColorSpace(Pt.copy(this),t),Math.round(X(Pt.r*255,0,255))*65536+Math.round(X(Pt.g*255,0,255))*256+Math.round(X(Pt.b*255,0,255))}getHexString(t=ne){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=$t.workingColorSpace){$t.fromWorkingColorSpace(Pt.copy(this),e);const i=Pt.r,s=Pt.g,n=Pt.b,r=Math.max(i,s,n),a=Math.min(i,s,n);let o,h;const c=(a+r)/2;if(a===r)o=0,h=0;else{const u=r-a;switch(h=c<=.5?u/(r+a):u/(2-r-a),r){case i:o=(s-n)/u+(s0!=t>0&&this.version++,this._alphaTest=t}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(const e in t){const i=t[e];if(i===void 0){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const s=this[e];if(s===void 0){console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`);continue}s&&s.isColor?s.set(i):s&&s.isVector3&&i&&i.isVector3?s.copy(i):this[e]=i}}toJSON(t){const e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(i.dispersion=this.dispersion),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(t).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(t).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(t).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(t).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(t).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapRotation!==void 0&&(i.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Za&&(i.blending=this.blending),this.side!==qr&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==ja&&(i.blendSrc=this.blendSrc),this.blendDst!==Ka&&(i.blendDst=this.blendDst),this.blendEquation!==$a&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==Qa&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==no&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==pi&&(i.stencilFail=this.stencilFail),this.stencilZFail!==pi&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==pi&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function s(n){const r=[];for(const a in n){const o=n[a];delete o.metadata,r.push(o)}return r}if(e){const n=s(t.textures),r=s(t.images);n.length>0&&(i.textures=n),r.length>0&&(i.images=r)}return i}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let i=null;if(e!==null){const s=e.length;i=new Array(s);for(let n=0;n!==s;++n)i[n]=e[n].clone()}return this.clippingPlanes=i,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){t===!0&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class qi extends Nt{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new G(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 xe,this.combine=ia,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const Ce=Hu();function Hu(){const l=new ArrayBuffer(4),t=new Float32Array(l),e=new Uint32Array(l),i=new Uint32Array(512),s=new Uint32Array(512);for(let o=0;o<256;++o){const h=o-127;h<-27?(i[o]=0,i[o|256]=32768,s[o]=24,s[o|256]=24):h<-14?(i[o]=1024>>-h-14,i[o|256]=1024>>-h-14|32768,s[o]=-h-1,s[o|256]=-h-1):h<=15?(i[o]=h+15<<10,i[o|256]=h+15<<10|32768,s[o]=13,s[o|256]=13):h<128?(i[o]=31744,i[o|256]=64512,s[o]=24,s[o|256]=24):(i[o]=31744,i[o|256]=64512,s[o]=13,s[o|256]=13)}const n=new Uint32Array(2048),r=new Uint32Array(64),a=new Uint32Array(64);for(let o=1;o<1024;++o){let h=o<<13,c=0;for(;(h&8388608)===0;)h<<=1,c-=8388608;h&=-8388609,c+=947912704,n[o]=h|c}for(let o=1024;o<2048;++o)n[o]=939524096+(o-1024<<13);for(let o=1;o<31;++o)r[o]=o<<23;r[31]=1199570944,r[32]=2147483648;for(let o=33;o<63;++o)r[o]=2147483648+(o-32<<23);r[63]=3347054592;for(let o=1;o<64;++o)o!==32&&(a[o]=1024);return{floatView:t,uint32View:e,baseTable:i,shiftTable:s,mantissaTable:n,exponentTable:r,offsetTable:a}}function Wt(l){Math.abs(l)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),l=X(l,-65504,65504),Ce.floatView[0]=l;const t=Ce.uint32View[0],e=t>>23&511;return Ce.baseTable[e]+((t&8388607)>>Ce.shiftTable[e])}function xs(l){const t=l>>10;return Ce.uint32View[0]=Ce.mantissaTable[Ce.offsetTable[t]+(l&1023)]+Ce.exponentTable[t],Ce.floatView[0]}const ly={toHalfFloat:Wt,fromHalfFloat:xs},bt=new w,qs=new B;class ft{constructor(t,e,i=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=i,this.usage=Pn,this.updateRanges=[],this.gpuType=Gi,this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,i){t*=this.itemSize,i*=e.itemSize;for(let s=0,n=this.itemSize;se.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),e.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Ht);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new w(-1/0,-1/0,-1/0),new w(1/0,1/0,1/0));return}if(t!==void 0){if(this.boundingBox.setFromBufferAttribute(t),e)for(let i=0,s=e.length;i0&&(t.userData=this.userData),this.parameters!==void 0){const o=this.parameters;for(const h in o)o[h]!==void 0&&(t[h]=o[h]);return t}t.data={attributes:{}};const e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const i=this.attributes;for(const o in i){const h=i[o];t.data.attributes[o]=h.toJSON(t.data)}const s={};let n=!1;for(const o in this.morphAttributes){const h=this.morphAttributes[o],c=[];for(let u=0,d=h.length;u0&&(s[o]=c,n=!0)}n&&(t.data.morphAttributes=s,t.data.morphTargetsRelative=this.morphTargetsRelative);const r=this.groups;r.length>0&&(t.data.groups=JSON.parse(JSON.stringify(r)));const a=this.boundingSphere;return a!==null&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const i=t.index;i!==null&&this.setIndex(i.clone(e));const s=t.attributes;for(const h in s){const c=s[h];this.setAttribute(h,c.clone(e))}const n=t.morphAttributes;for(const h in n){const c=[],u=n[h];for(let d=0,f=u.length;d0){const s=e[i[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let n=0,r=s.length;n(t.far-t.near)**2))&&(bo.copy(n).invert(),$e.copy(t.ray).applyMatrix4(bo),!(i.boundingBox!==null&&$e.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(t,e,$e)))}_computeIntersections(t,e,i){let s;const n=this.geometry,r=this.material,a=n.index,o=n.attributes.position,h=n.attributes.uv,c=n.attributes.uv1,u=n.attributes.normal,d=n.groups,f=n.drawRange;if(a!==null)if(Array.isArray(r))for(let p=0,m=d.length;pe.far?null:{distance:h,point:js.clone(),object:l}}function Ks(l,t,e,i,s,n,r,a,o,h){l.getVertexPosition(a,Ys),l.getVertexPosition(o,Js),l.getVertexPosition(h,Zs);const c=Ju(l,t,e,i,Ys,Js,Zs,wo);if(c){const u=new w;Kt.getBarycoord(wo,Ys,Js,Zs,u),s&&(c.uv=Kt.getInterpolatedAttribute(s,a,o,h,u,new B)),n&&(c.uv1=Kt.getInterpolatedAttribute(n,a,o,h,u,new B)),r&&(c.normal=Kt.getInterpolatedAttribute(r,a,o,h,u,new w),c.normal.dot(i.direction)>0&&c.normal.multiplyScalar(-1));const d={a,b:o,c:h,normal:new w,materialIndex:0};Kt.getNormal(Ys,Js,Zs,d.normal),c.face=d,c.barycoord=u}return c}class Xn extends j{constructor(t=1,e=1,i=1,s=1,n=1,r=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:i,widthSegments:s,heightSegments:n,depthSegments:r};const a=this;s=Math.floor(s),n=Math.floor(n),r=Math.floor(r);const o=[],h=[],c=[],u=[];let d=0,f=0;p("z","y","x",-1,-1,i,e,t,r,n,0),p("z","y","x",1,-1,i,e,-t,r,n,1),p("x","z","y",1,1,t,i,e,s,r,2),p("x","z","y",1,-1,t,i,-e,s,r,3),p("x","y","z",1,-1,t,e,i,s,n,4),p("x","y","z",-1,-1,t,e,-i,s,n,5),this.setIndex(o),this.setAttribute("position",new D(h,3)),this.setAttribute("normal",new D(c,3)),this.setAttribute("uv",new D(u,2));function p(m,g,x,y,b,v,_,M,A,S,T){const C=v/A,P=_/S,V=v/2,q=_/2,L=M/2,I=A+1,U=S+1;let wt=0,Ct=0;const tt=new w;for(let J=0;J0?1:-1,c.push(tt.x,tt.y,tt.z),u.push(Ut/A),u.push(1-J/S),wt+=1}}for(let J=0;J0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const i={};for(const s in this.extensions)this.extensions[s]===!0&&(i[s]=!0);return Object.keys(i).length>0&&(e.extensions=i),e}}class ua extends st{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Z,this.projectionMatrix=new Z,this.projectionMatrixInverse=new Z,this.coordinateSystem=Be}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Ge=new w,_o=new B,Mo=new B;class re extends ua{constructor(t=50,e=1,i=.1,s=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=i,this.far=s,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=Is*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(ai*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return Is*2*Math.atan(Math.tan(ai*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,i){Ge.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(Ge.x,Ge.y).multiplyScalar(-t/Ge.z),Ge.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Ge.x,Ge.y).multiplyScalar(-t/Ge.z)}getViewSize(t,e){return this.getViewBounds(t,_o,Mo),e.subVectors(Mo,_o)}setViewOffset(t,e,i,s,n,r){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=s,this.view.width=n,this.view.height=r,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(ai*.5*this.fov)/this.zoom,i=2*e,s=this.aspect*i,n=-.5*s;const r=this.view;if(this.view!==null&&this.view.enabled){const o=r.fullWidth,h=r.fullHeight;n+=r.offsetX*s/o,e-=r.offsetY*i/h,s*=r.width/o,i*=r.height/h}const a=this.filmOffset;a!==0&&(n+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(n,n+s,e,e-i,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const Ai=-90,Ii=1;class Qu extends st{constructor(t,e,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const s=new re(Ai,Ii,t,e);s.layers=this.layers,this.add(s);const n=new re(Ai,Ii,t,e);n.layers=this.layers,this.add(n);const r=new re(Ai,Ii,t,e);r.layers=this.layers,this.add(r);const a=new re(Ai,Ii,t,e);a.layers=this.layers,this.add(a);const o=new re(Ai,Ii,t,e);o.layers=this.layers,this.add(o);const h=new re(Ai,Ii,t,e);h.layers=this.layers,this.add(h)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[i,s,n,r,a,o]=e;for(const h of e)this.remove(h);if(t===Be)i.up.set(0,1,0),i.lookAt(1,0,0),s.up.set(0,1,0),s.lookAt(-1,0,0),n.up.set(0,0,-1),n.lookAt(0,1,0),r.up.set(0,0,1),r.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),o.up.set(0,1,0),o.lookAt(0,0,-1);else if(t===Fn)i.up.set(0,-1,0),i.lookAt(-1,0,0),s.up.set(0,-1,0),s.lookAt(1,0,0),n.up.set(0,0,1),n.lookAt(0,1,0),r.up.set(0,0,-1),r.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),o.up.set(0,-1,0),o.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);for(const h of e)this.add(h),h.updateMatrixWorld()}update(t,e){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:s}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[n,r,a,o,h,c]=this.children,u=t.getRenderTarget(),d=t.getActiveCubeFace(),f=t.getActiveMipmapLevel(),p=t.xr.enabled;t.xr.enabled=!1;const m=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,t.setRenderTarget(i,0,s),t.render(e,n),t.setRenderTarget(i,1,s),t.render(e,r),t.setRenderTarget(i,2,s),t.render(e,a),t.setRenderTarget(i,3,s),t.render(e,o),t.setRenderTarget(i,4,s),t.render(e,h),i.texture.generateMipmaps=m,t.setRenderTarget(i,5,s),t.render(e,c),t.setRenderTarget(u,d,f),t.xr.enabled=p,i.texture.needsPMREMUpdate=!0}}class da extends yt{constructor(t,e,i,s,n,r,a,o,h,c){t=t!==void 0?t:[],e=e!==void 0?e:na,super(t,e,i,s,n,r,a,o,h,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class xy extends la{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const i={width:t,height:t,depth:1},s=[i,i,i,i,i,i];this.texture=new da(s,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:ae}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const i={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 Xn(5,5,5),n=new ca({name:"CubemapFromEquirect",uniforms:Yn(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Lh,blending:ac});n.uniforms.tEquirect.value=e;const r=new qt(s,n),a=e.minFilter;return e.minFilter===qn&&(e.minFilter=ae),new Qu(1,10,this).update(t,r),e.minFilter=a,r.geometry.dispose(),r.material.dispose(),this}clear(t,e,i,s){const n=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,i,s);t.setRenderTarget(n)}}class fa{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new G(t),this.density=e}clone(){return new fa(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class pa{constructor(t,e=1,i=1e3){this.isFog=!0,this.name="",this.color=new G(t),this.near=e,this.far=i}clone(){return new pa(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class td extends st{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new xe,this.environmentIntensity=1,this.environmentRotation=new xe,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,this.backgroundRotation.copy(t.backgroundRotation),this.environmentIntensity=t.environmentIntensity,this.environmentRotation.copy(t.environmentRotation),t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(e.object.environmentIntensity=this.environmentIntensity),e.object.environmentRotation=this.environmentRotation.toArray(),e}}class ma{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=Pn,this.updateRanges=[],this.version=0,this.uuid=Qt()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,i){t*=this.stride,i*=e.stride;for(let s=0,n=this.stride;st.far||e.push({distance:o,point:ns.clone(),uv:Kt.getInterpolation(ns,Qs,as,tn,So,Ar,Ao,new B),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function en(l,t,e,i,s,n){zi.subVectors(l,e).addScalar(.5).multiply(i),s!==void 0?(rs.x=n*zi.x-s*zi.y,rs.y=s*zi.x+n*zi.y):rs.copy(zi),l.copy(t),l.x+=rs.x,l.y+=rs.y,l.applyMatrix4(Jh)}const sn=new w,Io=new w;class ed extends st{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let i=0,s=e.length;i0){let i,s;for(i=1,s=e.length;i0){sn.setFromMatrixPosition(this.matrixWorld);const s=t.ray.origin.distanceTo(sn);this.getObjectForDistance(s).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){sn.setFromMatrixPosition(t.matrixWorld),Io.setFromMatrixPosition(this.matrixWorld);const i=sn.distanceTo(Io)/t.zoom;e[0].object.visible=!0;let s,n;for(s=1,n=e.length;s=r)e[s-1].object.visible=!1,e[s].object.visible=!0;else break}for(this._currentLevel=s-1;s1?null:e.copy(t.start).addScaledVector(i,n)}intersectsLine(t){const e=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return e<0&&i>0||i<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const i=e||hd.getNormalMatrix(t),s=this.coplanarPoint(Cr).applyMatrix4(t),n=this.normal.applyMatrix3(i).normalize();return this.constant=-s.dot(n),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return new this.constructor().copy(this)}}const je=new Lt,an=new w;class $h{constructor(t=new Pi,e=new Pi,i=new Pi,s=new Pi,n=new Pi,r=new Pi){this.planes=[t,e,i,s,n,r]}set(t,e,i,s,n,r){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(i),a[3].copy(s),a[4].copy(n),a[5].copy(r),this}copy(t){const e=this.planes;for(let i=0;i<6;i++)e[i].copy(t.planes[i]);return this}setFromProjectionMatrix(t,e=Be){const i=this.planes,s=t.elements,n=s[0],r=s[1],a=s[2],o=s[3],h=s[4],c=s[5],u=s[6],d=s[7],f=s[8],p=s[9],m=s[10],g=s[11],x=s[12],y=s[13],b=s[14],v=s[15];if(i[0].setComponents(o-n,d-h,g-f,v-x).normalize(),i[1].setComponents(o+n,d+h,g+f,v+x).normalize(),i[2].setComponents(o+r,d+c,g+p,v+y).normalize(),i[3].setComponents(o-r,d-c,g-p,v-y).normalize(),i[4].setComponents(o-a,d-u,g-m,v-b).normalize(),e===Be)i[5].setComponents(o+a,d+u,g+m,v+b).normalize();else if(e===Fn)i[5].setComponents(a,u,m,b).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);return this}intersectsObject(t){if(t.boundingSphere!==void 0)t.boundingSphere===null&&t.computeBoundingSphere(),je.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere(),je.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(je)}intersectsSprite(t){return je.center.set(0,0,0),je.radius=.7071067811865476,je.applyMatrix4(t.matrixWorld),this.intersectsSphere(je)}intersectsSphere(t){const e=this.planes,i=t.center,s=-t.radius;for(let n=0;n<6;n++)if(e[n].distanceToPoint(i)0?t.max.x:t.min.x,an.y=s.normal.y>0?t.max.y:t.min.y,an.z=s.normal.z>0?t.max.z:t.min.z,s.distanceToPoint(an)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let i=0;i<6;i++)if(e[i].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function Br(l,t){return l-t}function ld(l,t){return l.z-t.z}function cd(l,t){return t.z-l.z}class ud{constructor(){this.index=0,this.pool=[],this.list=[]}push(t,e,i,s){const n=this.pool,r=this.list;this.index>=n.length&&n.push({start:-1,count:-1,z:-1,index:-1});const a=n[this.index];r.push(a),this.index++,a.start=t,a.count=e,a.z=i,a.index=s}reset(){this.list.length=0,this.index=0}}const Gt=new Z,dd=new G(1,1,1),zr=new $h,on=new Ht,Ke=new Lt,ls=new w,Eo=new w,fd=new w,kr=new ud,Ft=new qt,hn=[];function pd(l,t,e=0){const i=t.itemSize;if(l.isInterleavedBufferAttribute||l.array.constructor!==t.array.constructor){const s=l.count;for(let n=0;n65535?new Uint32Array(s):new Uint16Array(s);e.setIndex(new ft(n,1))}this._geometryInitialized=!0}}_validateGeometry(t){const e=this.geometry;if(!!t.getIndex()!=!!e.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(const i in e.attributes){if(!t.hasAttribute(i))throw new Error(`THREE.BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const s=t.getAttribute(i),n=e.getAttribute(i);if(s.itemSize!==n.itemSize||s.normalized!==n.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(t){const e=this._instanceInfo;if(t<0||t>=e.length||e[t].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${t}. Instance is either out of range or has been deleted.`)}validateGeometryId(t){const e=this._geometryInfo;if(t<0||t>=e.length||e[t].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${t}. Geometry is either out of range or has been deleted.`)}setCustomSort(t){return this.customSort=t,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Ht);const t=this.boundingBox,e=this._instanceInfo;t.makeEmpty();for(let i=0,s=e.length;i=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");const i={visible:!0,active:!0,geometryIndex:t};let s=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(Br),s=this._availableInstanceIds.shift(),this._instanceInfo[s]=i):(s=this._instanceInfo.length,this._instanceInfo.push(i));const n=this._matricesTexture;Gt.identity().toArray(n.image.data,s*16),n.needsUpdate=!0;const r=this._colorsTexture;return r&&(dd.toArray(r.image.data,s*4),r.needsUpdate=!0),this._visibilityChanged=!0,s}addGeometry(t,e=-1,i=-1){this._initializeGeometry(t),this._validateGeometry(t);const s={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},n=this._geometryInfo;s.vertexStart=this._nextVertexStart,s.reservedVertexCount=e===-1?t.getAttribute("position").count:e;const r=t.getIndex();if(r!==null&&(s.indexStart=this._nextIndexStart,s.reservedIndexCount=i===-1?r.count:i),s.indexStart!==-1&&s.indexStart+s.reservedIndexCount>this._maxIndexCount||s.vertexStart+s.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let o;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(Br),o=this._availableGeometryIds.shift(),n[o]=s):(o=this._geometryCount,this._geometryCount++,n.push(s)),this.setGeometryAt(o,t),this._nextIndexStart=s.indexStart+s.reservedIndexCount,this._nextVertexStart=s.vertexStart+s.reservedVertexCount,o}setGeometryAt(t,e){if(t>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(e);const i=this.geometry,s=i.getIndex()!==null,n=i.getIndex(),r=e.getIndex(),a=this._geometryInfo[t];if(s&&r.count>a.reservedIndexCount||e.attributes.position.count>a.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");const o=a.vertexStart,h=a.reservedVertexCount;a.vertexCount=e.getAttribute("position").count;for(const c in i.attributes){const u=e.getAttribute(c),d=i.getAttribute(c);pd(u,d,o);const f=u.itemSize;for(let p=u.count,m=h;p=e.length||e[t].active===!1)return this;const i=this._instanceInfo;for(let s=0,n=i.length;sa).sort((r,a)=>i[r].vertexStart-i[a].vertexStart),n=this.geometry;for(let r=0,a=i.length;r=this._geometryCount)return null;const i=this.geometry,s=this._geometryInfo[t];if(s.boundingBox===null){const n=new Ht,r=i.index,a=i.attributes.position;for(let o=s.start,h=s.start+s.count;o=this._geometryCount)return null;const i=this.geometry,s=this._geometryInfo[t];if(s.boundingSphere===null){const n=new Lt;this.getBoundingBoxAt(t,on),on.getCenter(n.center);const r=i.index,a=i.attributes.position;let o=0;for(let h=s.start,c=s.start+s.count;ha.active);if(Math.max(...i.map(a=>a.vertexStart+a.reservedVertexCount))>t)throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${e}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...i.map(o=>o.indexStart+o.reservedIndexCount))>e)throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${e}. Cannot shrink further.`);const n=this.geometry;n.dispose(),this._maxVertexCount=t,this._maxIndexCount=e,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new j,this._initializeGeometry(n));const r=this.geometry;n.index&&Qe(n.index.array,r.index.array);for(const a in n.attributes)Qe(n.attributes[a].array,r.attributes[a].array)}raycast(t,e){const i=this._instanceInfo,s=this._geometryInfo,n=this.matrixWorld,r=this.geometry;Ft.material=this.material,Ft.geometry.index=r.index,Ft.geometry.attributes=r.attributes,Ft.geometry.boundingBox===null&&(Ft.geometry.boundingBox=new Ht),Ft.geometry.boundingSphere===null&&(Ft.geometry.boundingSphere=new Lt);for(let a=0,o=i.length;a({...e,boundingBox:e.boundingBox!==null?e.boundingBox.clone():null,boundingSphere:e.boundingSphere!==null?e.boundingSphere.clone():null})),this._instanceInfo=t._instanceInfo.map(e=>({...e})),this._maxInstanceCount=t._maxInstanceCount,this._maxVertexCount=t._maxVertexCount,this._maxIndexCount=t._maxIndexCount,this._geometryInitialized=t._geometryInitialized,this._geometryCount=t._geometryCount,this._multiDrawCounts=t._multiDrawCounts.slice(),this._multiDrawStarts=t._multiDrawStarts.slice(),this._matricesTexture=t._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=t._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null),this}onBeforeRender(t,e,i,s,n){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const r=s.getIndex(),a=r===null?1:r.array.BYTES_PER_ELEMENT,o=this._instanceInfo,h=this._multiDrawStarts,c=this._multiDrawCounts,u=this._geometryInfo,d=this.perObjectFrustumCulled,f=this._indirectTexture,p=f.image.data;d&&(Gt.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),zr.setFromProjectionMatrix(Gt,t.coordinateSystem));let m=0;if(this.sortObjects){Gt.copy(this.matrixWorld).invert(),ls.setFromMatrixPosition(i.matrixWorld).applyMatrix4(Gt),Eo.set(0,0,-1).transformDirection(i.matrixWorld).transformDirection(Gt);for(let y=0,b=o.length;y0){const s=e[i[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let n=0,r=s.length;ni)return;Pr.applyMatrix4(l.matrixWorld);const o=t.ray.origin.distanceTo(Pr);if(!(ot.far))return{distance:o,point:Do.clone().applyMatrix4(l.matrixWorld),index:s,face:null,faceIndex:null,barycoord:null,object:l}}const Lo=new w,No=new w;class Re extends hi{constructor(t,e){super(t,e),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(t.index===null){const e=t.attributes.position,i=[];for(let s=0,n=e.count;s0){const s=e[i[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let n=0,r=s.length;ns.far)return;n.push({distance:h,distanceToRay:Math.sqrt(a),point:o,index:t,face:null,faceIndex:null,barycoord:null,object:r})}}class Kh extends st{constructor(){super(),this.isGroup=!0,this.type="Group"}}class by extends yt{constructor(t,e,i,s,n,r,a,o,h){super(t,e,i,s,n,r,a,o,h),this.isVideoTexture=!0,this.minFilter=r!==void 0?r:ae,this.magFilter=n!==void 0?n:ae,this.generateMipmaps=!1;const c=this;function u(){c.needsUpdate=!0,t.requestVideoFrameCallback(u)}"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback(u)}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;"requestVideoFrameCallback"in t===!1&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class vy extends yt{constructor(t,e){super({width:t,height:e}),this.isFramebufferTexture=!0,this.magFilter=pe,this.minFilter=pe,this.generateMipmaps=!1,this.needsUpdate=!0}}class ya extends yt{constructor(t,e,i,s,n,r,a,o,h,c,u,d){super(null,r,a,o,h,c,s,n,u,d),this.isCompressedTexture=!0,this.image={width:e,height:i},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}class wy extends ya{constructor(t,e,i,s,n,r){super(t,e,i,n,r),this.isCompressedArrayTexture=!0,this.image.depth=s,this.wrapR=ge,this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}}class _y extends ya{constructor(t,e,i){super(void 0,t[0].width,t[0].height,e,i,na),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=t}}class Qh extends yt{constructor(t,e,i,s,n,r,a,o,h){super(t,e,i,s,n,r,a,o,h),this.isCanvasTexture=!0,this.needsUpdate=!0}}class My extends yt{constructor(t,e,i,s,n,r,a,o,h,c=sr){if(c!==sr&&c!==eo)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");i===void 0&&c===sr&&(i=ra),i===void 0&&c===eo&&(i=Mc),super(null,s,n,r,a,o,c,i,h),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=a!==void 0?a:pe,this.minFilter=o!==void 0?o:pe,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return this.compareFunction!==null&&(e.compareFunction=this.compareFunction),e}}class ve{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const i=this.getUtoTmapping(t);return this.getPoint(i,e)}getPoints(t=5){const e=[];for(let i=0;i<=t;i++)e.push(this.getPoint(i/t));return e}getSpacedPoints(t=5){const e=[];for(let i=0;i<=t;i++)e.push(this.getPointAt(i/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let i,s=this.getPoint(0),n=0;e.push(0);for(let r=1;r<=t;r++)i=this.getPoint(r/t),n+=i.distanceTo(s),e.push(n),s=i;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const i=this.getLengths();let s=0;const n=i.length;let r;e?r=e:r=t*i[n-1];let a=0,o=n-1,h;for(;a<=o;)if(s=Math.floor(a+(o-a)/2),h=i[s]-r,h<0)a=s+1;else if(h>0)o=s-1;else{o=s;break}if(s=o,i[s]===r)return s/(n-1);const c=i[s],d=i[s+1]-c,f=(r-c)/d;return(s+f)/(n-1)}getTangent(t,e){let s=t-1e-4,n=t+1e-4;s<0&&(s=0),n>1&&(n=1);const r=this.getPoint(s),a=this.getPoint(n),o=e||(r.isVector2?new B:new w);return o.copy(a).sub(r).normalize(),o}getTangentAt(t,e){const i=this.getUtoTmapping(t);return this.getTangent(i,e)}computeFrenetFrames(t,e){const i=new w,s=[],n=[],r=[],a=new w,o=new Z;for(let f=0;f<=t;f++){const p=f/t;s[f]=this.getTangentAt(p,new w)}n[0]=new w,r[0]=new w;let h=Number.MAX_VALUE;const c=Math.abs(s[0].x),u=Math.abs(s[0].y),d=Math.abs(s[0].z);c<=h&&(h=c,i.set(1,0,0)),u<=h&&(h=u,i.set(0,1,0)),d<=h&&i.set(0,0,1),a.crossVectors(s[0],i).normalize(),n[0].crossVectors(s[0],a),r[0].crossVectors(s[0],n[0]);for(let f=1;f<=t;f++){if(n[f]=n[f-1].clone(),r[f]=r[f-1].clone(),a.crossVectors(s[f-1],s[f]),a.length()>Number.EPSILON){a.normalize();const p=Math.acos(X(s[f-1].dot(s[f]),-1,1));n[f].applyMatrix4(o.makeRotationAxis(a,p))}r[f].crossVectors(s[f],n[f])}if(e===!0){let f=Math.acos(X(n[0].dot(n[t]),-1,1));f/=t,s[0].dot(a.crossVectors(n[0],n[t]))>0&&(f=-f);for(let p=1;p<=t;p++)n[p].applyMatrix4(o.makeRotationAxis(s[p],f*p)),r[p].crossVectors(s[p],n[p])}return{tangents:s,normals:n,binormals:r}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class xa extends ve{constructor(t=0,e=0,i=1,s=1,n=0,r=Math.PI*2,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=i,this.yRadius=s,this.aStartAngle=n,this.aEndAngle=r,this.aClockwise=a,this.aRotation=o}getPoint(t,e=new B){const i=e,s=Math.PI*2;let n=this.aEndAngle-this.aStartAngle;const r=Math.abs(n)s;)n-=s;n0?0:(Math.floor(Math.abs(a)/n)+1)*n:o===0&&a===n-1&&(a=n-2,o=1);let h,c;this.closed||a>0?h=s[(a-1)%n]:(fn.subVectors(s[0],s[1]).add(s[0]),h=fn);const u=s[a%n],d=s[(a+1)%n];if(this.closed||a+2s.length-2?s.length-1:r+1],u=s[r>s.length-3?s.length-1:r+2];return i.set(Go(a,o.x,h.x,c.x,u.x),Go(a,o.y,h.y,c.y,u.y)),i}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e=i){const r=s[n]-i,a=this.curves[n],o=a.getLength(),h=o===0?0:1-r/o;return a.getPointAt(h,e)}n++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let i=0,s=this.curves.length;i1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,i=t.curves.length;e0){const u=h.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(h);const c=h.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class Jn extends j{constructor(t=[new B(0,-.5),new B(.5,0),new B(0,.5)],e=12,i=0,s=Math.PI*2){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:i,phiLength:s},e=Math.floor(e),s=X(s,0,Math.PI*2);const n=[],r=[],a=[],o=[],h=[],c=1/e,u=new w,d=new B,f=new w,p=new w,m=new w;let g=0,x=0;for(let y=0;y<=t.length-1;y++)switch(y){case 0:g=t[y+1].x-t[y].x,x=t[y+1].y-t[y].y,f.x=x*1,f.y=-g,f.z=x*0,m.copy(f),f.normalize(),o.push(f.x,f.y,f.z);break;case t.length-1:o.push(m.x,m.y,m.z);break;default:g=t[y+1].x-t[y].x,x=t[y+1].y-t[y].y,f.x=x*1,f.y=-g,f.z=x*0,p.copy(f),f.x+=m.x,f.y+=m.y,f.z+=m.z,f.normalize(),o.push(f.x,f.y,f.z),m.copy(p)}for(let y=0;y<=e;y++){const b=i+y*c*s,v=Math.sin(b),_=Math.cos(b);for(let M=0;M<=t.length-1;M++){u.x=t[M].x*v,u.y=t[M].y,u.z=t[M].x*_,r.push(u.x,u.y,u.z),d.x=y/e,d.y=M/(t.length-1),a.push(d.x,d.y);const A=o[3*M+0]*v,S=o[3*M+1],T=o[3*M+0]*_;h.push(A,S,T)}}for(let y=0;y0&&b(!0),e>0&&b(!1)),this.setIndex(c),this.setAttribute("position",new D(u,3)),this.setAttribute("normal",new D(d,3)),this.setAttribute("uv",new D(f,2));function y(){const v=new w,_=new w;let M=0;const A=(e-t)/i;for(let S=0;S<=n;S++){const T=[],C=S/n,P=C*(e-t)+t;for(let V=0;V<=s;V++){const q=V/s,L=q*o+a,I=Math.sin(L),U=Math.cos(L);_.x=P*I,_.y=-C*i+g,_.z=P*U,u.push(_.x,_.y,_.z),v.set(I,A,U).normalize(),d.push(v.x,v.y,v.z),f.push(q,1-C),T.push(p++)}m.push(T)}for(let S=0;S0||T!==0)&&(c.push(C,P,q),M+=3),(e>0||T!==n-1)&&(c.push(P,V,q),M+=3)}h.addGroup(x,M,0),x+=M}function b(v){const _=p,M=new B,A=new w;let S=0;const T=v===!0?t:e,C=v===!0?1:-1;for(let V=1;V<=s;V++)u.push(0,g*C,0),d.push(0,C,0),f.push(.5,.5),p++;const P=p;for(let V=0;V<=s;V++){const L=V/s*o+a,I=Math.cos(L),U=Math.sin(L);A.x=T*U,A.y=g*C,A.z=T*I,u.push(A.x,A.y,A.z),d.push(0,C,0),M.x=I*.5+.5,M.y=U*.5*C+.5,f.push(M.x,M.y),p++}for(let V=0;V.9&&A<.1&&(b<.2&&(r[y+0]+=1),v<.2&&(r[y+2]+=1),_<.2&&(r[y+4]+=1))}}function d(y){n.push(y.x,y.y,y.z)}function f(y,b){const v=y*3;b.x=t[v+0],b.y=t[v+1],b.z=t[v+2]}function p(){const y=new w,b=new w,v=new w,_=new w,M=new B,A=new B,S=new B;for(let T=0,C=0;T80*e){a=h=l[0],o=c=l[1];for(let p=e;ph&&(h=u),d>c&&(c=d);f=Math.max(h-a,c-o),f=f!==0?32767/f:0}return Cs(n,r,e,a,o,f,0),r}};function rl(l,t,e,i,s){let n,r;if(s===Yd(l,t,e,i)>0)for(n=t;n=t;n-=i)r=Wo(n,l[n],l[n+1],r);return r&&Zn(r,r.next)&&(zs(r),r=r.next),r}function li(l,t){if(!l)return l;t||(t=l);let e=l,i;do if(i=!1,!e.steiner&&(Zn(e,e.next)||dt(e.prev,e,e.next)===0)){if(zs(e),e=t=e.prev,e===e.next)break;i=!0}else e=e.next;while(i||e!==t);return t}function Cs(l,t,e,i,s,n,r){if(!l)return;!r&&n&&Vd(l,i,s,n);let a=l,o,h;for(;l.prev!==l.next;){if(o=l.prev,h=l.next,n?Fd(l,i,s,n):Pd(l)){t.push(o.i/e|0),t.push(l.i/e|0),t.push(h.i/e|0),zs(l),l=h.next,a=h.next;continue}if(l=h,l===a){r?r===1?(l=Rd(li(l),t,e),Cs(l,t,e,i,s,n,2)):r===2&&Ed(l,t,e,i,s,n):Cs(li(l),t,e,i,s,n,1);break}}}function Pd(l){const t=l.prev,e=l,i=l.next;if(dt(t,e,i)>=0)return!1;const s=t.x,n=e.x,r=i.x,a=t.y,o=e.y,h=i.y,c=sn?s>r?s:r:n>r?n:r,f=a>o?a>h?a:h:o>h?o:h;let p=i.next;for(;p!==t;){if(p.x>=c&&p.x<=d&&p.y>=u&&p.y<=f&&Ni(s,a,n,o,r,h,p.x,p.y)&&dt(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function Fd(l,t,e,i){const s=l.prev,n=l,r=l.next;if(dt(s,n,r)>=0)return!1;const a=s.x,o=n.x,h=r.x,c=s.y,u=n.y,d=r.y,f=ao?a>h?a:h:o>h?o:h,g=c>u?c>d?c:d:u>d?u:d,x=$r(f,p,t,e,i),y=$r(m,g,t,e,i);let b=l.prevZ,v=l.nextZ;for(;b&&b.z>=x&&v&&v.z<=y;){if(b.x>=f&&b.x<=m&&b.y>=p&&b.y<=g&&b!==s&&b!==r&&Ni(a,c,o,u,h,d,b.x,b.y)&&dt(b.prev,b,b.next)>=0||(b=b.prevZ,v.x>=f&&v.x<=m&&v.y>=p&&v.y<=g&&v!==s&&v!==r&&Ni(a,c,o,u,h,d,v.x,v.y)&&dt(v.prev,v,v.next)>=0))return!1;v=v.nextZ}for(;b&&b.z>=x;){if(b.x>=f&&b.x<=m&&b.y>=p&&b.y<=g&&b!==s&&b!==r&&Ni(a,c,o,u,h,d,b.x,b.y)&&dt(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;v&&v.z<=y;){if(v.x>=f&&v.x<=m&&v.y>=p&&v.y<=g&&v!==s&&v!==r&&Ni(a,c,o,u,h,d,v.x,v.y)&&dt(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function Rd(l,t,e){let i=l;do{const s=i.prev,n=i.next.next;!Zn(s,n)&&al(s,i,i.next,n)&&Bs(s,n)&&Bs(n,s)&&(t.push(s.i/e|0),t.push(i.i/e|0),t.push(n.i/e|0),zs(i),zs(i.next),i=l=n),i=i.next}while(i!==l);return li(i)}function Ed(l,t,e,i,s,n){let r=l;do{let a=r.next.next;for(;a!==r.prev;){if(r.i!==a.i&&Hd(r,a)){let o=ol(r,a);r=li(r,r.next),o=li(o,o.next),Cs(r,t,e,i,s,n,0),Cs(o,t,e,i,s,n,0);return}a=a.next}r=r.next}while(r!==l)}function Od(l,t,e,i){const s=[];let n,r,a,o,h;for(n=0,r=t.length;n=e.next.y&&e.next.y!==e.y){const d=e.x+(r-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(d<=n&&d>i&&(i=d,s=e.x=e.x&&e.x>=o&&n!==e.x&&Ni(rs.x||e.x===s.x&&Ud(s,e)))&&(s=e,c=u)),e=e.next;while(e!==a);return s}function Ud(l,t){return dt(l.prev,l,t.prev)<0&&dt(t.next,l,l.next)<0}function Vd(l,t,e,i){let s=l;do s.z===0&&(s.z=$r(s.x,s.y,t,e,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==l);s.prevZ.nextZ=null,s.prevZ=null,Gd(s)}function Gd(l){let t,e,i,s,n,r,a,o,h=1;do{for(e=l,l=null,n=null,r=0;e;){for(r++,i=e,a=0,t=0;t0||o>0&&i;)a!==0&&(o===0||!i||e.z<=i.z)?(s=e,e=e.nextZ,a--):(s=i,i=i.nextZ,o--),n?n.nextZ=s:l=s,s.prevZ=n,n=s;e=i}n.nextZ=null,h*=2}while(r>1);return l}function $r(l,t,e,i,s){return l=(l-e)*s|0,t=(t-i)*s|0,l=(l|l<<8)&16711935,l=(l|l<<4)&252645135,l=(l|l<<2)&858993459,l=(l|l<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,l|t<<1}function Wd(l){let t=l,e=l;do(t.x=(l-r)*(n-a)&&(l-r)*(i-a)>=(e-r)*(t-a)&&(e-r)*(n-a)>=(s-r)*(i-a)}function Hd(l,t){return l.next.i!==t.i&&l.prev.i!==t.i&&!qd(l,t)&&(Bs(l,t)&&Bs(t,l)&&Xd(l,t)&&(dt(l.prev,l,t.prev)||dt(l,t.prev,t))||Zn(l,t)&&dt(l.prev,l,l.next)>0&&dt(t.prev,t,t.next)>0)}function dt(l,t,e){return(t.y-l.y)*(e.x-t.x)-(t.x-l.x)*(e.y-t.y)}function Zn(l,t){return l.x===t.x&&l.y===t.y}function al(l,t,e,i){const s=xn(dt(l,t,e)),n=xn(dt(l,t,i)),r=xn(dt(e,i,l)),a=xn(dt(e,i,t));return!!(s!==n&&r!==a||s===0&&yn(l,e,t)||n===0&&yn(l,i,t)||r===0&&yn(e,l,i)||a===0&&yn(e,t,i))}function yn(l,t,e){return t.x<=Math.max(l.x,e.x)&&t.x>=Math.min(l.x,e.x)&&t.y<=Math.max(l.y,e.y)&&t.y>=Math.min(l.y,e.y)}function xn(l){return l>0?1:l<0?-1:0}function qd(l,t){let e=l;do{if(e.i!==l.i&&e.next.i!==l.i&&e.i!==t.i&&e.next.i!==t.i&&al(e,e.next,l,t))return!0;e=e.next}while(e!==l);return!1}function Bs(l,t){return dt(l.prev,l,l.next)<0?dt(l,t,l.next)>=0&&dt(l,l.prev,t)>=0:dt(l,t,l.prev)<0||dt(l,l.next,t)<0}function Xd(l,t){let e=l,i=!1;const s=(l.x+t.x)/2,n=(l.y+t.y)/2;do e.y>n!=e.next.y>n&&e.next.y!==e.y&&s<(e.next.x-e.x)*(n-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next;while(e!==l);return i}function ol(l,t){const e=new jr(l.i,l.x,l.y),i=new jr(t.i,t.x,t.y),s=l.next,n=t.prev;return l.next=t,t.prev=l,e.next=s,s.prev=e,i.next=e,e.prev=i,n.next=i,i.prev=n,i}function Wo(l,t,e,i){const s=new jr(l,t,e);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function zs(l){l.next.prev=l.prev,l.prev.next=l.next,l.prevZ&&(l.prevZ.nextZ=l.nextZ),l.nextZ&&(l.nextZ.prevZ=l.prevZ)}function jr(l,t,e){this.i=l,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Yd(l,t,e,i){let s=0;for(let n=t,r=e-i;n2&&l[t-1].equals(l[0])&&l.pop()}function qo(l,t){for(let e=0;eNumber.EPSILON){const Vt=Math.sqrt(ie),Bt=Math.sqrt(K*K+lt*lt),fi=E.x-O/Vt,Ji=E.y+nt/Vt,tr=R.x-lt/Bt,Rs=R.y+K/Bt,Es=((tr-fi)*lt-(Rs-Ji)*K)/(nt*lt-O*K);W=fi+nt*Es-k.x,N=Ji+O*Es-k.y;const Zi=W*W+N*N;if(Zi<=2)return new B(W,N);et=Math.sqrt(Zi/2)}else{let Vt=!1;nt>Number.EPSILON?K>Number.EPSILON&&(Vt=!0):nt<-Number.EPSILON?K<-Number.EPSILON&&(Vt=!0):Math.sign(O)===Math.sign(lt)&&(Vt=!0),Vt?(W=-O,N=nt,et=Math.sqrt(ie)):(W=nt,N=O,et=Math.sqrt(ie/2))}return new B(W/et,N/et)}const tt=[];for(let k=0,E=L.length,R=E-1,W=k+1;k=0;k--){const E=k/g,R=f*Math.cos(E*Math.PI/2),W=p*Math.sin(E*Math.PI/2)+m;for(let N=0,et=L.length;N=0;){const W=R;let N=R-1;N<0&&(N=k.length-1);for(let et=0,nt=c+g*2;et0)&&f.push(b,v,M),(x!==i-1||o0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get dispersion(){return this._dispersion}set dispersion(t){this._dispersion>0!=t>0&&this.version++,this._dispersion=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.dispersion=t.dispersion,this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class ef extends Nt{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new G(16777215),this.specular=new G(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new G(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Hi,this.normalScale=new B(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new xe,this.combine=ia,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class sf extends Nt{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new G(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new G(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Hi,this.normalScale=new B(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}class nf extends Nt{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Hi,this.normalScale=new B(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}class rf extends Nt{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new G(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new G(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Hi,this.normalScale=new B(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new xe,this.combine=ia,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}class af extends Nt{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=fu,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class of extends Nt{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}class hf extends Nt{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new G(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Hi,this.normalScale=new B(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}}class lf extends Xt{constructor(t){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}function ri(l,t,e){return!l||!e&&l.constructor===t?l:typeof t.BYTES_PER_ELEMENT=="number"?new t(l):Array.prototype.slice.call(l)}function hl(l){return ArrayBuffer.isView(l)&&!(l instanceof DataView)}function ll(l){function t(s,n){return l[s]-l[n]}const e=l.length,i=new Array(e);for(let s=0;s!==e;++s)i[s]=s;return i.sort(t),i}function Kr(l,t,e){const i=l.length,s=new l.constructor(i);for(let n=0,r=0;r!==i;++n){const a=e[n]*t;for(let o=0;o!==t;++o)s[r++]=l[a+o]}return s}function Ra(l,t,e,i){let s=1,n=l[0];for(;n!==void 0&&n[i]===void 0;)n=l[s++];if(n===void 0)return;let r=n[i];if(r!==void 0)if(Array.isArray(r))do r=n[i],r!==void 0&&(t.push(n.time),e.push.apply(e,r)),n=l[s++];while(n!==void 0);else if(r.toArray!==void 0)do r=n[i],r!==void 0&&(t.push(n.time),r.toArray(e,e.length)),n=l[s++];while(n!==void 0);else do r=n[i],r!==void 0&&(t.push(n.time),e.push(r)),n=l[s++];while(n!==void 0)}function cf(l,t,e,i,s=30){const n=l.clone();n.name=t;const r=[];for(let o=0;o=i)){u.push(h.times[f]);for(let m=0;mn.tracks[o].times[0]&&(a=n.tracks[o].times[0]);for(let o=0;o=a.times[p]){const x=p*u+c,y=x+u-c;m=a.values.slice(x,y)}else{const x=a.createInterpolant(),y=c,b=u-c;x.evaluate(n),m=x.resultBuffer.slice(y,b)}o==="quaternion"&&new te().fromArray(m).normalize().conjugate().toArray(m);const g=h.times.length;for(let x=0;x=n)){const a=e[1];t=n)break e}r=i,i=0;break i}break t}for(;i>>1;te;)--r;if(++r,n!==0||r!==s){n>=r&&(r=Math.max(r,1),n=r-1);const a=this.getValueSize();this.times=i.slice(n,r),this.values=this.values.slice(n*a,r*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const i=this.times,s=this.values,n=i.length;n===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let r=null;for(let a=0;a!==n;a++){const o=i[a];if(typeof o=="number"&&isNaN(o)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,o),t=!1;break}if(r!==null&&r>o){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,o,r),t=!1;break}r=o}if(s!==void 0&&hl(s))for(let a=0,o=s.length;a!==o;++a){const h=s[a];if(isNaN(h)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,h),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),i=this.getValueSize(),s=this.getInterpolation()===nr,n=t.length-1;let r=1;for(let a=1;a0){t[r]=t[n];for(let a=n*i,o=r*i,h=0;h!==i;++h)e[o+h]=e[a+h];++r}return r!==t.length?(this.times=t.slice(0,r),this.values=e.slice(0,r*i)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),i=this.constructor,s=new i(this.name,t,e);return s.createInterpolant=this.createInterpolant,s}}we.prototype.TimeBufferType=Float32Array;we.prototype.ValueBufferType=Float32Array;we.prototype.DefaultInterpolation=Jr;class Xi extends we{constructor(t,e,i){super(t,e,i)}}Xi.prototype.ValueTypeName="bool";Xi.prototype.ValueBufferType=Array;Xi.prototype.DefaultInterpolation=zn;Xi.prototype.InterpolantFactoryMethodLinear=void 0;Xi.prototype.InterpolantFactoryMethodSmooth=void 0;class ul extends we{}ul.prototype.ValueTypeName="color";class Nn extends we{}Nn.prototype.ValueTypeName="number";class pf extends jn{constructor(t,e,i,s){super(t,e,i,s)}interpolate_(t,e,i,s){const n=this.resultBuffer,r=this.sampleValues,a=this.valueSize,o=(i-e)/(s-e);let h=t*a;for(let c=h+a;h!==c;h+=4)te.slerpFlat(n,0,r,h-a,r,h,o);return n}}class Kn extends we{InterpolantFactoryMethodLinear(t){return new pf(this.times,this.values,this.getValueSize(),t)}}Kn.prototype.ValueTypeName="quaternion";Kn.prototype.InterpolantFactoryMethodSmooth=void 0;class Yi extends we{constructor(t,e,i){super(t,e,i)}}Yi.prototype.ValueTypeName="string";Yi.prototype.ValueBufferType=Array;Yi.prototype.DefaultInterpolation=zn;Yi.prototype.InterpolantFactoryMethodLinear=void 0;Yi.prototype.InterpolantFactoryMethodSmooth=void 0;class Un extends we{}Un.prototype.ValueTypeName="vector";class Vn{constructor(t="",e=-1,i=[],s=aa){this.name=t,this.tracks=i,this.duration=e,this.blendMode=s,this.uuid=Qt(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],i=t.tracks,s=1/(t.fps||1);for(let r=0,a=i.length;r!==a;++r)e.push(gf(i[r]).scale(s));const n=new this(t.name,t.duration,e,t.blendMode);return n.uuid=t.uuid,n}static toJSON(t){const e=[],i=t.tracks,s={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let n=0,r=i.length;n!==r;++n)e.push(we.toJSON(i[n]));return s}static CreateFromMorphTargetSequence(t,e,i,s){const n=e.length,r=[];for(let a=0;a1){const u=c[1];let d=s[u];d||(s[u]=d=[]),d.push(h)}}const r=[];for(const a in s)r.push(this.CreateFromMorphTargetSequence(a,s[a],e,i));return r}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(u,d,f,p,m){if(f.length!==0){const g=[],x=[];Ra(f,g,x,p),g.length!==0&&m.push(new u(d,g,x))}},s=[],n=t.name||"default",r=t.fps||30,a=t.blendMode;let o=t.length||-1;const h=t.hierarchy||[];for(let u=0;u{e&&e(n),this.manager.itemEnd(t)},0),n;if(Te[t]!==void 0){Te[t].push({onLoad:e,onProgress:i,onError:s});return}Te[t]=[],Te[t].push({onLoad:e,onProgress:i,onError:s});const r=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(r).then(h=>{if(h.status===200||h.status===0){if(h.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||h.body===void 0||h.body.getReader===void 0)return h;const c=Te[t],u=h.body.getReader(),d=h.headers.get("X-File-Size")||h.headers.get("Content-Length"),f=d?parseInt(d):0,p=f!==0;let m=0;const g=new ReadableStream({start(x){y();function y(){u.read().then(({done:b,value:v})=>{if(b)x.close();else{m+=v.byteLength;const _=new ProgressEvent("progress",{lengthComputable:p,loaded:m,total:f});for(let M=0,A=c.length;M{x.error(b)})}}});return new Response(g)}else throw new xf(`fetch for "${h.url}" responded with ${h.status}: ${h.statusText}`,h)}).then(h=>{switch(o){case"arraybuffer":return h.arrayBuffer();case"blob":return h.blob();case"document":return h.text().then(c=>new DOMParser().parseFromString(c,a));case"json":return h.json();default:if(a===void 0)return h.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),d=u&&u[1]?u[1].toLowerCase():void 0,f=new TextDecoder(d);return h.arrayBuffer().then(p=>f.decode(p))}}}).then(h=>{He.add(t,h);const c=Te[t];delete Te[t];for(let u=0,d=c.length;u{const c=Te[t];if(c===void 0)throw this.manager.itemError(t),h;delete Te[t];for(let u=0,d=c.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class Ay extends ee{constructor(t){super(t)}load(t,e,i,s){const n=this,r=new qe(this.manager);r.setPath(this.path),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(t,function(a){try{e(n.parse(JSON.parse(a)))}catch(o){s?s(o):console.error(o),n.manager.itemError(t)}},i,s)}parse(t){const e=[];for(let i=0;i0:s.vertexColors=t.vertexColors),t.uniforms!==void 0)for(const n in t.uniforms){const r=t.uniforms[n];switch(s.uniforms[n]={},r.type){case"t":s.uniforms[n].value=i(r.value);break;case"c":s.uniforms[n].value=new G().setHex(r.value);break;case"v2":s.uniforms[n].value=new B().fromArray(r.value);break;case"v3":s.uniforms[n].value=new w().fromArray(r.value);break;case"v4":s.uniforms[n].value=new It().fromArray(r.value);break;case"m3":s.uniforms[n].value=new be().fromArray(r.value);break;case"m4":s.uniforms[n].value=new Z().fromArray(r.value);break;default:s.uniforms[n].value=r.value}}if(t.defines!==void 0&&(s.defines=t.defines),t.vertexShader!==void 0&&(s.vertexShader=t.vertexShader),t.fragmentShader!==void 0&&(s.fragmentShader=t.fragmentShader),t.glslVersion!==void 0&&(s.glslVersion=t.glslVersion),t.extensions!==void 0)for(const n in t.extensions)s.extensions[n]=t.extensions[n];if(t.lights!==void 0&&(s.lights=t.lights),t.clipping!==void 0&&(s.clipping=t.clipping),t.size!==void 0&&(s.size=t.size),t.sizeAttenuation!==void 0&&(s.sizeAttenuation=t.sizeAttenuation),t.map!==void 0&&(s.map=i(t.map)),t.matcap!==void 0&&(s.matcap=i(t.matcap)),t.alphaMap!==void 0&&(s.alphaMap=i(t.alphaMap)),t.bumpMap!==void 0&&(s.bumpMap=i(t.bumpMap)),t.bumpScale!==void 0&&(s.bumpScale=t.bumpScale),t.normalMap!==void 0&&(s.normalMap=i(t.normalMap)),t.normalMapType!==void 0&&(s.normalMapType=t.normalMapType),t.normalScale!==void 0){let n=t.normalScale;Array.isArray(n)===!1&&(n=[n,n]),s.normalScale=new B().fromArray(n)}return t.displacementMap!==void 0&&(s.displacementMap=i(t.displacementMap)),t.displacementScale!==void 0&&(s.displacementScale=t.displacementScale),t.displacementBias!==void 0&&(s.displacementBias=t.displacementBias),t.roughnessMap!==void 0&&(s.roughnessMap=i(t.roughnessMap)),t.metalnessMap!==void 0&&(s.metalnessMap=i(t.metalnessMap)),t.emissiveMap!==void 0&&(s.emissiveMap=i(t.emissiveMap)),t.emissiveIntensity!==void 0&&(s.emissiveIntensity=t.emissiveIntensity),t.specularMap!==void 0&&(s.specularMap=i(t.specularMap)),t.specularIntensityMap!==void 0&&(s.specularIntensityMap=i(t.specularIntensityMap)),t.specularColorMap!==void 0&&(s.specularColorMap=i(t.specularColorMap)),t.envMap!==void 0&&(s.envMap=i(t.envMap)),t.envMapRotation!==void 0&&s.envMapRotation.fromArray(t.envMapRotation),t.envMapIntensity!==void 0&&(s.envMapIntensity=t.envMapIntensity),t.reflectivity!==void 0&&(s.reflectivity=t.reflectivity),t.refractionRatio!==void 0&&(s.refractionRatio=t.refractionRatio),t.lightMap!==void 0&&(s.lightMap=i(t.lightMap)),t.lightMapIntensity!==void 0&&(s.lightMapIntensity=t.lightMapIntensity),t.aoMap!==void 0&&(s.aoMap=i(t.aoMap)),t.aoMapIntensity!==void 0&&(s.aoMapIntensity=t.aoMapIntensity),t.gradientMap!==void 0&&(s.gradientMap=i(t.gradientMap)),t.clearcoatMap!==void 0&&(s.clearcoatMap=i(t.clearcoatMap)),t.clearcoatRoughnessMap!==void 0&&(s.clearcoatRoughnessMap=i(t.clearcoatRoughnessMap)),t.clearcoatNormalMap!==void 0&&(s.clearcoatNormalMap=i(t.clearcoatNormalMap)),t.clearcoatNormalScale!==void 0&&(s.clearcoatNormalScale=new B().fromArray(t.clearcoatNormalScale)),t.iridescenceMap!==void 0&&(s.iridescenceMap=i(t.iridescenceMap)),t.iridescenceThicknessMap!==void 0&&(s.iridescenceThicknessMap=i(t.iridescenceThicknessMap)),t.transmissionMap!==void 0&&(s.transmissionMap=i(t.transmissionMap)),t.thicknessMap!==void 0&&(s.thicknessMap=i(t.thicknessMap)),t.anisotropyMap!==void 0&&(s.anisotropyMap=i(t.anisotropyMap)),t.sheenColorMap!==void 0&&(s.sheenColorMap=i(t.sheenColorMap)),t.sheenRoughnessMap!==void 0&&(s.sheenRoughnessMap=i(t.sheenRoughnessMap)),s}setTextures(t){return this.textures=t,this}createMaterialFromType(t){return Oa.createMaterialFromType(t)}static createMaterialFromType(t){const e={ShadowMaterial:Kd,SpriteMaterial:_s,RawShaderMaterial:Qd,ShaderMaterial:ca,PointsMaterial:jh,MeshPhysicalMaterial:tf,MeshStandardMaterial:Fa,MeshPhongMaterial:ef,MeshToonMaterial:sf,MeshNormalMaterial:nf,MeshLambertMaterial:rf,MeshDepthMaterial:af,MeshDistanceMaterial:of,MeshBasicMaterial:qi,MeshMatcapMaterial:hf,LineDashedMaterial:lf,LineBasicMaterial:Xt,Material:Nt};return new e[t]}}class jo{static decodeText(t){if(console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."),typeof TextDecoder<"u")return new TextDecoder().decode(t);let e="";for(let i=0,s=t.length;i0){const o=new dl(e);n=new Gn(o),n.setCrossOrigin(this.crossOrigin);for(let h=0,c=t.length;h0){s=new Gn(this.manager),s.setCrossOrigin(this.crossOrigin);for(let r=0,a=t.length;r{const g=new Ht;g.min.fromArray(m.boxMin),g.max.fromArray(m.boxMax);const x=new Lt;return x.radius=m.sphereRadius,x.center.fromArray(m.sphereCenter),{boxInitialized:m.boxInitialized,box:g,sphereInitialized:m.sphereInitialized,sphere:x}}),r._maxInstanceCount=t.maxInstanceCount,r._maxVertexCount=t.maxVertexCount,r._maxIndexCount=t.maxIndexCount,r._geometryInitialized=t.geometryInitialized,r._geometryCount=t.geometryCount,r._matricesTexture=h(t.matricesTexture.uuid),t.colorsTexture!==void 0&&(r._colorsTexture=h(t.colorsTexture.uuid));break;case"LOD":r=new ed;break;case"Line":r=new hi(a(t.geometry),o(t.material));break;case"LineLoop":r=new gd(a(t.geometry),o(t.material));break;case"LineSegments":r=new Re(a(t.geometry),o(t.material));break;case"PointCloud":case"Points":r=new yd(a(t.geometry),o(t.material));break;case"Sprite":r=new bs(o(t.material));break;case"Group":r=new Kh;break;case"Bone":r=new Zh;break;default:r=new st}if(r.uuid=t.uuid,t.name!==void 0&&(r.name=t.name),t.matrix!==void 0?(r.matrix.fromArray(t.matrix),t.matrixAutoUpdate!==void 0&&(r.matrixAutoUpdate=t.matrixAutoUpdate),r.matrixAutoUpdate&&r.matrix.decompose(r.position,r.quaternion,r.scale)):(t.position!==void 0&&r.position.fromArray(t.position),t.rotation!==void 0&&r.rotation.fromArray(t.rotation),t.quaternion!==void 0&&r.quaternion.fromArray(t.quaternion),t.scale!==void 0&&r.scale.fromArray(t.scale)),t.up!==void 0&&r.up.fromArray(t.up),t.castShadow!==void 0&&(r.castShadow=t.castShadow),t.receiveShadow!==void 0&&(r.receiveShadow=t.receiveShadow),t.shadow&&(t.shadow.intensity!==void 0&&(r.shadow.intensity=t.shadow.intensity),t.shadow.bias!==void 0&&(r.shadow.bias=t.shadow.bias),t.shadow.normalBias!==void 0&&(r.shadow.normalBias=t.shadow.normalBias),t.shadow.radius!==void 0&&(r.shadow.radius=t.shadow.radius),t.shadow.mapSize!==void 0&&r.shadow.mapSize.fromArray(t.shadow.mapSize),t.shadow.camera!==void 0&&(r.shadow.camera=this.parseObject(t.shadow.camera))),t.visible!==void 0&&(r.visible=t.visible),t.frustumCulled!==void 0&&(r.frustumCulled=t.frustumCulled),t.renderOrder!==void 0&&(r.renderOrder=t.renderOrder),t.userData!==void 0&&(r.userData=t.userData),t.layers!==void 0&&(r.layers.mask=t.layers),t.children!==void 0){const d=t.children;for(let f=0;f"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(t){return this.options=t,this}load(t,e,i,s){t===void 0&&(t=""),this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const n=this,r=He.get(t);if(r!==void 0){if(n.manager.itemStart(t),r.then){r.then(h=>{e&&e(h),n.manager.itemEnd(t)}).catch(h=>{s&&s(h)});return}return setTimeout(function(){e&&e(r),n.manager.itemEnd(t)},0),r}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const o=fetch(t,a).then(function(h){return h.blob()}).then(function(h){return createImageBitmap(h,Object.assign(n.options,{colorSpaceConversion:"none"}))}).then(function(h){return He.add(t,h),e&&e(h),n.manager.itemEnd(t),h}).catch(function(h){s&&s(h),He.remove(t),n.manager.itemError(t),n.manager.itemEnd(t)});He.add(t,o),n.manager.itemStart(t)}}let bn;class pl{static getContext(){return bn===void 0&&(bn=new(window.AudioContext||window.webkitAudioContext)),bn}static setContext(t){bn=t}}class Py extends ee{constructor(t){super(t)}load(t,e,i,s){const n=this,r=new qe(this.manager);r.setResponseType("arraybuffer"),r.setPath(this.path),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(t,function(o){try{const h=o.slice(0);pl.getContext().decodeAudioData(h,function(u){e(u)}).catch(a)}catch(h){a(h)}},i,s);function a(o){s?s(o):console.error(o),n.manager.itemError(t)}}}const th=new Z,eh=new Z,ti=new Z;class Fy{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new re,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new re,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(t){const e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep,ti.copy(t.projectionMatrix);const s=e.eyeSep/2,n=s*e.near/e.focus,r=e.near*Math.tan(ai*e.fov*.5)/e.zoom;let a,o;eh.elements[12]=-s,th.elements[12]=s,a=-r*e.aspect+n,o=r*e.aspect+n,ti.elements[0]=2*e.near/(o-a),ti.elements[8]=(o+a)/(o-a),this.cameraL.projectionMatrix.copy(ti),a=-r*e.aspect-n,o=r*e.aspect-n,ti.elements[0]=2*e.near/(o-a),ti.elements[8]=(o+a)/(o-a),this.cameraR.projectionMatrix.copy(ti)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(eh),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(th)}}class Ry extends re{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}}class Ff{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=ih(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=ih();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function ih(){return performance.now()}const ei=new w,sh=new te,Rf=new w,ii=new w;class Ey extends st{constructor(){super(),this.type="AudioListener",this.context=pl.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Ff}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(ei,sh,Rf),ii.set(0,0,-1).applyQuaternion(sh),e.positionX){const s=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(ei.x,s),e.positionY.linearRampToValueAtTime(ei.y,s),e.positionZ.linearRampToValueAtTime(ei.z,s),e.forwardX.linearRampToValueAtTime(ii.x,s),e.forwardY.linearRampToValueAtTime(ii.y,s),e.forwardZ.linearRampToValueAtTime(ii.z,s),e.upX.linearRampToValueAtTime(i.x,s),e.upY.linearRampToValueAtTime(i.y,s),e.upZ.linearRampToValueAtTime(i.z,s)}else e.setPosition(ei.x,ei.y,ei.z),e.setOrientation(ii.x,ii.y,ii.z,i.x,i.y,i.z)}}class Ef extends st{constructor(t){super(),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this}play(t=0){if(this.isPlaying===!0){console.warn("THREE.Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(t=0){if(this.hasPlaybackControl===!1){console.warn("THREE.Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(this.context.currentTime+t),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t0&&this._mixBufferRegionAdditive(i,s,this._addIndex*e,1,e);for(let o=e,h=e+e;o!==h;++o)if(i[o]!==i[o+e]){a.setValue(i,s);break}}saveOriginalState(){const t=this.binding,e=this.buffer,i=this.valueSize,s=i*this._origIndex;t.getValue(e,s);for(let n=i,r=s;n!==r;++n)e[n]=e[s+n%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=this.valueSize*3;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let i=t;i=.5)for(let r=0;r!==n;++r)t[e+r]=t[i+r]}_slerp(t,e,i,s){te.slerpFlat(t,e,t,e,t,i,s)}_slerpAdditive(t,e,i,s,n){const r=this._workIndex*n;te.multiplyQuaternionsFlat(t,r,t,e,t,i),te.slerpFlat(t,e,t,e,t,r,s)}_lerp(t,e,i,s,n){const r=1-s;for(let a=0;a!==n;++a){const o=e+a;t[o]=t[o]*r+t[i+a]*s}}_lerpAdditive(t,e,i,s,n){for(let r=0;r!==n;++r){const a=e+r;t[a]=t[a]+t[i+r]*s}}}const Da="\\[\\]\\.:\\/",Lf=new RegExp("["+Da+"]","g"),La="[^"+Da+"]",Nf="[^"+Da.replace("\\.","")+"]",Uf=/((?:WC+[\/:])*)/.source.replace("WC",La),Vf=/(WCOD+)?/.source.replace("WCOD",Nf),Gf=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",La),Wf=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",La),Hf=new RegExp("^"+Uf+Vf+Gf+Wf+"$"),qf=["material","materials","bones","map"];class Xf{constructor(t,e,i){const s=i||it.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,s)}getValue(t,e){this.bind();const i=this._targetGroup.nCachedObjects_,s=this._bindings[i];s!==void 0&&s.getValue(t,e)}setValue(t,e){const i=this._bindings;for(let s=this._targetGroup.nCachedObjects_,n=i.length;s!==n;++s)i[s].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].unbind()}}class it{constructor(t,e,i){this.path=e,this.parsedPath=i||it.parseTrackName(e),this.node=it.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,i){return t&&t.isAnimationObjectGroup?new it.Composite(t,e,i):new it(t,e,i)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Lf,"")}static parseTrackName(t){const e=Hf.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const i={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},s=i.nodeName&&i.nodeName.lastIndexOf(".");if(s!==void 0&&s!==-1){const n=i.nodeName.substring(s+1);qf.indexOf(n)!==-1&&(i.nodeName=i.nodeName.substring(0,s),i.objectName=n)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return i}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const i=t.skeleton.getBoneByName(e);if(i!==void 0)return i}if(t.children){const i=function(n){for(let r=0;r=n){const u=n++,d=t[u];e[d.uuid]=c,t[c]=d,e[h]=u,t[u]=o;for(let f=0,p=s;f!==p;++f){const m=i[f],g=m[u],x=m[c];m[c]=g,m[u]=x}}}this.nCachedObjects_=n}uncache(){const t=this._objects,e=this._indicesByUUID,i=this._bindings,s=i.length;let n=this.nCachedObjects_,r=t.length;for(let a=0,o=arguments.length;a!==o;++a){const h=arguments[a],c=h.uuid,u=e[c];if(u!==void 0)if(delete e[c],u0&&(e[f.uuid]=u),t[u]=f,t.pop();for(let p=0,m=s;p!==m;++p){const g=i[p];g[u]=g[d],g.pop()}}}this.nCachedObjects_=n}subscribe_(t,e){const i=this._bindingsIndicesByPath;let s=i[t];const n=this._bindings;if(s!==void 0)return n[s];const r=this._paths,a=this._parsedPaths,o=this._objects,h=o.length,c=this.nCachedObjects_,u=new Array(h);s=n.length,i[t]=s,r.push(t),a.push(e),n.push(u);for(let d=c,f=o.length;d!==f;++d){const p=o[d];u[d]=new it(p,t,e)}return u}unsubscribe_(t){const e=this._bindingsIndicesByPath,i=e[t];if(i!==void 0){const s=this._paths,n=this._parsedPaths,r=this._bindings,a=r.length-1,o=r[a],h=t[a];e[h]=i,r[i]=o,r.pop(),n[i]=n[a],n.pop(),s[i]=s[a],s.pop()}}}class Yf{constructor(t,e,i=null,s=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=i,this.blendMode=s;const n=e.tracks,r=n.length,a=new Array(r),o={endingStart:Ei,endingEnd:Ei};for(let h=0;h!==r;++h){const c=n[h].createInterpolant(null);a[h]=c,c.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(r),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=uu,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,i){if(t.fadeOut(e),this.fadeIn(e),i){const s=this._clip.duration,n=t._clip.duration,r=n/s,a=s/n;t.warp(1,r,e),this.warp(a,1,e)}return this}crossFadeTo(t,e,i){return t.crossFadeFrom(this,e,i)}stopFading(){const t=this._weightInterpolant;return t!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,i){const s=this._mixer,n=s.time,r=this.timeScale;let a=this._timeScaleInterpolant;a===null&&(a=s._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,h=a.sampleValues;return o[0]=n,o[1]=n+i,h[0]=t/r,h[1]=e/r,this}stopWarping(){const t=this._timeScaleInterpolant;return t!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,i,s){if(!this.enabled){this._updateWeight(t);return}const n=this._startTime;if(n!==null){const o=(t-n)*i;o<0||i===0?e=0:(this._startTime=null,e=i*o)}e*=this._updateTimeScale(t);const r=this._updateTime(e),a=this._updateWeight(t);if(a>0){const o=this._interpolants,h=this._propertyBindings;switch(this.blendMode){case Gh:for(let c=0,u=o.length;c!==u;++c)o[c].evaluate(r),h[c].accumulateAdditive(a);break;case aa:default:for(let c=0,u=o.length;c!==u;++c)o[c].evaluate(r),h[c].accumulate(s,a)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const i=this._weightInterpolant;if(i!==null){const s=i.evaluate(t)[0];e*=s,t>i.parameterPositions[1]&&(this.stopFading(),s===0&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const i=this._timeScaleInterpolant;if(i!==null){const s=i.evaluate(t)[0];e*=s,t>i.parameterPositions[1]&&(this.stopWarping(),e===0?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,i=this.loop;let s=this.time+t,n=this._loopCount;const r=i===du;if(t===0)return n===-1?s:r&&(n&1)===1?e-s:s;if(i===cu){n===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(s>=e)s=e;else if(s<0)s=0;else{this.time=s;break t}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=s,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(n===-1&&(t>=0?(n=0,this._setEndings(!0,this.repetitions===0,r)):this._setEndings(this.repetitions===0,!0,r)),s>=e||s<0){const a=Math.floor(s/e);s-=e*a,n+=Math.abs(a);const o=this.repetitions-n;if(o<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,s=t>0?e:0,this.time=s,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(o===1){const h=t<0;this._setEndings(h,!h,r)}else this._setEndings(!1,!1,r);this._loopCount=n,this.time=s,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:a})}}else this.time=s;if(r&&(n&1)===1)return e-s}return s}_setEndings(t,e,i){const s=this._interpolantSettings;i?(s.endingStart=Oi,s.endingEnd=Oi):(t?s.endingStart=this.zeroSlopeAtStart?Oi:Ei:s.endingStart=kn,e?s.endingEnd=this.zeroSlopeAtEnd?Oi:Ei:s.endingEnd=kn)}_scheduleFading(t,e,i){const s=this._mixer,n=s.time;let r=this._weightInterpolant;r===null&&(r=s._lendControlInterpolant(),this._weightInterpolant=r);const a=r.parameterPositions,o=r.sampleValues;return a[0]=n,o[0]=e,a[1]=n+t,o[1]=i,this}}const Jf=new Float32Array(1);class Ny extends Xe{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const i=t._localRoot||this._root,s=t._clip.tracks,n=s.length,r=t._propertyBindings,a=t._interpolants,o=i.uuid,h=this._bindingsByRootAndName;let c=h[o];c===void 0&&(c={},h[o]=c);for(let u=0;u!==n;++u){const d=s[u],f=d.name;let p=c[f];if(p!==void 0)++p.referenceCount,r[u]=p;else{if(p=r[u],p!==void 0){p._cacheIndex===null&&(++p.referenceCount,this._addInactiveBinding(p,o,f));continue}const m=e&&e._propertyBindings[u].binding.parsedPath;p=new Df(it.create(i,f,m),d.ValueTypeName,d.getValueSize()),++p.referenceCount,this._addInactiveBinding(p,o,f),r[u]=p}a[u].resultBuffer=p.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(t._cacheIndex===null){const i=(t._localRoot||this._root).uuid,s=t._clip.uuid,n=this._actionsByClip[s];this._bindAction(t,n&&n.knownActions[0]),this._addInactiveAction(t,s,i)}const e=t._propertyBindings;for(let i=0,s=e.length;i!==s;++i){const n=e[i];n.useCount++===0&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let i=0,s=e.length;i!==s;++i){const n=e[i];--n.useCount===0&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return e!==null&&e=0;--i)t[i].stop();return this}update(t){t*=this.timeScale;const e=this._actions,i=this._nActiveActions,s=this.time+=t,n=Math.sign(t),r=this._accuIndex^=1;for(let h=0;h!==i;++h)e[h]._update(s,t,n,r);const a=this._bindings,o=this._nActiveBindings;for(let h=0;h!==o;++h)a[h].apply(r);return this}setTime(t){this.time=0;for(let e=0;e=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,oh).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const hh=new w,vn=new w;class Zy{constructor(t=new w,e=new w){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){hh.subVectors(t,this.start),vn.subVectors(this.end,this.start);const i=vn.dot(vn);let n=vn.dot(hh)/i;return e&&(n=X(n,0,1)),n}closestPointToPoint(t,e,i){const s=this.closestPointToPointParameter(t,e);return this.delta(i).multiplyScalar(s).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const lh=new w;class $y extends st{constructor(t,e){super(),this.light=t,this.matrixAutoUpdate=!1,this.color=e,this.type="SpotLightHelper";const i=new j,s=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let r=0,a=1,o=32;r1)for(let u=0;u.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{ph.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(ph,e)}}setLength(t,e=t*.2,i=e*.2){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class hx extends Re{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],s=new j;s.setAttribute("position",new D(e,3)),s.setAttribute("color",new D(i,3));const n=new Xt({vertexColors:!0,toneMapped:!1});super(s,n),this.type="AxesHelper"}setColors(t,e,i){const s=new G,n=this.geometry.attributes.color.array;return s.set(t),s.toArray(n,0),s.toArray(n,3),s.set(e),s.toArray(n,6),s.toArray(n,9),s.set(i),s.toArray(n,12),s.toArray(n,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class lx{constructor(){this.type="ShapePath",this.color=new G,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new Ln,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,i,s){return this.currentPath.quadraticCurveTo(t,e,i,s),this}bezierCurveTo(t,e,i,s,n,r){return this.currentPath.bezierCurveTo(t,e,i,s,n,r),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function e(x){const y=[];for(let b=0,v=x.length;bNumber.EPSILON){if(C<0&&(A=y[M],T=-T,S=y[_],C=-C),x.yS.y)continue;if(x.y===A.y){if(x.x===A.x)return!0}else{const P=C*(x.x-A.x)-T*(x.y-A.y);if(P===0)return!0;if(P<0)continue;v=!v}}else{if(x.y!==A.y)continue;if(S.x<=x.x&&x.x<=A.x||A.x<=x.x&&x.x<=S.x)return!0}}return v}const s=Fe.isClockWise,n=this.subPaths;if(n.length===0)return[];let r,a,o;const h=[];if(n.length===1)return a=n[0],o=new Vi,o.curves=a.curves,h.push(o),h;let c=!s(n[0].getPoints());c=t?!c:c;const u=[],d=[];let f=[],p=0,m;d[p]=void 0,f[p]=[];for(let x=0,y=n.length;x1){let x=!1,y=0;for(let b=0,v=d.length;b0&&x===!1&&(f=u)}let g;for(let x=0,y=d.length;xt?(l.repeat.x=1,l.repeat.y=e/t,l.offset.x=0,l.offset.y=(1-l.repeat.y)/2):(l.repeat.x=t/e,l.repeat.y=1,l.offset.x=(1-l.repeat.x)/2,l.offset.y=0),l}function Kf(l,t){const e=l.image&&l.image.width?l.image.width/l.image.height:1;return e>t?(l.repeat.x=t/e,l.repeat.y=1,l.offset.x=(1-l.repeat.x)/2,l.offset.y=0):(l.repeat.x=1,l.repeat.y=e/t,l.offset.x=0,l.offset.y=(1-l.repeat.y)/2),l}function Qf(l){return l.repeat.x=1,l.repeat.y=1,l.offset.x=0,l.offset.y=0,l}function tp(l,t,e,i){const s=ep(i);switch(e){case Ac:return l*t;case Tc:return l*t;case Cc:return l*t*2;case Uh:return l*t/s.components*s.byteLength;case Vh:return l*t/s.components*s.byteLength;case Bc:return l*t*2/s.components*s.byteLength;case zc:return l*t*2/s.components*s.byteLength;case Ic:return l*t*3/s.components*s.byteLength;case As:return l*t*4/s.components*s.byteLength;case kc:return l*t*4/s.components*s.byteLength;case Pc:case Fc:return Math.floor((l+3)/4)*Math.floor((t+3)/4)*8;case Rc:case Ec:return Math.floor((l+3)/4)*Math.floor((t+3)/4)*16;case Dc:case Nc:return Math.max(l,16)*Math.max(t,8)/4;case Oc:case Lc:return Math.max(l,8)*Math.max(t,8)/2;case Uc:case Vc:return Math.floor((l+3)/4)*Math.floor((t+3)/4)*8;case Gc:return Math.floor((l+3)/4)*Math.floor((t+3)/4)*16;case Wc:return Math.floor((l+3)/4)*Math.floor((t+3)/4)*16;case Hc:return Math.floor((l+4)/5)*Math.floor((t+3)/4)*16;case qc:return Math.floor((l+4)/5)*Math.floor((t+4)/5)*16;case Xc:return Math.floor((l+5)/6)*Math.floor((t+4)/5)*16;case Yc:return Math.floor((l+5)/6)*Math.floor((t+5)/6)*16;case Jc:return Math.floor((l+7)/8)*Math.floor((t+4)/5)*16;case Zc:return Math.floor((l+7)/8)*Math.floor((t+5)/6)*16;case $c:return Math.floor((l+7)/8)*Math.floor((t+7)/8)*16;case jc:return Math.floor((l+9)/10)*Math.floor((t+4)/5)*16;case Kc:return Math.floor((l+9)/10)*Math.floor((t+5)/6)*16;case Qc:return Math.floor((l+9)/10)*Math.floor((t+7)/8)*16;case tu:return Math.floor((l+9)/10)*Math.floor((t+9)/10)*16;case eu:return Math.floor((l+11)/12)*Math.floor((t+9)/10)*16;case iu:return Math.floor((l+11)/12)*Math.floor((t+11)/12)*16;case su:case nu:case ru:return Math.ceil(l/4)*Math.ceil(t/4)*16;case au:case ou:return Math.ceil(l/4)*Math.ceil(t/4)*8;case hu:case lu:return Math.ceil(l/4)*Math.ceil(t/4)*16}throw new Error(`Unable to determine texture byte length for ${e} format.`)}function ep(l){switch(l){case Nh:case gc:return{byteLength:1,components:1};case xc:case yc:case vc:return{byteLength:2,components:1};case wc:case _c:return{byteLength:2,components:4};case ra:case bc:case Gi:return{byteLength:4,components:1};case Sc:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${l}.`)}const ux={contain:jf,cover:Kf,fill:Qf,getByteLength:tp};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:Dh}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=Dh);function xl(l){return l>=.7?"active":l>=.4?"dormant":l>=.1?"silent":"unavailable"}const bl={active:"#10b981",dormant:"#f59e0b",silent:"#8b5cf6",unavailable:"#6b7280"},dx={active:"Easily retrievable (retention ≥ 70%)",dormant:"Retrievable with effort (40–70%)",silent:"Difficult, needs cues (10–40%)",unavailable:"Needs reinforcement (< 10%)"},Vr={aha:"#FFD700",confusion:"#EF4444",failure:"#9CA3AF"},fx={aha:"Aha moments and breakthroughs",confusion:"Confusions and weak spots",failure:"Failures and guardrails"};function mh(l,t){return t==="state"?bl[xl(l.retention)]:t==="ahagraph"?vl(l)??Ja[l.type]??"#8B95A5":Ja[l.type]||"#8B95A5"}function vl(l){const t=new Set((l.tags??[]).map(e=>e.toLowerCase()));return t.has("aha")?Vr.aha:t.has("confusion")||t.has("weak-spot")?Vr.confusion:t.has("failure")||t.has("guardrail")?Vr.failure:null}let ds=null;function ip(){if(ds)return ds;const l=128,t=document.createElement("canvas");t.width=l,t.height=l;const e=t.getContext("2d");if(!e)return ds=new yt,ds;const i=e.createRadialGradient(l/2,l/2,0,l/2,l/2,l/2);i.addColorStop(0,"rgba(255, 255, 255, 1.0)"),i.addColorStop(.25,"rgba(255, 255, 255, 0.7)"),i.addColorStop(.55,"rgba(255, 255, 255, 0.2)"),i.addColorStop(1,"rgba(255, 255, 255, 0.0)"),e.fillStyle=i,e.fillRect(0,0,l,l);const s=new Qh(t);return s.needsUpdate=!0,ds=s,s}function gh(l){if(l===0||l===1)return l;const t=.3;return Math.pow(2,-10*l)*Math.sin((l-t/4)*(2*Math.PI)/t)+1}function sp(l){return l*l*((1.70158+1)*l-1.70158)}class px{constructor(){z(this,"group");z(this,"meshMap",new Map);z(this,"glowMap",new Map);z(this,"positions",new Map);z(this,"labelSprites",new Map);z(this,"hoveredNode",null);z(this,"selectedNode",null);z(this,"colorMode","type");z(this,"materializingNodes",[]);z(this,"dissolvingNodes",[]);z(this,"growingNodes",[]);this.group=new Kh}setColorMode(t){if(this.colorMode!==t){this.colorMode=t;for(const[e,i]of this.meshMap){const s=i.userData.retention??0,n=i.userData.type??"fact",r=Array.isArray(i.userData.tags)?i.userData.tags:[],o=mh({type:n,retention:s,tags:r},t),h=new G(o),c=i.material;c.color.copy(h),c.emissive.copy(h);const u=this.glowMap.get(e);u&&u.material.color.copy(h)}}}createNodes(t){const e=(1+Math.sqrt(5))/2,i=t.length;for(let s=0;s0,a=new Fs(s,16,16),o=new Fa({color:new G(n),emissive:new G(n),emissiveIntensity:r?0:.3+t.retention*.5,roughness:.3,metalness:.1,transparent:!0,opacity:r?.2:.3+t.retention*.7}),h=new qt(a,o);h.position.copy(e),h.scale.setScalar(i),h.userData={nodeId:t.id,type:t.type,retention:t.retention,tags:t.tags},this.meshMap.set(t.id,h),this.group.add(h);const c=new _s({map:ip(),color:new G(n),transparent:!0,opacity:i>0?r?.1:.3+t.retention*.35:0,blending:oc,depthWrite:!1}),u=new bs(c);u.scale.set(s*6*i,s*6*i,1),u.position.copy(e),u.userData={isGlow:!0,nodeId:t.id},this.glowMap.set(t.id,u),this.group.add(u);const d=t.label||t.type,f=this.createTextSprite(d,"#94a3b8");return f.position.copy(e),f.position.y+=s*2+1.5,f.userData={isLabel:!0,nodeId:t.id,offset:s*2+1.5},this.group.add(f),this.labelSprites.set(t.id,f),{mesh:h,glow:u,label:f,size:s}}addNode(t,e,i={}){const s=(e==null?void 0:e.clone())??new w((Math.random()-.5)*40,(Math.random()-.5)*40,(Math.random()-.5)*40);this.positions.set(t.id,s);const{mesh:n,glow:r,label:a}=this.createNodeMeshes(t,s,0);return n.scale.setScalar(.001),r.scale.set(.001,.001,1),r.material.opacity=0,a.material.opacity=0,i.isBirthRitual?(n.visible=!1,r.visible=!1,a.visible=!1,n.userData.birthRitualPending={totalFrames:30,targetScale:.5+t.retention*2}):this.materializingNodes.push({id:t.id,frame:0,totalFrames:30,mesh:n,glow:r,label:a,targetScale:.5+t.retention*2}),s}igniteNode(t){const e=this.meshMap.get(t),i=this.glowMap.get(t),s=this.labelSprites.get(t);if(!e||!i||!s)return;const n=e.userData.birthRitualPending;n&&(e.visible=!0,i.visible=!0,s.visible=!0,delete e.userData.birthRitualPending,this.materializingNodes.push({id:t,frame:0,totalFrames:n.totalFrames,mesh:e,glow:i,label:s,targetScale:n.targetScale}))}removeNode(t){const e=this.meshMap.get(t),i=this.glowMap.get(t),s=this.labelSprites.get(t);!e||!i||!s||(this.materializingNodes=this.materializingNodes.filter(n=>n.id!==t),this.dissolvingNodes.push({id:t,frame:0,totalFrames:60,mesh:e,glow:i,label:s,originalScale:e.scale.x}))}growNode(t,e){const i=this.meshMap.get(t);if(!i)return;const s=i.scale.x,n=.5+e*2;i.userData.retention=e,this.growingNodes.push({id:t,frame:0,totalFrames:30,startScale:s,targetScale:n})}createTextSprite(t,e){const i=document.createElement("canvas"),s=i.getContext("2d");if(!s){const x=new yt;return new bs(new _s({map:x,transparent:!0,opacity:0}))}i.width=512,i.height=64;const n=t.length>40?t.slice(0,37)+"...":t;s.clearRect(0,0,i.width,i.height),s.font='600 22px -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif';const a=s.measureText(n).width,h=Math.min(a+14*2,i.width-4),c=40,u=(i.width-h)/2,d=(i.height-c)/2,f=c/2;s.fillStyle="rgba(10, 16, 28, 0.82)",s.beginPath(),s.moveTo(u+f,d),s.lineTo(u+h-f,d),s.quadraticCurveTo(u+h,d,u+h,d+f),s.lineTo(u+h,d+c-f),s.quadraticCurveTo(u+h,d+c,u+h-f,d+c),s.lineTo(u+f,d+c),s.quadraticCurveTo(u,d+c,u,d+c-f),s.lineTo(u,d+f),s.quadraticCurveTo(u,d,u+f,d),s.closePath(),s.fill(),s.strokeStyle="rgba(148, 163, 184, 0.18)",s.lineWidth=1,s.stroke(),s.textAlign="center",s.textBaseline="middle",s.fillStyle=e,s.fillText(n,i.width/2,i.height/2+1);const p=new Qh(i);p.needsUpdate=!0;const m=new _s({map:p,transparent:!0,opacity:0,depthTest:!1,sizeAttenuation:!0}),g=new bs(m);return g.scale.set(9,1.2,1),g}updatePositions(){this.group.children.forEach(t=>{if(t.userData.nodeId){const e=this.positions.get(t.userData.nodeId);if(!e)return;t.userData.isGlow?t.position.copy(e):t.userData.isLabel?(t.position.copy(e),t.position.y+=t.userData.offset):t instanceof qt&&t.position.copy(e)}})}animate(t,e,i,s=1){var r,a;for(let o=this.materializingNodes.length-1;o>=0;o--){const h=this.materializingNodes[o];h.frame++;const c=Math.min(h.frame/h.totalFrames,1),u=gh(c);if(h.mesh.scale.setScalar(Math.max(.001,u)),h.frame>=5){const d=Math.min((h.frame-5)/5,1),f=h.glow.material;f.opacity=d*.4;const p=h.targetScale*6*u;h.glow.scale.set(p,p,1)}if(h.frame>=40){const d=Math.min((h.frame-40)/20,1);h.label.material.opacity=d*.9}h.frame>=60&&this.materializingNodes.splice(o,1)}for(let o=this.dissolvingNodes.length-1;o>=0;o--){const h=this.dissolvingNodes[o];h.frame++;const c=Math.min(h.frame/h.totalFrames,1),u=1-sp(c),d=Math.max(.001,h.originalScale*u);h.mesh.scale.setScalar(d);const f=d*6;h.glow.scale.set(f,f,1);const p=h.mesh.material;p.opacity*=.97,h.glow.material.opacity*=.95,h.label.material.opacity*=.93,h.frame>=h.totalFrames&&(this.group.remove(h.mesh),this.group.remove(h.glow),this.group.remove(h.label),h.mesh.geometry.dispose(),h.mesh.material.dispose(),(r=h.glow.material.map)==null||r.dispose(),h.glow.material.dispose(),(a=h.label.material.map)==null||a.dispose(),h.label.material.dispose(),this.meshMap.delete(h.id),this.glowMap.delete(h.id),this.labelSprites.delete(h.id),this.positions.delete(h.id),this.dissolvingNodes.splice(o,1))}for(let o=this.growingNodes.length-1;o>=0;o--){const h=this.growingNodes[o];h.frame++;const c=Math.min(h.frame/h.totalFrames,1),u=h.startScale+(h.targetScale-h.startScale)*gh(c),d=this.meshMap.get(h.id);d&&d.scale.setScalar(u);const f=this.glowMap.get(h.id);if(f){const p=u*6;f.scale.set(p,p,1)}h.frame>=h.totalFrames&&this.growingNodes.splice(o,1)}const n=new Set([...this.materializingNodes.map(o=>o.id),...this.dissolvingNodes.map(o=>o.id),...this.growingNodes.map(o=>o.id)]);this.meshMap.forEach((o,h)=>{if(n.has(h))return;const c=e.find(y=>y.id===h);if(!c)return;const u=1+Math.sin(t*1.5+e.indexOf(c)*.5)*.15*c.retention;o.scale.setScalar(u);const d=this.positions.get(h),f=d?i.position.distanceTo(d):0,p=1+Math.min(1.4,Math.max(0,(f-60)/100)),m=o.material;if(h===this.hoveredNode)m.emissiveIntensity=1*s;else if(h===this.selectedNode)m.emissiveIntensity=.8*s;else{const b=.3+c.retention*.5+Math.sin(t*(.8+c.retention*.7))*.1*c.retention;m.emissiveIntensity=b*s*p}const g=.3+c.retention*.7;m.opacity=Math.min(1,g*s*p);const x=this.glowMap.get(h);if(x){const y=x.material,b=.3+c.retention*.35;y.opacity=Math.min(.95,b*s*p)}}),this.labelSprites.forEach((o,h)=>{if(n.has(h))return;const c=this.positions.get(h);if(!c)return;const u=i.position.distanceTo(c),d=o.material,f=h===this.hoveredNode||h===this.selectedNode?1:u<40?.9:u<80?.9*(1-(u-40)/40):0;d.opacity+=(f-d.opacity)*.1})}getMeshes(){return Array.from(this.meshMap.values())}dispose(){this.group.traverse(t=>{var e,i,s,n,r;t instanceof qt?((e=t.geometry)==null||e.dispose(),(i=t.material)==null||i.dispose()):t instanceof bs&&((n=(s=t.material)==null?void 0:s.map)==null||n.dispose(),(r=t.material)==null||r.dispose())}),this.materializingNodes=[],this.dissolvingNodes=[],this.growingNodes=[]}}function np(l){var e,i;const t={};for(const s of l)(t[e=s.source]??(t[e]=[])).push({edge:s,otherId:s.target}),(t[i=s.target]??(t[i]=[])).push({edge:s,otherId:s.source});for(const s of Object.keys(t))t[s].sort((n,r)=>(r.edge.weight??0)-(n.edge.weight??0));return t}function Gr(l){const t=(l.type??"").toLowerCase();return t.includes("contradict")||t.includes("conflict")||t.includes("supersede")}function yh(l){const t=(l.type??"").toLowerCase();return t==="causal"||t.includes("causal")||t.includes("cause")}function In(l){const t=Date.parse(l.updatedAt||l.createdAt||"");return Number.isFinite(t)?t:0}function rp(l,t,e,i=7,s={}){var y;const n=s.preferCausal??!1,r=new Map(l.map(b=>[b.id,b])),a={beats:[],centerId:e,pivoted:!1,flowEdges:[]};if(l.length===0)return a;const o=np(t),h=r.has(e);let c=h?e:"";c||(c=((y=l.find(b=>b.isCenter))==null?void 0:y.id)??""),c||(c=l.map(b=>{var v;return{id:b.id,deg:((v=o[b.id])==null?void 0:v.length)??0}}).sort((b,v)=>v.deg-b.deg)[0].id);const u=r.get(c);if(!u)return a;const d=!h,f=new Set([c]),p=[{nodeId:c,node:u,viaEdge:null,kind:"origin",intensity:1}],m=[];let g=c,x=!1;for(;p.length!f.has(A.otherId)&&yh(A.edge))),!v&&!x&&(v=b.find(A=>!f.has(A.otherId)&&Gr(A.edge)),v&&(x=!0)),v||(v=b.find(A=>!f.has(A.otherId))),!v){const A=l.filter(T=>!f.has(T.id)).sort((T,C)=>In(C)-In(T));if(A.length===0)break;const S=A[0];f.add(S.id),p.push({nodeId:S.id,node:S,viaEdge:null,kind:"bridge",intensity:.6}),g=S.id;continue}const _=r.get(v.otherId);if(!_){f.add(v.otherId);continue}f.add(_.id),m.push(v.edge);const M=n&&yh(v.edge);p.push({nodeId:_.id,node:_,viaEdge:v.edge,kind:Gr(v.edge)?"contradiction":"connection",intensity:Gr(v.edge)||M?1:Math.min(1,.55+(v.edge.weight??0)*.45)}),g=_.id}if(p.length_.id!==b).sort((_,M)=>In(M)-In(_))[0];v&&!p.some(_=>_.nodeId===v.id)&&p.push({nodeId:v.id,node:v,viaEdge:null,kind:"recent",intensity:.8})}return{beats:p,centerId:c,pivoted:d,flowEdges:m}}var ap=vt(''),op=vt('CAPTURE'),hp=vt(' '),lp=vt('

');function cp(l,t){Wn(t,!0);let e=ut(t,"demoMode",3,"recall-path"),i=ut(t,"seed",3,"vestige-observatory-v1"),s=ut(t,"nodeCount",3,0),n=ut(t,"edgeCount",3,0),r=ut(t,"centerId",3,""),a=ut(t,"frameCount",3,0),o=ut(t,"fpsEstimate",3,0),h=ut(t,"freezeFrame",3,null);ut(t,"loading",3,!1),ut(t,"error",3,"");function c(){const L=new URLSearchParams({demo:e(),seed:i()});h()!==null&&L.set("frame",String(h()));const I=`${window.location.origin}${ec}/observatory?${L.toString()}`;navigator.clipboard.writeText(I).catch(()=>{})}var u=lp(),d=ot(u),f=ot(d),p=ot(f),m=ot(p,!0);at(p);var g=ct(p,2),x=ot(g);at(g),at(f);var y=ct(f,2),b=ot(y),v=ot(b);at(b);var _=ct(b,2);{var M=L=>{var I=ap(),U=ot(I);at(I),jt(wt=>Ot(U,`center=${wt??""}`),[()=>r().slice(0,8)]),mt(L,I)};_t(_,L=>{r()&&L(M)})}at(y);var A=ct(y,2),S=ot(A),T=ot(S);at(S);var C=ct(S,2);{var P=L=>{var I=op();mt(L,I)},V=L=>{var I=hp(),U=ot(I);at(I),jt(()=>Ot(U,`${o()??""}fps`)),mt(L,I)};_t(C,L=>{h()!==null?L(P):o()>0&&L(V,1)})}var q=ct(C,2);at(A),at(d),at(u),jt((L,I)=>{Ot(m,e()),Ot(x,`seed=${L??""}${i().length>12?"…":""}`),Ot(v,`${s()??""} nodes · ${n()??""} edges`),Ot(T,`frame: ${I??""}`)},[()=>i().slice(0,12),()=>String(a()).padStart(3," ")]),Ri("click",q,c),mt(l,u),Hn()}Rh(["click"]);var up=vt('
'),dp=vt("
"),fp=vt('
');function pp(l,t){Wn(t,!0);let e=ut(t,"steps",19,()=>[]),i=ut(t,"frame",3,0),s=ut(t,"loopFrames",3,720);const n=u=>u/s()*100;function r(u,d){const f=d-u;return f<-14||f>90?0:f<0?1+f/14:1-f/90}let a=Bn(()=>{let u="",d=.15;for(const f of e()){const p=r(f.beatFrame,i());p>d&&(d=p,u=f.label)}return u});var o=Ph(),h=Fh(o);{var c=u=>{var d=fp(),f=ot(d);{var p=y=>{var b=up(),v=ot(b,!0);at(b),jt(()=>Ot(v,F(a))),mt(y,b)};_t(f,y=>{F(a)&&y(p)})}var m=ct(f,2),g=ot(m);Eh(g,17,e,y=>y.beatFrame,(y,b)=>{var v=dp();let _;jt((M,A,S)=>{_=vs(v,1,"tick svelte-8n8iia",null,_,M),Hr(v,`left: ${A??""}%; opacity: ${S??""}`),Cn(v,"title",F(b).label)},[()=>({hot:r(F(b).beatFrame,i())>0,backward:F(b).kind===1}),()=>n(F(b).beatFrame),()=>.45+.55*r(F(b).beatFrame,i())]),mt(y,v)});var x=ct(g,2);at(m),at(d),jt(y=>Hr(x,`left: ${y??""}%`),[()=>n(i())]),mt(u,d)};_t(h,u=>{e().length>0&&u(c)})}mt(l,o),Hn()}var mp=vt('
');function xh(l,t){Wn(t,!0);let e=ut(t,"frame",3,0),i=ut(t,"fadeWindow",19,()=>[600,620,705,719]),s=ut(t,"tone",3,"triumph");const n=(c,u,d)=>{const f=Math.min(1,Math.max(0,(d-c)/(u-c)));return f*f*(3-2*f)};let r=Bn(()=>n(i()[0],i()[1],e())*(1-n(i()[2],i()[3],e())));var a=Ph(),o=Fh(a);{var h=c=>{var u=mp();let d;var f=ot(u),p=ot(f,!0);at(f);var m=ct(f,2),g=ot(m,!0);at(m);var x=ct(m,2),y=ot(x,!0);at(x),at(u),jt(()=>{d=vs(u,1,"verdict svelte-ssd7yu",null,d,{quarantine:s()==="quarantine"}),Hr(u,`opacity: ${F(r)??""}`),Ot(p,t.verdict.headline),Ot(g,t.verdict.causeLabel),Ot(y,t.verdict.receipt)}),mt(c,u)};_t(o,c=>{F(r)>.001&&c(h)})}mt(l,a),Hn()}function bh(l){const t=/^#?([0-9a-fA-F]{6})$/.exec(l.trim());if(!t)return[107/255,114/255,128/255];const e=parseInt(t[1],16);return[(e>>16&255)/255,(e>>8&255)/255,(e&255)/255]}function gp(l){const t=vl({tags:l.tags});return bh(t||bl[xl(l.retention)])}function yp(l){const e=[...l.nodes].sort((r,a)=>r.isCenter!==a.isCenter?r.isCenter?-1:1:r.ida.id?1:0).map((r,a)=>ic(r,a)),i=new Map;for(const r of e)i.set(r.id,r.index);const s=[];for(const r of l.edges){const a=i.get(r.source),o=i.get(r.target);a===void 0||o===void 0||a===o||s.push({sourceIndex:a,targetIndex:o,weight:r.weight,type:r.type})}const n=e.findIndex(r=>r.isCenter);return{nodes:e,edges:s,indexById:i,centerIndex:n<0?0:n}}function wl(l,t,e=120){const i=l.nodes.length,s=new Float32Array(i*Mt);for(let n=0;nx.toLowerCase()));g.has("aha")&&(m|=Ki.isAha),(g.has("failure")||g.has("guardrail"))&&(m|=Ki.isFailure),(g.has("confusion")||g.has("weak-spot"))&&(m|=Ki.isConfusion),s[a+me.colorFlags+0]=d,s[a+me.colorFlags+1]=f,s[a+me.colorFlags+2]=p,s[a+me.colorFlags+3]=m}return{data:s,nodeCount:i}}function vh(l){const t=new Uint32Array(Math.max(1,l.edges.length)*ir);return l.edges.forEach((e,i)=>{t[i*ir]=e.sourceIndex,t[i*ir+1]=e.targetIndex}),t}const xp=` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + capture_mode: f32, + live_kind: f32, + live_frame: f32, + live_energy: f32, + projection_days: f32, +}; + +struct Camera { + view_proj: mat4x4, + right: vec4, + up: vec4, +}; + +struct Node { + pos_radius: vec4, + vel_retention: vec4, + color_flags: vec4, + demo: vec4, +}; + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var camera: Camera; +@group(0) @binding(2) var nodes: array; + +// Iridescent thin-film band — ported EXACTLY from causal-brain-demo.html +// spectral(w) (visual DNA §7.1): indigo → cyan-teal → mint → magenta rim, +// wrapping. Activation glow rides this band; base color stays FSRS state. +fn spectral(w_in: f32) -> vec3 { + let w = fract(w_in); + // var, not let: WGSL only allows dynamic indexing through a reference. + var stops = array, 4>( + vec3(0.20, 0.28, 0.95), // indigo + vec3(0.20, 0.85, 0.90), // cyan-teal + vec3(0.45, 1.00, 0.72), // mint + vec3(0.85, 0.45, 1.00) // magenta rim + ); + let f = w * 4.0; + let i = u32(floor(f)) % 4u; + let frac = f - floor(f); + let a = stops[i]; + let b = stops[(i + 1u) % 4u]; + return mix(a, b, frac); +} + +struct VSOut { + @builtin(position) clip: vec4, + @location(0) uv: vec2, + // Per-instance constants: flat interpolation guarantees the flag bit + // field survives the raster stage bit-exact (no barycentric rounding). + @location(1) @interpolate(flat) color: vec3, + // x retention, y flags (bit field as f32), z recall intensity, w radius + @location(2) @interpolate(flat) misc: vec4, + // Per-demo choreography lanes (demo.y, demo.z, demo.w), gated by demo_id: + // rescue (2) searchlight/wave/shock, forgetting-horizon (3) fade-and-fall, + // firewall (4) flare-membrane/shock. Each demo's choreography pass is the + // ONLY writer of its lanes, and every gated term below is an exact no-op + // when its lane is 0.0 — other demos stay pixel-identical. + @location(3) @interpolate(flat) demo_yzw: vec3, +}; + +// Quad corners for two triangles (vertex_index 0..5). +const CORNERS = array, 6>( + vec2(-1.0, -1.0), + vec2( 1.0, -1.0), + vec2( 1.0, 1.0), + vec2(-1.0, -1.0), + vec2( 1.0, 1.0), + vec2(-1.0, 1.0) +); + +@vertex +fn vs_main( + @builtin(vertex_index) vi: u32, + @builtin(instance_index) ii: u32 +) -> VSOut { + var out: VSOut; + if (ii >= u32(params.node_count)) { + // degenerate — clipped away + out.clip = vec4(0.0, 0.0, 2.0, 1.0); + return out; + } + + let node = nodes[ii]; + let corner = CORNERS[vi]; + + // Breath: halo geometry swells ~6% on the global pulse (§7.2), and the + // center memory breathes a touch deeper — a heartbeat, not a strobe. + let flags = u32(node.color_flags.w); + let is_center = (flags & 1u) != 0u; + var breath = 1.0 + 0.06 * params.pulse; + if (is_center) { + breath = 1.0 + 0.12 * params.pulse; + } + + // Sprite spans ~3.2× the core radius so the halo has room to feather out. + // Recall activation swells the sprite — the wavefront physically blooms. + // Per-demo choreography lanes swell it too, gated by demo_id so each + // demo's grammar can never leak into another (lanes are 0.0 elsewhere, + // and the gate makes the no-op structural, not just numerical). + let recall = node.demo.x; + let dy = node.demo.y; + let dz = node.demo.z; + let dw = node.demo.w; + // The firewall grammar fires for the deterministic demo (demo_id==4) AND for + // a LIVE contradiction/suppression event (live_kind==1). Both write the same + // demo lanes (firewall.wgsl), so the visual reads identically either way. + let firewall_active = params.demo_id == 4.0 || params.live_kind == 1.0; + var lane_swell = 0.0; + if (params.demo_id == 2.0) { + // salience-rescue: searchlight pop, wave shiver, shock bloom. + lane_swell = 0.5 * dy + 0.25 * dz + 0.9 * dw; + } else if (firewall_active) { + // firewall: intrusion flare pop (band (0..1]), membrane presence + // (band [2.6..2.9] via the range gate), crimson shock bloom. + lane_swell = 0.35 * min(dy, 1.0) + 0.3 * smoothstep(1.5, 2.2, dy) + 0.55 * dw; + } + // forgetting-horizon (demo 3): VISUAL displacement toward the horizon — + // down and away from the field axis, ~40.5 units at dz = 1 — plus a + // shrink. pos_radius is NEVER written (the force sim owns positions); + // drift is pure of demo.z, so ?frame=N capture stays exact. CPU mirror: + // forgetting-plan.ts horizonDrift(). + var horizon_scale = 1.0; + var drift = vec3(0.0); + if (params.demo_id == 3.0) { + let dzc = clamp(dz, 0.0, 1.0); + horizon_scale = 1.0 - 0.35 * dzc; + if (dz > 0.0) { + let p = node.pos_radius.xyz; + let r_xz = max(length(p.xz), 0.001); + let away = vec3(p.x / r_xz, 0.0, p.z / r_xz); + drift = dzc * (vec3(0.0, -34.0, 0.0) + away * 22.0); + } + } + let half_size = node.pos_radius.w * 3.2 * breath * (1.0 + 0.9 * recall) + * (1.0 + lane_swell) * horizon_scale; + let world = node.pos_radius.xyz + drift + + camera.right.xyz * corner.x * half_size + + camera.up.xyz * corner.y * half_size; + + out.clip = camera.view_proj * vec4(world, 1.0); + out.uv = corner; + out.color = node.color_flags.rgb; + out.misc = vec4(node.vel_retention.w, node.color_flags.w, node.demo.x, node.pos_radius.w); + out.demo_yzw = vec3(dy, dz, dw); + return out; +} + +@fragment +fn fs_main(in: VSOut) -> @location(0) vec4 { + let d = length(in.uv); + if (d > 1.0) { + discard; + } + + let retention = in.misc.x; + let flags = u32(in.misc.y); + let suppressed = (flags & 2u) != 0u; + let is_center = (flags & 1u) != 0u; + + // Soft sprite: hot core + feathered halo. The halo rides the breath pulse. + let core = smoothstep(0.22, 0.0, d); + let halo = pow(max(1.0 - d, 0.0), 2.4); + var intensity = core * 1.35 + halo * (0.42 + 0.18 * params.pulse); + + // Meaning layer: low-retention memories glow dimmer (drifting toward the + // horizon), the center anchor reads brightest. + intensity = intensity * (0.45 + 0.55 * retention); + if (is_center) { + intensity = intensity * 1.6; + } + if (suppressed) { + intensity = intensity * 0.28; + } + + var color = in.color * intensity; + + // Forgetting-horizon (demo 3): multiplicative dim toward near-black as + // demo.z rises. Floor 0.06 — never fully gone, always retrievable. Sits + // BEFORE the recall block so a rescued memory's ignition burns through + // the fade. demo_yzw.y carries demo.z (vec3 = y/z/w lanes). + if (params.demo_id == 3.0) { + color = color * mix(1.0, 0.06, clamp(in.demo_yzw.y, 0.0, 1.0)); + } + + // Recall activation (§7.1): the thin-film band takes over as the wave + // lands. Hue drifts exactly ONE full spectral cycle per 720-frame loop + // (loop_phase wraps 0→1 and spectral() fract-wraps) — oil-slick shimmer + // with a mathematically invisible loop seam. + let recall = in.misc.z; + if (recall > 0.001) { + let band = spectral(0.1 + params.loop_phase + d * 0.35); + let activation = band * recall * (core * 1.7 + halo * 0.9); + // white-hot pinpoint at full ignition + let flash = vec3(1.0, 1.0, 1.0) * core * recall * 0.55; + color = color + activation + flash; + } + + // Per-demo choreography lanes — gated by demo_id AND on nonzero values so + // every other demo is pixel-unchanged (each demo's pass is the only + // writer of its lanes, and lanes are exactly 0.0 everywhere else). + if (params.demo_id == 2.0) { + if (in.demo_yzw.x > 0.001) { + // Searchlight: cold clinical white — unmistakably NOT the spectral grammar. + color = color + vec3(0.82, 0.90, 1.00) * in.demo_yzw.x * (core * 1.8 + halo * 0.7); + } + if (in.demo_yzw.y > 0.001) { + // Interrogation shimmer: icy spectral strobe as the wave scrubs the past. + color = color + spectral(0.55 + params.loop_phase) * in.demo_yzw.y * (core * 0.9 + halo * 0.5) + + vec3(1.0) * core * in.demo_yzw.y * 0.2; + } + if (in.demo_yzw.z > 0.001) { + // Detonation: crimson blaze + warm-white pinpoint. + color = color + vec3(1.00, 0.16, 0.10) * in.demo_yzw.z * (core * 1.9 + halo * 1.1) + + vec3(1.0, 0.85, 0.8) * core * in.demo_yzw.z * 0.4; + } + } else if (params.demo_id == 4.0 || params.live_kind == 1.0) { + // firewall: demo.y carries TWO value bands — intrusion flare (0..1] + // and membrane [2.6..2.9] — separated by range, one lane. demo.w is + // the crimson shock rim / sever blink. (demo_yzw = y/z/w lanes.) + let fy = in.demo_yzw.x; + let fw = in.demo_yzw.z; + // Intrusion flare: sickly green-white — a hue deliberately OUTSIDE + // both the FSRS palette and the thin-film band. Continuous across the + // band boundary (fades out as fy climbs toward the membrane band). + let flare = min(fy, 1.0) * (1.0 - smoothstep(1.0, 1.8, fy)); + if (flare > 0.001) { + color = color + vec3(0.62, 1.00, 0.55) * flare * (core * 1.7 + halo * 0.9) + + vec3(0.90, 1.00, 0.85) * core * flare * 0.5; + } + // Membrane: quarantine ring at d ≈ 0.75 with fresnel-ish falloff — + // green body, crimson edge. exp(-q·q) squares by multiplication and + // the pow base is clamped ≥ 0 (no pow(neg) anywhere). + let mw = smoothstep(1.5, 2.2, fy); + if (mw > 0.001) { + let q = (d - 0.75) * 9.0; + let ring = exp(-q * q); + let fresnel = pow(clamp(d / 0.75, 0.0, 1.0), 3.0); + let ring_col = mix(vec3(0.55, 1.00, 0.60), vec3(1.00, 0.20, 0.16), + smoothstep(0.72, 0.92, d)); + color = color + ring_col * ring * fresnel * mw * 1.4; + } + // Shockwave: crimson RIM as the front passes (a rim, not a blaze). + if (fw > 0.001) { + let rim = smoothstep(0.45, 0.8, d) * (1.0 - smoothstep(0.85, 1.0, d)); + color = color + vec3(1.00, 0.14, 0.10) * rim * fw * 1.5 + + vec3(1.00, 0.60, 0.50) * core * fw * 0.15; + } + } + + // Additive target (src=one, dst=one): alpha is ignored, light accumulates. + return vec4(color * params.brightness, 1.0); +} +`,bp=` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + capture_mode: f32, + live_kind: f32, + live_frame: f32, + live_energy: f32, + projection_days: f32, +}; + +struct Node { + pos_radius: vec4, + vel_retention: vec4, + color_flags: vec4, + demo: vec4, +}; + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var nodes: array; +// x source index, y target index, z beat frame, w kind (0 recall, 1 backward) +@group(0) @binding(2) var path: array>; +// x source index, y target node index (Increment 7: force simulation edges) +@group(0) @binding(3) var edges: array>; +// v2.3 living field — per-node LIVE retrievability (real FSRS curve, recomputed +// on the CPU by the LiveBridge). One f32 per node. read to overwrite +// vel_retention.w so render-nodes dims each memory on its true forgetting curve. +@group(0) @binding(4) var live_retention: array; + +// --- Force-simulation helpers (Increment 7) --- + +fn safe_normalize(v: vec3) -> vec3 { + let l = length(v); + if (l < 0.0001) { return vec3(0.0); } + return v / l; +} + +fn clamp_len(v: vec3, hi: f32) -> vec3 { + let l = length(v); + if (l > hi && l > 0.0001) { return v * (hi / l); } + return v; +} + +@compute @workgroup_size(64) +fn recall_sim(@builtin(global_invocation_id) id: vec3) { + let i = id.x; + if (i >= u32(params.node_count)) { + return; + } + + let frame = params.frame; + var intensity = 0.0; + + let steps = u32(params.path_count); + for (var s = 0u; s < steps; s = s + 1u) { + let step = path[s]; + let bf = f32(step.z); + + if (step.y == i) { + // Arrival: sharp attack as the wavefront lands, slow afterglow. + let attack = smoothstep(bf - 14.0, bf + 4.0, frame); + let decay = 1.0 - smoothstep(bf + 40.0, bf + 200.0, frame); + intensity = max(intensity, attack * decay); + } + if (step.x == i && step.x != step.y) { + // Departure: the source shimmers as the wave leaves it. + let rise = smoothstep(bf - 55.0, bf - 30.0, frame); + let fall = 1.0 - smoothstep(bf + 10.0, bf + 70.0, frame); + intensity = max(intensity, rise * fall * 0.45); + } + } + + var node = nodes[i]; + let flags = u32(node.color_flags.w); + let is_center = (flags & 1u) != 0u; + + // Write recall intensity (existing behavior preserved). + node.demo.x = intensity; + + // v2.3 LIVE FSRS decay — overwrite retention with the real forgetting-curve + // value the LiveBridge computed for this node on the CPU. This is the #1 + // moat: render-nodes already dims by vel_retention.w (line ~183), so writing + // the true retrievability here makes every memory visibly forget on its own + // curve. Guarded so a graph with no live-decay data (all zeros) keeps its + // static snapshot instead of collapsing to black. + if (i < arrayLength(&live_retention)) { + let lr = live_retention[i]; + if (lr > 0.0) { + node.vel_retention = vec4(node.vel_retention.xyz, lr); + } + } + + // --- Increment 7: force simulation --- + + // Capture mode (params.capture_mode == 1.0): skip physics integration + // entirely. The storage-buffer state stays frozen at initial upload + // values, making same URL + frame → identical pixels (spec §4 Inc 9). + if (params.capture_mode == 0.0) { + // 7B: center anchor — center node never moves. + // (WGSL forbids swizzle stores — reconstruct the vec4, preserving .w.) + if (is_center) { + node.pos_radius = vec4(0.0, 0.0, 0.0, node.pos_radius.w); + node.vel_retention = vec4(0.0, 0.0, 0.0, node.vel_retention.w); + nodes[i] = node; + return; + } + + let pos = node.pos_radius.xyz; + var force = vec3(0.0); + + // 7C: edge springs — scan existing edgeBuffer, no atomics. + for (var e = 0u; e < u32(params.edge_count); e = e + 1u) { + let edge = edges[e]; + var other_idx = 0xffffffffu; + if (edge.x == i) { other_idx = edge.y; } + if (edge.y == i) { other_idx = edge.x; } + if (other_idx != 0xffffffffu && other_idx < u32(params.node_count)) { + let other = nodes[other_idx].pos_radius.xyz; + let delta = other - pos; + let dist = max(length(delta), 0.001); + let dir = delta / dist; + let stretch = dist - 34.0; + force = force + dir * stretch * 0.00055; + } + } + + // 7D: soft repulsion (only ≤ 500 nodes for performance). + if (u32(params.node_count) <= 500u) { + for (var j = 0u; j < u32(params.node_count); j = j + 1u) { + if (j == i) { continue; } + let other = nodes[j].pos_radius.xyz; + let delta = pos - other; + let d2 = max(dot(delta, delta), 9.0); + force = force + safe_normalize(delta) * (7.5 / d2); + } + } + + // Gentle centering: keeps the field in frame without crushing it. + force = force + (-pos) * 0.0008; + + // v2.3 DREAM STORM — while the real dream pipeline streams (live_kind == + // 2 == LIVE_KIND.dreamStorm), the field enters a metabolic consolidation + // storm: damping loosens (springs overshoot, clusters slosh together as + // new ConnectionDiscovered edges are appended) and a deterministic + // turbulence rides live_energy. Pure of node index + live_frame, so no + // wall clock — the storm is a function of the real event envelope. At + // rest (energy 0) both terms vanish → the field is byte-identical. + var damping = 0.88; + if (params.live_kind == 2.0) { + let e = clamp(params.live_energy, 0.0, 1.4); + damping = 0.88 + 0.09 * e; // up to ~0.97 — longer, sloshier settling + // Curl-free deterministic jitter: phase from node index + live_frame. + let ph = f32(i) * 0.61803 + params.live_frame * 0.05; + let jitter = vec3(sin(ph * 6.2831), sin(ph * 4.7123 + 1.3), sin(ph * 5.318 + 2.1)); + force = force + jitter * (0.006 * e); + } + + // 7B: velocity damping + cap, then position integration. + var vel = node.vel_retention.xyz; + vel = (vel + force) * damping; + vel = clamp_len(vel, 0.42); + node.vel_retention = vec4(vel, node.vel_retention.w); + node.pos_radius = vec4(pos + vel, node.pos_radius.w); + } + // When capture_mode (params.capture_mode == 1.0), node is NOT written back — + // the storage buffer retains its initial upload values, guaranteeing + // deterministic pixels for the same frame index. + nodes[i] = node; +} +`,_l=` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + capture_mode: f32, + live_kind: f32, + live_frame: f32, + live_energy: f32, + projection_days: f32, +}; + +struct Camera { + view_proj: mat4x4, + right: vec4, + up: vec4, +}; + +struct Node { + pos_radius: vec4, + vel_retention: vec4, + color_flags: vec4, + demo: vec4, +}; + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var camera: Camera; +@group(0) @binding(2) var nodes: array; +// x source index, y target index, z beat frame, w kind (0 recall, 1 backward) +@group(0) @binding(3) var path: array>; + +// Same thin-film band as the node shader (§7.1). +fn spectral(w_in: f32) -> vec3 { + let w = fract(w_in); + // var, not let: WGSL only allows dynamic indexing through a reference. + var stops = array, 4>( + vec3(0.20, 0.28, 0.95), + vec3(0.20, 0.85, 0.90), + vec3(0.45, 1.00, 0.72), + vec3(0.85, 0.45, 1.00) + ); + let f = w * 4.0; + let i = u32(floor(f)) % 4u; + let frac = f - floor(f); + let a = stops[i]; + let b = stops[(i + 1u) % 4u]; + return mix(a, b, frac); +} + +struct VSOut { + @builtin(position) clip: vec4, + // x: t along segment (0 source → 1 target), y: side (-1..1) + @location(0) uv: vec2, + // x: beat frame, y: kind, z: segment visible (0 skips degenerate steps) + // Per-instance constant — flat keeps it bit-exact through the raster. + @location(1) @interpolate(flat) beat: vec3, +}; + +// (t, side) corners for two triangles of the ribbon. +const RIBBON = array, 6>( + vec2(0.0, -1.0), + vec2(1.0, -1.0), + vec2(1.0, 1.0), + vec2(0.0, -1.0), + vec2(1.0, 1.0), + vec2(0.0, 1.0) +); + +@vertex +fn vs_main( + @builtin(vertex_index) vi: u32, + @builtin(instance_index) ii: u32 +) -> VSOut { + var out: VSOut; + if (ii >= u32(params.path_count)) { + out.clip = vec4(0.0, 0.0, 2.0, 1.0); + out.beat = vec3(0.0); + return out; + } + + let step = path[ii]; + let src = nodes[step.x]; + let dst = nodes[step.y]; + let corner = RIBBON[vi]; + + // Degenerate (origin beat: source == target) — emit nothing visible. + if (step.x == step.y) { + out.clip = vec4(0.0, 0.0, 2.0, 1.0); + out.beat = vec3(0.0); + return out; + } + + let a = camera.view_proj * vec4(src.pos_radius.xyz, 1.0); + let b = camera.view_proj * vec4(dst.pos_radius.xyz, 1.0); + + // NDC-space perpendicular for constant screen width. + let ndc_a = a.xy / max(a.w, 0.0001); + let ndc_b = b.xy / max(b.w, 0.0001); + var dir = ndc_b - ndc_a; + let dlen = max(length(dir), 0.0001); + dir = dir / dlen; + let perp = vec2(-dir.y, dir.x); + + // Ribbon half-width in NDC (aspect-corrected), ~2.5 px on a 900px-tall view. + let px = 2.5 / max(params.viewport_h, 1.0) * 2.0; + let width = vec2(px * (params.viewport_h / max(params.viewport_w, 1.0)), px); + + let base = mix(a, b, corner.x); + let offset = perp * width * corner.y * base.w; + out.clip = vec4(base.xy + offset, base.zw); + out.uv = vec2(corner.x, corner.y); + out.beat = vec3(f32(step.z), f32(step.w), 1.0); + return out; +} + +@fragment +fn fs_main(in: VSOut) -> @location(0) vec4 { + if (in.beat.z < 0.5) { + discard; + } + + let frame = params.frame; + let bf = in.beat.x; + let t = in.uv.x; + + // Wave departs 45 frames before the beat and lands exactly on it. + let progress = clamp((frame - (bf - 45.0)) / 45.0, 0.0, 1.0); + // Nothing before departure; trail lingers ~90 frames after arrival. + let live = smoothstep(bf - 46.0, bf - 44.0, frame) + * (1.0 - smoothstep(bf + 40.0, bf + 90.0, frame)); + if (live <= 0.001) { + discard; + } + + // The light packet: gaussian around the wavefront position. + let dwave = (t - progress) * 14.0; + let packet = exp(-dwave * dwave); + + // Fading trail behind the packet — provenance stays visible a beat. + var trail = 0.0; + if (t < progress) { + trail = (1.0 - (progress - t)) * 0.22; + } + + // Feather across the ribbon width. + let across = 1.0 - abs(in.uv.y); + let profile = across * across; + + // Backward/contradiction hops burn hotter into the magenta rim (§7.4). + // Hue drifts one full spectral cycle per loop (seamless at the wrap). + // Kind 2 (salience-rescue probe): a gray failing beam — vector search + // visibly probing lookalikes and coming back empty. Kinds 0/1 unchanged. + var band = spectral(0.15 + t * 0.35 + params.loop_phase); + var packet_white = 0.35; + if (in.beat.y > 1.5) { + band = vec3(0.62, 0.66, 0.72); + packet_white = 0.18; + } else if (in.beat.y > 0.5) { + band = mix(band, vec3(1.0, 0.25, 0.45), 0.55); + } + + let energy = (packet * 1.6 + trail) * profile * live; + let color = band * energy + vec3(1.0) * packet * profile * live * packet_white; + return vec4(color * params.brightness, 1.0); +} +`;function vp(l){return 60+l*60}function Ml(l,t,e=8,i={}){var c;const s=[...l.nodes].sort((u,d)=>u.idd.id?1:0),n=[...l.edges].sort((u,d)=>{const f=`${u.source}\0${u.target}\0${u.type}`,p=`${d.source}\0${d.target}\0${d.type}`;return fp?1:0}),r=i.centerId??l.center_id,a=rp(s,n,r,e,{preferCausal:i.preferCausal}),o=[];for(let u=0;u0?a.beats[u-1].nodeId:d.nodeId,m=t.indexById.get(p)??f,g=(((c=d.viaEdge)==null?void 0:c.type)??"").toLowerCase(),x=g==="causal"||g.includes("causal"),y=d.kind==="contradiction"||x;o.push({sourceIndex:m,targetIndex:f,beatFrame:vp(u),kind:y?ze.backwardCause:ze.recall,beatKind:d.kind,nodeId:d.nodeId,label:d.node.label})}const h=new Uint32Array(Math.max(1,o.length)*Qi);return o.forEach((u,d)=>{h[d*Qi]=u.sourceIndex,h[d*Qi+1]=u.targetIndex,h[d*Qi+2]=u.beatFrame,h[d*Qi+3]=u.kind}),{data:h,steps:o,path:a}}const wp=24,wh=300;class _p{constructor(t){z(this,"engine");z(this,"pipeline",null);z(this,"bindGroup",null);z(this,"cameraBuffer",null);z(this,"nodeBuffer",null);z(this,"edgeBuffer",null);z(this,"cameraData",new Float32Array(wp));z(this,"nodeCount",0);z(this,"simPipeline",null);z(this,"simBindGroup",null);z(this,"pathBuffer",null);z(this,"liveRetentionBuffer",null);z(this,"pathPipeline",null);z(this,"pathBindGroup",null);z(this,"pathStepCount",0);z(this,"graph",null);z(this,"pathSteps",[]);this.engine=t,t.addPass(this)}upload(t,e,i){var f,p,m,g;const s=this.engine.gpuDevice;if(!s)return;const n=(i==null?void 0:i.recallPath)??!0,r=yp(t);this.graph=r;const a=new ea({seed:e}),{data:o,nodeCount:h}=wl(r,a.state.rng);this.nodeCount=h,(f=this.nodeBuffer)==null||f.destroy(),this.nodeBuffer=s.createBuffer({label:"observatory-node-state",size:Math.max(o.byteLength,64),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC|GPUBufferUsage.VERTEX}),s.queue.writeBuffer(this.nodeBuffer,0,o.buffer);const c=vh(r);(p=this.edgeBuffer)==null||p.destroy(),this.edgeBuffer=s.createBuffer({label:"observatory-edge-index",size:c.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),s.queue.writeBuffer(this.edgeBuffer,0,c.buffer);const u=new Float32Array(Math.max(h,4));for(let x=0;x0){const a=t.beginComputePass({label:"observatory-recall-sim"});a.setPipeline(this.simPipeline),a.setBindGroup(0,this.simBindGroup),a.dispatchWorkgroups(Math.ceil(this.nodeCount/64)),a.end()}}render(t){!this.pipeline||!this.bindGroup||this.nodeCount===0||(t.setPipeline(this.pipeline),t.setBindGroup(0,this.bindGroup),t.draw(6,this.nodeCount),this.pathPipeline&&this.pathBindGroup&&this.pathStepCount>0&&(t.setPipeline(this.pathPipeline),t.setBindGroup(0,this.pathBindGroup),t.draw(6,this.pathStepCount)))}get nodeStateBuffer(){return this.nodeBuffer}get cameraUniformBuffer(){return this.cameraBuffer}get nodeCountValue(){return this.nodeCount}get pathStepMeta(){return this.pathSteps}async pickAt(t,e){const i=this.engine.gpuDevice;if(!i||!this.nodeBuffer||!this.graph||this.nodeCount===0)return null;const s=this.nodeCount*Mt*4,n=i.createBuffer({label:"observatory-pick-staging",size:s,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),r=i.createCommandEncoder({label:"observatory-pick-copy"});r.copyBufferToBuffer(this.nodeBuffer,0,n,0,s),i.queue.submit([r.finish()]);let a;try{await n.mapAsync(GPUMapMode.READ),a=new Float32Array(n.getMappedRange().slice(0))}catch{return n.destroy(),null}n.unmap(),n.destroy();const o=this.engine.params[6]||1,h=this.engine.params[7]||1,c=this.engine.params[1],u=Ya(c,o/h,wh).viewProj,d=1/Math.tan(50*Math.PI/360);let f=-1,p=1/0;for(let m=0;m0){const t=l.centerIndex,e=l.edges.filter(i=>i.sourceIndex===t||i.targetIndex===t);if(e.length>0){let i=-1,s=-1;for(const n of e){const r=n.sourceIndex===t?n.targetIndex:n.sourceIndex,a=l.nodes[r];a&&a.retention>s&&(s=a.retention,i=r)}if(i>=0)return i}}for(let t=0;tx.sourceIndex===i||x.targetIndex===i);for(let x=0;xn.sourceIndex===t||n.targetIndex===t),i=e.length;if(i===0)return new Uint32Array(0);const s=new Uint32Array(i*fs);for(let n=0;n, + target_size: vec4, + color_phase: vec4, + state: vec4, +}; + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var particles: array; + +@compute @workgroup_size(64) +fn birth_compute(@builtin(global_invocation_id) id: vec3) { + let i = id.x; + if (i >= arrayLength(&particles)) { + return; + } + + // Capture mode (params.capture_mode == 1.0): skip physics integration. + // The storage-buffer state stays frozen at initial upload values. + if (params.capture_mode == 1.0) { + return; + } + + var particle = particles[i]; + let frame = params.frame; + let phase = params.loop_phase; + + // --- Convergence choreography (integer cycles per 720-frame loop) --- + + // Phase offset (stagger) from start_life.w: 0..1 → delays convergence. + let stagger = particle.start_life.w; + + // Effective frame: staggered loop frame (wraps at 720). + let effFrame = fract(phase + stagger * 0.15) * 720.0; + + // --- Phase 1: latent trace condensing (frames 0–239) --- + // Slow drift toward target. + var t: f32; + if (effFrame < 240.0) { + // Smooth ease-in: 0 → 1 over 240 frames. + t = effFrame / 240.0; + t = t * t * (3.0 - 2.0 * t); // smoothstep + } + // --- Phase 2: engram coalescence (frames 240–329) --- + // Accelerated convergence to target. + else if (effFrame < 330.0) { + let localFrame = effFrame - 240.0; + // 0 → 1 over 90 frames, with slight overshoot then settle. + t = localFrame / 90.0; + t = t * t * (3.0 - 2.0 * t); + // Add a small overshoot (1.05) then settle back to 1.0. + t = 1.0 - 0.05 * (1.0 - t); + } + // --- Phase 3: memory ignition (frames 330–359) --- + // Hold at target (flash handled in render). + else if (effFrame < 360.0) { + t = 1.0; + } + // --- Phase 4: associations engrave (frames 360–509) --- + // Hold at target. + else if (effFrame < 510.0) { + t = 1.0; + } + // --- Phase 5: stabilization (frames 510–719) --- + // Hold at target, then fade alpha for reset. + else { + let localFrame = effFrame - 510.0; + // Fade alpha to 0 for seamless reset at frame 0. + t = 1.0; + particle.state.w = 1.0 - smoothstep(0.0, 150.0, localFrame); + } + + // Interpolate from start to target. + let startPos = particle.start_life.xyz; + let targetPos = particle.target_size.xyz; + // (WGSL forbids swizzle stores - reconstruct, preserving alpha in .w) + particle.state = vec4(mix(startPos, targetPos, t), particle.state.w); + + // Alpha: particles fade in during convergence, fade out during reset. + let fadeIn = smoothstep(0.0, 60.0, effFrame); + particle.state.w = max(particle.state.w, fadeIn * 0.8); + + particles[i] = particle; +} +`,Fp=16,Rp=6,Ep=330,Op=359,Dp=360;class Lp{constructor(t){z(this,"engine");z(this,"nodeRenderer");z(this,"active");z(this,"computePipeline",null);z(this,"computeBindGroup",null);z(this,"particleBuffer",null);z(this,"particleCount",0);z(this,"renderPipeline",null);z(this,"renderBindGroup",null);z(this,"haloPipeline",null);z(this,"haloBindGroup",null);z(this,"haloIndexBuffer",null);z(this,"engravePipeline",null);z(this,"engraveBindGroup",null);z(this,"engraveBuffer",null);z(this,"engraveStepCount",0);z(this,"timeline",[]);z(this,"birthPlan",null);this.engine=t.engine,this.nodeRenderer=t.nodeRenderer,this.active=!1,this.engine.addPass(this)}get engraveSteps(){var t;return((t=this.birthPlan)==null?void 0:t.edgeSteps)??new Uint32Array(0)}upload(t){var n,r;const e=this.engine.gpuDevice;if(!e||!this.nodeRenderer.nodeStateBuffer)return;const i=this.nodeRenderer.graph;if(!i)return;this.birthPlan=Bp(i,t),this.timeline=this.birthPlan.timeline;const s=this.birthPlan.particles.length/Fp;this.particleCount=s,(n=this.particleBuffer)==null||n.destroy(),this.particleBuffer=e.createBuffer({label:"observatory-birth-particles",size:this.birthPlan.particles.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),e.queue.writeBuffer(this.particleBuffer,0,this.birthPlan.particles.buffer),(r=this.engraveBuffer)==null||r.destroy(),this.engraveStepCount=this.birthPlan.edgeSteps.length/4,this.engraveStepCount>0&&(this.engraveBuffer=e.createBuffer({label:"observatory-birth-engrave",size:this.birthPlan.edgeSteps.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),e.queue.writeBuffer(this.engraveBuffer,0,this.birthPlan.edgeSteps.buffer)),this.createComputePipeline(e),this.createRenderPipeline(e),this.createHaloPipeline(e),this.createEngravePipeline(e)}createComputePipeline(t){const e=t.createShaderModule({label:"observatory-birth-compute",code:Pp});this.computePipeline=t.createComputePipeline({label:"observatory-birth-compute-pipeline",layout:"auto",compute:{module:e,entryPoint:"birth_compute"}});const i=[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:this.particleBuffer}}];this.computeBindGroup=t.createBindGroup({label:"observatory-birth-compute-bind",layout:this.computePipeline.getBindGroupLayout(0),entries:i})}createRenderPipeline(t){const i=t.createShaderModule({label:"observatory-birth-render",code:` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + _pad: f32, +}; + +struct Camera { + view_proj: mat4x4, + right: vec4, + up: vec4, +}; + +struct BirthParticle { + start_life: vec4, + target_size: vec4, + color_phase: vec4, + state: vec4, +}; + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var camera: Camera; +@group(0) @binding(2) var particles: array; + +struct VSOut { + @builtin(position) clip: vec4, + @location(0) uv: vec2, + @location(1) @interpolate(flat) color: vec3, + @location(2) @interpolate(flat) misc: vec4, +}; + +const CORNERS = array, 6>( + vec2(-1.0, -1.0), + vec2( 1.0, -1.0), + vec2( 1.0, 1.0), + vec2(-1.0, -1.0), + vec2( 1.0, 1.0), + vec2(-1.0, 1.0) +); + +@vertex +fn vs_main( + @builtin(vertex_index) vi: u32, + @builtin(instance_index) ii: u32 +) -> VSOut { + var out: VSOut; + if (ii >= arrayLength(&particles)) { + out.clip = vec4(0.0, 0.0, 2.0, 1.0); + return out; + } + + let particle = particles[ii]; + let corner = CORNERS[vi]; + + // Current position from state.xyz. + let pos = particle.state.xyz; + + // Base size from target_size.w. + let baseSize = particle.target_size.w; + + // Flash boost during ignition (frames 330–359). + let frame = params.frame; + var flashBoost = 1.0; + if (frame >= 330.0 && frame <= 359.0) { + let flashT = (frame - 330.0) / 29.0; // 0..1 over flash frames + // Sharp flash: peaks at frame 345, fades by 359. + flashBoost = 1.0 + 3.0 * (1.0 - smoothstep(330.0, 345.0, frame)) + + 2.0 * smoothstep(345.0, 359.0, frame); + } + + // Size: base + flash boost + pulse breathing. + let breath = 1.0 + 0.06 * params.pulse; + let halfSize = baseSize * 4.0 * breath * flashBoost; + + let world = pos + + camera.right.xyz * corner.x * halfSize + + camera.up.xyz * corner.y * halfSize; + + out.clip = camera.view_proj * vec4(world, 1.0); + out.uv = corner; + + // Color: violet dust (0.55, 0.32, 1.00) with spectral rim. + let phase = particle.color_phase.w; + let spectralW = fract(params.loop_phase + phase); + var spectralColor: vec3; + var stops = array, 4>( + vec3(0.55, 0.32, 1.00), // violet base + vec3(0.40, 0.60, 1.00), // blue-violet + vec3(0.70, 0.45, 1.00), // magenta-violet + vec3(0.55, 0.32, 1.00) // wrap + ); + let f = spectralW * 4.0; + let i = u32(floor(f)) % 4u; + let frac = f - floor(f); + spectralColor = mix(stops[i], stops[(i + 1u) % 4u], frac); + + // Alpha from state.w (convergence progress + fade). + let alpha = particle.state.w; + + out.color = spectralColor; + out.misc = vec4(baseSize, 0.0, 0.0, alpha); + return out; +} + +@fragment +fn fs_main(in: VSOut) -> @location(0) vec4 { + let d = length(in.uv); + if (d > 1.0) { + discard; + } + + let alpha = in.misc.w; + let core = smoothstep(0.25, 0.0, d); + let halo = pow(max(1.0 - d, 0.0), 2.0); + + // Additive glow: core + halo. + let intensity = core * 1.5 + halo * 0.6; + + // Flash boost during ignition. + let frame = params.frame; + var flash = 0.0; + if (frame >= 330.0 && frame <= 359.0) { + flash = smoothstep(330.0, 345.0, frame) * 2.0; + } + + let color = in.color * (intensity + flash); + + return vec4(color * params.brightness, 1.0); +} +`});this.renderPipeline=t.createRenderPipeline({label:"observatory-birth-render",layout:"auto",vertex:{module:i,entryPoint:"vs_main"},fragment:{module:i,entryPoint:"fs_main",targets:[{format:this.engine.sceneFormat,blend:{color:{srcFactor:"one",dstFactor:"one",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one",operation:"add"}}}]},primitive:{topology:"triangle-list"}});const s=this.nodeRenderer.cameraUniformBuffer;this.renderBindGroup=t.createBindGroup({label:"observatory-birth-render-bind",layout:this.renderPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:s}},{binding:2,resource:{buffer:this.particleBuffer}}]})}createHaloPipeline(t){const i=t.createShaderModule({label:"observatory-birth-halo",code:` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + _pad: f32, +}; + +struct Camera { + view_proj: mat4x4, + right: vec4, + up: vec4, +}; + +struct Node { + pos_radius: vec4, + vel_retention: vec4, + color_flags: vec4, + demo: vec4, +}; + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var camera: Camera; +@group(0) @binding(2) var nodes: array; + +struct VSOut { + @builtin(position) clip: vec4, + @location(0) uv: vec2, +}; + +@vertex +fn vs_main( + @builtin(vertex_index) vi: u32, + @builtin(instance_index) ii: u32 +) -> VSOut { + var out: VSOut; + if (ii >= u32(params.node_count)) { + out.clip = vec4(0.0, 0.0, 2.0, 1.0); + return out; + } + + let node = nodes[ii]; + let flags = u32(node.color_flags.w); + let is_target = (flags & 4u) != 0u; // flag 2: is birth target + + if (!is_target) { + out.clip = vec4(0.0, 0.0, 2.0, 1.0); + return out; + } + + // Flash halo: only visible during ignition (frames 330–359). + let frame = params.frame; + if (frame < 330.0 || frame > 359.0) { + out.clip = vec4(0.0, 0.0, 2.0, 1.0); + return out; + } + + // Halo ring: expands during flash, fades by frame 359. + let flashT = (frame - 330.0) / 29.0; // 0..1 + let ringRadius = 0.3 + flashT * 0.5; // expands 0.3 → 0.8 + + // Quad centered on target position. + let pos = node.pos_radius.xyz; + let cornerX = (f32(vi) / 3.0 - 1.0); // -1, 0, 1 (3 unique x) + let cornerY = (f32(vi % 3) / 1.5 - 1.0); // -1, 0, 1 + + // We use 4 vertices for a simple quad (vi 0..3). + let cx = cornerX * ringRadius; + let cy = cornerY * ringRadius; + + let world = pos + + camera.right.xyz * cx + + camera.up.xyz * cy; + + out.clip = camera.view_proj * vec4(world, 1.0); + + // UV for radial fade. + out.uv = vec2(cx / ringRadius, cy / ringRadius); + + return out; +} + +@fragment +fn fs_main(in: VSOut) -> @location(0) vec4 { + let d = length(in.uv); + if (d > 0.7) { + discard; + } + + // Flash: white-hot core, violet rim. + let flashIntensity = 1.0 - smoothstep(0.0, 0.7, d); + let color = vec3(0.7, 0.4, 1.0) * flashIntensity * 2.0; + + // Fade out as flash ends. + let frame = params.frame; + let fadeOut = 1.0 - smoothstep(345.0, 359.0, frame); + + return vec4(color * params.brightness * fadeOut, 1.0); +} +`});this.haloPipeline=t.createRenderPipeline({label:"observatory-birth-halo",layout:"auto",vertex:{module:i,entryPoint:"vs_main"},fragment:{module:i,entryPoint:"fs_main",targets:[{format:this.engine.sceneFormat,blend:{color:{srcFactor:"one",dstFactor:"one",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one",operation:"add"}}}]},primitive:{topology:"triangle-list"}});const s=this.nodeRenderer.cameraUniformBuffer;this.haloBindGroup=t.createBindGroup({label:"observatory-birth-halo-bind",layout:this.haloPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:s}},{binding:2,resource:{buffer:this.nodeRenderer.nodeStateBuffer}}]})}createEngravePipeline(t){if(this.engraveStepCount===0||!this.engraveBuffer)return;const e=t.createShaderModule({label:"observatory-birth-engrave",code:_l});this.engravePipeline=t.createRenderPipeline({label:"observatory-birth-engrave-pipeline",layout:"auto",vertex:{module:e,entryPoint:"vs_main"},fragment:{module:e,entryPoint:"fs_main",targets:[{format:this.engine.sceneFormat,blend:{color:{srcFactor:"one",dstFactor:"one",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one",operation:"add"}}}]},primitive:{topology:"triangle-list"}}),this.engraveBindGroup=t.createBindGroup({label:"observatory-birth-engrave-bind",layout:this.engravePipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:this.nodeRenderer.cameraUniformBuffer}},{binding:2,resource:{buffer:this.nodeRenderer.nodeStateBuffer}},{binding:3,resource:{buffer:this.engraveBuffer}}]})}compute(t,e){const i=this.engine.params[9];if(this.active=i===1,!this.active||!this.computePipeline||!this.computeBindGroup)return;const s=t.beginComputePass({label:"observatory-birth-compute"});s.setPipeline(this.computePipeline),s.setBindGroup(0,this.computeBindGroup),s.dispatchWorkgroups(Math.ceil(this.particleCount/64)),s.end()}render(t,e){this.active&&(this.renderPipeline&&this.renderBindGroup&&this.particleCount>0&&(t.setPipeline(this.renderPipeline),t.setBindGroup(0,this.renderBindGroup),t.draw(Rp,this.particleCount)),this.haloPipeline&&this.haloBindGroup&&e>=Ep&&e<=Op&&(t.setPipeline(this.haloPipeline),t.setBindGroup(0,this.haloBindGroup),t.draw(4,this.nodeRenderer.nodeCountValue)),this.engravePipeline&&this.engraveBindGroup&&this.engraveStepCount>0&&e>=Dp&&(t.setPipeline(this.engravePipeline),t.setBindGroup(0,this.engraveBindGroup),t.draw(6,this.engraveStepCount)))}dispose(){var t,e,i,s,n,r,a,o,h,c,u;(t=this.particleBuffer)==null||t.destroy(),this.particleBuffer=null,(i=(e=this.computePipeline)==null?void 0:e.destroy)==null||i.call(e),this.computePipeline=null,this.computeBindGroup=null,(n=(s=this.renderPipeline)==null?void 0:s.destroy)==null||n.call(s),this.renderPipeline=null,this.renderBindGroup=null,(a=(r=this.haloPipeline)==null?void 0:r.destroy)==null||a.call(r),this.haloPipeline=null,this.haloBindGroup=null,(o=this.haloIndexBuffer)==null||o.destroy(),this.haloIndexBuffer=null,(c=(h=this.engravePipeline)==null?void 0:h.destroy)==null||c.call(h),this.engravePipeline=null,this.engraveBindGroup=null,(u=this.engraveBuffer)==null||u.destroy(),this.engraveBuffer=null}}function Np(l){const t=l.hopSlot.toFixed(1),e=l.causeDepth.toFixed(1);return` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + capture_mode: f32, + live_kind: f32, + live_frame: f32, + live_energy: f32, + projection_days: f32, +}; + +struct Node { + pos_radius: vec4, + vel_retention: vec4, + color_flags: vec4, + demo: vec4, +}; + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var nodes: array; +// 1 u32/node: bits 0-15 hopDepth (0xffff unreached), 16 failure, 17 cause, +// 18 lookalike, 19-21 lookalike k (rescue-plan.ts packing). +@group(0) @binding(2) var wave: array; + +const HOP_SLOT: f32 = ${t}; +const CAUSE_DEPTH: f32 = ${e}; +const TAU: f32 = 6.28318530717958647; + +fn env(f: f32, a0: f32, a1: f32, r0: f32, r1: f32) -> f32 { + return smoothstep(a0, a1, f) * (1.0 - smoothstep(r0, r1, f)); +} + +fn arrival(d: f32) -> f32 { + return min(260.0 + HOP_SLOT * d, 514.0); +} + +@compute @workgroup_size(64) +fn rescue_choreo(@builtin(global_invocation_id) id: vec3) { + let i = id.x; + if (i >= u32(params.node_count)) { + return; + } + if (i >= arrayLength(&wave)) { + return; + } + // Belt-and-braces atop the TS gate: salience-rescue is demo index 2. + if (params.demo_id != 2.0) { + return; + } + + let packed = wave[i]; + let depth_u = packed & 0xffffu; + let d = f32(depth_u); + let is_failure = (packed & 0x10000u) != 0u; + let is_cause = (packed & 0x20000u) != 0u; + let is_look = (packed & 0x40000u) != 0u; + let look_k = f32((packed >> 19u) & 0x7u); + + let f = params.frame; + + var dx = 0.0; + var dy = 0.0; + var dz = 0.0; + var dw = 0.0; + + if (is_failure) { + // Detonation spike, wound simmer, recognition flare as the arc lands. + dw = dw + env(f, 90.0, 96.0, 120.0, 168.0); + dw = dw + 0.35 * env(f, 100.0, 130.0, 600.0, 656.0); + dw = dw + 0.35 * env(f, 552.0, 562.0, 580.0, 640.0); + // Symptom backlight while the cause burns. + dx = dx + 0.4 * env(f, 556.0, 566.0, 620.0, 668.0); + } + if (!is_failure && depth_u >= 1u && depth_u <= 12u) { + // Shockwave blink: crimson concussion, 3 frames/hop of REAL graph distance. + dw = dw + 0.75 * exp(-0.3 * d) + * env(f, 92.0 + 3.0 * d, 96.0 + 3.0 * d, 96.0 + 3.0 * d, 122.0 + 3.0 * d); + } + if (is_look) { + let fk = 138.0 + 28.0 * look_k; + // Searchlight flare — cold pop, sequential, on camera. + dy = dy + env(f, fk - 6.0, fk, fk + 10.0, fk + 26.0); + // Ash residue — the struck-through lookalike stays in frame until the verdict. + dy = dy + 0.15 * smoothstep(fk + 10.0, fk + 26.0, f) * (1.0 - smoothstep(600.0, 656.0, f)); + } + if (!is_failure && depth_u >= 1u && d <= CAUSE_DEPTH) { + let wd = arrival(d); + // Interrogation flicker: 24 integer sine cycles per loop, per-depth phase. + let flicker = 0.75 + 0.25 * sin(TAU * 24.0 * params.loop_phase + 1.7 * d); + dz = dz + env(f, wd - 10.0, wd, wd + 28.0, wd + 64.0) * flicker; + // Scanned ember. + dz = dz + 0.08 * smoothstep(wd + 28.0, wd + 64.0, f) * (1.0 - smoothstep(580.0, 640.0, f)); + } + if (is_cause) { + // Cause ignition rides the EXISTING recall response (render-nodes.wgsl): + // spectral() thin-film band + white-hot core + sprite swell at full intensity. + dx = dx + env(f, 520.0, 546.0, 640.0, 700.0); + } + + // WGSL forbids swizzle stores — reconstruct the FULL vec4; pos/vel/color + // lanes pass through untouched (the force sim owns them). + var node = nodes[i]; + node.demo = vec4(dx, dy, dz, dw); + nodes[i] = node; +} +`}const Up=2;class Vp{constructor(t){z(this,"engine");z(this,"nodeRenderer");z(this,"plan");z(this,"pipeline",null);z(this,"bindGroup",null);z(this,"waveBuffer",null);this.engine=t.engine,this.nodeRenderer=t.nodeRenderer,this.plan=t.plan,this.engine.addPass(this)}upload(){var i;const t=this.engine.gpuDevice;if(!t||!this.engine.paramsBuffer||!this.plan.viable||!this.nodeRenderer.nodeStateBuffer||this.nodeRenderer.nodeCountValue===0)return;(i=this.waveBuffer)==null||i.destroy(),this.waveBuffer=t.createBuffer({label:"observatory-rescue-wave",size:Math.max(4,this.plan.waveData.byteLength),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),t.queue.writeBuffer(this.waveBuffer,0,this.plan.waveData.buffer);const e=t.createShaderModule({label:"observatory-rescue-choreo",code:Np(this.plan.consts)});this.pipeline=t.createComputePipeline({label:"observatory-rescue-choreo",layout:"auto",compute:{module:e,entryPoint:"rescue_choreo"}}),this.bindGroup=t.createBindGroup({label:"observatory-rescue-bind",layout:this.pipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:this.nodeRenderer.nodeStateBuffer}},{binding:2,resource:{buffer:this.waveBuffer}}]})}compute(t){if(this.engine.params[9]!==Up||!this.pipeline||!this.bindGroup)return;const e=this.nodeRenderer.nodeCountValue;if(e===0)return;const i=t.beginComputePass({label:"observatory-rescue-choreo"});i.setPipeline(this.pipeline),i.setBindGroup(0,this.bindGroup),i.dispatchWorkgroups(Math.ceil(e/64)),i.end()}dispose(){var t;(t=this.waveBuffer)==null||t.destroy(),this.waveBuffer=null,this.pipeline=null,this.bindGroup=null}}const Gp=4,Wp=90,Hp=138,qp=28,Xp=260,Yp=514,Sh=560,Jp=600,oi=65535,Zp=48,$p={causal:0,temporal:1,shared_concepts:2,complementary:3,semantic:4};function Sl(l,t){const e=new ea({seed:t});return wl(l,e.state.rng).data}function jp(l){const t=new Uint32Array(l.nodes.length);for(const e of l.edges)t[e.sourceIndex]++,t[e.targetIndex]++;return t}function Kp(l,t){const e=l.nodes.length;if(e===0)return-1;const i=jp(l),s=r=>{const a=l.nodes[r],o=new Set(a.tags.map(f=>f.toLowerCase()));let h=0;(o.has("failure")||o.has("guardrail"))&&(h+=3),(o.has("confusion")||o.has("weak-spot"))&&(h+=2),h+=Math.min(i[r],8)/8;const c=t[r*Mt+0],u=t[r*Mt+1],d=t[r*Mt+2];return Math.sqrt(c*c+u*u+d*d)>=54&&(h+=.5),h},n=[r=>r!==l.centerIndex&&!l.nodes[r].suppressed&&i[r]>=2,r=>r!==l.centerIndex&&!l.nodes[r].suppressed,r=>r!==l.centerIndex,()=>!0];for(const r of n){let a=-1,o=-1/0;for(let h=0;ho&&(o=c,a=h)}if(a>=0)return a}return-1}function Qp(l,t){const e=l.nodes.length,i=new Uint16Array(e).fill(oi),s=new Int32Array(e).fill(-1);if(t<0||t>=e)return{depths:i,parents:s};const n=Array.from({length:e},()=>[]);for(const a of l.edges){const o=$p[a.type]??5;n[a.sourceIndex].push({nbr:a.targetIndex,rank:o}),n[a.targetIndex].push({nbr:a.sourceIndex,rank:o})}for(const a of n)a.sort((o,h)=>o.rank-h.rank||o.nbr-h.nbr);i[t]=0;const r=[t];for(let a=0;at.nodes[f].retention<=.45);a.length===0&&(a=r);const o=new Map;let h=1/0,c=-1/0;for(const f of a){const p=s.get(t.nodes[f].id),m=p?Date.parse(p):NaN;Number.isFinite(m)&&(o.set(f,m),mc&&(c=m))}const u=f=>{const p=o.get(f);return p===void 0?0:c===h?1:(c-p)/(c-h)},d=f=>2*(1-t.nodes[f].retention)+.5*Math.min(e[f],6)/6+.5*u(f);return a.sort((f,p)=>{const m=d(f),g=d(p);return g!==m?g-m:e[p]!==e[f]?e[p]-e[f]:f-p}),{index:a[0],depth:e[a[0]]}}return{index:-1,depth:0}}function em(l,t,e,i,s){const n=l[e*Mt+0],r=l[e*Mt+1],a=l[e*Mt+2],o=[];for(let h=0;hh.d2-c.d2||h.i-c.i),o.slice(0,Gp).map(h=>h.i)}function ta(l){const t=Math.max(1,l);return Math.min(84,Math.max(14,Math.floor(252/t)))}function im(l,t){return Math.min(Xp+t*l,Yp)}function Ah(l){return Hp+qp*l}function ye(l){return l.length>64?l.slice(0,64)+"…":l}const ps=4;function Wr(l){const t=new Uint32Array(l);return t.fill(oi),{viable:!1,failureIndex:-1,causeIndex:-1,lookalikeIndices:[],hopDepths:new Uint16Array(l).fill(oi),causeDepth:0,hopSlot:ta(3),waveData:t,pathData:new Uint32Array(4),pathMetas:[],spineBeats:[],verdict:{headline:"root cause found",causeLabel:"",failureLabel:"",causeDate:"",hops:0,k:0,receipt:""},consts:{hopSlot:ta(3),causeDepth:3}}}function sm(l,t,e){var L;const i=t.nodes.length;if(i===0)return Wr(0);const s=Sl(t,e),n=Kp(t,s);if(n<0)return Wr(i);const{depths:r,parents:a}=Qp(t,n),o=tm(l,t,r,n);if(o.index<0){const I=Wr(i);return I.failureIndex=n,I.hopDepths=r,I}const h=o.index,c=Math.max(1,o.depth),u=ta(c),d=I=>im(I,u),f=em(s,i,n,h,t.centerIndex),p=f.length,m=new Uint32Array(i);for(let I=0;I{m[I]|=1<<18|U<<19});const g=[];f.forEach((I,U)=>{g.push({src:n,dst:I,bf:Ah(U),kind:ze.probe,beatKind:"probe"})});const x=[];{let I=h;for(;I!==n&&I>=0&&a[I]>=0;)x.push(I),I=a[I]}const y=new Set(x),b=[];for(let I=0;Ic||a[I]<0||b.push(I)}b.sort((I,U)=>r[I]-r[U]||I-U);const v=[...x.slice().reverse(),...b].slice(0,Zp);v.sort((I,U)=>r[I]-r[U]||I-U);for(const I of v)g.push({src:a[I],dst:I,bf:d(r[I]),kind:ze.backwardCause,beatKind:"wave"});g.push({src:h,dst:n,bf:Sh,kind:ze.backwardCause,beatKind:"arc"});const _=new Uint32Array(Math.max(1,g.length)*ps),M=[];g.forEach((I,U)=>{_[U*ps+0]=I.src,_[U*ps+1]=I.dst,_[U*ps+2]=I.bf,_[U*ps+3]=I.kind,M.push({sourceIndex:I.src,targetIndex:I.dst,beatFrame:I.bf,kind:I.kind,beatKind:I.beatKind,nodeId:t.nodes[I.dst].id,label:ye(t.nodes[I.dst].label)})});const A=ye(t.nodes[n].label),S=ye(t.nodes[h].label),T=[],C=(I,U,wt,Ct)=>{T.push({sourceIndex:n,targetIndex:n,beatFrame:I,kind:U,beatKind:"rescue",nodeId:Ct,label:wt})};C(Wp,1,`failure: ${A}`,t.nodes[n].id),f.forEach((I,U)=>{C(Ah(U),0,`lookalike ✗ · ${ye(t.nodes[I].label)}`,t.nodes[I].id)}),C(d(1),1,"reaching backward through time","rescue-wave-start"),c>=2&&d(c)!==d(1)&&C(d(c),1,`scrubbing past · ${c} hops`,"rescue-wave-deep"),C(Sh,1,`causal arc · ${S}`,t.nodes[h].id),C(Jp,1,"root cause found","rescue-verdict");const P=((L=l.nodes.find(I=>I.id===t.nodes[h].id))==null?void 0:L.createdAt)??"",V=P?P.slice(0,10):"",q={headline:"root cause found",causeLabel:S,failureLabel:A,causeDate:V,hops:c,k:p,receipt:`${c} hops back · ${V} · vector search: 0 for ${p}`};return{viable:!0,failureIndex:n,causeIndex:h,lookalikeIndices:f,hopDepths:r,causeDepth:c,hopSlot:u,waveData:m,pathData:_,pathMetas:M,spineBeats:T,verdict:q,consts:{hopSlot:u,causeDepth:c}}}const nm=` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + capture_mode: f32, + live_kind: f32, + live_frame: f32, + live_energy: f32, + projection_days: f32, +}; + +struct Node { + pos_radius: vec4, + vel_retention: vec4, + color_flags: vec4, + demo: vec4, +}; + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var nodes: array; +// 1 u32/node: bits 0-7 rank, 8 isDrifting, 9 isRescued, 10-11 rescue slot k +// (forgetting-plan.ts packing). Non-drifting nodes are exactly 0. +@group(0) @binding(2) var horizon: array; + +fn env(f: f32, a0: f32, a1: f32, r0: f32, r1: f32) -> f32 { + return smoothstep(a0, a1, f) * (1.0 - smoothstep(r0, r1, f)); +} + +@compute @workgroup_size(64) +fn forgetting_choreo(@builtin(global_invocation_id) id: vec3) { + let i = id.x; + if (i >= u32(params.node_count)) { + return; + } + if (i >= arrayLength(&horizon)) { + return; + } + // Belt-and-braces atop the TS gate: forgetting-horizon is demo index 3. + if (params.demo_id != 3.0) { + return; + } + + let packed = horizon[i]; + let is_drifting = (packed & 0x100u) != 0u; + let is_rescued = (packed & 0x200u) != 0u; + let rank01 = f32(packed & 0xffu) / 255.0; + let k = f32((packed >> 10u) & 0x3u); + + let f = params.frame; + // Master release: every lane is exactly 0.0 by frame 712 — the seam wall. + let master = 1.0 - smoothstep(660.0, 712.0, f); + + var dx = 0.0; + var dz = 0.0; + + if (is_drifting) { + let onset = 90.0 + 42.0 * rank01; + // Phase 1 — the drift: dim + fall to the 0.55 plateau, retention-staggered. + let phase1 = 0.55 * smoothstep(onset, onset + 210.0, f); + if (is_rescued) { + let rk = 318.0 + 60.0 * k; + // Snap-back begins 22 frames before the recall ribbon lands at rk. + dz = master * phase1 * (1.0 - smoothstep(rk - 22.0, rk + 6.0, f)); + // Ignition rides the EXISTING recall response (render-nodes.wgsl): + // spectral() thin-film band + white-hot core + sprite swell for free. + dx = master * env(f, rk - 26.0, rk, rk + 60.0, rk + 130.0); + } else { + // Phase 2 — the sink: to exactly 1.0 over 640..660 (the ~6% floor era). + let phase2 = 0.45 * smoothstep(480.0 + 24.0 * rank01, 640.0, f); + dz = master * (phase1 + phase2); + } + } + + // WGSL forbids swizzle stores — reconstruct the FULL vec4; pos/vel/color + // lanes pass through untouched (the force sim owns them). demo.y and + // demo.w are hard 0.0: the rescue/firewall grammars can never fire here. + var node = nodes[i]; + node.demo = vec4(dx, 0.0, dz, 0.0); + nodes[i] = node; +} +`,rm=3;class am{constructor(t){z(this,"engine");z(this,"nodeRenderer");z(this,"plan");z(this,"pipeline",null);z(this,"bindGroup",null);z(this,"horizonBuffer",null);this.engine=t.engine,this.nodeRenderer=t.nodeRenderer,this.plan=t.plan,this.engine.addPass(this)}upload(){var i;const t=this.engine.gpuDevice;if(!t||!this.engine.paramsBuffer||!this.plan.viable||!this.nodeRenderer.nodeStateBuffer||this.nodeRenderer.nodeCountValue===0)return;(i=this.horizonBuffer)==null||i.destroy(),this.horizonBuffer=t.createBuffer({label:"observatory-forgetting-horizon",size:Math.max(4,this.plan.horizonData.byteLength),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),t.queue.writeBuffer(this.horizonBuffer,0,this.plan.horizonData.buffer);const e=t.createShaderModule({label:"observatory-forgetting-choreo",code:nm});this.pipeline=t.createComputePipeline({label:"observatory-forgetting-choreo",layout:"auto",compute:{module:e,entryPoint:"forgetting_choreo"}}),this.bindGroup=t.createBindGroup({label:"observatory-forgetting-bind",layout:this.pipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:this.nodeRenderer.nodeStateBuffer}},{binding:2,resource:{buffer:this.horizonBuffer}}]})}compute(t){if(this.engine.params[9]!==rm||!this.pipeline||!this.bindGroup)return;const e=this.nodeRenderer.nodeCountValue;if(e===0)return;const i=t.beginComputePass({label:"observatory-forgetting-choreo"});i.setPipeline(this.pipeline),i.setBindGroup(0,this.bindGroup),i.dispatchWorkgroups(Math.ceil(e/64)),i.end()}dispose(){var t;(t=this.horizonBuffer)==null||t.destroy(),this.horizonBuffer=null,this.pipeline=null,this.bindGroup=null}}const om=318,hm=60,Al=3,lm=132,cm=60,um=540,dm=660;function fm(l){const t=[];for(let s=0;sl.nodes[s].retention-l.nodes[n].retention||s-n);const e=t.length;if(e===0)return[];const i=Math.min(e,Math.max(Math.min(Al,e),Math.round(.25*e)));return t.slice(0,i)}function pm(l,t){const e=new Uint32Array(l.nodes.length);for(const n of l.edges)e[n.sourceIndex]++,e[n.targetIndex]++;const i=n=>2*l.nodes[n].retention+Math.min(e[n],8)/8;return t.slice().sort((n,r)=>i(r)-i(n)||n-r).slice(0,Math.min(Al,t.length))}function Ih(l){return om+hm*l}const ms=4;function mm(l){return{viable:!1,driftingIndices:[],rescuedIndices:[],horizonData:new Uint32Array(l),pathData:new Uint32Array(4),pathMetas:[],spineBeats:[]}}function gm(l){const t=l.nodes.length,e=fm(l);if(t<2||e.length<1)return mm(t);const i=pm(l,e),s=e.length,n=new Uint32Array(t);e.forEach((d,f)=>{const p=Math.round(255*f/Math.max(1,s-1));n[d]=p&255|256}),i.forEach((d,f)=>{n[d]|=512|f<<10});const r=new Uint32Array(Math.max(1,i.length)*ms),a=[];i.forEach((d,f)=>{const p=Ih(f);r[f*ms+0]=l.centerIndex,r[f*ms+1]=d,r[f*ms+2]=p,r[f*ms+3]=ze.recall,a.push({sourceIndex:l.centerIndex,targetIndex:d,beatFrame:p,kind:ze.recall,beatKind:"recall",nodeId:l.nodes[d].id,label:ye(l.nodes[d].label)})});const o=[],h=(d,f,p,m)=>{o.push({sourceIndex:l.centerIndex,targetIndex:l.centerIndex,beatFrame:d,kind:f,beatKind:"horizon",nodeId:m,label:p})},c=new Set(i),u=e.filter(d=>!c.has(d)).slice(0,3);return u.forEach((d,f)=>{const p=Math.round(l.nodes[d].retention*100);h(lm+cm*f,1,`fading: ${ye(l.nodes[d].label)} · retention ${p}%`,l.nodes[d].id)}),i.forEach((d,f)=>{h(Ih(f),0,`recalled: ${ye(l.nodes[d].label)}`,l.nodes[d].id)}),u.length>0&&h(um,1,"the unrecalled sink · nothing is deleted","horizon-sink"),h(dm,0,"every memory still retrievable","horizon-retrievable"),{viable:!0,driftingIndices:e,rescuedIndices:i,horizonData:n,pathData:r,pathMetas:a,spineBeats:o}}const ym=` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + capture_mode: f32, + live_kind: f32, + live_frame: f32, + live_energy: f32, + projection_days: f32, +}; + +struct Node { + pos_radius: vec4, + vel_retention: vec4, + color_flags: vec4, + demo: vec4, +}; + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var nodes: array; +// 1 u32/node: bits 0-7 shockDelay, 8 isIntruder, 9 isSeverNeighbor, +// 10-13 sever slot k (firewall-plan.ts packing). Every node carries a delay. +@group(0) @binding(2) var fire: array; + +const TAU: f32 = 6.28318530717958647; + +fn env(f: f32, a0: f32, a1: f32, r0: f32, r1: f32) -> f32 { + return smoothstep(a0, a1, f) * (1.0 - smoothstep(r0, r1, f)); +} + +@compute @workgroup_size(64) +fn firewall_choreo(@builtin(global_invocation_id) id: vec3) { + let i = id.x; + if (i >= u32(params.node_count)) { + return; + } + if (i >= arrayLength(&fire)) { + return; + } + // Fire in TWO modes: the deterministic demo (demo_id == 4, wrapped loop + // frame) OR a LIVE event (live_kind == 1, driven by live_frame = frames + // since a real MemorySuppressed / contradiction fired). Anything else → + // no-op, and other grammars own the lanes. + let is_demo = params.demo_id == 4.0; + let is_live = params.live_kind == 1.0; + if (!is_demo && !is_live) { + return; + } + + let packed = fire[i]; + let delay = f32(packed & 0xffu); + let is_intruder = (packed & 0x100u) != 0u; + let is_sever = (packed & 0x200u) != 0u; + let k = f32((packed >> 10u) & 0xfu); + + // Live mode replays the SAME 720-frame beat map from the event: f = + // live_frame (clamped to the loop window), loop_phase derived from it so the + // integer-cycle sines still resolve. Demo mode reads the wrapped loop clock. + var f = params.frame; + var lp = params.loop_phase; + if (is_live) { + f = clamp(params.live_frame, 0.0, 719.0); + lp = f / 720.0; + } + + var fy = 0.0; + var fw = 0.0; + + if (is_intruder) { + // Intrusion flare: sickly strobe, band (0..1], 36 integer cycles/loop. + // C¹ handoff into the membrane over 330-332 (the rise sweeps the flare + // band exactly once — the condensation read is intentional). + fy = env(f, 90.0, 96.0, 310.0, 332.0) + * (0.55 + 0.45 * sin(TAU * 36.0 * lp)); + // Membrane: sustained ring band [2.60..2.90], 12 integer cycles/loop. + fy = fy + env(f, 330.0, 352.0, 620.0, 680.0) + * (2.75 + 0.15 * sin(TAU * 12.0 * lp)); + // Source detonation as the front leaves. + fw = env(f, 148.0, 153.0, 162.0, 196.0); + } else { + // Crimson rim as the radial front passes: arrival A = 150 + delay, + // amplitude fades with distance; A ∈ [150, 294] ⇒ all rims dead by 320. + let a = 150.0 + delay; + let amp = 0.9 - 0.45 * (delay / 144.0); + fw = amp * env(f, a - 2.0, a + 3.0, a + 8.0, a + 26.0); + if (is_sever) { + // Node-side receipt of the severed edge; last release 474. + let sk = 345.0 + 21.0 * k; + fw = fw + 0.6 * env(f, sk - 4.0, sk, sk + 6.0, sk + 24.0); + } + } + + // WGSL forbids swizzle stores — reconstruct the FULL vec4; pos/vel/color + // lanes pass through untouched (the force sim owns them). demo.x and + // demo.z are hard 0.0: the recall and horizon grammars can never fire here. + var node = nodes[i]; + node.demo = vec4(0.0, fy, 0.0, fw); + nodes[i] = node; +} +`,xm=4;class Il{constructor(t){z(this,"engine");z(this,"nodeRenderer");z(this,"plan");z(this,"pipeline",null);z(this,"bindGroup",null);z(this,"fireBuffer",null);this.engine=t.engine,this.nodeRenderer=t.nodeRenderer,this.plan=t.plan,this.engine.addPass(this)}upload(){var i;const t=this.engine.gpuDevice;if(!t||!this.engine.paramsBuffer||!this.plan.viable||!this.nodeRenderer.nodeStateBuffer||this.nodeRenderer.nodeCountValue===0)return;(i=this.fireBuffer)==null||i.destroy(),this.fireBuffer=t.createBuffer({label:"observatory-firewall-fire",size:Math.max(4,this.plan.fireData.byteLength),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),t.queue.writeBuffer(this.fireBuffer,0,this.plan.fireData.buffer);const e=t.createShaderModule({label:"observatory-firewall-choreo",code:ym});this.pipeline=t.createComputePipeline({label:"observatory-firewall-choreo",layout:"auto",compute:{module:e,entryPoint:"firewall_choreo"}}),this.bindGroup=t.createBindGroup({label:"observatory-firewall-bind",layout:this.pipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:this.nodeRenderer.nodeStateBuffer}},{binding:2,resource:{buffer:this.fireBuffer}}]})}rearm(t){if(this.plan=t,!!this.engine.gpuDevice){if(!t.viable){this.pipeline=null,this.bindGroup=null;return}this.upload()}}get armed(){return this.plan.viable&&!!this.pipeline&&!!this.bindGroup}compute(t){const e=this.engine.params[9]===xm,i=this.engine.params[12]===1;if(!e&&!i||!this.pipeline||!this.bindGroup)return;const s=this.nodeRenderer.nodeCountValue;if(s===0)return;const n=t.beginComputePass({label:"observatory-firewall-choreo"});n.setPipeline(this.pipeline),n.setBindGroup(0,this.bindGroup),n.dispatchWorkgroups(Math.ceil(s/64)),n.end()}dispose(){var t;(t=this.fireBuffer)==null||t.destroy(),this.fireBuffer=null,this.pipeline=null,this.bindGroup=null}}const bm=90,vm=150,wm=144,_m=330,Mm=345,Sm=21,Am=6,Im=480,Tm=["failure","guardrail","confusion"];function Cm(l){const t=l.nodes.length;if(t===0)return-1;const e=new Uint32Array(t);for(const n of l.edges)e[n.sourceIndex]++,e[n.targetIndex]++;const i=n=>l.nodes[n].tags.some(r=>Tm.includes(r.toLowerCase())),s=[n=>n!==l.centerIndex&&!l.nodes[n].suppressed&&i(n),n=>n!==l.centerIndex&&!l.nodes[n].suppressed&&e[n]<=1,n=>n!==l.centerIndex&&!l.nodes[n].suppressed,n=>n!==l.centerIndex];for(const n of s){let r=-1;for(let a=0;a=0)return r}return-1}function Bm(l,t,e){const i=l[e*Mt+0],s=l[e*Mt+1],n=l[e*Mt+2],r=new Array(t);let a=0;for(let h=0;ha&&(a=f)}a<1e-6&&(a=1);const o=new Array(t);for(let h=0;hi-s).slice(0,Am)}function Th(l){return Mm+Sm*l}const gs=4;function km(l){return Na(l)}function Na(l){return{viable:!1,intruderIndex:-1,severedNeighborIndices:[],shockDelays:[],fireData:new Uint32Array(l),pathData:new Uint32Array(4),pathMetas:[],spineBeats:[],verdict:{headline:"threat quarantined",intruderLabel:"",receipt:"memory held in review · Memory PR opened"}}}function Pm(l,t){return Tl(l,t,Cm(l))}function Fm(l,t,e){return e<0||e>=l.nodes.length?Na(l.nodes.length):Tl(l,t,e)}function Tl(l,t,e){const i=l.nodes.length;if(i===0||e<0)return Na(i);const s=Sl(l,t),n=Bm(s,i,e),r=zm(l,e),a=new Uint32Array(i);for(let p=0;p{a[p]|=512|m<<10});const o=new Uint32Array(Math.max(1,r.length)*gs),h=[];r.forEach((p,m)=>{const g=Th(m);o[m*gs+0]=e,o[m*gs+1]=p,o[m*gs+2]=g,o[m*gs+3]=ze.probe,h.push({sourceIndex:e,targetIndex:p,beatFrame:g,kind:ze.probe,beatKind:"sever",nodeId:l.nodes[p].id,label:ye(l.nodes[p].label)})});const c=ye(l.nodes[e].label),u=[],d=(p,m,g)=>{u.push({sourceIndex:e,targetIndex:e,beatFrame:p,kind:1,beatKind:"firewall",nodeId:g,label:m})};return d(bm,`intrusion · ${c}`,l.nodes[e].id),d(vm,"immune response · shockwave","firewall-shock"),d(_m,"membrane forming","firewall-membrane"),r.forEach((p,m)=>{d(Th(m),`edge severed ✗ · ${ye(l.nodes[p].label)}`,l.nodes[p].id)}),d(Im,"threat quarantined","firewall-verdict"),{viable:!0,intruderIndex:e,severedNeighborIndices:r,shockDelays:n,fireData:a,pathData:o,pathMetas:h,spineBeats:u,verdict:{headline:"threat quarantined",intruderLabel:c,receipt:"memory held in review · Memory PR opened"}}}const Ua=.1542;function Rm(l=Ua){return Math.pow(.9,-1/l)-1}function Em(l,t,e=Ua){if(!(l>0))return 0;if(!(t>0))return 1;const i=Rm(e),s=Math.pow(1+i*t/l,-e);return s<0?0:s>1?1:s}const Om=864e5;function Dm(l,t,e=0){if(!l)return e>0?e:0;const i=Date.parse(l);if(!Number.isFinite(i))return e>0?e:0;const s=(t-i)/Om;return Math.max(0,s)+Math.max(0,e)}function Lm(l,t,e,i=0,s=Ua){return l===void 0||!Number.isFinite(l)?1:Em(l,Dm(t,e,i),s)}const Ch={[At.firewall]:620,[At.dreamStorm]:360,[At.causalRecall]:260,[At.birth]:180};class Nm{constructor(t){z(this,"engine");z(this,"renderer");z(this,"graph");z(this,"response");z(this,"seed");z(this,"projectionDays");z(this,"onApply");z(this,"onFirewall");z(this,"firewall",null);z(this,"liveEdges",[]);z(this,"liveEdgeKeys",new Set);z(this,"edgesDirty",!1);z(this,"indexById");z(this,"active",null);z(this,"dreamOpen",!1);z(this,"retention");z(this,"hasLiveDecay",!1);z(this,"eventsSeen",0);z(this,"lastDecayFrame",-1e3);z(this,"lastAppliedMs",0);z(this,"seeded",!1);z(this,"lastProj",-1);this.engine=t.engine,this.renderer=t.renderer,this.graph=t.graph,this.response=t.response,this.seed=t.seed,this.projectionDays=t.projectionDays??(()=>0),this.onApply=t.onApply,this.onFirewall=t.onFirewall,this.indexById=t.graph.indexById;const e=t.graph.nodes.length;this.retention=new Float32Array(e);for(let s=0;se&&(e=s)}this.lastAppliedMs=e,this.seeded=!0}ingest(t){if(t.length===0)return;if(!this.seeded){this.seedWatermark(t);return}let e=this.lastAppliedMs;for(let i=t.length-1;i>=0;i--){const s=t[i],n=zh(s);n>this.lastAppliedMs&&(this.decodeAndArm(s,this.engine.totalFrames),n>e&&(e=n))}this.lastAppliedMs=e}decodeAndArm(t,e){var s;const i=t.data??{};switch(t.type){case"MemorySuppressed":{const n=Fi(i.id);if(!n||!this.indexById.has(n))return;this.arm({kind:At.firewall,startFrame:e,targetId:n,relatedIds:this.neighborsOf(n),pairs:[],scalar:ys(i.estimated_cascade)});break}case"DeepReferenceCompleted":{const r=Um(i.contradiction_pairs).filter(([h,c])=>this.indexById.has(h)&&this.indexById.has(c));if(r.length>0){const h=r[0][0];this.arm({kind:At.firewall,startFrame:e,targetId:h,relatedIds:r.flatMap(c=>c).filter(c=>c!==h),pairs:r,scalar:r.length});return}const a=Fi(i.primary_id),o=kh(i.supporting_ids).filter(h=>this.indexById.has(h));a&&this.indexById.has(a)&&this.arm({kind:At.causalRecall,startFrame:e,targetId:a,relatedIds:o,pairs:[],scalar:ys(i.confidence)});break}case"BackfillFired":case"CausalReceipt":{const n=kh(i.path_ids??i.causal_path).filter(a=>this.indexById.has(a)),r=Fi(i.target_id??i.effect_id)||n[0];r&&this.indexById.has(r)&&this.arm({kind:At.causalRecall,startFrame:e,targetId:r,relatedIds:n.filter(a=>a!==r),pairs:[],scalar:n.length});break}case"DreamStarted":{this.dreamOpen=!0,this.arm({kind:At.dreamStorm,startFrame:e,targetId:"",relatedIds:[],pairs:[],scalar:ys(i.memory_count)});break}case"DreamCompleted":{this.dreamOpen=!1;const n=ys(i.connections_found);this.active&&this.active.kind===At.dreamStorm?this.active.scalar=Math.max(this.active.scalar,n):this.arm({kind:At.dreamStorm,startFrame:e,targetId:"",relatedIds:[],pairs:[],scalar:n});break}case"ConnectionDiscovered":{const n=this.indexById.get(Fi(i.source_id)),r=this.indexById.get(Fi(i.target_id));if(n===void 0||r===void 0||n===r)break;const a=Bh(n,r);if(this.liveEdgeKeys.has(a))break;this.liveEdgeKeys.add(a),this.liveEdges.push({sourceIndex:n,targetIndex:r,weight:ys(i.weight)||.5,type:Fi(i.connection_type)||"semantic"}),this.edgesDirty=!0,this.dreamOpen&&((s=this.active)==null?void 0:s.kind)===At.dreamStorm&&(this.active.scalar+=1);break}}}arm(t){var e;if(this.active=t,this.eventsSeen++,t.kind===At.firewall){const i=this.indexById.get(t.targetId);if(i===void 0)return;const s=Fm(this.graph,this.seed,i);if(!s.viable)return;this.firewall||(this.firewall=new Il({engine:this.engine,nodeRenderer:this.renderer,plan:km(this.graph.nodes.length)})),this.firewall.rearm(s),(e=this.onFirewall)==null||e.call(this,{intruderLabel:s.verdict.intruderLabel,startFrame:t.startFrame})}if(t.kind===At.causalRecall&&this.indexById.has(t.targetId)){const i=Ml(this.response,this.graph,8,{preferCausal:!0,centerId:t.targetId});i.steps.length>0&&this.renderer.setPathSteps(i.data,i.steps)}}neighborsOf(t){const e=this.indexById.get(t);if(e===void 0)return[];const i=[];for(const s of this.graph.edges)if(s.sourceIndex===e?i.push(this.graph.nodes[s.targetIndex].id):s.targetIndex===e&&i.push(this.graph.nodes[s.sourceIndex].id),i.length>=12)break;return i}drain(t){var s;const e=this.engine.params;this.edgesDirty&&(this.renderer.setEdges(this.liveEdges),this.edgesDirty=!1);const i=this.projectionDays();if(e[zt.projectionDays]=i,this.hasLiveDecay&&(t-this.lastDecayFrame>=6||i!==this.lastProj)&&(this.recomputeDecay(i),this.lastDecayFrame=t,this.lastProj=i),this.active){const n=Ch[this.active.kind]??300,r=t-this.active.startFrame;r>n+140?(this.active=null,e[zt.liveKind]=At.none,e[zt.liveEnergy]=0):(e[zt.liveKind]=this.active.kind,e[zt.liveFrame]=Math.max(0,r),e[zt.liveEnergy]=this.energyEnvelope(this.active,r,!1))}else e[zt.liveKind]=At.none,e[zt.liveEnergy]=0;(s=this.onApply)==null||s.call(this,{simFrame:t,activeKind:e[zt.liveKind],eventsSeen:this.eventsSeen})}debugState(){const t=this.engine.params;return{activeKind:t[zt.liveKind],liveEnergy:t[zt.liveEnergy],liveFrame:t[zt.liveFrame],edgeCount:this.liveEdges.length,eventsSeen:this.eventsSeen}}energyEnvelope(t,e,i){if(e<0)return 0;const s=Ch[t.kind]??300;if(t.kind===At.dreamStorm){const a=Math.min(1,e/45),o=1-Math.max(0,(e-(s-90))/90),h=Math.min(1.4,.7+t.scalar*.02);return Math.max(0,a*Math.min(1,o)*h)}const n=Math.min(1,e/24),r=1-Math.max(0,(e-s)/140);return Math.max(0,n*Math.min(1,r))}recomputeDecay(t){const e=this.engine.wallNowMs,i=this.graph.nodes;for(let s=0;stypeof t=="string"):[]}function Um(l){if(!Array.isArray(l))return[];const t=[];for(const e of l)Array.isArray(e)&&e.length>=2&&typeof e[0]=="string"&&typeof e[1]=="string"&&t.push([e[0],e[1]]);return t}var Vm=vt(`
⬤ threat quarantined
memory held in review · Memory PR opened
`),Gm=vt(``),Wm=vt(''),Hm=vt(`
Forgetting horizon
`),qm=vt(``),Xm=vt(""),Ym=vt('
'),Jm=vt('
LOADING MEMORY FIELD...
'),Zm=vt('
'),$m=vt('
NO MEMORIES IN FIELD
'),jm=vt('
'),Km=vt("
");function mx(l,t){Wn(t,!0);const e=()=>jl(tc,"$eventFeed",i),[i,s]=Kl();let n=ut(t,"seed",3,"vestige-observatory-v1"),r=ut(t,"freezeFrame",3,null),a=ut(t,"capture",3,!1),o=ut(t,"showSwitcher",3,!0),h=ut(t,"embedded",3,!1),c=ut(t,"chrome",3,"full"),u=ut(t,"live",3,!1),d=xt(0),f=null,p=xt(!1),m=xt(!1),g=xt(!1);function x(){if(typeof window>"u")return;const O=window.matchMedia("(prefers-reduced-motion: reduce)");O.matches&&!F(g)&&rt(m,!0);const K=lt=>{F(g)||rt(m,lt.matches,!0)};return O.addEventListener("change",K),()=>O.removeEventListener("change",K)}function y(){rt(g,!0),rt(m,!F(m))}ji(()=>{var O;(O=F(tt))==null||O.setPaused(F(m))});let b=xt(""),v=xt(0),_=Bn(()=>F(b)!==""&&F(v)>0),M=xt(null);async function A(O){if(!t.onpick||!J||!F(M))return;const K=F(M).getBoundingClientRect();if(K.width===0||K.height===0)return;const lt=(O.clientX-K.left)/K.width*2-1,ie=-((O.clientY-K.top)/K.height*2-1),$=await J.pickAt(lt,ie);$&&t.onpick($.id)}const S={"recall-path":"RECALL","engram-birth":"BIRTH","salience-rescue":"RESCUE","forgetting-horizon":"HORIZON",firewall:"FIREWALL"};let T=xt(!a());function C(O){(O.key==="h"||O.key==="H")&&rt(T,!F(T)),O.key==="Escape"&&t.onexit&&t.onexit()}let P=xt(null),V=xt(!0),q=xt(""),L=xt(0),I=xt(0),U=xt(0),wt=xt(0),Ct=xt(""),tt=xt(null),J=null,ht=null,Ut=null,oe=xt(null),di=null,Ye=null,Ee=xt(null),Yt=!1,he=xt(Gl([]));async function Qn(){rt(V,!0),rt(q,"");try{const O=await Ql.graph({max_nodes:200,depth:3,sort:"connected"});rt(P,O,!0),rt(U,O.nodeCount,!0),rt(wt,O.edgeCount,!0),rt(Ct,O.center_id,!0)}catch(O){rt(q,O instanceof Error?O.message:"Failed to load graph data",!0)}finally{rt(V,!1)}}function le(O,K){rt(L,O,!0),rt(I,K,!0)}function ce(O){var K;Yt=!1,rt(tt,O,!0),J=new _p(O),(K=t.onready)==null||K.call(t,O)}ji(()=>{if(F(tt)&&J&&F(P)&&!Yt){Yt=!0;const O=t.demo==="engram-birth",K=t.demo==="salience-rescue",lt=t.demo==="forgetting-horizon",ie=t.demo==="firewall";if(J.upload(F(P),n(),{recallPath:!O&&!K&&!lt&&!ie}),O){ht=new Lp({engine:F(tt),nodeRenderer:J,seed:n()}),ht.upload(n());const $=ht.engraveSteps,Vt=[];for(let Bt=0;Bt<$.length/4;Bt++)Vt.push({sourceIndex:$[Bt*4],targetIndex:$[Bt*4+1],beatFrame:$[Bt*4+2],kind:$[Bt*4+3],beatKind:"engrave",nodeId:`engrave-${Bt}`,label:"edge engraved"});J.setPathSteps($,Vt),rt(he,ht.timeline.map((Bt,fi)=>({sourceIndex:0,targetIndex:0,beatFrame:Bt.startFrame,kind:0,beatKind:"birth",nodeId:`birth-${fi}`,label:Bt.label})),!0)}else if(K){const $=sm(F(P),J.graph,n());rt(oe,$,!0),$.viable&&(Ut=new Vp({engine:F(tt),nodeRenderer:J,plan:$}),Ut.upload(),J.setPathSteps($.pathData,$.pathMetas)),rt(he,$.spineBeats,!0)}else if(lt){const $=gm(J.graph);$.viable&&(di=new am({engine:F(tt),nodeRenderer:J,plan:$}),di.upload(),J.setPathSteps($.pathData,$.pathMetas)),rt(he,$.spineBeats,!0)}else if(ie){const $=Pm(J.graph,n());rt(Ee,$,!0),$.viable&&(Ye=new Il({engine:F(tt),nodeRenderer:J,plan:$}),Ye.upload(),J.setPathSteps($.pathData,$.pathMetas)),rt(he,$.spineBeats,!0)}else rt(he,J.pathSteps,!0);u()&&J.graph&&F(P)&&(f=new Nm({engine:F(tt),renderer:J,graph:J.graph,response:F(P),seed:n(),projectionDays:()=>F(d),onFirewall:$=>{rt(b,$.intruderLabel,!0),rt(v,Date.now(),!0)}}),rt(p,f.liveDecayAvailable,!0),F(tt).setPreFrameHook($=>f==null?void 0:f.drain($)),typeof window<"u"&&(window.__vestigeLiveBridge=f)),F(tt).demoClock.reset()}}),ji(()=>{const O=e();f&&f.ingest(O)}),ji(()=>{F(d),f==null||f.refreshDecay()}),ji(()=>{if(!F(v))return;const O=setTimeout(()=>{rt(b,""),rt(v,0)},7e3);return()=>clearTimeout(O)}),Xl(()=>(Qn(),x()));var k=Km();Yl("keydown",Wl,C);let E;var R=ot(k);let W;var N=ot(R);sc(N,{get demo(){return t.demo},get seed(){return n()},get freezeFrame(){return r()},onframe:le,onready:ce}),at(R),Jl(R,O=>rt(M,O),()=>F(M));var et=ct(R,2);{var nt=O=>{var K=jm(),lt=ot(K);{var ie=H=>{var Q=Vm(),Tt=ct(ot(Q),2),Rt=ot(Tt,!0);at(Tt),Hl(2),at(Q),jt(()=>Ot(Rt,F(b))),mt(H,Q)};_t(lt,H=>{u()&&F(_)&&H(ie)})}var $=ct(lt,2);{var Vt=H=>{var Q=Gm(),Tt=ot(Q,!0);at(Q),jt(()=>{Cn(Q,"title",F(m)?"Resume field motion":"Pause field motion (event pulses stay live)"),Cn(Q,"aria-pressed",F(m)),Ot(Tt,F(m)?"▶ RESUME":"❚❚ PAUSE")}),Ri("click",Q,y),mt(H,Q)};_t($,H=>{u()&&H(Vt)})}var Bt=ct($,2);{var fi=H=>{var Q=Hm(),Tt=ct(ot(Q),2);Zl(Tt);var Rt=ct(Tt,2),Oe=ot(Rt,!0);at(Rt);var er=ct(Rt,2);{var Os=$i=>{var Xa=Wm();Ri("click",Xa,()=>rt(d,0)),mt($i,Xa)};_t(er,$i=>{F(d)!==0&&$i(Os)})}at(Q),jt(()=>Ot(Oe,F(d)===0?"now":`+${F(d)}d`)),$l(Tt,()=>F(d),$i=>rt(d,$i)),mt(H,Q)};_t(Bt,H=>{u()&&F(p)&&H(fi)})}var Ji=ct(Bt,2);{var tr=H=>{cp(H,{get demoMode(){return t.demo},get seed(){return n()},get nodeCount(){return F(U)},get edgeCount(){return F(wt)},get centerId(){return F(Ct)},get frameCount(){return F(L)},get fpsEstimate(){return F(I)},get freezeFrame(){return r()},get loading(){return F(V)},get error(){return F(q)}})};_t(Ji,H=>{c()==="full"&&H(tr)})}var Rs=ct(Ji,2);{var Es=H=>{var Q=qm();Ri("click",Q,function(...Tt){var Rt;(Rt=t.onexit)==null||Rt.apply(this,Tt)}),mt(H,Q)};_t(Rs,H=>{c()==="full"&&t.onexit&&H(Es)})}var Zi=ct(Rs,2);{var Cl=H=>{var Q=Ym();Eh(Q,20,()=>nc,Tt=>Tt,(Tt,Rt)=>{var Oe=Xm(),er=ot(Oe,!0);at(Oe),jt(()=>{vs(Oe,1,`font-mono text-[11px] tracking-widest text-left rounded px-3 py-1.5 border transition-colors + ${Rt===t.demo?"text-[#05060a] bg-[#5dcaa5] border-[#5dcaa5]":"text-[#5dcaa5]/60 hover:text-[#5dcaa5] bg-[#05060a]/70 border-[#5dcaa5]/20 hover:border-[#5dcaa5]/50"}`),Cn(Oe,"title",`Play the ${S[Rt]??""} moment`),Ot(er,S[Rt])}),Ri("click",Oe,()=>{var Os;return(Os=t.ondemochange)==null?void 0:Os.call(t,Rt)}),mt(Tt,Oe)}),at(Q),mt(H,Q)};_t(Zi,H=>{c()==="full"&&o()&&H(Cl)})}var Va=ct(Zi,2);{var Bl=H=>{var Q=Jm();mt(H,Q)};_t(Va,H=>{F(V)&&H(Bl)})}var Ga=ct(Va,2);{var zl=H=>{var Q=Zm(),Tt=ot(Q),Rt=ot(Tt,!0);at(Tt),at(Q),jt(()=>Ot(Rt,F(q))),mt(H,Q)};_t(Ga,H=>{F(q)&&!F(V)&&H(zl)})}var Wa=ct(Ga,2);{var kl=H=>{pp(H,{get steps(){return F(he)},get frame(){return F(L)}})};_t(Wa,H=>{c()==="full"&&H(kl)})}var Ha=ct(Wa,2);{var Pl=H=>{xh(H,{get frame(){return F(L)},get verdict(){return F(oe).verdict}})};_t(Ha,H=>{var Q;c()==="full"&&t.demo==="salience-rescue"&&((Q=F(oe))!=null&&Q.viable)&&H(Pl)})}var qa=ct(Ha,2);{var Fl=H=>{{let Q=Bn(()=>({headline:F(Ee).verdict.headline,causeLabel:F(Ee).verdict.intruderLabel,receipt:F(Ee).verdict.receipt}));xh(H,{get frame(){return F(L)},tone:"quarantine",fadeWindow:[480,495,605,620],get verdict(){return F(Q)}})}};_t(qa,H=>{var Q;c()==="full"&&t.demo==="firewall"&&((Q=F(Ee))!=null&&Q.viable)&&H(Fl)})}var Rl=ct(qa,2);{var El=H=>{var Q=$m();mt(H,Q)};_t(Rl,H=>{!F(V)&&F(P)&&F(P).nodeCount===0&&H(El)})}at(K),mt(O,K)};_t(et,O=>{F(T)&&O(nt)})}at(k),jt(()=>{E=vs(k,1,`${h()?"absolute":"fixed"} inset-0 overflow-hidden bg-[#05060a]`,null,E,{"cursor-none":a()}),W=vs(R,1,"absolute inset-0 z-0",null,W,{"cursor-crosshair":!!t.onpick&&!a()})}),Ri("click",R,A),mt(l,k),Hn(),s()}Rh(["click"]);export{fl as $,Dh as A,Lh as B,G as C,qg as D,Xe as E,my as F,Kh as G,vc as H,ma as I,ee as J,qe as K,lf as L,ey as M,ac as N,Nt as O,jh as P,Za as Q,ha as R,Pn as S,Oa as T,ra as U,w as V,Fn as W,zy as X,Hi as Y,_g as Z,qt as _,be as a,pe as a$,re as a0,Xn as a1,yt as a2,My as a3,sg as a4,io as a5,Z as a6,Wh as a7,sa as a8,xe as a9,T0 as aA,sy as aB,Mf as aC,Af as aD,Tf as aE,If as aF,bf as aG,Bf as aH,ng as aI,rg as aJ,ag as aK,og as aL,lg as aM,cg as aN,M0 as aO,cc as aP,uc as aQ,Fs as aR,eo as aS,sr as aT,Mc as aU,Nh as aV,iy as aW,Yr as aX,ge as aY,Xr as aZ,fc as a_,Lg as aa,I0 as ab,Bc as ac,Kd as ad,_s as ae,ft as af,vy as ag,ig as ah,eg as ai,ia as aj,Hh as ak,Gi as al,xy as am,td as an,Qu as ao,dc as ap,j as aq,As as ar,D as as,st as at,pg as au,Pi as av,ne as aw,S0 as ax,$h as ay,qr as az,B as b,qc as b$,Gg as b0,Vg as b1,Wg as b2,Ng as b3,Ug as b4,Hg as b5,Dg as b6,P0 as b7,k0 as b8,$a as b9,wc as bA,_c as bB,Sc as bC,gc as bD,yc as bE,xc as bF,Ac as bG,Ic as bH,Tc as bI,Cc as bJ,Uh as bK,Vh as bL,zc as bM,kc as bN,Pc as bO,Fc as bP,Rc as bQ,Ec as bR,Oc as bS,Dc as bT,Lc as bU,Nc as bV,Uc as bW,Vc as bX,Gc as bY,Wc as bZ,Hc as b_,U0 as ba,G0 as bb,Ka as bc,L0 as bd,N0 as be,V0 as bf,W0 as bg,ja as bh,D0 as bi,O0 as bj,E0 as bk,b0 as bl,v0 as bm,w0 as bn,z0 as bo,B0 as bp,C0 as bq,oc as br,tg as bs,Q0 as bt,K0 as bu,j0 as bv,Qa as bw,$0 as bx,Z0 as by,J0 as bz,Wi as c,nx as c$,Xc as c0,Yc as c1,Jc as c2,Zc as c3,$c as c4,jc as c5,Kc as c6,Qc as c7,tu as c8,eu as c9,F0 as cA,da as cB,mg as cC,Gh as cD,Yf as cE,Vn as cF,Ay as cG,Ny as cH,Ly as cI,Sy as cJ,xd as cK,Ry as cL,ox as cM,to as cN,Ef as cO,Dy as cP,pl as cQ,Ey as cR,Py as cS,hx as cT,fu as cU,md as cV,Zh as cW,Xi as cX,Jy as cY,Ht as cZ,rx as c_,iu as ca,su as cb,au as cc,ou as cd,hu as ce,lu as cf,Pe as cg,Xu as ch,qu as ci,Eg as cj,Rg as ck,Og as cl,Pg as cm,Fg as cn,kg as co,no as cp,zg as cq,Cg as cr,Tg as cs,Ig as ct,Ag as cu,Bg as cv,Sg as cw,Mg as cx,pi as cy,R0 as cz,$t as d,ed as d$,kf as d0,He as d1,ua as d2,sx as d3,Qh as d4,va as d5,bd as d6,wa as d7,Ff as d8,ul as d9,Ma as dA,jg as dB,Jg as dC,zd as dD,xa as dE,Sa as dF,pa as dG,fa as dH,Hy as dI,Qg as dJ,ty as dK,tx as dL,Qy as dM,Aa as dN,ky as dO,Gn as dP,Fu as dQ,zf as dR,ad as dS,fy as dT,py as dU,cy as dV,jn as dW,zn as dX,Jr as dY,nr as dZ,we as d_,wy as da,_y as db,ya as dc,Iy as dd,_a as de,X0 as df,H0 as dg,cx as dh,Ty as di,tl as dj,Td as dk,df as dl,_0 as dm,ve as dn,Bd as dp,hg as dq,Ps as dr,Yy as ds,qh as dt,Cy as du,ly as dv,yf as dw,hc as dx,ix as dy,ff as dz,rr as e,Li as e$,Jn as e0,Xh as e1,ui as e2,hi as e3,Zy as e4,el as e5,Cd as e6,gd as e7,Re as e8,cl as e9,Oy as eA,it as eB,Df as eC,il as eD,sl as eE,te as eF,Kn as eG,pf as eH,bg as eI,vg as eJ,nu as eK,ru as eL,wg as eM,Qd as eN,ks as eO,qy as eP,Uy as eQ,Vy as eR,Ta as eS,ca as eT,Vi as eU,Ca as eV,lx as eW,Fe as eX,ga as eY,jy as eZ,sd as e_,fg as ea,so as eb,jo as ec,dl as ed,cu as ee,du as ef,uu as eg,y0 as eh,gl as ei,af as ej,of as ek,dg as el,ug as em,aa as en,Nn as eo,$n as ep,Y0 as eq,q0 as er,A0 as es,Ln as et,Ia as eu,ax as ev,Ky as ew,yd as ex,ex as ey,ci as ez,na as f,Lt as f0,Xy as f1,Cf as f2,nl as f3,$y as f4,bs as f5,$g as f6,Yg as f7,Fy as f8,Kg as f9,Oi as fA,g0 as fB,mx as fC,ry as fD,ay as fE,ny as fF,Is as fG,yy as fH,gy as fI,Yn as fJ,tp as fK,zu as fL,Zu as fM,Rn as fN,ip as fO,px as fP,dx as fQ,bl as fR,np as fS,In as fT,Gr as fU,rp as fV,fx as fW,Vr as fX,Xg as fa,Zg as fb,Yi as fc,x0 as fd,Ba as fe,By as ff,ux as fg,za as fh,ka as fi,Kt as fj,xg as fk,yg as fl,gg as fm,Pa as fn,uy as fo,dy as fp,ml as fq,Gy as fr,Un as fs,by as ft,hy as fu,oy as fv,la as fw,jd as fx,kn as fy,Ei as fz,lc as g,Be as h,wf as i,Wy as j,Ts as k,Xt as l,qi as m,rf as n,hf as o,nf as p,ef as q,tf as r,Fa as s,sf as t,ae as u,mc as v,pc as w,qn as x,It as y,bc as z}; diff --git a/apps/dashboard/build/_app/immutable/chunks/Bo4EDkTQ.js.br b/apps/dashboard/build/_app/immutable/chunks/Bo4EDkTQ.js.br new file mode 100644 index 0000000000000000000000000000000000000000..f9e5bd98b22c02d2e302ef9530af22eaec6d5278 GIT binary patch literal 108183 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�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

ktclJ#NG~GZ!B8h20Uu1e+a1q?n9YP!_E98M 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 bKSN1_{Z!e(re(2w^{throw TypeError(e)};var _n=(e,t,n)=>t in e?cn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var de=(e,t,n)=>_n(e,typeof t!="symbol"?t+"":t,n),Ke=(e,t,n)=>t.has(e)||wt("Cannot "+n);var p=(e,t,n)=>(Ke(e,t,"read from private field"),n?n.call(e):t.get(e)),F=(e,t,n)=>t.has(e)?wt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),z=(e,t,n,r)=>(Ke(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),K=(e,t,n)=>(Ke(e,t,"access private method"),n);var vn=Array.isArray,dn=Array.prototype.indexOf,me=Array.prototype.includes,lr=Array.from,or=Object.defineProperty,Re=Object.getOwnPropertyDescriptor,pn=Object.getOwnPropertyDescriptors,hn=Object.prototype,wn=Array.prototype,kt=Object.getPrototypeOf,yt=Object.isExtensible;const yn=()=>{};function ur(e){return e()}function En(e){for(var t=0;t{e=r,t=s});return{promise:n,resolve:e,reject:t}}function cr(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}const A=2,De=4,Ie=8,Dt=1<<24,G=16,H=32,ve=64,mn=128,P=512,g=1024,R=2048,Y=4096,j=8192,Z=16384,oe=32768,je=65536,Et=1<<17,It=1<<18,Pe=1<<19,Pt=1<<20,_r=1<<25,ue=65536,Xe=1<<21,st=1<<22,W=1<<23,ae=Symbol("$state"),vr=Symbol("legacy props"),dr=Symbol(""),ne=new class extends Error{constructor(){super(...arguments);de(this,"name","StaleReactionError");de(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var Nt;const hr=!!((Nt=globalThis.document)!=null&&Nt.contentType)&&globalThis.document.contentType.includes("xml"),Ue=3,Ct=8;function gn(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function wr(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Tn(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function bn(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function An(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Sn(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function yr(){throw new Error("https://svelte.dev/e/hydration_failed")}function Er(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Rn(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function On(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Nn(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function mr(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const gr=1,Tr=2,br=4,Ar=8,Sr=16,Rr=1,Or=2,Nr=4,kr=8,xr=16,Dr=1,Ir=2,kn="[",xn="[!",Pr="[?",Dn="]",ft={},T=Symbol(),In="http://www.w3.org/1999/xhtml";function it(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Cr(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Fr(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let Q=!1;function Mr(e){Q=e}let m;function ge(e){if(e===null)throw it(),ft;return m=e}function Lr(){return ge(te(m))}function jr(e){if(Q){if(te(m)!==null)throw it(),ft;m=e}}function Yr(e=1){if(Q){for(var t=e,n=m;t--;)n=te(n);m=n}}function Hr(e=!0){for(var t=0,n=m;;){if(n.nodeType===Ct){var r=n.data;if(r===Dn){if(t===0)return n;t-=1}else(r===kn||r===xn||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=te(n);e&&n.remove(),n=s}}function qr(e){if(!e||e.nodeType!==Ct)throw it(),ft;return e.data}function Ft(e){return e===this.v}function Pn(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Mt(e){return!Pn(e,this.v)}let Be=!1;function Vr(){Be=!0}let S=null;function Ye(e){S=e}function Ur(e,t=!1,n){S={p:S,i:!1,c:null,e:null,s:e,x:null,l:Be&&!t?{s:null,u:null,$:[]}:null}}function Br(e){var t=S,n=t.e;if(n!==null){t.e=null;for(var r of n)Jt(r)}return t.i=!0,S=t.p,{}}function Ce(){return!Be||S!==null&&S.l===null}let re=[];function Lt(){var e=re;re=[],En(e)}function mt(e){if(re.length===0&&!Oe){var t=re;queueMicrotask(()=>{t===re&&Lt()})}re.push(e)}function Cn(){for(;re.length>0;)Lt()}function Fn(e){var t=w;if(t===null)return _.f|=W,e;if((t.f&oe)===0&&(t.f&De)===0)throw e;He(e,t)}function He(e,t){for(;t!==null;){if((t.f&mn)!==0){if((t.f&oe)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Mn=-7169;function E(e,t){e.f=e.f&Mn|t}function at(e){(e.f&P)!==0||e.deps===null?E(e,g):E(e,Y)}function jt(e){if(e!==null)for(const t of e)(t.f&A)===0||(t.f&ue)===0||(t.f^=ue,jt(t.deps))}function Ln(e,t,n){(e.f&R)!==0?t.add(e):(e.f&Y)!==0&&n.add(e),jt(e.deps),E(e,g)}const Me=new Set;let d=null,gt=null,b=null,N=[],Ge=null,Ze=!1,Oe=!1;var he,we,fe,ye,ke,xe,ie,U,Ee,D,We,Je,Qe,Yt;const dt=class dt{constructor(){F(this,D);de(this,"current",new Map);de(this,"previous",new Map);F(this,he,new Set);F(this,we,new Set);F(this,fe,0);F(this,ye,0);F(this,ke,null);F(this,xe,new Set);F(this,ie,new Set);F(this,U,new Map);de(this,"is_fork",!1);F(this,Ee,!1)}skip_effect(t){p(this,U).has(t)||p(this,U).set(t,{d:[],m:[]})}unskip_effect(t){var n=p(this,U).get(t);if(n){p(this,U).delete(t);for(var r of n.d)E(r,R),B(r);for(r of n.m)E(r,Y),B(r)}}process(t){var s;N=[],this.apply();var n=[],r=[];for(const f of t)K(this,D,Je).call(this,f,n,r);if(K(this,D,We).call(this)){K(this,D,Qe).call(this,r),K(this,D,Qe).call(this,n);for(const[f,a]of p(this,U))Ut(f,a)}else{for(const f of p(this,he))f();p(this,he).clear(),p(this,fe)===0&&K(this,D,Yt).call(this),gt=this,d=null,Tt(r),Tt(n),gt=null,(s=p(this,ke))==null||s.resolve()}b=null}capture(t,n){n!==T&&!this.previous.has(t)&&this.previous.set(t,n),(t.f&W)===0&&(this.current.set(t,t.v),b==null||b.set(t,t.v))}activate(){d=this,this.apply()}deactivate(){d===this&&(d=null,b=null)}flush(){if(this.activate(),N.length>0){if(Ht(),d!==null&&d!==this)return}else p(this,fe)===0&&this.process([]);this.deactivate()}discard(){for(const t of p(this,we))t(this);p(this,we).clear()}increment(t){z(this,fe,p(this,fe)+1),t&&z(this,ye,p(this,ye)+1)}decrement(t){z(this,fe,p(this,fe)-1),t&&z(this,ye,p(this,ye)-1),!p(this,Ee)&&(z(this,Ee,!0),mt(()=>{z(this,Ee,!1),K(this,D,We).call(this)?N.length>0&&this.flush():this.revive()}))}revive(){for(const t of p(this,xe))p(this,ie).delete(t),E(t,R),B(t);for(const t of p(this,ie))E(t,Y),B(t);this.flush()}oncommit(t){p(this,he).add(t)}ondiscard(t){p(this,we).add(t)}settled(){return(p(this,ke)??z(this,ke,xt())).promise}static ensure(){if(d===null){const t=d=new dt;Me.add(d),Oe||mt(()=>{d===t&&t.flush()})}return d}apply(){}};he=new WeakMap,we=new WeakMap,fe=new WeakMap,ye=new WeakMap,ke=new WeakMap,xe=new WeakMap,ie=new WeakMap,U=new WeakMap,Ee=new WeakMap,D=new WeakSet,We=function(){return this.is_fork||p(this,ye)>0},Je=function(t,n,r){t.f^=g;for(var s=t.first;s!==null;){var f=s.f,a=(f&(H|ve))!==0,l=a&&(f&g)!==0,i=l||(f&j)!==0||p(this,U).has(s);if(!i&&s.fn!==null){a?s.f^=g:(f&De)!==0?n.push(s):Fe(s)&&((f&G)!==0&&p(this,ie).add(s),Ae(s));var o=s.first;if(o!==null){s=o;continue}}for(;s!==null;){var c=s.next;if(c!==null){s=c;break}s=s.parent}}},Qe=function(t){for(var n=0;n1){this.previous.clear();var t=b,n=!0;for(const f of Me){if(f===this){n=!1;continue}const a=[];for(const[i,o]of this.current){if(f.current.has(i))if(n&&o!==f.current.get(i))f.current.set(i,o);else continue;a.push(i)}if(a.length===0)continue;const l=[...f.current.keys()].filter(i=>!this.current.has(i));if(l.length>0){var r=N;N=[];const i=new Set,o=new Map;for(const c of a)qt(c,l,i,o);if(N.length>0){d=f,f.apply();for(const c of N)K(s=f,D,Je).call(s,c,[],[]);f.deactivate()}N=r}}d=null,b=t}Me.delete(this)};let Te=dt;function jn(e){var t=Oe;Oe=!0;try{for(var n;;){if(Cn(),N.length===0&&(d==null||d.flush(),N.length===0))return Ge=null,n;Ht()}}finally{Oe=t}}function Ht(){Ze=!0;var e=null;try{for(var t=0;N.length>0;){var n=Te.ensure();if(t++>1e3){var r,s;Yn()}n.process(N),J.clear()}}finally{N=[],Ze=!1,Ge=null}}function Yn(){try{Sn()}catch(e){He(e,Ge)}}let M=null;function Tt(e){var t=e.length;if(t!==0){for(var n=0;n0)){J.clear();for(const s of M){if((s.f&(Z|j))!==0)continue;const f=[s];let a=s.parent;for(;a!==null;)M.has(a)&&(M.delete(a),f.push(a)),a=a.parent;for(let l=f.length-1;l>=0;l--){const i=f[l];(i.f&(Z|j))===0&&Ae(i)}}M.clear()}}M=null}}function qt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const f=s.f;(f&A)!==0?qt(s,t,n,r):(f&(st|G))!==0&&(f&R)===0&&Vt(s,t,r)&&(E(s,R),B(s))}}function Vt(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(me.call(t,s))return!0;if((s.f&A)!==0&&Vt(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function B(e){var t=Ge=e,n=t.b;if(n!=null&&n.is_pending&&(e.f&(De|Ie|Dt))!==0&&(e.f&oe)===0){n.defer_effect(e);return}for(;t.parent!==null;){t=t.parent;var r=t.f;if(Ze&&t===w&&(r&G)!==0&&(r&It)===0&&(r&oe)!==0)return;if((r&(ve|H))!==0){if((r&g)===0)return;t.f^=g}}N.push(t)}function Ut(e,t){if(!((e.f&H)!==0&&(e.f&g)!==0)){(e.f&R)!==0?t.d.push(e):(e.f&Y)!==0&&t.m.push(e),E(e,g);for(var n=e.first;n!==null;)Ut(n,t),n=n.next}}function Hn(e,t,n,r){const s=Ce()?lt:Bn;var f=e.filter(u=>!u.settled);if(n.length===0&&f.length===0){r(t.map(s));return}var a=w,l=qn(),i=f.length===1?f[0].promise:f.length>1?Promise.all(f.map(u=>u.promise)):null;function o(u){l();try{r(u)}catch(v){(a.f&Z)===0&&He(v,a)}et()}if(n.length===0){i.then(()=>o(t.map(s)));return}function c(){l(),Promise.all(n.map(u=>Un(u))).then(u=>o([...t.map(s),...u])).catch(u=>He(u,a))}i?i.then(c):c()}function qn(){var e=w,t=_,n=S,r=d;return function(f=!0){be(e),ee(t),Ye(n),f&&(r==null||r.activate())}}function et(e=!0){be(null),ee(null),Ye(null),e&&(d==null||d.deactivate())}function Vn(){var e=w.b,t=d,n=e.is_rendered();return e.update_pending_count(1),t.increment(n),()=>{e.update_pending_count(-1),t.decrement(n)}}function lt(e){var t=A|R,n=_!==null&&(_.f&A)!==0?_:null;return w!==null&&(w.f|=Pe),{ctx:S,deps:null,effects:null,equals:Ft,f:t,fn:e,reactions:null,rv:0,v:T,wv:0,parent:n??w,ac:null}}function Un(e,t,n){w===null&&gn();var s=void 0,f=ut(T),a=!_,l=new Map;return tr(()=>{var v;var i=xt();s=i.promise;try{Promise.resolve(e()).then(i.resolve,i.reject).finally(et)}catch(y){i.reject(y),et()}var o=d;if(a){var c=Vn();(v=l.get(o))==null||v.reject(ne),l.delete(o),l.set(o,i)}const u=(y,h=void 0)=>{if(o.activate(),h)h!==ne&&(f.f|=W,nt(f,h));else{(f.f&W)!==0&&(f.f^=W),nt(f,y);for(const[V,O]of l){if(l.delete(V),V===o)break;O.reject(ne)}}c&&c()};i.promise.then(u,y=>u(null,y||"unknown"))}),er(()=>{for(const i of l.values())i.reject(ne)}),new Promise(i=>{function o(c){function u(){c===s?i(f):o(s)}c.then(u,u)}o(s)})}function Gr(e){const t=lt(e);return rn(t),t}function Bn(e){const t=lt(e);return t.equals=Mt,t}function Gn(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n0&&!zt&&$n()}return t}function $n(){zt=!1;for(const e of tt)(e.f&g)!==0&&E(e,Y),Fe(e)&&Ae(e);tt.clear()}function Kr(e,t=1){var n=pe(e),r=t===1?n++:n--;return X(e,n),r}function $e(e){X(e,e.v+1)}function Kt(e,t){var n=e.reactions;if(n!==null)for(var r=Ce(),s=n.length,f=0;f{if(le===f)return l();var i=_,o=le;ee(null),Ot(f);var c=l();return ee(i),Ot(o),c};return r&&n.set("length",$(e.length)),new Proxy(e,{defineProperty(l,i,o){(!("value"in o)||o.configurable===!1||o.enumerable===!1||o.writable===!1)&&Rn();var c=n.get(i);return c===void 0?a(()=>{var u=$(o.value);return n.set(i,u),u}):X(c,o.value,!0),!0},deleteProperty(l,i){var o=n.get(i);if(o===void 0){if(i in l){const c=a(()=>$(T));n.set(i,c),$e(s)}}else X(o,T),$e(s);return!0},get(l,i,o){var y;if(i===ae)return e;var c=n.get(i),u=i in l;if(c===void 0&&(!u||(y=Re(l,i))!=null&&y.writable)&&(c=a(()=>{var h=Se(u?l[i]:T),V=$(h);return V}),n.set(i,c)),c!==void 0){var v=pe(c);return v===T?void 0:v}return Reflect.get(l,i,o)},getOwnPropertyDescriptor(l,i){var o=Reflect.getOwnPropertyDescriptor(l,i);if(o&&"value"in o){var c=n.get(i);c&&(o.value=pe(c))}else if(o===void 0){var u=n.get(i),v=u==null?void 0:u.v;if(u!==void 0&&v!==T)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return o},has(l,i){var v;if(i===ae)return!0;var o=n.get(i),c=o!==void 0&&o.v!==T||Reflect.has(l,i);if(o!==void 0||w!==null&&(!c||(v=Re(l,i))!=null&&v.writable)){o===void 0&&(o=a(()=>{var y=c?Se(l[i]):T,h=$(y);return h}),n.set(i,o));var u=pe(o);if(u===T)return!1}return c},set(l,i,o,c){var ht;var u=n.get(i),v=i in l;if(r&&i==="length")for(var y=o;y$(T)),n.set(y+"",h))}if(u===void 0)(!v||(ht=Re(l,i))!=null&&ht.writable)&&(u=a(()=>$(void 0)),X(u,Se(o)),n.set(i,u));else{v=u.v!==T;var V=a(()=>Se(o));X(u,V)}var O=Reflect.getOwnPropertyDescriptor(l,i);if(O!=null&&O.set&&O.set.call(c,o),!v){if(r&&typeof i=="string"){var pt=n.get("length"),ze=Number(i);Number.isInteger(ze)&&ze>=pt.v&&X(pt,ze+1)}$e(s)}return!0},ownKeys(l){pe(s);var i=Reflect.ownKeys(l).filter(u=>{var v=n.get(u);return v===void 0||v.v!==T});for(var[o,c]of n)c.v!==T&&!(o in l)&&i.push(o);return i},setPrototypeOf(){On()}})}function bt(e){try{if(e!==null&&typeof e=="object"&&ae in e)return e[ae]}catch{}return e}function $r(e,t){return Object.is(bt(e),bt(t))}var At,Xn,Zn,$t,Xt;function Xr(){if(At===void 0){At=window,Xn=document,Zn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;$t=Re(t,"firstChild").get,Xt=Re(t,"nextSibling").get,yt(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),yt(n)&&(n.__t=void 0)}}function qe(e=""){return document.createTextNode(e)}function Ve(e){return $t.call(e)}function te(e){return Xt.call(e)}function Zr(e,t){if(!Q)return Ve(e);var n=Ve(m);if(n===null)n=m.appendChild(qe());else if(t&&n.nodeType!==Ue){var r=qe();return n==null||n.before(r),ge(r),r}return t&&ct(n),ge(n),n}function Wr(e,t=!1){if(!Q){var n=Ve(e);return n instanceof Comment&&n.data===""?te(n):n}if(t){if((m==null?void 0:m.nodeType)!==Ue){var r=qe();return m==null||m.before(r),ge(r),r}ct(m)}return m}function Jr(e,t=1,n=!1){let r=Q?m:e;for(var s;t--;)s=r,r=te(r);if(!Q)return r;if(n){if((r==null?void 0:r.nodeType)!==Ue){var f=qe();return r===null?s==null||s.after(f):r.before(f),ge(f),f}ct(r)}return ge(r),r}function Wn(e){e.textContent=""}function Qr(){return!1}function es(e,t,n){return document.createElementNS(In,e,void 0)}function ct(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Ue;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function ts(e){Q&&Ve(e)!==null&&Wn(e)}let St=!1;function Jn(){St||(St=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const n of e.target.elements)(t=n.__on_r)==null||t.call(n)})},{capture:!0}))}function _t(e){var t=_,n=w;ee(null),be(null);try{return e()}finally{ee(t),be(n)}}function ns(e,t,n,r=n){e.addEventListener(t,()=>_t(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Jn()}function Zt(e){w===null&&(_===null&&An(),bn()),_e&&Tn()}function Qn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function q(e,t,n){var r=w;r!==null&&(r.f&j)!==0&&(e|=j);var s={ctx:S,deps:null,nodes:null,f:e|R|P,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{Ae(s)}catch(l){throw ce(s),l}else t!==null&&B(s);var f=s;if(n&&f.deps===null&&f.teardown===null&&f.nodes===null&&f.first===f.last&&(f.f&Pe)===0&&(f=f.first,(e&G)!==0&&(e&je)!==0&&f!==null&&(f.f|=je)),f!==null&&(f.parent=r,r!==null&&Qn(f,r),_!==null&&(_.f&A)!==0&&(e&ve)===0)){var a=_;(a.effects??(a.effects=[])).push(f)}return s}function Wt(){return _!==null&&!L}function er(e){const t=q(Ie,null,!1);return E(t,g),t.teardown=e,t}function rs(e){Zt();var t=w.f,n=!_&&(t&H)!==0&&(t&oe)===0;if(n){var r=S;(r.e??(r.e=[])).push(e)}else return Jt(e)}function Jt(e){return q(De|Pt,e,!1)}function ss(e){return Zt(),q(Ie|Pt,e,!0)}function fs(e){Te.ensure();const t=q(ve|Pe,e,!0);return(n={})=>new Promise(r=>{n.outro?sr(t,()=>{ce(t),r(void 0)}):(ce(t),r(void 0))})}function is(e){return q(De,e,!1)}function tr(e){return q(st|Pe,e,!0)}function as(e,t=0){return q(Ie|t,e,!0)}function ls(e,t=[],n=[],r=[]){Hn(r,t,n,s=>{q(Ie,()=>e(...s.map(pe)),!0)})}function os(e,t=0){var n=q(G|t,e,!0);return n}function us(e){return q(H|Pe,e,!0)}function Qt(e){var t=e.teardown;if(t!==null){const n=_e,r=_;Rt(!0),ee(null);try{t.call(null)}finally{Rt(n),ee(r)}}}function vt(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&_t(()=>{s.abort(ne)});var r=n.next;(n.f&ve)!==0?n.parent=null:ce(n,t),n=r}}function nr(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&H)===0&&ce(t),t=n}}function ce(e,t=!0){var n=!1;(t||(e.f&It)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(rr(e.nodes.start,e.nodes.end),n=!0),vt(e,t&&!n),Ne(e,0),E(e,Z);var r=e.nodes&&e.nodes.t;if(r!==null)for(const f of r)f.stop();Qt(e);var s=e.parent;s!==null&&s.first!==null&&en(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function rr(e,t){for(;e!==null;){var n=e===t?null:te(e);e.remove(),e=n}}function en(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function sr(e,t,n=!0){var r=[];tn(e,r,!0);var s=()=>{n&&ce(e),t&&t()},f=r.length;if(f>0){var a=()=>--f||s();for(var l of r)l.out(a)}else s()}function tn(e,t,n){if((e.f&j)===0){e.f^=j;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var f=s.next,a=(s.f&je)!==0||(s.f&H)!==0&&(e.f&G)!==0;tn(s,t,a?n:!1),s=f}}}function cs(e){nn(e,!0)}function nn(e,t){if((e.f&j)!==0){e.f^=j,(e.f&g)===0&&(E(e,R),B(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&je)!==0||(n.f&H)!==0;nn(n,s?t:!1),n=r}var f=e.nodes&&e.nodes.t;if(f!==null)for(const a of f)(a.is_global||t)&&a.in()}}function _s(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:te(n);t.append(n),n=s}}let Le=!1,_e=!1;function Rt(e){_e=e}let _=null,L=!1;function ee(e){_=e}let w=null;function be(e){w=e}let C=null;function rn(e){_!==null&&(C===null?C=[e]:C.push(e))}let k=null,x=0,I=null;function fr(e){I=e}let sn=1,se=0,le=se;function Ot(e){le=e}function fn(){return++sn}function Fe(e){var t=e.f;if((t&R)!==0)return!0;if(t&A&&(e.f&=~ue),(t&Y)!==0){for(var n=e.deps,r=n.length,s=0;se.wv)return!0}(t&P)!==0&&b===null&&E(e,g)}return!1}function an(e,t,n=!0){var r=e.reactions;if(r!==null&&!(C!==null&&me.call(C,e)))for(var s=0;s{e.ac.abort(ne)}),e.ac=null);try{e.f|=Xe;var c=e.fn,u=c();e.f|=oe;var v=e.deps,y=d==null?void 0:d.is_fork;if(k!==null){var h;if(y||Ne(e,x),v!==null&&x>0)for(v.length=x+k.length,h=0;h=nQAdo}5T;_&jsnB`^X{(!)V04n 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 diff --git a/apps/dashboard/build/_app/immutable/chunks/CpWkWWOo.js.gz b/apps/dashboard/build/_app/immutable/chunks/CpWkWWOo.js.gz deleted file mode 100644 index c34ad846af85ca0387dea173a94668915013a832..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9697 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 diff --git a/apps/dashboard/build/_app/immutable/chunks/Cqe0su6e.js b/apps/dashboard/build/_app/immutable/chunks/Cqe0su6e.js new file mode 100644 index 0000000..84d47fd --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/Cqe0su6e.js @@ -0,0 +1 @@ +var ge=Object.defineProperty;var Ee=(d,e,s)=>e in d?ge(d,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):d[e]=s;var N=(d,e,s)=>Ee(d,typeof e!="symbol"?e+"":e,s);import"./Bzak7iHL.js";import{d as Ae,o as J,b as Q,e as be}from"./DAau0uzT.js";import{p as Ne,j as $,g as n,y as Re,Y as _e,a as ke,b as Se,u as Ce,d as R,f as Ie,s as p,c as Me,r as Pe}from"./CGq8RnJq.js";import{s as we}from"./uCQU803Y.js";import{b as Oe}from"./Ccqjq5DS.js";import{p as _,s as Le,a as He}from"./DV6OI5iy.js";import{g as Ve}from"./DJDK-KWF.js";import{b as T}from"./DY7cP31Q.js";import{p as Fe}from"./CbBCXwzm.js";import{r as m,C as te,R as S,M as De,I as ee,O as Te}from"./BMB5u1EX.js";import{T as re}from"./D7ozXiSB.js";const ze=[{href:"/observatory",label:"Observatory",shortcut:"O"},{href:"/graph",label:"Graph",shortcut:"G"},{href:"/memories",label:"Memories",shortcut:"M"},{href:"/timeline",label:"Timeline",shortcut:"T"},{href:"/feed",label:"Feed",shortcut:"F"},{href:"/explore",label:"Explore",shortcut:"E"},{href:"/reasoning",label:"Reasoning",shortcut:"R"},{href:"/stats",label:"Stats",shortcut:"S"},{href:"/settings",label:"Settings",shortcut:","}],M=-.93,P=.83,z=.024,U=.058,Ue=-.965,Ge=-.9,Xe=-.4,Ye=.92,We=-.73,Be=-.44,Ke=.96,G=[...m(te.forward),1],Ze=[...m(S.luciferin),1],je=[...m(S.bridge),.36],qe=[...m(S.bridge),.36],Je=[...m(De.blackwater),.15];function Qe(d,e={}){return new $e(d,e)}class $e{constructor(e,s){N(this,"text");N(this,"routes");N(this,"activePath");N(this,"hoverHref",null);N(this,"expanded",!1);N(this,"ready",!1);this.text=new re(e),this.routes=s.routes??ze,this.activePath=s.activePath??""}async init(){await this.text.init(),this.ready=!0,this.rebuild()}setActivePath(e){this.activePath!==e&&(this.activePath=e,this.rebuild())}setHoverFromNdc(e,s){const l=e<=Ge&&s>=Xe&&s<=Ye,u=e<=We&&s>=Be&&s<=Ke,E=this.expanded?u:l;E!==this.expanded&&(this.expanded=E,E||(this.hoverHref=null),this.rebuild());const x=this.pickAt(e,s),k=(x==null?void 0:x.payload.href)??null;return k!==this.hoverHref&&(this.hoverHref=k,this.rebuild()),x}clearHover(){!this.expanded&&this.hoverHref===null||(this.expanded=!1,this.hoverHref=null,this.rebuild())}pickAt(e,s){const l=this.text.pickAt(e,s);if(!l||l.kind!=="route-nav")return null;const u=l.payload;return u.route?{id:l.id,kind:"route-nav",payload:u.route}:null}render(e){this.text.render(e)}dispose(){this.text.dispose()}rebuild(){this.ready&&this.text.setText(this.expanded?this.buildExpanded():this.buildCollapsed())}buildCollapsed(){return this.routes.map((e,s)=>{const l=this.isActive(e.href),u=e.shortcut??e.label.charAt(0).toUpperCase();return{id:`route-nav-marker:${e.href}`,kind:"route-nav-marker",text:u,x:Ue,y:P-s*U,size:z,color:l?G:qe,startFrame:0,revealSpan:1,maxWidthEm:4}})}buildExpanded(){return[{id:"route-nav:rail",kind:"route-nav-rail",text:"COGNITIVE OS",x:M,y:P+.075,size:.021,color:Je,revealSpan:1},...this.routes.map((e,s)=>{const l=this.isActive(e.href),u=this.hoverHref===e.href,E=l?G:u?Ze:je,x=l?">":u?"+":"-",k=e.shortcut?` ${e.shortcut}`:"";return{id:`route-nav:${e.href}`,kind:"route-nav",text:`${x} ${e.label.toUpperCase()}${k}`,x:l||u?M+.012:M,y:P-s*U,size:l||u?z*1.06:z,color:E,startFrame:0,revealSpan:1,maxWidthEm:16,hitPadX:.03,hitPadY:.02,route:e}}),...this.hoverHref?[{id:"route-nav:hover-ring",kind:"route-nav-focus",text:">>>>>>>>>>>>>>>>",x:M-.01,y:P-this.routes.findIndex(e=>e.href===this.hoverHref)*U-.029,size:.012,color:G,revealSpan:1}]:[]]}isActive(e){const s=this.activePath||"";return s===e||s.endsWith(e)||e==="/observatory"&&(s==="/"||s==="")}}function et(d){return{organ:d,nodes:[],edges:[],events:[],receipts:[],scalars:{},alive:!1}}var tt=Ie("

");function pt(d,e){Ne(e,!0);const s=()=>He(Fe,"$page",l),[l,u]=Le();let E=_(e,"seed",3,"vestige-route-organ-v1"),x=_(e,"scene",3,null),k=_(e,"embedded",3,!1),ne=_(e,"demo",3,"recall-path"),se=_(e,"loading",3,!1),X=_(e,"error",3,null),ie=_(e,"emptyLabel",3,"NO ROUTE DATA IN FIELD"),C=Ce(()=>x()??et(e.organ)),f=R(null),v=R(null),i=null,a=null,A=[],w=R(0),O=R(0),b=R(!1),L=R(!1),H=R(!1),V=null,F=null;const oe=[...m(te.forward),1],Y=[...m(S.recall),.58],ae=[...m(S.luciferin),.86],W=[...m(ee.veto),.9],le=[...m(ee.caution),.78];function ue(){if(typeof window>"u")return;const t=window.matchMedia("(prefers-reduced-motion: reduce)");t.matches&&!n(L)&&p(b,!0);const r=o=>{n(L)||p(b,o.matches,!0)};return t.addEventListener("change",r),()=>t.removeEventListener("change",r)}function ce(){p(L,!0),p(b,!n(b)),I()}$(()=>{var t;(t=n(v))==null||t.setPaused(n(b)),I()});function B(t){var r;if(n(v)){for(const o of A)(r=o.uploadScene)==null||r.call(o,t);n(v).demoClock.reset(),I()}}function de(t,r){p(w,t,!0),p(O,r,!0),a==null||a.setActivePath(K()),I(t,r)}async function he(t){var r;p(H,!1),p(v,t,!0);for(const o of A)(r=o.dispose)==null||r.call(o);i==null||i.dispose(),a==null||a.dispose(),A=typeof e.passes=="function"?e.passes(t,n(C)):e.passes??[];for(const o of A)t.addPass(o);a=Qe(t,{activePath:K()}),i=new re(t),t.addPass(a),t.addPass(i),await Promise.all([a.init(),i.init()]),n(v)===t&&(p(H,!0),B(n(C)))}$(()=>{const t=n(C);!n(v)||!n(H)||Re(()=>B(t))});function K(){const t=s().url.pathname;return t.startsWith(T)?t.slice(T.length)||"/":t}function Z(t){return t.replace(/[—–]/g,"-").replace(/[‘’]/g,"'").replace(/[“”]/g,'"').replace(/…/g,"...").replace(/[^\x20-\x7E]/g,"?")}function fe(t=n(w),r=n(O)){const o=[{id:"route-chrome:pause",kind:"route-chrome",text:n(b)?"> RESUME":"|| PAUSE",x:.66,y:-.86,size:.034,color:n(b)?le:oe,revealSpan:1},{id:"route-chrome:telemetry",kind:"route-telemetry",text:`${e.organ.toUpperCase()} - ${t}F - ${r}FPS`,x:.44,y:.88,size:.022,color:Y,revealSpan:1}];return se()?o.push({id:"route-chrome:loading",kind:"route-status",text:"REPLAYING COGNITIVE RECEIPT...",x:-.23,y:.02,size:.046,color:ae,startFrame:Math.max(0,t-90),revealSpan:72}):X()?o.push({id:"route-chrome:error-pulse",kind:"route-status-pulse",text:"!!!!!!!!!!!!!!!!!!!!!!!!",x:-.36,y:-.035,size:.025,color:W,revealSpan:1},{id:"route-chrome:error",kind:"route-status",text:Z(`ERROR - ${X()}`).slice(0,72),x:-.54,y:.025,size:.032,color:W,revealSpan:14,maxWidthEm:48}):n(C).alive||o.push({id:"route-chrome:empty",kind:"route-status",text:Z(ie()),x:-.36,y:.02,size:.034,color:Y,revealSpan:24,maxWidthEm:48}),o}function I(t=n(w),r=n(O)){i==null||i.setText(fe(t,r))}function j(t){if(!n(f))return null;const r=n(f).getBoundingClientRect();return r.width===0||r.height===0?null:{x:(t.clientX-r.left)/r.width*2-1,y:-((t.clientY-r.top)/r.height*2-1)}}function pe(t){if(!n(f)||!n(v))return;const r=n(f).getBoundingClientRect();if(r.width===0||r.height===0)return;const o=Math.max(1e-4,r.width/Math.max(1,r.height)),h={x:t.x*Math.max(o,1),y:t.y/Math.min(o,1)},c=V??h,g={x:c.x+(h.x-c.x)*.35,y:c.y+(h.y-c.y)*.35};V=g,n(v).setCursorPreNdc(g.x,g.y,g.x-c.x,g.y-c.y)}function me(t){const r=j(t);if(!r)return;pe(r);const o=a==null?void 0:a.setHoverFromNdc(r.x,r.y),h=i==null?void 0:i.pickAt(r.x,r.y),c=(h==null?void 0:h.id)??null;c!==F&&(F=c,i==null||i.setRunDepth(c,1)),n(f)&&(n(f).style.cursor=o||h||e.onpick?"crosshair":"default")}function ve(){var t;a==null||a.clearHover(),F=null,i==null||i.setRunDepth(null),V=null,(t=n(v))==null||t.setCursorPreNdc(999,999,0,0),n(f)&&(n(f).style.cursor="default")}async function xe(t){var c,g;const r=j(t);if(!r)return;const o=(a==null?void 0:a.pickAt(r.x,r.y))??null;if(o){await Ve(`${T}${o.payload.href}`);return}const h=i==null?void 0:i.pickAt(r.x,r.y);if((h==null?void 0:h.id)==="route-chrome:pause"){ce();return}for(const D of A){const q=await((c=D.pickAt)==null?void 0:c.call(D,r.x,r.y));if(q){(g=e.onpick)==null||g.call(e,q);return}}}J(()=>()=>{var t;for(const r of A)(t=r.dispose)==null||t.call(r);i==null||i.dispose(),a==null||a.dispose(),A=[],i=null,a=null}),J(()=>ue());var y=tt(),ye=Me(y);Te(ye,{get demo(){return ne()},get seed(){return E()},onframe:de,onready:he}),Pe(y),Oe(y,t=>p(f,t),()=>n(f)),_e(()=>we(y,1,`${k()?"absolute":"fixed"} inset-0 overflow-hidden`)),Q("click",y,xe),Q("pointermove",y,me),be("pointerleave",y,ve),ke(d,y),Se(),u()}Ae(["click","pointermove"]);export{pt as R,et as e}; diff --git a/apps/dashboard/build/_app/immutable/chunks/Cqe0su6e.js.br b/apps/dashboard/build/_app/immutable/chunks/Cqe0su6e.js.br new file mode 100644 index 0000000000000000000000000000000000000000..61076415bacac38ec1f5bcf8e66ba5abcf20c717 GIT binary patch literal 3179 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 RI~}TO{6OW<^+QK(lULa3CSd>o literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/Cqe0su6e.js.gz b/apps/dashboard/build/_app/immutable/chunks/Cqe0su6e.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..15df25dc535aad17da99f862a8ef628e02b8909d GIT binary patch literal 3477 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 D*>vP$ literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/Cqk6fVmx.js b/apps/dashboard/build/_app/immutable/chunks/Cqk6fVmx.js new file mode 100644 index 0000000..f4e86b9 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/Cqk6fVmx.js @@ -0,0 +1,5 @@ +import{TSL as t}from"./CkiUhdKe.js";/** + * @license + * Copyright 2010-2024 Three.js Authors + * SPDX-License-Identifier: MIT + */const e=t.BRDF_GGX,n=t.BRDF_Lambert,s=t.BasicShadowFilter,r=t.Break,c=t.Continue,a=t.DFGApprox,i=t.D_GGX,l=t.Discard,m=t.EPSILON,p=t.F_Schlick,d=t.Fn,u=t.INFINITY,g=t.If,h=t.Loop,f=t.NodeShaderStage,x=t.NodeType,b=t.NodeUpdateType,w=t.NodeAccess,v=t.PCFShadowFilter,S=t.PCFSoftShadowFilter,T=t.PI,_=t.PI2,V=t.Return,y=t.Schlick_to_F0,D=t.ScriptableNodeResources,M=t.ShaderNode,F=t.TBNViewMatrix,C=t.VSMShadowFilter,I=t.V_GGX_SmithCorrelated,N=t.abs,P=t.acesFilmicToneMapping,R=t.acos,B=t.add,L=t.addNodeElement,k=t.agxToneMapping,A=t.all,G=t.alphaT,O=t.and,W=t.anisotropy,j=t.anisotropyB,U=t.anisotropyT,q=t.any,z=t.append,E=t.arrayBuffer,Z=t.asin,X=t.assign,Y=t.atan,H=t.atan2,J=t.atomicAdd,K=t.atomicAnd,Q=t.atomicFunc,$=t.atomicMax,tt=t.atomicMin,ot=t.atomicOr,et=t.atomicStore,nt=t.atomicSub,st=t.atomicXor,rt=t.attenuationColor,ct=t.attenuationDistance,at=t.attribute,it=t.attributeArray,lt=t.backgroundBlurriness,mt=t.backgroundIntensity,pt=t.backgroundRotation,dt=t.batch,ut=t.billboarding,gt=t.bitAnd,ht=t.bitNot,ft=t.bitOr,xt=t.bitXor,bt=t.bitangentGeometry,wt=t.bitangentLocal,vt=t.bitangentView,St=t.bitangentWorld,Tt=t.bitcast,_t=t.blendBurn,Vt=t.blendColor,yt=t.blendDodge,Dt=t.blendOverlay,Mt=t.blendScreen,Ft=t.blur,Ct=t.bool,It=t.buffer,Nt=t.bufferAttribute,Pt=t.bumpMap,Rt=t.burn,Bt=t.bvec2,Lt=t.bvec3,kt=t.bvec4,At=t.bypass,Gt=t.cache,Ot=t.call,Wt=t.cameraFar,jt=t.cameraNear,Ut=t.cameraNormalMatrix,qt=t.cameraPosition,zt=t.cameraProjectionMatrix,Et=t.cameraProjectionMatrixInverse,Zt=t.cameraViewMatrix,Xt=t.cameraWorldMatrix,Yt=t.cbrt,Ht=t.cdl,Jt=t.ceil,Kt=t.checker,Qt=t.cineonToneMapping,$t=t.clamp,to=t.clearcoat,oo=t.clearcoatRoughness,eo=t.code,no=t.color,so=t.colorSpaceToWorking,ro=t.colorToDirection,co=t.compute,ao=t.cond,io=t.context,lo=t.convert,mo=t.convertColorSpace,po=t.convertToTexture,uo=t.cos,go=t.cross,ho=t.cubeTexture,fo=t.dFdx,xo=t.dFdy,bo=t.dashSize,wo=t.defaultBuildStages,vo=t.defaultShaderStages,So=t.defined,To=t.degrees,_o=t.deltaTime,Vo=t.densityFog,yo=t.densityFogFactor,Do=t.depth,Mo=t.depthPass,Fo=t.difference,Co=t.diffuseColor,Io=t.directPointLight,No=t.directionToColor,Po=t.dispersion,Ro=t.distance,Bo=t.div,Lo=t.dodge,ko=t.dot,Ao=t.drawIndex,Go=t.dynamicBufferAttribute,Oo=t.element,Wo=t.emissive,jo=t.equal,Uo=t.equals,qo=t.equirectUV,zo=t.exp,Eo=t.exp2,Zo=t.expression,Xo=t.faceDirection,Yo=t.faceForward,Ho=t.faceforward,Jo=t.float,Ko=t.floor,Qo=t.fog,$o=t.fract,te=t.frameGroup,oe=t.frameId,ee=t.frontFacing,ne=t.fwidth,se=t.gain,re=t.gapSize,ce=t.getConstNodeType,ae=t.getCurrentStack,ie=t.getDirection,le=t.getDistanceAttenuation,me=t.getGeometryRoughness,pe=t.getNormalFromDepth,de=t.getParallaxCorrectNormal,ue=t.getRoughness,ge=t.getScreenPosition,he=t.getShIrradianceAt,fe=t.getTextureIndex,xe=t.getViewPosition,be=t.glsl,we=t.glslFn,ve=t.grayscale,Se=t.greaterThan,Te=t.greaterThanEqual,_e=t.hash,Ve=t.highpModelNormalViewMatrix,ye=t.highpModelViewMatrix,De=t.hue,Me=t.instance,Fe=t.instanceIndex,Ce=t.instancedArray,Ie=t.instancedBufferAttribute,Ne=t.instancedDynamicBufferAttribute,Pe=t.instancedMesh,Re=t.int,Be=t.inverseSqrt,Le=t.inversesqrt,ke=t.invocationLocalIndex,Ae=t.invocationSubgroupIndex,Ge=t.ior,Oe=t.iridescence,We=t.iridescenceIOR,je=t.iridescenceThickness,Ue=t.ivec2,qe=t.ivec3,ze=t.ivec4,Ee=t.js,Ze=t.label,Xe=t.length,Ye=t.lengthSq,He=t.lessThan,Je=t.lessThanEqual,Ke=t.lightPosition,Qe=t.lightTargetDirection,$e=t.lightTargetPosition,tn=t.lightViewPosition,on=t.lightingContext,en=t.lights,nn=t.linearDepth,sn=t.linearToneMapping,rn=t.localId,cn=t.log,an=t.log2,ln=t.logarithmicDepthToViewZ,mn=t.loop,pn=t.luminance,dn=t.mediumpModelViewMatrix,un=t.mat2,gn=t.mat3,hn=t.mat4,fn=t.matcapUV,xn=t.materialAO,bn=t.materialAlphaTest,wn=t.materialAnisotropy,vn=t.materialAnisotropyVector,Sn=t.materialAttenuationColor,Tn=t.materialAttenuationDistance,_n=t.materialClearcoat,Vn=t.materialClearcoatNormal,yn=t.materialClearcoatRoughness,Dn=t.materialColor,Mn=t.materialDispersion,Fn=t.materialEmissive,Cn=t.materialIOR,In=t.materialIridescence,Nn=t.materialIridescenceIOR,Pn=t.materialIridescenceThickness,Rn=t.materialLightMap,Bn=t.materialLineDashOffset,Ln=t.materialLineDashSize,kn=t.materialLineGapSize,An=t.materialLineScale,Gn=t.materialLineWidth,On=t.materialMetalness,Wn=t.materialNormal,jn=t.materialOpacity,Un=t.materialPointWidth,qn=t.materialReference,zn=t.materialReflectivity,En=t.materialRefractionRatio,Zn=t.materialRotation,Xn=t.materialRoughness,Yn=t.materialSheen,Hn=t.materialSheenRoughness,Jn=t.materialShininess,Kn=t.materialSpecular,Qn=t.materialSpecularColor,$n=t.materialSpecularIntensity,ts=t.materialSpecularStrength,os=t.materialThickness,es=t.materialTransmission,ns=t.max,ss=t.maxMipLevel,rs=t.metalness,cs=t.min,as=t.mix,is=t.mixElement,ls=t.mod,ms=t.modInt,ps=t.modelDirection,ds=t.modelNormalMatrix,us=t.modelPosition,gs=t.modelScale,hs=t.modelViewMatrix,fs=t.modelViewPosition,xs=t.modelViewProjection,bs=t.modelWorldMatrix,ws=t.modelWorldMatrixInverse,vs=t.morphReference,Ss=t.mrt,Ts=t.mul,_s=t.mx_aastep,Vs=t.mx_cell_noise_float,ys=t.mx_contrast,Ds=t.mx_fractal_noise_float,Ms=t.mx_fractal_noise_vec2,Fs=t.mx_fractal_noise_vec3,Cs=t.mx_fractal_noise_vec4,Is=t.mx_hsvtorgb,Ns=t.mx_noise_float,Ps=t.mx_noise_vec3,Rs=t.mx_noise_vec4,Bs=t.mx_ramplr,Ls=t.mx_ramptb,ks=t.mx_rgbtohsv,As=t.mx_safepower,Gs=t.mx_splitlr,Os=t.mx_splittb,Ws=t.mx_srgb_texture_to_lin_rec709,js=t.mx_transform_uv,Us=t.mx_worley_noise_float,qs=t.mx_worley_noise_vec2,zs=t.mx_worley_noise_vec3,Es=t.negate,Zs=t.neutralToneMapping,Xs=t.nodeArray,Ys=t.nodeImmutable,Hs=t.nodeObject,Js=t.nodeObjects,Ks=t.nodeProxy,Qs=t.normalFlat,$s=t.normalGeometry,tr=t.normalLocal,or=t.normalMap,er=t.normalView,nr=t.normalWorld,sr=t.normalize,rr=t.not,cr=t.notEqual,ar=t.numWorkgroups,ir=t.objectDirection,lr=t.objectGroup,mr=t.objectPosition,pr=t.objectScale,dr=t.objectViewPosition,ur=t.objectWorldMatrix,gr=t.oneMinus,hr=t.or,fr=t.orthographicDepthToViewZ,xr=t.oscSawtooth,br=t.oscSine,wr=t.oscSquare,vr=t.oscTriangle,Sr=t.output,Tr=t.outputStruct,_r=t.overlay,Vr=t.overloadingFn,yr=t.parabola,Dr=t.parallaxDirection,Mr=t.parallaxUV,Fr=t.parameter,Cr=t.pass,Ir=t.passTexture,Nr=t.pcurve,Pr=t.perspectiveDepthToViewZ,Rr=t.pmremTexture,Br=t.pointUV,Lr=t.pointWidth,kr=t.positionGeometry,Ar=t.positionLocal,Gr=t.positionPrevious,Or=t.positionView,Wr=t.positionViewDirection,jr=t.positionWorld,Ur=t.positionWorldDirection,qr=t.posterize,zr=t.pow,Er=t.pow2,Zr=t.pow3,Xr=t.pow4,Yr=t.property,Hr=t.radians,Jr=t.rand,Kr=t.range,Qr=t.rangeFog,$r=t.rangeFogFactor,tc=t.reciprocal,oc=t.reference,ec=t.referenceBuffer,nc=t.reflect,sc=t.reflectVector,rc=t.reflectView,cc=t.reflector,ac=t.refract,ic=t.refractVector,lc=t.refractView,mc=t.reinhardToneMapping,pc=t.remainder,dc=t.remap,uc=t.remapClamp,gc=t.renderGroup,hc=t.renderOutput,fc=t.rendererReference,xc=t.rotate,bc=t.rotateUV,wc=t.roughness,vc=t.round,Sc=t.rtt,Tc=t.sRGBTransferEOTF,_c=t.sRGBTransferOETF,Vc=t.sampler,yc=t.saturate,Dc=t.saturation,Mc=t.screen,Fc=t.screenCoordinate,Cc=t.screenSize,Ic=t.screenUV,Nc=t.scriptable,Pc=t.scriptableValue,Rc=t.select,Bc=t.setCurrentStack,Lc=t.shaderStages,kc=t.shadow,Ac=t.shadowPositionWorld,Gc=t.sharedUniformGroup,Oc=t.sheen,Wc=t.sheenRoughness,jc=t.shiftLeft,Uc=t.shiftRight,qc=t.shininess,zc=t.sign,Ec=t.sin,Zc=t.sinc,Xc=t.skinning,Yc=t.skinningReference,Hc=t.smoothstep,Jc=t.smoothstepElement,Kc=t.specularColor,Qc=t.specularF90,$c=t.spherizeUV,ta=t.split,oa=t.spritesheetUV,ea=t.sqrt,na=t.stack,sa=t.step,ra=t.storage,ca=t.storageBarrier,aa=t.storageObject,ia=t.storageTexture,la=t.string,ma=t.sub,pa=t.subgroupIndex,da=t.subgroupSize,ua=t.tan,ga=t.tangentGeometry,ha=t.tangentLocal,fa=t.tangentView,xa=t.tangentWorld,ba=t.temp,wa=t.texture,va=t.texture3D,Sa=t.textureBarrier,Ta=t.textureBicubic,_a=t.textureCubeUV,Va=t.textureLoad,ya=t.textureSize,Da=t.textureStore,Ma=t.thickness,Fa=t.threshold,Ca=t.time,Ia=t.timerDelta,Na=t.timerGlobal,Pa=t.timerLocal,Ra=t.toOutputColorSpace,Ba=t.toWorkingColorSpace,La=t.toneMapping,ka=t.toneMappingExposure,Aa=t.toonOutlinePass,Ga=t.transformDirection,Oa=t.transformNormal,Wa=t.transformNormalToView,ja=t.transformedBentNormalView,Ua=t.transformedBitangentView,qa=t.transformedBitangentWorld,za=t.transformedClearcoatNormalView,Ea=t.transformedNormalView,Za=t.transformedNormalWorld,Xa=t.transformedTangentView,Ya=t.transformedTangentWorld,Ha=t.transmission,Ja=t.transpose,Ka=t.tri,Qa=t.tri3,$a=t.triNoise3D,ti=t.triplanarTexture,oi=t.triplanarTextures,ei=t.trunc,ni=t.tslFn,si=t.uint,ri=t.uniform,ci=t.uniformArray,ai=t.uniformGroup,ii=t.uniforms,li=t.userData,mi=t.uv,pi=t.uvec2,di=t.uvec3,ui=t.uvec4,gi=t.varying,hi=t.varyingProperty,fi=t.vec2,xi=t.vec3,bi=t.vec4,wi=t.vectorComponents,vi=t.velocity,Si=t.vertexColor,Ti=t.vertexIndex,_i=t.vibrance,Vi=t.viewZToLogarithmicDepth,yi=t.viewZToOrthographicDepth,Di=t.viewZToPerspectiveDepth,Mi=t.viewport,Fi=t.viewportBottomLeft,Ci=t.viewportCoordinate,Ii=t.viewportDepthTexture,Ni=t.viewportLinearDepth,Pi=t.viewportMipTexture,Ri=t.viewportResolution,Bi=t.viewportSafeUV,Li=t.viewportSharedTexture,ki=t.viewportSize,Ai=t.viewportTexture,Gi=t.viewportTopLeft,Oi=t.viewportUV,Wi=t.wgsl,ji=t.wgslFn,Ui=t.workgroupArray,qi=t.workgroupBarrier,zi=t.workgroupId,Ei=t.workingToColorSpace,Zi=t.xor;export{e as BRDF_GGX,n as BRDF_Lambert,s as BasicShadowFilter,r as Break,c as Continue,a as DFGApprox,i as D_GGX,l as Discard,m as EPSILON,p as F_Schlick,d as Fn,u as INFINITY,g as If,h as Loop,w as NodeAccess,f as NodeShaderStage,x as NodeType,b as NodeUpdateType,v as PCFShadowFilter,S as PCFSoftShadowFilter,T as PI,_ as PI2,V as Return,y as Schlick_to_F0,D as ScriptableNodeResources,M as ShaderNode,F as TBNViewMatrix,C as VSMShadowFilter,I as V_GGX_SmithCorrelated,N as abs,P as acesFilmicToneMapping,R as acos,B as add,L as addNodeElement,k as agxToneMapping,A as all,G as alphaT,O as and,W as anisotropy,j as anisotropyB,U as anisotropyT,q as any,z as append,E as arrayBuffer,Z as asin,X as assign,Y as atan,H as atan2,J as atomicAdd,K as atomicAnd,Q as atomicFunc,$ as atomicMax,tt as atomicMin,ot as atomicOr,et as atomicStore,nt as atomicSub,st as atomicXor,rt as attenuationColor,ct as attenuationDistance,at as attribute,it as attributeArray,lt as backgroundBlurriness,mt as backgroundIntensity,pt as backgroundRotation,dt as batch,ut as billboarding,gt as bitAnd,ht as bitNot,ft as bitOr,xt as bitXor,bt as bitangentGeometry,wt as bitangentLocal,vt as bitangentView,St as bitangentWorld,Tt as bitcast,_t as blendBurn,Vt as blendColor,yt as blendDodge,Dt as blendOverlay,Mt as blendScreen,Ft as blur,Ct as bool,It as buffer,Nt as bufferAttribute,Pt as bumpMap,Rt as burn,Bt as bvec2,Lt as bvec3,kt as bvec4,At as bypass,Gt as cache,Ot as call,Wt as cameraFar,jt as cameraNear,Ut as cameraNormalMatrix,qt as cameraPosition,zt as cameraProjectionMatrix,Et as cameraProjectionMatrixInverse,Zt as cameraViewMatrix,Xt as cameraWorldMatrix,Yt as cbrt,Ht as cdl,Jt as ceil,Kt as checker,Qt as cineonToneMapping,$t as clamp,to as clearcoat,oo as clearcoatRoughness,eo as code,no as color,so as colorSpaceToWorking,ro as colorToDirection,co as compute,ao as cond,io as context,lo as convert,mo as convertColorSpace,po as convertToTexture,uo as cos,go as cross,ho as cubeTexture,fo as dFdx,xo as dFdy,bo as dashSize,wo as defaultBuildStages,vo as defaultShaderStages,So as defined,To as degrees,_o as deltaTime,Vo as densityFog,yo as densityFogFactor,Do as depth,Mo as depthPass,Fo as difference,Co as diffuseColor,Io as directPointLight,No as directionToColor,Po as dispersion,Ro as distance,Bo as div,Lo as dodge,ko as dot,Ao as drawIndex,Go as dynamicBufferAttribute,Oo as element,Wo as emissive,jo as equal,Uo as equals,qo as equirectUV,zo as exp,Eo as exp2,Zo as expression,Xo as faceDirection,Yo as faceForward,Ho as faceforward,Jo as float,Ko as floor,Qo as fog,$o as fract,te as frameGroup,oe as frameId,ee as frontFacing,ne as fwidth,se as gain,re as gapSize,ce as getConstNodeType,ae as getCurrentStack,ie as getDirection,le as getDistanceAttenuation,me as getGeometryRoughness,pe as getNormalFromDepth,de as getParallaxCorrectNormal,ue as getRoughness,ge as getScreenPosition,he as getShIrradianceAt,fe as getTextureIndex,xe as getViewPosition,be as glsl,we as glslFn,ve as grayscale,Se as greaterThan,Te as greaterThanEqual,_e as hash,Ve as highpModelNormalViewMatrix,ye as highpModelViewMatrix,De as hue,Me as instance,Fe as instanceIndex,Ce as instancedArray,Ie as instancedBufferAttribute,Ne as instancedDynamicBufferAttribute,Pe as instancedMesh,Re as int,Be as inverseSqrt,Le as inversesqrt,ke as invocationLocalIndex,Ae as invocationSubgroupIndex,Ge as ior,Oe as iridescence,We as iridescenceIOR,je as iridescenceThickness,Ue as ivec2,qe as ivec3,ze as ivec4,Ee as js,Ze as label,Xe as length,Ye as lengthSq,He as lessThan,Je as lessThanEqual,Ke as lightPosition,Qe as lightTargetDirection,$e as lightTargetPosition,tn as lightViewPosition,on as lightingContext,en as lights,nn as linearDepth,sn as linearToneMapping,rn as localId,cn as log,an as log2,ln as logarithmicDepthToViewZ,mn as loop,pn as luminance,un as mat2,gn as mat3,hn as mat4,fn as matcapUV,xn as materialAO,bn as materialAlphaTest,wn as materialAnisotropy,vn as materialAnisotropyVector,Sn as materialAttenuationColor,Tn as materialAttenuationDistance,_n as materialClearcoat,Vn as materialClearcoatNormal,yn as materialClearcoatRoughness,Dn as materialColor,Mn as materialDispersion,Fn as materialEmissive,Cn as materialIOR,In as materialIridescence,Nn as materialIridescenceIOR,Pn as materialIridescenceThickness,Rn as materialLightMap,Bn as materialLineDashOffset,Ln as materialLineDashSize,kn as materialLineGapSize,An as materialLineScale,Gn as materialLineWidth,On as materialMetalness,Wn as materialNormal,jn as materialOpacity,Un as materialPointWidth,qn as materialReference,zn as materialReflectivity,En as materialRefractionRatio,Zn as materialRotation,Xn as materialRoughness,Yn as materialSheen,Hn as materialSheenRoughness,Jn as materialShininess,Kn as materialSpecular,Qn as materialSpecularColor,$n as materialSpecularIntensity,ts as materialSpecularStrength,os as materialThickness,es as materialTransmission,ns as max,ss as maxMipLevel,dn as mediumpModelViewMatrix,rs as metalness,cs as min,as as mix,is as mixElement,ls as mod,ms as modInt,ps as modelDirection,ds as modelNormalMatrix,us as modelPosition,gs as modelScale,hs as modelViewMatrix,fs as modelViewPosition,xs as modelViewProjection,bs as modelWorldMatrix,ws as modelWorldMatrixInverse,vs as morphReference,Ss as mrt,Ts as mul,_s as mx_aastep,Vs as mx_cell_noise_float,ys as mx_contrast,Ds as mx_fractal_noise_float,Ms as mx_fractal_noise_vec2,Fs as mx_fractal_noise_vec3,Cs as mx_fractal_noise_vec4,Is as mx_hsvtorgb,Ns as mx_noise_float,Ps as mx_noise_vec3,Rs as mx_noise_vec4,Bs as mx_ramplr,Ls as mx_ramptb,ks as mx_rgbtohsv,As as mx_safepower,Gs as mx_splitlr,Os as mx_splittb,Ws as mx_srgb_texture_to_lin_rec709,js as mx_transform_uv,Us as mx_worley_noise_float,qs as mx_worley_noise_vec2,zs as mx_worley_noise_vec3,Es as negate,Zs as neutralToneMapping,Xs as nodeArray,Ys as nodeImmutable,Hs as nodeObject,Js as nodeObjects,Ks as nodeProxy,Qs as normalFlat,$s as normalGeometry,tr as normalLocal,or as normalMap,er as normalView,nr as normalWorld,sr as normalize,rr as not,cr as notEqual,ar as numWorkgroups,ir as objectDirection,lr as objectGroup,mr as objectPosition,pr as objectScale,dr as objectViewPosition,ur as objectWorldMatrix,gr as oneMinus,hr as or,fr as orthographicDepthToViewZ,xr as oscSawtooth,br as oscSine,wr as oscSquare,vr as oscTriangle,Sr as output,Tr as outputStruct,_r as overlay,Vr as overloadingFn,yr as parabola,Dr as parallaxDirection,Mr as parallaxUV,Fr as parameter,Cr as pass,Ir as passTexture,Nr as pcurve,Pr as perspectiveDepthToViewZ,Rr as pmremTexture,Br as pointUV,Lr as pointWidth,kr as positionGeometry,Ar as positionLocal,Gr as positionPrevious,Or as positionView,Wr as positionViewDirection,jr as positionWorld,Ur as positionWorldDirection,qr as posterize,zr as pow,Er as pow2,Zr as pow3,Xr as pow4,Yr as property,Hr as radians,Jr as rand,Kr as range,Qr as rangeFog,$r as rangeFogFactor,tc as reciprocal,oc as reference,ec as referenceBuffer,nc as reflect,sc as reflectVector,rc as reflectView,cc as reflector,ac as refract,ic as refractVector,lc as refractView,mc as reinhardToneMapping,pc as remainder,dc as remap,uc as remapClamp,gc as renderGroup,hc as renderOutput,fc as rendererReference,xc as rotate,bc as rotateUV,wc as roughness,vc as round,Sc as rtt,Tc as sRGBTransferEOTF,_c as sRGBTransferOETF,Vc as sampler,yc as saturate,Dc as saturation,Mc as screen,Fc as screenCoordinate,Cc as screenSize,Ic as screenUV,Nc as scriptable,Pc as scriptableValue,Rc as select,Bc as setCurrentStack,Lc as shaderStages,kc as shadow,Ac as shadowPositionWorld,Gc as sharedUniformGroup,Oc as sheen,Wc as sheenRoughness,jc as shiftLeft,Uc as shiftRight,qc as shininess,zc as sign,Ec as sin,Zc as sinc,Xc as skinning,Yc as skinningReference,Hc as smoothstep,Jc as smoothstepElement,Kc as specularColor,Qc as specularF90,$c as spherizeUV,ta as split,oa as spritesheetUV,ea as sqrt,na as stack,sa as step,ra as storage,ca as storageBarrier,aa as storageObject,ia as storageTexture,la as string,ma as sub,pa as subgroupIndex,da as subgroupSize,ua as tan,ga as tangentGeometry,ha as tangentLocal,fa as tangentView,xa as tangentWorld,ba as temp,wa as texture,va as texture3D,Sa as textureBarrier,Ta as textureBicubic,_a as textureCubeUV,Va as textureLoad,ya as textureSize,Da as textureStore,Ma as thickness,Fa as threshold,Ca as time,Ia as timerDelta,Na as timerGlobal,Pa as timerLocal,Ra as toOutputColorSpace,Ba as toWorkingColorSpace,La as toneMapping,ka as toneMappingExposure,Aa as toonOutlinePass,Ga as transformDirection,Oa as transformNormal,Wa as transformNormalToView,ja as transformedBentNormalView,Ua as transformedBitangentView,qa as transformedBitangentWorld,za as transformedClearcoatNormalView,Ea as transformedNormalView,Za as transformedNormalWorld,Xa as transformedTangentView,Ya as transformedTangentWorld,Ha as transmission,Ja as transpose,Ka as tri,Qa as tri3,$a as triNoise3D,ti as triplanarTexture,oi as triplanarTextures,ei as trunc,ni as tslFn,si as uint,ri as uniform,ci as uniformArray,ai as uniformGroup,ii as uniforms,li as userData,mi as uv,pi as uvec2,di as uvec3,ui as uvec4,gi as varying,hi as varyingProperty,fi as vec2,xi as vec3,bi as vec4,wi as vectorComponents,vi as velocity,Si as vertexColor,Ti as vertexIndex,_i as vibrance,Vi as viewZToLogarithmicDepth,yi as viewZToOrthographicDepth,Di as viewZToPerspectiveDepth,Mi as viewport,Fi as viewportBottomLeft,Ci as viewportCoordinate,Ii as viewportDepthTexture,Ni as viewportLinearDepth,Pi as viewportMipTexture,Ri as viewportResolution,Bi as viewportSafeUV,Li as viewportSharedTexture,ki as viewportSize,Ai as viewportTexture,Gi as viewportTopLeft,Oi as viewportUV,Wi as wgsl,ji as wgslFn,Ui as workgroupArray,qi as workgroupBarrier,zi as workgroupId,Ei as workingToColorSpace,Zi as xor}; diff --git a/apps/dashboard/build/_app/immutable/chunks/Cqk6fVmx.js.br b/apps/dashboard/build/_app/immutable/chunks/Cqk6fVmx.js.br new file mode 100644 index 0000000000000000000000000000000000000000..eeb24317a2756be37b7921bf1b28b1d9ade2c390 GIT binary patch literal 3972 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/Cqk6fVmx.js.gz b/apps/dashboard/build/_app/immutable/chunks/Cqk6fVmx.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6be12e3970e27cdb63abc22ad91bc1a31237b98a GIT binary patch literal 5534 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 ggpn0XVur{const n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(n)return a.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(o)return a.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return ct(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return ct(String.fromCharCode(...c.slice(2).split("-").map(_=>parseInt(_,16))));const h=ue.exec(c),[,u,w,f,d]=h;return a.push({name:f,matcher:d,optional:!!u,rest:!!w,chained:w?l===1&&s[0]==="":!1}),w?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return ct(c)}).join("")}).join("")}/?$`),params:a}}function de(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function pe(t){return t.slice(1).split("/").filter(de)}function ge(t,a,e){const r={},n=t.slice(1),o=n.filter(i=>i!==void 0);let s=0;for(let i=0;ih).join("/"),s=0),l===void 0)if(c.rest)l="";else continue;if(!c.matcher||e[c.matcher](l)){r[c.name]=l;const h=a[i+1],u=n[i+1];h&&!h.rest&&h.optional&&u&&c.chained&&(s=0),!h&&!u&&Object.keys(r).length===o.length&&(s=0);continue}if(c.optional&&c.chained){s++;continue}return}if(!s)return r}function ct(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function me({nodes:t,server_loads:a,dictionary:e,matchers:r}){const n=new Set(a);return Object.entries(e).map(([i,[c,l,h]])=>{const{pattern:u,params:w}=he(i),f={id:i,exec:d=>{const _=u.exec(d);if(_)return ge(_,w,r)},errors:[1,...h||[]].map(d=>t[d]),layouts:[0,...l||[]].map(s),leaf:o(c)};return f.errors.length=f.layouts.length=Math.max(f.errors.length,f.layouts.length),f});function o(i){const c=i<0;return c&&(i=~i),[c,t[i]]}function s(i){return i===void 0?i:[n.has(i),t[i]]}}function Ft(t,a=JSON.parse){try{return a(sessionStorage[t])}catch{}}function It(t,a,e=JSON.stringify){const r=e(a);try{sessionStorage[t]=r}catch{}}function _e(t){return t.filter(a=>a!=null)}function Et(t){return t instanceof wt||t instanceof yt?t.status:500}function we(t){return t instanceof yt?t.text:"Internal Error"}const ve=new Set(["icon","shortcut icon","apple-touch-icon"]),I=Ft(Kt)??{},M=Ft(qt)??{},P={url:Pt({}),page:Pt({}),navigating:ae(null),updated:ne()};function bt(t){I[t]=C()}function ye(t,a){let e=t+1;for(;I[e];)delete I[e],e+=1;for(e=a+1;M[e];)delete M[e],e+=1}function V(t,a=!1){return a?location.replace(t.href):location.href=t.href,new Promise(()=>{})}async function Bt(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(L||"/");t&&await t.update()}}function Tt(){}let kt,ht,Q,U,dt,b;const Z=[],tt=[];let v=null;function pt(){var t;(t=v==null?void 0:v.fork)==null||t.then(a=>a==null?void 0:a.discard()),v=null}const G=new Map,Mt=new Set,Ee=new Set,F=new Set;let m={branch:[],error:null,url:null},Vt=!1,et=!1,Ot=!0,H=!1,K=!1,Ht=!1,St=!1,Yt,E,R,O;const at=new Set,Ct=new Map;async function Fe(t,a,e){var o,s,i,c,l;(o=globalThis.__sveltekit_1p6kag3)!=null&&o.data&&globalThis.__sveltekit_1p6kag3.data,document.URL!==location.href&&(location.href=location.href),b=t,await((i=(s=t.hooks).init)==null?void 0:i.call(s)),kt=me(t),U=document.documentElement,dt=a,ht=t.nodes[0],Q=t.nodes[1],ht(),Q(),E=(c=history.state)==null?void 0:c[N],R=(l=history.state)==null?void 0:l[B],E||(E=R=Date.now(),history.replaceState({...history.state,[N]:E,[B]:R},""));const r=I[E];function n(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}e?(n(),await Ce(dt,e)):(await D({type:"enter",url:mt(b.hash?Ne(new URL(location.href)):location.href),replace_state:!0}),n()),Oe()}function be(){Z.length=0,St=!1}function zt(t){tt.some(a=>a==null?void 0:a.snapshot)&&(M[t]=tt.map(a=>{var e;return(e=a==null?void 0:a.snapshot)==null?void 0:e.capture()}))}function Wt(t){var a;(a=M[t])==null||a.forEach((e,r)=>{var n,o;(o=(n=tt[r])==null?void 0:n.snapshot)==null||o.restore(e)})}function jt(){bt(E),It(Kt,I),zt(R),It(qt,M)}async function Gt(t,a,e,r){let n;a.invalidateAll&&pt(),await D({type:"goto",url:mt(t),keepfocus:a.keepFocus,noscroll:a.noScroll,replace_state:a.replaceState,state:a.state,redirect_count:e,nav_token:r,accept:()=>{a.invalidateAll&&(St=!0,n=[...Ct.keys()]),a.invalidate&&a.invalidate.forEach(Te)}}),a.invalidateAll&&J().then(J).then(()=>{Ct.forEach(({resource:o},s)=>{var i;n!=null&&n.includes(s)&&((i=o.refresh)==null||i.call(o))})})}async function ke(t){if(t.id!==(v==null?void 0:v.id)){pt();const a={};at.add(a),v={id:t.id,token:a,promise:Xt({...t,preload:a}).then(e=>(at.delete(a),e.type==="loaded"&&e.state.error&&pt(),e)),fork:null}}return v.promise}async function lt(t){var e;const a=(e=await ot(t,!1))==null?void 0:e.route;a&&await Promise.all([...a.layouts,a.leaf].filter(Boolean).map(r=>r[1]()))}async function Jt(t,a,e){var n;m=t.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(x,t.props.page),Yt=new b.root({target:a,props:{...t.props,stores:P,components:tt},hydrate:e,sync:!1}),await Promise.resolve(),Wt(R),e){const o={from:null,to:{params:m.params,route:{id:((n=m.route)==null?void 0:n.id)??null},url:new URL(location.href),scroll:I[E]??C()},willUnload:!1,type:"enter",complete:Promise.resolve()};F.forEach(s=>s(o))}et=!0}function nt({url:t,params:a,branch:e,status:r,error:n,route:o,form:s}){let i="never";if(L&&(t.pathname===L||t.pathname===L+"/"))i="always";else for(const f of e)(f==null?void 0:f.slash)!==void 0&&(i=f.slash);t.pathname=se(t.pathname,i),t.search=t.search;const c={type:"loaded",state:{url:t,params:a,branch:e,error:n,route:o},props:{constructors:_e(e).map(f=>f.node.component),page:At(x)}};s!==void 0&&(c.props.form=s);let l={},h=!x,u=0;for(let f=0;fi(new URL(s))))return!0;return!1}function xt(t,a){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?a??null:null}function xe(t,a){if(!t)return new Set(a.searchParams.keys());const e=new Set([...t.searchParams.keys(),...a.searchParams.keys()]);for(const r of e){const n=t.searchParams.getAll(r),o=a.searchParams.getAll(r);n.every(s=>o.includes(s))&&o.every(s=>n.includes(s))&&e.delete(r)}return e}function Le({error:t,url:a,route:e,params:r}){return{type:"loaded",state:{error:t,url:a,route:e,params:r,branch:[]},props:{page:At(x),constructors:[]}}}async function Xt({id:t,invalidating:a,url:e,params:r,route:n,preload:o}){if((v==null?void 0:v.id)===t)return at.delete(v.token),v.promise;const{errors:s,layouts:i,leaf:c}=n,l=[...i,c];s.forEach(g=>g==null?void 0:g().catch(()=>{})),l.forEach(g=>g==null?void 0:g[1]().catch(()=>{}));const h=m.url?t!==rt(m.url):!1,u=m.route?n.id!==m.route.id:!1,w=xe(m.url,e);let f=!1;const d=l.map(async(g,p)=>{var A;if(!g)return;const y=m.branch[p];return g[1]===(y==null?void 0:y.loader)&&!Re(f,u,h,w,(A=y.universal)==null?void 0:A.uses,r)?y:(f=!0,Rt({loader:g[1],url:e,params:r,route:n,parent:async()=>{var z;const T={};for(let j=0;j{});const _=[];for(let g=0;gPromise.resolve({}),server_data_node:xt(o)}),i={node:await Q(),loader:Q,universal:null,server:null,data:null};return nt({url:e,params:n,branch:[s,i],status:t,error:a,route:null})}catch(s){if(s instanceof vt)return Gt(new URL(s.location,location.href),{},0);throw s}}async function Ae(t){const a=t.href;if(G.has(a))return G.get(a);let e;try{const r=(async()=>{let n=await b.hooks.reroute({url:new URL(t),fetch:async(o,s)=>Se(o,s,t).promise})??t;if(typeof n=="string"){const o=new URL(t);b.hash?o.hash=n:o.pathname=n,n=o}return n})();G.set(a,r),e=await r}catch{G.delete(a);return}return e}async function ot(t,a){if(t&&!_t(t,L,b.hash)){const e=await Ae(t);if(!e)return;const r=Pe(e);for(const n of kt){const o=n.exec(r);if(o)return{id:rt(t),invalidating:a,route:n,params:oe(o),url:t}}}}function Pe(t){return ie(b.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(L.length))||"/"}function rt(t){return(b.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function Qt({url:t,type:a,intent:e,delta:r,event:n,scroll:o}){let s=!1;const i=Ut(m,e,t,a,o??null);r!==void 0&&(i.navigation.delta=r),n!==void 0&&(i.navigation.event=n);const c={...i.navigation,cancel:()=>{s=!0,i.reject(new Error("navigation cancelled"))}};return H||Mt.forEach(l=>l(c)),s?null:i}async function D({type:t,url:a,popped:e,keepfocus:r,noscroll:n,replace_state:o,state:s={},redirect_count:i=0,nav_token:c={},accept:l=Tt,block:h=Tt,event:u}){var j;const w=O;O=c;const f=await ot(a,!1),d=t==="enter"?Ut(m,f,a,t):Qt({url:a,type:t,delta:e==null?void 0:e.delta,intent:f,scroll:e==null?void 0:e.scroll,event:u});if(!d){h(),O===c&&(O=w);return}const _=E,g=R;l(),H=!0,et&&d.navigation.type!=="enter"&&P.navigating.set(ft.current=d.navigation);let p=f&&await Xt(f);if(!p){if(_t(a,L,b.hash))return await V(a,o);p=await Zt(a,{id:null},await Y(new yt(404,"Not Found",`Not found: ${a.pathname}`),{url:a,params:{},route:{id:null}}),404,o)}if(a=(f==null?void 0:f.url)||a,O!==c)return d.reject(new Error("navigation aborted")),!1;if(p.type==="redirect"){if(i<20){await D({type:t,url:new URL(p.location,a),popped:e,keepfocus:r,noscroll:n,replace_state:o,state:s,redirect_count:i+1,nav_token:c}),d.fulfil(void 0);return}p=await Lt({status:500,error:await Y(new Error("Redirect loop"),{url:a,params:{},route:{id:null}}),url:a,route:{id:null}})}else p.props.page.status>=400&&await P.updated.check()&&(await Bt(),await V(a,o));if(be(),bt(_),zt(g),p.props.page.url.pathname!==a.pathname&&(a.pathname=p.props.page.url.pathname),s=e?e.state:s,!e){const k=o?0:1,W={[N]:E+=k,[B]:R+=k,[Nt]:s};(o?history.replaceState:history.pushState).call(history,W,"",a),o||ye(E,R)}const y=f&&(v==null?void 0:v.id)===f.id?v.fork:null;v=null,p.props.page.state=s;let S;if(et){const k=(await Promise.all(Array.from(Ee,$=>$(d.navigation)))).filter($=>typeof $=="function");if(k.length>0){let $=function(){k.forEach(st=>{F.delete(st)})};k.push($),k.forEach(st=>{F.add(st)})}m=p.state,p.props.page&&(p.props.page.url=a);const W=y&&await y;W?S=W.commit():(Yt.$set(p.props),fe(p.props.page),S=(j=ee)==null?void 0:j()),Ht=!0}else await Jt(p,dt,!1);const{activeElement:A}=document;await S,await J(),await J();let T=null;if(Ot){const k=e?e.scroll:n?C():null;k?scrollTo(k.x,k.y):(T=a.hash&&document.getElementById(te(a)))?T.scrollIntoView():scrollTo(0,0)}const z=document.activeElement!==A&&document.activeElement!==document.body;!r&&!z&&$e(a,!T),Ot=!0,p.props.page&&Object.assign(x,p.props.page),H=!1,t==="popstate"&&Wt(R),d.fulfil(void 0),d.navigation.to&&(d.navigation.to.scroll=C()),F.forEach(k=>k(d.navigation)),P.navigating.set(ft.current=null)}async function Zt(t,a,e,r,n){return t.origin===Dt&&t.pathname===location.pathname&&!Vt?await Lt({status:r,error:e,url:t,route:a}):await V(t,n)}function Ie(){let t,a={element:void 0,href:void 0},e;U.addEventListener("mousemove",i=>{const c=i.target;clearTimeout(t),t=setTimeout(()=>{o(c,q.hover)},20)});function r(i){i.defaultPrevented||o(i.composedPath()[0],q.tap)}U.addEventListener("mousedown",r),U.addEventListener("touchstart",r,{passive:!0});const n=new IntersectionObserver(i=>{for(const c of i)c.isIntersecting&&(lt(new URL(c.target.href)),n.unobserve(c.target))},{threshold:0});async function o(i,c){const l=$t(i,U),h=l===a.element&&(l==null?void 0:l.href)===a.href&&c>=e;if(!l||h)return;const{url:u,external:w,download:f}=ut(l,L,b.hash);if(w||f)return;const d=X(l),_=u&&rt(m.url)===rt(u);if(!(d.reload||_))if(c<=d.preload_data){a={element:l,href:l.href},e=q.tap;const g=await ot(u,!1);if(!g)return;ke(g)}else c<=d.preload_code&&(a={element:l,href:l.href},e=c,lt(u))}function s(){n.disconnect();for(const i of U.querySelectorAll("a")){const{url:c,external:l,download:h}=ut(i,L,b.hash);if(l||h)continue;const u=X(i);u.reload||(u.preload_code===q.viewport&&n.observe(i),u.preload_code===q.eager&<(c))}}F.add(s),s()}function Y(t,a){if(t instanceof wt)return t.body;const e=Et(t),r=we(t);return b.hooks.handleError({error:t,event:a,status:e,message:r})??{message:r}}function Be(t,a={}){return t=new URL(mt(t)),t.origin!==Dt?Promise.reject(new Error("goto: invalid URL")):Gt(t,a,0)}function Te(t){if(typeof t=="function")Z.push(t);else{const{href:a}=new URL(t,location.href);Z.push(e=>e.href===a)}}function Oe(){var a;history.scrollRestoration="manual",addEventListener("beforeunload",e=>{let r=!1;if(jt(),!H){const n=Ut(m,void 0,null,"leave"),o={...n.navigation,cancel:()=>{r=!0,n.reject(new Error("navigation cancelled"))}};Mt.forEach(s=>s(o))}r?(e.preventDefault(),e.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&jt()}),(a=navigator.connection)!=null&&a.saveData||Ie(),U.addEventListener("click",async e=>{if(e.button||e.which!==1||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.defaultPrevented)return;const r=$t(e.composedPath()[0],U);if(!r)return;const{url:n,external:o,target:s,download:i}=ut(r,L,b.hash);if(!n)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const c=X(r);if(!(r instanceof SVGAElement)&&n.protocol!==location.protocol&&!(n.protocol==="https:"||n.protocol==="http:")||i)return;const[h,u]=(b.hash?n.hash.replace(/^#/,""):n.href).split("#"),w=h===it(location);if(o||c.reload&&(!w||!u)){Qt({url:n,type:"link",event:e})?H=!0:e.preventDefault();return}if(u!==void 0&&w){const[,f]=m.url.href.split("#");if(f===u){if(e.preventDefault(),u===""||u==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const d=r.ownerDocument.getElementById(decodeURIComponent(u));d&&(d.scrollIntoView(),d.focus())}return}if(K=!0,bt(E),t(n),!c.replace_state)return;K=!1}e.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await D({type:"link",url:n,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??n.href===location.href,event:e})}),U.addEventListener("submit",e=>{if(e.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if(((n==null?void 0:n.formTarget)||r.target)==="_blank"||((n==null?void 0:n.formMethod)||r.method)!=="get")return;const i=new URL((n==null?void 0:n.hasAttribute("formaction"))&&(n==null?void 0:n.formAction)||r.action);if(_t(i,L,!1))return;const c=e.target,l=X(c);if(l.reload)return;e.preventDefault(),e.stopPropagation();const h=new FormData(c,n);i.search=new URLSearchParams(h).toString(),D({type:"form",url:i,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??i.href===location.href,event:e})}),addEventListener("popstate",async e=>{var r;if(!gt){if((r=e.state)!=null&&r[N]){const n=e.state[N];if(O={},n===E)return;const o=I[n],s=e.state[Nt]??{},i=new URL(e.state[re]??location.href),c=e.state[B],l=m.url?it(location)===it(m.url):!1;if(c===R&&(Ht||l)){s!==x.state&&(x.state=s),t(i),I[E]=C(),o&&scrollTo(o.x,o.y),E=n;return}const u=n-E;await D({type:"popstate",url:i,popped:{state:s,scroll:o,delta:u},accept:()=>{E=n,R=c},block:()=>{history.go(-u)},nav_token:O,event:e})}else if(!K){const n=new URL(location.href);t(n),b.hash&&location.reload()}}}),addEventListener("hashchange",()=>{K&&(K=!1,history.replaceState({...history.state,[N]:++E,[B]:R},"",location.href))});for(const e of document.querySelectorAll("link"))ve.has(e.rel)&&(e.href=e.href);addEventListener("pageshow",e=>{e.persisted&&P.navigating.set(ft.current=null)});function t(e){m.url=x.url=e,P.page.set(At(x)),P.page.notify()}}async function Ce(t,{status:a=200,error:e,node_ids:r,params:n,route:o,server_route:s,data:i,form:c}){Vt=!0;const l=new URL(location.href);let h;({params:n={},route:o={id:null}}=await ot(l,!1)||{}),h=kt.find(({id:f})=>f===o.id);let u,w=!0;try{const f=r.map(async(_,g)=>{const p=i[g];return p!=null&&p.uses&&(p.uses=je(p.uses)),Rt({loader:b.nodes[_],url:l,params:n,route:o,parent:async()=>{const y={};for(let S=0;S{const i=history.state;gt=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(i,"",t),a&&scrollTo(o,s),gt=!1})}else{const o=document.body,s=o.getAttribute("tabindex");o.tabIndex=-1,o.focus({preventScroll:!0,focusVisible:!1}),s!==null?o.setAttribute("tabindex",s):o.removeAttribute("tabindex")}const n=getSelection();if(n&&n.type!=="None"){const o=[];for(let s=0;s{if(n.rangeCount===o.length){for(let s=0;s{o=u,s=w});return i.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((l=t.route)==null?void 0:l.id)??null},url:t.url,scroll:C()},to:e&&{params:(a==null?void 0:a.params)??null,route:{id:((h=a==null?void 0:a.route)==null?void 0:h.id)??null},url:e,scroll:n},willUnload:!a,type:r,complete:i},fulfil:o,reject:s}}function At(t){return{data:t.data,error:t.error,form:t.form,params:t.params,route:t.route,state:t.state,status:t.status,url:t.url}}function Ne(t){const a=new URL(t);return a.hash=decodeURIComponent(t.hash),a}function te(t){let a;if(b.hash){const[,,e]=t.hash.split("#",3);a=e??""}else a=t.hash.slice(1);return decodeURIComponent(a)}export{Fe as a,Be as g,P as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js.br b/apps/dashboard/build/_app/immutable/chunks/CtgMtoAJ.js.br deleted file mode 100644 index 8f904e8f1d14c1e9d4658eca8a594937338401ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7651 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

cC)puAg~9S+6Bi|URjqH;pz2KAieth$ zTD$2-Jixq|(jLyht=|m4tF0Hbh6IV6-3voad*apR5U~u6HN@E2`heK`mZa;Sv>h90 zL^Lt#oNPem>Y5KWsuD6T(Rj1YuEq zH)+5@+A%aVVzQqX{sZ8Rl%M0-d!W1&7#3<#>PS~*m{*s^_A*s_wovO=OW{6EBB|D% z0i5fF&c-l15gjd$lvd-S)vQ3O+yF?kVf4%rDr^)a72ro+#+^f{qPH$g%h~>`=Weq# zGU|cfw`&_?JtxE{W_}@yJEfK%&{33c6||Ui@jhBfFW=Elv~5sT2lYaPj%NwEbwDsN z3LelRz8%zsYx<-QFZ_@jQ{=`AAneNrXUCI0Mn8nZDIE_>RUO=0w6laT2$I)vcda2x;~!Eflniy>WSrM^`XEIpnY0pxEH_H zsFHE5lj}h99MEJ4m0pl^qG_f4y>s@BudG4DM@9I&PBvaf)b)h8V*&@^1)rt&X`lLe z^t&U2!A=(4$$8vU^zOwb?=lPQWv4pBk=4=6 zB4X-y(6-CuNxYtSHw?SvT?A!nl)`I2L22@d26Er_cxVwm5za3Jfdlq|4{s=?{Vw2{ z$85ob-Qtn5AI;_Tz`ZO3DD~Nnd3}Mk{#AV3=%a;GIZwioYPp+s<29VARK#qs_B)Fx zySB*pv9+FYFDo9)@m}S0!ieRps2yA!`1Od`t&{r#W>Mc4y)2qFVDe>gYIQPc@p`&7 zAS5%MSYVH+&ewcd09*f&g}C+qeEKlx@g_izjgDGrt`Z8C-h$uh@^&!=z&WS}ploX6 zXg>E{Z5;5f8E~JC4qE?&mB1>cTUsW#B9dEP-~21IJeW*jZ^Z5SEPdMU2+jT$;={SS z1k)7N2SS!eM0gx=H`xb85DDL7AjBdsU>H0DKxxX!j4f4*+ip{q4xkFt(JhH52;`aQ z^Ll880oy*ud5jZkU3k1!-DK+pHR%=BgFtjVc%^1@85-VTP{~8*j%BhCtIts~wdKug;-DX(K2X+kTK(|c#9n!UEsnv>ULiN;uYnw)! zufT6_oy$2u-oUa(YYP52l*xooo0Q#nM^Ey4oX1MBbW8M<>enwjt!Qa*-?1l_=^s24a2J!Q1MWlTT<4;%>*v>)C`#Y(b}+!&o>sHxr=7LJ@E^#H%_& zv>s9?1q96|$%PV-iSN4G#k0MHDUDOh{LQLmRKDa_h3muICIXY~Q9n-R(a)#PHApYl zh^KuFK@Vs#z}zBf%K#sPPiCJC>IS+t5qI7Ghn(^u*w4@Ev!y<}RHuS^A9aIjv~V5u zflCDT6~pZ!-Nh=x8O|EeeDq=b75LE$8g+*M$pZJRQ%9d8Mk zujHc#4C%oTSk>?h&uC*Gl_Q(4t2!MSbUo!)ia|>E*$upo2oGiTU_%ZI{r0WGlonYP zE4~>2xr`5mg)^ilvH4;p9VmL@TOPDS{B=yJeY}Pg7kxTx5)^kDnyK3}RGxO&eiaJB z8fiiURWHd}0SUJ}$G?T7&2fC&gv?0FKtiWb@Ua6e^zP12*|5{n%&IJ R^2?`yCN#GE02C4w;5bHuct~b zg6Q{yuYl=MOub%%>e1F+3l0uP!lkegBn!JX~Q=;Iq&_uxX zMw45(z9c1Fo{=S79!LR~sU}mn9&0j#Yo!T;>o3HNPiS&&TGr$(ToorAu9A~ETuV+Q zT))-iGhF{5ccvOAxp~xN0oRn1Kj4~kqT%|ZCKX)YYI1Kz(adr7&tIOO-Q51SnPZx> zvOHSpO)860t18t}Ax1df=(#APQZrqZlo7pNaydQXlm?|%qL>9EQ{Yx+Yr0wRvSc$J z^E&38_dGsO=F_E8QpHEd8&-d+Yb~!$dkAk7*Oe-cez<<~Iz5nac z!c#6&riCmh_Z8Rrh(BmvWaW_=#BMW0;Z0dBxk3t)11)O)piOH~?Wp4P^mp`ej7R8W z1b=X|I>BfZQ*#5)6FfRTO{P_m!cdOp9BFL3Jz{h`N$i|AOQtnfMXV{M!D%o${r%(V z@o8M})zKB7T|O+)r{9k^OQ;F*!Mb^yEGf1DhjM*M-NNZ~|GQGp$a zS+uOmIocF#!Q*0lHX#e9(>YghG5&f&#4Vs9fek zqtlOL6rGIl#|at@K2Go{cGM3}gOk#b6{RG{^n4?xDF55n7_KSsfYRj$q30-gI0>*H ze5#RU-3T_;vpG}GWX92wsgl1aG}O#R%F)-Doc$YPGxL6H)nB(3MN!+1n@I2^uv~CM z&zs(EY$w=Fdrm8ENuFXdCKXwcDaj^uo*W|mw4r;}A^MG|A~@HD`r zq(e+#mE4$2o6r!>X%HklFZod_3oVL@n;nxzZuPfYK5iZ+D93oC#%TmBGNF0HS!^s$ z&L*USL7$vWl6e>o=5DC-$n#GaRxpERGRTZ;0EMeCd~^Gmr#iah>k=vK$U`ZW?$(u0 z{6K3ni?;2iVZ13%PTFF2v7z*!^jk}{OPlH*M-);mST6qL2uF%9bCz;+Iv#(VOipJc z`1tWS3_2hF1~32i^}o9BKAzf_!@BPTU|Htn8uWa#ubl;7mzn_eLKi<>`Z$EzQ zblr}7!O^CW882f^O0Mp?y2&NW%9xQ%m?BKAWA3+c8LJvM3IepqHP?uFfp_Gn&kL;t zFA=xm1dRn5rz9uy$pm`^)2OD(Z_8Cp=Nt)4rgS5+SP&31an@+08(LY(lNphB}3 z8rcRt8%-lu-@kap^gLRy2eea??3To2TH{t-OC;LeD!v)|4%0A1g8q-dKrcNOlS#W& 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 G00020Y+=X% diff --git a/apps/dashboard/build/_app/immutable/chunks/D35IQVqe.js b/apps/dashboard/build/_app/immutable/chunks/D35IQVqe.js new file mode 100644 index 0000000..9b52205 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/D35IQVqe.js @@ -0,0 +1 @@ +const s="/api";async function t(e,o){const r=await fetch(`${s}${e}`,{headers:{"Content-Type":"application/json"},...o});if(!r.ok)throw new Error(`API ${r.status}: ${r.statusText}`);return r.json()}const n={memories:{list:e=>{const o=e?"?"+new URLSearchParams(e).toString():"";return t(`/memories${o}`)},get:e=>t(`/memories/${e}`),delete:e=>t(`/memories/${e}`,{method:"DELETE"}),promote:e=>t(`/memories/${e}/promote`,{method:"POST"}),demote:e=>t(`/memories/${e}/demote`,{method:"POST"}),suppress:(e,o)=>t(`/memories/${e}/suppress`,{method:"POST",body:o?JSON.stringify({reason:o}):void 0}),unsuppress:e=>t(`/memories/${e}/unsuppress`,{method:"POST"})},search:(e,o=20)=>t(`/search?q=${encodeURIComponent(e)}&limit=${o}`),stats:()=>t("/stats"),health:()=>t("/health"),timeline:(e=7,o=200)=>t(`/timeline?days=${e}&limit=${o}`),graph:e=>{const o=e?"?"+new URLSearchParams(Object.entries(e).filter(([,r])=>r!==void 0).map(([r,i])=>[r,String(i)])).toString():"";return t(`/graph${o}`)},dream:()=>t("/dream",{method:"POST"}),explore:(e,o="associations",r,i=10)=>t("/explore",{method:"POST",body:JSON.stringify({from_id:e,action:o,to_id:r,limit:i})}),predict:()=>t("/predict",{method:"POST"}),importance:e=>t("/importance",{method:"POST",body:JSON.stringify({content:e})}),consolidate:()=>t("/consolidate",{method:"POST"}),retentionDistribution:()=>t("/retention-distribution"),memoryChangelog:(e=100)=>t(`/changelog?limit=${e}`),duplicates:(e=.8,o=20)=>t(`/duplicates?threshold=${e}&limit=${o}`),contradictions:e=>{const o=e?"?"+new URLSearchParams(Object.entries(e).filter(([,r])=>r!==void 0).map(([r,i])=>[r,String(i)])).toString():"";return t(`/contradictions${o}`)},crossProjectPatterns:()=>t("/patterns/cross-project"),memoryAudit:(e,o=100)=>t(`/memories/${encodeURIComponent(e)}/audit?limit=${o}`),intentions:(e="active")=>t(`/intentions?status=${e}`),deepReference:(e,o=20)=>t("/deep_reference",{method:"POST",body:JSON.stringify({query:e,depth:o})}),sanhedrin:{latest:()=>t("/sanhedrin/latest"),telemetry:(e=7)=>t(`/sanhedrin/telemetry?days=${e}`),appeal:(e,o,r,i)=>t("/sanhedrin/appeal",{method:"POST",body:JSON.stringify({reason:e,note:o,claimId:r,receiptId:i})})},traces:{list:(e=50)=>t(`/traces?limit=${e}`),get:e=>t(`/traces/${encodeURIComponent(e)}`),exportUrl:e=>`${s}/traces/${encodeURIComponent(e)}/export`},receipts:{list:(e=50)=>t(`/receipts?limit=${e}`),listForRun:(e,o=50)=>t(`/receipts?run=${encodeURIComponent(e)}&limit=${o}`),get:e=>t(`/receipts/${encodeURIComponent(e)}`)},memoryPrs:{list:(e,o=100)=>{const r=new URLSearchParams;return e&&r.set("status",e),r.set("limit",String(o)),t(`/memory-prs?${r.toString()}`)},get:e=>t(`/memory-prs/${encodeURIComponent(e)}`),act:(e,o)=>t(`/memory-prs/${encodeURIComponent(e)}/${o}`,{method:"POST"}),getMode:()=>t("/memory-prs/mode"),setMode:e=>t("/memory-prs/mode",{method:"POST",body:JSON.stringify({mode:e})})}};export{n as a}; diff --git a/apps/dashboard/build/_app/immutable/chunks/D35IQVqe.js.br b/apps/dashboard/build/_app/immutable/chunks/D35IQVqe.js.br new file mode 100644 index 0000000000000000000000000000000000000000..d8bafd1b94c40f8d202bdf8a63b23722ed0f4450 GIT binary patch literal 913 zcmV;C18)2qMGF9o!?@vlF}1h|?ZC?K)#=`4O0FaYK?UFmxU5LIIFQK*;8-LoHND9Ywt9i1hRF2_8 zR2z*37leP6rNNI5GvS|7hM&hP{zciX%cIgll!k_n3q#<)!PHmSYLDb?@i4kNj$~`` z@!2NeO{}+RgRJX6$7?w0G^&<0ba#D<1o=&s>jiIr$BbS?Ma%?co05K*HYenBygV7Ph(=UuJh*IO2?q9a47X)2_}Y&e~{mW=+5&$Tgy-$_txcA2cT zQLHa)8sT}j8J4W)nj3A{5ij3YmVTIk^MIJNUiG!`FyLFb z@vFM8$)nEkm)BB{-RyynBwtynxjDP6p!r_MBS;l0>4Wgz7+^uUfl#45u$Vmwg@t3J z)Lhy#6D52zVZ*!N&S%TByAAX)3x*9$Y)h>Uw;NYojCW8}(Wt%Sw2gs0sOO=Ua&;|H zx_TU%$hk^r;L<5A76bv=@YH^766qoFxSr032qT1yI`*BXFw5Hz%OH~JwAju?B&nTqdh>}@14a8lDG-_db_EC;3IhFnNtK$x?;T?Hg2tf~s0F&iuTs-++; z4Z~2j!Gf>-H!76>1ZJz`qbK0eyHrXlfAxNO<()Jt)P|W_xAElT4t|(+6)Y5(S_w~u zHl`o6U40^HN+_k`fRz+nn;4Sc``Tp!DM`uCHqZUd$6H`3+b)@6rS>5Rjl4CAi;W+| zgbd-0zlw%{Cym6!E!}{NI#ork2?5Qa00Z+{ij|qI%wzK5^5f;*C20d%DOt)F9HL%1 zaa>;C-dVRCUiRvAGfuj$Dg|1{Zk}_lgT-@a`XKXNEYm-4uRq}wY?JtU=Qj!%_CCf@ z#@{8+y>rY`i!sk^d3*g~i7nM`Ca%Kdm-D{JPMCg6Fo4Kp4)-@#7qYCRK$PL++S7uU z+$7z6sD%k0(m9jJeUX47JPWfO#oZ^$4KJbK0x)OttIIm19W-gqcG~8CmS>|_wLKDE z*AHJIGa=S%J7Lkb=7j;}`+rmQ8562ENz(N&2uoI>Tv2Wn_}jyh2cLsiQ0mGVAe!T7 z%JH!7iyR^XepH22(6yT|t!2g?Pc@;KK6!iI2j~sSEH0j-VvVrnaHc|{OvmKW#c+QYQL-vVmrUGm; zy5m_sa2xfZcIO&=N9|cYQ6sh-@^=?oCN@yWjfL3T5nkCKP6t$V8>H^GC0L#&;crtS z>~$$_Owe0d?G+97drsBl+FhgQwR7IHMf`^=7h&zMmYbqc%9@czL(7{so#VSkQxqk6y7 z@DzAK<2H2VTiPE)@ASu=puZA;3VT6GniY(fSC;zA8yBxr zJf+3t&h6AMPIu+@8m@AhLz#1R4XUS=S+hT+x~WA6fJ1XtizBbD z$tef#SI*h?ELf_2wIdV8_u35E2U5c6DZZ)zr`^GtP{3W+NnBlIV73epTLZUt$U~jl z7ulZbvkxO@_}ZXYW)5B>uRBGqQ->QGQ~!nLBR3|YN|YltbZ-Ik21lX0bO9WE+eHVN UMtDqntX=%{FPJv&(?$yb06N_I&j0`b literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js b/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js deleted file mode 100644 index 99ccabc..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js +++ /dev/null @@ -1 +0,0 @@ -import{w as N,g as T}from"./BeMFXnHE.js";import{e as E}from"./MAY1QfFZ.js";import{E as p}from"./CcUbQ_Wl.js";const y=4,R=5500,F=1500;function x(){const{subscribe:b,update:u}=N([]);let m=1,f=0;const c=new Map,a=new Map,l=new Map;function w(e,s){l.set(e,Date.now());const t=setTimeout(()=>{c.delete(e),l.delete(e),h(e)},s);c.set(e,t)}function g(e){const s=m++,t=Date.now(),o={id:s,createdAt:t,...e};u(n=>{const r=[o,...n];if(r.length>y){for(const i of r.slice(y)){const d=c.get(i.id);d&&clearTimeout(d),c.delete(i.id),a.delete(i.id),l.delete(i.id)}return r.slice(0,y)}return r}),w(s,e.dwellMs)}function h(e){const s=c.get(e);s&&(clearTimeout(s),c.delete(e)),a.delete(e),l.delete(e),u(t=>t.filter(o=>o.id!==e))}function D(e,s){const t=c.get(e);if(!t)return;clearTimeout(t),c.delete(e);const o=l.get(e)??Date.now(),n=Date.now()-o,r=Math.max(200,s-n);a.set(e,{remaining:r})}function C(e){const s=a.get(e);s&&(a.delete(e),w(e,s.remaining))}function S(){for(const e of c.values())clearTimeout(e);c.clear(),a.clear(),l.clear(),u(()=>[])}function _(e){const s=p[e.type]??"#818CF8",t=e.data;switch(e.type){case"DreamCompleted":{const o=Number(t.memories_replayed??0),n=Number(t.connections_found??0),r=Number(t.insights_generated??0),i=Number(t.duration_ms??0),d=[];return d.push(`Replayed ${o} ${o===1?"memory":"memories"}`),n>0&&d.push(`${n} new connection${n===1?"":"s"}`),r>0&&d.push(`${r} insight${r===1?"":"s"}`),{type:e.type,title:"Dream consolidated",body:`${d.join(" · ")} in ${(i/1e3).toFixed(1)}s`,color:s,dwellMs:7e3}}case"ConsolidationCompleted":{const o=Number(t.nodes_processed??0),n=Number(t.decay_applied??0),r=Number(t.embeddings_generated??0),i=Number(t.duration_ms??0),d=[];return n>0&&d.push(`${n} decayed`),r>0&&d.push(`${r} embedded`),{type:e.type,title:"Consolidation swept",body:`${o} node${o===1?"":"s"}${d.length?" · "+d.join(" · "):""} in ${(i/1e3).toFixed(1)}s`,color:s,dwellMs:6e3}}case"ConnectionDiscovered":{const o=Date.now();if(o-f0?`suppression #${o} · Rac1 cascade ~${n} neighbors`:`suppression #${o}`,color:s,dwellMs:5500}}case"MemoryUnsuppressed":{const o=Number(t.remaining_count??0);return{type:e.type,title:"Recovered",body:o>0?`${o} suppression${o===1?"":"s"} remain`:"fully unsuppressed",color:s,dwellMs:5e3}}case"Rac1CascadeSwept":{const o=Number(t.seeds??0),n=Number(t.neighbors_affected??0);return{type:e.type,title:"Rac1 cascade",body:`${o} seed${o===1?"":"s"} · ${n} dendritic spine${n===1?"":"s"} pruned`,color:s,dwellMs:6e3}}case"MemoryDeleted":return{type:e.type,title:"Memory deleted",body:String(t.id??"").slice(0,8),color:s,dwellMs:4e3};case"HookVerdictRecorded":{const o=String(t.verdict??"NOTE"),n=String(t.reason??"Sanhedrin receipt updated");return{type:e.type,title:`Sanhedrin ${o}`,body:n,color:s,dwellMs:o==="VETO"?8e3:R}}case"Heartbeat":case"SearchPerformed":case"RetentionDecayed":case"ActivationSpread":case"ImportanceScored":case"MemoryCreated":case"MemoryUpdated":case"DreamStarted":case"DreamProgress":case"ConsolidationStarted":case"Connected":return null;default:return null}}let M=null;return E.subscribe(e=>{if(e.length===0)return;const s=[];for(const t of e){if(t===M)break;s.push(t)}if(s.length!==0){M=e[0];for(let t=s.length-1;t>=0;t--){const o=_(s[t]);o&&g(o)}}}),{subscribe:b,dismiss:h,clear:S,pauseDwell:D,resumeDwell:C,push:g}}const $=x();function I(){[{type:"DreamCompleted",title:"Dream consolidated",body:"Replayed 127 memories · 43 new connections · 5 insights in 2.4s",color:p.DreamCompleted,dwellMs:7e3},{type:"ConnectionDiscovered",title:"Bridge discovered",body:"semantic · weight 0.87",color:p.ConnectionDiscovered,dwellMs:4500},{type:"MemorySuppressed",title:"Forgetting",body:"suppression #2 · Rac1 cascade ~8 neighbors",color:p.MemorySuppressed,dwellMs:5500},{type:"ConsolidationCompleted",title:"Consolidation swept",body:"892 nodes · 156 decayed · 48 embedded in 1.1s",color:p.ConsolidationCompleted,dwellMs:6e3}].forEach((u,m)=>{setTimeout(()=>{$.push(u)},m*800)}),T($)}export{I as f,$ as t}; diff --git a/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.br b/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.br deleted file mode 100644 index fffecbf06186e02af556fade966edb3924229bb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1616 zcmV-W2Cw-W9TET>g-w}zG%i0RyjaUxtRzWYOSS)fUSy-WL8-{@IHh)35o;S4(6FnN z7Pr2yIj0r61v=4+^UtZvMD+vRL}{sh+Lzq7UkdcYLPe@*%D7WWk1Av?Su{@Ap!67bo05*It<$--LzEh92+SxxMX$ z;T<}_`Iy*-+Qsq9eRAI0dC1=`F3N1~u3yj7+e5fB=)WR9G2{!3MoP`?pf^&g6Ux31 z7pJrS4r#l7!;9Z|cgRF(ETk-v zw<6<$JHN}A+&Y>;wfQo}O3H=tsS=6D-y?(PLNX@u`LT=1{POw`mxl?$vE80y__vWg zlHF@!ZhUi{HS>aqnlGJ0j@%ot@P92lt-LK{P*m$yekt|NLBh?kC0~dzwLuy`$=`o7 z*hybmTCw}sn?@rS4@pBDF#&ZP&VC9VE6Y0Q)me%^e}9b;zdK?SlR%F?COY^B5T*#8 zJla?8{Zxl^aMOHV=@|KA0oM3qkNhllKZRu^f7KR`<=w|z-ZU`jA{vBHhLq6Zalk%0 ztnzMe$H*Hq&jI~W{>CJJ$VykuQFbDqB?$dJ_CQAm3*phdLl|LQRST;r+S%k+im_C&Tn z;1g;CarN0c^QjU0Tzb4e1`QU^N>3T7-_X4X!l;Onw-57xm!Pvg=w`X?he`uFHeky%JOnDXy{6#eG@_7Sn##gTPd>a3*ita zxD>r=^}e4r11{ej;OuK)`Uy8nOm8S_g!r29S@E=U=FMjebb2_8t9l1}kLI3O8u!-K z09_)bPiZo6VgsF>)RN6c8a9J*sC5>5=@NVB5NWUC*bUT1O08uF6QRqFNhG#a`kvmD z(ZwP_D8WT&PZV$H1n0_5zSZk0PaSGKl-p(tciYP7&Sw*|q~vm)_)9KkAAl}E-8r5k!sXU4{@T$I zwWQnxiO+E^G)c$&MZ~}ipG^v=k~eMLIaGSsrwo-N5}3z1LDbtWekpC747;wPAtoW& z5@~rX$d! z)c_D%m&b3Bzj?I+|GvGmAKhRuHs_WvOwyve>J6-QHNb?GKAKoe$}$`K`}QuQ8=wiD z4(hN4x5j<2K<~Y}m?9BFuCNE2)BT-r^Ko?wp{3RN1>HmoCA_oXas8VtjbiH{@K54G zPN*$)2Y=04&)L3Zd)Z-HSR3uMh&E|5kwwt8SNbTuE)3diqOfeagxe&64OO2M1(cci zjVLK7T$0~wf34_NcMKT#Pj63;nhl6N*+Qb$9a_e+vf8Cl%B=&#{>|rFB)mBcEFV)@ zy1qkZK?{@pSw#-!Pt8lm(1mh_2d9w%^1=C@=N!s&mc@zcziuQgctzef8hz)<%!o^- zFgvj72VB)<)g>3PB-}~~9eRs-Q%N%}DG@$gTr?fumvMSbbXGGum{q93 znjK8~O<}t7+?h_vF;ozMysv(AQIXdNS!?^@D0CLJFr19njwFh1RUHlWgitMh&x8 za7|AQSgKQL1O diff --git a/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.gz b/apps/dashboard/build/_app/immutable/chunks/D4ymNiig.js.gz deleted file mode 100644 index 4c9d6c29ebd20a16238cd7c477bb1eb90b16d104..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1768 zcmVxyI!>7J7Isb{}I;3!-qt^$p~IVT!iE;b0`hK~*v=o^-T$TdPZJS`%Z zLIN5PU?&+ouMyzVQ8(ebRVj)pY!z>Y7(p3qI0BvzAlZKJI0*#o?Ubh>kqZQHLA{qzQ&XLP{8CeC5k>py1gM6fy*5Xm=H+ zZpUJ1;Q|f)561tI`G~c@^QecLVmzp?=vdxO$tx-F$9; zH=EARE@!r*LvSh4Bv2csqcy5Ya1jv&_PGR-o{2OwmQdR-T0Gz9=>tfl-4s$G8K|X% zEFoK<^SNh`?Fb^lIaJE1Wh`=D6Ud%`am7|^t(Gg`AWZ^Q6s)J9xg>_cGF8i2X2yW9({i$sU2CDK6E$6NyAfUpY;3`mf=*EGtKyb*!1-&pM0?3Tl~25rIdm&Wp%i!~`^XYdg&_w9Xk z;(3k1S5;ztkRlbo7ih3qO3=WK1>exH=4NFryGFn6xbcYie(HI>M?75q^$%!x4u7VC z6#i`e7I~J*DifblQ8l|J1|pGjy_>F}G)qkyE+e8MLg5>BTnf1Ytr=f6HtCP*c_lb|s6^`P{Z~H(Ac` zeg?pC8B{Xg3i0Vzkd#H*xKh$lP;@*$*Cg|~{r=~h3)`UE?MWcY-+vx9l&))?5S)pw|~93`PrV&;Ml)zFnbF`>IWd&_N(^=5E-pMfQ*Gq zjV*QLv^CF3KvZJn1KdbK-qqUEXnSMX7Ei{ok zOCO|InILc0My+#9-ZZj42ye%;Ga7ZRGv0( zXO2^xA62R+H(kj(5h?YW1X@M3tFb zj@(zOtz(%xmOUC9o0012!R1?ngRLMX+?1Psc<|iW>t6CxY{yNoRba0T{%)(XM=j@Q zzemmb2Gwh_%YWRR1~5D|KYx4Hv}b=isz%Mq8Pk&=+mW{N*sL33jdP~%RE;2dLgc76 z-?_1n7bIFElsl>Uda?U8V^U{Fj!P%~e&%_&#Lf+x;1V9IZ#VDEx0~3Rm_Je in a?F(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var u=(a,e,t)=>N(a,typeof e!="symbol"?e+"":e,t);import{r as D}from"./BMB5u1EX.js";import{b as G}from"./DY7cP31Q.js";const L=32,U=126,P=63,z=.6,R=1.32,S="...";function O(a){return new Map(a.glyphs.map(e=>[e.unicode,e]))}function A(a){const e=a.codePointAt(0)??P;return e>=L&&e<=U?a:"?"}function C(a,e){if(e===void 0||e<0)return a;if(e===0)return"";const t=Array.from(a,A);return t.length<=e?t.join(""):e<=S.length?".".repeat(e):`${t.slice(0,e-S.length).join("")}${S}`}function k(a,e){return a.split(` +`).map(t=>C(t,e))}function V(a,e,t={}){var h;const r=O(e),s=r.get(P),o=e.atlas.width,i=e.atlas.height,n=t.advance??z,c=t.lineHeight??((h=e.metrics)==null?void 0:h.lineHeight)??R,p=t.maxWidthEm===void 0?void 0:Math.max(0,Math.floor(t.maxWidthEm/n)),d=[];let g=0;for(const x of k(a,p)){let f=0;for(const m of Array.from(x)){const _=A(m).codePointAt(0)??P,l=r.get(_)??s;if(l!=null&&l.planeBounds&&l.atlasBounds){const y=l.planeBounds,v=l.atlasBounds,T=v.left/o,w=1-v.top/i,B=(v.right-v.left)/o,M=1-v.bottom/i-w;d.push({x:f+y.left,y:g+y.bottom,w:y.right-y.left,h:y.top-y.bottom,u:T,v:w,uw:B,vh:M})}f+=n}g-=c}return d}async function j(a){var h,x,f;const e=`${G}/msdf/jetbrains-mono.json`,t=`${G}/msdf/jetbrains-mono.png`,r=await fetch(e);if(!r.ok)throw new Error(`MSDF atlas JSON failed: ${r.status} ${e}`);const s=await r.json();if(((h=s.atlas)==null?void 0:h.yOrigin)!=="bottom")throw new Error(`MSDF atlas yOrigin must be bottom, got ${((x=s.atlas)==null?void 0:x.yOrigin)??"missing"}`);const o=await fetch(t);if(!o.ok)throw new Error(`MSDF atlas PNG failed: ${o.status} ${t}`);const i=await o.blob(),n=await createImageBitmap(i),c=a.createTexture({label:"msdf-jetbrains-mono-rgba8unorm",size:[n.width,n.height,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});a.queue.copyExternalImageToTexture({source:n},{texture:c},{width:n.width,height:n.height}),(f=n.close)==null||f.call(n);const p=a.createSampler({label:"msdf-jetbrains-mono-linear-sampler",magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}),d=c.createView({label:"msdf-jetbrains-mono-view"}),g=new Map(s.glyphs.map(m=>[m.unicode,m]));return{...s,glyphMap:g,texture:c,textureView:d,sampler:p,dispose:()=>c.destroy()}}const H=` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + capture_mode: f32, + live_kind: f32, + live_frame: f32, + live_energy: f32, + projection_days: f32, + cursor_x: f32, + cursor_y: f32, + cursor_vx: f32, + cursor_vy: f32, +}; + +struct Glyph { + anchor_size: vec4f, + quad_offset: vec4f, + uv_rect: vec4f, + info: vec4f, + color: vec4f, +}; + +struct VSOut { + @builtin(position) clip: vec4f, + @location(0) uv: vec2f, + @location(1) @interpolate(flat) info: vec4f, + @location(2) @interpolate(flat) color: vec4f, + @location(3) @interpolate(flat) weight: f32, +}; + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var glyphs: array; +@group(0) @binding(2) var atlas_sampler: sampler; +@group(0) @binding(3) var atlas_tex: texture_2d; + +const QUAD = array( + vec2f(0.0, 0.0), vec2f(1.0, 0.0), vec2f(1.0, 1.0), + vec2f(0.0, 0.0), vec2f(1.0, 1.0), vec2f(0.0, 1.0) +); + +fn median3(c: vec3f) -> f32 { + return max(min(c.r, c.g), min(max(c.r, c.g), c.b)); +} + +@vertex +fn vs_text(@builtin(vertex_index) vi: u32, @builtin(instance_index) ii: u32) -> VSOut { + let glyph = glyphs[ii]; + let corner = QUAD[vi]; + let anchor = glyph.anchor_size.xy; + let size = glyph.anchor_size.zw; + let quad_offset = glyph.quad_offset.xy; + let uv_min = glyph.uv_rect.xy; + let uv_max = glyph.uv_rect.zw; + let aspect = max(0.0001, params.viewport_w / max(1.0, params.viewport_h)); + let depth = clamp(glyph.info.z, 0.0, 1.0); + let cursor_pre = vec2f(params.cursor_x, params.cursor_y); + let cursor_delta = cursor_pre - anchor; + let d = distance(anchor, cursor_pre); + // Wide influence radius so the field reacts when the cursor is anywhere NEAR + // the text, not only dead-on (v1 R=0.45 was too tight to feel). + let R = 0.75; + let cursor_w = exp(-(d * d) / (R * R)); + // Per-glyph SCALE-UP near the cursor: glyphs the pointer approaches swell toward + // you. Scaling the quad around its anchor is the most legible "alive" cue. + let grow = 1.0 + cursor_w * 0.55; + var pos = anchor + (quad_offset + corner * size) * grow; + // Depth → clip z. Trust (depth~1) floats forward (small z), low-trust sinks back. + // Cursor lifts a glyph forward, but z MUST stay > 0 or clip.z<0 clips the quad + // behind the near plane and the glyph vanishes (v1 bug: cursor made text disappear). + var z = mix(0.42, 0.10, depth); + z = clamp(z - cursor_w * 0.42, 0.04, 0.6); + let lean_dir = select(vec2f(0.0, 0.0), normalize(cursor_delta), length(cursor_delta) > 0.0001); + pos = pos + lean_dir * cursor_w * 0.04; + pos = pos + vec2f(sin(params.time * 0.6), cos(params.time * 0.5)) * ((1.0 - depth) * 0.006) * params.pulse; + // Keep glyphs square in BOTH orientations: normalize by the longer axis. + // Landscape (aspect>1): narrow x. Portrait (aspect<1): shrink y instead — + // dividing x by aspect<1 would WIDEN x and push text off-screen. + pos.x = pos.x / max(aspect, 1.0); + pos.y = pos.y * min(aspect, 1.0); + let wclip = 1.0 + z; + var out: VSOut; + out.clip = vec4f(pos, z, wclip); + out.uv = vec2f(mix(uv_min.x, uv_max.x, corner.x), mix(uv_max.y, uv_min.y, corner.y)); + out.info = vec4f(glyph.info.x, glyph.info.y, cursor_w, depth); + out.color = glyph.color; + out.weight = clamp(glyph.info.w, 0.0, 1.0); + return out; +} + +@fragment +fn fs_text(in: VSOut) -> @location(0) vec4f { + let atlas_px = vec2f(textureDimensions(atlas_tex, 0)); + let cursor_w = clamp(in.info.z, 0.0, 1.0); + let depth = clamp(in.info.w, 0.0, 1.0); + let weight = clamp(in.weight, 0.0, 1.0); + var uv = in.uv; + uv = uv + vec2f(sin(uv.y * 40.0 + params.time * 3.0), cos(uv.x * 40.0 + params.time * 3.0)) * (cursor_w * 0.007); + let msdf = textureSample(atlas_tex, atlas_sampler, uv).rgb; + let dist = median3(msdf); + let uv_width = max(fwidth(uv), vec2f(1.0 / max(atlas_px.x, 1.0), 1.0 / max(atlas_px.y, 1.0))); + let texels_per_px = max(length(uv_width * atlas_px), 0.0001); + let screen_range = max(0.5, 4.0 / texels_per_px); + // Depth-of-field: far/un-hovered glyphs soften, cursor sharpens. Kept GENTLE so + // the resting field stays READABLE regardless of the data's depth value. + let dof = (1.0 - depth) * (1.0 - cursor_w); + let screen_range_dof = screen_range / (1.0 + dof * 0.6); + // Weight (FSRS retention) modulates stroke mass WITHIN a readable band: it can + // thicken a lot but only thin slightly, so a low-retention record never + // disappears (data must be legible even at weight~0 — every route depends on this). + let weight_bias = (weight - 0.5) * 0.10 + 0.03; + let px_dist = screen_range_dof * (dist - 0.5 + weight_bias); + let coverage = clamp(px_dist + 0.5, 0.0, 1.0); + let reveal_span = max(1.0, in.info.y); + let reveal = clamp((params.frame - in.info.x) / reveal_span, 0.0, 1.0); + let alpha = coverage * in.color.a * reveal; + if (alpha < 0.001) { discard; } + // Glow floor keeps EVERY line clearly lit at rest (even depth~0), depth adds + // forward-brightness, cursor pushes near glyphs HARD past the bloom line to flare. + let glow = mix(1.15, 1.5, depth) + cursor_w * 1.4; + let rgb = in.color.rgb * params.brightness * glow; + return vec4f(rgb * alpha, alpha); +} +`,E=20,q=[...D("#22C7DE"),1];class K{constructor(e){u(this,"engine");u(this,"atlas",null);u(this,"bindLayout",null);u(this,"pipeline",null);u(this,"glyphBuffer",null);u(this,"bindGroup",null);u(this,"glyphCapacity",0);u(this,"glyphCount",0);u(this,"pendingItems",[]);u(this,"runs",[]);u(this,"runDepths",new Map);u(this,"initPromise",null);this.engine=e}async init(){return this.initPromise?this.initPromise:(this.initPromise=this.initInner(),this.initPromise)}async initInner(){const e=this.engine.gpuDevice;!e||!this.engine.paramsBuffer||(this.atlas=await j(e),this.ensurePipeline(e),this.pendingItems.length&&this.uploadItems(this.pendingItems))}setText(e){const t=typeof e=="string"?[{text:e,x:-.62,y:0,size:.075}]:Array.isArray(e)?e:[e];this.pendingItems=t,this.uploadItems(t)}ensurePipeline(e){if(this.pipeline||!this.engine.paramsBuffer)return;const t=e.createShaderModule({label:"msdf-text-wgsl",code:H});this.bindLayout=e.createBindGroupLayout({label:"msdf-text-bind-layout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]});const r=e.createPipelineLayout({label:"msdf-text-pipeline-layout",bindGroupLayouts:[this.bindLayout]}),s={color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};this.pipeline=e.createRenderPipeline({label:"msdf-text-pipeline",layout:r,vertex:{module:t,entryPoint:"vs_text"},fragment:{module:t,entryPoint:"fs_text",targets:[{format:this.engine.sceneFormat,blend:s}]},primitive:{topology:"triangle-list"}})}uploadItems(e){const t=this.engine.gpuDevice;if(!t||!this.engine.paramsBuffer||!this.atlas)return;this.ensurePipeline(t);const r=[],s=[];let o=0;e.forEach((n,c)=>{const p=n.size??.075,d=V(n.text,this.atlas,{maxWidthEm:n.maxWidthEm}),g=n.color??q,h=d,x=o;let f=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,b=Number.POSITIVE_INFINITY,_=Number.NEGATIVE_INFINITY;for(const l of h){const y=n.x+l.x*p,v=n.x+(l.x+l.w)*p,T=n.y+l.y*p,w=n.y+(l.y+l.h)*p;f=Math.min(f,y),m=Math.max(m,v),b=Math.min(b,T),_=Math.max(_,w),W(r,n,l,g,p,o++)}if(h.length>0){const l=n.id??`msdf-text:${c}`;s.push({id:l,kind:n.kind??"text",text:n.text,x0:f,x1:m,y0:b,y1:_,payload:n,glyphStart:x,glyphCount:o-x}),this.runDepths.set(l,I(n.depth??.5))}}),this.runs=s,this.glyphCount=r.length/E;const i=new Float32Array(r.length||E);i.set(r),this.ensureGlyphBuffer(t,Math.max(1,this.glyphCount)),!(!this.glyphBuffer||!this.bindLayout)&&(t.queue.writeBuffer(this.glyphBuffer,0,i),this.bindGroup=t.createBindGroup({label:"msdf-text-bind-group",layout:this.bindLayout,entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:this.glyphBuffer}},{binding:2,resource:this.atlas.sampler},{binding:3,resource:this.atlas.textureView}]}))}ensureGlyphBuffer(e,t){var r;this.glyphBuffer&&this.glyphCapacity>=t||((r=this.glyphBuffer)==null||r.destroy(),this.glyphCapacity=Math.max(t,Math.ceil(this.glyphCapacity*1.5),32),this.glyphBuffer=e.createBuffer({label:"msdf-text-glyphs",size:this.glyphCapacity*E*4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}))}render(e){!this.pipeline||!this.bindGroup||this.glyphCount<=0||(e.setPipeline(this.pipeline),e.setBindGroup(0,this.bindGroup),e.draw(6,this.glyphCount))}pickAt(e,t){const r=Math.max(1e-4,(this.engine.params[6]||1)/Math.max(1,this.engine.params[7]||1)),s=Math.max(r,1),o=Math.min(r,1);for(const i of this.runs){const n=(i.payload.hitPadX??i.payload.hitPad??0)/s,c=(i.payload.hitPadY??i.payload.hitPad??0)*o,p=i.x0/s-n,d=i.x1/s+n,g=i.y0*o-c,h=i.y1*o+c;if(e>=p&&e<=d&&t>=g&&t<=h)return{id:i.id,kind:i.kind,payload:i.payload}}return null}setRunDepth(e,t=.5){const r=this.engine.gpuDevice;if(!(!r||!this.glyphBuffer))for(const s of this.runs){const o=s.id===e?t:s.payload.depth??.5,i=I(o);if(this.runDepths.get(s.id)===i)continue;this.runDepths.set(s.id,i);const n=new Float32Array([i]);for(let c=0;c65 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DAau0uzT.js b/apps/dashboard/build/_app/immutable/chunks/DAau0uzT.js new file mode 100644 index 0000000..42a77a1 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/DAau0uzT.js @@ -0,0 +1,2 @@ +var ze=Object.defineProperty;var be=t=>{throw TypeError(t)};var Ce=(t,e,s)=>e in t?ze(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var Q=(t,e,s)=>Ce(t,typeof e!="symbol"?e+"":e,s),ae=(t,e,s)=>e.has(t)||be("Cannot "+s);var r=(t,e,s)=>(ae(t,e,"read from private field"),s?s.call(t):e.get(t)),_=(t,e,s)=>e.has(t)?be("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),o=(t,e,s,n)=>(ae(t,e,"write to private field"),n?n.call(t,s):e.set(t,s),s),b=(t,e,s)=>(ae(t,e,"access private method"),s);import{aU as He,g as Re,z as Pe,y as G,aV as ye,aw as $,at as Ae,I as L,w as Y,a5 as C,aW as ve,i as Ve,ai as We,ak as je,aX as we,N as I,A as De,aY as oe,M as fe,O as $e,aZ as me,a_ as Je,a$ as Ee,b0 as Ge,b1 as Qe,b2 as te,b3 as se,b4 as Te,b5 as Ue,b6 as Ne,Q as H,an as Ze,L as ue,G as re,af as Ke,al as Xe,b7 as U,E as et,B as tt,b8 as st,b9 as rt,t as nt,ba as it,a0 as at,bb as ce,J as ot,C as Oe,aG as ft,D as ut,aK as le,F as Z,bc as ct,az as lt,bd as ht,aq as dt,p as _t,aL as pt,am as gt,aJ as bt,b as yt,Z as P,aQ as vt,S as wt,j as mt,a9 as Et,aR as Tt,be as St,x as Rt}from"./CGq8RnJq.js";function ke(t){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function At(t){let e=0,s=Ae(0),n;return()=>{He()&&(Re(s),Pe(()=>(e===0&&(n=G(()=>t(()=>ye(s)))),e+=1,()=>{$(()=>{e-=1,e===0&&(n==null||n(),n=void 0,ye(s))})})))}}var Dt=et|tt;function Nt(t,e,s,n){new Ot(t,e,s,n)}var w,J,R,q,y,A,m,T,O,x,M,V,W,j,k,ne,h,Me,Fe,Ie,he,X,ee,de;class Ot{constructor(e,s,n,f){_(this,h);Q(this,"parent");Q(this,"is_pending",!1);Q(this,"transform_error");_(this,w);_(this,J,Y?L:null);_(this,R);_(this,q);_(this,y);_(this,A,null);_(this,m,null);_(this,T,null);_(this,O,null);_(this,x,0);_(this,M,0);_(this,V,!1);_(this,W,new Set);_(this,j,new Set);_(this,k,null);_(this,ne,At(()=>(o(this,k,Ae(r(this,x))),()=>{o(this,k,null)})));var i;o(this,w,e),o(this,R,s),o(this,q,u=>{var l=C;l.b=this,l.f|=ve,n(u)}),this.parent=C.b,this.transform_error=f??((i=this.parent)==null?void 0:i.transform_error)??(u=>u),o(this,y,Ve(()=>{if(Y){const u=r(this,J);We();const l=u.data===je;if(u.data.startsWith(we)){const a=JSON.parse(u.data.slice(we.length));b(this,h,Fe).call(this,a)}else l?b(this,h,Ie).call(this):b(this,h,Me).call(this)}else b(this,h,he).call(this)},Dt)),Y&&o(this,w,L)}defer_effect(e){Qe(e,r(this,W),r(this,j))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!r(this,R).pending}update_pending_count(e){b(this,h,de).call(this,e),o(this,x,r(this,x)+e),!(!r(this,k)||r(this,V))&&(o(this,V,!0),$(()=>{o(this,V,!1),r(this,k)&&Ze(r(this,k),r(this,x))}))}get_effect_pending(){return r(this,ne).call(this),Re(r(this,k))}error(e){var s=r(this,R).onerror;let n=r(this,R).failed;if(!s&&!n)throw e;r(this,A)&&(ue(r(this,A)),o(this,A,null)),r(this,m)&&(ue(r(this,m)),o(this,m,null)),r(this,T)&&(ue(r(this,T)),o(this,T,null)),Y&&(re(r(this,J)),Ke(),re(Xe()));var f=!1,i=!1;const u=()=>{if(f){rt();return}f=!0,i&&st(),r(this,T)!==null&&fe(r(this,T),()=>{o(this,T,null)}),b(this,h,ee).call(this,()=>{oe.ensure(),b(this,h,he).call(this)})},l=c=>{try{i=!0,s==null||s(c,u),i=!1}catch(a){U(a,r(this,y)&&r(this,y).parent)}n&&o(this,T,b(this,h,ee).call(this,()=>{oe.ensure();try{return I(()=>{var a=C;a.b=this,a.f|=ve,n(r(this,w),()=>c,()=>u)})}catch(a){return U(a,r(this,y).parent),null}}))};$(()=>{var c;try{c=this.transform_error(e)}catch(a){U(a,r(this,y)&&r(this,y).parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,a=>U(a,r(this,y)&&r(this,y).parent)):l(c)})}}w=new WeakMap,J=new WeakMap,R=new WeakMap,q=new WeakMap,y=new WeakMap,A=new WeakMap,m=new WeakMap,T=new WeakMap,O=new WeakMap,x=new WeakMap,M=new WeakMap,V=new WeakMap,W=new WeakMap,j=new WeakMap,k=new WeakMap,ne=new WeakMap,h=new WeakSet,Me=function(){try{o(this,A,I(()=>r(this,q).call(this,r(this,w))))}catch(e){this.error(e)}},Fe=function(e){const s=r(this,R).failed;s&&o(this,T,I(()=>{s(r(this,w),()=>e,()=>()=>{})}))},Ie=function(){const e=r(this,R).pending;e&&(this.is_pending=!0,o(this,m,I(()=>e(r(this,w)))),$(()=>{var s=o(this,O,document.createDocumentFragment()),n=De();s.append(n),o(this,A,b(this,h,ee).call(this,()=>(oe.ensure(),I(()=>r(this,q).call(this,n))))),r(this,M)===0&&(r(this,w).before(s),o(this,O,null),fe(r(this,m),()=>{o(this,m,null)}),b(this,h,X).call(this))}))},he=function(){try{if(this.is_pending=this.has_pending_snippet(),o(this,M,0),o(this,x,0),o(this,A,I(()=>{r(this,q).call(this,r(this,w))})),r(this,M)>0){var e=o(this,O,document.createDocumentFragment());$e(r(this,A),e);const s=r(this,R).pending;o(this,m,I(()=>s(r(this,w))))}else b(this,h,X).call(this)}catch(s){this.error(s)}},X=function(){this.is_pending=!1;for(const e of r(this,W))me(e,Je),Ee(e);for(const e of r(this,j))me(e,Ge),Ee(e);r(this,W).clear(),r(this,j).clear()},ee=function(e){var s=C,n=Ne,f=H;te(r(this,y)),se(r(this,y)),Te(r(this,y).ctx);try{return e()}catch(i){return Ue(i),null}finally{te(s),se(n),Te(f)}},de=function(e){var s;if(!this.has_pending_snippet()){this.parent&&b(s=this.parent,h,de).call(s,e);return}o(this,M,r(this,M)+e),r(this,M)===0&&(b(this,h,X).call(this),r(this,m)&&fe(r(this,m),()=>{o(this,m,null)}),r(this,O)&&(r(this,w).before(r(this,O)),o(this,O,null)))};const kt=["touchstart","touchmove"];function Mt(t){return kt.includes(t)}const B=Symbol("events"),Le=new Set,_e=new Set;function Ft(t,e,s,n={}){function f(i){if(n.capture||pe.call(e,i),!i.cancelBubble)return it(()=>s==null?void 0:s.call(this,i))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?$(()=>{e.addEventListener(t,f,n)}):e.addEventListener(t,f,n),f}function Ht(t,e,s,n,f){var i={capture:n,passive:f},u=Ft(t,e,s,i);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&nt(()=>{e.removeEventListener(t,u,i)})}function Pt(t,e,s){(e[B]??(e[B]={}))[t]=s}function Vt(t){for(var e=0;e{throw F});throw E}}finally{t[B]=e,delete t.currentTarget,se(S),te(D)}}}function Wt(t,e){var s=e==null?"":typeof e=="object"?e+"":e;s!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=s,t.nodeValue=s+"")}function Ye(t,e){return Be(t,e)}function It(t,e){ce(),e.intro=e.intro??!1;const s=e.target,n=Y,f=L;try{for(var i=ot(s);i&&(i.nodeType!==Oe||i.data!==ft);)i=ut(i);if(!i)throw le;Z(!0),re(i);const u=Be(t,{...e,anchor:i});return Z(!1),u}catch(u){if(u instanceof Error&&u.message.split(` +`).some(l=>l.startsWith("https://svelte.dev/e/")))throw u;return u!==le&&console.warn("Failed to hydrate: ",u),e.recover===!1&&ct(),ce(),lt(s),Z(!1),Ye(t,e)}finally{Z(n),re(f)}}const K=new Map;function Be(t,{target:e,anchor:s,props:n={},events:f,context:i,intro:u=!0,transformError:l}){ce();var c=void 0,a=ht(()=>{var S=s??e.appendChild(De());Nt(S,{pending:()=>{}},g=>{_t({});var d=H;if(i&&(d.c=i),f&&(n.$$events=f),Y&&pt(g,null),c=t(g,n)||{},Y&&(C.nodes.end=L,L===null||L.nodeType!==Oe||L.data!==gt))throw bt(),le;yt()},l);var D=new Set,E=g=>{for(var d=0;d{var N;for(var g of D)for(const v of[e,document]){var d=K.get(v),p=d.get(g);--p==0?(v.removeEventListener(g,pe),d.delete(g),d.size===0&&K.delete(v)):d.set(g,p)}_e.delete(E),S!==s&&((N=S.parentNode)==null||N.removeChild(S))}});return ge.set(c,a),c}let ge=new WeakMap;function Lt(t,e){const s=ge.get(t);return s?(ge.delete(t),s(e)):Promise.resolve()}function qe(t,e,s){if(t==null)return e(void 0),s&&s(void 0),P;const n=G(()=>t.subscribe(e,s));return n.unsubscribe?()=>n.unsubscribe():n}const z=[];function Yt(t,e){return{subscribe:Bt(t,e).subscribe}}function Bt(t,e=P){let s=null;const n=new Set;function f(l){if(vt(t,l)&&(t=l,s)){const c=!z.length;for(const a of n)a[1](),z.push(a,t);if(c){for(let a=0;a{n.delete(a),n.size===0&&s&&(s(),s=null)}}return{set:f,update:i,subscribe:u}}function jt(t,e,s){const n=!Array.isArray(t),f=n?[t]:t;if(!f.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const i=e.length<2;return Yt(s,(u,l)=>{let c=!1;const a=[];let S=0,D=P;const E=()=>{if(S)return;D();const d=e(n?a[0]:a,u,l);i?u(d):D=typeof d=="function"?d:P},g=f.map((d,p)=>qe(d,N=>{a[p]=N,S&=~(1<{S|=1<e=s)(),e}function xe(t){H===null&&ke(),Et&&H.l!==null?xt(H).m.push(t):mt(()=>{const e=G(t);if(typeof e=="function")return e})}function qt(t){H===null&&ke(),xe(()=>()=>G(t))}function xt(t){var e=t.l;return e.u??(e.u={a:[],b:[],m:[]})}const Jt=Object.freeze(Object.defineProperty({__proto__:null,flushSync:Tt,hydrate:It,mount:Ye,onDestroy:qt,onMount:xe,settled:St,tick:Rt,unmount:Lt,untrack:G},Symbol.toStringTag,{value:"Module"}));export{qt as a,Pt as b,jt as c,Vt as d,Ht as e,qe as f,$t as g,It as h,Jt as i,Ye as m,xe as o,Wt as s,Lt as u,Bt as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DAau0uzT.js.br b/apps/dashboard/build/_app/immutable/chunks/DAau0uzT.js.br new file mode 100644 index 0000000000000000000000000000000000000000..b9014b8e56987f1f1dd39d658b9e0a6bcdc7b89d GIT binary patch literal 3827 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DAau0uzT.js.gz b/apps/dashboard/build/_app/immutable/chunks/DAau0uzT.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..129e2f39f8213109cb428caa62bb191cf19b1fe6 GIT binary patch literal 4289 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 jJ`q7et4~{var l=r?e.defaultValue:e.value;if(l=o(e)?u(l):l,v(l),f!==null&&c.add(f),await m(),l!==(l=a())){var h=e.selectionStart,d=e.selectionEnd,n=e.value.length;if(e.value=l??"",d!==null){var s=e.value.length;h===d&&d===n&&s>n?(e.selectionStart=s,e.selectionEnd=s):(e.selectionStart=h,e.selectionEnd=Math.min(d,s))}}}),(b&&e.defaultValue!==e.value||t(a)==null&&e.value)&&(v(o(e)?u(e.value):e.value),f!==null&&c.add(f)),_(()=>{var r=a();if(e===document.activeElement){var l=y??f;if(c.has(l))return}o(e)&&r===u(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function S(e,a,v=a){k(e,"change",c=>{var r=c?e.defaultChecked:e.checked;v(r)}),(b&&e.defaultChecked!==e.checked||t(a)==null)&&v(e.checked),_(()=>{var c=a();e.checked=!!c})}function o(e){var a=e.type;return a==="number"||a==="range"}function u(e){return e===""?null:+e}export{S as a,E as b}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DGM4cicq.js.br b/apps/dashboard/build/_app/immutable/chunks/DGM4cicq.js.br new file mode 100644 index 0000000000000000000000000000000000000000..e4158a6ec0115b2551e31687c2d84864674136b0 GIT binary patch literal 457 zcmV;)0XF^{<^up^Rn@=G73&~Klu+L+MjiWX@CWkBl2xzyKbO-RU?1t;0iN03tvxKj zUKaHN3M}vtGq?7Xghi3gHqYCB6>%U=Pi|$a)t$2qQtlz+0csxM#2tj(I>Tb-tI|(z zU&Z>*{}%dIshzR;4@}r{D;D2sBtGfB&OCce>fId^R^GXa^Kz_|gYJNn(j?k3mOZg; zqP_m*?wX>Le@w_U=xFP>MMs3 z+adnt@!RXypZ5DJ|I?$g9<1{1))p%QOtMi(`aVimC}Ck={06yMgD*EBiCViGJYupx zSXDUjka$M83b=+^4#xkIW`HH|F=E-)#E2~cS`Ea|rD0qcSU5+7sVan+&NYu`_V@fo z2%$070W8M-gRRJYRnfECs-maMkF4gN^+WoGcdaFw^_0%@Oc{B`_|~zYE-RWQPb57V zl!FvwGLmfMDRy%Ce}+=_Lc~{Qk$spI zb>IhQ=U5tJ7xrK3PZMx|*u_JUmL3qs3m3j~Bks~w(0`hTi}Ro}ozM4feYtn(mZ?VC z7eGv%^{dMTdu%{$K!@hl@vj_-qxYs}RuYhT*T#lkMsm*Fn5B|g=bTt9)V0=VMB+(t z?7loY6xP88J9N+B&@`o$OKn{C4sma$C)ZFF#VkL=3~%W@uj4C~Y?a>ZTz>ioLIK^n H=K}x$WMcs% literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DJDK-KWF.js b/apps/dashboard/build/_app/immutable/chunks/DJDK-KWF.js new file mode 100644 index 0000000..671a5ba --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/DJDK-KWF.js @@ -0,0 +1 @@ +import{i as ne,w as re}from"./DAau0uzT.js";import{c as oe,H as C,N as q,r as ot,i as wt,b as L,s as j,p as k,n as ht,f as Dt,g as dt,a as J,d as lt,S as vt,P as qt,e as se,h as ie,o as Kt,j as K,k as ce,l as Ft,m as le,q as fe,t as Mt,u as Tt,v as ue}from"./DY7cP31Q.js";import{x as X,y as he,be as de}from"./CGq8RnJq.js";class yt{constructor(a,e){this.status=a,typeof e=="string"?this.body={message:e}:e?this.body=e:this.body={message:`Error: ${a}`}}toString(){return JSON.stringify(this.body)}}class Et{constructor(a,e){this.status=a,this.location=e}}class bt extends Error{constructor(a,e,r){super(r),this.status=a,this.text=e}}const pe=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function ge(t){const a=[];return{pattern:t==="/"?/^\/$/:new RegExp(`^${_e(t).map(r=>{const n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(n)return a.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(o)return a.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return ft(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return ft(String.fromCharCode(...c.slice(2).split("-").map(_=>parseInt(_,16))));const h=pe.exec(c),[,u,w,f,d]=h;return a.push({name:f,matcher:d,optional:!!u,rest:!!w,chained:w?l===1&&s[0]==="":!1}),w?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return ft(c)}).join("")}).join("")}/?$`),params:a}}function me(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function _e(t){return t.slice(1).split("/").filter(me)}function we(t,a,e){const r={},n=t.slice(1),o=n.filter(i=>i!==void 0);let s=0;for(let i=0;ih).join("/"),s=0),l===void 0)if(c.rest)l="";else continue;if(!c.matcher||e[c.matcher](l)){r[c.name]=l;const h=a[i+1],u=n[i+1];h&&!h.rest&&h.optional&&u&&c.chained&&(s=0),!h&&!u&&Object.keys(r).length===o.length&&(s=0);continue}if(c.optional&&c.chained){s++;continue}return}if(!s)return r}function ft(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function ve({nodes:t,server_loads:a,dictionary:e,matchers:r}){const n=new Set(a);return Object.entries(e).map(([i,[c,l,h]])=>{const{pattern:u,params:w}=ge(i),f={id:i,exec:d=>{const _=u.exec(d);if(_)return we(_,w,r)},errors:[1,...h||[]].map(d=>t[d]),layouts:[0,...l||[]].map(s),leaf:o(c)};return f.errors.length=f.layouts.length=Math.max(f.errors.length,f.layouts.length),f});function o(i){const c=i<0;return c&&(i=~i),[c,t[i]]}function s(i){return i===void 0?i:[n.has(i),t[i]]}}function zt(t,a=JSON.parse){try{return a(sessionStorage[t])}catch{}}function Ot(t,a,e=JSON.stringify){const r=e(a);try{sessionStorage[t]=r}catch{}}function ye(t){return t.filter(a=>a!=null)}function St(t){return t instanceof yt||t instanceof bt?t.status:500}function Ee(t){return t instanceof bt?t.text:"Internal Error"}const{onMount:be}=ne,Se=he??(t=>t()),ke=new Set(["icon","shortcut icon","apple-touch-icon"]),I=zt(Mt)??{},z=zt(Ft)??{},P={url:Tt({}),page:Tt({}),navigating:re(null),updated:oe()};function kt(t){I[t]=j()}function Re(t,a){let e=t+1;for(;I[e];)delete I[e],e+=1;for(e=a+1;z[e];)delete z[e],e+=1}function B(t,a=!1){return a?location.replace(t.href):location.href=t.href,new Promise(()=>{})}async function Bt(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(L||"/");t&&await t.update()}}function Ct(){}let Rt,pt,Q,U,gt,b;const Z=[],tt=[];let v=null;function mt(){var t;(t=v==null?void 0:v.fork)==null||t.then(a=>a==null?void 0:a.discard()),v=null}const G=new Map,Vt=new Set,Ht=new Set,M=new Set;let m={branch:[],error:null,url:null},Yt=!1,et=!1,jt=!0,V=!1,F=!1,Wt=!1,xt=!1,Lt,y,x,O;const at=new Set,$t=new Map;async function He(t,a,e){var o,s,i,c,l;(o=globalThis.__sveltekit_1vzfo5)!=null&&o.data&&globalThis.__sveltekit_1vzfo5.data,document.URL!==location.href&&(location.href=location.href),b=t,await((i=(s=t.hooks).init)==null?void 0:i.call(s)),Rt=ve(t),U=document.documentElement,gt=a,pt=t.nodes[0],Q=t.nodes[1],pt(),Q(),y=(c=history.state)==null?void 0:c[C],x=(l=history.state)==null?void 0:l[q],y||(y=x=Date.now(),history.replaceState({...history.state,[C]:y,[q]:x},""));const r=I[y];function n(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}e?(n(),await qe(gt,e)):(await D({type:"enter",url:ot(b.hash?Me(new URL(location.href)):location.href),replace_state:!0}),n()),De()}function xe(){Z.length=0,xt=!1}function Gt(t){tt.some(a=>a==null?void 0:a.snapshot)&&(z[t]=tt.map(a=>{var e;return(e=a==null?void 0:a.snapshot)==null?void 0:e.capture()}))}function Jt(t){var a;(a=z[t])==null||a.forEach((e,r)=>{var n,o;(o=(n=tt[r])==null?void 0:n.snapshot)==null||o.restore(e)})}function Nt(){kt(y),Ot(Mt,I),Gt(x),Ot(Ft,z)}async function Xt(t,a,e,r){let n;a.invalidateAll&&mt(),await D({type:"goto",url:ot(t),keepfocus:a.keepFocus,noscroll:a.noScroll,replace_state:a.replaceState,state:a.state,redirect_count:e,nav_token:r,accept:()=>{a.invalidateAll&&(xt=!0,n=[...$t.keys()]),a.invalidate&&a.invalidate.forEach(Ne)}}),a.invalidateAll&&X().then(X).then(()=>{$t.forEach(({resource:o},s)=>{var i;n!=null&&n.includes(s)&&((i=o.refresh)==null||i.call(o))})})}async function Le(t){if(t.id!==(v==null?void 0:v.id)){mt();const a={};at.add(a),v={id:t.id,token:a,promise:Zt({...t,preload:a}).then(e=>(at.delete(a),e.type==="loaded"&&e.state.error&&mt(),e)),fork:null}}return v.promise}async function ut(t){var e;const a=(e=await st(t,!1))==null?void 0:e.route;a&&await Promise.all([...a.layouts,a.leaf].filter(Boolean).map(r=>r[1]()))}async function Qt(t,a,e){var n;m=t.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(k,t.props.page),Lt=new b.root({target:a,props:{...t.props,stores:P,components:tt},hydrate:e,sync:!1}),await Promise.resolve(),Jt(x),e){const o={from:null,to:{params:m.params,route:{id:((n=m.route)==null?void 0:n.id)??null},url:new URL(location.href),scroll:I[y]??j()},willUnload:!1,type:"enter",complete:Promise.resolve()};M.forEach(s=>s(o))}et=!0}function nt({url:t,params:a,branch:e,status:r,error:n,route:o,form:s}){let i="never";if(L&&(t.pathname===L||t.pathname===L+"/"))i="always";else for(const f of e)(f==null?void 0:f.slash)!==void 0&&(i=f.slash);t.pathname=ie(t.pathname,i),t.search=t.search;const c={type:"loaded",state:{url:t,params:a,branch:e,error:n,route:o},props:{constructors:ye(e).map(f=>f.node.component),page:it(k)}};s!==void 0&&(c.props.form=s);let l={},h=!k,u=0;for(let f=0;fi(new URL(s))))return!0;return!1}function At(t,a){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?a??null:null}function Pe(t,a){if(!t)return new Set(a.searchParams.keys());const e=new Set([...t.searchParams.keys(),...a.searchParams.keys()]);for(const r of e){const n=t.searchParams.getAll(r),o=a.searchParams.getAll(r);n.every(s=>o.includes(s))&&o.every(s=>n.includes(s))&&e.delete(r)}return e}function Ie({error:t,url:a,route:e,params:r}){return{type:"loaded",state:{error:t,url:a,route:e,params:r,branch:[]},props:{page:it(k),constructors:[]}}}async function Zt({id:t,invalidating:a,url:e,params:r,route:n,preload:o}){if((v==null?void 0:v.id)===t)return at.delete(v.token),v.promise;const{errors:s,layouts:i,leaf:c}=n,l=[...i,c];s.forEach(g=>g==null?void 0:g().catch(()=>{})),l.forEach(g=>g==null?void 0:g[1]().catch(()=>{}));const h=m.url?t!==rt(m.url):!1,u=m.route?n.id!==m.route.id:!1,w=Pe(m.url,e);let f=!1;const d=l.map(async(g,p)=>{var A;if(!g)return;const E=m.branch[p];return g[1]===(E==null?void 0:E.loader)&&!Ae(f,u,h,w,(A=E.universal)==null?void 0:A.uses,r)?E:(f=!0,Ut({loader:g[1],url:e,params:r,route:n,parent:async()=>{var Y;const T={};for(let $=0;${});const _=[];for(let g=0;gPromise.resolve({}),server_data_node:At(o)}),i={node:await Q(),loader:Q,universal:null,server:null,data:null};return nt({url:e,params:n,branch:[s,i],status:t,error:a,route:null})}catch(s){if(s instanceof Et)return Xt(new URL(s.location,location.href),{},0);throw s}}async function Oe(t){const a=t.href;if(G.has(a))return G.get(a);let e;try{const r=(async()=>{let n=await b.hooks.reroute({url:new URL(t),fetch:async(o,s)=>Ue(o,s,t).promise})??t;if(typeof n=="string"){const o=new URL(t);b.hash?o.hash=n:o.pathname=n,n=o}return n})();G.set(a,r),e=await r}catch{G.delete(a);return}return e}async function st(t,a){if(t&&!wt(t,L,b.hash)){const e=await Oe(t);if(!e)return;const r=Ce(e);for(const n of Rt){const o=n.exec(r);if(o)return{id:rt(t),invalidating:a,route:n,params:se(o),url:t}}}}function Ce(t){return ce(b.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(L.length))||"/"}function rt(t){return(b.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function te({url:t,type:a,intent:e,delta:r,event:n,scroll:o}){let s=!1;const i=It(m,e,t,a,o??null);r!==void 0&&(i.navigation.delta=r),n!==void 0&&(i.navigation.event=n);const c={...i.navigation,cancel:()=>{s=!0,i.reject(new Error("navigation cancelled"))}};return V||Vt.forEach(l=>l(c)),s?null:i}async function D({type:t,url:a,popped:e,keepfocus:r,noscroll:n,replace_state:o,state:s={},redirect_count:i=0,nav_token:c={},accept:l=Ct,block:h=Ct,event:u}){var $;const w=O;O=c;const f=await st(a,!1),d=t==="enter"?It(m,f,a,t):te({url:a,type:t,delta:e==null?void 0:e.delta,intent:f,scroll:e==null?void 0:e.scroll,event:u});if(!d){h(),O===c&&(O=w);return}const _=y,g=x;l(),V=!0,et&&d.navigation.type!=="enter"&&P.navigating.set(ht.current=d.navigation);let p=f&&await Zt(f);if(!p){if(wt(a,L,b.hash))return await B(a,o);p=await ee(a,{id:null},await H(new bt(404,"Not Found",`Not found: ${a.pathname}`),{url:a,params:{},route:{id:null}}),404,o)}if(a=(f==null?void 0:f.url)||a,O!==c)return d.reject(new Error("navigation aborted")),!1;if(p.type==="redirect"){if(i<20){await D({type:t,url:new URL(p.location,a),popped:e,keepfocus:r,noscroll:n,replace_state:o,state:s,redirect_count:i+1,nav_token:c}),d.fulfil(void 0);return}p=await Pt({status:500,error:await H(new Error("Redirect loop"),{url:a,params:{},route:{id:null}}),url:a,route:{id:null}})}else p.props.page.status>=400&&await P.updated.check()&&(await Bt(),await B(a,o));if(xe(),kt(_),Gt(g),p.props.page.url.pathname!==a.pathname&&(a.pathname=p.props.page.url.pathname),s=e?e.state:s,!e){const S=o?0:1,W={[C]:y+=S,[q]:x+=S,[vt]:s};(o?history.replaceState:history.pushState).call(history,W,"",a),o||Re(y,x)}const E=f&&(v==null?void 0:v.id)===f.id?v.fork:null;v=null,p.props.page.state=s;let R;if(et){const S=(await Promise.all(Array.from(Ht,N=>N(d.navigation)))).filter(N=>typeof N=="function");if(S.length>0){let N=function(){S.forEach(ct=>{M.delete(ct)})};S.push(N),S.forEach(ct=>{M.add(ct)})}m=p.state,p.props.page&&(p.props.page.url=a);const W=E&&await E;W?R=W.commit():(Lt.$set(p.props),ue(p.props.page),R=($=de)==null?void 0:$()),Wt=!0}else await Qt(p,gt,!1);const{activeElement:A}=document;await R,await X(),await X();let T=null;if(jt){const S=e?e.scroll:n?j():null;S?scrollTo(S.x,S.y):(T=a.hash&&document.getElementById(ae(a)))?T.scrollIntoView():scrollTo(0,0)}const Y=document.activeElement!==A&&document.activeElement!==document.body;!r&&!Y&&Fe(a,!T),jt=!0,p.props.page&&Object.assign(k,p.props.page),V=!1,t==="popstate"&&Jt(x),d.fulfil(void 0),d.navigation.to&&(d.navigation.to.scroll=j()),M.forEach(S=>S(d.navigation)),P.navigating.set(ht.current=null)}async function ee(t,a,e,r,n){return t.origin===Kt&&t.pathname===location.pathname&&!Yt?await Pt({status:r,error:e,url:t,route:a}):await B(t,n)}function je(){let t,a={element:void 0,href:void 0},e;U.addEventListener("mousemove",i=>{const c=i.target;clearTimeout(t),t=setTimeout(()=>{o(c,K.hover)},20)});function r(i){i.defaultPrevented||o(i.composedPath()[0],K.tap)}U.addEventListener("mousedown",r),U.addEventListener("touchstart",r,{passive:!0});const n=new IntersectionObserver(i=>{for(const c of i)c.isIntersecting&&(ut(new URL(c.target.href)),n.unobserve(c.target))},{threshold:0});async function o(i,c){const l=Dt(i,U),h=l===a.element&&(l==null?void 0:l.href)===a.href&&c>=e;if(!l||h)return;const{url:u,external:w,download:f}=dt(l,L,b.hash);if(w||f)return;const d=J(l),_=u&&rt(m.url)===rt(u);if(!(d.reload||_))if(c<=d.preload_data){a={element:l,href:l.href},e=K.tap;const g=await st(u,!1);if(!g)return;Le(g)}else c<=d.preload_code&&(a={element:l,href:l.href},e=c,ut(u))}function s(){n.disconnect();for(const i of U.querySelectorAll("a")){const{url:c,external:l,download:h}=dt(i,L,b.hash);if(l||h)continue;const u=J(i);u.reload||(u.preload_code===K.viewport&&n.observe(i),u.preload_code===K.eager&&ut(c))}}M.add(s),s()}function H(t,a){if(t instanceof yt)return t.body;const e=St(t),r=Ee(t);return b.hooks.handleError({error:t,event:a,status:e,message:r})??{message:r}}function $e(t,a){be(()=>(t.add(a),()=>{t.delete(a)}))}function Ye(t){$e(Ht,t)}function We(t,a={}){return t=new URL(ot(t)),t.origin!==Kt?Promise.reject(new Error("goto: invalid URL")):Xt(t,a,0)}function Ne(t){if(typeof t=="function")Z.push(t);else{const{href:a}=new URL(t,location.href);Z.push(e=>e.href===a)}}function Ge(t,a){const e={[C]:y,[q]:x,[qt]:k.url.href,[vt]:a};history.replaceState(e,"",ot(t)),k.state=a,Lt.$set({page:Se(()=>it(k))})}function De(){var a;history.scrollRestoration="manual",addEventListener("beforeunload",e=>{let r=!1;if(Nt(),!V){const n=It(m,void 0,null,"leave"),o={...n.navigation,cancel:()=>{r=!0,n.reject(new Error("navigation cancelled"))}};Vt.forEach(s=>s(o))}r?(e.preventDefault(),e.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Nt()}),(a=navigator.connection)!=null&&a.saveData||je(),U.addEventListener("click",async e=>{if(e.button||e.which!==1||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.defaultPrevented)return;const r=Dt(e.composedPath()[0],U);if(!r)return;const{url:n,external:o,target:s,download:i}=dt(r,L,b.hash);if(!n)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const c=J(r);if(!(r instanceof SVGAElement)&&n.protocol!==location.protocol&&!(n.protocol==="https:"||n.protocol==="http:")||i)return;const[h,u]=(b.hash?n.hash.replace(/^#/,""):n.href).split("#"),w=h===lt(location);if(o||c.reload&&(!w||!u)){te({url:n,type:"link",event:e})?V=!0:e.preventDefault();return}if(u!==void 0&&w){const[,f]=m.url.href.split("#");if(f===u){if(e.preventDefault(),u===""||u==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const d=r.ownerDocument.getElementById(decodeURIComponent(u));d&&(d.scrollIntoView(),d.focus())}return}if(F=!0,kt(y),t(n),!c.replace_state)return;F=!1}e.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await D({type:"link",url:n,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??n.href===location.href,event:e})}),U.addEventListener("submit",e=>{if(e.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if(((n==null?void 0:n.formTarget)||r.target)==="_blank"||((n==null?void 0:n.formMethod)||r.method)!=="get")return;const i=new URL((n==null?void 0:n.hasAttribute("formaction"))&&(n==null?void 0:n.formAction)||r.action);if(wt(i,L,!1))return;const c=e.target,l=J(c);if(l.reload)return;e.preventDefault(),e.stopPropagation();const h=new FormData(c,n);i.search=new URLSearchParams(h).toString(),D({type:"form",url:i,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??i.href===location.href,event:e})}),addEventListener("popstate",async e=>{var r;if(!_t){if((r=e.state)!=null&&r[C]){const n=e.state[C];if(O={},n===y)return;const o=I[n],s=e.state[vt]??{},i=new URL(e.state[qt]??location.href),c=e.state[q],l=m.url?lt(location)===lt(m.url):!1;if(c===x&&(Wt||l)){s!==k.state&&(k.state=s),t(i),I[y]=j(),o&&scrollTo(o.x,o.y),y=n;return}const u=n-y;await D({type:"popstate",url:i,popped:{state:s,scroll:o,delta:u},accept:()=>{y=n,x=c},block:()=>{history.go(-u)},nav_token:O,event:e})}else if(!F){const n=new URL(location.href);t(n),b.hash&&location.reload()}}}),addEventListener("hashchange",()=>{F&&(F=!1,history.replaceState({...history.state,[C]:++y,[q]:x},"",location.href))});for(const e of document.querySelectorAll("link"))ke.has(e.rel)&&(e.href=e.href);addEventListener("pageshow",e=>{e.persisted&&P.navigating.set(ht.current=null)});function t(e){m.url=k.url=e,P.page.set(it(k)),P.page.notify()}}async function qe(t,{status:a=200,error:e,node_ids:r,params:n,route:o,server_route:s,data:i,form:c}){Yt=!0;const l=new URL(location.href);let h;({params:n={},route:o={id:null}}=await st(l,!1)||{}),h=Rt.find(({id:f})=>f===o.id);let u,w=!0;try{const f=r.map(async(_,g)=>{const p=i[g];return p!=null&&p.uses&&(p.uses=Ke(p.uses)),Ut({loader:b.nodes[_],url:l,params:n,route:o,parent:async()=>{const E={};for(let R=0;R{const i=history.state;_t=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(i,"",t),a&&scrollTo(o,s),_t=!1})}else{const o=document.body,s=o.getAttribute("tabindex");o.tabIndex=-1,o.focus({preventScroll:!0,focusVisible:!1}),s!==null?o.setAttribute("tabindex",s):o.removeAttribute("tabindex")}const n=getSelection();if(n&&n.type!=="None"){const o=[];for(let s=0;s{if(n.rangeCount===o.length){for(let s=0;s{o=u,s=w});return i.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((l=t.route)==null?void 0:l.id)??null},url:t.url,scroll:j()},to:e&&{params:(a==null?void 0:a.params)??null,route:{id:((h=a==null?void 0:a.route)==null?void 0:h.id)??null},url:e,scroll:n},willUnload:!a,type:r,complete:i},fulfil:o,reject:s}}function it(t){return{data:t.data,error:t.error,form:t.form,params:t.params,route:t.route,state:t.state,status:t.status,url:t.url}}function Me(t){const a=new URL(t);return a.hash=decodeURIComponent(t.hash),a}function ae(t){let a;if(b.hash){const[,,e]=t.hash.split("#",3);a=e??""}else a=t.hash.slice(1);return decodeURIComponent(a)}export{He as a,We as g,Ye as o,Ge as r,P as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DJDK-KWF.js.br b/apps/dashboard/build/_app/immutable/chunks/DJDK-KWF.js.br new file mode 100644 index 0000000000000000000000000000000000000000..4673246acecf373f6c4e45a30468b0c030679da2 GIT binary patch literal 7796 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

aDIlepk= zmKFtxTKw2w=n5)^JdH)EVw%+X7!6h^l57lBwk3|cU3#7w$(ZDLLt!5om18kzou^P2 z2JR2=p36Z{ceWYU=Di70yvdD>P8OrFueOPEvqn&&ca28zPEYYXy0)w09MH4?G^uQd)i#L7 zCH;-zy*mxar)8LMGb~o8$wj5xtU8q=0Po$Yv9$lrr-HKeM{cN&AG`S&BjgZ8NHX3m z@&t))bcD-dumZL6sAv+&S1aqo_X!B!7lKs;nlLASK9LR1G@u9S(0)l<9OP>{oc>2( z&h{CMf1AMlebgB~F+DtVg4saLc+Cf}6?(py=tXAEvxocaxAt)4VcBL7J=O)uWl0i< zKQuw;S0ANo;~N1GFks}UV@<{OsF`80+z4vx9o>L{PR<6q(?L|TLtr`R?{uf5)rBAf z%~z1!#xGV$qhAn#nnneJ5dHUbtiMB6w=|C16&>ZOV98l^&YQC9b>|!T$U({tqsf8> zzUh+(x`ZOWpXu;k#a@RMCughnXyD_TTH_cO+t3q_1X$=NP*KnPI z#j{@g{P;YTgX`QrtM&p{whYtLD%Z8kCcftoN2J_Y;;4($#|ahbws;d<2B8td29ULyzn6=)PWj&vxQ@bHg0b;Lz*ctDx_ zo$82MtHu;WSBreh9uqZ74kQvShWC~t6jf<_y!_Nf=-U(R>*G{c0SlMJCsS7~y_(D# z9fZ^Km_Syj!!?(Pt44iIG{yDl_QK^2{&q~F`dp|mt`*QM&Q1yU1do;)jtouE!!4sf z92R8bO^(@rR#r{FihqB|ti}`XKk3_(_^o6kv}~!V047?wkqc9VRjLyEQH33WLLnR) zJamTO&Dy1KPi4CmZ4px`akp`vXUaUHqL)81akh(?d%Ral`0~Z@30S}&z2$P*0 zf?7DqJUrz+v^u` z`q`f!SAjCUcThA*+rbGhR|4h$jB1DL3`m+RQl;g^>HuLVCNgUX21!C3n?Pp;Sj4?p|stq@-fKIKObf7#o0g>SX#Lv4#JMdR`0?9 zpogYJc7bPB7EK~3Z*DeCT7k9QS!zU&v&z>@jZZ1%V_=D6H9t(dgV#v{t0LR>ubtOa z>>P-syLp44voSmI[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 GRo?*<%~ApY literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DJDK-KWF.js.gz b/apps/dashboard/build/_app/immutable/chunks/DJDK-KWF.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..ee5f80da6d9736bb1265bb38315058ec973d7898 GIT binary patch literal 8549 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DV6OI5iy.js b/apps/dashboard/build/_app/immutable/chunks/DV6OI5iy.js new file mode 100644 index 0000000..4f21b0c --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/DV6OI5iy.js @@ -0,0 +1 @@ +import{Z as R,_ as y,g as b,t as N,a0 as U,s as A,y as B,a1 as M,a2 as Y,a3 as $,e as w,a4 as x,a5 as Z,a6 as h,a7 as q,a8 as z,a9 as C,aa as G,ab as V,V as j,ac as p,ad as F,ae as H}from"./CGq8RnJq.js";import{f as J,g as K}from"./DAau0uzT.js";let c=!1,g=Symbol();function k(e,r,i){const n=i[r]??(i[r]={store:null,source:y(void 0),unsubscribe:R});if(n.store!==e&&!(g in i))if(n.unsubscribe(),n.store=e??null,e==null)n.source.v=void 0,n.unsubscribe=R;else{var u=!0;n.unsubscribe=J(e,t=>{u?n.source.v=t:A(n.source,t)}),u=!1}return e&&g in i?K(e):b(n.source)}function ee(){const e={};function r(){N(()=>{for(var i in e)e[i].unsubscribe();U(e,g,{enumerable:!1,value:!0})})}return[e,r]}function Q(e){var r=c;try{return c=!1,[e(),c]}finally{c=r}}function re(e,r,i,n){var E;var u=!C||(i&G)!==0,t=(i&z)!==0,T=(i&q)!==0,f=n,o=!0,P=()=>(o&&(o=!1,f=T?B(n):n),f),_;if(t){var D=F in e||H in e;_=((E=M(e,r))==null?void 0:E.set)??(D&&r in e?a=>e[r]=a:void 0)}var d,I=!1;t?[d,I]=Q(()=>e[r]):d=e[r],d===void 0&&n!==void 0&&(d=P(),_&&(u&&Y(),_(d)));var s;if(u?s=()=>{var a=e[r];return a===void 0?P():(o=!0,a)}:s=()=>{var a=e[r];return a!==void 0&&(f=void 0),a===void 0?f:a},u&&(i&$)===0)return s;if(_){var L=e.$$legacy;return(function(a,v){return arguments.length>0?((!u||!v||L||I)&&_(v?s():a),a):s()})}var S=!1,l=((i&V)!==0?j:p)(()=>(S=!1,s()));t&&b(l);var m=Z;return(function(a,v){if(arguments.length>0){const O=v?b(l):u&&t?w(a):a;return A(l,O),S=!0,f!==void 0&&(f=O),a}return x&&S||(m.f&h)!==0?l.v:b(l)})}export{k as a,re as p,ee as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DV6OI5iy.js.br b/apps/dashboard/build/_app/immutable/chunks/DV6OI5iy.js.br new file mode 100644 index 0000000000000000000000000000000000000000..cd6a506b108783814a89668fb41e8d2d0f45d1a5 GIT binary patch literal 787 zcmV+u1MK`8@dZE}g>l1uWLb#TEJcJ8>c9VWv;CHdRPuf{m=CF_1qe{FSlu*RR_%u@ zk2H7x0rG0(stBM{Av#@flFT-`V)b8Tx#u@P`oy=TjvM{pVga_Ae1 zAZ+|B4EkmaxV^d@Jd)Y&PJ=t@QeOlmv z5**SUNA$)q6>&vXTstP5?C5|S*=>hgs-O(DuH%cTd0DL98(h9Syro8E5HStLnx-jN zDNof(y+_xb>fH#0EXMka##zaL>C;DN2I^yM1 zQ`Q94Be>2O{Cb)3GP^vv<~YnSf_SliH1>e5_vv;*+n`u_={uMl%0(XMoY=G0AblMg z{I^fVUzM#;m<5n5pS z{NR&wO=Sn1$o*@|ihXhph8h(6E8RZEUX1x+FL_jaePV$uHqr7xW}{K4gC!$B%ih)Z z>a^ut!H}=7rJ*RMiY1!v;H>+}!6y)JXA`gRns`aWTpq|hRQ!HnZ&kA9I3}ey)*B<% z{d18nyb77@IY8w4)i7MMeKgX@E5IY-0!H9A_9~f&v!n_Fyr;58HH@tTP*%GnCLqcx zFSJiYc^36f(t{Gl+&+<1ZnZoU4J!jW*)t*QLe`MEq)X1!2Pc*RM5w2XgvoJy77Sn3 zxH<^c18{o|D8utp2tr_JSBR23Rf_rv%de#ANu~=eO|~d|fB-Z$r0DSJ%Um5XqhL~b zQP8H+bM7reSm@viKx`y-gyX%tPD&uF|yz;ZT)G!@i#&o8YWPfyV6bpfHj? z^Q*3O`hG$v!!jRE5%kcI_j`81A+|#z`1lG9?WOc=9e%%Xo+C?28#v86N|tPNeGh~< RhA4Rrp>9@-&lBM2@du;{gx~-G literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DV6OI5iy.js.gz b/apps/dashboard/build/_app/immutable/chunks/DV6OI5iy.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..db33535b8544e6973ac962eec14b253b37fb25c6 GIT binary patch literal 842 zcmV-Q1GW4giwFP!000026LnPEZreBzec!K;i+~`3f!6Kzwh|a2P13aKJxK#JMqtn~ zP*rdQQ-U=t2xj02K7$$)eus)+ z2i62{Ks_b=1nL>#4^aOQZhO;Y#*(;L%BW6zihW%}UvzmZNd}`0F7yKGcgeUaEVNm;i|uj3`KWH&(W-4fw(Wbt*p#o53gs)* zAtH>r-qd57WP#Jk*{Pp*av5C-Z!P!VFcpn*jLmq_8@7~Z|1Srn|5wW9kNF~32~kAY zwo86-RG~J8?eGG=2skEZv&ZJ)Yqj}DZx}nqja`NryXdtR;VL3hY)0SsYw#!Ce+sPb UFHr5V>f*nC1GMEcY4QaC0Qx?vN&o-= literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DY7cP31Q.js b/apps/dashboard/build/_app/immutable/chunks/DY7cP31Q.js new file mode 100644 index 0000000..6460850 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/DY7cP31Q.js @@ -0,0 +1 @@ +var x=t=>{throw TypeError(t)};var K=(t,e,n)=>e.has(t)||x("Cannot "+n);var a=(t,e,n)=>(K(t,e,"read from private field"),n?n.call(t):e.get(t)),c=(t,e,n)=>e.has(t)?x("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{w as G,o as I}from"./DAau0uzT.js";import{d as u,g as f,s as d}from"./CGq8RnJq.js";new URL("sveltekit-internal://");function se(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function ae(t){return t.split("%25").map(decodeURI).join("%25")}function oe(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function ie({href:t}){return t.split("#")[0]}function B(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let s=r.length;for(;s;)e=e*33^r[--s]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;new TextDecoder;function W(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&b.delete(U(t)),X(t,e));const b=new Map;function le(t,e){const n=U(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){r.remove();let{body:s,...l}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&b.set(n,{body:s,init:l,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(s=W(s)),Promise.resolve(new Response(s,l))}return window.fetch(t,e)}function ce(t,e,n){if(b.size>0){const r=U(t,n),s=b.get(r);if(s){if(performance.now()o)}function s(o){n=!1,e.set(o)}function l(o){let i;return e.subscribe(h=>{(i===void 0||n&&h!==i)&&o(i=h)})}return{notify:r,set:s,subscribe:l}}const z={v:()=>{}};function Ae(){const{set:t,subscribe:e}=G(!1);let n;async function r(){clearTimeout(n);try{const s=await fetch(`${M}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!s.ok)return!1;const o=(await s.json()).version!==F;return o&&(t(!0),z.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:e,check:r}}function Q(t,e,n){return t.origin!==Y||!t.pathname.startsWith(e)?!0:n?t.pathname!==location.pathname:!1}function Re(t){}const D=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...D];const Z=new Set([...D]);[...Z];let E,O,T;const ee=I.toString().includes("$$")||/function \w+\(\) \{\}/.test(I.toString());var _,w,m,v,p,y,A,R,P,S,V,k,j;ee?(E={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},O={current:null},T={current:!1}):(E=new(P=class{constructor(){c(this,_,u({}));c(this,w,u(null));c(this,m,u(null));c(this,v,u({}));c(this,p,u({id:null}));c(this,y,u({}));c(this,A,u(-1));c(this,R,u(new URL("https://example.com")))}get data(){return f(a(this,_))}set data(e){d(a(this,_),e)}get form(){return f(a(this,w))}set form(e){d(a(this,w),e)}get error(){return f(a(this,m))}set error(e){d(a(this,m),e)}get params(){return f(a(this,v))}set params(e){d(a(this,v),e)}get route(){return f(a(this,p))}set route(e){d(a(this,p),e)}get state(){return f(a(this,y))}set state(e){d(a(this,y),e)}get status(){return f(a(this,A))}set status(e){d(a(this,A),e)}get url(){return f(a(this,R))}set url(e){d(a(this,R),e)}},_=new WeakMap,w=new WeakMap,m=new WeakMap,v=new WeakMap,p=new WeakMap,y=new WeakMap,A=new WeakMap,R=new WeakMap,P),O=new(V=class{constructor(){c(this,S,u(null))}get current(){return f(a(this,S))}set current(e){d(a(this,S),e)}},S=new WeakMap,V),T=new(j=class{constructor(){c(this,k,u(!1))}get current(){return f(a(this,k))}set current(e){d(a(this,k),e)}},k=new WeakMap,j),z.v=()=>T.current=!0);function Ee(t){Object.assign(E,t)}export{ge as H,be as N,he as P,de as S,pe as a,J as b,Ae as c,ie as d,oe as e,me as f,ve as g,se as h,Q as i,N as j,ae as k,ue as l,ce as m,O as n,Y as o,E as p,le as q,_e as r,we as s,fe as t,ye as u,Ee as v,Re as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DY7cP31Q.js.br b/apps/dashboard/build/_app/immutable/chunks/DY7cP31Q.js.br new file mode 100644 index 0000000000000000000000000000000000000000..0c131053929b964a2a6cd3708c8e73a0900104a6 GIT binary patch literal 2615 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 Z40pPr(k+>eto0=aBUkj<=&6Dz{{Uaa4F>=K literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DY7cP31Q.js.gz b/apps/dashboard/build/_app/immutable/chunks/DY7cP31Q.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..ecf001779bc03dbd809242175e993bdac4dced6a GIT binary patch literal 2941 zcmV-@3xf0?iwFP!000026O|cjbK5rZ`~3=<^=ZfkrtGBcbg0rE$8po9iIZAR($rCH zhy*3t6uVYIlkQ77lVs^V0W=E$SW$H&ykJ}OFfrj?ObdMb}FTip7yKJ z3b21fo+gZNKRRT=oGL)v-F^1l6Uw>Jj{AuFhK_c0-XG@Em5e4%D#gMnWVWK3Icdi7 z#Ptb3;z3OF9E61|m@y3>K8e3R>Zm)3CW)ix%u#f~T7e6;m@?@sgk*rE+z~uxE(mop zt~3Qeq|SRrZ^uj@u>fS)BNZMACyla2A*3$X4pq)`B5?V=LY>`U`0SW2_m^KTf*a*F zgb7kC$qbj2C|r_;{^a?mpU?S=Plleewe$A;rRS;@%Qd^r^j^j_lbq(^aOnD@bjf3# z3GOI{X8WaNdMUZ1qbPER?%f^3k8H-lHup$}2IOqTBtQY3X}+c#8p!*%|>q|C?THX@@F64}Z=V9L;HOF;gGUkS>5*_~zgcrDeuvu4R!C4|2w5dT!W8a^$m! zegEXiKMT2MnIoThfCMuF!ny6M2dAYZzCiZxnpLj%}9Ei z6PMW7m;@P*^JT)6$G3w9`xH?6eiNTt76#}}q5^cMKWd{0O2&hBqmiB6HfZW%bgg2U z75dV6yK5PSk0lekzm$2jTbhutnVzMa|CR(m8$u7CT%)^K6M4{Ap(!(|puKc^Xhq|2 z6ks6 zF#uh17L}S7;Q^UL^^xIYvV!ZtF(-UN7)X`j4@9JCxOYHO3QY(;D)J%9MQj8FLT0m! zcV+R)i~-nm`!NYqP?J4+WV>}+CeigU8eoj>^y+Dghm1eX8Gfp#n+rNSgW=C}kqgQj zYg_mchtVJ~qeIII$5y?h#aV2-?yRBU)>B6L*?94H zEm?K#*X`_OR6^jM5!VgR0^{wfbK57c9b+^G4$OQk8RtSDK^{Zx2W!rtPquCRep};! z#C{J!7#$oy^1=83hbU;!tW$nb_bfAG=)pikIcFn#T}A}@7KVej1(ekj@UVyS++%2u z8mIAIOF&1ves`%lLKAw9TD2wJRJW0q8$72Tk?k*p6da7p8`+H$@&yU;-GrBP$@f{%*I-s@>9p)pb?H zD6*`Yg7^((HI)zqJ$3B{$)g>4cek?xb@oqB8du!idG{g)9!SuoK^K^^t$M?c>e0~e znvn|)-#i)M%_Ji5-`35`Isx&XK74&k(06z)XwnV>CH4eRrk08Q-)IZ-Ktmgf-Ypia z3rsv0$30x6U6fsNy9m2vk+xH8HW*|OVeQQ|AGPmBJ{Z%C6Ed248F35n2k5YelP5M4 z74-&=EecFE({4HnW+`qND^fU0A)0q+ZqZ!Sl@+jghs`b4N=KaNaH7E#IgObq!AOxo z%xAq<+}!)kFV#B3V1%z2OOzX$Mav~~Lwg51`y;alWwpkd%G#n2M)l-UZ#08MS(|=^ z&Iw;$N@y!6V?r7P`UDWFMYOI6p`(H`YSRINamq5mcaGo2v@2s9Y>9pUJA_#G1g1QwF=2e}{U!rmqLSZ{Bt6l*<#!g@e zO61f%PF8`YZ*gmUAiWTO|gL1 z37$naD*UU=UoB~t!!SC|q1+=*@HCsb6Muw5?z2hl#J@X+*s3XZ|;#D1H5<8!RILWn>NBD6`G)fZfyrb zC-rEpI-pg9hVd!s5I9XDCtkz@oa>s?p!=NbmeX9^1FVah)#CfSico#TK;Mf{HC@vjrV*LFZf08y~U;bK>2%a$?*@yfLlLsRzs( z*XA`8eG|vEiQ_E=-uaNFsKCv)6u1QiptJq2<8Qxl{B3>w?bh)(rlUmIW-o%84Tgi> zuykrl_v`5mi<=jZcS_(1!9JT`*=G!YSpSVo&3Xn8UR>Y6a~Rh#Da=aA3tXn;*nly~ z%$g8kRz?=g{!G6z>kP&MT<7FZTrzTo%MGDs7rbHCoWy2bkk`0y@&Ok?PH`znZjhhI nm02ZOn^nQ{9anfdGW!pLQ?stfxmnlM=wJT{throw TypeError(i)};var F=(i,e,s)=>e in i?D(i,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[e]=s;var w=(i,e,s)=>F(i,typeof e!="symbol"?e+"":e,s),y=(i,e,s)=>e.has(i)||g("Cannot "+s);var t=(i,e,s)=>(y(i,e,"read from private field"),s?s.call(i):e.get(i)),l=(i,e,s)=>e.has(i)?g("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,s),M=(i,e,s,a)=>(y(i,e,"write to private field"),a?a.call(i,s):e.set(i,s),s);import{_ as x,aq as q,aw as k,ar as C,J as A,ai as B,N as J,U as N,ay as S,ak as U}from"./CpWkWWOo.js";var h,n,f,u,p,_,v;class E{constructor(e,s=!0){w(this,"anchor");l(this,h,new Map);l(this,n,new Map);l(this,f,new Map);l(this,u,new Set);l(this,p,!0);l(this,_,()=>{var e=x;if(t(this,h).has(e)){var s=t(this,h).get(e),a=t(this,n).get(s);if(a)q(a),t(this,u).delete(s);else{var c=t(this,f).get(s);c&&(t(this,n).set(s,c.effect),t(this,f).delete(s),c.fragment.lastChild.remove(),this.anchor.before(c.fragment),a=c.effect)}for(const[r,o]of t(this,h)){if(t(this,h).delete(r),r===e)break;const d=t(this,f).get(o);d&&(k(d.effect),t(this,f).delete(o))}for(const[r,o]of t(this,n)){if(r===s||t(this,u).has(r))continue;const d=()=>{if(Array.from(t(this,h).values()).includes(r)){var b=document.createDocumentFragment();S(o,b),b.append(A()),t(this,f).set(r,{effect:o,fragment:b})}else k(o);t(this,u).delete(r),t(this,n).delete(r)};t(this,p)||!a?(t(this,u).add(r),C(o,d,!1)):d()}}});l(this,v,e=>{t(this,h).delete(e);const s=Array.from(t(this,h).values());for(const[a,c]of t(this,f))s.includes(a)||(k(c.effect),t(this,f).delete(a))});this.anchor=e,M(this,p,s)}ensure(e,s){var a=x,c=U();if(s&&!t(this,n).has(e)&&!t(this,f).has(e))if(c){var r=document.createDocumentFragment(),o=A();r.append(o),t(this,f).set(e,{effect:B(()=>s(o)),fragment:r})}else t(this,n).set(e,B(()=>s(this.anchor)));if(t(this,h).set(a,e),c){for(const[d,m]of t(this,n))d===e?a.unskip_effect(m):a.skip_effect(m);for(const[d,m]of t(this,f))d===e?a.unskip_effect(m.effect):a.skip_effect(m.effect);a.oncommit(t(this,_)),a.ondiscard(t(this,v))}else J&&(this.anchor=N),t(this,_).call(this)}}h=new WeakMap,n=new WeakMap,f=new WeakMap,u=new WeakMap,p=new WeakMap,_=new WeakMap,v=new WeakMap;export{E as B}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DdEqwvdI.js.br b/apps/dashboard/build/_app/immutable/chunks/DdEqwvdI.js.br deleted file mode 100644 index 4a2afa5feadd751669987b3997c9b809ae19970b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 883 zcmV-(1C0C|!UzD2!nWn}QNvuS9!!NY%}iZYtuIg7xec|}=z+Sg5S=`Ot!=99SvKi~5k3-pk#H^NZU3E<=Jx%i51zug3Kw_q^M7tl9FYt=9fI@0om~S%Gxoe4oOAs! z={U4`e!z|>_#Ry~>X04L9pkC7*^0inDIN2x0wyOys&lKQVJgHS)mDz~_-~V6vN)7- zBjO7D^Gg%N^aJK98o!KxZDM4qSZN9cG^YZ2iD$S*#34S%mP2z2SXsAZ>5vAK8trjI zX_yiPSx|aOAYy|oAK3v{w{Byzgbk!*t(L)yhL^1b$75e;1|Fth3AU4sN-#9O49RH# z4g=xsH~H88kW%{|yW-d4p5AoTLM}EyL0-X4=}2bh~uDm%@tY{Qd5-6)NXcBnLt06~}yhx#ue2w=VUF^pIYcoP88q@}3@Tp{5= z1C82kxv%K?O?hfLLER({;-Iu?>ZVI2Ta!3o*20Q*ajBTpQz_Dwj-!VO+%GJs`}h(? z7hT7Zbow#|-)=*e3AevFg3(S+5J{C?*>?)YTZA;`jHMWl?2+IAy$8$ETvifAy^zS$ zUEu=IBrxI38iat@>v)=2rbJ=Bia4Wg*OXON@Epv!DK9CHwl7J{z^ssSO)jMJ5hyGX zIUiDyDCt_v99~$ol_D7&D%{bar5^5b;x__HnOrVO-Wa5G`Tj~04U-;-MwGh;=x9eg z3|3kYA*y|_iD-#x#1g29UGgEnrv;QEr3BGC0dQzIEE)181|}F@HmFM^<3eB#wf#u- zF7y26L^v!W_JEDHfxA((5$lYK>>$~NR2mN}(#eFrOBtYUdQ)`psj748(4_qN JCXeJmhX838$ObtSg)yc^ zF>8rbNXm&}>%SM2Ey+%h?rAhn+JjD7fYYyTqw=|T2r(2n{-V!dd^gK zvGq%9UZejuHQ!iktWeN)e{VCPkkLVQ!I9FDnq7CmmUUCHrA5ip$vH}+3-#O#{;O5K z|6Wts@YJ<1RX_M==DN7AW87Pz&~IusMZ}XVcAIKp%6P_K;&>WX;O3}?WJyja*zKN0 zd_`ItAH`oBbTR$7PHei**fQl&VNDg)R;|f%R46X<7|_jJBB?Bef+;7@?1cir@?)ym zn2GW{@=J~!RXhZ&xLUA{Dq}hFOVW|il4F<#x|}C1Lt{@&s|WToPAJd!DP2ez+PgpG zL^>)w5Xg}?AL^zV9qLAR62?KQs@hn;ok!%NH>8(fUyxpdT_M?EukbFIOC%NSSNs;t z9XmCx2hnPphY=?;*RSjYAmq98t1r9Wl7FOH(P16^R|)R zSi$JB$vJFagGRd_bBGd0;;vHBQb4XO050i*2Zo zv$s?g!XL6hCnp1RKV3HBL3;+I9@2X#@L33g7eRoBUkxNVm+U$G<{4_;0bPC%OJ`TAppv|(3VPTn8X}2}X-?d~Q&CkxnO5~q6Vc_%RdY?Qb za=YEgX3)d}NTa>d4G-Bn6;&ZFt))#8hVZEH?m}?_AW>SDP0n46PKrgA8`*R$O3UQ= z`rzIkxDt>)2!jj2MM8DWIv1A$j=KqBS={d1oEq#|o-SHwgXYmH(D7j+><~mBVQs&# zhTU#LGcoQ9H-QDb5(aae`~xt}1+;BD4D%W}+|2Ir;{vOm+4j%pCfBQ**DH*!a? z+liI2uJsc8%q5;`b_0_J%Th6x|7OXJ?a%Gp_f(@k@ro0#Iq~WfZ+_yfkG+)Nx_9iRd!X9% NuivljkGR7K005+?-r(a),_|o)}finally{E&&(l(!0),d(s))}}export{T as h}; +import{A as y,i as u,H as _,B as o,w as t,C as g,D as i,F as l,G as d,I as p,J as m}from"./CGq8RnJq.js";function C(n,r){let s=null,E=t;var a;if(t){s=p;for(var e=m(document.head);e!==null&&(e.nodeType!==g||e.data!==n);)e=i(e);if(e===null)l(!1);else{var f=i(e);e.remove(),d(f)}}t||(a=document.head.appendChild(y()));try{u(()=>r(a),_|o)}finally{E&&(l(!0),d(s))}}export{C as h}; diff --git a/apps/dashboard/build/_app/immutable/chunks/De_e6MzK.js.br b/apps/dashboard/build/_app/immutable/chunks/De_e6MzK.js.br new file mode 100644 index 0000000000000000000000000000000000000000..2580f5c8ecf2832a624cebcdad3c442b6f2c2cb5 GIT binary patch literal 254 zcmV4P>;ryITUG} zXkgM)1&iG%)F2?qgess-P&Zmj)|Mo6U`S&}BK07Rl0A-OSHW_8hAere4%ycf)APDG4c7bF~55Sn`FOuq6|Mib^ E1p%~tUjP6A literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/De_e6MzK.js.gz b/apps/dashboard/build/_app/immutable/chunks/De_e6MzK.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..88b536c8d6d5724e2a07613342c585f4112d1b74 GIT binary patch literal 281 zcmV+!0p|W6iwFP!000026IIZ`PQx$^2H-nS(d{tVQdHoE6lD^WG1w7tpQ6Rtg3_c* z(?Qkt-Kn<|r%!U?-t%UgZO>1iVRtUS+oiN!IAj+?Q9%$12T!?ZRp`7I8+`hM%tKw zYouy0@zB*2a(N0I1dpG>ZKgak4IG@B3jh fFE '),Ie=b(''),qe=b(''),ze=b(''),Ce=b(''),Le=b(' '),Se=b(''),Te=b(''),Fe=b('
'),Me=b('
');function Ge(te,s){ge(s,!0);let k=H(s,"value",15),K=H(s,"placeholder",3,"Select…"),ne=H(s,"class",3,""),o=C(!1),A=C(void 0),h=C(void 0),i=C(-1),T="",U,x=xe(()=>s.options.find(e=>e.value===k()));function W(e){var t,n;k(e.value),(t=s.onChange)==null||t.call(s,e.value),I(),(n=a(A))==null||n.focus()}function se(){a(o)?I():E()}function E(){u(o,!0),u(i,Math.max(0,s.options.findIndex(e=>e.value===k())),!0),requestAnimationFrame(()=>{var e,t;(t=(e=a(h))==null?void 0:e.querySelectorAll('[role="option"]')[a(i)])==null||t.scrollIntoView({block:"nearest"})})}function I(){u(o,!1),u(i,-1)}function le(e){if(e.key==="ArrowDown"||e.key==="Enter"||e.key===" ")e.preventDefault(),a(o)?X(1):E();else if(e.key==="ArrowUp")e.preventDefault(),a(o)?X(-1):E();else if(e.key==="Escape")I();else if(e.key==="Home"&&a(o))e.preventDefault(),u(i,0);else if(e.key==="End"&&a(o))e.preventDefault(),u(i,s.options.length-1);else if(a(o)&&e.key==="Enter"&&a(i)>=0)e.preventDefault(),W(s.options[a(i)]);else if(e.key.length===1&&/\S/.test(e.key)){a(o)||E(),clearTimeout(U),T+=e.key.toLowerCase(),U=setTimeout(()=>T="",600);const t=s.options.findIndex(n=>n.label.toLowerCase().startsWith(T));t>=0&&u(i,t,!0)}}function X(e){const t=s.options.length;u(i,(a(i)+e+t)%t),requestAnimationFrame(()=>{var n,l;(l=(n=a(h))==null?void 0:n.querySelectorAll('[role="option"]')[a(i)])==null||l.scrollIntoView({block:"nearest"})})}ke(()=>{if(!a(o))return;function e(t){var n,l;!((n=a(A))!=null&&n.contains(t.target))&&!((l=a(h))!=null&&l.contains(t.target))&&I()}return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)});var q=Me(),Y=c(q);{var re=e=>{var t=Ee(),n=c(t,!0);v(t),g(()=>L(n,s.label)),f(e,t)};p(Y,e=>{s.label&&e(re)})}var m=_(Y,2);let B;var G=c(m);{var oe=e=>{var t=Ie(),n=c(t);S(n,{get name(){return s.icon},size:15}),v(t),f(e,t)};p(G,e=>{s.icon&&e(oe)})}var z=_(G,2);let J;var N=c(z);{var de=e=>{var t=qe();g(()=>ae(t,`background:${a(x).color??""}`)),f(e,t)};p(N,e=>{var t;(t=a(x))!=null&&t.color&&e(de)})}var ie=_(N);v(z);var F=_(z,2);let O;var ve=c(F);S(ve,{name:"chevron",size:14}),v(F),v(m),ee(m,e=>u(A,e),()=>a(A));var ce=_(m,2);{var ue=e=>{var t=Fe();Ae(t,23,()=>s.options,n=>n.value,(n,l,P)=>{var y=Te();let Q;var R=c(y);{var fe=r=>{var d=ze(),w=c(d);S(w,{get name(){return a(l).icon},size:15}),v(d),f(r,d)};p(R,r=>{a(l).icon&&r(fe)})}var Z=_(R,2);{var be=r=>{var d=Ce();g(()=>ae(d,`background:${a(l).color??""}`)),f(r,d)};p(Z,r=>{a(l).color&&r(be)})}var M=_(Z,2),_e=c(M,!0);v(M);var $=_(M,2);{var me=r=>{var d=Le(),w=c(d,!0);v(d),g(()=>L(w,a(l).badge)),f(r,d)};p($,r=>{a(l).badge!==void 0&&r(me)})}var pe=_($,2);{var ye=r=>{var d=Se(),w=c(d);S(w,{name:"sparkle",size:12}),v(d),f(r,d)};p(pe,r=>{a(l).value===k()&&r(ye)})}v(y),g(()=>{j(y,"aria-selected",a(l).value===k()),Q=D(y,1,"dd-option svelte-1fd3ybn",null,Q,{"dd-active":a(P)===a(i),"dd-selected":a(l).value===k()}),L(_e,a(l).label)}),De("mouseenter",y,()=>u(i,a(P),!0)),V("click",y,()=>W(a(l))),f(n,y)}),v(t),ee(t,n=>u(h,n),()=>a(h)),g(()=>j(t,"aria-label",s.label??K())),f(e,t)};p(ce,e=>{a(o)&&e(ue)})}v(q),g(()=>{D(q,1,`dd ${ne()??""}`,"svelte-1fd3ybn"),B=D(m,1,"dd-trigger svelte-1fd3ybn",null,B,{"dd-open":a(o)}),j(m,"aria-expanded",a(o)),J=D(z,1,"dd-value svelte-1fd3ybn",null,J,{"dd-placeholder":!a(x)}),L(ie,` ${(a(x)?a(x).label:K())??""}`),O=D(F,1,"dd-chevron svelte-1fd3ybn",null,O,{"dd-chevron-open":a(o)})}),V("click",m,se),V("keydown",m,le),f(te,q),he()}we(["click","keydown"]);export{Ge as D}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DnDQzBs4.js.br b/apps/dashboard/build/_app/immutable/chunks/DnDQzBs4.js.br new file mode 100644 index 0000000000000000000000000000000000000000..f301287250cdf2e5b19489dafb94d950ec15019c GIT binary patch literal 1688 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 s=function(e){return Promise.all(e.map(r=>Promise.resolve(r).then(l=>({status:"fulfilled",value:l}),l=>({status:"rejected",reason:l}))))};const t=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),v=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));h=s(u.map(e=>{if(e=w(e,d),e in E)return;E[e]=!0;const r=e.endsWith(".css"),l=r?'[rel="stylesheet"]':"";if(!!d)for(let i=t.length-1;i>=0;i--){const c=t[i];if(c.href===e&&(!r||c.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${e}"]${l}`))return;const n=document.createElement("link");if(n.rel=r?"stylesheet":y,r||(n.as="script"),n.crossOrigin="",n.href=e,v&&n.setAttribute("nonce",v),document.head.appendChild(n),r)return new Promise((i,c)=>{n.addEventListener("load",i),n.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${e}`)))})}))}function m(s){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=s,window.dispatchEvent(t),!t.defaultPrevented)throw s}return h.then(s=>{for(const t of s||[])t.status==="rejected"&&m(t.reason);return a().catch(m)})};export{g as _}; diff --git a/apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.br b/apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.br new file mode 100644 index 0000000000000000000000000000000000000000..8835f5a3eb8f48c117f41153e7b8fdfb9e1db3fd GIT binary patch literal 623 zcmV-#0+9V1@dN;z1$HdF4H>0Eg+F{eZIZ{>Ue+>YSjx5Pvi+7RxSuVVh+9E!|7H3S zgqA*`{Hh?e(^ooEf7`oCh}LSX4{$ti&T)N>q@{XRYxz!u>0DC-l9~PeDs0`TpMatK zLUjb(zr^^iXXJuZ8J>Pxiqc^i1` z%fNcA&ckF1)U1?^-)}Vf6MwOiWv)Y3R=mz3Wun=)IT%EAR z0@Vg*XdEXKJlha@y+9N_q{bE)Vmw2h?flcD;gr~@+^PeG-o^uc7B6U6B|(X_5foB)&z6)9;yMRy=syBb4=|%MFITqrt=axA{QBgAFN5VHIkX= zpeuBFW5Rsop}>vd<5WT+vCs?Rnr-wq{@Dej=IG-~^ZKNYWmag2z2@6S(B8FmkeWwT z^s08a$cHDB8V9}cI^|T6srs>IermM$9*D@eZa)8Dqn%hAjD0cE7gd6v<{F|GpK%X& JWtmmi(H|00JyHMw literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.gz b/apps/dashboard/build/_app/immutable/chunks/Dp1pzeXC.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..3bdf4379e96e6ed060a5089c36ce19dc7f9d8b05 GIT binary patch literal 730 zcmV<00ww()iwFP!000026LnL;j@vd6z4t32}aF@`g5-n=)Xy^Bb$lD59;Ep!2_R}~c(S@%w(@s8C(@gV^A z!4U@+^6|I#Q>vdmPa3^eb zn>jPS*27D)d$F>XLD8y?1-bh_V&DZf;Fy&=Hbhj|$1SaUTN`U34RThthpipC_#z{~ zU!XB31W?htoRNNGsV6~DR$lilI4n+pdkgt*{Q3I3I{l(rVALA-H|4^==Ka${xITeR zus$%_0;)q7dv36F0N z$$3d5UM<810O|4VmeOq3YE|(%jg);d5*Ozlek{#SZc6j;z=s)JOFWokF45C&NGV~x zW~*?!=_13+FBj_v(aBmLe>s-L1;B z+{7Y0e$HZh6^UPZQZcd9!E}k4a0$f6_-imH<0PdiFcAQ8Uawsdzu}2EbMZo<0aX>M z>yp;*8e=QwxCs2SBU;v&F(Wij2B!X1wLhoY_a-7ZNGmj7qRDK&euNNwpn|1h%`)OX z2iWsRr#@LA=*e=+|6FY^vnSqdt6&4lLs<-$dKn_C1u?hY{;<#wi%vT(f z6nWPcKE&4~-fo8@$6~(RyhAUyyI!}c|9rr_T#yvwh0g6+n@26--_8ddPDDlW=UD#m MAL7Qxx$*=60M7+#b^rhX literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DqfV0sZu.js b/apps/dashboard/build/_app/immutable/chunks/DqfV0sZu.js new file mode 100644 index 0000000..17d97b6 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/DqfV0sZu.js @@ -0,0 +1 @@ +import{A as F,i as le,ah as ne,w as m,G as y,J as oe,ai as ue,g as W,aj as te,ak as ve,al as Z,F as z,I as b,C as ce,am as de,an as $,m as _e,ao as T,N as q,ap as pe,P as he,ac as ge,n as Ee,aq as K,ar as Ae,as as Te,_ as Ne,at as j,au as me,K as fe,M as ie,av as B,aw as se,ax as Ie,ay as Se,az as Ce,L as we,D as Me,aA as ke,aB as Le,aC as xe,aD as He,aE as Re,aF as De}from"./CGq8RnJq.js";function Ue(e,a){return a}function Oe(e,a,n){for(var u=[],t=a.length,o,l=a.length,_=0;_{if(o){if(o.pending.delete(E),o.done.add(E),o.pending.size===0){var v=e.outrogroups;G(K(o.done)),v.delete(o),v.size===0&&(e.outrogroups=null)}}else l-=1},!1)}if(l===0){var s=u.length===0&&n!==null;if(s){var c=n,f=c.parentNode;Ce(f),f.append(c),e.items.clear()}G(a,!s)}else o={pending:new Set(a),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(o)}function G(e,a=!0){for(var n=0;n{var i=n();return Ee(i)?i:i==null?[]:K(i)}),v,d=!0;function I(){r.fallback=f,be(r,v,l,a,u),f!==null&&(v.length===0?(f.f&T)===0?fe(f):(f.f^=T,R(f,null,l)):ie(f,()=>{f=null}))}var w=le(()=>{v=W(E);var i=v.length;let M=!1;if(m){var k=te(l)===ve;k!==(i===0)&&(l=Z(),y(l),z(!1),M=!0)}for(var h=new Set,S=_e,L=he(),p=0;po(l)):(f=q(()=>o(ee??(ee=F()))),f.f|=T)),i>h.size&&pe(),m&&i>0&&y(Z()),!d)if(L){for(const[D,O]of _)h.has(D)||S.skip_effect(O.e);S.oncommit(I),S.ondiscard(()=>{})}else I();M&&z(!0),W(E)}),r={effect:w,items:_,outrogroups:null,fallback:f};d=!1,m&&(l=b)}function H(e){for(;e!==null&&(e.f&Ie)===0;)e=e.next;return e}function be(e,a,n,u,t){var g,D,O,U,Y,P,V,X,J;var o=(u&Se)!==0,l=a.length,_=e.items,s=H(e.effect.first),c,f=null,E,v=[],d=[],I,w,r,i;if(o)for(i=0;i0){var x=(u&ne)!==0&&l===0?n:null;if(o){for(i=0;i{var A,Q;if(E!==void 0)for(r of E)(Q=(A=r.nodes)==null?void 0:A.a)==null||Q.apply()})}function Fe(e,a,n,u,t,o,l,_){var s=(l&Ae)!==0?(l&Te)===0?Ne(n,!1,!1):j(n):null,c=(l&me)!==0?j(t):null;return{v:s,i:c,e:q(()=>(o(a,s??n,c??t,_),()=>{e.delete(u)}))}}function R(e,a,n){if(e.nodes)for(var u=e.nodes.start,t=e.nodes.end,o=a&&(a.f&T)===0?a.nodes.start:n;u!==null;){var l=Me(u);if(o.before(u),u===t)return;u=l}}function N(e,a,n){a===null?e.effect.first=n:a.next=n,n===null?e.effect.last=a:n.prev=a}const ye=Symbol("is custom element"),ze=Symbol("is html"),Be=He?"link":"LINK";function Pe(e){if(m){var a=!1,n=()=>{if(!a){if(a=!0,e.hasAttribute("value")){var u=e.value;re(e,"value",null),e.value=u}if(e.hasAttribute("checked")){var t=e.checked;re(e,"checked",null),e.checked=t}}};e.__on_r=n,se(n),Re()}}function re(e,a,n,u){var t=qe(e);m&&(t[a]=e.getAttribute(a),a==="src"||a==="srcset"||a==="href"&&e.nodeName===Be)||t[a]!==(t[a]=n)&&(a==="loading"&&(e[De]=n),n==null?e.removeAttribute(a):typeof n!="string"&&Ge(e).includes(a)?e[a]=n:e.setAttribute(a,n))}function qe(e){return e.__attributes??(e.__attributes={[ye]:e.nodeName.includes("-"),[ze]:e.namespaceURI===ke})}var ae=new Map;function Ge(e){var a=e.getAttribute("is")||e.nodeName,n=ae.get(a);if(n)return n;ae.set(a,n=[]);for(var u,t=e,o=Element.prototype;o!==t;){u=xe(t);for(var l in u)u[l].set&&n.push(l);t=Le(t)}return n}export{Ye as e,Ue as i,Pe as r,re as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/DqfV0sZu.js.br b/apps/dashboard/build/_app/immutable/chunks/DqfV0sZu.js.br new file mode 100644 index 0000000000000000000000000000000000000000..f4127583a1deaaff3c0c2f547c9ab6e73bd08fad GIT binary patch literal 2216 zcmV;Z2v_$T{}TX=!nWD-5=Jg--DDV&dxRvjmYG^nx@6Gkf=UA^J4~}QXWyD=WnA<8 zQpPXmPj&B}Wix3~D$I!oQ%XHf_mCx9AfAkh@o)b(Rq5Tg(iW}(SP9FbpuXul$#N^N zre#E3@M(`wKR4c;z171P4wXURGYXKUb~E^*dcmTlV(#y5 zHpuLco{v0tC&02uWHROHxEaZ(Wph0A?rCqJceURcHPAn=UDp*lg|@L`d|W863e+=&hv{E9T>{$~y?B$oL$k0fK7=-tUU(ZT7=fUJ-bQgK;?$ux~^07?`9$0(3`T7QS2y7#|tf}O9|cP z#XIQ=O;sg~o3-&=N3PJplBuFP^}Pe9vz&?t!SMnYB0*UkGjdH z>sn_%WZV{#D-`~keIr^&r+je@zIxOEC*r)*?Ogc3&6SwoSa~{Sp?VZ66~&JBG2hKD z#kUgQ(5qM%8AwcVpJH8RMdqb!c41Vb)~Cnfh?Ro3Sb&+**3@6A>`#_=ULmsPSt-rF zynN0UXsHmbGL0UatxA}@wsqoulJ#5wwW7M|>{r^pRgq|RQdpS57AqF?=BAbDcAKX{ zkz4%-vOlikG0XtwFgGi01@$>IV-`s>lD4%T0`NAjtD6_J;FOdl3-1Hf!6z&6cVQGD3EKJ>r2U-O^af3d`S%d&wN4bU{-XH|sGrZ+=8PL2IOmpo4xv(FM1uXR z`inRMZuLs()OS%@Md$pZ6Xeu&how8w>5CZyK541KLlD}vvL>x79SX{y_*pQjBR=JQ zK*cEr#)(f9L1NYR3Nu35BAG1i^S3Y+WJ+$JUb6zB;da~prw6$dCF!(AI;QkY3j{IL zcP*cwg~pk4KLZT8Lo(FDbcf=ND@4{vWFTP;Zz^68Xj;}X#jRr9;vcv6$wLIZsNDJ{ zl5H(!uewMpg+Y3H$IVEXBRe-NIq-F0Mz*w&tn4KRt^+f&rm1A^(y0qd+SPr_3876- zl=_I26*xr(qppDH-rBvH=q;0`DcPZoT+ya6v)Z$d-IOq`KR@jxJ7)m23+Yyzia%DC zZ^pGcYY{1oc7BzLoVzu!oDmv@rm2^ zAyTO|(U$%^hr%Re7Yw1Ok^)EtS=*7QO!kXp&V}q3odCPQwqd<8GU2&&2&$x zFx74`GV_e4(R$UlB6Af>YjExPx~)~-BFaL;M(%6xv%_Ks%s%x}Wx)!)Z_He`(o49Y zd8-a@QRgBHk;LHCPRzw`*k(WNu6JX%&)iN;wkdHU+TJivHH-cOjr=1W88uo7>eUfG zUh^C^-(N?D=g#`NxvY+=a*Eo;8Ro`;PH`k}&6Cm2sdOPuKo4~uoz`+gZCzS4b>8$H z52bVPQ>5QjBc@9lff<2b@`kevT@@o>k54G*2?-P*?Eexa9>AbjcWBYc2-5W3nQjBj zP@AyA{Et3ov_g12~1jtG%r~N zleSntac z8hAVaWj224ZZ4MF_cx>4ygQPw#GkWoc%q-II6Btb#P+?!U=ge2z6th?NN+Z0+$?aaT-}7l`&pG7Q7u>vlq&RQ0v^n18_4ovRU2P!% literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/DqfV0sZu.js.gz b/apps/dashboard/build/_app/immutable/chunks/DqfV0sZu.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..3d68da1297d23fa3abd426c8575b012f19f3af7d GIT binary patch literal 2398 zcmV-k38D5MiwFP!000026OC9~bK5!&e&1i=c+P0ZDXLB0cBHT#*Gbc~PMYS@)7Inl zC=z9>mMKLS$El` z84XYHfrbQ^HD4)VPUGL;{h+bHg(VSdBw`}I!#f&&!Z{81FrvZ7)fEu|5{ihwK!4Bh zJ0ap0E@^lGFQqY+a7E(+*L@=967;@PoOmGOBX}8&L!8L<2@+;BUgAVS#1HUFZHk1C zG=>r`XpE3yO~hO9w5>T#Y=}5V;)#eGBz_Vxk}#(6QNjt07r3DPwnXAB5o08@jTu`Oft4clS?s~LLodmmTF!sAc463n2AGoc3il#SFiXsmPPMWc$3-GjU+n-#>Ja$ z6taZtUptj5h}7H;Byu7Hhr|vNC2cPV%vZyaM?a+y;*f7igSC)$QWjY<&yq6D-81%) znVp=&x;ZW(y4h%1Y;TWHWgPRWl5sA3@oRBZ!NC!)P_4L?lZ&#p%N(H&gx=>OTW(l< zp&%5#oqCy6#bpvmcO+TJA+)`ev}ZmCX-9=z<+dM7FJrtqV;&sj+z3y^wzkqy@(}}H zFpmQn(|lL3ulr!|(iX$VxprK_+vuH9@WjDk8$E>qQpd8k%T*YsM-1^qO)>rzaY)(X z;#(bkD4~GFI8ECf3k16seBq^#3+7qqee}=ao^zxdi`C$XB@+F>9lv(UXc5H$d&fAh zR+d#t#$DnMwE#F3bICMTXfhHCmuq02N*3`!Rl<(dvDkPglKTin7m3qh+Fqag_A(7@T~ zTyf*OM-exwi@y=VuCbsI;ZjCih=U_?(#kk#DG;kMNnA^JiE6P(BM>!<#dpTx30L7K zLwLdkg|ccwxo83pHv-GpSS-+ykYWhZ*sa(wPiH=@+Ng`Nj-I%oB zzXa-vhlK$Zv5iG`7-f0E!G|W#VNF*_KtJd32pL4Kz8y&Kh$_i3mRf@GIbI^s6dnaS z6e9AH0pcUKC9rIlvS=ea5s0x&V?O6~nOG-L&^vVIwpY(QKcCnu>E&fcac8FpkJA@r zG{ao@MG?BU{;M*3g}L@T-{Ge>>>+ygc=+(;HJEW2nrm=3L2jwdBwrIOGgFl^G&|?l zSlYBp6?X|*I%XFl9E3W=PVN%lE)cPo7a9(oZ**Cj$u*jzM_e|9K7jm*11-|17m3gu zyPcPanh-KWWN^WO^tzyg4n@`pHlf03#$EJF5vfvEjfroyi6|n}u1F}RcY=NTLrgz) zVtR)qCyX|~i|EdknAh0>`HVv8BW2F9EMI3dGSEU(u#bb9XlivZIh?}64aHI$t<&HJ zt0m5kacK6vKALLqED$`4<6Ze*5QeVVda{_pl7iLp1baMwqi}$%+$D$JXn`=UBVn9< zV~8;JUxF{$&1x1I+oSJn`&G3}k$NQ=4gnP0x9o9C0`dVtl zy7{i`5S6){`4|%aMUv%M>+Q767eo;(@){P@MATaForJwiUz>eK3%$2Cf{^svG~E85 zdD!V0sk0n5ohAFW-*@hC_pR~n5NpOB%m3;>$;^Z1m==u&Z7KP252d=2WTd;#>tr#9 zr;Rf-qIS+lujd^unwGnsXt(Qy>rDfYHh4q@MsI43HdOHIKF_jrr#w(j(-J4f!=_-4 zOu=Md1iKO`7R=vf?^P#zzqA$E{q>v=f_?q-IbS>He6V#5sPxMv1?&|nEFyWQr5wU% z()aW?em&*vvtYwN6q{j3%xCIl<0ll}^~>07&YG75i>;w?+yKd2a|;hHB~$qD zptpzfgDGzAcb~XdHTMrznCbeW-maY-BF6{mnD&Mx_?*B;fdb610wtQpba#D}oVwFi z$Lr=nr}M;^*}m=S89Oh$tiWep^NqQI4*(Bw?6n=T*JXB;TkddIKN2oTyvBxoFHs16 zLWz3|Zme-j5qEUEY;^N}UxI{kJaZ!{P`|L~d(3l`xt6@jRaID`X0t@iGIS!Q1>OYLm~)*dWIGf$=Rc6iF14A(#G9fxYgSo?e|~OAY}%WzMJB_(Wf?48dMhf4ZzVR*bQ(Q*^r?#8JeogFJgUTfs+yA% zNlO&&I@+0BC2QFg?-cmD!R*BcdOyc$z4eTAwj<@oC1Mo022x9LB)um(+YxV_6xOCT ze}s^yyoS>}yt@-(J9&~*r?smU*ME&Ln*21YxRR%yFYm6;(Y&Rs%xlq;%?r8(m)5$5 z)eAQxKKtmiRvP-m(>!P#C7G&|s;68}8%eg|C1UESh8$%y=JBb4KPF02B;-6d!7vn< zx24!ftT?+JaW7K6l9!WsN+(*DGM7fo-9n6swQ7V`a-;v&`zGlxCkc0YjNnR-8Dx6Q QEB7D&0cSKyRR9zK0GG{-Jpcdz literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js b/apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js deleted file mode 100644 index 18d1867..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js +++ /dev/null @@ -1 +0,0 @@ -import{aB as a,az as t,w as u,v as o}from"./CpWkWWOo.js";function c(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function l(e){t===null&&c(),u&&t.l!==null?i(t).m.push(e):a(()=>{const n=o(e);if(typeof n=="function")return n})}function f(e){t===null&&c(),l(()=>()=>o(e))}function i(e){var n=e.l;return n.u??(n.u={a:[],b:[],m:[]})}export{f as a,l as o}; diff --git a/apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js.br b/apps/dashboard/build/_app/immutable/chunks/GG5zm9kr.js.br deleted file mode 100644 index 62d783214cfa5a333ac42b2c5f97dab1cec0f7e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmV<90381tcmV*6)JFAI7G1izcbULHm9WEobr~IbY9Yb2uRxyG4xZBmRDOR$oHHiwygAC89x}7|af5x#T3IQqa>Rf%5-A7(LY70xfIFGR0J0raj0bbHg3PR+YglIRP{Co zLki+}B;+8+oK74>r#TnuWi}WRv7nHH=$++s9RV#1N>z7s zB_dFcfraIv&;IZ8E3#anJ!DGfUlXFvH0RR9g;C|!) diff --git a/apps/dashboard/build/_app/immutable/chunks/HFGAk8XQ.js b/apps/dashboard/build/_app/immutable/chunks/HFGAk8XQ.js new file mode 100644 index 0000000..2ba0161 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/HFGAk8XQ.js @@ -0,0 +1 @@ +import{t as b}from"./uCQU803Y.js";import{w as c}from"./CGq8RnJq.js";function A(i,u={},r,f){for(var a in r){var o=r[a];u[a]!==o&&(r[a]==null?i.style.removeProperty(a):i.style.setProperty(a,o,f))}}function P(i,u,r,f){var a=i.__style;if(c||a!==u){var o=b(u,f);(!c||o!==i.getAttribute("style"))&&(o==null?i.removeAttribute("style"):i.style.cssText=o),i.__style=u}else f&&(Array.isArray(f)?(A(i,r==null?void 0:r[0],f[0]),A(i,r==null?void 0:r[1],f[1],"important")):A(i,r,f));return f}export{P as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/HFGAk8XQ.js.br b/apps/dashboard/build/_app/immutable/chunks/HFGAk8XQ.js.br new file mode 100644 index 0000000000000000000000000000000000000000..47551e299772e5add6f7af9d9fa018f993702d3e GIT binary patch literal 279 zcmV+y0qFi4?EwIc)K2$O474?;pHbf*B?WZ-%K$BNafpSZG;mH{qRg$LZF>ft8|n6& zyOPh!Z*kfgwU45aPTct3*z(F&|H(hOZrsbwF4Gz6(Ul7n_(a#3a{a7zcxH_JDMF~; z>HAkNs)yg@%q&@WU>8@f9qBS&PQ|^AC8A>{1ARKtxeM~4PL~QP? z)T8Pl{{Ixf1}TK?fkJ&gpZryX9;|=Ar9^ZmB{tqLCm&rhW`Hb+Y_uye394B3j;BjuvbT4Cbs(Q+OR1tuM d7lrS9!4X|}qI!5NE${#EM)Ym4-^BZWkpK&UmCpbG literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/HFGAk8XQ.js.gz b/apps/dashboard/build/_app/immutable/chunks/HFGAk8XQ.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..7a5306807de7cfeb7311baad4adb16f08af89a89 GIT binary patch literal 320 zcmV-G0l)qqiwFP!000026K#>rY6Bq@h4+05GmD@gHl>@8K|;u)&{bO6MF}C8sTRvb zldGl)lX>^5)0r;X&GqM;>v!<#{lS87JQ5D=S_O7ru-mYFdYw-0-`J-sO5HiWlB4P! z%ZKCi**qSzLj_ZLZ4FvrO#^RQ3RICsS->X&NFZ$xkS6Udhqc(0A(j#6c09)E%()45 zJ=e_nOD!45y*Lx*wjJ=Rgzwmy%Qf3>b7QF$uC7-RnV}D| z!y!6LJc@#if@UAmFT4l63tr+PHx`7%jCKgvMf>X-5?0Q=$g}5`(1FfFD{Ci_icc*7 z#D!^>SFFe!r%!_)z{%=&G?~GAvY{##LjP6ok{V0V%|;j>bI!6geMt$@2QWyr@|{d=0,e(r=>({...r,connected:!0,error:null}))},n.onmessage=r=>{try{const l=JSON.parse(r.data);e(f=>{if(l.type==="Heartbeat")return{...f,lastHeartbeat:l};const $=[l,...f.events].slice(0,b);return{...f,events:$}})}catch(l){console.warn("[vestige] Failed to parse WebSocket message:",l)}},n.onclose=()=>{e(r=>({...r,connected:!1})),p(c)},n.onerror=()=>{e(r=>({...r,error:"WebSocket connection failed"}))}}catch(r){e(l=>({...l,error:String(r)}))}}function p(s){a&&clearTimeout(a);const c=Math.min(1e3*2**d,3e4);d++,a=setTimeout(()=>m(s),c)}function v(){a&&clearTimeout(a),n==null||n.close(),n=null,o({connected:!1,events:[],lastHeartbeat:null,error:null})}function h(){e(s=>({...s,events:[]}))}function w(s){e(c=>{const r=[s,...c.events].slice(0,b);return{...c,events:r}})}return{subscribe:t,connect:m,disconnect:v,clearEvents:h,injectEvent:w}}const u=H(),g=i(u,t=>t.connected),k=i(u,t=>t.events);i(u,t=>t.lastHeartbeat);const M=i(u,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.memory_count)??0}),E=i(u,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.avg_retention)??0}),T=i(u,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.suppressed_count)??0}),W=i(u,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.uptime_secs)??0});function _(t){if(!Number.isFinite(t)||t<0)return"—";const o=Math.floor(t/86400),e=Math.floor(t%86400/3600),n=Math.floor(t%3600/60),a=Math.floor(t%60);return o>0?e>0?`${o}d ${e}h`:`${o}d`:e>0?n>0?`${e}h ${n}m`:`${e}h`:n>0?a>0?`${n}m ${a}s`:`${n}m`:`${a}s`}export{E as a,k as e,_ as f,g as i,M as m,T as s,W as u,u as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js.br b/apps/dashboard/build/_app/immutable/chunks/MAY1QfFZ.js.br deleted file mode 100644 index 04a9af2449a93e253120fe0c8149b372b3657ba9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 819 zcmV-31I+vz3J3rkhq2>jDdbNMjjqj9{rB@ylm$3Anoc%VbdFcnq$Sv!%89hq9>oHr z>=c(BaRURmSY_5{Q)<_- z^TgvL?A#9S^ zf^&%e$se&sIlKo8fzh~kI)a4?cr=dN0g0RxLBYF?e3M+H2KsL# zf6L{@CSU=r-{#pIPl%ao!Os~zWzeK)RA&NCgJDLR$ zhMFl?=^O%e7OnzFh$dvIPfH2*Hsx z$F?>zl94p_hOwXzu}`>9QZzqyoVI&W$kma~kG^xhb0o=Pt&OX)h}%e#Z4gtxFuLf` z!EbPV`KP*?(9gD)3azY*=IlI<(?zL-lUhYr2v@bCvgO=_0r=s2Nx+;>vwj+*xJYBd#*ls z;8ZRUQmoEuywNg?;zUscJbRux?f{=Kb_esR7Ej>lr#~h)*qP@_F$LRbZ$JVQMYYmv zPz+%1C5=G!+r0u z7u<;z%9}>%9O#xCg?jfJuud-FA-d!;hb(eBs?$A?6ScJ^J(6SJlq+&=p<(JjSUU3< zlQj}8KQ(3l3}~3_9kALH!dNZpgnEJEHhY6BKzSS7&FIt_sg}s#+HpUW>oAo3-8+#3 zH@C6?T{^^Z+Rf=TcPm;*h0b7jdVYGEks*A*Y4-j-;mm^TLPE-6z=^a=B#w<7-7|s7(?Q$d<8-e$ zVy0`{br(==xQR4@wg!ZNA@k_V0Sw(S&&(S=!1,n=E?N(s):s),n),u;if(v){var O=C in r||G in r;u=((o=L(r,a))==null?void 0:o.set)??(O&&a in r?e=>r[a]=e:void 0)}var _,I=!1;v?[_,I]=Z(()=>r[a]):_=r[a],_===void 0&&s!==void 0&&(_=g(),u&&(f&&D(),u(_)));var i;if(f?i=()=>{var e=r[a];return e===void 0?g():(S=!0,e)}:i=()=>{var e=r[a];return e!==void 0&&(n=void 0),e===void 0?n:e},f&&(t&T)===0)return i;if(u){var R=r.$$legacy;return(function(e,l){return arguments.length>0?((!f||!l||R||I)&&u(l?i():e),e):i()})}var c=!1,d=((t&w)!==0?z:$)(()=>(c=!1,i()));v&&P(d);var m=h;return(function(e,l){if(arguments.length>0){const A=l?P(d):f&&v?B(e):e;return b(d,A),c=!0,n!==void 0&&(n=A),e}return Y&&c||(m.f&x)!==0?d.v:P(d)})}export{H as p}; diff --git a/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.br b/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.br deleted file mode 100644 index e9fafc8605294b59e6662e68a676fd2e75b4a8ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vVFxdR{^g-w|&{v}>s)>?@qNygnp@aZoN(Z2zfM|vsfidPd8eg$rhw)!uf z+g&z5bDvFSTd5xiwU^71&vP!{8_2%U0sx~fA}ONuXnv6-ncy?GhD1gneH?A`b~XJ4 z2^@C*>Eq*%ImU@TYwS_5=7%mSzL>aRL#2-d7YiaRiE$u-OPYzv=p4Z^-GY=Idd!`p z3Ht5saO^#w^wVi&)82L~I^t)$DsivIVI}>RgXu9k*R zL>9>fF(6ZeE&J>&R8b7n=iCK>odp@ogI=bu@`WYBm0vO%q-Eva;MVY}Y1HjlLj%~J zLrF?@8fm>~J*$>|@V7wSf>n@@!Kp?!U++JU-b&4>>37eIi3NF$`Xg!Uid1r3MWi~9>iX@MQa|9IpncsYwu7lr;J!e=7K0V3Z z{)_E@F;S2(jpj)U1*&+`$!pusg3RA=QL&b6XH}-`n)0@bCs(;3>-=*zgJ~7f6n;rG zUj2RCKQlTu+RMdaL89&^s&MQ0=AVxEkvqZSFW(V3+sR9i-+uw-fkgs0`9DMjEju;0 O?~Kro$6sXx=UM^=I0Cc) diff --git a/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.gz b/apps/dashboard/build/_app/immutable/chunks/V6gjw5Ec.js.gz deleted file mode 100644 index 60f21a11ad2e61abf554a6aa97630a52c05b216f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yj$iwFP!000026LphYPuoBch2Q%tY!t0#q){4P`e19Y!bO0}O$3Ahp~yIE z$HiHLZzRP2?`YP6Qnh{YcO=i8Jw7X^i|4$k)=y4YIwzC~_US@!MTy{oBEc@r1&_24 z+)^%>)4pIyFM?BQ1ZVUrxTdAxg;s)BdZV$30qqJ_G!g94iQuq{i+r&){J!^m^K^4_ zo)3SOTYlO{v&Y|kPW(8kefgaLU6CQ8AC-EA^_5S&4YUWsIoYCnyk=}$Q4Jts9z(YA+{ ze$4aTb(B$dN8F~4z)D;E+oGTUD=|J;NaUVXg_WBv@#B@r>>~8x_a6hHv z2fhP|BXj6YSx8f6?l+Vw-QOCfoB&d-6vRsHi-aj6+8$EL9S5oXI-6cwH^0zTT^L7y zng$7=2eu21o%jEZuSc7WMEYW6Jl#>O6jbU8nR$epRU4-6OT6S_I2dF)38U4<8a}QR zG-bHnEQLi{throw TypeError(i)};var F=(i,e,s)=>e in i?D(i,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[e]=s;var w=(i,e,s)=>F(i,typeof e!="symbol"?e+"":e,s),M=(i,e,s)=>e.has(i)||g("Cannot "+s);var t=(i,e,s)=>(M(i,e,"read from private field"),s?s.call(i):e.get(i)),l=(i,e,s)=>e.has(i)?g("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,s),y=(i,e,s,a)=>(M(i,e,"write to private field"),a?a.call(i,s):e.set(i,s),s);import{m as A,K as C,L as k,M as I,A as x,N as B,w as K,I as L,O as N,P as O}from"./CGq8RnJq.js";var r,n,h,u,p,_,v;class j{constructor(e,s=!0){w(this,"anchor");l(this,r,new Map);l(this,n,new Map);l(this,h,new Map);l(this,u,new Set);l(this,p,!0);l(this,_,()=>{var e=A;if(t(this,r).has(e)){var s=t(this,r).get(e),a=t(this,n).get(s);if(a)C(a),t(this,u).delete(s);else{var c=t(this,h).get(s);c&&(t(this,n).set(s,c.effect),t(this,h).delete(s),c.fragment.lastChild.remove(),this.anchor.before(c.fragment),a=c.effect)}for(const[f,o]of t(this,r)){if(t(this,r).delete(f),f===e)break;const d=t(this,h).get(o);d&&(k(d.effect),t(this,h).delete(o))}for(const[f,o]of t(this,n)){if(f===s||t(this,u).has(f))continue;const d=()=>{if(Array.from(t(this,r).values()).includes(f)){var b=document.createDocumentFragment();N(o,b),b.append(x()),t(this,h).set(f,{effect:o,fragment:b})}else k(o);t(this,u).delete(f),t(this,n).delete(f)};t(this,p)||!a?(t(this,u).add(f),I(o,d,!1)):d()}}});l(this,v,e=>{t(this,r).delete(e);const s=Array.from(t(this,r).values());for(const[a,c]of t(this,h))s.includes(a)||(k(c.effect),t(this,h).delete(a))});this.anchor=e,y(this,p,s)}ensure(e,s){var a=A,c=O();if(s&&!t(this,n).has(e)&&!t(this,h).has(e))if(c){var f=document.createDocumentFragment(),o=x();f.append(o),t(this,h).set(e,{effect:B(()=>s(o)),fragment:f})}else t(this,n).set(e,B(()=>s(this.anchor)));if(t(this,r).set(a,e),c){for(const[d,m]of t(this,n))d===e?a.unskip_effect(m):a.skip_effect(m);for(const[d,m]of t(this,h))d===e?a.unskip_effect(m.effect):a.skip_effect(m.effect);a.oncommit(t(this,_)),a.ondiscard(t(this,v))}else K&&(this.anchor=L),t(this,_).call(this)}}r=new WeakMap,n=new WeakMap,h=new WeakMap,u=new WeakMap,p=new WeakMap,_=new WeakMap,v=new WeakMap;export{j as B}; diff --git a/apps/dashboard/build/_app/immutable/chunks/W8qDZJD6.js.br b/apps/dashboard/build/_app/immutable/chunks/W8qDZJD6.js.br new file mode 100644 index 0000000000000000000000000000000000000000..360c5547639d4a865e27be7eed0781eec2583944 GIT binary patch literal 878 zcmV-!1Cjh2ya)h{!nWD-lah0bOPrw4i$D03tzgfXE-s*oGPN(I2pCE3@W|l;}ZA~tMku1q2f-|ZIXVZ%{@C+&aL(0n z)KcF@*#SGE;Cpn{urWEKdBPVXvn6fy5=Qw|1uMp++FcwCY6TlpZPv{l|83|F!7%3$ z*rsEbs}NZ2gXT&?7`MMJHZoPLG=&1{DkwVonBf`;!}!#F2jK*&ux`=OArJk2qdjgY z4O5~Z3repsMr@E3a%#ZUQy(!L4I0qzTdN@OqPpKKa6I;fX2F9AjyhXKMrDX8zDz93 z03Ttc%TN7ASADLV{-l+@(_Oz-tH0=^zv`jC>lu2u31qw zY1Q&d)TI0_o|UQB&{YK#S=3_L#^Z?CXt`yW3gGNYcF=}f#~-a*>snb`K7&yAidul~ zL@~E{>B?znt7L`byjw8zomGS-?z%73$J4S0YcPNLM$GIZWVwVS&>L+|b3WCnfi? z8V28PVJQ=C|71leo6V4klsmC+7o@jjPA*TGLwaPFjt)>+uq;nGOBD4YQ#{2LE&xpe z6V9eV2#9kXPm{?UIOnK{SLt?DY4rrpyS$h3a^NxT4yTk#i#J!$f%^y)mQng2a?wfB zt(ZE!nCQwyvT&&ID}xqWxX+1S@yxl>IRbC0)9+utKfy^VYLiidyL*66Hp0WgN{b>z zwFfd0ElL`(2ML*8^dY~;1?G$#LG)H2ohcmF4AsZL4ADyk?HEP8$e>HY9^mgf?d?^B z!y@7wuts+{8A2GbMy1FZa@K(-by(J&v=~|=KwbNQBlW3Kj8kJd$6OB|C7GBY^(!Ex z1WPg7OO-O~>c_0sQKwNai&CC9C*1=jBQ$`kN(R}cxxTo03*uxc?v?{g;f^mQq#jVh z&2_5&G1^cXM=pDNKCj!A;->ix09th4S~3jz+06&=vJg^}HR;KOXwnIPb1`?8MWsBA E0EpM9k^lez literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/W8qDZJD6.js.gz b/apps/dashboard/build/_app/immutable/chunks/W8qDZJD6.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..d8536fd3bd22a8eecbf493e97eae5c686819c0df GIT binary patch literal 998 zcmV(H7`ou`p<9 z6e*TSElJri9R2ql($>QXvONgY3^}jw8xA)@2bami>IqXDWtf)|zi8EG-_-ir*6B{ccCUSM+Bou*w6RC862XD^-OH{1Aq7cLMGvIYfmpl-$e9 zBMUEtl*$I-2gAKjJDy{A{x{SpvLM&04jNrU|>XzgTor@73!c?8fjC=K*8@F7*ty|V`=ay?Ycgr)}yX7-% z-EsrhZn=dAx7@=Qw>)$XwJ`ei;?M8D|1JOe9zB`RqpU$f0WCDJgiV}Q!kFM`PYqzK zZc|IWL$xHck9@ynwkQpRgh8Qn$m8muAP=|=?nEu?fjDRypeVht1V-@f zU51#P$7Rm!F&g(oBIkb7B%|K3js$71k_VMTGG~Hc&Ram$A{n zaft3&B!hFU#V&G9I7!@(62mx;N|{z|hTey#VwGenZ9R%9 zm1FVpC|(`0Vm!WQ3RWCek!Tu}8G9yAlWH7UIZZZS=3GIK@_g0t&T$^B9UN~uA|IT{ ziLUDpHZ-kfV!=i`Hv`D%n$pQ&_8aH(jPb7PhGyOXx|#f%Fyu#=O!9Mh;*kvj>4c4f zb2DNmC^KUAC+#VSS*m#K!31H~-#$aANYheBx{2vo5Xm{D$piB@$ef+cMqmz?a8wn; zy`-b*!94$e5ABhLVtQvEa&`mkhqfqXk<{n zBg7fhrwyOETSaram1bQw%R@S>=5rC9D&qH?6z@9exq9uZ*T*8F2T0X*Y5T;NRKL?^ zrAdX(di91Mk+^XqYeMnu0O^t+-Wn%RgX+YMVE2~MU@AA~h${@VE_OC literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js b/apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js deleted file mode 100644 index 0d246ca..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js +++ /dev/null @@ -1 +0,0 @@ -import{t as A}from"./BKuqSeVd.js";import{N as o}from"./CpWkWWOo.js";function p(i,N,f,b,u,r){var l=i.__className;if(o||l!==f||l===void 0){var t=A(f,b,r);(!o||t!==i.getAttribute("class"))&&(t==null?i.removeAttribute("class"):N?i.className=t:i.setAttribute("class",t)),i.__className=f}else if(r&&u!==r)for(var a in r){var g=!!r[a];(u==null||g!==!!u[a])&&i.classList.toggle(a,g)}return r}export{p as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js.br b/apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js.br deleted file mode 100644 index d857e71bb2f3213c29542554df9428544e29f4fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmV5n8$2N7&xb{iRW{vYAzj}@O+@stDgT3E?w0u zoJ6oeyp%b4WTY>h|1!fIjEZFS*}e@oV*&+Dv4}8?ciwI{i-b;o$K27T+E;sOg_g#4 z=c8lXZtC9(=gXt2@+soC0!T0Is^w7U*yjvW3W8H8m_Io0oS`tfD+6e?c#fE_Uf0>= zZp^Z$071Y@nA?t#F+OWKfTp#@ul(dYj;F0wLH!h_XL}GQBt!i5LrT-r<05z=h%CU5 jY5tJM@39m$!Y+9b diff --git a/apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js.gz b/apps/dashboard/build/_app/immutable/chunks/aVbAZ-t7.js.gz deleted file mode 100644 index 03ebef4b2ea9e62f268f1ffa03cb21b93c6ad23b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmV+#0p{throw TypeError(t)};var B=(t,e,n)=>e.has(t)||x("Cannot "+n);var a=(t,e,n)=>(B(t,e,"read from private field"),n?n.call(t):e.get(t)),c=(t,e,n)=>e.has(t)?x("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{o as I}from"./GG5zm9kr.js";import{s as u,g as f,h as d}from"./CpWkWWOo.js";import{w as G}from"./BeMFXnHE.js";new URL("sveltekit-internal://");function ae(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function oe(t){return t.split("%25").map(decodeURI).join("%25")}function ie(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function le({href:t}){return t.split("#")[0]}function W(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let s=r.length;for(;s;)e=e*33^r[--s]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;new TextDecoder;function X(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&b.delete(U(t)),z(t,e));const b=new Map;function ce(t,e){const n=U(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){r.remove();let{body:s,...l}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&b.set(n,{body:s,init:l,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(s=X(s)),Promise.resolve(new Response(s,l))}return window.fetch(t,e)}function ue(t,e,n){if(b.size>0){const r=U(t,n),s=b.get(r);if(s){if(performance.now()o)}function s(o){n=!1,e.set(o)}function l(o){let i;return e.subscribe(h=>{(i===void 0||n&&h!==i)&&o(i=h)})}return{notify:r,set:s,subscribe:l}}const D={v:()=>{}};function Ae(){const{set:t,subscribe:e}=G(!1);let n;async function r(){clearTimeout(n);try{const s=await fetch(`${M}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!s.ok)return!1;const o=(await s.json()).version!==F;return o&&(t(!0),D.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:e,check:r}}function Q(t,e,n){return t.origin!==Y||!t.pathname.startsWith(e)?!0:n?t.pathname!==location.pathname:!1}function Re(t){}const H=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...H];const Z=new Set([...H]);[...Z];let E,O,T;const ee=I.toString().includes("$$")||/function \w+\(\) \{\}/.test(I.toString());var _,w,m,p,v,y,k,A,P,R,V,S,j;ee?(E={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},O={current:null},T={current:!1}):(E=new(P=class{constructor(){c(this,_,u({}));c(this,w,u(null));c(this,m,u(null));c(this,p,u({}));c(this,v,u({id:null}));c(this,y,u({}));c(this,k,u(-1));c(this,A,u(new URL("https://example.com")))}get data(){return f(a(this,_))}set data(e){d(a(this,_),e)}get form(){return f(a(this,w))}set form(e){d(a(this,w),e)}get error(){return f(a(this,m))}set error(e){d(a(this,m),e)}get params(){return f(a(this,p))}set params(e){d(a(this,p),e)}get route(){return f(a(this,v))}set route(e){d(a(this,v),e)}get state(){return f(a(this,y))}set state(e){d(a(this,y),e)}get status(){return f(a(this,k))}set status(e){d(a(this,k),e)}get url(){return f(a(this,A))}set url(e){d(a(this,A),e)}},_=new WeakMap,w=new WeakMap,m=new WeakMap,p=new WeakMap,v=new WeakMap,y=new WeakMap,k=new WeakMap,A=new WeakMap,P),O=new(V=class{constructor(){c(this,R,u(null))}get current(){return f(a(this,R))}set current(e){d(a(this,R),e)}},R=new WeakMap,V),T=new(j=class{constructor(){c(this,S,u(!1))}get current(){return f(a(this,S))}set current(e){d(a(this,S),e)}},S=new WeakMap,j),D.v=()=>T.current=!0);function Ue(t){Object.assign(E,t)}export{be as H,_e as N,ge as P,he as S,ye as a,J as b,Ae as c,le as d,ie as e,pe as f,ve as g,ae as h,Q as i,N as j,oe as k,fe as l,ue as m,O as n,Y as o,E as p,ce as q,we as r,me as s,de as t,ke as u,Ue as v,Re as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.br b/apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.br deleted file mode 100644 index 0f34e32c395bdaf0cc1e5c0baf94689773f6ffed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2611 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 Vu3Iu4DfI=nLzi5$u~h}x{sA?a9DM)) diff --git a/apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.gz b/apps/dashboard/build/_app/immutable/chunks/g4XF1_b9.js.gz deleted file mode 100644 index e6c5fda155aeb4cc6ab84492bfb32fbfaf87992b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2949 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.map(i=>d[i]); +var x=Object.defineProperty;var C=(m,t,e)=>t in m?x(m,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):m[t]=e;var i=(m,t,e)=>C(m,typeof t!="symbol"?t+"":t,e);import{_ as d}from"./Dp1pzeXC.js";import{V as p,M as w,a as T}from"./Bo4EDkTQ.js";const f=new p(0,0,0),R=30,l=44;function S(){return typeof navigator<"u"&&"gpu"in navigator}class V{constructor(t){i(this,"container");i(this,"deps");i(this,"renderer");i(this,"scene");i(this,"camera");i(this,"storm");i(this,"post",null);i(this,"booted",!1);i(this,"target",new p(0,0,0));i(this,"flythrough",0);i(this,"prevCamPos",new p);i(this,"camVel",new p);this.container=t}get cameraRef(){return this.camera}async boot(){if(this.booted)return;if(!S())throw new Error("WebGPU not supported");const t=await d(()=>import("./CkiUhdKe.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]),import.meta.url),e=await d(()=>import("./Cqk6fVmx.js"),__vite__mapDeps([20,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]),import.meta.url),s=await d(()=>import("./yYBa834L.js"),__vite__mapDeps([21,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]),import.meta.url),{SemanticComputeStorm:a}=await d(async()=>{const{SemanticComputeStorm:n}=await import("./C2CaJvaA.js");return{SemanticComputeStorm:n}},__vite__mapDeps([22,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]),import.meta.url);if(this.deps={WebGPURenderer:t.WebGPURenderer,PostProcessing:t.PostProcessing,StormCtor:a,tsl:e,bloomMod:s},!t.WebGPURenderer||!t.Scene||!t.PerspectiveCamera||!t.Color)throw new Error("[cinema] three/webgpu is missing expected exports");const h=Math.max(1,this.container.clientWidth),c=Math.max(1,this.container.clientHeight);this.scene=new t.Scene,this.scene.background=new t.Color(131594),this.camera=new t.PerspectiveCamera(60,h/c,.1,2e3),this.camera.position.set(0,18,60);const o=new this.deps.WebGPURenderer({antialias:!0,alpha:!1});o.setPixelRatio(Math.min(window.devicePixelRatio,2)),o.setSize(h,c),await o.init(),this.container.appendChild(o.domElement),this.renderer=o,this.storm=new this.deps.StormCtor(o,this.scene,{});try{const{pass:n,mrt:b,output:g,emissive:_}=this.deps.tsl,r=n(this.scene,this.camera);if(typeof(r==null?void 0:r.setMRT)!="function"||typeof(r==null?void 0:r.getTextureNode)!="function")throw new Error("three/tsl pass() API mismatch — setMRT/getTextureNode missing");r.setMRT(b({output:g,emissive:_}));const M=r.getTextureNode("output"),P=r.getTextureNode("emissive"),v=this.deps.bloomMod.bloom(P,.6,.65,.35),u=new this.deps.PostProcessing(o);u.outputNode=M.add(v),this.post=u}catch(n){console.warn("[cinema] selective bloom unavailable, rendering without MRT:",n),this.post=null}this.booted=!0}transitionTo(t,e,s="II",a=99){this.booted&&this.storm.transitionTo(t,f,s,a)}dreamBeat(){this.booted&&this.storm.dreamBeat()}setFlythrough(t){this.flythrough=w.clamp(t,0,1),this.booted&&this.storm.setStreak(t)}setStreak(t){this.booted&&this.storm.setStreak(t)}setCameraVel(t){this.booted&&this.storm.setCameraVel(t)}async render(t){if(!this.booted)return;this.camVel.copy(this.camera.position).sub(this.prevCamPos).divideScalar(Math.max(t,.001)),this.prevCamPos.copy(this.camera.position);const e=w.lerp(R,6,this.flythrough),s=this.camera.position.length();if(sl||!Number.isFinite(s)){const n=Math.min(l,Math.max(e,s||l));s>.001?this.camera.position.setLength(n):this.camera.position.set(0,12,n)}this.camera.lookAt(f);const a=this.camVel.clone().applyMatrix3(new T().setFromMatrix4(this.camera.matrixWorldInverse)).negate();this.storm.setCameraVel(a);const h=this.camera.position.length(),c=this.camera.fov*Math.PI/180,o=Math.tan(c/2)*h*.82;this.storm.setContainRadius(o),await this.storm.update(t),this.post?await this.post.renderAsync():await this.renderer.renderAsync(this.scene,this.camera)}resize(){if(!this.booted)return;const t=Math.max(1,this.container.clientWidth),e=Math.max(1,this.container.clientHeight);this.camera.aspect=t/e,this.camera.updateProjectionMatrix(),this.renderer.setSize(t,e)}dispose(){var t,e,s,a,h;this.booted&&((t=this.storm)==null||t.dispose(),(s=(e=this.renderer)==null?void 0:e.dispose)==null||s.call(e),(h=(a=this.renderer)==null?void 0:a.domElement)!=null&&h.parentNode&&this.renderer.domElement.parentNode.removeChild(this.renderer.domElement),this.booted=!1)}}export{V as CinemaSandbox,S as isWebGPUSupported}; diff --git a/apps/dashboard/build/_app/immutable/chunks/kcrnba3G.js.br b/apps/dashboard/build/_app/immutable/chunks/kcrnba3G.js.br new file mode 100644 index 0000000000000000000000000000000000000000..f7214fafe47dc8f9b249a8afb372863b30559acb GIT binary patch literal 1839 zcmV+~2hjK%;SvCh!?^L9a1xD&SafeX`}c3UC@_lQsi38Lz3P@#ZfqYe!?ab`%hYf!WFwW+#bSVI+ zxNB8jWYGbu3Rfe5U0=2_t#dztorS1p>8m-DZ!_=vdu*A$zcW*|sdO4FW*V>%6AhW_ zEf)7T(C~pBp0OqIe})vVX=199zNU((aC7*E)C@4#iM_t_4d8c9`&Al_f`vabo;pFufFckKIyE*HXfCK+PFSjw?DI2*UxUB zMifT*!S?vd9;IbpH{+Yt;CA-u@yWq(>t$WxuyeRx2S+av)xx>YY{f-Cw`|Ase`!); zCUtmlS-w3Uzp2u&<>!I0NUAy$X=t^YH$L8SOJ|%6tFDf%7SiO6Dx1S2yj7&9B8HL4a6td6` zd|sp>Lq>AG=-;!sm+egrV{@7#Kj2tb*zh5k>UxJ$#;7f#+LJHM<%-|oMSt3txuGK;83lSJyrAaiP%fPRd>|OV6;oH@KQa4 z2p_i7XnO#s_*Y5|0z^i~JxCF(n|N#N-@F%zXX>8ZJbHP-t+G)ei@brgQS}-U0AfJ2 z@dEC3J_)n?Lh$b6R62SFMkZz!+|V7pqIc*$`hY&7Pv|rH@+kuNsZ>U6R9&SK3SSek z^ZL%O7@qg+Y@Xq~-p_tRtae^Gzo*RPY~$(nLib498k%L~u;?L%L_IFts`K5Wy_AiFdq?50JL zb&4c(OB#OGE*8c(GBW zrpfC240OlvKxJkM0R+#Ny5-g+v1QT@CEGxrha6fa>^KCmMHV4jl(fwu=z{g_H3>f< zI}RE0kFa6*+=@{J)cdNlDm5eI0Y?mep~pr`vMD@O1?{1Bbuh=f0h3zeL?3<)ttT{s zR20e)k7v&WtU>5 zbMTO7Hqs0U)()t&7FVIYn*B@s^;bFK&fSCDYcZ?ai&`ukr1fEJ_J+Emi4|;z4){)J z-oP&HkM9AwJGeQ+byUz{zzK!#(ehc51F#tx!w13z=DAQMj5%*d$1eiH(SwBK#)9(b zZXp@xrJ{ZMqaSXtY`kq@z_L0>>XKZGlT3j^My&#daF*$gGD!ks)BsH(s_P*W&ADs~ zW_$OPj-HRQwlo3|Dr#3Uu4>0P+?l(IL<|Yw!$b51cYb&b9ofk}5g% z4HL*fkmHPWcAu-~65HwQ731Gow&dol70f<<6DmSX@k8tC!E!d@cwyqvpE>tb#AkH;7+(j-fu&$+?*?sAwGdJ d@6(!pIFeT|_2odfnBu*0#5x^KPoUSZj9>JKnjHWD literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/kcrnba3G.js.gz b/apps/dashboard/build/_app/immutable/chunks/kcrnba3G.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..30ad5723cbd8cd33f7eb94e15afbf42d9a215ec9 GIT binary patch literal 2022 zcmV*~GM1c>2G87wI8S(<dD7KG}9xl(zb?@!t-bMKSv0UHm zJsy2~f3#ci|DX>q`MZzh`sjcr&E&^rb>4aW{5?Dc4Ew{A#b+{#xz7 zJ>7P=Q|UXp-u-;C!>84{y>oJY{aD%C^Y+J|__1H@e|_nkwXMqjcW>SvJnVg`)`zEu zJBfAtrC6I=R7$4gmLo0W!ga$>L5qwmM`K(FsG z#`Y_2LIe@FU%9vZ4tIYW)7W^jKM%e$N0}}g@{payB4V+ccJ*El;!G4_a8wyQG=kSp z8DYl4Bw#Te_^h+hB#sD&e3Vq{Nz7IGJ*IxbIxNMV;8xw)ER)OUa(nt~8Zj|6)P~)V z(_kR{#%uMTMx&!Sx;%(PtY-HHm4=%RV-e{1L{{{Jed+0|l^oZaBO<5z--J;8@3Q2t z=VRB&5`AcgY+^*HN#F;Q3%lJUzP-KO9VVfpxCo6t!n2sEBo2+j!jO*nNQdP2M$*{a zY>c9$0dA?tspCWRjO$sZB2FBjA%$lgDUVCi0J5Us9@yr&LZu$I!;YJ|AX+&D?gJvv+~I z0inU#xQU^49mg^FxpBh=Z_lobP$)wtk}rze6aQLL{MwnNj(uq^D_y1a5$ z^M@sW&4V?F!`(bV)*Vh)T(R|UU9nr{sxD`HmZ#!HQOg}=E)ob-j{>B1n3Oym!TutF zWH$HUPlpmE{SG4oUx?sTxE-02jb(Yy&p_&Hn8?1)SS%xebm&99tgJF>PxvDKxoU15 zsLp`iK^ex3ZB5t!P|e`d2zX|T!Jf1%=IRf)v#d(Wvrnn=prt$^i!2tq>G+(5>V~_@ z!^HVZ#&?X5JXJtOhIbh{7ndS)vN@p6!w66*bPJB`TF7c!JNw(1)Uc%3|H&C>w@JJ$ zhnNs})?PSb0&;SV{U)?v07MA*ZnM0u$OV=`UJ3!4>71iJr&6~)>PH^!Y*;Do3N7r6 zKQaG;f^3xgf`@3rLsv{d*qA$P&Ollilk8BR|6s@?4kmft3zNfif$*{qX%vAKJ&*e? z5~eGHW1j`!)q=5XDYhsasgrBzGF8GMQS&yLf&D6;7F8KRbL)g8h*f7mM53U&IwQie zL>aTreQM7ILe`Sl4pB{5&Cz+iWK9*twyj&$>#^Xj(d@+f=BF2z7^Z=;6*r!r*D*s+ zxnxgJ_w18!*}|cpb3IRSFwM|cLD)DrJJER_P~~{Wpa1*A$aQZmN-ax4Lrh^E8lc%K z58yIePVHseP$NG8SbMf&vlIf`8OG2zMs zRR;K`0~0`9hYna;YvlGuGgUDS^HRGM2H#g@wYc8D{5=kgd z-I&qfkWoD{tUFobNg;x7s@X=5XBppo+_5KsN;HT-13*A=lNB;`g({Hy05a10V)l1W zO6$!NlxBgaA1(pZba<6C*c@67{k~M89XvT zT6bM?(0OP6rAMJ5*Y}5F{33JL*~yl**CZnMqoN^lwp#dw_rlz3Ei28N&jodPA^~WM z4pn1HB3E0hYDn<9#-!IpXFAA-zfNtpY*`B&Yg$PfGpQTp+Da%N0Dp5@VgGDeDV#{N zA;VT%3&s^*08G|TY=}V~Y_!ywt7flXys672ct>AIzm+p^B$RmF1%Ni8>ye&eT zG^^7DNgFYHK@nbTpRDAr&TGScA2B%X*@*t~G_8*s8`;+8re{VJ__Kynz*u$5IeU!> zwgUmPSvI|_<6i(_8{V*KnopzotG}1^sy+?ffp{W)P2w`2&-&#{Fzx>Kf07%*0^$+? E04^@~cmMzZ literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js b/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js deleted file mode 100644 index d2ed67a..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js +++ /dev/null @@ -1 +0,0 @@ -import{Z as k,_ as f,$ as m,v as t,X as _,N as b,a0 as i}from"./CpWkWWOo.js";function E(e,a,v=a){var c=new WeakSet;k(e,"input",async r=>{var l=r?e.defaultValue:e.value;if(l=o(e)?u(l):l,v(l),f!==null&&c.add(f),await m(),l!==(l=a())){var h=e.selectionStart,d=e.selectionEnd,n=e.value.length;if(e.value=l??"",d!==null){var s=e.value.length;h===d&&d===n&&s>n?(e.selectionStart=s,e.selectionEnd=s):(e.selectionStart=h,e.selectionEnd=Math.min(d,s))}}}),(b&&e.defaultValue!==e.value||t(a)==null&&e.value)&&(v(o(e)?u(e.value):e.value),f!==null&&c.add(f)),_(()=>{var r=a();if(e===document.activeElement){var l=i??f;if(c.has(l))return}o(e)&&r===u(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function S(e,a,v=a){k(e,"change",c=>{var r=c?e.defaultChecked:e.checked;v(r)}),(b&&e.defaultChecked!==e.checked||t(a)==null)&&v(e.checked),_(()=>{var c=a();e.checked=!!c})}function o(e){var a=e.type;return a==="number"||a==="range"}function u(e){return e===""?null:+e}export{S as a,E as b}; diff --git a/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.br b/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.br deleted file mode 100644 index a7a27e79b8c1b1903e94f439c049a9724adff328..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSU<=K}!5RMqxhrdW6oB%UdAjElamy{On}iqrc1Uruj;eWZH_cxGel)*KdK zFN=Bs1r~US*=Bq67!8b~<E#ng*siq0bC8JiuLE2XP=5iKIB4;d$!TU9Gjt|JCHE5 zMZ+_iKCyPuaQl~ezvP557h;#3q@8rdNwmy>YMByIXt)@;6m_}1GGfuB(9a2uMO-QM zP&6>7IdY@1dElmsTEQy+q)wt=a$P{O));xqC!hjI*ioxV6hxATR2SopvWs;=X zM#GW<5K9c#*hHzyY-an`mfG{7(Q|W7A|WUp&A%X;0q`MrI24VP8v%yJ6+@KGj{IQG zW+U^7<^-9QLy@l z;N=ck7W{?A3|@`{0$gI29288f#?0Z+LZ^W<(;r!~U68^u_Ro!KXT`DD1U2#$b9xiF H(J?;(aX;Z2 diff --git a/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.gz b/apps/dashboard/build/_app/immutable/chunks/sZcqyNBA.js.gz deleted file mode 100644 index 3b8812f3dc2b31acac9b6c2b350f9ce38a0dafd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i_RiwFP!000026K#`CkK7;(hVT6qNmLkxSHfGLVBljRcg^k)C4 zuK}QBtONkdSpQ@T{umW{c^?&evHDk4KdQc>uT|SvUdmpGd7g#jd&cgGrEtz@nmk8w z2DCT@V|?Tb$g}TE`F}u#+;J|J2Dv~pA_-M?dT7adh1xeGtqp~pSUTAhMHQ4<)!1_* zgd;yVJBQGWIRLoEpC(fN?HC@-O7xU5mO94LOCj!B6=RovxX=$Vi}^Blo9o=gDbqFD z7s{l*z94MP*? G0{{R&cJa{w diff --git a/apps/dashboard/build/_app/immutable/chunks/uCQU803Y.js b/apps/dashboard/build/_app/immutable/chunks/uCQU803Y.js new file mode 100644 index 0000000..df21741 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/uCQU803Y.js @@ -0,0 +1,2 @@ +import{w as A}from"./CGq8RnJq.js";function O(r){var t,i,f="";if(typeof r=="string"||typeof r=="number")f+=r;else if(typeof r=="object")if(Array.isArray(r)){var u=r.length;for(t=0;t=0;){var l=o+g;(o===0||h.includes(f[o-1]))&&(l===f.length||h.includes(f[l]))?f=(o===0?"":f.substring(0,o))+f.substring(l+1):o=l}}return f===""?null:f}function j(r,t=!1){var i=t?" !important;":";",f="";for(var u of Object.keys(r)){var g=r[u];g!=null&&g!==""&&(f+=" "+u+": "+g+i)}return f}function p(r){return r[0]!=="-"||r[1]!=="-"?r.toLowerCase():r}function z(r,t){if(t){var i="",f,u;if(Array.isArray(t)?(f=t[0],u=t[1]):f=t,r){r=String(r).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var g=!1,o=0,l=!1,c=[];f&&c.push(...Object.keys(f).map(p)),u&&c.push(...Object.keys(u).map(p));var a=0,s=-1;const v=r.length;for(var n=0;nmE4E*W?rT8knwMa@MfE)|zBzre>ADGs-Cb=LySamQkFyg4as zz_kqJxwzQXh^oORS6B`q%wU-o>w-*(q;;sh)&@zq*i6=NfUINz_{@CXr1 zye`xKC}Nl@xK|Xfq%E+JrIdnC>U`Hz^IOXj1>EdP*~QFn=;<{UIxj2rqOHbjEp4=Q z=1crm0?#7)o2&>yU@bGFvn7#}IPhZ-Jm5BzTXK7c}{+)7(P42 zRU7c^n$^itvWyHwtbscCnq@k#XVT7AK#joWD-tmjnKi)VAi8NpEhIH(ks2({p_U?@oB7zhf4Q9`X)>gF8_{THMQXruskij7@ zIf2nOKa!l*`ogf}K_sZZF2(pqdXp4x8QiiD=MI z=>-G98Ev9zxb`aJV?brGSvhBa=rr2-QL$V~$zp$skRGm{;|4H=+ET=za!O|vJKob{ z#Ap2=VIWm_T77!bmI+d3l$zSpTd~ZD2um34plRV-ADfHn;ua%^5{Nka6ow}FE#=FT z*iD9OGMoOPlrzDV%rLmv+s)eIfgQ?=PTPb5aL0Hma48p2Kv@2!B4WqmjVZ&>?2*It zpZL#55=B)FkVvo7&wP#&=(edTmS$7 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/uCQU803Y.js.gz b/apps/dashboard/build/_app/immutable/chunks/uCQU803Y.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..f2d730f2cac5b87bc79def033b83fd08b25386a4 GIT binary patch literal 1046 zcmV+x1nK)9iwFP!000026LnS1ZreBzK5w5w;=v&;S+Q>msazoqHVZ6*1lSyHqm>ns zVOAC${6Yb#Y7-C|8%wv~=-DpO7oDkR7DdBYTsG^NN`En9(hyAxaM)+?qF;R)3R zYYdBC`>53;t1Tj6z0kUP&ZG%n2-U}ORA&uqg?%Wv(%8~zVL!UUCJE7VyBv+Mq(BUo zgusUTUqVrYND5y`x)9X6%1E}61~0jM4_Ihsoo*xE9TL979y*1r=``e>I$CMr z)~vN=ASZ#81X5TZ&mfZLWIe(6*xC1jKKUx|&2I};-obIM%MzikR;{to1D$7C_9go5 z!$L3kkN+0ig}eIm>gvn#*tts_==T-n6z*$X)4&}$LWvG-^vozPc>?4Tn_J@HL-H;H z7Po;x_Ah%jSQ6hcId@BP^m4g7w3zSfLWU~@b$e5)podsdp2_x}eY@q@rHYV0z}gdR zs7i!KP&(c19spK1?w%RU=V~(R``p0c5aWNC1`s8uy}!?qXU461apI{Dm7H3dWJYpD zo30yr0e%RTzC!s)Umkr8X*}yWN@`0K#WGA!)!G6|S)hI@ep$6a(}HTKTp{AnhS3NX z;CIkQ;u4g@MeqHL!s%!O?>C4J640<_wfA?vS7vJ(B z6A&~{UGZiFEh#}07D9mFE!<9W*rq-@z3YpoNv7GRscLr7H28dB#*6dCI2)G>zcAx- zks?Gg0IxAA`rPB0S3uhMMNQ`*)6uBTHqJa?5b|lgILX%425$&S-LEk2fC<-EaI>M4 zSC$EZ|E(ys~ls>vjcy$HY%&tUIm8yXZKIY107CNpAa zdzi0qRzTNVSZv|YJD51&LRL2vbaEo|Dm6nNh|e{yk27-vx?IKK!qEuo5-NF3U%R)5 zHp*V5*9qXeuA-28sCm~NXUML_7;^}I6MTWO%9cN=eD$g-3ZVnDo2< Q*sl2S6E&%MT?7aK0Lp9u@&Et; literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/yYBa834L.js b/apps/dashboard/build/_app/immutable/chunks/yYBa834L.js new file mode 100644 index 0000000..56249e4 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/yYBa834L.js @@ -0,0 +1 @@ +import{TempNode as O,NodeUpdateType as D,RendererUtils as F,QuadMesh as L,NodeMaterial as f}from"./CkiUhdKe.js";import{nodeObject as P,uniform as g,texture as c,passTexture as W,Fn as B,luminance as j,smoothstep as q,mix as H,vec4 as m,uniformArray as M,float as b,uv as E,Loop as Q,int as U,add as X}from"./Cqk6fVmx.js";import{R as N,H as w,b as x,V as _}from"./Bo4EDkTQ.js";const p=new L,Y=new x,G=new x(1,0),I=new x(0,1);let z;class J extends O{static get type(){return"BloomNode"}constructor(r,t=1,i=0,s=0){super("vec4"),this.inputNode=r,this.strength=g(t),this.radius=g(i),this.threshold=g(s),this.smoothWidth=g(.01),this._renderTargetsHorizontal=[],this._renderTargetsVertical=[],this._nMips=5,this._renderTargetBright=new N(1,1,{depthBuffer:!1,type:w}),this._renderTargetBright.texture.name="UnrealBloomPass.bright",this._renderTargetBright.texture.generateMipmaps=!1;for(let e=0;e{const a=this.inputNode,l=j(a.rgb),d=q(this.threshold,this.threshold.add(this.smoothWidth),l);return H(m(0),a,d)});this._highPassFilterMaterial=this._highPassFilterMaterial||new f,this._highPassFilterMaterial.fragmentNode=t().context(r.getSharedContext()),this._highPassFilterMaterial.name="Bloom_highPass",this._highPassFilterMaterial.needsUpdate=!0;const i=[3,5,7,9,11];for(let a=0;a{const d=b(1.2).sub(a);return H(a,d,l)}).setLayout({name:"lerpBloomFactor",type:"float",inputs:[{name:"factor",type:"float"},{name:"radius",type:"float"}]}),u=B(()=>{const a=o(s.element(0),this.radius).mul(m(e.element(0),1)).mul(this._textureNodeBlur0),l=o(s.element(1),this.radius).mul(m(e.element(1),1)).mul(this._textureNodeBlur1),d=o(s.element(2),this.radius).mul(m(e.element(2),1)).mul(this._textureNodeBlur2),h=o(s.element(3),this.radius).mul(m(e.element(3),1)).mul(this._textureNodeBlur3),n=o(s.element(4),this.radius).mul(m(e.element(4),1)).mul(this._textureNodeBlur4);return a.add(l).add(d).add(h).add(n).mul(this.strength)});return this._compositeMaterial=this._compositeMaterial||new f,this._compositeMaterial.fragmentNode=u().context(r.getSharedContext()),this._compositeMaterial.name="Bloom_comp",this._compositeMaterial.needsUpdate=!0,this._textureOutput}dispose(){for(let r=0;rs.sample(n),d=B(()=>{const n=e.element(0).toVar(),T=l(a).rgb.mul(n).toVar();return Q({start:U(1),end:U(t),type:"int",condition:"<"},({i:V})=>{const R=b(V),v=e.element(V),y=u.mul(o).mul(R),A=l(a.add(y)).rgb,C=l(a.sub(y)).rgb;T.addAssign(X(A,C).mul(v)),n.addAssign(b(2).mul(v))}),m(T.div(n),1)}),h=new f;return h.fragmentNode=d().context(r.getSharedContext()),h.name="Bloom_separable",h.needsUpdate=!0,h.colorTexture=s,h.direction=u,h.invSize=o,h}}const k=(S,r,t,i)=>P(new J(P(S),r,t,i));export{k as bloom,J as default}; diff --git a/apps/dashboard/build/_app/immutable/chunks/yYBa834L.js.br b/apps/dashboard/build/_app/immutable/chunks/yYBa834L.js.br new file mode 100644 index 0000000000000000000000000000000000000000..8465f3f88d7f894a15ecab93234ec74fe0c6d6b3 GIT binary patch literal 1558 zcmV+x2I=`55ETH7!=}u=_~NwI8yS)$jgX}CXX*U=znqj4bmWI5c4Nn!L{Lxy_VKVA zzS7rKJ=LxKMt@v_SaO^CkOkQ(a`(>R+jQW^dUkq3(K#_8d$}g>HN&JMf)ob$0ayWR z0_nd5tcbEXwBN(xLOjtlGbJYaKmD^|yU&oEwNAOwfP!#3#)B<}JTz6qHCh*q^$xw3 zbsg(yOw^G@(aPYSbU%agRZ{+M{@81y4s|x1k?JSP7%kTD+B25GxE>HtlfZA?gNfU& z47+aG8SY-Qfm<}zOW*6XWJvrA0nPNE553cTeV(W6F=@T(UuEMFZ{l%HgJVWaf$y%G zw7lzW+S}Y+_c?ahdFUGXrnXggkt%C4n(N;*pZ*0^(+PWzrVr|$S)bfgzFIA`F{-vN zMpx%zi14pzjqTe<>xlb%&L_LGgOiJWgV*J7RoAffUCWP(gSOt_bf-Hu4H_=PW-%DN zp|jr*nsliri5(vZKmjzzIwxwhlT=L!pPGq)3@$imIS^ndB)L}%0_i5fv$82})9ny` zf{t?OUehC`O7pE%)?2fDa4vrpVsAiu8+uE-sCaxP5`D;RI6axawBsl`7Sx7pbKYf~ z1ULKumN&l#Q#35KIWzimX&)*36`25*X8@wFhj7CAiA(cO)r1EmP6(`QI<{jJS|ZxK z_D4XI@}b&!)rZlUv8?;kY$p{54G}n<8bbP1&0b#TSZ9$`V(bctl}%d>P4FG!R(_C zD!;{x8y3k49D#5UhZLX!Qi4iIRjP`Hv1i2XCAQQ?GLyTC-DIw zXxOL~o5rWXOAT3dm%9bHWW@}t}w6Is7t~Mc{dPdmx zf%hqr(6@$&>&3~=yq5ARR+@#QO=y~ct5XcE?Rsi{4rR_&|vq8lsiN+IXvYm>C5~SECp|%lZPc%$x zHla}s6;R>;gV+U%9DvBdKvQHOeSuXf$36ybV7gEJ57w0P9RS0tPdHl?OpMMP%je4m5FeFqP zw?ib%tlzhg74irDu?IKl`AaTb$BmeT0gal!oIEu_Kl3ldx+%YzF9piXY?|i9MXi^w zX!LrVh47KPSZC9PdnXdUb9)`d=~F41xGL&vLcQQ-#yGQySngtS7fkIm`AC+J7bKW$ zv(qS!*NBMG_WDG^R99w*fXU?9XGW%%0Em^lH|gDQ5NBVZW4EeaH`%3({5l+Z=HTVE IhBp1xf7gHo zB^I@1Bgwsm{P!Knj%(8-E1&a>2j_vH76FLA9C0Jr9lleqtspoGzKNrVw^dI-XYcCY# zeiE2JjK1@+v8*3SA;lz9shv!T;a8?mZr?GCghi44 z_);I}$NA&QNqW^h(4pmcPhQ*Ml8o$dMNaJSZ6UUo4PL%DAAWLT<4kJP%c`l)oSK+Uk*RnT zi$tM;AS!~16(mBIL_pIOt>L5jj!6A5`>j%B9kfDX?0<&Xl;xq+tm?JzK_b!WEpb zxhxMvuIcs?<~=2*v2lKT4^9loEaJI|_ln7ctDOe{u|C?loa2?UewBQ_WGScKu~eKT z&X*s-_5R2)dEMeuF1dng08>*2);_YlyGILEVK!taR(TzKP*3M z=~`DgD|nZefMpi)!ZQ08EGf7ZMZtz3!3K!74lnK;UIS&`bURWNsLfQ>JM5S_RpAZY z_u;nSX3eGKRGYsIB2 zR+cU%xt}iJVI6h=UnvdOpSy=OU8S=ltamnC8Hdg|jk6?ERU((cqIyvRox+h&(0PeW zR+6vo<+gST;-*{v#N5st|I^dFx!-9TCDK02vhX&!!{2pQ|7=OF-MPeCHn<9bevRL) z5sOMiUKdx-&^?4O{kNJj+V0{=Lcb&CtLX@ni2gwBcI}t$&4*SO{o1@?lHjmH$=4`F z(3&z5;rRmUR@}Jj7JvSwG{*Xt^q z64#E@EMA8Q=aDX7LG(etMyAs(vQ7RWPe~A*)#c8h+*zyKS&ib$6Sr(>N)CIPWlV7I zh*Nfk7qAF$i%tXLKOz2O;tz(GLoF#=2ApQDDXG2 zuZt04jU<5hLsHDKErfUMIx7sCSr_kk30Jvu^FFih4X^AFJ@?S^h|5a7b6PP^mhj9; zwOGC}epx(&*1h;O;WMOto^YEhHaQzF6zr!(0x8Rz>j5sw%R4s6_Ljn+Lt)UNFtBCU zRJhrpaI-@ptj8^dTOA6wIuydXY$+UcC>(Ss9MqY@9H1oF4N*D7w9mtu*RR-vKi>VS!mCsBl!4grzrN8y`$yU1~Lx~#vA4qD95NoMqz<%irkMBiyYM_^0$e<4S{C#C9)MS>A#SM zEX@-RnF$r!f*47g0OFhMgeedk(gaY^Uac;bWxcXU;!nu_pHXJ#*un(32R>}GcnxTH?y;8aso?b4Rhb zT~WfJUEkGOOeOk)cFFTn`U1Ql8%rYqpv3}!ZHk5v#S80{z|Ld$GhnhfVcf2)sI#)- zRt?p6qh}Y|B@?%rMyi2OcY3sdS@l$*8HwlRKd#<6MMne@iU{!GM;Gh2=p#D96%mJ! hHuiVjx%=s7Z6I&$XT&G0NX$I^>woMIbF&c@001-iTwwqJ literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/entry/app.DIsclQy8.js b/apps/dashboard/build/_app/immutable/entry/app.DIsclQy8.js new file mode 100644 index 0000000..4970360 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/entry/app.DIsclQy8.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.CcZXq7cA.js","../chunks/Bzak7iHL.js","../chunks/DAau0uzT.js","../chunks/CGq8RnJq.js","../chunks/Ccqjq5DS.js","../chunks/W8qDZJD6.js","../chunks/DqfV0sZu.js","../chunks/BbCqB9Us.js","../chunks/uCQU803Y.js","../chunks/DGM4cicq.js","../chunks/DV6OI5iy.js","../chunks/CbBCXwzm.js","../chunks/DJDK-KWF.js","../chunks/DY7cP31Q.js","../chunks/Ch9vNiEl.js","../chunks/BfiOPhbz.js","../chunks/HFGAk8XQ.js","../chunks/CcUbQ_Wl.js","../chunks/D35IQVqe.js","../chunks/CKbQrCJw.js","../assets/Icon.tTjeJXhC.css","../assets/0.CLR80qKm.css","../nodes/1.8UKMSR8s.js","../nodes/2.zvt29sR6.js","../nodes/3.C6cru0cW.js","../nodes/4.CIxbWFkr.js","../chunks/BMB5u1EX.js","../assets/cognitive-palette.BALpZUFZ.css","../chunks/D7ozXiSB.js","../nodes/5.bHY_C0IS.js","../chunks/De_e6MzK.js","../chunks/Cqe0su6e.js","../chunks/BeGBxCGK.js","../nodes/6.BAqyGpdp.js","../chunks/B9l3DI-J.js","../assets/reveal.Dmxpik8H.css","../assets/6.ksI6gQcB.css","../nodes/7.AFPOwdob.js","../chunks/DnDQzBs4.js","../assets/Dropdown.C2Z-7Phd.css","../assets/7.DQ_AfUnN.css","../nodes/8.BTNjDzh8.js","../nodes/9.h0jHlQck.js","../nodes/10.8yVvC2-0.js","../nodes/11.DTIAuaCd.js","../nodes/12.CuFt2FF9.js","../chunks/Bo4EDkTQ.js","../chunks/BKh9s_e0.js","../assets/ObservatoryStage.CKoSQgn0.css","../chunks/BzfFPM53.js","../chunks/Dp1pzeXC.js","../assets/12.BxoW8Jf1.css","../nodes/13.z1_JLKKx.js","../nodes/14.B4QyiRph.js","../nodes/15.-ohAmwvw.js","../nodes/16.Dp0Kyz4w.js","../nodes/17.DAadB7bO.js","../nodes/18.DdPknQfI.js","../nodes/19.DCcjdG9r.js","../nodes/20.Dqd6_QcY.js","../assets/20.Duj1vJUf.css","../nodes/21.CwMgmxy2.js","../nodes/22.CdolZyzx.js","../nodes/23.CWsheXid.js","../nodes/24.BbbXGX69.js","../nodes/25.CpxKI_0Q.js","../assets/25.DKhUrxcR.css"])))=>i.map(i=>d[i]); +var z=e=>{throw TypeError(e)};var J=(e,t,r)=>t.has(e)||z("Cannot "+r);var n=(e,t,r)=>(J(e,t,"read from private field"),r?r.call(e):t.get(e)),N=(e,t,r)=>t.has(e)?z("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Y=(e,t,r,_)=>(J(e,t,"write to private field"),_?_.call(e,r):t.set(e,r),r);import{_ as a}from"../chunks/Dp1pzeXC.js";import{w as K,ai as nt,i as mt,E as ut,aj as ct,al as dt,G as lt,F as Q,aG as pt,I as ft,s as S,ae as vt,g as f,aR as Et,a0 as ht,_ as gt,p as Pt,R as Rt,j as Ot,x as Tt,aH as R,X as At,a as v,b as yt,d as B,aS as y,c as It,r as Dt,f as U,u as L,aT as Lt,Y as Vt}from"../chunks/CGq8RnJq.js";import{h as bt,m as xt,u as wt,o as jt,s as kt}from"../chunks/DAau0uzT.js";import"../chunks/Bzak7iHL.js";import{i as j,b as V}from"../chunks/Ccqjq5DS.js";import{B as St}from"../chunks/W8qDZJD6.js";import{p as k}from"../chunks/DV6OI5iy.js";function b(e,t,r){var _;K&&(_=ft,nt());var i=new St(e);mt(()=>{var m=t()??null;if(K){var o=ct(_),s=o===pt,d=m!==null;if(s!==d){var x=dt();lt(x),i.anchor=x,Q(!1),i.ensure(m,m&&(O=>r(O,m))),Q(!0);return}}i.ensure(m,m&&(O=>r(O,m)))},ut)}function Ct(e){return class extends Ft{constructor(t){super({component:e,...t})}}}var E,c;class Ft{constructor(t){N(this,E);N(this,c);var m;var r=new Map,_=(o,s)=>{var d=gt(s,!1,!1);return r.set(o,d),d};const i=new Proxy({...t.props||{},$$events:{}},{get(o,s){return f(r.get(s)??_(s,Reflect.get(o,s)))},has(o,s){return s===vt?!0:(f(r.get(s)??_(s,Reflect.get(o,s))),Reflect.has(o,s))},set(o,s,d){return S(r.get(s)??_(s,d),d),Reflect.set(o,s,d)}});Y(this,c,(t.hydrate?bt:xt)(t.component,{target:t.target,anchor:t.anchor,props:i,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError})),(!((m=t==null?void 0:t.props)!=null&&m.$$host)||t.sync===!1)&&Et(),Y(this,E,i.$$events);for(const o of Object.keys(n(this,c)))o==="$set"||o==="$destroy"||o==="$on"||ht(this,o,{get(){return n(this,c)[o]},set(s){n(this,c)[o]=s},enumerable:!0});n(this,c).$set=o=>{Object.assign(i,o)},n(this,c).$destroy=()=>{wt(n(this,c))}}$set(t){n(this,c).$set(t)}$on(t,r){n(this,E)[t]=n(this,E)[t]||[];const _=(...i)=>r.call(this,...i);return n(this,E)[t].push(_),()=>{n(this,E)[t]=n(this,E)[t].filter(i=>i!==_)}}$destroy(){n(this,c).$destroy()}}E=new WeakMap,c=new WeakMap;const Zt={};var Gt=U('

'),Mt=U(" ",1);function Nt(e,t){Pt(t,!0);let r=k(t,"components",23,()=>[]),_=k(t,"data_0",3,null),i=k(t,"data_1",3,null),m=k(t,"data_2",3,null);Rt(()=>t.stores.page.set(t.page)),Ot(()=>{t.stores,t.page,t.constructors,r(),t.form,_(),i(),m(),t.stores.page.notify()});let o=B(!1),s=B(!1),d=B(null);jt(()=>{const u=t.stores.page.subscribe(()=>{f(o)&&(S(s,!0),Tt().then(()=>{S(d,document.title||"untitled page",!0)}))});return S(o,!0),u});const x=L(()=>t.constructors[2]);var O=Mt(),H=R(O);{var Z=u=>{const h=L(()=>t.constructors[0]);var g=y(),I=R(g);b(I,()=>f(h),(P,T)=>{V(T(P,{get data(){return _()},get form(){return t.form},get params(){return t.page.params},children:(l,Bt)=>{var X=y(),et=R(X);{var at=A=>{const C=L(()=>t.constructors[1]);var D=y(),F=R(D);b(F,()=>f(C),(G,M)=>{V(M(G,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(p,Ht)=>{var q=y(),st=R(q);b(st,()=>f(x),(_t,it)=>{V(it(_t,{get data(){return m()},get form(){return t.form},get params(){return t.page.params}}),w=>r()[2]=w,()=>{var w;return(w=r())==null?void 0:w[2]})}),v(p,q)},$$slots:{default:!0}}),p=>r()[1]=p,()=>{var p;return(p=r())==null?void 0:p[1]})}),v(A,D)},ot=A=>{const C=L(()=>t.constructors[1]);var D=y(),F=R(D);b(F,()=>f(C),(G,M)=>{V(M(G,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),p=>r()[1]=p,()=>{var p;return(p=r())==null?void 0:p[1]})}),v(A,D)};j(et,A=>{t.constructors[2]?A(at):A(ot,!1)})}v(l,X)},$$slots:{default:!0}}),l=>r()[0]=l,()=>{var l;return(l=r())==null?void 0:l[0]})}),v(u,g)},$=u=>{const h=L(()=>t.constructors[0]);var g=y(),I=R(g);b(I,()=>f(h),(P,T)=>{V(T(P,{get data(){return _()},get form(){return t.form},get params(){return t.page.params}}),l=>r()[0]=l,()=>{var l;return(l=r())==null?void 0:l[0]})}),v(u,g)};j(H,u=>{t.constructors[1]?u(Z):u($,!1)})}var tt=At(H,2);{var rt=u=>{var h=Gt(),g=It(h);{var I=P=>{var T=Lt();Vt(()=>kt(T,f(d))),v(P,T)};j(g,P=>{f(s)&&P(I)})}Dt(h),v(u,h)};j(tt,u=>{f(o)&&u(rt)})}v(e,O),yt()}const $t=Ct(Nt),tr=[()=>a(()=>import("../nodes/0.CcZXq7cA.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]),import.meta.url),()=>a(()=>import("../nodes/1.8UKMSR8s.js"),__vite__mapDeps([22,1,15,3,2,13,12]),import.meta.url),()=>a(()=>import("../nodes/2.zvt29sR6.js"),__vite__mapDeps([23,1,3,7,5]),import.meta.url),()=>a(()=>import("../nodes/3.C6cru0cW.js"),__vite__mapDeps([24,1,15,3,2,12,13]),import.meta.url),()=>a(()=>import("../nodes/4.CIxbWFkr.js"),__vite__mapDeps([25,1,2,3,4,5,26,10,27,28,13]),import.meta.url),()=>a(()=>import("../nodes/5.bHY_C0IS.js"),__vite__mapDeps([29,1,2,3,30,11,12,13,18,31,8,4,5,10,26,27,28,32]),import.meta.url),()=>a(()=>import("../nodes/6.BAqyGpdp.js"),__vite__mapDeps([33,1,2,3,4,5,6,34,7,8,10,19,20,35,16,9,12,13,18,14,31,11,26,27,28,32,36]),import.meta.url),()=>a(()=>import("../nodes/7.AFPOwdob.js"),__vite__mapDeps([37,1,2,3,4,5,6,34,7,8,10,19,20,35,16,38,39,31,12,13,11,26,27,28,32,18,14,40]),import.meta.url),()=>a(()=>import("../nodes/8.BTNjDzh8.js"),__vite__mapDeps([41,1,2,3,30,31,8,4,5,10,12,13,11,26,27,28,32,18]),import.meta.url),()=>a(()=>import("../nodes/9.h0jHlQck.js"),__vite__mapDeps([42,1,2,3,4,5,6,34,7,8,10,19,20,35,9,16,17,31,12,13,11,26,27,28,18]),import.meta.url),()=>a(()=>import("../nodes/10.8yVvC2-0.js"),__vite__mapDeps([43,1,2,3,30,4,5,12,13,18,26,10,27,28,32]),import.meta.url),()=>a(()=>import("../nodes/11.DTIAuaCd.js"),__vite__mapDeps([44,1,3,30,10,2,14,31,8,4,5,12,13,11,26,27,28,32]),import.meta.url),()=>a(()=>import("../nodes/12.CuFt2FF9.js"),__vite__mapDeps([45,1,2,3,4,5,46,6,8,9,10,18,14,13,16,26,27,47,17,48,49,15,50,19,20,38,39,32,51]),import.meta.url),()=>a(()=>import("../nodes/13.z1_JLKKx.js"),__vite__mapDeps([52,1,2,3,30,4,5,26,10,27,18,28,13,32]),import.meta.url),()=>a(()=>import("../nodes/14.B4QyiRph.js"),__vite__mapDeps([53,1,2,3,30,18,31,8,4,5,10,12,13,11,26,27,28,32]),import.meta.url),()=>a(()=>import("../nodes/15.-ohAmwvw.js"),__vite__mapDeps([54,1,2,3,30,4,5,26,10,27,18,28,13,32]),import.meta.url),()=>a(()=>import("../nodes/16.Dp0Kyz4w.js"),__vite__mapDeps([55,1,2,3,30,10,18,14,31,8,4,5,12,13,11,26,27,28,32]),import.meta.url),()=>a(()=>import("../nodes/17.DAadB7bO.js"),__vite__mapDeps([56,1,2,3,46,5,4,6,8,9,10,18,14,13,16,26,27,47,17,48,30,12,28,32]),import.meta.url),()=>a(()=>import("../nodes/18.DdPknQfI.js"),__vite__mapDeps([57,1,2,3,30,4,5,12,13,26,10,27,47,28]),import.meta.url),()=>a(()=>import("../nodes/19.DCcjdG9r.js"),__vite__mapDeps([58,1,2,3,30,31,8,4,5,10,12,13,11,26,27,28,18,32]),import.meta.url),()=>a(()=>import("../nodes/20.Dqd6_QcY.js"),__vite__mapDeps([59,1,2,3,4,5,6,30,9,18,31,8,10,12,13,11,26,27,28,32,60]),import.meta.url),()=>a(()=>import("../nodes/21.CwMgmxy2.js"),__vite__mapDeps([61,1,2,3,31,8,4,5,10,12,13,11,26,27,28,18,32]),import.meta.url),()=>a(()=>import("../nodes/22.CdolZyzx.js"),__vite__mapDeps([62,1,2,3,10,31,8,4,5,12,13,11,26,27,28,32,18,14]),import.meta.url),()=>a(()=>import("../nodes/23.CWsheXid.js"),__vite__mapDeps([63,1,2,3,31,8,4,5,10,12,13,11,26,27,28,32,18]),import.meta.url),()=>a(()=>import("../nodes/24.BbbXGX69.js"),__vite__mapDeps([64,1,2,3,30,18,26,4,5,10,27,28,13,31,8,12,11]),import.meta.url),()=>a(()=>import("../nodes/25.CpxKI_0Q.js"),__vite__mapDeps([65,1,2,3,4,5,6,30,8,16,9,49,13,66]),import.meta.url)],rr=[],er={"/":[3],"/(app)/_msdftest":[4,[2]],"/(app)/activation":[5,[2]],"/(app)/blackbox":[6,[2]],"/(app)/contradictions":[7,[2]],"/(app)/dreams":[8,[2]],"/(app)/duplicates":[9,[2]],"/(app)/explore":[10,[2]],"/(app)/feed":[11,[2]],"/(app)/graph":[12,[2]],"/(app)/importance":[13,[2]],"/(app)/intentions":[14,[2]],"/(app)/memories":[15,[2]],"/(app)/memory-prs":[16,[2]],"/(app)/observatory":[17,[2]],"/(app)/palace":[18,[2]],"/(app)/patterns":[19,[2]],"/(app)/reasoning":[20,[2]],"/(app)/schedule":[21,[2]],"/(app)/settings":[22,[2]],"/(app)/stats":[23,[2]],"/(app)/timeline":[24,[2]],"/waitlist":[25]},W={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},Yt=Object.fromEntries(Object.entries(W.transport).map(([e,t])=>[e,t.decode])),ar=Object.fromEntries(Object.entries(W.transport).map(([e,t])=>[e,t.encode])),or=!1,sr=(e,t)=>Yt[e](t);export{sr as decode,Yt as decoders,er as dictionary,ar as encoders,or as hash,W as hooks,Zt as matchers,tr as nodes,$t as root,rr as server_loads}; diff --git a/apps/dashboard/build/_app/immutable/entry/app.DIsclQy8.js.br b/apps/dashboard/build/_app/immutable/entry/app.DIsclQy8.js.br new file mode 100644 index 0000000000000000000000000000000000000000..67189b1444ea0d5160081cc4d048682375f38c07 GIT binary patch literal 3273 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 HF+^Sh!OVP( literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/entry/app.DIsclQy8.js.gz b/apps/dashboard/build/_app/immutable/entry/app.DIsclQy8.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..00d5ad3b6c2466d88b13855627dba2692cbb2a19 GIT binary patch literal 3701 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.map(i=>d[i]); -var Q=r=>{throw TypeError(r)};var X=(r,t,e)=>t.has(r)||Q("Cannot "+e);var l=(r,t,e)=>(X(r,t,"read from private field"),e?e.call(r):t.get(r)),H=(r,t,e)=>t.has(r)?Q("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,e),W=(r,t,e,n)=>(X(r,t,"write to private field"),n?n.call(r,e):t.set(r,e),e);import{N as Z,ab as ut,b as _t,E as ct,ac as lt,ae as dt,T as ft,R as $,ax as vt,U as ht,h as U,L as pt,g as h,bc as Et,G as gt,I as Pt,p as Rt,aA as yt,aB as Ot,$ as At,f as L,e as Tt,a as bt,s as z,d as Lt,r as It,u as x,t as Dt}from"../chunks/CpWkWWOo.js";import{h as Vt,m as wt,u as kt,s as xt}from"../chunks/BlVfL1ME.js";import"../chunks/Bzak7iHL.js";import{o as St}from"../chunks/GG5zm9kr.js";import{i as B}from"../chunks/B4yTwGkE.js";import{a as g,c as V,f as et,t as jt}from"../chunks/CHOnp4oo.js";import{B as Ct}from"../chunks/DdEqwvdI.js";import{b as S}from"../chunks/CJsMJEun.js";import{p as N}from"../chunks/V6gjw5Ec.js";function j(r,t,e){var n;Z&&(n=ht,ut());var i=new Ct(r);_t(()=>{var c=t()??null;if(Z){var s=lt(n),a=s===vt,m=c!==null;if(a!==m){var R=dt();ft(R),i.anchor=R,$(!1),i.ensure(c,c&&(u=>e(u,c))),$(!0);return}}i.ensure(c,c&&(u=>e(u,c)))},ct)}function Bt(r){return class extends Nt{constructor(t){super({component:r,...t})}}}var P,d;class Nt{constructor(t){H(this,P);H(this,d);var c;var e=new Map,n=(s,a)=>{var m=Pt(a,!1,!1);return e.set(s,m),m};const i=new Proxy({...t.props||{},$$events:{}},{get(s,a){return h(e.get(a)??n(a,Reflect.get(s,a)))},has(s,a){return a===pt?!0:(h(e.get(a)??n(a,Reflect.get(s,a))),Reflect.has(s,a))},set(s,a,m){return U(e.get(a)??n(a,m),m),Reflect.set(s,a,m)}});W(this,d,(t.hydrate?Vt:wt)(t.component,{target:t.target,anchor:t.anchor,props:i,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError})),(!((c=t==null?void 0:t.props)!=null&&c.$$host)||t.sync===!1)&&Et(),W(this,P,i.$$events);for(const s of Object.keys(l(this,d)))s==="$set"||s==="$destroy"||s==="$on"||gt(this,s,{get(){return l(this,d)[s]},set(a){l(this,d)[s]=a},enumerable:!0});l(this,d).$set=s=>{Object.assign(i,s)},l(this,d).$destroy=()=>{kt(l(this,d))}}$set(t){l(this,d).$set(t)}$on(t,e){l(this,P)[t]=l(this,P)[t]||[];const n=(...i)=>e.call(this,...i);return l(this,P)[t].push(n),()=>{l(this,P)[t]=l(this,P)[t].filter(i=>i!==n)}}$destroy(){l(this,d).$destroy()}}P=new WeakMap,d=new WeakMap;const Ut="modulepreload",qt=function(r,t){return new URL(r,t).href},tt={},o=function(t,e,n){let i=Promise.resolve();if(e&&e.length>0){let s=function(u){return Promise.all(u.map(p=>Promise.resolve(p).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};const a=document.getElementsByTagName("link"),m=document.querySelector("meta[property=csp-nonce]"),R=(m==null?void 0:m.nonce)||(m==null?void 0:m.getAttribute("nonce"));i=s(e.map(u=>{if(u=qt(u,n),u in tt)return;tt[u]=!0;const p=u.endsWith(".css"),y=p?'[rel="stylesheet"]':"";if(!!n)for(let O=a.length-1;O>=0;O--){const _=a[O];if(_.href===u&&(!p||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${u}"]${y}`))return;const E=document.createElement("link");if(E.rel=p?"stylesheet":Ut,p||(E.as="script"),E.crossOrigin="",E.href=u,R&&E.setAttribute("nonce",R),document.head.appendChild(E),p)return new Promise((O,_)=>{E.addEventListener("load",O),E.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${u}`)))})}))}function c(s){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s}return i.then(s=>{for(const a of s||[])a.status==="rejected"&&c(a.reason);return t().catch(c)})},ae={};var Ft=et('
'),Gt=et(" ",1);function Yt(r,t){Rt(t,!0);let e=N(t,"components",23,()=>[]),n=N(t,"data_0",3,null),i=N(t,"data_1",3,null),c=N(t,"data_2",3,null);yt(()=>t.stores.page.set(t.page)),Ot(()=>{t.stores,t.page,t.constructors,e(),t.form,n(),i(),c(),t.stores.page.notify()});let s=z(!1),a=z(!1),m=z(null);St(()=>{const _=t.stores.page.subscribe(()=>{h(s)&&(U(a,!0),At().then(()=>{U(m,document.title||"untitled page",!0)}))});return U(s,!0),_});const R=x(()=>t.constructors[2]);var u=Gt(),p=L(u);{var y=_=>{const A=x(()=>t.constructors[0]);var T=V(),w=L(T);j(w,()=>h(A),(b,I)=>{S(I(b,{get data(){return n()},get form(){return t.form},get params(){return t.page.params},children:(f,Wt)=>{var K=V(),at=L(K);{var st=D=>{const q=x(()=>t.constructors[1]);var k=V(),F=L(k);j(F,()=>h(q),(G,Y)=>{S(Y(G,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(v,zt)=>{var M=V(),nt=L(M);j(nt,()=>h(R),(it,mt)=>{S(mt(it,{get data(){return c()},get form(){return t.form},get params(){return t.page.params}}),C=>e()[2]=C,()=>{var C;return(C=e())==null?void 0:C[2]})}),g(v,M)},$$slots:{default:!0}}),v=>e()[1]=v,()=>{var v;return(v=e())==null?void 0:v[1]})}),g(D,k)},ot=D=>{const q=x(()=>t.constructors[1]);var k=V(),F=L(k);j(F,()=>h(q),(G,Y)=>{S(Y(G,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),v=>e()[1]=v,()=>{var v;return(v=e())==null?void 0:v[1]})}),g(D,k)};B(at,D=>{t.constructors[2]?D(st):D(ot,!1)})}g(f,K)},$$slots:{default:!0}}),f=>e()[0]=f,()=>{var f;return(f=e())==null?void 0:f[0]})}),g(_,T)},J=_=>{const A=x(()=>t.constructors[0]);var T=V(),w=L(T);j(w,()=>h(A),(b,I)=>{S(I(b,{get data(){return n()},get form(){return t.form},get params(){return t.page.params}}),f=>e()[0]=f,()=>{var f;return(f=e())==null?void 0:f[0]})}),g(_,T)};B(p,_=>{t.constructors[1]?_(y):_(J,!1)})}var E=Tt(p,2);{var O=_=>{var A=Ft(),T=Lt(A);{var w=b=>{var I=jt();Dt(()=>xt(I,h(m))),g(b,I)};B(T,b=>{h(a)&&b(w)})}It(A),g(_,A)};B(E,_=>{h(s)&&_(O)})}g(r,u),bt()}const se=Bt(Yt),oe=[()=>o(()=>import("../nodes/0.D_38hT9S.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]),import.meta.url),()=>o(()=>import("../nodes/1.CzSrpo2A.js"),__vite__mapDeps([26,1,20,3,4,5,18,2,16,17]),import.meta.url),()=>o(()=>import("../nodes/2.D-vKwnTC.js"),__vite__mapDeps([27,1,3,5,9,7]),import.meta.url),()=>o(()=>import("../nodes/3.2jAIqAuY.js"),__vite__mapDeps([28,1,20,3,2,17,16,18]),import.meta.url),()=>o(()=>import("../nodes/4.DYVet_v-.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,10,13,24,19,16,8,30,15,23]),import.meta.url),()=>o(()=>import("../nodes/5.C0AYWqwr.js"),__vite__mapDeps([31,1,3,4,5,6,7,8,11,12,21,32,10,30,15,16,33]),import.meta.url),()=>o(()=>import("../nodes/6.B5Ezgq8d.js"),__vite__mapDeps([34,1,3,4,5,6,7,8,35,10,11,12,24,21,30,15,16,18,2,36]),import.meta.url),()=>o(()=>import("../nodes/7.2YrTacps.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,10,13,11,12,21,23,38]),import.meta.url),()=>o(()=>import("../nodes/8.DGKslLJe.js"),__vite__mapDeps([39,1,3,4,5,6,7,8,10,11,12,21,13,24]),import.meta.url),()=>o(()=>import("../nodes/9.Vu2AXN40.js"),__vite__mapDeps([40,1,20,3,4,5,6,7,8,21,12,15,16,19,23,10,11,30,41]),import.meta.url),()=>o(()=>import("../nodes/10.CQzEYpYT.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8,10,11,12,21,13,32,15,16,18,14,30,23,20,24,19]),import.meta.url),()=>o(()=>import("../nodes/11.CncxcJx_.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,21,12,13,17,16,18,24,23,10,30,15]),import.meta.url),()=>o(()=>import("../nodes/12.DxkSrFsy.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8,11,12,24]),import.meta.url),()=>o(()=>import("../nodes/13.CD5qzYsO.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8,10,11,12,21,13,32,24,23,46]),import.meta.url),()=>o(()=>import("../nodes/14.DUh3SXOF.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,10,11,12,21]),import.meta.url),()=>o(()=>import("../nodes/15.CyCv1LGV.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8,35,10,21,12,13,14,24,11,30,15,16,23,49]),import.meta.url),()=>o(()=>import("../nodes/16.Cth-SSqa.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8,11,12,24,10,21,30,15,16,23,51]),import.meta.url),()=>o(()=>import("../nodes/17.k6k7874Y.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,11,12,21,15,16,24,19,22,23]),import.meta.url),()=>o(()=>import("../nodes/18.C60Wuzj2.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8,21,12,24]),import.meta.url),()=>o(()=>import("../nodes/19.BIUSI5ln.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8,21,12,32,24,23]),import.meta.url),()=>o(()=>import("../nodes/20.DENLzARE.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8,35,10,11,12,21,13,32,14,18,16,56]),import.meta.url)],ne=[],ie={"/":[3],"/(app)/activation":[4,[2]],"/(app)/contradictions":[5,[2]],"/(app)/dreams":[6,[2]],"/(app)/duplicates":[7,[2]],"/(app)/explore":[8,[2]],"/(app)/feed":[9,[2]],"/(app)/graph":[10,[2]],"/(app)/importance":[11,[2]],"/(app)/intentions":[12,[2]],"/(app)/memories":[13,[2]],"/(app)/patterns":[14,[2]],"/(app)/reasoning":[15,[2]],"/(app)/schedule":[16,[2]],"/(app)/settings":[17,[2]],"/(app)/stats":[18,[2]],"/(app)/timeline":[19,[2]],"/waitlist":[20]},rt={handleError:(({error:r})=>{console.error(r)}),reroute:(()=>{}),transport:{}},Ht=Object.fromEntries(Object.entries(rt.transport).map(([r,t])=>[r,t.decode])),me=Object.fromEntries(Object.entries(rt.transport).map(([r,t])=>[r,t.encode])),ue=!1,_e=(r,t)=>Ht[r](t);export{_e as decode,Ht as decoders,ie as dictionary,me as encoders,ue as hash,rt as hooks,ae as matchers,oe as nodes,se as root,ne as server_loads}; diff --git a/apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.br b/apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.br deleted file mode 100644 index 810af75e6cd493db086fd7b1d8c2ffe7858c1191..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3559 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 diff --git a/apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.gz b/apps/dashboard/build/_app/immutable/entry/app.DU6MZpw-.js.gz deleted file mode 100644 index 8684e68cbdce4c311d3e90fdf16a386ad3c10b10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4093 zcmVodJ)IL=-dP!GINj z;4(6>y05S5KWmwm^)U!t5q~UMN1e(}|8n=jx{pmz2&bO}5Anyt7yhvAeK{$@kB>KB z2D=Zk2ya9;4>vbw;SwMJx_e^(XfDxzISZm{xJ+LiT|ON@EYTmi&Bv#q`*n%War5xE zy!V&j-x@z}?XxBQ54NLl>-hP55zepg4*qQ5_L4r|lgA5j?H1wjALns&dU&ubH~#Uh znFLGltuM*<-spLWzxeU_ckpG|KiK<$;lZ~eyjT7G+3wu!7U4e*ZtY*)&wrNqUxgPh zr*3bF|MNz7qspzdAQdem>l8blqRck13qTu|SnshoRiLsQd{n zC(cn>&e>MuZBPGQ2P)hHd@-aI}npCeP{64Lgip+Mc!^7v&?$z;dDJUhY@$02|8{J+OxY@SV2%Kl<+jFOgDO*R+4;S)t zJSt);R^w>%@#Qu?E2>~utiyY^bWz>DSkj?t9bNS+7r)Ow7x`^kjZtH0pB!H=@!PZ- z{rkt4Z(o)ZZOdw4f8*lfkuS~KvJQhUz4KpqzBFswdf0l{-r24ev(4VI8e65CCmQ>vOUil@Q8S9&uw{aTL0IO zOXC-lY;TNx89o`8qewKR3?-2?tt;$rMkF8z%J$Ie^O#8b`udBQ4ITs`8s>iss_Fb0 z9r>*vO)0o*bY(a&BIyk|3Zv@@-!&Xk?DN0~14o#&hK3i!$OA`&UE@aZhYNxGXmQugM8--a2nsj3ObF%_ zf07;w1H&b~gZ&`a8^i(|LF?Wi3MGzD4IUeRfZwSxLC|9dp{Yg(fjjEKN8my|xCobO z>>`}2@dNN@H4YK3)YwPptMLj>)DR)`G#KtQpC-bw8hZ#|)%X)3QsX%SKTr=N1b(O< z&JaGR@c^N##uL!;FA=yJ?+{`&zJRN-2vUt-5fU{%1FGQ&Qx(rQHs*;7w8Ga212sP7 z93FB3&r2-k_wby>8=b;LK&Tj9EHRpI9wwxoB0XFZIoAeED771Upxt_%`AA@9_WiQi zbN$7Hfp&9aiFCfTn2_qExL9I3x4BO!bu>?ll=J&fy_*CMdSPJP=gViT)?-lrv%XFO z)<;N?&}@--i&GZzW1cafY^@GKrU{ZO)V_(0Zd1rR};NI@KM*4IhG_5?}5p_D3u60J*t zi44;8ZNd~Br0LYsLuJ7@n`SsZk7GkTqX^vCIK{D}I#-!E7)pY494C>GWbA~4C=5h^ zH3^nwVM^09Rm%Sax1RA>p8JJh-;3cVt>;f}=152X7uuaacmx3>G4P2y2ka*j4r?~7 z*%Rvwp{qp<0}6w*uI1$M_$kBZ5g99`tVo7Y{Q5dh;ll?p6amJyahk%or|0si(S0Ix z-Q+54gu}V$`ohU-siIRZQzdkM4rh!-xW87ak^g=A6g1&NQ^*Y9FqpEuD)3Rp&8E)i z)0Eb4at{JQt3PrjN3nm6wI`$mt!Z>%j9m5v*3ilxAj_s2=4l1mMKuqcFhKFF2=gcK z0+eA5Ej{km>H4)ivsq$~hZN`b5q;xNoIeSa8wu2HJxp`mLU zy1wpMA3pTM80qUPTJb1w7-MTTU0-h^p^)496Fh4YM_TWOl4Nm@jj(H+-Q6oEJ%~|E z{7H6Es@9tMAr@%9zGly^h*5^4>3bNMudhAKro>rpOd~So)Qa0##5f(#0~t?21j#^1 ze&>tYS}CRVDc(|oSUus3sd^w! z6*Hx8ZVXvac?wL^pL&_9HbSj+cm6Hc^$M9e2;IaNkraN&T@xOWP3o1Z%hLd<$yetm z8fNvS=%#?k#wmm|`m7-t`$Cn7pE4YHv9P3wLw_g;RmE4VuM5i;K@a<_+8KUg=@l)`-!NHQVI(cQm7PB1XA!g z3>1YbJh@Leb3-Q?h(MQ>rZ3cEd^oz~y;D9A#Pq%3!K5&l(LE+YjxK~M9-$=WKp=0a zWhW$#m=i}Ef$HztCWUiG28#=HU}+>(pCO8vp1=b{>D?tLh#6!}BCUHYCPF(UVS8h* zOA_{oB!PfJVt9dpNHaIq5nD-{t(9`qB9>Tcx4H4KPfXokE8j%>f3>9WnHl5A7ja(* zG~0jGOjAW{Z7rax0;o`(F`fr+!>*t0u~PkPV}oX!kI`Ygb=Fo>IyyfXW6AnDS&Lp@ zJCFN0G;E5-p`x zQ)?0J&udY;LWo{pNz>vnGh;`35t6sqc* zx@dHW;+P$O{=N!SdCU$0dPN(JiwmP0N<%sCZSW^2>aXgitcZ^k4U6H)3*7L@a=kd>==3v2oWdHnT+!u;k3Xf}RD?^jb6cF| zKJl`ZtSb0yyWwiPiB)N(+{#w3N}}odU0-(yx3Wb%t*uC?4MbL>&7yb>b69HcS6S>xSCu zyMFjoGy0zEilA;h^*t0Dal{=_GlK9*@~Cb+d9IpiN6&SmFT7qK^^3XpX>IS*N7ozf z{YBwen`?er+cQ3`?U`WHS<8KkS#3W@f}mPiwYmj6B?#uUrHM@_S9FH8+7yBe>vH6s zk_i=1rHX<#2exNmXAWGRg6pHKc}FY8P>R@!crWWOQ9n`&XL)-+A%P47x?7sGxG@Mq z0WH=3KtL#Xgo2|%^NfQKy{_5`Gy7upqWgNDj|28XGPN#pp_4*Z&@Z`Dh2c(QM12y| z^>uQkI^`0D1C?+(c{TQm3}$5jJ@m!vtC zHE(sR+|JtggdMAHEn+7mp>^H6k634Fz`^R-rF`}!yCxK#*a^9$^?UN9L)<3^6v!QX zRYqKpujEcQXoia5tV;_BO+kT`=V#z75*a4qk`Ll}oOWUcPQg*-P>P^Nx^RP&lgD?h z5=VAIzUKzT$d0BKJ+8LM&MkV-(?7El@}MmGoLlrrfgHnaX3;GNFw8jHZ8n^79!@w9S8yJ->Fc8Mf{a$bebw4>D10sE|K?j<`x za*$)6*jQeBs9%W;es6^xkU=0U@avt)KargZ{)3eObUhjPtq!Z4P~f66*gfD zwqXZ$!7hPqgIxx@0(KSbO|ZAX-UfRI>|H3Apln0AtU7~o70R1!3YlC>oqDW9`q@eL z4V4zJxmKuD-cmZ1a;5AYC};BDDQEH4Y?YjCu%QB*unX_yy?F7qiucaMhO+kD7T7!Q zl(Be+w@SutA$BTmIwtn6lDGqvk_ukA@=nQ%mw_uJS8VOMSbSpC;^KAa3W?Ry{6frxmb1c;`FB@YnyFDKLDhb5C0M*$U8O;JrK{(xu9RoN zwyR1FRhCNGDtNCxi#NKf^rU-B&;Z}Q<^zHvi`g_GKUX`yBx3eTJD=y`^%~0jlT!~SJzdOwquisZ_ zvRQgF#JN863T(dH6^l3ds}v}|rGPz=t9KdQ1-w`K;;#i(Nq=jVy+6Yje}Aw_R`m^8 zlf-^+*RlA!hE)^xZ(4OQ`->kLl(jq)FQGH)jNV|XxPy`d5?eZdWAO@lIv}$%`5fyPnA+uQp zS7cuey`ZOX1vkV_U#L3~g(`R=7KmQZ(;N$qP#-8Yyx<4)2Ez9O&28$8C+?x|#c0-A zbx>SYVDewJZ~5a`EP$f1xO^;tVk>;L*UTtFDBQz`%eE9cvM diff --git a/apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js b/apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js deleted file mode 100644 index 66acbaa..0000000 --- a/apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js +++ /dev/null @@ -1 +0,0 @@ -import{a as r}from"../chunks/CtgMtoAJ.js";import{w as t}from"../chunks/g4XF1_b9.js";export{t as load_css,r as start}; diff --git a/apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js.br b/apps/dashboard/build/_app/immutable/entry/start.DQakSJT1.js.br deleted file mode 100644 index 3c0d5897e0a48dde77d56a4b32e7b30ab9b63eef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmV-!0FnP2bpQyQ2id9Rv`FoZrI-Hl+xgQfvrcA{#h~mqoslx!JyE~kLt|%eQlTuZ z=V;J!>g4=-!-HM%3n-v~!$3Ijkd^dwim8+5W5bO6fxjj4{_Le5RB5?5vOTfn3y%eERRH|tB6g#5>?E| M@N|oAR2k3?05;|;Hvj+t diff --git a/apps/dashboard/build/_app/immutable/entry/start.DeXDFAvJ.js b/apps/dashboard/build/_app/immutable/entry/start.DeXDFAvJ.js new file mode 100644 index 0000000..4f5d578 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/entry/start.DeXDFAvJ.js @@ -0,0 +1 @@ +import{a as r}from"../chunks/DJDK-KWF.js";import{w as t}from"../chunks/DY7cP31Q.js";export{t as load_css,r as start}; diff --git a/apps/dashboard/build/_app/immutable/entry/start.DeXDFAvJ.js.br b/apps/dashboard/build/_app/immutable/entry/start.DeXDFAvJ.js.br new file mode 100644 index 0000000000000000000000000000000000000000..060a5bc4d21af40b49d1ccd9e74332c14642fe91 GIT binary patch literal 119 zcmV--0Eqt^bpQw~3T&I4bt>jkq}~R5nRTtVRPC96lAwM9NixYkQFA7M4LF7X7u<%S zR47Y>4LH)kBiUeBF0?tFoL^6Pu`7N71r%@?2nQarlAca6b@F^cn*G2Z5UK8$5@#+h ZE#X33;Q6CH%;+l{PWINA)rzAP8x3V9GH?I@ literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/entry/start.DeXDFAvJ.js.gz b/apps/dashboard/build/_app/immutable/entry/start.DeXDFAvJ.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..67fb0757bb09399d6c9365cc7127b475e1c3d5a9 GIT binary patch literal 107 zcmb2|=3oE;CgIa(bWiAOt@I1=&hD9<3&73@chS2<&m^HyHk3^@dh)ul`Rm{k+ L^z9VeGN2UzGRrG% literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/nodes/0.CcZXq7cA.js b/apps/dashboard/build/_app/immutable/nodes/0.CcZXq7cA.js new file mode 100644 index 0000000..bf3b420 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/nodes/0.CcZXq7cA.js @@ -0,0 +1,86 @@ +import"../chunks/Bzak7iHL.js";import{s as M,w as at,d as Ue,b as oe,e as Ye,o as st,c as wt,g as ut}from"../chunks/DAau0uzT.js";import{aS as rt,aH as ve,a as b,X as s,c as a,r as t,Y as P,f as w,p as Xe,af as ce,g as e,b as Qe,d as le,e as $t,s as k,u as Y,aT as it}from"../chunks/CGq8RnJq.js";import{i as G,b as Mt}from"../chunks/Ccqjq5DS.js";import{e as Ne,s as Ce,i as Re,r as Ct}from"../chunks/DqfV0sZu.js";import{s as ot}from"../chunks/BbCqB9Us.js";import{s as re}from"../chunks/uCQU803Y.js";import{b as Tt}from"../chunks/DGM4cicq.js";import{a as pe,s as We}from"../chunks/DV6OI5iy.js";import{p as St}from"../chunks/CbBCXwzm.js";import{o as At,g as lt}from"../chunks/DJDK-KWF.js";import{b as ke}from"../chunks/DY7cP31Q.js";import{s as mt,e as ft,c as ht,d as gt,w as dt,u as Et,a as Dt,f as Nt}from"../chunks/Ch9vNiEl.js";import{i as jt}from"../chunks/BfiOPhbz.js";import{s as bt}from"../chunks/HFGAk8XQ.js";import{E as It}from"../chunks/CcUbQ_Wl.js";import{a as qe}from"../chunks/D35IQVqe.js";import{I as Le}from"../chunks/CKbQrCJw.js";var Ft=w('
');function Lt(d){const l=()=>pe(mt,"$suppressedCount",v),[v,o]=We();var h=rt(),$=ve(h);{var _=R=>{var S=Ft(),C=s(a(S),2),x=a(C);t(C),t(S),P(()=>M(x,`Actively forgetting ${l()??""} ${l()===1?"memory":"memories"}`)),b(R,S)};G($,R=>{l()>0&&R(_)})}b(d,h),o()}const Ze=4,Rt=5500,Ot=1500;function Vt(){const{subscribe:d,update:l}=at([]);let v=1,o=0;const h=new Map,$=new Map,_=new Map;function R(i,u){_.set(i,Date.now());const p=setTimeout(()=>{h.delete(i),_.delete(i),C(i)},u);h.set(i,p)}function S(i){const u=v++,p=Date.now(),g={id:u,createdAt:p,...i};l(n=>{const c=[g,...n];if(c.length>Ze){for(const y of c.slice(Ze)){const B=h.get(y.id);B&&clearTimeout(B),h.delete(y.id),$.delete(y.id),_.delete(y.id)}return c.slice(0,Ze)}return c}),R(u,i.dwellMs)}function C(i){const u=h.get(i);u&&(clearTimeout(u),h.delete(i)),$.delete(i),_.delete(i),l(p=>p.filter(g=>g.id!==i))}function x(i,u){const p=h.get(i);if(!p)return;clearTimeout(p),h.delete(i);const g=_.get(i)??Date.now(),n=Date.now()-g,c=Math.max(200,u-n);$.set(i,{remaining:c})}function f(i){const u=$.get(i);u&&($.delete(i),R(i,u.remaining))}function N(){for(const i of h.values())clearTimeout(i);h.clear(),$.clear(),_.clear(),l(()=>[])}function H(i){const u=It[i.type]??"#818CF8",p=i.data;switch(i.type){case"DreamCompleted":{const g=Number(p.memories_replayed??0),n=Number(p.connections_found??0),c=Number(p.insights_generated??0),y=Number(p.duration_ms??0),B=[];return B.push(`Replayed ${g} ${g===1?"memory":"memories"}`),n>0&&B.push(`${n} new connection${n===1?"":"s"}`),c>0&&B.push(`${c} insight${c===1?"":"s"}`),{type:i.type,title:"Dream consolidated",body:`${B.join(" · ")} in ${(y/1e3).toFixed(1)}s`,color:u,dwellMs:7e3}}case"ConsolidationCompleted":{const g=Number(p.nodes_processed??0),n=Number(p.decay_applied??0),c=Number(p.embeddings_generated??0),y=Number(p.duration_ms??0),B=[];return n>0&&B.push(`${n} decayed`),c>0&&B.push(`${c} embedded`),{type:i.type,title:"Consolidation swept",body:`${g} node${g===1?"":"s"}${B.length?" · "+B.join(" · "):""} in ${(y/1e3).toFixed(1)}s`,color:u,dwellMs:6e3}}case"ConnectionDiscovered":{const g=Date.now();if(g-o0?`suppression #${g} · Rac1 cascade ~${n} neighbors`:`suppression #${g}`,color:u,dwellMs:5500}}case"MemoryUnsuppressed":{const g=Number(p.remaining_count??0);return{type:i.type,title:"Recovered",body:g>0?`${g} suppression${g===1?"":"s"} remain`:"fully unsuppressed",color:u,dwellMs:5e3}}case"Rac1CascadeSwept":{const g=Number(p.seeds??0),n=Number(p.neighbors_affected??0);return{type:i.type,title:"Rac1 cascade",body:`${g} seed${g===1?"":"s"} · ${n} dendritic spine${n===1?"":"s"} pruned`,color:u,dwellMs:6e3}}case"MemoryDeleted":return{type:i.type,title:"Memory deleted",body:String(p.id??"").slice(0,8),color:u,dwellMs:4e3};case"HookVerdictRecorded":{const g=String(p.verdict??"NOTE"),n=String(p.reason??"Sanhedrin receipt updated");return{type:i.type,title:`Sanhedrin ${g}`,body:n,color:u,dwellMs:g==="VETO"?8e3:Rt}}case"Heartbeat":case"SearchPerformed":case"RetentionDecayed":case"ActivationSpread":case"ImportanceScored":case"MemoryCreated":case"MemoryUpdated":case"DreamStarted":case"DreamProgress":case"ConsolidationStarted":case"Connected":return null;default:return null}}let O=null;return ft.subscribe(i=>{if(i.length===0)return;const u=[];for(const p of i){if(p===O)break;u.push(p)}if(u.length!==0){O=i[0];for(let p=u.length-1;p>=0;p--){const g=H(u[p]);g&&S(g)}}}),{subscribe:d,dismiss:C,clear:N,pauseDwell:x,resumeDwell:f,push:S}}const De=Vt();var Bt=w(''),Pt=w('
');function Ht(d,l){Xe(l,!1);const v=()=>pe(De,"$toasts",o),[o,h]=We(),$={DreamCompleted:"✦",ConsolidationCompleted:"◉",ConnectionDiscovered:"⟷",MemoryPromoted:"↑",MemoryDemoted:"↓",MemorySuppressed:"◬",MemoryUnsuppressed:"◉",Rac1CascadeSwept:"✺",MemoryDeleted:"✕",HookVerdictRecorded:"⚑"};function _(x){return $[x]??"◆"}function R(x){De.dismiss(x.id)}function S(x,f){(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),De.dismiss(f.id))}jt();var C=Pt();Ne(C,5,v,x=>x.id,(x,f)=>{var N=Bt(),H=s(a(N),2),O=a(H),i=a(O),u=a(i,!0);t(i);var p=s(i,2),g=a(p,!0);t(p),t(O);var n=s(O,2),c=a(n,!0);t(n),t(H),ce(2),t(N),P(y=>{Ce(N,"aria-label",`${e(f).title??""}: ${e(f).body??""}. Click to dismiss.`),bt(N,`--toast-color: ${e(f).color??""}; --toast-dwell: ${e(f).dwellMs??""}ms;`),M(u,y),M(g,e(f).title),M(c,e(f).body)},[()=>_(e(f).type)]),oe("click",N,()=>R(e(f))),oe("keydown",N,y=>S(y,e(f))),Ye("mouseenter",N,()=>De.pauseDwell(e(f).id,e(f).dwellMs)),Ye("mouseleave",N,()=>De.resumeDwell(e(f).id)),Ye("focus",N,()=>De.pauseDwell(e(f).id,e(f).dwellMs)),Ye("blur",N,()=>De.resumeDwell(e(f).id)),b(x,N)}),t(C),b(d,C),Qe(),h()}Ue(["click","keydown"]);function Oe(d){const l=d.data;if(!l||typeof l!="object")return null;const v=l.timestamp??l.at??l.occurred_at;if(v==null)return null;if(typeof v=="number")return Number.isFinite(v)?v>1e12?v:v*1e3:null;if(typeof v!="string")return null;const o=Date.parse(v);return Number.isFinite(o)?o:null}const et=10,xt=3e4,zt=et*xt;function Kt(d,l){const v=l-zt,o=new Array(et).fill(0);for(const $ of d){if($.type==="Heartbeat")continue;const _=Oe($);if(_===null||_l)continue;const R=Math.min(et-1,Math.floor((_-v)/xt));o[R]+=1}const h=Math.max(1,...o);return o.map($=>({count:$,ratio:$/h}))}function qt(d,l){const v=l-864e5;for(const o of d){if(o.type!=="DreamCompleted")continue;return(Oe(o)??l)>=v?o:null}return null}function Wt(d){if(!d||!d.data)return null;const l=d.data,v=typeof l.insights_generated=="number"?l.insights_generated:typeof l.insightsGenerated=="number"?l.insightsGenerated:null;return v!==null&&Number.isFinite(v)?v:null}function Gt(d,l){let v=null,o=null;for(const R of d)if(!v&&R.type==="DreamStarted"&&(v=R),!o&&R.type==="DreamCompleted"&&(o=R),v&&o)break;if(!v)return!1;const h=Oe(v)??l,$=l-300*1e3;return h<$?!1:o?(Oe(o)??l)=o}return!1}var Xt=w(' at risk',1),Qt=w('0 at risk',1),Zt=w(' at risk',1),Jt=w(' intentions',1),ea=w('— intentions'),ta=w('· insights',1),aa=w(' Last dream: ',1),sa=w('No recent dream'),ra=w('
'),na=w('telemetry unavailable'),ia=w('· fail-open',1),oa=w(' vetoes · appeals ',1),la=w('
DREAMING...
',1),da=w(''),ca=w('
memories · avg retention
');function va(d,l){Xe(l,!0);const v=()=>pe(gt,"$avgRetention",$),o=()=>pe(ft,"$eventFeed",$),h=()=>pe(ht,"$memoryCount",$),[$,_]=We(),R=Y(()=>Math.round((v()??0)*100)),S=Y(()=>(v()??0)>=.5);let C=le(null);async function x(){try{const r=await qe.retentionDistribution();if(Array.isArray(r.endangered)&&r.endangered.length>0){k(C,r.endangered.length,!0);return}const m=r.distribution??[];let A=0;for(const z of m){const U=/^(\d+)/.exec(z.range);if(!U)continue;const se=Number.parseInt(U[1],10);Number.isFinite(se)&&se<30&&(A+=z.count??0)}k(C,A,!0)}catch{k(C,null)}}let f=le(null);async function N(){var r;try{const m=await qe.intentions("active");k(f,m.total??((r=m.intentions)==null?void 0:r.length)??0,!0)}catch{k(f,null)}}let H=le($t(Date.now()));const O=Y(()=>{const r=o(),m=qt(r,e(H)),A=m?Oe(m)??e(H):null,z=A!==null?e(H)-A:null;return{isDreaming:Gt(r,e(H)),recent:m,recentMsAgo:z,insights:Wt(m)}}),i=Y(()=>Kt(o(),e(H)));let u=le(null),p=le(!1);async function g(){try{k(u,await qe.sanhedrin.telemetry(7),!0),k(p,!1)}catch{k(u,null),k(p,!0)}}const n=Y(()=>Ut(o(),e(H)));st(()=>{x(),N(),g();const r=setInterval(()=>{k(H,Date.now(),!0)},1e3),m=setInterval(()=>{x(),N(),g()},6e4);return()=>{clearInterval(r),clearInterval(m)}});var c=ca();let y;var B=a(c),_e=a(B),je=a(_e);let Te;var Be=s(je,2);let I;t(_e);var F=s(_e,2),T=a(F,!0);t(F);var te=s(F,6);let X;var Z=a(te);t(te),ce(2),t(B);var j=s(B,4),V=a(j);{var q=r=>{var m=Xt(),A=ve(m),z=a(A,!0);t(A),ce(2),P(()=>M(z,e(C))),b(r,m)},ae=r=>{var m=Qt();ce(2),b(r,m)},xe=r=>{var m=Zt();ce(2),b(r,m)};G(V,r=>{e(C)!==null&&e(C)>0?r(q):e(C)===0?r(ae,1):r(xe,!1)})}t(j);var L=s(j,4),Q=a(L);{var de=r=>{var m=Jt(),A=ve(m);let z;var U=s(A,2);let se;var ne=a(U,!0);t(U),ce(2),P(()=>{z=re(A,1,"inline-flex h-2 w-2 rounded-full svelte-1kk3799",null,z,{"bg-node-pattern":e(f)>5,"animate-ping-slow":e(f)>5,"bg-muted":e(f)<=5}),se=re(U,1,"tabular-nums svelte-1kk3799",null,se,{"text-node-pattern":e(f)>5,"text-text":e(f)>0&&e(f)<=5,"text-muted":e(f)===0}),M(ne,e(f))}),b(r,m)},ue=r=>{var m=ea();b(r,m)};G(Q,r=>{e(f)!==null?r(de):r(ue,!1)})}t(L);var me=s(L,4),fe=a(me);{var Se=r=>{var m=aa(),A=s(ve(m),4),z=a(A,!0);t(A);var U=s(A,2);{var se=ne=>{var Ie=ta(),E=s(ve(Ie),2),D=a(E,!0);t(E),ce(2),P(()=>M(D,e(O).insights)),b(ne,Ie)};G(U,ne=>{e(O).insights!==null&&ne(se)})}P(ne=>M(z,ne),[()=>Yt(e(O).recentMsAgo)]),b(r,m)},he=r=>{var m=sa();b(r,m)};G(fe,r=>{e(O).recent&&e(O).recentMsAgo!==null?r(Se):r(he,!1)})}t(me);var ge=s(me,4),Ee=s(a(ge),2);Ne(Ee,21,()=>e(i),Re,(r,m)=>{var A=ra();P(z=>bt(A,`height: ${z??""}%; opacity: ${e(m).count===0?.18:.5+e(m).ratio*.5};`),[()=>Math.max(10,e(m).ratio*100)]),b(r,A)}),t(Ee),t(ge);var ye=s(ge,4),Pe=s(a(ye),2);{var He=r=>{var m=na();b(r,m)},ze=r=>{var m=oa(),A=ve(m),z=a(A,!0);t(A);var U=s(A,6),se=a(U,!0);t(U);var ne=s(U,4);{var Ie=E=>{var D=ia(),ie=s(ve(D),2),ee=a(ie,!0);t(ie),ce(2),P(()=>M(ee,e(u).failOpen)),b(E,D)};G(ne,E=>{var D;(D=e(u))!=null&&D.failOpen&&E(Ie)})}P(()=>{var E,D,ie;M(z,((D=(E=e(u))==null?void 0:E.byVerdict)==null?void 0:D.VETO)??"—"),M(se,((ie=e(u))==null?void 0:ie.appeals)??"—")}),b(r,m)};G(Pe,r=>{e(p)?r(He):r(ze,!1)})}t(ye);var K=s(ye,2);{var J=r=>{var m=la();ce(2),b(r,m)};G(K,r=>{e(O).isDreaming&&r(J)})}var W=s(K,4);{var be=r=>{var m=da();b(r,m)};G(W,r=>{e(n)&&r(be)})}t(c),P(()=>{y=re(c,1,"ambient-strip relative flex h-9 w-full items-center gap-0 overflow-hidden border-b border-synapse/15 bg-black/40 px-3 text-[11px] text-dim backdrop-blur-md svelte-1kk3799",null,y,{"ambient-flash":e(n)}),Te=re(je,1,"absolute inline-flex h-full w-full animate-ping rounded-full opacity-75 svelte-1kk3799",null,Te,{"bg-recall":e(S),"bg-warning":!e(S)}),I=re(Be,1,"relative inline-flex h-2 w-2 rounded-full svelte-1kk3799",null,I,{"bg-recall":e(S),"bg-warning":!e(S)}),M(T,h()),X=re(te,1,"svelte-1kk3799",null,X,{"text-recall":e(S),"text-warning":!e(S)}),M(Z,`${e(R)??""}%`)}),b(d,c),Qe(),_()}var pa=w(" "),ua=w('
  • '),ma=w(' ',1),fa=w('

    Appeal recorded.

    '),ha=w('

    No appealable veto in this receipt.

    '),ga=w('
    Claim

    Verdict

    Precedent
      Fix

      Appeal
      '),ba=w('
      ');function xa(d,l){Xe(l,!0);const v=["PASS","NOTE","CAUTION","VETO","APPEALED"];let o=le(null),h=le(""),$=le(!1),_=le(null),R=le(null),S=Y(()=>{var n;return((n=e(o))==null?void 0:n.verdictBar)??(e(h)?"CAUTION":"NOTE")}),C=Y(()=>{var n,c;return((n=e(o))==null?void 0:n.claims.find(y=>y.decision==="veto"))??((c=e(o))==null?void 0:c.claims.find(y=>y.decision==="appealed"))??null}),x=Y(()=>{var n;return e(C)??((n=e(o))==null?void 0:n.claims[0])??null}),f=Y(()=>!!e(o)||!!e(h));st(()=>{N();const n=window.setInterval(N,4e3);return()=>window.clearInterval(n)});async function N(){var n;try{const c=await qe.sanhedrin.latest();k(o,c.receipt,!0),k(h,""),((n=c.receipt)==null?void 0:n.verdictBar)==="VETO"&&c.receipt.id!==e(R)&&(k($,!0),k(R,c.receipt.id,!0))}catch(c){k(h,c instanceof Error?c.message:String(c),!0)}}async function H(n){var c;if(!(!e(C)||((c=e(o))==null?void 0:c.verdictBar)!=="VETO")){k(_,n,!0);try{const y=await qe.sanhedrin.appeal(n,void 0,e(C).id,e(o).id);k(o,y.receipt,!0),k($,!0),k(h,"")}catch(y){k(h,y instanceof Error?y.message:String(y),!0)}finally{k(_,null)}}}function O(n){if(!n)return"";const c=new Date(n);return Number.isNaN(c.getTime())?"":c.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function i(n){var c;return(c=n==null?void 0:n.precedent)!=null&&c.length?n.precedent.map(y=>y.summary??y.command??"Precedent recorded.").slice(0,3):["No precedent attached."]}var u=rt(),p=ve(u);{var g=n=>{var c=ba(),y=a(c),B=s(a(y),2);Ne(B,21,()=>v,Re,(j,V)=>{var q=pa();let ae;var xe=a(q,!0);t(q),P(()=>{Ce(q,"aria-current",e(V)===e(S)?"true":void 0),ae=re(q,1,"svelte-1j425e6",null,ae,{active:e(V)===e(S)}),M(xe,e(V))}),b(j,q)}),t(B);var _e=s(B,2),je=a(_e);t(_e);var Te=s(_e,2),Be=a(Te);{var I=j=>{var V=it();P(()=>M(V,e(h))),b(j,V)},F=j=>{var V=it();P(()=>M(V,e(o).summary)),b(j,V)};G(Be,j=>{e(h)?j(I):e(o)&&j(F,1)})}t(Te);var T=s(Te,2),te=a(T,!0);t(T),t(y);var X=s(y,2);{var Z=j=>{var V=ga(),q=a(V),ae=a(q),xe=s(a(ae),2),L=a(xe,!0);t(xe),t(ae);var Q=s(ae,2),de=s(a(Q),2),ue=a(de);t(de),t(Q);var me=s(Q,2),fe=s(a(me),2);Ne(fe,21,()=>i(e(x)),Re,(K,J)=>{var W=ua(),be=a(W,!0);t(W),P(()=>M(be,e(J))),b(K,W)}),t(fe),t(me);var Se=s(me,2),he=s(a(Se),2),ge=a(he,!0);t(he),t(Se),t(q);var Ee=s(q,2),ye=s(a(Ee),2);{var Pe=K=>{var J=ma(),W=ve(J),be=a(W,!0);t(W);var r=s(W,2),m=a(r,!0);t(r);var A=s(r,2),z=a(A,!0);t(A),P((U,se,ne)=>{W.disabled=U,M(be,e(_)==="stale"?"Saving":"Stale"),r.disabled=se,M(m,e(_)==="wrong"?"Saving":"Wrong"),A.disabled=ne,M(z,e(_)==="too_strict"?"Saving":"Too strict")},[()=>!!e(_),()=>!!e(_),()=>!!e(_)]),oe("click",W,()=>H("stale")),oe("click",r,()=>H("wrong")),oe("click",A,()=>H("too_strict")),b(K,J)},He=K=>{var J=fa();b(K,J)},ze=K=>{var J=ha();b(K,J)};G(ye,K=>{e(C)&&e(o).verdictBar==="VETO"?K(Pe):e(o).verdictBar==="APPEALED"?K(He,1):K(ze,!1)})}t(Ee),t(V),P(()=>{var K,J,W,be;M(L,((K=e(x))==null?void 0:K.text)??e(o).draftPreview),M(ue,`${((J=e(x))==null?void 0:J.decision)??e(o).overall??""} · ${((W=e(x))==null?void 0:W.evidence_state)??e(S)??""}`),M(ge,((be=e(x))==null?void 0:be.fix)||"No change required.")}),b(j,V)};G(X,j=>{e($)&&e(o)&&j(Z)})}t(c),P((j,V)=>{re(c,1,j,"svelte-1j425e6"),Ce(y,"aria-expanded",e($)),M(je,`Current verdict: ${e(S)??""}`),M(te,V)},[()=>`verdict-bar tone-${e(S).toLowerCase()}`,()=>{var j;return O((j=e(o))==null?void 0:j.createdAt)}]),oe("click",y,()=>k($,!e($))),b(n,c)};G(p,n=>{e(f)&&n(g)})}b(d,u),Qe()}Ue(["click"]);const _t="vestige.theme",ct="vestige-theme-light",Ve=at("dark"),tt=at(!0),vt=wt([Ve,tt],([d,l])=>d==="auto"?l?"dark":"light":d);function _a(d){return d==="dark"||d==="light"||d==="auto"}function ya(d){if(_a(d)){Ve.set(d);try{localStorage.setItem(_t,d)}catch{}}}function Je(){const d=ut(Ve);ya(d==="dark"?"light":d==="light"?"auto":"dark")}function ka(){if(document.getElementById(ct))return;const d=document.createElement("style");d.id=ct,d.textContent=` +/* Vestige light-mode overrides — injected by theme.ts. + * Activated by [data-theme='light'] on . + * Tokens mirror the real names used in app.css so the cascade stays clean. */ +[data-theme='light'] { + /* Core surface palette (slate scale) */ + --color-void: #f8fafc; /* slate-50 — page background */ + --color-abyss: #f1f5f9; /* slate-100 */ + --color-deep: #e2e8f0; /* slate-200 */ + --color-surface: #f1f5f9; /* slate-100 */ + --color-elevated: #e2e8f0; /* slate-200 */ + --color-subtle: #cbd5e1; /* slate-300 */ + --color-muted: #94a3b8; /* slate-400 */ + --color-dim: #475569; /* slate-600 */ + --color-text: #0f172a; /* slate-900 */ + --color-bright: #020617; /* slate-950 */ +} + +/* Baseline body/html wiring — app.css sets these against the dark + * tokens; we just let the variables do the work. Reassert for clarity. */ +[data-theme='light'] html, +html[data-theme='light'] { + background: var(--color-void); + color: var(--color-text); +} + +/* Glass surfaces — recompose on a light canvas. The original alphas + * are tuned for dark; invert-and-tint for light so panels still read + * as elevated instead of vanishing. */ +[data-theme='light'] .glass { + background: rgba(255, 255, 255, 0.65); + border: 1px solid rgba(99, 102, 241, 0.12); + box-shadow: + inset 0 1px 0 0 rgba(255, 255, 255, 0.6), + 0 4px 24px rgba(15, 23, 42, 0.08); +} +[data-theme='light'] .glass-subtle { + background: rgba(255, 255, 255, 0.55); + border: 1px solid rgba(99, 102, 241, 0.1); + box-shadow: + inset 0 1px 0 0 rgba(255, 255, 255, 0.5), + 0 2px 12px rgba(15, 23, 42, 0.06); +} +[data-theme='light'] .glass-sidebar { + background: rgba(248, 250, 252, 0.82); + border-right: 1px solid rgba(99, 102, 241, 0.14); + box-shadow: + inset -1px 0 0 0 rgba(255, 255, 255, 0.4), + 4px 0 24px rgba(15, 23, 42, 0.08); +} +[data-theme='light'] .glass-panel { + background: rgba(255, 255, 255, 0.75); + border: 1px solid rgba(99, 102, 241, 0.14); + box-shadow: + inset 0 1px 0 0 rgba(255, 255, 255, 0.5), + 0 8px 32px rgba(15, 23, 42, 0.1); +} + +/* Halve glow intensity — neon accents stay recognizable without + * washing out on slate-50. */ +[data-theme='light'] .glow-synapse { + box-shadow: 0 0 10px rgba(99, 102, 241, 0.15), 0 0 30px rgba(99, 102, 241, 0.05); +} +[data-theme='light'] .glow-dream { + box-shadow: 0 0 10px rgba(168, 85, 247, 0.15), 0 0 30px rgba(168, 85, 247, 0.05); +} +[data-theme='light'] .glow-memory { + box-shadow: 0 0 10px rgba(59, 130, 246, 0.15), 0 0 30px rgba(59, 130, 246, 0.05); +} + +/* Ambient orbs are gorgeous on black and blinding on white. Tame them. */ +[data-theme='light'] .ambient-orb { + opacity: 0.18; + filter: blur(100px); +} + +/* Scrollbar recolor for the lighter surface. */ +[data-theme='light'] ::-webkit-scrollbar-thumb { + background: #cbd5e1; +} +[data-theme='light'] ::-webkit-scrollbar-thumb:hover { + background: #94a3b8; +} +`,document.head.appendChild(d)}function pt(d){document.documentElement.dataset.theme=d}let we=null,Ae=null,$e=null,Me=null;function wa(){we&&Ae&&we.removeEventListener("change",Ae),Me==null||Me(),$e==null||$e(),we=null,Ae=null,Me=null,$e=null,ka();let d="dark";try{const l=localStorage.getItem(_t);(l==="dark"||l==="light"||l==="auto")&&(d=l)}catch{}return Ve.set(d),we=window.matchMedia("(prefers-color-scheme: dark)"),tt.set(we.matches),Ae=l=>tt.set(l.matches),we.addEventListener("change",Ae),pt(ut(vt)),Me=vt.subscribe(pt),$e=Ve.subscribe(()=>{}),()=>{we&&Ae&&we.removeEventListener("change",Ae),we=null,Ae=null,Me==null||Me(),$e==null||$e(),Me=null,$e=null}}var $a=w('');function Ma(d){const l=()=>pe(Ve,"$theme",v),[v,o]=We(),h={dark:"Dark",light:"Light",auto:"Auto (system)"},$={dark:"light",light:"auto",auto:"dark"};let _=Y(l),R=Y(()=>$[e(_)]),S=Y(()=>`Toggle theme: ${h[e(_)]} (click for ${h[e(R)]})`);var C=$a(),x=a(C),f=a(x);let N;var H=s(f,2);let O;var i=s(H,2);let u;t(x),t(C),P(()=>{Ce(C,"aria-label",e(S)),Ce(C,"title",e(S)),Ce(C,"data-mode",e(_)),N=re(f,0,"icon svelte-1cmi4dh",null,N,{active:e(_)==="dark"}),O=re(H,0,"icon svelte-1cmi4dh",null,O,{active:e(_)==="light"}),u=re(i,0,"icon svelte-1cmi4dh",null,u,{active:e(_)==="auto"})}),oe("click",C,function(...p){Je==null||Je.apply(this,p)}),b(d,C),o()}Ue(["click"]);var Ca=w('
      '),Ta=w('
      '),Sa=w(''),Aa=w(' '),Ea=w('
      ',1),Da=w(''),Na=w('
      No matches
      '),ja=w('
      esc
      '),Ia=w(" ",1);function Ja(d,l){Xe(l,!0);const v=()=>pe(St,"$page",S),o=()=>pe(Dt,"$isConnected",S),h=()=>pe(ht,"$memoryCount",S),$=()=>pe(gt,"$avgRetention",S),_=()=>pe(Et,"$uptimeSeconds",S),R=()=>pe(mt,"$suppressedCount",S),[S,C]=We();let x=le(!1),f=le(""),N=le(void 0),H=Y(()=>v().url.pathname.startsWith(ke)?v().url.pathname.slice(ke.length)||"/":v().url.pathname),O=Y(()=>e(H)==="/waitlist"||e(H).startsWith("/waitlist/")),i=Y(()=>!e(O));st(()=>{e(O)||dt.connect();const I=wa();function F(T){if(e(O)||e(i))return;if((T.metaKey||T.ctrlKey)&&T.key==="k"){T.preventDefault(),k(x,!e(x)),k(f,""),e(x)&&requestAnimationFrame(()=>{var Z;return(Z=e(N))==null?void 0:Z.focus()});return}if(T.key==="Escape"&&e(x)){k(x,!1);return}if(T.target instanceof HTMLInputElement||T.target instanceof HTMLTextAreaElement)return;if(T.key==="/"){T.preventDefault();const Z=document.querySelector('input[type="text"]');Z==null||Z.focus();return}const X={g:"/graph",m:"/memories",t:"/timeline",f:"/feed",e:"/explore",i:"/intentions",s:"/stats",r:"/reasoning",a:"/activation",d:"/dreams",c:"/schedule",p:"/importance",u:"/duplicates",x:"/contradictions",n:"/patterns"}[T.key.toLowerCase()];X&&!T.metaKey&&!T.ctrlKey&&!T.altKey&&(T.preventDefault(),lt(`${ke}${X}`))}return window.addEventListener("keydown",F),()=>{dt.disconnect(),window.removeEventListener("keydown",F),I()}}),At(I=>{if(!(!document.startViewTransition||window.matchMedia("(prefers-reduced-motion: reduce)").matches))return new Promise(F=>{document.startViewTransition(async()=>{F(),await I.complete})})});const u=[{href:"/observatory",label:"Observatory",icon:"sparkle",shortcut:"O"},{href:"/blackbox",label:"Black Box",icon:"blackbox",shortcut:"B"},{href:"/memory-prs",label:"Memory PRs",icon:"memorypr",shortcut:"Q"},{href:"/graph",label:"Graph",icon:"graph",shortcut:"G"},{href:"/reasoning",label:"Reasoning",icon:"reasoning",shortcut:"R"},{href:"/memories",label:"Memories",icon:"memories",shortcut:"M"},{href:"/timeline",label:"Timeline",icon:"timeline",shortcut:"T"},{href:"/feed",label:"Feed",icon:"feed",shortcut:"F"},{href:"/explore",label:"Explore",icon:"explore",shortcut:"E"},{href:"/activation",label:"Activation",icon:"activation",shortcut:"A"},{href:"/dreams",label:"Dreams",icon:"dreams",shortcut:"D"},{href:"/schedule",label:"Schedule",icon:"schedule",shortcut:"C"},{href:"/importance",label:"Importance",icon:"importance",shortcut:"P"},{href:"/duplicates",label:"Duplicates",icon:"duplicates",shortcut:"U"},{href:"/contradictions",label:"Contradictions",icon:"contradictions",shortcut:"X"},{href:"/patterns",label:"Patterns",icon:"patterns",shortcut:"N"},{href:"/intentions",label:"Intentions",icon:"intentions",shortcut:"I"},{href:"/stats",label:"Stats",icon:"stats",shortcut:"S"},{href:"/settings",label:"Settings",icon:"settings",shortcut:","}],p=u.slice(0,5);function g(I,F){const T=F.startsWith(ke)?F.slice(ke.length)||"/":F;return I==="/graph"?T==="/"||T==="/graph":T.startsWith(I)}let n=Y(()=>e(f)?u.filter(I=>I.label.toLowerCase().includes(e(f).toLowerCase())):u);function c(I){k(x,!1),k(f,""),lt(`${ke}${I}`)}var y=Ia(),B=ve(y);{var _e=I=>{var F=rt(),T=ve(F);ot(T,()=>l.children),b(I,F)},je=I=>{var F=Ea(),T=s(ve(F),6),te=a(T),X=a(te),Z=a(X),j=a(Z);Le(j,{name:"logo",size:18,strokeWidth:1.8}),t(Z),ce(2),t(X);var V=s(X,2);Ne(V,21,()=>u,Re,(E,D)=>{const ie=Y(()=>g(e(D).href,v().url.pathname));var ee=Ca(),Fe=a(ee),Ge=a(Fe);Le(Ge,{get name(){return e(D).icon},size:18}),t(Fe);var Ke=s(Fe,2),yt=a(Ke,!0);t(Ke);var nt=s(Ke,2),kt=a(nt,!0);t(nt),t(ee),P(()=>{Ce(ee,"href",`${ke??""}${e(D).href??""}`),re(ee,1,`nav-link group flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all duration-200 text-sm + ${e(ie)?"bg-synapse/15 text-synapse-glow border border-synapse/30 shadow-[0_0_12px_rgba(99,102,241,0.15)] nav-active-border":"text-dim hover:text-text hover:bg-white/[0.03] border border-transparent"}`,"svelte-12qhfyh"),M(yt,e(D).label),M(kt,e(D).shortcut)}),b(E,ee)}),t(V);var q=s(V,2),ae=a(q),xe=a(ae);Le(xe,{name:"command",size:14}),ce(4),t(ae),t(q);var L=s(q,2),Q=a(L),de=a(Q),ue=s(de,2),me=a(ue,!0);t(ue);var fe=s(ue,2),Se=a(fe);Ma(Se),t(fe),t(Q);var he=s(Q,2),ge=a(he),Ee=a(ge);t(ge);var ye=s(ge,2),Pe=a(ye);t(ye);var He=s(ye,2);{var ze=E=>{var D=Ta(),ie=a(D);t(D),P(ee=>M(ie,`up ${ee??""}`),[()=>Nt(_())]),b(E,D)};G(He,E=>{_()>0&&E(ze)})}t(he);var K=s(he,2);{var J=E=>{var D=Sa(),ie=a(D);Lt(ie),t(D),b(E,D)};G(K,E=>{R()>0&&E(J)})}t(L),t(te);var W=s(te,2),be=a(W);va(be,{});var r=s(be,2);xa(r,{});var m=s(r,2),A=a(m);ot(A,()=>l.children),t(m),t(W);var z=s(W,2),U=a(z),se=a(U);Ne(se,17,()=>p,Re,(E,D)=>{const ie=Y(()=>g(e(D).href,v().url.pathname));var ee=Aa(),Fe=a(ee);Le(Fe,{get name(){return e(D).icon},size:20});var Ge=s(Fe,2),Ke=a(Ge,!0);t(Ge),t(ee),P(()=>{Ce(ee,"href",`${ke??""}${e(D).href??""}`),re(ee,1,`flex flex-col items-center gap-0.5 px-3 py-2 rounded-lg transition-all min-w-[3.5rem] + ${e(ie)?"text-synapse-glow":"text-muted"}`),M(Ke,e(D).label)}),b(E,ee)});var ne=s(se,2);t(U),t(z),t(T);var Ie=s(T,2);Ht(Ie,{}),P(E=>{Ce(X,"href",`${ke??""}/graph`),re(de,1,`w-2 h-2 rounded-full ${o()?"bg-recall animate-pulse-glow":"bg-decay"}`),M(me,o()?"Connected":"Offline"),M(Ee,`${h()??""} memories`),M(Pe,`${E??""}% retention`)},[()=>($()*100).toFixed(0)]),oe("click",ae,()=>{k(x,!0),k(f,""),requestAnimationFrame(()=>{var E;return(E=e(N))==null?void 0:E.focus()})}),oe("click",ne,()=>{k(x,!0),k(f,""),requestAnimationFrame(()=>{var E;return(E=e(N))==null?void 0:E.focus()})}),b(I,F)};G(B,I=>{e(O)||e(i)?I(_e):I(je,!1)})}var Te=s(B,2);{var Be=I=>{var F=ja(),T=a(F),te=a(T),X=a(te),Z=a(X);Le(Z,{name:"search",size:16}),t(X);var j=s(X,2);Ct(j),Mt(j,L=>k(N,L),()=>e(N)),ce(2),t(te);var V=s(te,2),q=a(V);Ne(q,17,()=>e(n),Re,(L,Q)=>{var de=Da(),ue=a(de),me=a(ue);Le(me,{get name(){return e(Q).icon},size:17}),t(ue);var fe=s(ue,2),Se=a(fe,!0);t(fe);var he=s(fe,2),ge=a(he,!0);t(he),t(de),P(()=>{M(Se,e(Q).label),M(ge,e(Q).shortcut)}),oe("click",de,()=>c(e(Q).href)),b(L,de)});var ae=s(q,2);{var xe=L=>{var Q=Na();b(L,Q)};G(ae,L=>{e(n).length===0&&L(xe)})}t(V),t(T),t(F),oe("keydown",F,L=>{L.key==="Escape"&&k(x,!1)}),oe("click",F,L=>{L.target===L.currentTarget&&k(x,!1)}),oe("keydown",j,L=>{L.key==="Enter"&&e(n).length>0&&c(e(n)[0].href)}),Tt(j,()=>e(f),L=>k(f,L)),b(I,F)};G(Te,I=>{e(x)&&!e(O)&&!e(i)&&I(Be)})}b(d,y),Qe(),C()}Ue(["click","keydown"]);export{Ja as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/0.CcZXq7cA.js.br b/apps/dashboard/build/_app/immutable/nodes/0.CcZXq7cA.js.br new file mode 100644 index 0000000000000000000000000000000000000000..c7b61f55a15fc450569a950ee45620bdbbe6d1e6 GIT binary patch literal 11380 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 t99UaiofaO-TkWa{p_{const n=kt;return{page:{subscribe:n.page.subscribe},navigating:{subscribe:n.navigating.subscribe},updated:n.updated}},Tt={subscribe(n){return Mt().page.subscribe(n)}};var Et=g('
      ');function St(n){const l=()=>oe(lt,"$suppressedCount",o),[o,i]=He();var x=Ze(),T=le(x);{var y=N=>{var C=Et(),$=s(a(C),2),p=a($);t($),t(C),I(()=>m(p,`Actively forgetting ${l()??""} ${l()===1?"memory":"memories"}`)),v(N,C)};G(T,N=>{l()>0&&N(y)})}v(n,x),i()}var jt=g(''),Dt=g('
      ');function It(n,l){We(l,!1);const o=()=>oe(De,"$toasts",i),[i,x]=He(),T={DreamCompleted:"✦",ConsolidationCompleted:"◉",ConnectionDiscovered:"⟷",MemoryPromoted:"↑",MemoryDemoted:"↓",MemorySuppressed:"◬",MemoryUnsuppressed:"◉",Rac1CascadeSwept:"✺",MemoryDeleted:"✕",HookVerdictRecorded:"⚑"};function y(p){return T[p]??"◆"}function N(p){De.dismiss(p.id)}function C(p,c){(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),De.dismiss(c.id))}At();var $=Dt();Ie($,5,o,p=>p.id,(p,c)=>{var E=jt(),L=s(a(E),2),V=a(L),Z=a(V),z=a(Z,!0);t(Z);var ae=s(Z,2),de=a(ae,!0);t(ae),t(V);var u=s(V,2),f=a(u,!0);t(u),t(L),fe(2),t(E),I(M=>{we(E,"aria-label",`${e(c).title??""}: ${e(c).body??""}. Click to dismiss.`),ct(E,`--toast-color: ${e(c).color??""}; --toast-dwell: ${e(c).dwellMs??""}ms;`),m(z,M),m(de,e(c).title),m(f,e(c).body)},[()=>y(e(c).type)]),re("click",E,()=>N(e(c))),re("keydown",E,M=>C(M,e(c))),Ge("mouseenter",E,()=>De.pauseDwell(e(c).id,e(c).dwellMs)),Ge("mouseleave",E,()=>De.resumeDwell(e(c).id)),Ge("focus",E,()=>De.pauseDwell(e(c).id,e(c).dwellMs)),Ge("blur",E,()=>De.resumeDwell(e(c).id)),v(p,E)}),t($),v(n,$),qe(),x()}ze(["click","keydown"]);function Be(n){const l=n.data;if(!l||typeof l!="object")return null;const o=l.timestamp??l.at??l.occurred_at;if(o==null)return null;if(typeof o=="number")return Number.isFinite(o)?o>1e12?o:o*1e3:null;if(typeof o!="string")return null;const i=Date.parse(o);return Number.isFinite(i)?i:null}const Qe=10,ut=3e4,Ft=Qe*ut;function Nt(n,l){const o=l-Ft,i=new Array(Qe).fill(0);for(const T of n){if(T.type==="Heartbeat")continue;const y=Be(T);if(y===null||yl)continue;const N=Math.min(Qe-1,Math.floor((y-o)/ut));i[N]+=1}const x=Math.max(1,...i);return i.map(T=>({count:T,ratio:T/x}))}function Lt(n,l){const o=l-864e5;for(const i of n){if(i.type!=="DreamCompleted")continue;return(Be(i)??l)>=o?i:null}return null}function Vt(n){if(!n||!n.data)return null;const l=n.data,o=typeof l.insights_generated=="number"?l.insights_generated:typeof l.insightsGenerated=="number"?l.insightsGenerated:null;return o!==null&&Number.isFinite(o)?o:null}function Bt(n,l){let o=null,i=null;for(const N of n)if(!o&&N.type==="DreamStarted"&&(o=N),!i&&N.type==="DreamCompleted"&&(i=N),o&&i)break;if(!o)return!1;const x=Be(o)??l,T=l-300*1e3;return x=i}return!1}var Pt=g(' at risk',1),Kt=g('0 at risk',1),Ht=g(' at risk',1),Gt=g(' intentions',1),Wt=g('— intentions'),qt=g('· insights',1),zt=g(' Last dream: ',1),Yt=g('No recent dream'),Qt=g('
      '),Ut=g('telemetry unavailable'),Xt=g('· fail-open',1),Zt=g(' vetoes · appeals ',1),Jt=g('
      DREAMING...
      ',1),ea=g(''),ta=g('
      memories · avg retention
      ');function aa(n,l){We(l,!0);const o=()=>oe(dt,"$avgRetention",T),i=()=>oe(_t,"$eventFeed",T),x=()=>oe(ot,"$memoryCount",T),[T,y]=He(),N=q(()=>Math.round((o()??0)*100)),C=q(()=>(o()??0)>=.5);let $=ne(null);async function p(){try{const r=await Ke.retentionDistribution();if(Array.isArray(r.endangered)&&r.endangered.length>0){h($,r.endangered.length,!0);return}const d=r.distribution??[];let A=0;for(const R of d){const b=/^(\d+)/.exec(R.range);if(!b)continue;const w=Number.parseInt(b[1],10);Number.isFinite(w)&&w<30&&(A+=R.count??0)}h($,A,!0)}catch{h($,null)}}let c=ne(null);async function E(){var r;try{const d=await Ke.intentions("active");h(c,d.total??((r=d.intentions)==null?void 0:r.length)??0,!0)}catch{h(c,null)}}let L=ne(ht(Date.now()));const V=q(()=>{const r=i(),d=Lt(r,e(L)),A=d?Be(d)??e(L):null,R=A!==null?e(L)-A:null;return{isDreaming:Bt(r,e(L)),recent:d,recentMsAgo:R,insights:Vt(d)}}),Z=q(()=>Nt(i(),e(L)));let z=ne(null),ae=ne(!1);async function de(){try{h(z,await Ke.sanhedrin.telemetry(7),!0),h(ae,!1)}catch{h(z,null),h(ae,!0)}}const u=q(()=>Ot(i(),e(L)));Xe(()=>{p(),E(),de();const r=setInterval(()=>{h(L,Date.now(),!0)},1e3),d=setInterval(()=>{p(),E(),de()},6e4);return()=>{clearInterval(r),clearInterval(d)}});var f=ta();let M;var he=a(f),ge=a(he),Fe=a(ge);let $e;var j=s(Fe,2);let D;t(ge);var k=s(ge,2),se=a(k,!0);t(k);var Y=s(k,6);let P;var pe=a(Y);t(Y),fe(2),t(he);var S=s(he,4),F=a(S);{var _=r=>{var d=Pt(),A=le(d),R=a(A,!0);t(A),fe(2),I(()=>m(R,e($))),v(r,d)},K=r=>{var d=Kt();fe(2),v(r,d)},X=r=>{var d=Ht();fe(2),v(r,d)};G(F,r=>{e($)!==null&&e($)>0?r(_):e($)===0?r(K,1):r(X,!1)})}t(S);var ce=s(S,4),ue=a(ce);{var me=r=>{var d=Gt(),A=le(d);let R;var b=s(A,2);let w;var O=a(b,!0);t(b),fe(2),I(()=>{R=te(A,1,"inline-flex h-2 w-2 rounded-full svelte-1kk3799",null,R,{"bg-node-pattern":e(c)>5,"animate-ping-slow":e(c)>5,"bg-muted":e(c)<=5}),w=te(b,1,"tabular-nums svelte-1kk3799",null,w,{"text-node-pattern":e(c)>5,"text-text":e(c)>0&&e(c)<=5,"text-muted":e(c)===0}),m(O,e(c))}),v(r,d)},be=r=>{var d=Wt();v(r,d)};G(ue,r=>{e(c)!==null?r(me):r(be,!1)})}t(ce);var J=s(ce,4),Ae=a(J);{var Ce=r=>{var d=zt(),A=s(le(d),4),R=a(A,!0);t(A);var b=s(A,2);{var w=O=>{var H=qt(),W=s(le(H),2),ee=a(W,!0);t(W),fe(2),I(()=>m(ee,e(V).insights)),v(O,H)};G(b,O=>{e(V).insights!==null&&O(w)})}I(O=>m(R,O),[()=>Rt(e(V).recentMsAgo)]),v(r,d)},Ne=r=>{var d=Yt();v(r,d)};G(Ae,r=>{e(V).recent&&e(V).recentMsAgo!==null?r(Ce):r(Ne,!1)})}t(J);var Te=s(J,4),Ee=s(a(Te),2);Ie(Ee,21,()=>e(Z),Ve,(r,d)=>{var A=Qt();I(R=>ct(A,`height: ${R??""}%; opacity: ${e(d).count===0?.18:.5+e(d).ratio*.5};`),[()=>Math.max(10,e(d).ratio*100)]),v(r,A)}),t(Ee),t(Te);var Se=s(Te,4),Oe=s(a(Se),2);{var je=r=>{var d=Ut();v(r,d)},Le=r=>{var d=Zt(),A=le(d),R=a(A,!0);t(A);var b=s(A,6),w=a(b,!0);t(b);var O=s(b,4);{var H=W=>{var ee=Xt(),ie=s(le(ee),2),Pe=a(ie,!0);t(ie),fe(2),I(()=>m(Pe,e(z).failOpen)),v(W,ee)};G(O,W=>{var ee;(ee=e(z))!=null&&ee.failOpen&&W(H)})}I(()=>{var W,ee,ie;m(R,((ee=(W=e(z))==null?void 0:W.byVerdict)==null?void 0:ee.VETO)??"—"),m(w,((ie=e(z))==null?void 0:ie.appeals)??"—")}),v(r,d)};G(Oe,r=>{e(ae)?r(je):r(Le,!1)})}t(Se);var B=s(Se,2);{var Q=r=>{var d=Jt();fe(2),v(r,d)};G(B,r=>{e(V).isDreaming&&r(Q)})}var U=s(B,4);{var ve=r=>{var d=ea();v(r,d)};G(U,r=>{e(u)&&r(ve)})}t(f),I(()=>{M=te(f,1,"ambient-strip relative flex h-9 w-full items-center gap-0 overflow-hidden border-b border-synapse/15 bg-black/40 px-3 text-[11px] text-dim backdrop-blur-md svelte-1kk3799",null,M,{"ambient-flash":e(u)}),$e=te(Fe,1,"absolute inline-flex h-full w-full animate-ping rounded-full opacity-75 svelte-1kk3799",null,$e,{"bg-recall":e(C),"bg-warning":!e(C)}),D=te(j,1,"relative inline-flex h-2 w-2 rounded-full svelte-1kk3799",null,D,{"bg-recall":e(C),"bg-warning":!e(C)}),m(se,x()),P=te(Y,1,"svelte-1kk3799",null,P,{"text-recall":e(C),"text-warning":!e(C)}),m(pe,`${e(N)??""}%`)}),v(n,f),qe(),y()}var sa=g(" "),ra=g('
    • '),na=g(' ',1),ia=g('

      Appeal recorded.

      '),la=g('

      No appealable veto in this receipt.

      '),oa=g('
      Claim

      Verdict

      Precedent
        Fix

        Appeal
        '),da=g('
        ');function ca(n,l){We(l,!0);const o=["PASS","NOTE","CAUTION","VETO","APPEALED"];let i=ne(null),x=ne(""),T=ne(!1),y=ne(null),N=ne(null),C=q(()=>{var u;return((u=e(i))==null?void 0:u.verdictBar)??(e(x)?"CAUTION":"NOTE")}),$=q(()=>{var u,f;return((u=e(i))==null?void 0:u.claims.find(M=>M.decision==="veto"))??((f=e(i))==null?void 0:f.claims.find(M=>M.decision==="appealed"))??null}),p=q(()=>{var u;return e($)??((u=e(i))==null?void 0:u.claims[0])??null}),c=q(()=>!!e(i)||!!e(x));Xe(()=>{E();const u=window.setInterval(E,4e3);return()=>window.clearInterval(u)});async function E(){var u;try{const f=await Ke.sanhedrin.latest();h(i,f.receipt,!0),h(x,""),((u=f.receipt)==null?void 0:u.verdictBar)==="VETO"&&f.receipt.id!==e(N)&&(h(T,!0),h(N,f.receipt.id,!0))}catch(f){h(x,f instanceof Error?f.message:String(f),!0)}}async function L(u){var f;if(!(!e($)||((f=e(i))==null?void 0:f.verdictBar)!=="VETO")){h(y,u,!0);try{const M=await Ke.sanhedrin.appeal(u,void 0,e($).id,e(i).id);h(i,M.receipt,!0),h(T,!0),h(x,"")}catch(M){h(x,M instanceof Error?M.message:String(M),!0)}finally{h(y,null)}}}function V(u){if(!u)return"";const f=new Date(u);return Number.isNaN(f.getTime())?"":f.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function Z(u){var f;return(f=u==null?void 0:u.precedent)!=null&&f.length?u.precedent.map(M=>M.summary??M.command??"Precedent recorded.").slice(0,3):["No precedent attached."]}var z=Ze(),ae=le(z);{var de=u=>{var f=da(),M=a(f),he=s(a(M),2);Ie(he,21,()=>o,Ve,(S,F)=>{var _=sa();let K;var X=a(_,!0);t(_),I(()=>{we(_,"aria-current",e(F)===e(C)?"true":void 0),K=te(_,1,"svelte-1j425e6",null,K,{active:e(F)===e(C)}),m(X,e(F))}),v(S,_)}),t(he);var ge=s(he,2),Fe=a(ge);t(ge);var $e=s(ge,2),j=a($e);{var D=S=>{var F=et();I(()=>m(F,e(x))),v(S,F)},k=S=>{var F=et();I(()=>m(F,e(i).summary)),v(S,F)};G(j,S=>{e(x)?S(D):e(i)&&S(k,1)})}t($e);var se=s($e,2),Y=a(se,!0);t(se),t(M);var P=s(M,2);{var pe=S=>{var F=oa(),_=a(F),K=a(_),X=s(a(K),2),ce=a(X,!0);t(X),t(K);var ue=s(K,2),me=s(a(ue),2),be=a(me);t(me),t(ue);var J=s(ue,2),Ae=s(a(J),2);Ie(Ae,21,()=>Z(e(p)),Ve,(B,Q)=>{var U=ra(),ve=a(U,!0);t(U),I(()=>m(ve,e(Q))),v(B,U)}),t(Ae),t(J);var Ce=s(J,2),Ne=s(a(Ce),2),Te=a(Ne,!0);t(Ne),t(Ce),t(_);var Ee=s(_,2),Se=s(a(Ee),2);{var Oe=B=>{var Q=na(),U=le(Q),ve=a(U,!0);t(U);var r=s(U,2),d=a(r,!0);t(r);var A=s(r,2),R=a(A,!0);t(A),I((b,w,O)=>{U.disabled=b,m(ve,e(y)==="stale"?"Saving":"Stale"),r.disabled=w,m(d,e(y)==="wrong"?"Saving":"Wrong"),A.disabled=O,m(R,e(y)==="too_strict"?"Saving":"Too strict")},[()=>!!e(y),()=>!!e(y),()=>!!e(y)]),re("click",U,()=>L("stale")),re("click",r,()=>L("wrong")),re("click",A,()=>L("too_strict")),v(B,Q)},je=B=>{var Q=ia();v(B,Q)},Le=B=>{var Q=la();v(B,Q)};G(Se,B=>{e($)&&e(i).verdictBar==="VETO"?B(Oe):e(i).verdictBar==="APPEALED"?B(je,1):B(Le,!1)})}t(Ee),t(F),I(()=>{var B,Q,U,ve;m(ce,((B=e(p))==null?void 0:B.text)??e(i).draftPreview),m(be,`${((Q=e(p))==null?void 0:Q.decision)??e(i).overall??""} · ${((U=e(p))==null?void 0:U.evidence_state)??e(C)??""}`),m(Te,((ve=e(p))==null?void 0:ve.fix)||"No change required.")}),v(S,F)};G(P,S=>{e(T)&&e(i)&&S(pe)})}t(f),I((S,F)=>{te(f,1,S,"svelte-1j425e6"),we(M,"aria-expanded",e(T)),m(Fe,`Current verdict: ${e(C)??""}`),m(Y,F)},[()=>`verdict-bar tone-${e(C).toLowerCase()}`,()=>{var S;return V((S=e(i))==null?void 0:S.createdAt)}]),re("click",M,()=>h(T,!e(T))),v(u,f)};G(ae,u=>{e(c)&&u(de)})}v(n,z),qe()}ze(["click"]);const mt="vestige.theme",rt="vestige-theme-light",Re=vt("dark"),Ue=vt(!0),nt=Ct([Re,Ue],([n,l])=>n==="auto"?l?"dark":"light":n);function va(n){return n==="dark"||n==="light"||n==="auto"}function pa(n){if(va(n)){Re.set(n);try{localStorage.setItem(mt,n)}catch{}}}function Ye(){const n=pt(Re);pa(n==="dark"?"light":n==="light"?"auto":"dark")}function ua(){if(document.getElementById(rt))return;const n=document.createElement("style");n.id=rt,n.textContent=` -/* Vestige light-mode overrides — injected by theme.ts. - * Activated by [data-theme='light'] on . - * Tokens mirror the real names used in app.css so the cascade stays clean. */ -[data-theme='light'] { - /* Core surface palette (slate scale) */ - --color-void: #f8fafc; /* slate-50 — page background */ - --color-abyss: #f1f5f9; /* slate-100 */ - --color-deep: #e2e8f0; /* slate-200 */ - --color-surface: #f1f5f9; /* slate-100 */ - --color-elevated: #e2e8f0; /* slate-200 */ - --color-subtle: #cbd5e1; /* slate-300 */ - --color-muted: #94a3b8; /* slate-400 */ - --color-dim: #475569; /* slate-600 */ - --color-text: #0f172a; /* slate-900 */ - --color-bright: #020617; /* slate-950 */ -} - -/* Baseline body/html wiring — app.css sets these against the dark - * tokens; we just let the variables do the work. Reassert for clarity. */ -[data-theme='light'] html, -html[data-theme='light'] { - background: var(--color-void); - color: var(--color-text); -} - -/* Glass surfaces — recompose on a light canvas. The original alphas - * are tuned for dark; invert-and-tint for light so panels still read - * as elevated instead of vanishing. */ -[data-theme='light'] .glass { - background: rgba(255, 255, 255, 0.65); - border: 1px solid rgba(99, 102, 241, 0.12); - box-shadow: - inset 0 1px 0 0 rgba(255, 255, 255, 0.6), - 0 4px 24px rgba(15, 23, 42, 0.08); -} -[data-theme='light'] .glass-subtle { - background: rgba(255, 255, 255, 0.55); - border: 1px solid rgba(99, 102, 241, 0.1); - box-shadow: - inset 0 1px 0 0 rgba(255, 255, 255, 0.5), - 0 2px 12px rgba(15, 23, 42, 0.06); -} -[data-theme='light'] .glass-sidebar { - background: rgba(248, 250, 252, 0.82); - border-right: 1px solid rgba(99, 102, 241, 0.14); - box-shadow: - inset -1px 0 0 0 rgba(255, 255, 255, 0.4), - 4px 0 24px rgba(15, 23, 42, 0.08); -} -[data-theme='light'] .glass-panel { - background: rgba(255, 255, 255, 0.75); - border: 1px solid rgba(99, 102, 241, 0.14); - box-shadow: - inset 0 1px 0 0 rgba(255, 255, 255, 0.5), - 0 8px 32px rgba(15, 23, 42, 0.1); -} - -/* Halve glow intensity — neon accents stay recognizable without - * washing out on slate-50. */ -[data-theme='light'] .glow-synapse { - box-shadow: 0 0 10px rgba(99, 102, 241, 0.15), 0 0 30px rgba(99, 102, 241, 0.05); -} -[data-theme='light'] .glow-dream { - box-shadow: 0 0 10px rgba(168, 85, 247, 0.15), 0 0 30px rgba(168, 85, 247, 0.05); -} -[data-theme='light'] .glow-memory { - box-shadow: 0 0 10px rgba(59, 130, 246, 0.15), 0 0 30px rgba(59, 130, 246, 0.05); -} - -/* Ambient orbs are gorgeous on black and blinding on white. Tame them. */ -[data-theme='light'] .ambient-orb { - opacity: 0.18; - filter: blur(100px); -} - -/* Scrollbar recolor for the lighter surface. */ -[data-theme='light'] ::-webkit-scrollbar-thumb { - background: #cbd5e1; -} -[data-theme='light'] ::-webkit-scrollbar-thumb:hover { - background: #94a3b8; -} -`,document.head.appendChild(n)}function it(n){document.documentElement.dataset.theme=n}let ke=null,Me=null,_e=null,ye=null;function ma(){ke&&Me&&ke.removeEventListener("change",Me),ye==null||ye(),_e==null||_e(),ke=null,Me=null,ye=null,_e=null,ua();let n="dark";try{const l=localStorage.getItem(mt);(l==="dark"||l==="light"||l==="auto")&&(n=l)}catch{}return Re.set(n),ke=window.matchMedia("(prefers-color-scheme: dark)"),Ue.set(ke.matches),Me=l=>Ue.set(l.matches),ke.addEventListener("change",Me),it(pt(nt)),ye=nt.subscribe(it),_e=Re.subscribe(()=>{}),()=>{ke&&Me&&ke.removeEventListener("change",Me),ke=null,Me=null,ye==null||ye(),_e==null||_e(),ye=null,_e=null}}var fa=g('');function ha(n){const l=()=>oe(Re,"$theme",o),[o,i]=He(),x={dark:"Dark",light:"Light",auto:"Auto (system)"},T={dark:"light",light:"auto",auto:"dark"};let y=q(l),N=q(()=>T[e(y)]),C=q(()=>`Toggle theme: ${x[e(y)]} (click for ${x[e(N)]})`);var $=fa(),p=a($),c=a(p);let E;var L=s(c,2);let V;var Z=s(L,2);let z;t(p),t($),I(()=>{we($,"aria-label",e(C)),we($,"title",e(C)),we($,"data-mode",e(y)),E=te(c,0,"icon svelte-1cmi4dh",null,E,{active:e(y)==="dark"}),V=te(L,0,"icon svelte-1cmi4dh",null,V,{active:e(y)==="light"}),z=te(Z,0,"icon svelte-1cmi4dh",null,z,{active:e(y)==="auto"})}),re("click",$,function(...ae){Ye==null||Ye.apply(this,ae)}),v(n,$),i()}ze(["click"]);var ga=g(' '),ba=g('
        '),xa=g(''),ka=g(' '),_a=g('
        ',1),ya=g(''),wa=g('
        No matches
        '),$a=g('
        esc
        '),Aa=g(" ",1);function za(n,l){We(l,!0);const o=()=>oe(Tt,"$page",C),i=()=>oe(wt,"$isConnected",C),x=()=>oe(ot,"$memoryCount",C),T=()=>oe(dt,"$avgRetention",C),y=()=>oe(yt,"$uptimeSeconds",C),N=()=>oe(lt,"$suppressedCount",C),[C,$]=He();let p=ne(!1),c=ne(""),E=ne(void 0),L=q(()=>o().url.pathname.startsWith(xe)?o().url.pathname.slice(xe.length)||"/":o().url.pathname),V=q(()=>e(L)==="/waitlist"||e(L).startsWith("/waitlist/"));Xe(()=>{e(V)||st.connect();const j=ma();function D(k){if(e(V))return;if((k.metaKey||k.ctrlKey)&&k.key==="k"){k.preventDefault(),h(p,!e(p)),h(c,""),e(p)&&requestAnimationFrame(()=>{var P;return(P=e(E))==null?void 0:P.focus()});return}if(k.key==="Escape"&&e(p)){h(p,!1);return}if(k.target instanceof HTMLInputElement||k.target instanceof HTMLTextAreaElement)return;if(k.key==="/"){k.preventDefault();const P=document.querySelector('input[type="text"]');P==null||P.focus();return}const Y={g:"/graph",m:"/memories",t:"/timeline",f:"/feed",e:"/explore",i:"/intentions",s:"/stats",r:"/reasoning",a:"/activation",d:"/dreams",c:"/schedule",p:"/importance",u:"/duplicates",x:"/contradictions",n:"/patterns"}[k.key.toLowerCase()];Y&&!k.metaKey&&!k.ctrlKey&&!k.altKey&&(k.preventDefault(),at(`${xe}${Y}`))}return window.addEventListener("keydown",D),()=>{st.disconnect(),window.removeEventListener("keydown",D),j()}});const Z=[{href:"/graph",label:"Graph",icon:"◎",shortcut:"G"},{href:"/reasoning",label:"Reasoning",icon:"✦",shortcut:"R"},{href:"/memories",label:"Memories",icon:"◈",shortcut:"M"},{href:"/timeline",label:"Timeline",icon:"◷",shortcut:"T"},{href:"/feed",label:"Feed",icon:"◉",shortcut:"F"},{href:"/explore",label:"Explore",icon:"◬",shortcut:"E"},{href:"/activation",label:"Activation",icon:"◈",shortcut:"A"},{href:"/dreams",label:"Dreams",icon:"✧",shortcut:"D"},{href:"/schedule",label:"Schedule",icon:"◷",shortcut:"C"},{href:"/importance",label:"Importance",icon:"◎",shortcut:"P"},{href:"/duplicates",label:"Duplicates",icon:"◉",shortcut:"U"},{href:"/contradictions",label:"Contradictions",icon:"⚠",shortcut:"X"},{href:"/patterns",label:"Patterns",icon:"▦",shortcut:"N"},{href:"/intentions",label:"Intentions",icon:"◇",shortcut:"I"},{href:"/stats",label:"Stats",icon:"◫",shortcut:"S"},{href:"/settings",label:"Settings",icon:"⚙",shortcut:","}],z=Z.slice(0,5);function ae(j,D){const k=D.startsWith(xe)?D.slice(xe.length)||"/":D;return j==="/graph"?k==="/"||k==="/graph":k.startsWith(j)}let de=q(()=>e(c)?Z.filter(j=>j.label.toLowerCase().includes(e(c).toLowerCase())):Z);function u(j){h(p,!1),h(c,""),at(`${xe}${j}`)}var f=Aa(),M=le(f);{var he=j=>{var D=Ze(),k=le(D);tt(k,()=>l.children),v(j,D)},ge=j=>{var D=_a(),k=s(le(D),6),se=a(k),Y=a(se),P=s(Y,2);Ie(P,21,()=>Z,Ve,(b,w)=>{const O=q(()=>ae(e(w).href,o().url.pathname));var H=ga(),W=a(H),ee=a(W,!0);t(W);var ie=s(W,2),Pe=a(ie,!0);t(ie);var Je=s(ie,2),ft=a(Je,!0);t(Je),t(H),I(()=>{we(H,"href",`${xe??""}${e(w).href??""}`),te(H,1,`flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all duration-200 text-sm - ${e(O)?"bg-synapse/15 text-synapse-glow border border-synapse/30 shadow-[0_0_12px_rgba(99,102,241,0.15)] nav-active-border":"text-dim hover:text-text hover:bg-white/[0.03] border border-transparent"}`),m(ee,e(w).icon),m(Pe,e(w).label),m(ft,e(w).shortcut)}),v(b,H)}),t(P);var pe=s(P,2),S=a(pe);t(pe);var F=s(pe,2),_=a(F),K=a(_),X=s(K,2),ce=a(X,!0);t(X);var ue=s(X,2),me=a(ue);ha(me),t(ue),t(_);var be=s(_,2),J=a(be),Ae=a(J);t(J);var Ce=s(J,2),Ne=a(Ce);t(Ce);var Te=s(Ce,2);{var Ee=b=>{var w=ba(),O=a(w);t(w),I(H=>m(O,`up ${H??""}`),[()=>$t(y())]),v(b,w)};G(Te,b=>{y()>0&&b(Ee)})}t(be);var Se=s(be,2);{var Oe=b=>{var w=xa(),O=a(w);St(O),t(w),v(b,w)};G(Se,b=>{N()>0&&b(Oe)})}t(F),t(se);var je=s(se,2),Le=a(je);aa(Le,{});var B=s(Le,2);ca(B,{});var Q=s(B,2),U=a(Q);tt(U,()=>l.children),t(Q),t(je);var ve=s(je,2),r=a(ve),d=a(r);Ie(d,17,()=>z,Ve,(b,w)=>{const O=q(()=>ae(e(w).href,o().url.pathname));var H=ka(),W=a(H),ee=a(W,!0);t(W);var ie=s(W,2),Pe=a(ie,!0);t(ie),t(H),I(()=>{we(H,"href",`${xe??""}${e(w).href??""}`),te(H,1,`flex flex-col items-center gap-0.5 px-3 py-2 rounded-lg transition-all min-w-[3.5rem] - ${e(O)?"text-synapse-glow":"text-muted"}`),m(ee,e(w).icon),m(Pe,e(w).label)}),v(b,H)});var A=s(d,2);t(r),t(ve),t(k);var R=s(k,2);It(R,{}),I(b=>{we(Y,"href",`${xe??""}/graph`),te(K,1,`w-2 h-2 rounded-full ${i()?"bg-recall animate-pulse-glow":"bg-decay"}`),m(ce,i()?"Connected":"Offline"),m(Ae,`${x()??""} memories`),m(Ne,`${b??""}% retention`)},[()=>(T()*100).toFixed(0)]),re("click",S,()=>{h(p,!0),h(c,""),requestAnimationFrame(()=>{var b;return(b=e(E))==null?void 0:b.focus()})}),re("click",A,()=>{h(p,!0),h(c,""),requestAnimationFrame(()=>{var b;return(b=e(E))==null?void 0:b.focus()})}),v(j,D)};G(M,j=>{e(V)?j(he):j(ge,!1)})}var Fe=s(M,2);{var $e=j=>{var D=$a(),k=a(D),se=a(k),Y=s(a(se),2);gt(Y),xt(Y,_=>h(E,_),()=>e(E)),fe(2),t(se);var P=s(se,2),pe=a(P);Ie(pe,17,()=>e(de),Ve,(_,K)=>{var X=ya(),ce=a(X),ue=a(ce,!0);t(ce);var me=s(ce,2),be=a(me,!0);t(me);var J=s(me,2),Ae=a(J,!0);t(J),t(X),I(()=>{m(ue,e(K).icon),m(be,e(K).label),m(Ae,e(K).shortcut)}),re("click",X,()=>u(e(K).href)),v(_,X)});var S=s(pe,2);{var F=_=>{var K=wa();v(_,K)};G(S,_=>{e(de).length===0&&_(F)})}t(P),t(k),t(D),re("keydown",D,_=>{_.key==="Escape"&&h(p,!1)}),re("click",D,_=>{_.target===_.currentTarget&&h(p,!1)}),re("keydown",Y,_=>{_.key==="Enter"&&e(de).length>0&&u(e(de)[0].href)}),bt(Y,()=>e(c),_=>h(c,_)),v(j,D)};G(Fe,j=>{e(p)&&!e(V)&&j($e)})}v(n,f),qe(),$()}ze(["click","keydown"]);export{za as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/0.D_38hT9S.js.br b/apps/dashboard/build/_app/immutable/nodes/0.D_38hT9S.js.br deleted file mode 100644 index 0db794bd4f341ac961d27ec178cc150ae13acf86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9946 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 b2*1Uj6UUI3kcVQl@#y~p#G}}4V}Jkv69`+{ diff --git a/apps/dashboard/build/_app/immutable/nodes/1.8UKMSR8s.js b/apps/dashboard/build/_app/immutable/nodes/1.8UKMSR8s.js new file mode 100644 index 0000000..46ffb4c --- /dev/null +++ b/apps/dashboard/build/_app/immutable/nodes/1.8UKMSR8s.js @@ -0,0 +1 @@ +import"../chunks/Bzak7iHL.js";import{i as h}from"../chunks/BfiOPhbz.js";import{p as g,aH as l,Y as v,a as d,b as _,f as x,c as e,r as o,X as $}from"../chunks/CGq8RnJq.js";import{s as p}from"../chunks/DAau0uzT.js";import{p as m}from"../chunks/DY7cP31Q.js";import{s as b}from"../chunks/DJDK-KWF.js";const k={get error(){return m.error},get status(){return m.status}};b.updated.check;const i=k;var E=x("

        ",1);function y(f,c){g(c,!1),h();var t=E(),r=l(t),n=e(r,!0);o(r);var a=$(r,2),u=e(a,!0);o(a),v(()=>{var s;p(n,i.status),p(u,(s=i.error)==null?void 0:s.message)}),d(f,t),_()}export{y as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/1.8UKMSR8s.js.br b/apps/dashboard/build/_app/immutable/nodes/1.8UKMSR8s.js.br new file mode 100644 index 0000000..79f316f --- /dev/null +++ b/apps/dashboard/build/_app/immutable/nodes/1.8UKMSR8s.js.br @@ -0,0 +1,4 @@ +g`¶:I1"e9Q?硞 SAd ~c,w,R=zꨳ{wg &ЅlW@ P`ﴴrAީ 9K@&e>qFkBMb*zrH zqaOrV_TOCx7esFMEa!dNb9!V^YU4Ul)a991x$WL=SbiZ#FVU~<#Ij8*iI_!Mof=*2 zo2h(#%ch%svkc}8*eGxglYk|#fCQ!iKad8jfCmUL0UEvoPX4#Jdsv0&R|)0n_~;KyikQb}0ssJpY_~xG literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js b/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js deleted file mode 100644 index a6a9300..0000000 --- a/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js +++ /dev/null @@ -1 +0,0 @@ -import"../chunks/Bzak7iHL.js";import{i as h}from"../chunks/BUoSzNdg.js";import{p as g,f as d,t as l,a as v,d as s,r as o,e as _}from"../chunks/CpWkWWOo.js";import{s as p}from"../chunks/BlVfL1ME.js";import{a as x,f as $}from"../chunks/CHOnp4oo.js";import{p as m}from"../chunks/g4XF1_b9.js";import{s as k}from"../chunks/CtgMtoAJ.js";const b={get error(){return m.error},get status(){return m.status}};k.updated.check;const i=b;var E=$("

        ",1);function C(f,n){g(n,!1),h();var t=E(),r=d(t),c=s(r,!0);o(r);var a=_(r,2),u=s(a,!0);o(a),l(()=>{var e;p(c,i.status),p(u,(e=i.error)==null?void 0:e.message)}),x(f,t),v()}export{C as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.br b/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.br deleted file mode 100644 index fe9dbd965d2c79bc2716cf3c8f90619e6397b99a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmV-c0jd5Qi2`7Z!nWD-k;{p(h#^S=Ni;OC{-uFw2<-v16DM1?oU)fwGs!%yEdvT1 zd86pE^!@*DzBfRwXkwW?%+|7^o;Aj_^eJ|-!jIqPwb^{UvucNwygaBD{JC~IU2=Ma z*IRelA~RL{b4TB5h)+LN(5=YCy{Mu-(W|{uLB&{zQ=rPh3PC9fnNodiB#;vWP*X=KDa! oC^Xw!tq#*ZJM49)PTa-5<7Myjq-t>GREc@+-xj4-M(E*;9?ie9`Tzg` diff --git a/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.gz b/apps/dashboard/build/_app/immutable/nodes/1.CzSrpo2A.js.gz deleted file mode 100644 index ed5979d5b8134995526f65cc989a01e8d4545b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmV-_0f7D=iwFP!000026J?M=Yuqpph41|p%96tj4Bof|O6zD#yKD(1X%3~`-WIJb z+p29zNb<78_`e5v_h90So|yOP&1h6-jSH(JS?6`H8^8YkDw=_WR%1E%&pxw`~8cVXZlFmMfdh^ z`IJ8I=H%4qeCd9>h<<$0_THGqxZQiQy8rhhJsdwThG-UW-5NnPQtMrzlGI9oo?8} zdOB^q+0BYl%*tNpK^e`qP?E->0!=q5QVlpg4txhlju#M+a_+&=%^hY2+{G9C0FFK) z_1uHFdIG5hK)x9wA~Op)sq45%7J357)#Y=@x$fKc>&d8s-F=ZsC%qSy#1ZKXB?Y7t d;3&`2Lbq|Dx#_IYQin17@CGqW1uu#M006L{#z_DG diff --git a/apps/dashboard/build/_app/immutable/nodes/10.8yVvC2-0.js b/apps/dashboard/build/_app/immutable/nodes/10.8yVvC2-0.js new file mode 100644 index 0000000..1ac627b --- /dev/null +++ b/apps/dashboard/build/_app/immutable/nodes/10.8yVvC2-0.js @@ -0,0 +1 @@ +import"../chunks/Bzak7iHL.js";import{d as re,o as ie,a as oe,b as q,e as le}from"../chunks/DAau0uzT.js";import{p as se,d as p,e as ae,a as ce,b as ue,h as de,g as r,f as pe,u as he,c as fe,s as l,$ as me,r as xe}from"../chunks/CGq8RnJq.js";import{h as Ee}from"../chunks/De_e6MzK.js";import{b as ge}from"../chunks/Ccqjq5DS.js";import{r as ye}from"../chunks/DJDK-KWF.js";import{a as $}from"../chunks/D35IQVqe.js";import{r as A,O as Re}from"../chunks/BMB5u1EX.js";import{T as Oe}from"../chunks/D7ozXiSB.js";import{L as Ce,F as K,l as Ie}from"../chunks/BeGBxCGK.js";var Te=pe('
        ');function ke(X,z){se(z,!0);const F=[...A("#22C7DE"),1],Q=[...A("#FF3B30"),.92],y=[...A("#29F2A9"),.62],k=40,D=36,V=-1e5;let u=p(null),c=null,i=null,h=null,v=null,f=p(ae([])),m=p(null),d=p(""),R=p(!0),O=p(null),b=null,C=p(null),I=p(null),T=p(null),E=0;ie(()=>{const e=new URLSearchParams(window.location.search);l(d,e.get("q")??"",!0),U()}),oe(()=>{i==null||i.dispose(),h==null||h.dispose(),i=null,h=null,c=null});async function P(e){c=e;const t=new Ce(e);h=t,t.setCells(W()),e.addPass(t);const n=new Oe(e);i=n,await n.init(),n.setText(S()),e.addPass(n),e.demoClock.reset()}function H(e){const t=e.replace(/\s+/g," ").trim();if(t.length<=280)return t;const n=t.slice(0,280),o=n.lastIndexOf(" ");return o>200?n.slice(0,o):n}function G(){try{ye(`?q=${encodeURIComponent(r(d))}`,{})}catch(e){console.warn("[explore] URL sync failed — walk state is not shareable:",e)}}async function U(){var t;const e=++E;if(l(O,null),!r(d).trim())try{const n=await $.memories.list({limit:"1"});if(e!==E)return;const o=(t=n.memories)==null?void 0:t[0];o!=null&&o.content&&(l(d,H(o.content),!0),l(T,o.id,!0),l(I,o.id.slice(0,8),!0),G())}catch{}if(!r(d).trim()){l(R,!1),l(m,null),l(f,[],!0),i==null||i.setText(S()),c==null||c.demoClock.reset();return}l(R,!0),i==null||i.setText(S());try{const n=r(T)?await $.explore(r(T),"associations",void 0,k):await $.search(r(d),k);if(e!==E)return;l(m,"query"in n?n:null,!0),l(f,n.results,!0)}catch(n){if(e!==E)return;l(m,null),l(f,[],!0),l(O,n instanceof Error?n.message:"UNKNOWN EXPLORE FETCH ERROR",!0)}finally{e===E&&(l(R,!1),l(C,null),i==null||i.setText(S()),h==null||h.setCells(W()),c==null||c.demoClock.reset())}}function W(){const e=r(f).map((t,n)=>({id:t.id,score:N(t),hue:n===0?K.oxygen:K.bridge,energy:N(t),metric2:L(t),selected:n===0,kind:"explore-neighbor",payload:t}));return Ie(e,{maxRadius:.9,minCellR:.035,maxCellR:.1})}function w(e){return e.replace(/[\u2014\u2013]/g,"-").replace(/[\u2018\u2019]/g,"'").replace(/[\u201C\u201D]/g,'"').replace(/\u2026/g,"...").replace(/[^\x20-\x7E]/g,"?")}function B(e){return Math.min(1,Math.max(0,Number.isFinite(e)?e:.5))}function g(e,t=.5){return typeof e=="number"&&Number.isFinite(e)?e:t}function N(e){return B(g(e.similarity,g(e.score,g(e.relevance,g(e.combinedScore,e.retrievalStrength)))))}function L(e){return B(g(e.retention,e.retentionStrength))}function j(e){const t=w(e.content).replace(/\s+/g," ").trim().slice(0,52);return w(`${t} | ${e.id.slice(0,8)} | ${Math.round(N(e)*100)}% | ${Math.round(L(e)*100)}%`)}function M(e,t=y){return{id:"explore:status",kind:"explore-status",text:w(e),x:-.58,y:.02,size:.044,color:t,depth:.78,weight:.62,revealSpan:32,maxWidthEm:50}}function S(){var s;if(r(R))return[M(r(C)?`WALKING FROM ${r(C)}...`:"LOADING SEARCH NEIGHBORS...",F)];if(r(O))return[M(`ERROR - ${r(O)}`.slice(0,72),Q)];if(r(f).length===0){if(!r(d).trim())return[M("SEMANTIC EXPEDITION - EMPTY BRAIN, INGEST A MEMORY TO EXPLORE",y)];const a=(s=r(m))!=null&&s.query?`NO NEIGHBORS FOR "${r(m).query}" | ${r(m).durationMs}ms`:`NO NEIGHBORS FOR "${r(d)}"`;return[M(a,y)]}const e=r(f).slice(0,D),t=.72,n=1.5/Math.max(1,D-1);return[{id:"explore:origin",kind:"explore-origin",text:w(r(I)?`EXPEDITION SEEDED FROM NEWEST MEMORY ${r(I)} - CLICK ANY THOUGHT TO WALK`:`SEMANTIC NEIGHBORHOOD - ${e.length} THOUGHTS - CLICK TO WALK`),x:-.88,y:.82,size:.022,color:y,depth:.85,weight:.6,revealSpan:24,maxWidthEm:60},...e.map((a,Y)=>({id:`explore:${a.id}`,kind:"explore-neighbor",memoryId:a.id,text:j(a),x:-.88,y:t-Y*n,size:.026,color:F,depth:N(a),weight:L(a),startFrame:V+Y*2,revealSpan:20,maxWidthEm:46,hitPadX:.03,hitPadY:.015}))]}function _(e){if(!r(u))return null;const t=r(u).getBoundingClientRect();return t.width<=0||t.height<=0?null:{x:(e.clientX-t.left)/t.width*2-1,y:-((e.clientY-t.top)/t.height*2-1)}}function J(e){if(!r(u)||!c)return;const t=r(u).getBoundingClientRect(),n=Math.max(1e-4,t.width/Math.max(1,t.height)),o={x:e.x*Math.max(n,1),y:e.y/Math.min(n,1)},s=v??o,a={x:s.x+(o.x-s.x)*.35,y:s.y+(o.y-s.y)*.35};v=a,c.setCursorPreNdc(a.x,a.y,a.x-s.x,a.y-s.y)}function Z(e){const t=_(e);if(!t)return;J(t);const n=(i==null?void 0:i.pickAt(t.x,t.y))??null,o=(n==null?void 0:n.kind)==="explore-neighbor"?n.id:null;o!==b&&(b=o,i==null||i.setRunDepth(o,1)),r(u)&&(r(u).style.cursor=o?"crosshair":"default")}function ee(){v=null,b=null,c==null||c.setCursorPreNdc(999,999,0,0),i==null||i.setRunDepth(null),r(u)&&(r(u).style.cursor="default")}async function te(e){const t=_(e);if(!t||!i)return;const n=i.pickAt(t.x,t.y);if((n==null?void 0:n.kind)!=="explore-neighbor")return;const o=n.payload;if(!o.memoryId)return;const s=r(f).find(a=>a.id===o.memoryId);s!=null&&s.content&&(l(C,s.id.slice(0,8),!0),l(T,s.id,!0),l(I,null),l(d,H(s.content),!0),G(),await U())}var x=Te();Ee("15rowvt",e=>{de(()=>{me.title="Explore · Vestige"})});var ne=fe(x);{let e=he(()=>{var t;return`real-explore-neighbors:${r(d)}:${((t=r(m))==null?void 0:t.total)??0}`});Re(ne,{demo:"recall-path",get seed(){return r(e)},onready:P})}xe(x),ge(x,e=>l(u,e),()=>r(u)),q("pointerdown",x,te),q("pointermove",x,Z),le("pointerleave",x,ee),ce(X,x),ue()}re(["pointerdown","pointermove"]);export{ke as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/10.8yVvC2-0.js.br b/apps/dashboard/build/_app/immutable/nodes/10.8yVvC2-0.js.br new file mode 100644 index 0000000000000000000000000000000000000000..751dd0434cf519eda8fc1a58bd7368bc3c003d55 GIT binary patch literal 2456 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 J=pKd^000|kQY`=g literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js b/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js deleted file mode 100644 index b25b457..0000000 --- a/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js +++ /dev/null @@ -1,4115 +0,0 @@ -var Bc=Object.defineProperty;var zc=(i,t,e)=>t in i?Bc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var kt=(i,t,e)=>zc(i,typeof t!="symbol"?t+"":t,e);import"../chunks/Bzak7iHL.js";import{o as jl,a as Zl}from"../chunks/GG5zm9kr.js";import{s as me,c as va,h as zt,g as B,p as ys,aB as kc,a as Es,d as yt,e as bt,n as Hc,r as xt,t as Ke,u as Gn,f as Kl,j as Vc}from"../chunks/CpWkWWOo.js";import{s as fe,d as $l,a as Fe}from"../chunks/BlVfL1ME.js";import{i as kn}from"../chunks/B4yTwGkE.js";import{e as _s,i as hr}from"../chunks/CGEBXrjl.js";import{a as _e,f as Se,c as Gc}from"../chunks/CHOnp4oo.js";import{s as ve,r as xa}from"../chunks/A7po6GxK.js";import{s as Us}from"../chunks/aVbAZ-t7.js";import{s as Sr}from"../chunks/Cx-f-Pzo.js";import{b as Ma}from"../chunks/sZcqyNBA.js";import{b as Jl}from"../chunks/BnXDGOmJ.js";import{s as Wc,a as Xc}from"../chunks/C6HuKgyx.js";import{b as Do}from"../chunks/g4XF1_b9.js";import{b as Yc}from"../chunks/CJsMJEun.js";import{p as vs}from"../chunks/V6gjw5Ec.js";import{N as Sa}from"../chunks/CcUbQ_Wl.js";import{i as qc}from"../chunks/BUoSzNdg.js";import{a as gi}from"../chunks/B7CfdQuM.js";import{e as jc}from"../chunks/MAY1QfFZ.js";/** - * @license - * Copyright 2010-2024 Three.js Authors - * SPDX-License-Identifier: MIT - */const vo="172",Hi={ROTATE:0,DOLLY:1,PAN:2},Oi={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Zc=0,Lo=1,Kc=2,Ql=1,$c=2,An=3,Yn=0,Xe=1,gn=2,Cn=0,Vi=1,Le=2,Uo=3,Io=4,Jc=5,ii=100,Qc=101,th=102,eh=103,nh=104,ih=200,sh=201,rh=202,ah=203,ya=204,Ea=205,oh=206,lh=207,ch=208,hh=209,uh=210,dh=211,fh=212,ph=213,mh=214,ba=0,Ta=1,wa=2,qi=3,Aa=4,Ra=5,Ca=6,Pa=7,tc=0,gh=1,_h=2,Wn=0,vh=1,xh=2,Mh=3,ec=4,Sh=5,yh=6,Eh=7,nc=300,ji=301,Zi=302,Da=303,La=304,Pr=306,Ua=1e3,ri=1001,Ia=1002,Je=1003,bh=1004,Is=1005,vn=1006,Br=1007,ai=1008,Ln=1009,ic=1010,sc=1011,Ms=1012,xo=1013,li=1014,xn=1015,Pn=1016,Mo=1017,So=1018,Ki=1020,rc=35902,ac=1021,oc=1022,dn=1023,lc=1024,cc=1025,Gi=1026,$i=1027,yo=1028,Eo=1029,hc=1030,bo=1031,To=1033,ur=33776,dr=33777,fr=33778,pr=33779,Na=35840,Fa=35841,Oa=35842,Ba=35843,za=36196,ka=37492,Ha=37496,Va=37808,Ga=37809,Wa=37810,Xa=37811,Ya=37812,qa=37813,ja=37814,Za=37815,Ka=37816,$a=37817,Ja=37818,Qa=37819,to=37820,eo=37821,mr=36492,no=36494,io=36495,uc=36283,so=36284,ro=36285,ao=36286,Th=3200,wh=3201,dc=0,Ah=1,Vn="",an="srgb",Ji="srgb-linear",yr="linear",se="srgb",_i=7680,No=519,Rh=512,Ch=513,Ph=514,fc=515,Dh=516,Lh=517,Uh=518,Ih=519,oo=35044,Fo="300 es",Rn=2e3,Er=2001;class hi{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[t]===void 0&&(n[t]=[]),n[t].indexOf(e)===-1&&n[t].push(e)}hasEventListener(t,e){if(this._listeners===void 0)return!1;const n=this._listeners;return n[t]!==void 0&&n[t].indexOf(e)!==-1}removeEventListener(t,e){if(this._listeners===void 0)return;const s=this._listeners[t];if(s!==void 0){const r=s.indexOf(e);r!==-1&&s.splice(r,1)}}dispatchEvent(t){if(this._listeners===void 0)return;const n=this._listeners[t.type];if(n!==void 0){t.target=this;const s=n.slice(0);for(let r=0,a=s.length;r>8&255]+Ie[i>>16&255]+Ie[i>>24&255]+"-"+Ie[t&255]+Ie[t>>8&255]+"-"+Ie[t>>16&15|64]+Ie[t>>24&255]+"-"+Ie[e&63|128]+Ie[e>>8&255]+"-"+Ie[e>>16&255]+Ie[e>>24&255]+Ie[n&255]+Ie[n>>8&255]+Ie[n>>16&255]+Ie[n>>24&255]).toLowerCase()}function Yt(i,t,e){return Math.max(t,Math.min(e,i))}function Nh(i,t){return(i%t+t)%t}function zr(i,t,e){return(1-e)*i+e*t}function _n(i,t){switch(t.constructor){case Float32Array:return i;case Uint32Array:return i/4294967295;case Uint16Array:return i/65535;case Uint8Array: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("Invalid component type.")}}function re(i,t){switch(t.constructor){case Float32Array:return i;case Uint32Array:return Math.round(i*4294967295);case Uint16Array:return Math.round(i*65535);case Uint8Array: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("Invalid component type.")}}const Fh={DEG2RAD:gr};class St{constructor(t=0,e=0){St.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,s=t.elements;return this.x=s[0]*e+s[3]*n+s[6],this.y=s[1]*e+s[4]*n+s[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Yt(this.x,t.x,e.x),this.y=Yt(this.y,t.y,e.y),this}clampScalar(t,e){return this.x=Yt(this.x,t,e),this.y=Yt(this.y,t,e),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Yt(n,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Yt(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),s=Math.sin(e),r=this.x-t.x,a=this.y-t.y;return this.x=r*n-a*s+t.x,this.y=r*s+a*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ht{constructor(t,e,n,s,r,a,o,l,c){Ht.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,e,n,s,r,a,o,l,c)}set(t,e,n,s,r,a,o,l,c){const h=this.elements;return h[0]=t,h[1]=s,h[2]=o,h[3]=e,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(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,s=e.elements,r=this.elements,a=n[0],o=n[3],l=n[6],c=n[1],h=n[4],d=n[7],p=n[2],u=n[5],g=n[8],_=s[0],m=s[3],f=s[6],T=s[1],E=s[4],y=s[7],D=s[2],w=s[5],C=s[8];return r[0]=a*_+o*T+l*D,r[3]=a*m+o*E+l*w,r[6]=a*f+o*y+l*C,r[1]=c*_+h*T+d*D,r[4]=c*m+h*E+d*w,r[7]=c*f+h*y+d*C,r[2]=p*_+u*T+g*D,r[5]=p*m+u*E+g*w,r[8]=p*f+u*y+g*C,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],l=t[6],c=t[7],h=t[8];return e*a*h-e*o*c-n*r*h+n*o*l+s*r*c-s*a*l}invert(){const t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],l=t[6],c=t[7],h=t[8],d=h*a-o*c,p=o*l-h*r,u=c*r-a*l,g=e*d+n*p+s*u;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);const _=1/g;return t[0]=d*_,t[1]=(s*c-h*n)*_,t[2]=(o*n-s*a)*_,t[3]=p*_,t[4]=(h*e-s*l)*_,t[5]=(s*r-o*e)*_,t[6]=u*_,t[7]=(n*l-c*e)*_,t[8]=(a*e-n*r)*_,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,s,r,a,o){const l=Math.cos(r),c=Math.sin(r);return this.set(n*l,n*c,-n*(l*a+c*o)+a+t,-s*c,s*l,-s*(-c*a+l*o)+o+e,0,0,1),this}scale(t,e){return this.premultiply(kr.makeScale(t,e)),this}rotate(t){return this.premultiply(kr.makeRotation(-t)),this}translate(t,e){return this.premultiply(kr.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,n,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,n=t.elements;for(let s=0;s<9;s++)if(e[s]!==n[s])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return new this.constructor().fromArray(this.elements)}}const kr=new Ht;function pc(i){for(let t=i.length-1;t>=0;--t)if(i[t]>=65535)return!0;return!1}function br(i){return document.createElementNS("http://www.w3.org/1999/xhtml",i)}function Oh(){const i=br("canvas");return i.style.display="block",i}const Oo={};function Fi(i){i in Oo||(Oo[i]=!0,console.warn(i))}function Bh(i,t,e){return new Promise(function(n,s){function r(){switch(i.clientWaitSync(t,i.SYNC_FLUSH_COMMANDS_BIT,0)){case i.WAIT_FAILED:s();break;case i.TIMEOUT_EXPIRED:setTimeout(r,e);break;default:n()}}setTimeout(r,e)})}function zh(i){const t=i.elements;t[2]=.5*t[2]+.5*t[3],t[6]=.5*t[6]+.5*t[7],t[10]=.5*t[10]+.5*t[11],t[14]=.5*t[14]+.5*t[15]}function kh(i){const t=i.elements;t[11]===-1?(t[10]=-t[10]-1,t[14]=-t[14]):(t[10]=-t[10],t[14]=-t[14]+1)}const Bo=new Ht().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),zo=new Ht().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Hh(){const i={enabled:!0,workingColorSpace:Ji,spaces:{},convert:function(s,r,a){return this.enabled===!1||r===a||!r||!a||(this.spaces[r].transfer===se&&(s.r=Dn(s.r),s.g=Dn(s.g),s.b=Dn(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===se&&(s.r=Wi(s.r),s.g=Wi(s.g),s.b=Wi(s.b))),s},fromWorkingColorSpace:function(s,r){return this.convert(s,this.workingColorSpace,r)},toWorkingColorSpace:function(s,r){return this.convert(s,r,this.workingColorSpace)},getPrimaries:function(s){return this.spaces[s].primaries},getTransfer:function(s){return s===Vn?yr:this.spaces[s].transfer},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}},t=[.64,.33,.3,.6,.15,.06],e=[.2126,.7152,.0722],n=[.3127,.329];return i.define({[Ji]:{primaries:t,whitePoint:n,transfer:yr,toXYZ:Bo,fromXYZ:zo,luminanceCoefficients:e,workingColorSpaceConfig:{unpackColorSpace:an},outputColorSpaceConfig:{drawingBufferColorSpace:an}},[an]:{primaries:t,whitePoint:n,transfer:se,toXYZ:Bo,fromXYZ:zo,luminanceCoefficients:e,outputColorSpaceConfig:{drawingBufferColorSpace:an}}}),i}const Qt=Hh();function Dn(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4)}function Wi(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055}let vi;class Vh{static getDataURL(t){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement>"u")return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{vi===void 0&&(vi=br("canvas")),vi.width=t.width,vi.height=t.height;const n=vi.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=vi}return e.width>2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if(typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap){const e=br("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const s=n.getImageData(0,0,t.width,t.height),r=s.data;for(let a=0;a0&&(n.userData=this.userData),e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==nc)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Ua:t.x=t.x-Math.floor(t.x);break;case ri:t.x=t.x<0?0:1;break;case Ia:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case Ua:t.y=t.y-Math.floor(t.y);break;case ri:t.y=t.y<0?0:1;break;case Ia:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){t===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(t){t===!0&&this.pmremVersion++}}Pe.DEFAULT_IMAGE=null;Pe.DEFAULT_MAPPING=nc;Pe.DEFAULT_ANISOTROPY=1;class oe{constructor(t=0,e=0,n=0,s=1){oe.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=s}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,s){return this.x=t,this.y=e,this.z=n,this.w=s,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,s=this.z,r=this.w,a=t.elements;return this.x=a[0]*e+a[4]*n+a[8]*s+a[12]*r,this.y=a[1]*e+a[5]*n+a[9]*s+a[13]*r,this.z=a[2]*e+a[6]*n+a[10]*s+a[14]*r,this.w=a[3]*e+a[7]*n+a[11]*s+a[15]*r,this}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this.w/=t.w,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,s,r;const l=t.elements,c=l[0],h=l[4],d=l[8],p=l[1],u=l[5],g=l[9],_=l[2],m=l[6],f=l[10];if(Math.abs(h-p)<.01&&Math.abs(d-_)<.01&&Math.abs(g-m)<.01){if(Math.abs(h+p)<.1&&Math.abs(d+_)<.1&&Math.abs(g+m)<.1&&Math.abs(c+u+f-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const E=(c+1)/2,y=(u+1)/2,D=(f+1)/2,w=(h+p)/4,C=(d+_)/4,I=(g+m)/4;return E>y&&E>D?E<.01?(n=0,s=.707106781,r=.707106781):(n=Math.sqrt(E),s=w/n,r=C/n):y>D?y<.01?(n=.707106781,s=0,r=.707106781):(s=Math.sqrt(y),n=w/s,r=I/s):D<.01?(n=.707106781,s=.707106781,r=0):(r=Math.sqrt(D),n=C/r,s=I/r),this.set(n,s,r,e),this}let T=Math.sqrt((m-g)*(m-g)+(d-_)*(d-_)+(p-h)*(p-h));return Math.abs(T)<.001&&(T=1),this.x=(m-g)/T,this.y=(d-_)/T,this.z=(p-h)/T,this.w=Math.acos((c+u+f-1)/2),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this.w=e[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Yt(this.x,t.x,e.x),this.y=Yt(this.y,t.y,e.y),this.z=Yt(this.z,t.z,e.z),this.w=Yt(this.w,t.w,e.w),this}clampScalar(t,e){return this.x=Yt(this.x,t,e),this.y=Yt(this.y,t,e),this.z=Yt(this.z,t,e),this.w=Yt(this.w,t,e),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Yt(n,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),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}}class Xh extends hi{constructor(t=1,e=1,n={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new oe(0,0,t,e),this.scissorTest=!1,this.viewport=new oe(0,0,t,e);const s={width:t,height:e,depth:1};n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:vn,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n);const r=new Pe(s,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);r.flipY=!1,r.generateMipmaps=n.generateMipmaps,r.internalFormat=n.internalFormat,this.textures=[];const a=n.count;for(let o=0;o=0?1:-1,E=1-f*f;if(E>Number.EPSILON){const D=Math.sqrt(E),w=Math.atan2(D,f*T);m=Math.sin(m*w)/D,o=Math.sin(o*w)/D}const y=o*T;if(l=l*m+p*y,c=c*m+u*y,h=h*m+g*y,d=d*m+_*y,m===1-o){const D=1/Math.sqrt(l*l+c*c+h*h+d*d);l*=D,c*=D,h*=D,d*=D}}t[e]=l,t[e+1]=c,t[e+2]=h,t[e+3]=d}static multiplyQuaternionsFlat(t,e,n,s,r,a){const o=n[s],l=n[s+1],c=n[s+2],h=n[s+3],d=r[a],p=r[a+1],u=r[a+2],g=r[a+3];return t[e]=o*g+h*d+l*u-c*p,t[e+1]=l*g+h*p+c*d-o*u,t[e+2]=c*g+h*u+o*p-l*d,t[e+3]=h*g-o*d-l*p-c*u,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,s){return this._x=t,this._y=e,this._z=n,this._w=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const n=t._x,s=t._y,r=t._z,a=t._order,o=Math.cos,l=Math.sin,c=o(n/2),h=o(s/2),d=o(r/2),p=l(n/2),u=l(s/2),g=l(r/2);switch(a){case"XYZ":this._x=p*h*d+c*u*g,this._y=c*u*d-p*h*g,this._z=c*h*g+p*u*d,this._w=c*h*d-p*u*g;break;case"YXZ":this._x=p*h*d+c*u*g,this._y=c*u*d-p*h*g,this._z=c*h*g-p*u*d,this._w=c*h*d+p*u*g;break;case"ZXY":this._x=p*h*d-c*u*g,this._y=c*u*d+p*h*g,this._z=c*h*g+p*u*d,this._w=c*h*d-p*u*g;break;case"ZYX":this._x=p*h*d-c*u*g,this._y=c*u*d+p*h*g,this._z=c*h*g-p*u*d,this._w=c*h*d+p*u*g;break;case"YZX":this._x=p*h*d+c*u*g,this._y=c*u*d+p*h*g,this._z=c*h*g-p*u*d,this._w=c*h*d-p*u*g;break;case"XZY":this._x=p*h*d-c*u*g,this._y=c*u*d-p*h*g,this._z=c*h*g+p*u*d,this._w=c*h*d+p*u*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return e===!0&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,s=Math.sin(n);return this._x=t.x*s,this._y=t.y*s,this._z=t.z*s,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],s=e[4],r=e[8],a=e[1],o=e[5],l=e[9],c=e[2],h=e[6],d=e[10],p=n+o+d;if(p>0){const u=.5/Math.sqrt(p+1);this._w=.25/u,this._x=(h-l)*u,this._y=(r-c)*u,this._z=(a-s)*u}else if(n>o&&n>d){const u=2*Math.sqrt(1+n-o-d);this._w=(h-l)/u,this._x=.25*u,this._y=(s+a)/u,this._z=(r+c)/u}else if(o>d){const u=2*Math.sqrt(1+o-n-d);this._w=(r-c)/u,this._x=(s+a)/u,this._y=.25*u,this._z=(l+h)/u}else{const u=2*Math.sqrt(1+d-n-o);this._w=(a-s)/u,this._x=(r+c)/u,this._y=(l+h)/u,this._z=.25*u}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(Yt(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(n===0)return this;const s=Math.min(1,e/n);return this.slerp(t,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(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,s=t._y,r=t._z,a=t._w,o=e._x,l=e._y,c=e._z,h=e._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(t,e){if(e===0)return this;if(e===1)return this.copy(t);const n=this._x,s=this._y,r=this._z,a=this._w;let o=a*t._w+n*t._x+s*t._y+r*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=n,this._y=s,this._z=r,this;const l=1-o*o;if(l<=Number.EPSILON){const u=1-e;return this._w=u*a+e*this._w,this._x=u*n+e*this._x,this._y=u*s+e*this._y,this._z=u*r+e*this._z,this.normalize(),this}const c=Math.sqrt(l),h=Math.atan2(c,o),d=Math.sin((1-e)*h)/c,p=Math.sin(e*h)/c;return this._w=a*d+this._w*p,this._x=n*d+this._x*p,this._y=s*d+this._y*p,this._z=r*d+this._z*p,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),n=Math.random(),s=Math.sqrt(1-n),r=Math.sqrt(n);return this.set(s*Math.sin(t),s*Math.cos(t),r*Math.sin(e),r*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class P{constructor(t=0,e=0,n=0){P.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return n===void 0&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(ko.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(ko.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,s=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*s,this.y=r[1]*e+r[4]*n+r[7]*s,this.z=r[2]*e+r[5]*n+r[8]*s,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,s=this.z,r=t.elements,a=1/(r[3]*e+r[7]*n+r[11]*s+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*s+r[12])*a,this.y=(r[1]*e+r[5]*n+r[9]*s+r[13])*a,this.z=(r[2]*e+r[6]*n+r[10]*s+r[14])*a,this}applyQuaternion(t){const e=this.x,n=this.y,s=this.z,r=t.x,a=t.y,o=t.z,l=t.w,c=2*(a*s-o*n),h=2*(o*e-r*s),d=2*(r*n-a*e);return this.x=e+l*c+a*d-o*h,this.y=n+l*h+o*c-r*d,this.z=s+l*d+r*h-a*c,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,s=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*s,this.y=r[1]*e+r[5]*n+r[9]*s,this.z=r[2]*e+r[6]*n+r[10]*s,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Yt(this.x,t.x,e.x),this.y=Yt(this.y,t.y,e.y),this.z=Yt(this.z,t.z,e.z),this}clampScalar(t,e){return this.x=Yt(this.x,t,e),this.y=Yt(this.y,t,e),this.z=Yt(this.z,t,e),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Yt(n,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,s=t.y,r=t.z,a=e.x,o=e.y,l=e.z;return this.x=s*l-r*o,this.y=r*a-n*l,this.z=n*o-s*a,this}projectOnVector(t){const e=t.lengthSq();if(e===0)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return Vr.copy(this).projectOnVector(t),this.sub(Vr)}reflect(t){return this.sub(Vr.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(Yt(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,s=this.z-t.z;return e*e+n*n+s*s}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const s=Math.sin(e)*t;return this.x=s*Math.sin(n),this.y=Math.cos(e)*t,this.z=s*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),s=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=s,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,e=Math.random()*2-1,n=Math.sqrt(1-e*e);return this.x=n*Math.cos(t),this.y=e,this.z=n*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Vr=new P,ko=new ci;class ui{constructor(t=new P(1/0,1/0,1/0),e=new P(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,n=t.length;e=this.min.x&&t.x<=this.max.x&&t.y>=this.min.y&&t.y<=this.max.y&&t.z>=this.min.z&&t.z<=this.max.z}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return t.max.x>=this.min.x&&t.min.x<=this.max.x&&t.max.y>=this.min.y&&t.min.y<=this.max.y&&t.max.z>=this.min.z&&t.min.z<=this.max.z}intersectsSphere(t){return this.clampPoint(t.center,cn),cn.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(ss),Fs.subVectors(this.max,ss),xi.subVectors(t.a,ss),Mi.subVectors(t.b,ss),Si.subVectors(t.c,ss),Un.subVectors(Mi,xi),In.subVectors(Si,Mi),Zn.subVectors(xi,Si);let e=[0,-Un.z,Un.y,0,-In.z,In.y,0,-Zn.z,Zn.y,Un.z,0,-Un.x,In.z,0,-In.x,Zn.z,0,-Zn.x,-Un.y,Un.x,0,-In.y,In.x,0,-Zn.y,Zn.x,0];return!Gr(e,xi,Mi,Si,Fs)||(e=[1,0,0,0,1,0,0,0,1],!Gr(e,xi,Mi,Si,Fs))?!1:(Os.crossVectors(Un,In),e=[Os.x,Os.y,Os.z],Gr(e,xi,Mi,Si,Fs))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,cn).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(cn).length()*.5),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:(Sn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Sn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Sn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Sn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Sn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Sn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Sn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Sn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Sn),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const Sn=[new P,new P,new P,new P,new P,new P,new P,new P],cn=new P,Ns=new ui,xi=new P,Mi=new P,Si=new P,Un=new P,In=new P,Zn=new P,ss=new P,Fs=new P,Os=new P,Kn=new P;function Gr(i,t,e,n,s){for(let r=0,a=i.length-3;r<=a;r+=3){Kn.fromArray(i,r);const o=s.x*Math.abs(Kn.x)+s.y*Math.abs(Kn.y)+s.z*Math.abs(Kn.z),l=t.dot(Kn),c=e.dot(Kn),h=n.dot(Kn);if(Math.max(-Math.max(l,c,h),Math.min(l,c,h))>o)return!1}return!0}const qh=new ui,rs=new P,Wr=new P;class di{constructor(t=new P,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;e!==void 0?n.copy(e):qh.setFromPoints(t).getCenter(n);let s=0;for(let r=0,a=t.length;rthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;rs.subVectors(t,this.center);const e=rs.lengthSq();if(e>this.radius*this.radius){const n=Math.sqrt(e),s=(n-this.radius)*.5;this.center.addScaledVector(rs,s/n),this.radius+=s}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(Wr.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(rs.copy(t.center).add(Wr)),this.expandByPoint(rs.copy(t.center).sub(Wr))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return new this.constructor().copy(this)}}const yn=new P,Xr=new P,Bs=new P,Nn=new P,Yr=new P,zs=new P,qr=new P;class bs{constructor(t=new P,e=new P(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,yn)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=yn.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(yn.copy(this.origin).addScaledVector(this.direction,e),yn.distanceToSquared(t))}distanceSqToSegment(t,e,n,s){Xr.copy(t).add(e).multiplyScalar(.5),Bs.copy(e).sub(t).normalize(),Nn.copy(this.origin).sub(Xr);const r=t.distanceTo(e)*.5,a=-this.direction.dot(Bs),o=Nn.dot(this.direction),l=-Nn.dot(Bs),c=Nn.lengthSq(),h=Math.abs(1-a*a);let d,p,u,g;if(h>0)if(d=a*l-o,p=a*o-l,g=r*h,d>=0)if(p>=-g)if(p<=g){const _=1/h;d*=_,p*=_,u=d*(d+a*p+2*o)+p*(a*d+p+2*l)+c}else p=r,d=Math.max(0,-(a*p+o)),u=-d*d+p*(p+2*l)+c;else p=-r,d=Math.max(0,-(a*p+o)),u=-d*d+p*(p+2*l)+c;else p<=-g?(d=Math.max(0,-(-a*r+o)),p=d>0?-r:Math.min(Math.max(-r,-l),r),u=-d*d+p*(p+2*l)+c):p<=g?(d=0,p=Math.min(Math.max(-r,-l),r),u=p*(p+2*l)+c):(d=Math.max(0,-(a*r+o)),p=d>0?r:Math.min(Math.max(-r,-l),r),u=-d*d+p*(p+2*l)+c);else p=a>0?-r:r,d=Math.max(0,-(a*p+o)),u=-d*d+p*(p+2*l)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,d),s&&s.copy(Xr).addScaledVector(Bs,p),u}intersectSphere(t,e){yn.subVectors(t.center,this.origin);const n=yn.dot(this.direction),s=yn.dot(yn)-n*n,r=t.radius*t.radius;if(s>r)return null;const a=Math.sqrt(r-s),o=n-a,l=n+a;return l<0?null:o<0?this.at(l,e):this.at(o,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return n===null?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,s,r,a,o,l;const c=1/this.direction.x,h=1/this.direction.y,d=1/this.direction.z,p=this.origin;return c>=0?(n=(t.min.x-p.x)*c,s=(t.max.x-p.x)*c):(n=(t.max.x-p.x)*c,s=(t.min.x-p.x)*c),h>=0?(r=(t.min.y-p.y)*h,a=(t.max.y-p.y)*h):(r=(t.max.y-p.y)*h,a=(t.min.y-p.y)*h),n>a||r>s||((r>n||isNaN(n))&&(n=r),(a=0?(o=(t.min.z-p.z)*d,l=(t.max.z-p.z)*d):(o=(t.max.z-p.z)*d,l=(t.min.z-p.z)*d),n>l||o>s)||((o>n||n!==n)&&(n=o),(l=0?n:s,e)}intersectsBox(t){return this.intersectBox(t,yn)!==null}intersectTriangle(t,e,n,s,r){Yr.subVectors(e,t),zs.subVectors(n,t),qr.crossVectors(Yr,zs);let a=this.direction.dot(qr),o;if(a>0){if(s)return null;o=1}else if(a<0)o=-1,a=-a;else return null;Nn.subVectors(this.origin,t);const l=o*this.direction.dot(zs.crossVectors(Nn,zs));if(l<0)return null;const c=o*this.direction.dot(Yr.cross(Nn));if(c<0||l+c>a)return null;const h=-o*Nn.dot(qr);return h<0?null:this.at(h/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class ne{constructor(t,e,n,s,r,a,o,l,c,h,d,p,u,g,_,m){ne.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!==void 0&&this.set(t,e,n,s,r,a,o,l,c,h,d,p,u,g,_,m)}set(t,e,n,s,r,a,o,l,c,h,d,p,u,g,_,m){const f=this.elements;return f[0]=t,f[4]=e,f[8]=n,f[12]=s,f[1]=r,f[5]=a,f[9]=o,f[13]=l,f[2]=c,f[6]=h,f[10]=d,f[14]=p,f[3]=u,f[7]=g,f[11]=_,f[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new ne().fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,s=1/yi.setFromMatrixColumn(t,0).length(),r=1/yi.setFromMatrixColumn(t,1).length(),a=1/yi.setFromMatrixColumn(t,2).length();return e[0]=n[0]*s,e[1]=n[1]*s,e[2]=n[2]*s,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*a,e[9]=n[9]*a,e[10]=n[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,s=t.y,r=t.z,a=Math.cos(n),o=Math.sin(n),l=Math.cos(s),c=Math.sin(s),h=Math.cos(r),d=Math.sin(r);if(t.order==="XYZ"){const p=a*h,u=a*d,g=o*h,_=o*d;e[0]=l*h,e[4]=-l*d,e[8]=c,e[1]=u+g*c,e[5]=p-_*c,e[9]=-o*l,e[2]=_-p*c,e[6]=g+u*c,e[10]=a*l}else if(t.order==="YXZ"){const p=l*h,u=l*d,g=c*h,_=c*d;e[0]=p+_*o,e[4]=g*o-u,e[8]=a*c,e[1]=a*d,e[5]=a*h,e[9]=-o,e[2]=u*o-g,e[6]=_+p*o,e[10]=a*l}else if(t.order==="ZXY"){const p=l*h,u=l*d,g=c*h,_=c*d;e[0]=p-_*o,e[4]=-a*d,e[8]=g+u*o,e[1]=u+g*o,e[5]=a*h,e[9]=_-p*o,e[2]=-a*c,e[6]=o,e[10]=a*l}else if(t.order==="ZYX"){const p=a*h,u=a*d,g=o*h,_=o*d;e[0]=l*h,e[4]=g*c-u,e[8]=p*c+_,e[1]=l*d,e[5]=_*c+p,e[9]=u*c-g,e[2]=-c,e[6]=o*l,e[10]=a*l}else if(t.order==="YZX"){const p=a*l,u=a*c,g=o*l,_=o*c;e[0]=l*h,e[4]=_-p*d,e[8]=g*d+u,e[1]=d,e[5]=a*h,e[9]=-o*h,e[2]=-c*h,e[6]=u*d+g,e[10]=p-_*d}else if(t.order==="XZY"){const p=a*l,u=a*c,g=o*l,_=o*c;e[0]=l*h,e[4]=-d,e[8]=c*h,e[1]=p*d+_,e[5]=a*h,e[9]=u*d-g,e[2]=g*d-u,e[6]=o*h,e[10]=_*d+p}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(jh,t,Zh)}lookAt(t,e,n){const s=this.elements;return je.subVectors(t,e),je.lengthSq()===0&&(je.z=1),je.normalize(),Fn.crossVectors(n,je),Fn.lengthSq()===0&&(Math.abs(n.z)===1?je.x+=1e-4:je.z+=1e-4,je.normalize(),Fn.crossVectors(n,je)),Fn.normalize(),ks.crossVectors(je,Fn),s[0]=Fn.x,s[4]=ks.x,s[8]=je.x,s[1]=Fn.y,s[5]=ks.y,s[9]=je.y,s[2]=Fn.z,s[6]=ks.z,s[10]=je.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,s=e.elements,r=this.elements,a=n[0],o=n[4],l=n[8],c=n[12],h=n[1],d=n[5],p=n[9],u=n[13],g=n[2],_=n[6],m=n[10],f=n[14],T=n[3],E=n[7],y=n[11],D=n[15],w=s[0],C=s[4],I=s[8],S=s[12],M=s[1],A=s[5],W=s[9],k=s[13],q=s[2],Q=s[6],X=s[10],tt=s[14],H=s[3],st=s[7],gt=s[11],Et=s[15];return r[0]=a*w+o*M+l*q+c*H,r[4]=a*C+o*A+l*Q+c*st,r[8]=a*I+o*W+l*X+c*gt,r[12]=a*S+o*k+l*tt+c*Et,r[1]=h*w+d*M+p*q+u*H,r[5]=h*C+d*A+p*Q+u*st,r[9]=h*I+d*W+p*X+u*gt,r[13]=h*S+d*k+p*tt+u*Et,r[2]=g*w+_*M+m*q+f*H,r[6]=g*C+_*A+m*Q+f*st,r[10]=g*I+_*W+m*X+f*gt,r[14]=g*S+_*k+m*tt+f*Et,r[3]=T*w+E*M+y*q+D*H,r[7]=T*C+E*A+y*Q+D*st,r[11]=T*I+E*W+y*X+D*gt,r[15]=T*S+E*k+y*tt+D*Et,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],s=t[8],r=t[12],a=t[1],o=t[5],l=t[9],c=t[13],h=t[2],d=t[6],p=t[10],u=t[14],g=t[3],_=t[7],m=t[11],f=t[15];return g*(+r*l*d-s*c*d-r*o*p+n*c*p+s*o*u-n*l*u)+_*(+e*l*u-e*c*p+r*a*p-s*a*u+s*c*h-r*l*h)+m*(+e*c*d-e*o*u-r*a*d+n*a*u+r*o*h-n*c*h)+f*(-s*o*h-e*l*d+e*o*p+s*a*d-n*a*p+n*l*h)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const s=this.elements;return t.isVector3?(s[12]=t.x,s[13]=t.y,s[14]=t.z):(s[12]=t,s[13]=e,s[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],s=t[2],r=t[3],a=t[4],o=t[5],l=t[6],c=t[7],h=t[8],d=t[9],p=t[10],u=t[11],g=t[12],_=t[13],m=t[14],f=t[15],T=d*m*c-_*p*c+_*l*u-o*m*u-d*l*f+o*p*f,E=g*p*c-h*m*c-g*l*u+a*m*u+h*l*f-a*p*f,y=h*_*c-g*d*c+g*o*u-a*_*u-h*o*f+a*d*f,D=g*d*l-h*_*l-g*o*p+a*_*p+h*o*m-a*d*m,w=e*T+n*E+s*y+r*D;if(w===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const C=1/w;return t[0]=T*C,t[1]=(_*p*r-d*m*r-_*s*u+n*m*u+d*s*f-n*p*f)*C,t[2]=(o*m*r-_*l*r+_*s*c-n*m*c-o*s*f+n*l*f)*C,t[3]=(d*l*r-o*p*r-d*s*c+n*p*c+o*s*u-n*l*u)*C,t[4]=E*C,t[5]=(h*m*r-g*p*r+g*s*u-e*m*u-h*s*f+e*p*f)*C,t[6]=(g*l*r-a*m*r-g*s*c+e*m*c+a*s*f-e*l*f)*C,t[7]=(a*p*r-h*l*r+h*s*c-e*p*c-a*s*u+e*l*u)*C,t[8]=y*C,t[9]=(g*d*r-h*_*r-g*n*u+e*_*u+h*n*f-e*d*f)*C,t[10]=(a*_*r-g*o*r+g*n*c-e*_*c-a*n*f+e*o*f)*C,t[11]=(h*o*r-a*d*r-h*n*c+e*d*c+a*n*u-e*o*u)*C,t[12]=D*C,t[13]=(h*_*s-g*d*s+g*n*p-e*_*p-h*n*m+e*d*m)*C,t[14]=(g*o*s-a*_*s-g*n*l+e*_*l+a*n*m-e*o*m)*C,t[15]=(a*d*s-h*o*s+h*n*l-e*d*l-a*n*p+e*o*p)*C,this}scale(t){const e=this.elements,n=t.x,s=t.y,r=t.z;return e[0]*=n,e[4]*=s,e[8]*=r,e[1]*=n,e[5]*=s,e[9]*=r,e[2]*=n,e[6]*=s,e[10]*=r,e[3]*=n,e[7]*=s,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],s=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,s))}makeTranslation(t,e,n){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),s=Math.sin(e),r=1-n,a=t.x,o=t.y,l=t.z,c=r*a,h=r*o;return this.set(c*a+n,c*o-s*l,c*l+s*o,0,c*o+s*l,h*o+n,h*l-s*a,0,c*l-s*o,h*l+s*a,r*l*l+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,s,r,a){return this.set(1,n,r,0,t,1,a,0,e,s,1,0,0,0,0,1),this}compose(t,e,n){const s=this.elements,r=e._x,a=e._y,o=e._z,l=e._w,c=r+r,h=a+a,d=o+o,p=r*c,u=r*h,g=r*d,_=a*h,m=a*d,f=o*d,T=l*c,E=l*h,y=l*d,D=n.x,w=n.y,C=n.z;return s[0]=(1-(_+f))*D,s[1]=(u+y)*D,s[2]=(g-E)*D,s[3]=0,s[4]=(u-y)*w,s[5]=(1-(p+f))*w,s[6]=(m+T)*w,s[7]=0,s[8]=(g+E)*C,s[9]=(m-T)*C,s[10]=(1-(p+_))*C,s[11]=0,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=1,this}decompose(t,e,n){const s=this.elements;let r=yi.set(s[0],s[1],s[2]).length();const a=yi.set(s[4],s[5],s[6]).length(),o=yi.set(s[8],s[9],s[10]).length();this.determinant()<0&&(r=-r),t.x=s[12],t.y=s[13],t.z=s[14],hn.copy(this);const c=1/r,h=1/a,d=1/o;return hn.elements[0]*=c,hn.elements[1]*=c,hn.elements[2]*=c,hn.elements[4]*=h,hn.elements[5]*=h,hn.elements[6]*=h,hn.elements[8]*=d,hn.elements[9]*=d,hn.elements[10]*=d,e.setFromRotationMatrix(hn),n.x=r,n.y=a,n.z=o,this}makePerspective(t,e,n,s,r,a,o=Rn){const l=this.elements,c=2*r/(e-t),h=2*r/(n-s),d=(e+t)/(e-t),p=(n+s)/(n-s);let u,g;if(o===Rn)u=-(a+r)/(a-r),g=-2*a*r/(a-r);else if(o===Er)u=-a/(a-r),g=-a*r/(a-r);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return l[0]=c,l[4]=0,l[8]=d,l[12]=0,l[1]=0,l[5]=h,l[9]=p,l[13]=0,l[2]=0,l[6]=0,l[10]=u,l[14]=g,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(t,e,n,s,r,a,o=Rn){const l=this.elements,c=1/(e-t),h=1/(n-s),d=1/(a-r),p=(e+t)*c,u=(n+s)*h;let g,_;if(o===Rn)g=(a+r)*d,_=-2*d;else if(o===Er)g=r*d,_=-1*d;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-p,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-u,l[2]=0,l[6]=0,l[10]=_,l[14]=-g,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let s=0;s<16;s++)if(e[s]!==n[s])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const yi=new P,hn=new ne,jh=new P(0,0,0),Zh=new P(1,1,1),Fn=new P,ks=new P,je=new P,Ho=new ne,Vo=new ci;class Mn{constructor(t=0,e=0,n=0,s=Mn.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=s}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,s=this._order){return this._x=t,this._y=e,this._z=n,this._order=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const s=t.elements,r=s[0],a=s[4],o=s[8],l=s[1],c=s[5],h=s[9],d=s[2],p=s[6],u=s[10];switch(e){case"XYZ":this._y=Math.asin(Yt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,u),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(p,c),this._z=0);break;case"YXZ":this._x=Math.asin(-Yt(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,u),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-d,r),this._z=0);break;case"ZXY":this._x=Math.asin(Yt(p,-1,1)),Math.abs(p)<.9999999?(this._y=Math.atan2(-d,u),this._z=Math.atan2(-a,c)):(this._y=0,this._z=Math.atan2(l,r));break;case"ZYX":this._y=Math.asin(-Yt(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(p,u),this._z=Math.atan2(l,r)):(this._x=0,this._z=Math.atan2(-a,c));break;case"YZX":this._z=Math.asin(Yt(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,c),this._y=Math.atan2(-d,r)):(this._x=0,this._y=Math.atan2(o,u));break;case"XZY":this._z=Math.asin(-Yt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(p,c),this._y=Math.atan2(o,r)):(this._x=Math.atan2(-h,u),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,n===!0&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return Ho.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Ho,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return Vo.setFromEuler(this),this.setFromQuaternion(Vo,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Mn.DEFAULT_ORDER="XYZ";class wo{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let e=0;e1){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.matrixAutoUpdate===!1&&(s.matrixAutoUpdate=!1),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.visibility=this._visibility,s.active=this._active,s.bounds=this._bounds.map(o=>({boxInitialized:o.boxInitialized,boxMin:o.box.min.toArray(),boxMax:o.box.max.toArray(),sphereInitialized:o.sphereInitialized,sphereRadius:o.sphere.radius,sphereCenter:o.sphere.center.toArray()})),s.maxInstanceCount=this._maxInstanceCount,s.maxVertexCount=this._maxVertexCount,s.maxIndexCount=this._maxIndexCount,s.geometryInitialized=this._geometryInitialized,s.geometryCount=this._geometryCount,s.matricesTexture=this._matricesTexture.toJSON(t),this._colorsTexture!==null&&(s.colorsTexture=this._colorsTexture.toJSON(t)),this.boundingSphere!==null&&(s.boundingSphere={center:s.boundingSphere.center.toArray(),radius:s.boundingSphere.radius}),this.boundingBox!==null&&(s.boundingBox={min:s.boundingBox.min.toArray(),max:s.boundingBox.max.toArray()}));function r(o,l){return o[l.uuid]===void 0&&(o[l.uuid]=l.toJSON(t)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(s.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=r(t.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const 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),d.length>0&&(n.shapes=d),p.length>0&&(n.skeletons=p),u.length>0&&(n.animations=u),g.length>0&&(n.nodes=g)}return n.object=s,n;function a(o){const l=[];for(const c in o){const h=o[c];delete h.metadata,l.push(h)}return l}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let n=0;n0?s.multiplyScalar(1/Math.sqrt(r)):s.set(0,0,0)}static getBarycoord(t,e,n,s,r){un.subVectors(s,e),bn.subVectors(n,e),Zr.subVectors(t,e);const a=un.dot(un),o=un.dot(bn),l=un.dot(Zr),c=bn.dot(bn),h=bn.dot(Zr),d=a*c-o*o;if(d===0)return r.set(0,0,0),null;const p=1/d,u=(c*l-o*h)*p,g=(a*h-o*l)*p;return r.set(1-u-g,g,u)}static containsPoint(t,e,n,s){return this.getBarycoord(t,e,n,s,Tn)===null?!1:Tn.x>=0&&Tn.y>=0&&Tn.x+Tn.y<=1}static getInterpolation(t,e,n,s,r,a,o,l){return this.getBarycoord(t,e,n,s,Tn)===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,Tn.x),l.addScaledVector(a,Tn.y),l.addScaledVector(o,Tn.z),l)}static getInterpolatedAttribute(t,e,n,s,r,a){return Qr.setScalar(0),ta.setScalar(0),ea.setScalar(0),Qr.fromBufferAttribute(t,e),ta.fromBufferAttribute(t,n),ea.fromBufferAttribute(t,s),a.setScalar(0),a.addScaledVector(Qr,r.x),a.addScaledVector(ta,r.y),a.addScaledVector(ea,r.z),a}static isFrontFacing(t,e,n,s){return un.subVectors(n,e),bn.subVectors(t,e),un.cross(bn).dot(s)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,s){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[s]),this}setFromAttributeAndIndices(t,e,n,s){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,s),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return un.subVectors(this.c,this.b),bn.subVectors(this.a,this.b),un.cross(bn).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return on.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return on.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,n,s,r){return on.getInterpolation(t,this.a,this.b,this.c,e,n,s,r)}containsPoint(t){return on.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return on.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,s=this.b,r=this.c;let a,o;Ti.subVectors(s,n),wi.subVectors(r,n),Kr.subVectors(t,n);const l=Ti.dot(Kr),c=wi.dot(Kr);if(l<=0&&c<=0)return e.copy(n);$r.subVectors(t,s);const h=Ti.dot($r),d=wi.dot($r);if(h>=0&&d<=h)return e.copy(s);const p=l*d-h*c;if(p<=0&&l>=0&&h<=0)return a=l/(l-h),e.copy(n).addScaledVector(Ti,a);Jr.subVectors(t,r);const u=Ti.dot(Jr),g=wi.dot(Jr);if(g>=0&&u<=g)return e.copy(r);const _=u*c-l*g;if(_<=0&&c>=0&&g<=0)return o=c/(c-g),e.copy(n).addScaledVector(wi,o);const m=h*g-u*d;if(m<=0&&d-h>=0&&u-g>=0)return jo.subVectors(r,s),o=(d-h)/(d-h+(u-g)),e.copy(s).addScaledVector(jo,o);const f=1/(m+_+p);return a=_*f,o=p*f,e.copy(n).addScaledVector(Ti,a).addScaledVector(wi,o)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const _c={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},On={h:0,s:0,l:0},Vs={h:0,s:0,l:0};function na(i,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?i+(t-i)*6*e:e<1/2?t:e<2/3?i+(t-i)*6*(2/3-e):i}class ot{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,n)}set(t,e,n){if(e===void 0&&n===void 0){const s=t;s&&s.isColor?this.copy(s):typeof s=="number"?this.setHex(s):typeof s=="string"&&this.setStyle(s)}else this.setRGB(t,e,n);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=an){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,Qt.toWorkingColorSpace(this,e),this}setRGB(t,e,n,s=Qt.workingColorSpace){return this.r=t,this.g=e,this.b=n,Qt.toWorkingColorSpace(this,s),this}setHSL(t,e,n,s=Qt.workingColorSpace){if(t=Nh(t,1),e=Yt(e,0,1),n=Yt(n,0,1),e===0)this.r=this.g=this.b=n;else{const r=n<=.5?n*(1+e):n+e-n*e,a=2*n-r;this.r=na(a,r,t+1/3),this.g=na(a,r,t),this.b=na(a,r,t-1/3)}return Qt.toWorkingColorSpace(this,s),this}setStyle(t,e=an){function n(r){r!==void 0&&parseFloat(r)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let s;if(s=/^(\w+)\(([^\)]*)\)/.exec(t)){let r;const 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,e);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,e);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,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(s=/^\#([A-Fa-f\d]+)$/.exec(t)){const 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,e);if(a===6)return this.setHex(parseInt(r,16),e);console.warn("THREE.Color: Invalid hex color "+t)}else if(t&&t.length>0)return this.setColorName(t,e);return this}setColorName(t,e=an){const n=_c[t.toLowerCase()];return n!==void 0?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=Dn(t.r),this.g=Dn(t.g),this.b=Dn(t.b),this}copyLinearToSRGB(t){return this.r=Wi(t.r),this.g=Wi(t.g),this.b=Wi(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=an){return Qt.fromWorkingColorSpace(Ne.copy(this),t),Math.round(Yt(Ne.r*255,0,255))*65536+Math.round(Yt(Ne.g*255,0,255))*256+Math.round(Yt(Ne.b*255,0,255))}getHexString(t=an){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Qt.workingColorSpace){Qt.fromWorkingColorSpace(Ne.copy(this),e);const n=Ne.r,s=Ne.g,r=Ne.b,a=Math.max(n,s,r),o=Math.min(n,s,r);let l,c;const h=(o+a)/2;if(o===a)l=0,c=0;else{const d=a-o;switch(c=h<=.5?d/(a+o):d/(2-a-o),a){case n:l=(s-r)/d+(s0!=t>0&&this.version++,this._alphaTest=t}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(const e in t){const n=t[e];if(n===void 0){console.warn(`THREE.Material: parameter '${e}' has value of undefined.`);continue}const s=this[e];if(s===void 0){console.warn(`THREE.Material: '${e}' is not a property of THREE.${this.type}.`);continue}s&&s.isColor?s.set(n):s&&s.isVector3&&n&&n.isVector3?s.copy(n):this[e]=n}}toJSON(t){const e=t===void 0||typeof t=="string";e&&(t={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(n.dispersion=this.dispersion),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).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(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).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(t).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Vi&&(n.blending=this.blending),this.side!==Yn&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==ya&&(n.blendSrc=this.blendSrc),this.blendDst!==Ea&&(n.blendDst=this.blendDst),this.blendEquation!==ii&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==qi&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==No&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==_i&&(n.stencilFail=this.stencilFail),this.stencilZFail!==_i&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==_i&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function s(r){const a=[];for(const o in r){const l=r[o];delete l.metadata,a.push(l)}return a}if(e){const r=s(t.textures),a=s(t.images);r.length>0&&(n.textures=r),a.length>0&&(n.images=a)}return n}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(e!==null){const s=e.length;n=new Array(s);for(let r=0;r!==s;++r)n[r]=e[r].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){t===!0&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}}class Ss extends qn{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new ot(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 Mn,this.combine=tc,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const Me=new P,Gs=new St;class he{constructor(t,e,n=!1){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=n,this.usage=oo,this.updateRanges=[],this.gpuType=xn,this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let s=0,r=this.itemSize;se.count&&console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),e.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ui);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute){console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new P(-1/0,-1/0,-1/0),new P(1/0,1/0,1/0));return}if(t!==void 0){if(this.boundingBox.setFromBufferAttribute(t),e)for(let n=0,s=e.length;n0&&(t.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const c in l)l[c]!==void 0&&(t[c]=l[c]);return t}t.data={attributes:{}};const e=this.index;e!==null&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const l in n){const c=n[l];t.data.attributes[l]=c.toJSON(t.data)}const s={};let r=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],h=[];for(let d=0,p=c.length;d0&&(s[l]=h,r=!0)}r&&(t.data.morphAttributes=s,t.data.morphTargetsRelative=this.morphTargetsRelative);const a=this.groups;a.length>0&&(t.data.groups=JSON.parse(JSON.stringify(a)));const o=this.boundingSphere;return o!==null&&(t.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;n!==null&&this.setIndex(n.clone(e));const s=t.attributes;for(const c in s){const h=s[c];this.setAttribute(c,h.clone(e))}const r=t.morphAttributes;for(const c in r){const h=[],d=r[c];for(let p=0,u=d.length;p0){const s=e[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=s.length;r(t.far-t.near)**2))&&(Zo.copy(r).invert(),$n.copy(t.ray).applyMatrix4(Zo),!(n.boundingBox!==null&&$n.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(t,e,$n)))}_computeIntersections(t,e,n){let s;const r=this.geometry,a=this.material,o=r.index,l=r.attributes.position,c=r.attributes.uv,h=r.attributes.uv1,d=r.attributes.normal,p=r.groups,u=r.drawRange;if(o!==null)if(Array.isArray(a))for(let g=0,_=p.length;g<_;g++){const m=p[g],f=a[m.materialIndex],T=Math.max(m.start,u.start),E=Math.min(o.count,Math.min(m.start+m.count,u.start+u.count));for(let y=T,D=E;ye.far?null:{distance:c,point:Zs.clone(),object:i}}function Ks(i,t,e,n,s,r,a,o,l,c){i.getVertexPosition(o,Xs),i.getVertexPosition(l,Ys),i.getVertexPosition(c,qs);const h=nu(i,t,e,n,Xs,Ys,qs,$o);if(h){const d=new P;on.getBarycoord($o,Xs,Ys,qs,d),s&&(h.uv=on.getInterpolatedAttribute(s,o,l,c,d,new St)),r&&(h.uv1=on.getInterpolatedAttribute(r,o,l,c,d,new St)),a&&(h.normal=on.getInterpolatedAttribute(a,o,l,c,d,new P),h.normal.dot(n.direction)>0&&h.normal.multiplyScalar(-1));const p={a:o,b:l,c,normal:new P,materialIndex:0};on.getNormal(Xs,Ys,qs,p.normal),h.face=p,h.barycoord=d}return h}class Ts extends ge{constructor(t=1,e=1,n=1,s=1,r=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:s,heightSegments:r,depthSegments:a};const o=this;s=Math.floor(s),r=Math.floor(r),a=Math.floor(a);const l=[],c=[],h=[],d=[];let p=0,u=0;g("z","y","x",-1,-1,n,e,t,a,r,0),g("z","y","x",1,-1,n,e,-t,a,r,1),g("x","z","y",1,1,t,n,e,s,a,2),g("x","z","y",1,-1,t,n,-e,s,a,3),g("x","y","z",1,-1,t,e,n,s,r,4),g("x","y","z",-1,-1,t,e,-n,s,r,5),this.setIndex(l),this.setAttribute("position",new Oe(c,3)),this.setAttribute("normal",new Oe(h,3)),this.setAttribute("uv",new Oe(d,2));function g(_,m,f,T,E,y,D,w,C,I,S){const M=y/C,A=D/I,W=y/2,k=D/2,q=w/2,Q=C+1,X=I+1;let tt=0,H=0;const st=new P;for(let gt=0;gt0?1:-1,h.push(st.x,st.y,st.z),d.push(Ft/C),d.push(1-gt/I),tt+=1}}for(let gt=0;gt0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;const n={};for(const s in this.extensions)this.extensions[s]===!0&&(n[s]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class Sc extends Ue{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ne,this.projectionMatrix=new ne,this.projectionMatrixInverse=new ne,this.coordinateSystem=Rn}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const Bn=new P,Jo=new St,Qo=new St;class $e extends Sc{constructor(t=50,e=1,n=.1,s=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=s,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=lo*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(gr*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return lo*2*Math.atan(Math.tan(gr*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,n){Bn.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(Bn.x,Bn.y).multiplyScalar(-t/Bn.z),Bn.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(Bn.x,Bn.y).multiplyScalar(-t/Bn.z)}getViewSize(t,e){return this.getViewBounds(t,Jo,Qo),e.subVectors(Qo,Jo)}setViewOffset(t,e,n,s,r,a){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=s,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(gr*.5*this.fov)/this.zoom,n=2*e,s=this.aspect*n,r=-.5*s;const a=this.view;if(this.view!==null&&this.view.enabled){const l=a.fullWidth,c=a.fullHeight;r+=a.offsetX*s/l,e-=a.offsetY*n/c,s*=a.width/l,n*=a.height/c}const o=this.filmOffset;o!==0&&(r+=t*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+s,e,e-n,t,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const Ri=-90,Ci=1;class au extends Ue{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const s=new $e(Ri,Ci,t,e);s.layers=this.layers,this.add(s);const r=new $e(Ri,Ci,t,e);r.layers=this.layers,this.add(r);const a=new $e(Ri,Ci,t,e);a.layers=this.layers,this.add(a);const o=new $e(Ri,Ci,t,e);o.layers=this.layers,this.add(o);const l=new $e(Ri,Ci,t,e);l.layers=this.layers,this.add(l);const c=new $e(Ri,Ci,t,e);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[n,s,r,a,o,l]=e;for(const c of e)this.remove(c);if(t===Rn)n.up.set(0,1,0),n.lookAt(1,0,0),s.up.set(0,1,0),s.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),o.up.set(0,1,0),o.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(t===Er)n.up.set(0,-1,0),n.lookAt(-1,0,0),s.up.set(0,-1,0),s.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),o.up.set(0,-1,0),o.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+t);for(const c of e)this.add(c),c.updateMatrixWorld()}update(t,e){this.parent===null&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:s}=this;this.coordinateSystem!==t.coordinateSystem&&(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());const[r,a,o,l,c,h]=this.children,d=t.getRenderTarget(),p=t.getActiveCubeFace(),u=t.getActiveMipmapLevel(),g=t.xr.enabled;t.xr.enabled=!1;const _=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0,s),t.render(e,r),t.setRenderTarget(n,1,s),t.render(e,a),t.setRenderTarget(n,2,s),t.render(e,o),t.setRenderTarget(n,3,s),t.render(e,l),t.setRenderTarget(n,4,s),t.render(e,c),n.texture.generateMipmaps=_,t.setRenderTarget(n,5,s),t.render(e,h),t.setRenderTarget(d,p,u),t.xr.enabled=g,n.texture.needsPMREMUpdate=!0}}class yc extends Pe{constructor(t,e,n,s,r,a,o,l,c,h){t=t!==void 0?t:[],e=e!==void 0?e:ji,super(t,e,n,s,r,a,o,l,c,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class ou extends fn{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},s=[n,n,n,n,n,n];this.texture=new yc(s,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=e.generateMipmaps!==void 0?e.generateMipmaps:!1,this.texture.minFilter=e.minFilter!==void 0?e.minFilter:vn}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` - - varying vec3 vWorldDirection; - - vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); - - } - - void main() { - - vWorldDirection = transformDirection( position, modelMatrix ); - - #include - #include - - } - `,fragmentShader:` - - uniform sampler2D tEquirect; - - varying vec3 vWorldDirection; - - #include - - void main() { - - vec3 direction = normalize( vWorldDirection ); - - vec2 sampleUV = equirectUv( direction ); - - gl_FragColor = texture2D( tEquirect, sampleUV ); - - } - `},s=new Ts(5,5,5),r=new He({name:"CubemapFromEquirect",uniforms:Qi(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:Xe,blending:Cn});r.uniforms.tEquirect.value=e;const a=new be(s,r),o=e.minFilter;return e.minFilter===ai&&(e.minFilter=vn),new au(1,10,this).update(t,a),e.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(t,e,n,s){const r=t.getRenderTarget();for(let a=0;a<6;a++)t.setRenderTarget(this,a),t.clear(e,n,s);t.setRenderTarget(r)}}class Dr{constructor(t,e=25e-5){this.isFogExp2=!0,this.name="",this.color=new ot(t),this.density=e}clone(){return new Dr(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class lu extends Ue{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Mn,this.environmentIntensity=1,this.environmentRotation=new Mn,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,this.backgroundRotation.copy(t.backgroundRotation),this.environmentIntensity=t.environmentIntensity,this.environmentRotation.copy(t.environmentRotation),t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(e.object.environmentIntensity=this.environmentIntensity),e.object.environmentRotation=this.environmentRotation.toArray(),e}}class cu{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=oo,this.updateRanges=[],this.version=0,this.uuid=Xn()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let s=0,r=this.stride;st.far||e.push({distance:l,point:ls.clone(),uv:on.getInterpolation(ls,$s,hs,Js,tl,ra,el,new St),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function Qs(i,t,e,n,s,r){Ui.subVectors(i,e).addScalar(.5).multiply(n),s!==void 0?(cs.x=r*Ui.x-s*Ui.y,cs.y=s*Ui.x+r*Ui.y):cs.copy(Ui),i.copy(t),i.x+=cs.x,i.y+=cs.y,i.applyMatrix4(Ec)}class hu extends Pe{constructor(t=null,e=1,n=1,s,r,a,o,l,c=Je,h=Je,d,p){super(null,a,o,l,c,h,s,r,d,p),this.isDataTexture=!0,this.image={data:t,width:e,height:n},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class nl extends he{constructor(t,e,n,s=1){super(t,e,n),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=s}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}const Ii=new ne,il=new ne,tr=[],sl=new ui,uu=new ne,us=new be,ds=new di;class du extends be{constructor(t,e,n){super(t,e),this.isInstancedMesh=!0,this.instanceMatrix=new nl(new Float32Array(n*16),16),this.instanceColor=null,this.morphTexture=null,this.count=n,this.boundingBox=null,this.boundingSphere=null;for(let s=0;s1?null:e.copy(t.start).addScaledVector(n,r)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||pu.getNormalMatrix(t),s=this.coplanarPoint(aa).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-s.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return new this.constructor().copy(this)}}const Jn=new di,er=new P;class Ao{constructor(t=new Hn,e=new Hn,n=new Hn,s=new Hn,r=new Hn,a=new Hn){this.planes=[t,e,n,s,r,a]}set(t,e,n,s,r,a){const o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(n),o[3].copy(s),o[4].copy(r),o[5].copy(a),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t,e=Rn){const n=this.planes,s=t.elements,r=s[0],a=s[1],o=s[2],l=s[3],c=s[4],h=s[5],d=s[6],p=s[7],u=s[8],g=s[9],_=s[10],m=s[11],f=s[12],T=s[13],E=s[14],y=s[15];if(n[0].setComponents(l-r,p-c,m-u,y-f).normalize(),n[1].setComponents(l+r,p+c,m+u,y+f).normalize(),n[2].setComponents(l+a,p+h,m+g,y+T).normalize(),n[3].setComponents(l-a,p-h,m-g,y-T).normalize(),n[4].setComponents(l-o,p-d,m-_,y-E).normalize(),e===Rn)n[5].setComponents(l+o,p+d,m+_,y+E).normalize();else if(e===Er)n[5].setComponents(o,d,_,E).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);return this}intersectsObject(t){if(t.boundingSphere!==void 0)t.boundingSphere===null&&t.computeBoundingSphere(),Jn.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;e.boundingSphere===null&&e.computeBoundingSphere(),Jn.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Jn)}intersectsSprite(t){return Jn.center.set(0,0,0),Jn.radius=.7071067811865476,Jn.applyMatrix4(t.matrixWorld),this.intersectsSphere(Jn)}intersectsSphere(t){const e=this.planes,n=t.center,s=-t.radius;for(let r=0;r<6;r++)if(e[r].distanceToPoint(n)0?t.max.x:t.min.x,er.y=s.normal.y>0?t.max.y:t.min.y,er.z=s.normal.z>0?t.max.z:t.min.z,s.distanceToPoint(er)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}class Ar extends qn{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new ot(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.fog=t.fog,this}}const Rr=new P,Cr=new P,rl=new ne,fs=new bs,nr=new di,oa=new P,al=new P;class co extends Ue{constructor(t=new ge,e=new Ar){super(),this.isLine=!0,this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.index===null){const e=t.attributes.position,n=[0];for(let s=1,r=e.count;s0){const s=e[n[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,a=s.length;rn)return;oa.applyMatrix4(i.matrixWorld);const l=t.ray.origin.distanceTo(oa);if(!(lt.far))return{distance:l,point:al.clone().applyMatrix4(i.matrixWorld),index:s,face:null,faceIndex:null,barycoord:null,object:i}}class oi extends qn{constructor(t){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new ot(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.fog=t.fog,this}}const ol=new ne,ho=new bs,sr=new di,rr=new P;class Yi extends Ue{constructor(t=new ge,e=new oi){super(),this.isPoints=!0,this.type="Points",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,s=this.matrixWorld,r=t.params.Points.threshold,a=n.drawRange;if(n.boundingSphere===null&&n.computeBoundingSphere(),sr.copy(n.boundingSphere),sr.applyMatrix4(s),sr.radius+=r,t.ray.intersectsSphere(sr)===!1)return;ol.copy(s).invert(),ho.copy(t.ray).applyMatrix4(ol);const o=r/((this.scale.x+this.scale.y+this.scale.z)/3),l=o*o,c=n.index,d=n.attributes.position;if(c!==null){const p=Math.max(0,a.start),u=Math.min(c.count,a.start+a.count);for(let g=p,_=u;g<_;g++){const m=c.getX(g);rr.fromBufferAttribute(d,m),ll(rr,m,l,s,t,e,this)}}else{const p=Math.max(0,a.start),u=Math.min(d.count,a.start+a.count);for(let g=p,_=u;g<_;g++)rr.fromBufferAttribute(d,g),ll(rr,g,l,s,t,e,this)}}updateMorphTargets(){const e=this.geometry.morphAttributes,n=Object.keys(e);if(n.length>0){const s=e[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:t,face:null,faceIndex:null,barycoord:null,object:a})}}class zi extends Ue{constructor(){super(),this.isGroup=!0,this.type="Group"}}class bc extends Pe{constructor(t,e,n,s,r,a,o,l,c){super(t,e,n,s,r,a,o,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Tc extends Pe{constructor(t,e,n,s,r,a,o,l,c,h=Gi){if(h!==Gi&&h!==$i)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");n===void 0&&h===Gi&&(n=li),n===void 0&&h===$i&&(n=Ki),super(null,s,r,a,o,l,h,n,c),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=o!==void 0?o:Je,this.minFilter=l!==void 0?l:Je,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.compareFunction=t.compareFunction,this}toJSON(t){const e=super.toJSON(t);return this.compareFunction!==null&&(e.compareFunction=this.compareFunction),e}}class ws extends ge{constructor(t=1,e=1,n=1,s=1){super(),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:s};const r=t/2,a=e/2,o=Math.floor(n),l=Math.floor(s),c=o+1,h=l+1,d=t/o,p=e/l,u=[],g=[],_=[],m=[];for(let f=0;f0)&&u.push(E,y,w),(f!==n-1||lu.start-g.start);let p=0;for(let u=1;u 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`,Gu=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; - uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,Wu=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; -#endif`,Xu=`#if NUM_CLIPPING_PLANES > 0 - vClipPosition = - mvPosition.xyz; -#endif`,Yu=`#if defined( USE_COLOR_ALPHA ) - diffuseColor *= vColor; -#elif defined( USE_COLOR ) - diffuseColor.rgb *= vColor; -#endif`,qu=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) - varying vec3 vColor; -#endif`,ju=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) - varying vec3 vColor; -#endif`,Zu=`#if defined( USE_COLOR_ALPHA ) - vColor = vec4( 1.0 ); -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) - vColor = vec3( 1.0 ); -#endif -#ifdef USE_COLOR - vColor *= color; -#endif -#ifdef USE_INSTANCING_COLOR - vColor.xyz *= instanceColor.xyz; -#endif -#ifdef USE_BATCHING_COLOR - vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) ); - vColor.xyz *= batchingColor.xyz; -#endif`,Ku=`#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 ); -} -vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); -} -mat3 transposeMat3( const in mat3 m ) { - mat3 tmp; - tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); - tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); - tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); - return tmp; -} -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`,$u=`#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`,Ju=`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; - #ifdef FLIP_SIDED - transformedTangent = - transformedTangent; - #endif -#endif`,Qu=`#ifdef USE_DISPLACEMENTMAP - uniform sampler2D displacementMap; - uniform float displacementScale; - uniform float displacementBias; -#endif`,td=`#ifdef USE_DISPLACEMENTMAP - transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,ed=`#ifdef USE_EMISSIVEMAP - vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); - #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE - emissiveColor = sRGBTransferEOTF( emissiveColor ); - #endif - totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,nd=`#ifdef USE_EMISSIVEMAP - uniform sampler2D emissiveMap; -#endif`,id="gl_FragColor = linearToOutputTexel( gl_FragColor );",sd=`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 ); -}`,rd=`#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 = inverseTransformDirection( 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 * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); - #else - vec4 envColor = vec4( 0.0 ); - #endif - #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`,ad=`#ifdef USE_ENVMAP - uniform float envMapIntensity; - uniform float flipEnvMap; - uniform mat3 envMapRotation; - #ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; - #else - uniform sampler2D envMap; - #endif - -#endif`,od=`#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`,ld=`#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`,cd=`#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 = inverseTransformDirection( transformedNormal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vReflect = reflect( cameraToVertex, worldNormal ); - #else - vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); - #endif - #endif -#endif`,hd=`#ifdef USE_FOG - vFogDepth = - mvPosition.z; -#endif`,ud=`#ifdef USE_FOG - varying float vFogDepth; -#endif`,dd=`#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`,fd=`#ifdef USE_FOG - uniform vec3 fogColor; - varying float vFogDepth; - #ifdef FOG_EXP2 - uniform float fogDensity; - #else - uniform float fogNear; - uniform float fogFar; - #endif -#endif`,pd=`#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 -}`,md=`#ifdef USE_LIGHTMAP - uniform sampler2D lightMap; - uniform float lightMapIntensity; -#endif`,gd=`LambertMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,_d=`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`,vd=`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 = inverseTransformDirection( normal, viewMatrix ); - vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); - return irradiance; -} -vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { - vec3 irradiance = ambientLightColor; - return irradiance; -} -float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { - float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); - if ( cutoffDistance > 0.0 ) { - distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); - } - return distanceFalloff; -} -float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { - return smoothstep( coneCosine, penumbraCosine, angleCosine ); -} -#if NUM_DIR_LIGHTS > 0 - struct DirectionalLight { - vec3 direction; - vec3 color; - }; - uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; - void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { - light.color = directionalLight.color; - light.direction = directionalLight.direction; - light.visible = true; - } -#endif -#if NUM_POINT_LIGHTS > 0 - struct PointLight { - vec3 position; - vec3 color; - float distance; - float decay; - }; - uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; - void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = pointLight.position - geometryPosition; - light.direction = normalize( lVector ); - float lightDistance = length( lVector ); - light.color = pointLight.color; - light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } -#endif -#if NUM_SPOT_LIGHTS > 0 - struct SpotLight { - vec3 position; - vec3 direction; - vec3 color; - float distance; - float decay; - float coneCos; - float penumbraCos; - }; - uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; - void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = spotLight.position - geometryPosition; - light.direction = normalize( lVector ); - float angleCos = dot( light.direction, spotLight.direction ); - float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); - if ( spotAttenuation > 0.0 ) { - float lightDistance = length( lVector ); - light.color = spotLight.color * spotAttenuation; - light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } else { - light.color = vec3( 0.0 ); - light.visible = false; - } - } -#endif -#if NUM_RECT_AREA_LIGHTS > 0 - struct RectAreaLight { - vec3 color; - vec3 position; - vec3 halfWidth; - vec3 halfHeight; - }; - uniform sampler2D ltc_1; uniform sampler2D ltc_2; - uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; -#endif -#if NUM_HEMI_LIGHTS > 0 - struct HemisphereLight { - vec3 direction; - vec3 skyColor; - vec3 groundColor; - }; - uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; - vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { - float dotNL = dot( normal, hemiLight.direction ); - float hemiDiffuseWeight = 0.5 * dotNL + 0.5; - vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); - return irradiance; - } -#endif`,xd=`#ifdef USE_ENVMAP - vec3 getIBLIrradiance( const in vec3 normal ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 worldNormal = inverseTransformDirection( 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, roughness * roughness) ); - reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); - return envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = normalize( cross( bentNormal, bitangent ) ); - bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); - return getIBLRadiance( viewDir, bentNormal, roughness ); - #else - return vec3( 0.0 ); - #endif - } - #endif -#endif`,Md=`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,Sd=`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`,yd=`BlinnPhongMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularColor = specular; -material.specularShininess = shininess; -material.specularStrength = specularStrength;`,Ed=`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`,bd=`PhysicalMaterial material; -material.diffuseColor = diffuseColor.rgb * ( 1.0 - 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 = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); -#else - material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); - material.specularF90 = 1.0; -#endif -#ifdef USE_CLEARCOAT - material.clearcoat = clearcoat; - material.clearcoatRoughness = clearcoatRoughness; - material.clearcoatF0 = vec3( 0.04 ); - material.clearcoatF90 = 1.0; - #ifdef USE_CLEARCOATMAP - material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; - #endif - #ifdef USE_CLEARCOAT_ROUGHNESSMAP - material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; - #endif - material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); - material.clearcoatRoughness += geometryRoughness; - material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); -#endif -#ifdef USE_DISPERSION - material.dispersion = dispersion; -#endif -#ifdef USE_IRIDESCENCE - material.iridescence = iridescence; - material.iridescenceIOR = iridescenceIOR; - #ifdef USE_IRIDESCENCEMAP - material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; - #endif - #ifdef USE_IRIDESCENCE_THICKNESSMAP - material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; - #else - material.iridescenceThickness = iridescenceThicknessMaximum; - #endif -#endif -#ifdef USE_SHEEN - material.sheenColor = sheenColor; - #ifdef USE_SHEEN_COLORMAP - material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; - #endif - material.sheenRoughness = clamp( sheenRoughness, 0.07, 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`,Td=`struct PhysicalMaterial { - vec3 diffuseColor; - float roughness; - vec3 specularColor; - float specularF90; - float dispersion; - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - #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 ) ); - float v = 0.5 / ( gv + gl ); - return saturate(v); - } - 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.specularColor; - 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 * transposeMat3( 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 a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; - float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; - float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); - return saturate( DG * RECIPROCAL_PI ); -} -vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); - const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); - vec4 r = roughness * c0 + c1; - float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; - vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; - return fab; -} -vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { - vec2 fab = DFGApprox( normal, viewDir, roughness ); - return specularColor * fab.x + specularF90 * fab.y; -} -#ifdef USE_IRIDESCENCE -void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#else -void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#endif - vec2 fab = DFGApprox( normal, viewDir, roughness ); - #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.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); - reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); - reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); - } -#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 ); - #endif - reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -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 ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -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 ); - #endif - vec3 singleScattering = vec3( 0.0 ); - vec3 multiScattering = vec3( 0.0 ); - vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; - #ifdef USE_IRIDESCENCE - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); - #else - computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); - #endif - vec3 totalScattering = singleScattering + multiScattering; - vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); - reflectedLight.indirectSpecular += radiance * singleScattering; - reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; - reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; -} -#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 ); -}`,wd=` -vec3 geometryPosition = - vViewPosition; -vec3 geometryNormal = normal; -vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); -vec3 geometryClearcoatNormal = vec3( 0.0 ); -#ifdef USE_CLEARCOAT - geometryClearcoatNormal = clearcoatNormal; -#endif -#ifdef USE_IRIDESCENCE - float dotNVi = saturate( dot( normal, geometryViewDir ) ); - if ( material.iridescenceThickness == 0.0 ) { - material.iridescence = 0.0; - } else { - material.iridescence = saturate( material.iridescence ); - } - if ( material.iridescence > 0.0 ) { - material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); - material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); - } -#endif -IncidentLight directLight; -#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) - PointLight pointLight; - #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { - pointLight = pointLights[ i ]; - getPointLightInfo( pointLight, geometryPosition, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) - pointLightShadow = pointLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) - SpotLight spotLight; - vec4 spotColor; - vec3 spotLightCoord; - bool inSpotLightMap; - #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { - spotLight = spotLights[ i ]; - getSpotLightInfo( spotLight, geometryPosition, directLight ); - #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX - #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS - #else - #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #endif - #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) - spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; - inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); - spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); - directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; - #endif - #undef SPOT_LIGHT_MAP_INDEX - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - spotLightShadow = spotLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) - DirectionalLight directionalLight; - #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { - directionalLight = directionalLights[ i ]; - getDirectionalLightInfo( directionalLight, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) - directionalLightShadow = directionalLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) - RectAreaLight rectAreaLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { - rectAreaLight = rectAreaLights[ i ]; - RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if defined( RE_IndirectDiffuse ) - vec3 iblIrradiance = vec3( 0.0 ); - vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); - #if defined( USE_LIGHT_PROBES ) - irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); - #endif - #if ( NUM_HEMI_LIGHTS > 0 ) - #pragma unroll_loop_start - for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { - irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); - } - #pragma unroll_loop_end - #endif -#endif -#if defined( RE_IndirectSpecular ) - vec3 radiance = vec3( 0.0 ); - vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,Ad=`#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( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) - iblIrradiance += getIBLIrradiance( geometryNormal ); - #endif -#endif -#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); - #else - radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); - #endif - #ifdef USE_CLEARCOAT - clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); - #endif -#endif`,Rd=`#if defined( RE_IndirectDiffuse ) - 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`,Cd=`#if defined( USE_LOGDEPTHBUF ) - gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,Pd=`#if defined( USE_LOGDEPTHBUF ) - uniform float logDepthBufFC; - varying float vFragDepth; - varying float vIsPerspective; -#endif`,Dd=`#ifdef USE_LOGDEPTHBUF - varying float vFragDepth; - varying float vIsPerspective; -#endif`,Ld=`#ifdef USE_LOGDEPTHBUF - vFragDepth = 1.0 + gl_Position.w; - vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); -#endif`,Ud=`#ifdef USE_MAP - vec4 sampledDiffuseColor = texture2D( map, vMapUv ); - #ifdef DECODE_VIDEO_TEXTURE - sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); - #endif - diffuseColor *= sampledDiffuseColor; -#endif`,Id=`#ifdef USE_MAP - uniform sampler2D map; -#endif`,Nd=`#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`,Fd=`#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`,Od=`float metalnessFactor = metalness; -#ifdef USE_METALNESSMAP - vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); - metalnessFactor *= texelMetalness.b; -#endif`,Bd=`#ifdef USE_METALNESSMAP - uniform sampler2D metalnessMap; -#endif`,zd=`#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`,kd=`#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`,Hd=`#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`,Vd=`#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`,Gd=`#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`,Wd=`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 - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - 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 - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn2[0] *= faceDirection; - tbn2[1] *= faceDirection; - #endif -#endif -vec3 nonPerturbedNormal = normal;`,Xd=`#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; - mapN.xy *= normalScale; - normal = normalize( tbn * mapN ); -#elif defined( USE_BUMPMAP ) - normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,Yd=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,qd=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,jd=`#ifndef FLAT_SHADED - vNormal = normalize( transformedNormal ); - #ifdef USE_TANGENT - vTangent = normalize( transformedTangent ); - vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); - #endif -#endif`,Zd=`#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`,Kd=`#ifdef USE_CLEARCOAT - vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,$d=`#ifdef USE_CLEARCOAT_NORMALMAP - vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; - clearcoatMapN.xy *= clearcoatNormalScale; - clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,Jd=`#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`,Qd=`#ifdef USE_IRIDESCENCEMAP - uniform sampler2D iridescenceMap; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform sampler2D iridescenceThicknessMap; -#endif`,tf=`#ifdef OPAQUE -diffuseColor.a = 1.0; -#endif -#ifdef USE_TRANSMISSION -diffuseColor.a *= material.transmissionAlpha; -#endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,ef=`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 ) { - return depth * ( near - far ) - near; -} -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 ) { - return ( near * far ) / ( ( far - near ) * depth - far ); -}`,nf=`#ifdef PREMULTIPLIED_ALPHA - gl_FragColor.rgb *= gl_FragColor.a; -#endif`,sf=`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;`,rf=`#ifdef DITHERING - gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,af=`#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`,of=`float roughnessFactor = roughness; -#ifdef USE_ROUGHNESSMAP - vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); - roughnessFactor *= texelRoughness.g; -#endif`,lf=`#ifdef USE_ROUGHNESSMAP - uniform sampler2D roughnessMap; -#endif`,cf=`#if NUM_SPOT_LIGHT_COORDS > 0 - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#if NUM_SPOT_LIGHT_MAPS > 0 - uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform sampler2D directionalShadowMap[ 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 - uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - 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 sampler2D pointShadowMap[ 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 - float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { - return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); - } - vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { - return unpackRGBATo2Half( texture2D( shadow, uv ) ); - } - float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ - float occlusion = 1.0; - vec2 distribution = texture2DDistribution( shadow, uv ); - float hard_shadow = step( compare , distribution.x ); - if (hard_shadow != 1.0 ) { - float distance = compare - distribution.x ; - float variance = max( 0.00000, distribution.y * distribution.y ); - float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); - } - return occlusion; - } - float getShadow( sampler2D 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 ) { - #if defined( SHADOWMAP_TYPE_PCF ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx0 = - texelSize.x * shadowRadius; - float dy0 = - texelSize.y * shadowRadius; - float dx1 = + texelSize.x * shadowRadius; - float dy1 = + texelSize.y * shadowRadius; - float dx2 = dx0 / 2.0; - float dy2 = dy0 / 2.0; - float dx3 = dx1 / 2.0; - float dy3 = dy1 / 2.0; - shadow = ( - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + - texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) - ) * ( 1.0 / 17.0 ); - #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float dx = texelSize.x; - float dy = texelSize.y; - vec2 uv = shadowCoord.xy; - vec2 f = fract( uv * shadowMapSize + 0.5 ); - uv -= f * texelSize; - shadow = ( - texture2DCompare( shadowMap, uv, shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + - texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), - f.x ) + - mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), - f.y ) + - mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), - f.x ), - mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), - texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), - f.x ), - f.y ) - ) * ( 1.0 / 9.0 ); - #elif defined( SHADOWMAP_TYPE_VSM ) - shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); - #else - shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); - #endif - } - return mix( 1.0, shadow, shadowIntensity ); - } - vec2 cubeToUV( vec3 v, float texelSizeY ) { - vec3 absV = abs( v ); - float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); - absV *= scaleToCube; - v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); - vec2 planar = v.xy; - float almostATexel = 1.5 * texelSizeY; - float almostOne = 1.0 - almostATexel; - if ( absV.z >= almostOne ) { - if ( v.z > 0.0 ) - planar.x = 4.0 - v.x; - } else if ( absV.x >= almostOne ) { - float signX = sign( v.x ); - planar.x = v.z * signX + 2.0 * signX; - } else if ( absV.y >= almostOne ) { - float signY = sign( v.y ); - planar.x = v.x + 2.0 * signY + 2.0; - planar.y = v.z * signY - 2.0; - } - return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); - } - float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - float shadow = 1.0; - vec3 lightToPosition = shadowCoord.xyz; - - float lightToPositionLength = length( lightToPosition ); - if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) { - float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; - vec3 bd3D = normalize( lightToPosition ); - vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); - #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) - vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; - shadow = ( - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + - texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) - ) * ( 1.0 / 9.0 ); - #else - shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); - #endif - } - return mix( 1.0, shadow, shadowIntensity ); - } -#endif`,hf=`#if NUM_SPOT_LIGHT_COORDS > 0 - uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - struct SpotLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif -#endif`,uf=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) - vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - vec4 shadowWorldPosition; -#endif -#if defined( USE_SHADOWMAP ) - #if NUM_DIR_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); - vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); - vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif -#endif -#if NUM_SPOT_LIGHT_COORDS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { - shadowWorldPosition = worldPosition; - #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; - #endif - vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end -#endif`,df=`float getShadowMask() { - float shadow = 1.0; - #ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - directionalLight = directionalLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { - spotLight = spotLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - 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; -}`,ff=`#ifdef USE_SKINNING - mat4 boneMatX = getBoneMatrix( skinIndex.x ); - mat4 boneMatY = getBoneMatrix( skinIndex.y ); - mat4 boneMatZ = getBoneMatrix( skinIndex.z ); - mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,pf=`#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`,mf=`#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`,gf=`#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`,_f=`float specularStrength; -#ifdef USE_SPECULARMAP - vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); - specularStrength = texelSpecular.r; -#else - specularStrength = 1.0; -#endif`,vf=`#ifdef USE_SPECULARMAP - uniform sampler2D specularMap; -#endif`,xf=`#if defined( TONE_MAPPING ) - gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,Mf=`#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; }`,Sf=`#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 = inverseTransformDirection( normal, viewMatrix ); - vec4 transmitted = getIBLVolumeRefraction( - n, v, material.roughness, material.diffuseColor, material.specularColor, 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`,yf=`#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`,Ef=`#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`,bf=`#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`,Tf=`#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`,wf=`#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`;const Af=`varying vec2 vUv; -uniform mat3 uvTransform; -void main() { - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,Rf=`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 -}`,Cf=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,Pf=`#ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; -#elif defined( ENVMAP_TYPE_CUBE_UV ) - uniform sampler2D envMap; -#endif -uniform float flipEnvMap; -uniform float backgroundBlurriness; -uniform float backgroundIntensity; -uniform mat3 backgroundRotation; -varying vec3 vWorldDirection; -#include -void main() { - #ifdef ENVMAP_TYPE_CUBE - vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); - #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 -}`,Df=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,Lf=`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 -}`,Uf=`#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; -}`,If=`#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 - float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; - #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 -}`,Nf=`#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; -}`,Ff=`#define DISTANCE -uniform vec3 referencePosition; -uniform float nearDistance; -uniform float farDistance; -varying vec3 vWorldPosition; -#include -#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 = packDepthToRGBA( dist ); -}`,Of=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include -}`,Bf=`uniform sampler2D tEquirect; -varying vec3 vWorldDirection; -#include -void main() { - vec3 direction = normalize( vWorldDirection ); - vec2 sampleUV = equirectUv( direction ); - gl_FragColor = texture2D( tEquirect, sampleUV ); - #include - #include -}`,zf=`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 -}`,kf=`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 -}`,Hf=`#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 -}`,Vf=`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 -}`,Gf=`#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 -}`,Wf=`#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 -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 -}`,Xf=`#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; -}`,Yf=`#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 -}`,qf=`#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 -}`,jf=`#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 -#include -void main() { - vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); - #include - #include - #include - #include - gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); - #ifdef OPAQUE - gl_FragColor.a = 1.0; - #endif -}`,Zf=`#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 -}`,Kf=`#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 -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 -}`,$f=`#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 -}`,Jf=`#define STANDARD -#ifdef PHYSICAL - #define IOR - #define USE_SPECULAR -#endif -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float roughness; -uniform float metalness; -uniform float opacity; -#ifdef IOR - uniform float ior; -#endif -#ifdef USE_SPECULAR - uniform float specularIntensity; - uniform vec3 specularColor; - #ifdef USE_SPECULAR_COLORMAP - uniform sampler2D specularColorMap; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - uniform sampler2D specularIntensityMap; - #endif -#endif -#ifdef USE_CLEARCOAT - uniform float clearcoat; - uniform float clearcoatRoughness; -#endif -#ifdef USE_DISPERSION - uniform float dispersion; -#endif -#ifdef USE_IRIDESCENCE - uniform float iridescence; - uniform float iridescenceIOR; - uniform float iridescenceThicknessMinimum; - uniform float iridescenceThicknessMaximum; -#endif -#ifdef USE_SHEEN - uniform vec3 sheenColor; - uniform float sheenRoughness; - #ifdef USE_SHEEN_COLORMAP - uniform sampler2D sheenColorMap; - #endif - #ifdef USE_SHEEN_ROUGHNESSMAP - uniform sampler2D sheenRoughnessMap; - #endif -#endif -#ifdef USE_ANISOTROPY - uniform vec2 anisotropyVector; - #ifdef USE_ANISOTROPYMAP - uniform sampler2D anisotropyMap; - #endif -#endif -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#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 - float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); - outgoingLight = outgoingLight * sheenEnergyComp + 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 -}`,Qf=`#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 -}`,tp=`#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 -#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 -}`,ep=`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 -}`,np=`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 -}`,ip=`#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,sp=`uniform vec3 color; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); - #include - #include - #include -}`,rp=`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 -}`,ap=`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 -}`,Gt={alphahash_fragment:Au,alphahash_pars_fragment:Ru,alphamap_fragment:Cu,alphamap_pars_fragment:Pu,alphatest_fragment:Du,alphatest_pars_fragment:Lu,aomap_fragment:Uu,aomap_pars_fragment:Iu,batching_pars_vertex:Nu,batching_vertex:Fu,begin_vertex:Ou,beginnormal_vertex:Bu,bsdfs:zu,iridescence_fragment:ku,bumpmap_pars_fragment:Hu,clipping_planes_fragment:Vu,clipping_planes_pars_fragment:Gu,clipping_planes_pars_vertex:Wu,clipping_planes_vertex:Xu,color_fragment:Yu,color_pars_fragment:qu,color_pars_vertex:ju,color_vertex:Zu,common:Ku,cube_uv_reflection_fragment:$u,defaultnormal_vertex:Ju,displacementmap_pars_vertex:Qu,displacementmap_vertex:td,emissivemap_fragment:ed,emissivemap_pars_fragment:nd,colorspace_fragment:id,colorspace_pars_fragment:sd,envmap_fragment:rd,envmap_common_pars_fragment:ad,envmap_pars_fragment:od,envmap_pars_vertex:ld,envmap_physical_pars_fragment:xd,envmap_vertex:cd,fog_vertex:hd,fog_pars_vertex:ud,fog_fragment:dd,fog_pars_fragment:fd,gradientmap_pars_fragment:pd,lightmap_pars_fragment:md,lights_lambert_fragment:gd,lights_lambert_pars_fragment:_d,lights_pars_begin:vd,lights_toon_fragment:Md,lights_toon_pars_fragment:Sd,lights_phong_fragment:yd,lights_phong_pars_fragment:Ed,lights_physical_fragment:bd,lights_physical_pars_fragment:Td,lights_fragment_begin:wd,lights_fragment_maps:Ad,lights_fragment_end:Rd,logdepthbuf_fragment:Cd,logdepthbuf_pars_fragment:Pd,logdepthbuf_pars_vertex:Dd,logdepthbuf_vertex:Ld,map_fragment:Ud,map_pars_fragment:Id,map_particle_fragment:Nd,map_particle_pars_fragment:Fd,metalnessmap_fragment:Od,metalnessmap_pars_fragment:Bd,morphinstance_vertex:zd,morphcolor_vertex:kd,morphnormal_vertex:Hd,morphtarget_pars_vertex:Vd,morphtarget_vertex:Gd,normal_fragment_begin:Wd,normal_fragment_maps:Xd,normal_pars_fragment:Yd,normal_pars_vertex:qd,normal_vertex:jd,normalmap_pars_fragment:Zd,clearcoat_normal_fragment_begin:Kd,clearcoat_normal_fragment_maps:$d,clearcoat_pars_fragment:Jd,iridescence_pars_fragment:Qd,opaque_fragment:tf,packing:ef,premultiplied_alpha_fragment:nf,project_vertex:sf,dithering_fragment:rf,dithering_pars_fragment:af,roughnessmap_fragment:of,roughnessmap_pars_fragment:lf,shadowmap_pars_fragment:cf,shadowmap_pars_vertex:hf,shadowmap_vertex:uf,shadowmask_pars_fragment:df,skinbase_vertex:ff,skinning_pars_vertex:pf,skinning_vertex:mf,skinnormal_vertex:gf,specularmap_fragment:_f,specularmap_pars_fragment:vf,tonemapping_fragment:xf,tonemapping_pars_fragment:Mf,transmission_fragment:Sf,transmission_pars_fragment:yf,uv_pars_fragment:Ef,uv_pars_vertex:bf,uv_vertex:Tf,worldpos_vertex:wf,background_vert:Af,background_frag:Rf,backgroundCube_vert:Cf,backgroundCube_frag:Pf,cube_vert:Df,cube_frag:Lf,depth_vert:Uf,depth_frag:If,distanceRGBA_vert:Nf,distanceRGBA_frag:Ff,equirect_vert:Of,equirect_frag:Bf,linedashed_vert:zf,linedashed_frag:kf,meshbasic_vert:Hf,meshbasic_frag:Vf,meshlambert_vert:Gf,meshlambert_frag:Wf,meshmatcap_vert:Xf,meshmatcap_frag:Yf,meshnormal_vert:qf,meshnormal_frag:jf,meshphong_vert:Zf,meshphong_frag:Kf,meshphysical_vert:$f,meshphysical_frag:Jf,meshtoon_vert:Qf,meshtoon_frag:tp,points_vert:ep,points_frag:np,shadow_vert:ip,shadow_frag:sp,sprite_vert:rp,sprite_frag:ap},ct={common:{diffuse:{value:new ot(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ht},alphaMap:{value:null},alphaMapTransform:{value:new Ht},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ht}},envmap:{envMap:{value:null},envMapRotation:{value:new Ht},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ht}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ht}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ht},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ht},normalScale:{value:new St(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ht},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ht}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ht}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ht}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new ot(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new ot(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ht},alphaTest:{value:0},uvTransform:{value:new Ht}},sprite:{diffuse:{value:new ot(16777215)},opacity:{value:1},center:{value:new St(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ht},alphaMap:{value:null},alphaMapTransform:{value:new Ht},alphaTest:{value:0}}},mn={basic:{uniforms:ke([ct.common,ct.specularmap,ct.envmap,ct.aomap,ct.lightmap,ct.fog]),vertexShader:Gt.meshbasic_vert,fragmentShader:Gt.meshbasic_frag},lambert:{uniforms:ke([ct.common,ct.specularmap,ct.envmap,ct.aomap,ct.lightmap,ct.emissivemap,ct.bumpmap,ct.normalmap,ct.displacementmap,ct.fog,ct.lights,{emissive:{value:new ot(0)}}]),vertexShader:Gt.meshlambert_vert,fragmentShader:Gt.meshlambert_frag},phong:{uniforms:ke([ct.common,ct.specularmap,ct.envmap,ct.aomap,ct.lightmap,ct.emissivemap,ct.bumpmap,ct.normalmap,ct.displacementmap,ct.fog,ct.lights,{emissive:{value:new ot(0)},specular:{value:new ot(1118481)},shininess:{value:30}}]),vertexShader:Gt.meshphong_vert,fragmentShader:Gt.meshphong_frag},standard:{uniforms:ke([ct.common,ct.envmap,ct.aomap,ct.lightmap,ct.emissivemap,ct.bumpmap,ct.normalmap,ct.displacementmap,ct.roughnessmap,ct.metalnessmap,ct.fog,ct.lights,{emissive:{value:new ot(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Gt.meshphysical_vert,fragmentShader:Gt.meshphysical_frag},toon:{uniforms:ke([ct.common,ct.aomap,ct.lightmap,ct.emissivemap,ct.bumpmap,ct.normalmap,ct.displacementmap,ct.gradientmap,ct.fog,ct.lights,{emissive:{value:new ot(0)}}]),vertexShader:Gt.meshtoon_vert,fragmentShader:Gt.meshtoon_frag},matcap:{uniforms:ke([ct.common,ct.bumpmap,ct.normalmap,ct.displacementmap,ct.fog,{matcap:{value:null}}]),vertexShader:Gt.meshmatcap_vert,fragmentShader:Gt.meshmatcap_frag},points:{uniforms:ke([ct.points,ct.fog]),vertexShader:Gt.points_vert,fragmentShader:Gt.points_frag},dashed:{uniforms:ke([ct.common,ct.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Gt.linedashed_vert,fragmentShader:Gt.linedashed_frag},depth:{uniforms:ke([ct.common,ct.displacementmap]),vertexShader:Gt.depth_vert,fragmentShader:Gt.depth_frag},normal:{uniforms:ke([ct.common,ct.bumpmap,ct.normalmap,ct.displacementmap,{opacity:{value:1}}]),vertexShader:Gt.meshnormal_vert,fragmentShader:Gt.meshnormal_frag},sprite:{uniforms:ke([ct.sprite,ct.fog]),vertexShader:Gt.sprite_vert,fragmentShader:Gt.sprite_frag},background:{uniforms:{uvTransform:{value:new Ht},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Gt.background_vert,fragmentShader:Gt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Ht}},vertexShader:Gt.backgroundCube_vert,fragmentShader:Gt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Gt.cube_vert,fragmentShader:Gt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Gt.equirect_vert,fragmentShader:Gt.equirect_frag},distanceRGBA:{uniforms:ke([ct.common,ct.displacementmap,{referencePosition:{value:new P},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Gt.distanceRGBA_vert,fragmentShader:Gt.distanceRGBA_frag},shadow:{uniforms:ke([ct.lights,ct.fog,{color:{value:new ot(0)},opacity:{value:1}}]),vertexShader:Gt.shadow_vert,fragmentShader:Gt.shadow_frag}};mn.physical={uniforms:ke([mn.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ht},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ht},clearcoatNormalScale:{value:new St(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ht},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ht},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ht},sheen:{value:0},sheenColor:{value:new ot(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ht},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ht},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ht},transmissionSamplerSize:{value:new St},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ht},attenuationDistance:{value:0},attenuationColor:{value:new ot(0)},specularColor:{value:new ot(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ht},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ht},anisotropyVector:{value:new St},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ht}}]),vertexShader:Gt.meshphysical_vert,fragmentShader:Gt.meshphysical_frag};const ar={r:0,b:0,g:0},Qn=new Mn,op=new ne;function lp(i,t,e,n,s,r,a){const o=new ot(0);let l=r===!0?0:1,c,h,d=null,p=0,u=null;function g(E){let y=E.isScene===!0?E.background:null;return y&&y.isTexture&&(y=(E.backgroundBlurriness>0?e:t).get(y)),y}function _(E){let y=!1;const D=g(E);D===null?f(o,l):D&&D.isColor&&(f(D,1),y=!0);const w=i.xr.getEnvironmentBlendMode();w==="additive"?n.buffers.color.setClear(0,0,0,1,a):w==="alpha-blend"&&n.buffers.color.setClear(0,0,0,0,a),(i.autoClear||y)&&(n.buffers.depth.setTest(!0),n.buffers.depth.setMask(!0),n.buffers.color.setMask(!0),i.clear(i.autoClearColor,i.autoClearDepth,i.autoClearStencil))}function m(E,y){const D=g(y);D&&(D.isCubeTexture||D.mapping===Pr)?(h===void 0&&(h=new be(new Ts(1,1,1),new He({name:"BackgroundCubeMaterial",uniforms:Qi(mn.backgroundCube.uniforms),vertexShader:mn.backgroundCube.vertexShader,fragmentShader:mn.backgroundCube.fragmentShader,side:Xe,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(w,C,I){this.matrixWorld.copyPosition(I.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),s.update(h)),Qn.copy(y.backgroundRotation),Qn.x*=-1,Qn.y*=-1,Qn.z*=-1,D.isCubeTexture&&D.isRenderTargetTexture===!1&&(Qn.y*=-1,Qn.z*=-1),h.material.uniforms.envMap.value=D,h.material.uniforms.flipEnvMap.value=D.isCubeTexture&&D.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=y.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,h.material.uniforms.backgroundRotation.value.setFromMatrix4(op.makeRotationFromEuler(Qn)),h.material.toneMapped=Qt.getTransfer(D.colorSpace)!==se,(d!==D||p!==D.version||u!==i.toneMapping)&&(h.material.needsUpdate=!0,d=D,p=D.version,u=i.toneMapping),h.layers.enableAll(),E.unshift(h,h.geometry,h.material,0,0,null)):D&&D.isTexture&&(c===void 0&&(c=new be(new ws(2,2),new He({name:"BackgroundMaterial",uniforms:Qi(mn.background.uniforms),vertexShader:mn.background.vertexShader,fragmentShader:mn.background.fragmentShader,side:Yn,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),s.update(c)),c.material.uniforms.t2D.value=D,c.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,c.material.toneMapped=Qt.getTransfer(D.colorSpace)!==se,D.matrixAutoUpdate===!0&&D.updateMatrix(),c.material.uniforms.uvTransform.value.copy(D.matrix),(d!==D||p!==D.version||u!==i.toneMapping)&&(c.material.needsUpdate=!0,d=D,p=D.version,u=i.toneMapping),c.layers.enableAll(),E.unshift(c,c.geometry,c.material,0,0,null))}function f(E,y){E.getRGB(ar,Mc(i)),n.buffers.color.setClear(ar.r,ar.g,ar.b,y,a)}function T(){h!==void 0&&(h.geometry.dispose(),h.material.dispose()),c!==void 0&&(c.geometry.dispose(),c.material.dispose())}return{getClearColor:function(){return o},setClearColor:function(E,y=1){o.set(E),l=y,f(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(E){l=E,f(o,l)},render:_,addToRenderList:m,dispose:T}}function cp(i,t){const e=i.getParameter(i.MAX_VERTEX_ATTRIBS),n={},s=p(null);let r=s,a=!1;function o(M,A,W,k,q){let Q=!1;const X=d(k,W,A);r!==X&&(r=X,c(r.object)),Q=u(M,k,W,q),Q&&g(M,k,W,q),q!==null&&t.update(q,i.ELEMENT_ARRAY_BUFFER),(Q||a)&&(a=!1,y(M,A,W,k),q!==null&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t.get(q).buffer))}function l(){return i.createVertexArray()}function c(M){return i.bindVertexArray(M)}function h(M){return i.deleteVertexArray(M)}function d(M,A,W){const k=W.wireframe===!0;let q=n[M.id];q===void 0&&(q={},n[M.id]=q);let Q=q[A.id];Q===void 0&&(Q={},q[A.id]=Q);let X=Q[k];return X===void 0&&(X=p(l()),Q[k]=X),X}function p(M){const A=[],W=[],k=[];for(let q=0;q=0){const gt=q[H];let Et=Q[H];if(Et===void 0&&(H==="instanceMatrix"&&M.instanceMatrix&&(Et=M.instanceMatrix),H==="instanceColor"&&M.instanceColor&&(Et=M.instanceColor)),gt===void 0||gt.attribute!==Et||Et&>.data!==Et.data)return!0;X++}return r.attributesNum!==X||r.index!==k}function g(M,A,W,k){const q={},Q=A.attributes;let X=0;const tt=W.getAttributes();for(const H in tt)if(tt[H].location>=0){let gt=Q[H];gt===void 0&&(H==="instanceMatrix"&&M.instanceMatrix&&(gt=M.instanceMatrix),H==="instanceColor"&&M.instanceColor&&(gt=M.instanceColor));const Et={};Et.attribute=gt,gt&>.data&&(Et.data=gt.data),q[H]=Et,X++}r.attributes=q,r.attributesNum=X,r.index=k}function _(){const M=r.newAttributes;for(let A=0,W=M.length;A=0){let st=q[tt];if(st===void 0&&(tt==="instanceMatrix"&&M.instanceMatrix&&(st=M.instanceMatrix),tt==="instanceColor"&&M.instanceColor&&(st=M.instanceColor)),st!==void 0){const gt=st.normalized,Et=st.itemSize,Ft=t.get(st);if(Ft===void 0)continue;const Xt=Ft.buffer,Y=Ft.type,nt=Ft.bytesPerElement,_t=Y===i.INT||Y===i.UNSIGNED_INT||st.gpuType===xo;if(st.isInterleavedBufferAttribute){const lt=st.data,Ct=lt.stride,Lt=st.offset;if(lt.isInstancedInterleavedBuffer){for(let Vt=0;Vt0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision>0)return"highp";C="mediump"}return C==="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=e.precision!==void 0?e.precision:"highp";const h=l(c);h!==c&&(console.warn("THREE.WebGLRenderer:",c,"not supported, using",h,"instead."),c=h);const d=e.logarithmicDepthBuffer===!0,p=e.reverseDepthBuffer===!0&&t.has("EXT_clip_control"),u=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),g=i.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),_=i.getParameter(i.MAX_TEXTURE_SIZE),m=i.getParameter(i.MAX_CUBE_MAP_TEXTURE_SIZE),f=i.getParameter(i.MAX_VERTEX_ATTRIBS),T=i.getParameter(i.MAX_VERTEX_UNIFORM_VECTORS),E=i.getParameter(i.MAX_VARYING_VECTORS),y=i.getParameter(i.MAX_FRAGMENT_UNIFORM_VECTORS),D=g>0,w=i.getParameter(i.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:r,getMaxPrecision:l,textureFormatReadable:a,textureTypeReadable:o,precision:c,logarithmicDepthBuffer:d,reverseDepthBuffer:p,maxTextures:u,maxVertexTextures:g,maxTextureSize:_,maxCubemapSize:m,maxAttributes:f,maxVertexUniforms:T,maxVaryings:E,maxFragmentUniforms:y,vertexTextures:D,maxSamples:w}}function dp(i){const t=this;let e=null,n=0,s=!1,r=!1;const a=new Hn,o=new Ht,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(d,p){const u=d.length!==0||p||n!==0||s;return s=p,n=d.length,u},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1},this.setGlobalState=function(d,p){e=h(d,p,0)},this.setState=function(d,p,u){const g=d.clippingPlanes,_=d.clipIntersection,m=d.clipShadows,f=i.get(d);if(!s||g===null||g.length===0||r&&!m)r?h(null):c();else{const T=r?0:n,E=T*4;let y=f.clippingState||null;l.value=y,y=h(g,p,E,u);for(let D=0;D!==E;++D)y[D]=e[D];f.clippingState=y,this.numIntersection=_?this.numPlanes:0,this.numPlanes+=T}};function c(){l.value!==e&&(l.value=e,l.needsUpdate=n>0),t.numPlanes=n,t.numIntersection=0}function h(d,p,u,g){const _=d!==null?d.length:0;let m=null;if(_!==0){if(m=l.value,g!==!0||m===null){const f=u+_*4,T=p.matrixWorldInverse;o.getNormalMatrix(T),(m===null||m.length0){const c=new ou(l.height);return c.fromEquirectangularTexture(i,a),t.set(a,c),a.addEventListener("dispose",s),e(c.texture,a.mapping)}else return null}}return a}function s(a){const o=a.target;o.removeEventListener("dispose",s);const l=t.get(o);l!==void 0&&(t.delete(o),l.dispose())}function r(){t=new WeakMap}return{get:n,dispose:r}}const ki=4,vl=[.125,.215,.35,.446,.526,.582],si=20,ha=new Ac,xl=new ot;let ua=null,da=0,fa=0,pa=!1;const ei=(1+Math.sqrt(5))/2,Ni=1/ei,Ml=[new P(-ei,Ni,0),new P(ei,Ni,0),new P(-Ni,0,ei),new P(Ni,0,ei),new P(0,ei,-Ni),new P(0,ei,Ni),new P(-1,1,-1),new P(1,1,-1),new P(-1,1,1),new P(1,1,1)];class Sl{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,s=100){ua=this._renderer.getRenderTarget(),da=this._renderer.getActiveCubeFace(),fa=this._renderer.getActiveMipmapLevel(),pa=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,s,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=bl(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=El(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let t=0;t2?E:0,E,E),h.setRenderTarget(s),_&&h.render(g,o),h.render(t,o)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=p,h.autoClear=d,t.background=m}_textureToCubeUV(t,e){const n=this._renderer,s=t.mapping===ji||t.mapping===Zi;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=bl()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=El());const r=s?this._cubemapMaterial:this._equirectMaterial,a=new be(this._lodPlanes[0],r),o=r.uniforms;o.envMap.value=t;const l=this._cubeSize;or(e,0,0,3*l,2*l),n.setRenderTarget(e),n.render(a,ha)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;const s=this._lodPlanes.length;for(let r=1;rsi&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${si}`);const f=[];let T=0;for(let C=0;CE-ki?s-E+ki:0),w=4*(this._cubeSize-y);or(e,D,w,3*y,2*y),l.setRenderTarget(e),l.render(d,ha)}}function pp(i){const t=[],e=[],n=[];let s=i;const r=i-ki+1+vl.length;for(let a=0;ai-ki?l=vl[a-i+ki-1]:a===0&&(l=0),n.push(l);const c=1/(o-2),h=-c,d=1+c,p=[h,h,d,h,d,d,h,h,d,d,h,d],u=6,g=6,_=3,m=2,f=1,T=new Float32Array(_*g*u),E=new Float32Array(m*g*u),y=new Float32Array(f*g*u);for(let w=0;w2?0:-1,S=[C,I,0,C+2/3,I,0,C+2/3,I+1,0,C,I,0,C+2/3,I+1,0,C,I+1,0];T.set(S,_*g*w),E.set(p,m*g*w);const M=[w,w,w,w,w,w];y.set(M,f*g*w)}const D=new ge;D.setAttribute("position",new he(T,_)),D.setAttribute("uv",new he(E,m)),D.setAttribute("faceIndex",new he(y,f)),t.push(D),s>ki&&s--}return{lodPlanes:t,sizeLods:e,sigmas:n}}function yl(i,t,e){const n=new fn(i,t,e);return n.texture.mapping=Pr,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function or(i,t,e,n,s){i.viewport.set(t,e,n,s),i.scissor.set(t,e,n,s)}function mp(i,t,e){const n=new Float32Array(si),s=new P(0,1,0);return new He({name:"SphericalGaussianBlur",defines:{n:si,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${i}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:s}},vertexShader:Co(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform int samples; - uniform float weights[ n ]; - uniform bool latitudinal; - uniform float dTheta; - uniform float mipInt; - uniform vec3 poleAxis; - - #define ENVMAP_TYPE_CUBE_UV - #include - - vec3 getSample( float theta, vec3 axis ) { - - float cosTheta = cos( theta ); - // Rodrigues' axis-angle rotation - vec3 sampleDirection = vOutputDirection * cosTheta - + cross( axis, vOutputDirection ) * sin( theta ) - + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); - - return bilinearCubeUV( envMap, sampleDirection, mipInt ); - - } - - void main() { - - vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); - - if ( all( equal( axis, vec3( 0.0 ) ) ) ) { - - axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); - - } - - axis = normalize( axis ); - - gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); - - for ( int i = 1; i < n; i++ ) { - - if ( i >= samples ) { - - break; - - } - - float theta = dTheta * float( i ); - gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); - gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); - - } - - } - `,blending:Cn,depthTest:!1,depthWrite:!1})}function El(){return new He({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Co(),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:Cn,depthTest:!1,depthWrite:!1})}function bl(){return new He({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Co(),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:Cn,depthTest:!1,depthWrite:!1})}function Co(){return` - - precision mediump float; - precision mediump int; - - attribute float faceIndex; - - varying vec3 vOutputDirection; - - // RH coordinate system; PMREM face-indexing convention - vec3 getDirection( vec2 uv, float face ) { - - uv = 2.0 * uv - 1.0; - - vec3 direction = vec3( uv, 1.0 ); - - if ( face == 0.0 ) { - - direction = direction.zyx; // ( 1, v, u ) pos x - - } else if ( face == 1.0 ) { - - direction = direction.xzy; - direction.xz *= -1.0; // ( -u, 1, -v ) pos y - - } else if ( face == 2.0 ) { - - direction.x *= -1.0; // ( -u, v, 1 ) pos z - - } else if ( face == 3.0 ) { - - direction = direction.zyx; - direction.xz *= -1.0; // ( -1, v, -u ) neg x - - } else if ( face == 4.0 ) { - - direction = direction.xzy; - direction.xy *= -1.0; // ( -u, -1, v ) neg y - - } else if ( face == 5.0 ) { - - direction.z *= -1.0; // ( u, v, -1 ) neg z - - } - - return direction; - - } - - void main() { - - vOutputDirection = getDirection( uv, faceIndex ); - gl_Position = vec4( position, 1.0 ); - - } - `}function gp(i){let t=new WeakMap,e=null;function n(o){if(o&&o.isTexture){const l=o.mapping,c=l===Da||l===La,h=l===ji||l===Zi;if(c||h){let d=t.get(o);const p=d!==void 0?d.texture.pmremVersion:0;if(o.isRenderTargetTexture&&o.pmremVersion!==p)return e===null&&(e=new Sl(i)),d=c?e.fromEquirectangular(o,d):e.fromCubemap(o,d),d.texture.pmremVersion=o.pmremVersion,t.set(o,d),d.texture;if(d!==void 0)return d.texture;{const u=o.image;return c&&u&&u.height>0||h&&u&&s(u)?(e===null&&(e=new Sl(i)),d=c?e.fromEquirectangular(o):e.fromCubemap(o),d.texture.pmremVersion=o.pmremVersion,t.set(o,d),o.addEventListener("dispose",r),d.texture):null}}}return o}function s(o){let l=0;const c=6;for(let h=0;ht.maxTextureSize&&(D=Math.ceil(y/t.maxTextureSize),y=t.maxTextureSize);const w=new Float32Array(y*D*4*d),C=new gc(w,y,D,d);C.type=xn,C.needsUpdate=!0;const I=E*4;for(let M=0;M0)return i;const s=t*e;let r=wl[s];if(r===void 0&&(r=new Float32Array(s),wl[s]=r),t!==0){n.toArray(r,0);for(let a=1,o=0;a!==t;++a)o+=e,i[a].toArray(r,o)}return r}function Te(i,t){if(i.length!==t.length)return!1;for(let e=0,n=i.length;e":" "} ${o}: ${e[a]}`)}return n.join(` -`)}const Ul=new Ht;function gm(i){Qt._getMatrix(Ul,Qt.workingColorSpace,i);const t=`mat3( ${Ul.elements.map(e=>e.toFixed(4))} )`;switch(Qt.getTransfer(i)){case yr:return[t,"LinearTransferOETF"];case se:return[t,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space: ",i),[t,"LinearTransferOETF"]}}function Il(i,t,e){const n=i.getShaderParameter(t,i.COMPILE_STATUS),s=i.getShaderInfoLog(t).trim();if(n&&s==="")return"";const r=/ERROR: 0:(\d+)/.exec(s);if(r){const a=parseInt(r[1]);return e.toUpperCase()+` - -`+s+` - -`+mm(i.getShaderSource(t),a)}else return s}function _m(i,t){const e=gm(t);return[`vec4 ${i}( vec4 value ) {`,` return ${e[1]}( vec4( value.rgb * ${e[0]}, value.a ) );`,"}"].join(` -`)}function vm(i,t){let e;switch(t){case vh:e="Linear";break;case xh:e="Reinhard";break;case Mh:e="Cineon";break;case ec:e="ACESFilmic";break;case yh:e="AgX";break;case Eh:e="Neutral";break;case Sh:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+i+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}const lr=new P;function xm(){Qt.getLuminanceCoefficients(lr);const i=lr.x.toFixed(4),t=lr.y.toFixed(4),e=lr.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${i}, ${t}, ${e} );`," return dot( weights, rgb );","}"].join(` -`)}function Mm(i){return[i.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",i.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(gs).join(` -`)}function Sm(i){const t=[];for(const e in i){const n=i[e];n!==!1&&t.push("#define "+e+" "+n)}return t.join(` -`)}function ym(i,t){const e={},n=i.getProgramParameter(t,i.ACTIVE_ATTRIBUTES);for(let s=0;s/gm;function fo(i){return i.replace(Em,Tm)}const bm=new Map;function Tm(i,t){let e=Gt[t];if(e===void 0){const n=bm.get(t);if(n!==void 0)e=Gt[n],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,n);else throw new Error("Can not resolve #include <"+t+">")}return fo(e)}const wm=/#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 Ol(i){return i.replace(wm,Am)}function Am(i,t,e,n){let s="";for(let r=parseInt(t);r0&&(m+=` -`),f=["#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g].filter(gs).join(` -`),f.length>0&&(f+=` -`)):(m=[Bl(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g,e.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",e.batching?"#define USE_BATCHING":"",e.batchingColor?"#define USE_BATCHING_COLOR":"",e.instancing?"#define USE_INSTANCING":"",e.instancingColor?"#define USE_INSTANCING_COLOR":"",e.instancingMorph?"#define USE_INSTANCING_MORPH":"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+h:"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.displacementMap?"#define USE_DISPLACEMENTMAP":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.mapUv?"#define MAP_UV "+e.mapUv:"",e.alphaMapUv?"#define ALPHAMAP_UV "+e.alphaMapUv:"",e.lightMapUv?"#define LIGHTMAP_UV "+e.lightMapUv:"",e.aoMapUv?"#define AOMAP_UV "+e.aoMapUv:"",e.emissiveMapUv?"#define EMISSIVEMAP_UV "+e.emissiveMapUv:"",e.bumpMapUv?"#define BUMPMAP_UV "+e.bumpMapUv:"",e.normalMapUv?"#define NORMALMAP_UV "+e.normalMapUv:"",e.displacementMapUv?"#define DISPLACEMENTMAP_UV "+e.displacementMapUv:"",e.metalnessMapUv?"#define METALNESSMAP_UV "+e.metalnessMapUv:"",e.roughnessMapUv?"#define ROUGHNESSMAP_UV "+e.roughnessMapUv:"",e.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+e.anisotropyMapUv:"",e.clearcoatMapUv?"#define CLEARCOATMAP_UV "+e.clearcoatMapUv:"",e.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+e.clearcoatNormalMapUv:"",e.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+e.clearcoatRoughnessMapUv:"",e.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+e.iridescenceMapUv:"",e.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+e.iridescenceThicknessMapUv:"",e.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+e.sheenColorMapUv:"",e.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+e.sheenRoughnessMapUv:"",e.specularMapUv?"#define SPECULARMAP_UV "+e.specularMapUv:"",e.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+e.specularColorMapUv:"",e.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+e.specularIntensityMapUv:"",e.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+e.transmissionMapUv:"",e.thicknessMapUv?"#define THICKNESSMAP_UV "+e.thicknessMapUv:"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.flatShading?"#define FLAT_SHADED":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.morphNormals&&e.flatShading===!1?"#define USE_MORPHNORMALS":"",e.morphColors?"#define USE_MORPHCOLORS":"",e.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+e.morphTextureStride:"",e.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+e.morphTargetsCount:"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","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(gs).join(` -`),f=[Bl(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,g,e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fogExp2?"#define FOG_EXP2":"",e.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",e.map?"#define USE_MAP":"",e.matcap?"#define USE_MATCAP":"",e.envMap?"#define USE_ENVMAP":"",e.envMap?"#define "+c:"",e.envMap?"#define "+h:"",e.envMap?"#define "+d:"",p?"#define CUBEUV_TEXEL_WIDTH "+p.texelWidth:"",p?"#define CUBEUV_TEXEL_HEIGHT "+p.texelHeight:"",p?"#define CUBEUV_MAX_MIP "+p.maxMip+".0":"",e.lightMap?"#define USE_LIGHTMAP":"",e.aoMap?"#define USE_AOMAP":"",e.bumpMap?"#define USE_BUMPMAP":"",e.normalMap?"#define USE_NORMALMAP":"",e.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",e.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",e.emissiveMap?"#define USE_EMISSIVEMAP":"",e.anisotropy?"#define USE_ANISOTROPY":"",e.anisotropyMap?"#define USE_ANISOTROPYMAP":"",e.clearcoat?"#define USE_CLEARCOAT":"",e.clearcoatMap?"#define USE_CLEARCOATMAP":"",e.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",e.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",e.dispersion?"#define USE_DISPERSION":"",e.iridescence?"#define USE_IRIDESCENCE":"",e.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",e.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",e.specularMap?"#define USE_SPECULARMAP":"",e.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",e.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",e.roughnessMap?"#define USE_ROUGHNESSMAP":"",e.metalnessMap?"#define USE_METALNESSMAP":"",e.alphaMap?"#define USE_ALPHAMAP":"",e.alphaTest?"#define USE_ALPHATEST":"",e.alphaHash?"#define USE_ALPHAHASH":"",e.sheen?"#define USE_SHEEN":"",e.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",e.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",e.transmission?"#define USE_TRANSMISSION":"",e.transmissionMap?"#define USE_TRANSMISSIONMAP":"",e.thicknessMap?"#define USE_THICKNESSMAP":"",e.vertexTangents&&e.flatShading===!1?"#define USE_TANGENT":"",e.vertexColors||e.instancingColor||e.batchingColor?"#define USE_COLOR":"",e.vertexAlphas?"#define USE_COLOR_ALPHA":"",e.vertexUv1s?"#define USE_UV1":"",e.vertexUv2s?"#define USE_UV2":"",e.vertexUv3s?"#define USE_UV3":"",e.pointsUvs?"#define USE_POINTS_UV":"",e.gradientMap?"#define USE_GRADIENTMAP":"",e.flatShading?"#define FLAT_SHADED":"",e.doubleSided?"#define DOUBLE_SIDED":"",e.flipSided?"#define FLIP_SIDED":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapEnabled?"#define "+l:"",e.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",e.numLightProbes>0?"#define USE_LIGHT_PROBES":"",e.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",e.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",e.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",e.reverseDepthBuffer?"#define USE_REVERSEDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",e.toneMapping!==Wn?"#define TONE_MAPPING":"",e.toneMapping!==Wn?Gt.tonemapping_pars_fragment:"",e.toneMapping!==Wn?vm("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",Gt.colorspace_pars_fragment,_m("linearToOutputTexel",e.outputColorSpace),xm(),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"",` -`].filter(gs).join(` -`)),a=fo(a),a=Nl(a,e),a=Fl(a,e),o=fo(o),o=Nl(o,e),o=Fl(o,e),a=Ol(a),o=Ol(o),e.isRawShaderMaterial!==!0&&(T=`#version 300 es -`,m=[u,"#define attribute in","#define varying out","#define texture2D texture"].join(` -`)+` -`+m,f=["#define varying in",e.glslVersion===Fo?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===Fo?"":"#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(` -`)+` -`+f);const E=T+m+a,y=T+f+o,D=Ll(s,s.VERTEX_SHADER,E),w=Ll(s,s.FRAGMENT_SHADER,y);s.attachShader(_,D),s.attachShader(_,w),e.index0AttributeName!==void 0?s.bindAttribLocation(_,0,e.index0AttributeName):e.morphTargets===!0&&s.bindAttribLocation(_,0,"position"),s.linkProgram(_);function C(A){if(i.debug.checkShaderErrors){const W=s.getProgramInfoLog(_).trim(),k=s.getShaderInfoLog(D).trim(),q=s.getShaderInfoLog(w).trim();let Q=!0,X=!0;if(s.getProgramParameter(_,s.LINK_STATUS)===!1)if(Q=!1,typeof i.debug.onShaderError=="function")i.debug.onShaderError(s,_,D,w);else{const tt=Il(s,D,"vertex"),H=Il(s,w,"fragment");console.error("THREE.WebGLProgram: Shader Error "+s.getError()+" - VALIDATE_STATUS "+s.getProgramParameter(_,s.VALIDATE_STATUS)+` - -Material Name: `+A.name+` -Material Type: `+A.type+` - -Program Info Log: `+W+` -`+tt+` -`+H)}else W!==""?console.warn("THREE.WebGLProgram: Program Info Log:",W):(k===""||q==="")&&(X=!1);X&&(A.diagnostics={runnable:Q,programLog:W,vertexShader:{log:k,prefix:m},fragmentShader:{log:q,prefix:f}})}s.deleteShader(D),s.deleteShader(w),I=new _r(s,_),S=ym(s,_)}let I;this.getUniforms=function(){return I===void 0&&C(this),I};let S;this.getAttributes=function(){return S===void 0&&C(this),S};let M=e.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return M===!1&&(M=s.getProgramParameter(_,fm)),M},this.destroy=function(){n.releaseStatesOfProgram(this),s.deleteProgram(_),this.program=void 0},this.type=e.shaderType,this.name=e.shaderName,this.id=pm++,this.cacheKey=t,this.usedTimes=1,this.program=_,this.vertexShader=D,this.fragmentShader=w,this}let Im=0;class Nm{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){const e=t.vertexShader,n=t.fragmentShader,s=this._getShaderStage(e),r=this._getShaderStage(n),a=this._getShaderCacheForMaterial(t);return a.has(s)===!1&&(a.add(s),s.usedTimes++),a.has(r)===!1&&(a.add(r),r.usedTimes++),this}remove(t){const e=this.materialCache.get(t);for(const n of e)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){const e=this.materialCache;let n=e.get(t);return n===void 0&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){const e=this.shaderCache;let n=e.get(t);return n===void 0&&(n=new Fm(t),e.set(t,n)),n}}class Fm{constructor(t){this.id=Im++,this.code=t,this.usedTimes=0}}function Om(i,t,e,n,s,r,a){const o=new wo,l=new Nm,c=new Set,h=[],d=s.logarithmicDepthBuffer,p=s.vertexTextures;let u=s.precision;const g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",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 _(S){return c.add(S),S===0?"uv":`uv${S}`}function m(S,M,A,W,k){const q=W.fog,Q=k.geometry,X=S.isMeshStandardMaterial?W.environment:null,tt=(S.isMeshStandardMaterial?e:t).get(S.envMap||X),H=tt&&tt.mapping===Pr?tt.image.height:null,st=g[S.type];S.precision!==null&&(u=s.getMaxPrecision(S.precision),u!==S.precision&&console.warn("THREE.WebGLProgram.getParameters:",S.precision,"not supported, using",u,"instead."));const gt=Q.morphAttributes.position||Q.morphAttributes.normal||Q.morphAttributes.color,Et=gt!==void 0?gt.length:0;let Ft=0;Q.morphAttributes.position!==void 0&&(Ft=1),Q.morphAttributes.normal!==void 0&&(Ft=2),Q.morphAttributes.color!==void 0&&(Ft=3);let Xt,Y,nt,_t;if(st){const $t=mn[st];Xt=$t.vertexShader,Y=$t.fragmentShader}else Xt=S.vertexShader,Y=S.fragmentShader,l.update(S),nt=l.getVertexShaderID(S),_t=l.getFragmentShaderID(S);const lt=i.getRenderTarget(),Ct=i.state.buffers.depth.getReversed(),Lt=k.isInstancedMesh===!0,Vt=k.isBatchedMesh===!0,ie=!!S.map,Wt=!!S.matcap,ue=!!tt,R=!!S.aoMap,ye=!!S.lightMap,qt=!!S.bumpMap,jt=!!S.normalMap,At=!!S.displacementMap,le=!!S.emissiveMap,Rt=!!S.metalnessMap,b=!!S.roughnessMap,v=S.anisotropy>0,F=S.clearcoat>0,K=S.dispersion>0,J=S.iridescence>0,j=S.sheen>0,Tt=S.transmission>0,dt=v&&!!S.anisotropyMap,V=F&&!!S.clearcoatMap,at=F&&!!S.clearcoatNormalMap,Z=F&&!!S.clearcoatRoughnessMap,it=J&&!!S.iridescenceMap,pt=J&&!!S.iridescenceThicknessMap,wt=j&&!!S.sheenColorMap,ht=j&&!!S.sheenRoughnessMap,Bt=!!S.specularMap,Ut=!!S.specularColorMap,Zt=!!S.specularIntensityMap,L=Tt&&!!S.transmissionMap,rt=Tt&&!!S.thicknessMap,G=!!S.gradientMap,$=!!S.alphaMap,ft=S.alphaTest>0,ut=!!S.alphaHash,Ot=!!S.extensions;let ce=Wn;S.toneMapped&&(lt===null||lt.isXRRenderTarget===!0)&&(ce=i.toneMapping);const Ae={shaderID:st,shaderType:S.type,shaderName:S.name,vertexShader:Xt,fragmentShader:Y,defines:S.defines,customVertexShaderID:nt,customFragmentShaderID:_t,isRawShaderMaterial:S.isRawShaderMaterial===!0,glslVersion:S.glslVersion,precision:u,batching:Vt,batchingColor:Vt&&k._colorsTexture!==null,instancing:Lt,instancingColor:Lt&&k.instanceColor!==null,instancingMorph:Lt&&k.morphTexture!==null,supportsVertexTextures:p,outputColorSpace:lt===null?i.outputColorSpace:lt.isXRRenderTarget===!0?lt.texture.colorSpace:Ji,alphaToCoverage:!!S.alphaToCoverage,map:ie,matcap:Wt,envMap:ue,envMapMode:ue&&tt.mapping,envMapCubeUVHeight:H,aoMap:R,lightMap:ye,bumpMap:qt,normalMap:jt,displacementMap:p&&At,emissiveMap:le,normalMapObjectSpace:jt&&S.normalMapType===Ah,normalMapTangentSpace:jt&&S.normalMapType===dc,metalnessMap:Rt,roughnessMap:b,anisotropy:v,anisotropyMap:dt,clearcoat:F,clearcoatMap:V,clearcoatNormalMap:at,clearcoatRoughnessMap:Z,dispersion:K,iridescence:J,iridescenceMap:it,iridescenceThicknessMap:pt,sheen:j,sheenColorMap:wt,sheenRoughnessMap:ht,specularMap:Bt,specularColorMap:Ut,specularIntensityMap:Zt,transmission:Tt,transmissionMap:L,thicknessMap:rt,gradientMap:G,opaque:S.transparent===!1&&S.blending===Vi&&S.alphaToCoverage===!1,alphaMap:$,alphaTest:ft,alphaHash:ut,combine:S.combine,mapUv:ie&&_(S.map.channel),aoMapUv:R&&_(S.aoMap.channel),lightMapUv:ye&&_(S.lightMap.channel),bumpMapUv:qt&&_(S.bumpMap.channel),normalMapUv:jt&&_(S.normalMap.channel),displacementMapUv:At&&_(S.displacementMap.channel),emissiveMapUv:le&&_(S.emissiveMap.channel),metalnessMapUv:Rt&&_(S.metalnessMap.channel),roughnessMapUv:b&&_(S.roughnessMap.channel),anisotropyMapUv:dt&&_(S.anisotropyMap.channel),clearcoatMapUv:V&&_(S.clearcoatMap.channel),clearcoatNormalMapUv:at&&_(S.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Z&&_(S.clearcoatRoughnessMap.channel),iridescenceMapUv:it&&_(S.iridescenceMap.channel),iridescenceThicknessMapUv:pt&&_(S.iridescenceThicknessMap.channel),sheenColorMapUv:wt&&_(S.sheenColorMap.channel),sheenRoughnessMapUv:ht&&_(S.sheenRoughnessMap.channel),specularMapUv:Bt&&_(S.specularMap.channel),specularColorMapUv:Ut&&_(S.specularColorMap.channel),specularIntensityMapUv:Zt&&_(S.specularIntensityMap.channel),transmissionMapUv:L&&_(S.transmissionMap.channel),thicknessMapUv:rt&&_(S.thicknessMap.channel),alphaMapUv:$&&_(S.alphaMap.channel),vertexTangents:!!Q.attributes.tangent&&(jt||v),vertexColors:S.vertexColors,vertexAlphas:S.vertexColors===!0&&!!Q.attributes.color&&Q.attributes.color.itemSize===4,pointsUvs:k.isPoints===!0&&!!Q.attributes.uv&&(ie||$),fog:!!q,useFog:S.fog===!0,fogExp2:!!q&&q.isFogExp2,flatShading:S.flatShading===!0,sizeAttenuation:S.sizeAttenuation===!0,logarithmicDepthBuffer:d,reverseDepthBuffer:Ct,skinning:k.isSkinnedMesh===!0,morphTargets:Q.morphAttributes.position!==void 0,morphNormals:Q.morphAttributes.normal!==void 0,morphColors:Q.morphAttributes.color!==void 0,morphTargetsCount:Et,morphTextureStride:Ft,numDirLights:M.directional.length,numPointLights:M.point.length,numSpotLights:M.spot.length,numSpotLightMaps:M.spotLightMap.length,numRectAreaLights:M.rectArea.length,numHemiLights:M.hemi.length,numDirLightShadows:M.directionalShadowMap.length,numPointLightShadows:M.pointShadowMap.length,numSpotLightShadows:M.spotShadowMap.length,numSpotLightShadowsWithMaps:M.numSpotLightShadowsWithMaps,numLightProbes:M.numLightProbes,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:S.dithering,shadowMapEnabled:i.shadowMap.enabled&&A.length>0,shadowMapType:i.shadowMap.type,toneMapping:ce,decodeVideoTexture:ie&&S.map.isVideoTexture===!0&&Qt.getTransfer(S.map.colorSpace)===se,decodeVideoTextureEmissive:le&&S.emissiveMap.isVideoTexture===!0&&Qt.getTransfer(S.emissiveMap.colorSpace)===se,premultipliedAlpha:S.premultipliedAlpha,doubleSided:S.side===gn,flipSided:S.side===Xe,useDepthPacking:S.depthPacking>=0,depthPacking:S.depthPacking||0,index0AttributeName:S.index0AttributeName,extensionClipCullDistance:Ot&&S.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(Ot&&S.extensions.multiDraw===!0||Vt)&&n.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:S.customProgramCacheKey()};return Ae.vertexUv1s=c.has(1),Ae.vertexUv2s=c.has(2),Ae.vertexUv3s=c.has(3),c.clear(),Ae}function f(S){const M=[];if(S.shaderID?M.push(S.shaderID):(M.push(S.customVertexShaderID),M.push(S.customFragmentShaderID)),S.defines!==void 0)for(const A in S.defines)M.push(A),M.push(S.defines[A]);return S.isRawShaderMaterial===!1&&(T(M,S),E(M,S),M.push(i.outputColorSpace)),M.push(S.customProgramCacheKey),M.join()}function T(S,M){S.push(M.precision),S.push(M.outputColorSpace),S.push(M.envMapMode),S.push(M.envMapCubeUVHeight),S.push(M.mapUv),S.push(M.alphaMapUv),S.push(M.lightMapUv),S.push(M.aoMapUv),S.push(M.bumpMapUv),S.push(M.normalMapUv),S.push(M.displacementMapUv),S.push(M.emissiveMapUv),S.push(M.metalnessMapUv),S.push(M.roughnessMapUv),S.push(M.anisotropyMapUv),S.push(M.clearcoatMapUv),S.push(M.clearcoatNormalMapUv),S.push(M.clearcoatRoughnessMapUv),S.push(M.iridescenceMapUv),S.push(M.iridescenceThicknessMapUv),S.push(M.sheenColorMapUv),S.push(M.sheenRoughnessMapUv),S.push(M.specularMapUv),S.push(M.specularColorMapUv),S.push(M.specularIntensityMapUv),S.push(M.transmissionMapUv),S.push(M.thicknessMapUv),S.push(M.combine),S.push(M.fogExp2),S.push(M.sizeAttenuation),S.push(M.morphTargetsCount),S.push(M.morphAttributeCount),S.push(M.numDirLights),S.push(M.numPointLights),S.push(M.numSpotLights),S.push(M.numSpotLightMaps),S.push(M.numHemiLights),S.push(M.numRectAreaLights),S.push(M.numDirLightShadows),S.push(M.numPointLightShadows),S.push(M.numSpotLightShadows),S.push(M.numSpotLightShadowsWithMaps),S.push(M.numLightProbes),S.push(M.shadowMapType),S.push(M.toneMapping),S.push(M.numClippingPlanes),S.push(M.numClipIntersection),S.push(M.depthPacking)}function E(S,M){o.disableAll(),M.supportsVertexTextures&&o.enable(0),M.instancing&&o.enable(1),M.instancingColor&&o.enable(2),M.instancingMorph&&o.enable(3),M.matcap&&o.enable(4),M.envMap&&o.enable(5),M.normalMapObjectSpace&&o.enable(6),M.normalMapTangentSpace&&o.enable(7),M.clearcoat&&o.enable(8),M.iridescence&&o.enable(9),M.alphaTest&&o.enable(10),M.vertexColors&&o.enable(11),M.vertexAlphas&&o.enable(12),M.vertexUv1s&&o.enable(13),M.vertexUv2s&&o.enable(14),M.vertexUv3s&&o.enable(15),M.vertexTangents&&o.enable(16),M.anisotropy&&o.enable(17),M.alphaHash&&o.enable(18),M.batching&&o.enable(19),M.dispersion&&o.enable(20),M.batchingColor&&o.enable(21),S.push(o.mask),o.disableAll(),M.fog&&o.enable(0),M.useFog&&o.enable(1),M.flatShading&&o.enable(2),M.logarithmicDepthBuffer&&o.enable(3),M.reverseDepthBuffer&&o.enable(4),M.skinning&&o.enable(5),M.morphTargets&&o.enable(6),M.morphNormals&&o.enable(7),M.morphColors&&o.enable(8),M.premultipliedAlpha&&o.enable(9),M.shadowMapEnabled&&o.enable(10),M.doubleSided&&o.enable(11),M.flipSided&&o.enable(12),M.useDepthPacking&&o.enable(13),M.dithering&&o.enable(14),M.transmission&&o.enable(15),M.sheen&&o.enable(16),M.opaque&&o.enable(17),M.pointsUvs&&o.enable(18),M.decodeVideoTexture&&o.enable(19),M.decodeVideoTextureEmissive&&o.enable(20),M.alphaToCoverage&&o.enable(21),S.push(o.mask)}function y(S){const M=g[S.type];let A;if(M){const W=mn[M];A=Tr.clone(W.uniforms)}else A=S.uniforms;return A}function D(S,M){let A;for(let W=0,k=h.length;W0?n.push(f):u.transparent===!0?s.push(f):e.push(f)}function l(d,p,u,g,_,m){const f=a(d,p,u,g,_,m);u.transmission>0?n.unshift(f):u.transparent===!0?s.unshift(f):e.unshift(f)}function c(d,p){e.length>1&&e.sort(d||zm),n.length>1&&n.sort(p||zl),s.length>1&&s.sort(p||zl)}function h(){for(let d=t,p=i.length;d=r.length?(a=new kl,r.push(a)):a=r[s],a}function e(){i=new WeakMap}return{get:t,dispose:e}}function Hm(){const i={};return{get:function(t){if(i[t.id]!==void 0)return i[t.id];let e;switch(t.type){case"DirectionalLight":e={direction:new P,color:new ot};break;case"SpotLight":e={position:new P,direction:new P,color:new ot,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new P,color:new ot,distance:0,decay:0};break;case"HemisphereLight":e={direction:new P,skyColor:new ot,groundColor:new ot};break;case"RectAreaLight":e={color:new ot,position:new P,halfWidth:new P,halfHeight:new P};break}return i[t.id]=e,e}}}function Vm(){const i={};return{get:function(t){if(i[t.id]!==void 0)return i[t.id];let e;switch(t.type){case"DirectionalLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new St};break;case"SpotLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new St};break;case"PointLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new St,shadowCameraNear:1,shadowCameraFar:1e3};break}return i[t.id]=e,e}}}let Gm=0;function Wm(i,t){return(t.castShadow?2:0)-(i.castShadow?2:0)+(t.map?1:0)-(i.map?1:0)}function Xm(i){const t=new Hm,e=Vm(),n={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let c=0;c<9;c++)n.probe.push(new P);const s=new P,r=new ne,a=new ne;function o(c){let h=0,d=0,p=0;for(let S=0;S<9;S++)n.probe[S].set(0,0,0);let u=0,g=0,_=0,m=0,f=0,T=0,E=0,y=0,D=0,w=0,C=0;c.sort(Wm);for(let S=0,M=c.length;S0&&(i.has("OES_texture_float_linear")===!0?(n.rectAreaLTC1=ct.LTC_FLOAT_1,n.rectAreaLTC2=ct.LTC_FLOAT_2):(n.rectAreaLTC1=ct.LTC_HALF_1,n.rectAreaLTC2=ct.LTC_HALF_2)),n.ambient[0]=h,n.ambient[1]=d,n.ambient[2]=p;const I=n.hash;(I.directionalLength!==u||I.pointLength!==g||I.spotLength!==_||I.rectAreaLength!==m||I.hemiLength!==f||I.numDirectionalShadows!==T||I.numPointShadows!==E||I.numSpotShadows!==y||I.numSpotMaps!==D||I.numLightProbes!==C)&&(n.directional.length=u,n.spot.length=_,n.rectArea.length=m,n.point.length=g,n.hemi.length=f,n.directionalShadow.length=T,n.directionalShadowMap.length=T,n.pointShadow.length=E,n.pointShadowMap.length=E,n.spotShadow.length=y,n.spotShadowMap.length=y,n.directionalShadowMatrix.length=T,n.pointShadowMatrix.length=E,n.spotLightMatrix.length=y+D-w,n.spotLightMap.length=D,n.numSpotLightShadowsWithMaps=w,n.numLightProbes=C,I.directionalLength=u,I.pointLength=g,I.spotLength=_,I.rectAreaLength=m,I.hemiLength=f,I.numDirectionalShadows=T,I.numPointShadows=E,I.numSpotShadows=y,I.numSpotMaps=D,I.numLightProbes=C,n.version=Gm++)}function l(c,h){let d=0,p=0,u=0,g=0,_=0;const m=h.matrixWorldInverse;for(let f=0,T=c.length;f=a.length?(o=new Hl(i),a.push(o)):o=a[r],o}function n(){t=new WeakMap}return{get:e,dispose:n}}const qm=`void main() { - gl_Position = vec4( position, 1.0 ); -}`,jm=`uniform sampler2D shadow_pass; -uniform vec2 resolution; -uniform float radius; -#include -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 = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); - mean += distribution.x; - squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; - #else - float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); - mean += depth; - squared_mean += depth * depth; - #endif - } - mean = mean / samples; - squared_mean = squared_mean / samples; - float std_dev = sqrt( squared_mean - mean * mean ); - gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); -}`;function Zm(i,t,e){let n=new Ao;const s=new St,r=new St,a=new oe,o=new gu({depthPacking:wh}),l=new _u,c={},h=e.maxTextureSize,d={[Yn]:Xe,[Xe]:Yn,[gn]:gn},p=new He({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new St},radius:{value:4}},vertexShader:qm,fragmentShader:jm}),u=p.clone();u.defines.HORIZONTAL_PASS=1;const g=new ge;g.setAttribute("position",new he(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const _=new be(g,p),m=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Ql;let f=this.type;this.render=function(w,C,I){if(m.enabled===!1||m.autoUpdate===!1&&m.needsUpdate===!1||w.length===0)return;const S=i.getRenderTarget(),M=i.getActiveCubeFace(),A=i.getActiveMipmapLevel(),W=i.state;W.setBlending(Cn),W.buffers.color.setClear(1,1,1,1),W.buffers.depth.setTest(!0),W.setScissorTest(!1);const k=f!==An&&this.type===An,q=f===An&&this.type!==An;for(let Q=0,X=w.length;Qh||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/st.x),s.x=r.x*st.x,H.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/st.y),s.y=r.y*st.y,H.mapSize.y=r.y)),H.map===null||k===!0||q===!0){const Et=this.type!==An?{minFilter:Je,magFilter:Je}:{};H.map!==null&&H.map.dispose(),H.map=new fn(s.x,s.y,Et),H.map.texture.name=tt.name+".shadowMap",H.camera.updateProjectionMatrix()}i.setRenderTarget(H.map),i.clear();const gt=H.getViewportCount();for(let Et=0;Et0||C.map&&C.alphaTest>0){const W=M.uuid,k=C.uuid;let q=c[W];q===void 0&&(q={},c[W]=q);let Q=q[k];Q===void 0&&(Q=M.clone(),q[k]=Q,C.addEventListener("dispose",D)),M=Q}if(M.visible=C.visible,M.wireframe=C.wireframe,S===An?M.side=C.shadowSide!==null?C.shadowSide:C.side:M.side=C.shadowSide!==null?C.shadowSide:d[C.side],M.alphaMap=C.alphaMap,M.alphaTest=C.alphaTest,M.map=C.map,M.clipShadows=C.clipShadows,M.clippingPlanes=C.clippingPlanes,M.clipIntersection=C.clipIntersection,M.displacementMap=C.displacementMap,M.displacementScale=C.displacementScale,M.displacementBias=C.displacementBias,M.wireframeLinewidth=C.wireframeLinewidth,M.linewidth=C.linewidth,I.isPointLight===!0&&M.isMeshDistanceMaterial===!0){const W=i.properties.get(M);W.light=I}return M}function y(w,C,I,S,M){if(w.visible===!1)return;if(w.layers.test(C.layers)&&(w.isMesh||w.isLine||w.isPoints)&&(w.castShadow||w.receiveShadow&&M===An)&&(!w.frustumCulled||n.intersectsObject(w))){w.modelViewMatrix.multiplyMatrices(I.matrixWorldInverse,w.matrixWorld);const k=t.update(w),q=w.material;if(Array.isArray(q)){const Q=k.groups;for(let X=0,tt=Q.length;X=1):H.indexOf("OpenGL ES")!==-1&&(tt=parseFloat(/^OpenGL ES (\d)/.exec(H)[1]),X=tt>=2);let st=null,gt={};const Et=i.getParameter(i.SCISSOR_BOX),Ft=i.getParameter(i.VIEWPORT),Xt=new oe().fromArray(Et),Y=new oe().fromArray(Ft);function nt(L,rt,G,$){const ft=new Uint8Array(4),ut=i.createTexture();i.bindTexture(L,ut),i.texParameteri(L,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(L,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let Ot=0;Ot"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new St,h=new WeakMap;let d;const p=new WeakMap;let u=!1;try{u=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function g(b,v){return u?new OffscreenCanvas(b,v):br("canvas")}function _(b,v,F){let K=1;const J=Rt(b);if((J.width>F||J.height>F)&&(K=F/Math.max(J.width,J.height)),K<1)if(typeof HTMLImageElement<"u"&&b instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&b instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&b instanceof ImageBitmap||typeof VideoFrame<"u"&&b instanceof VideoFrame){const j=Math.floor(K*J.width),Tt=Math.floor(K*J.height);d===void 0&&(d=g(j,Tt));const dt=v?g(j,Tt):d;return dt.width=j,dt.height=Tt,dt.getContext("2d").drawImage(b,0,0,j,Tt),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+J.width+"x"+J.height+") to ("+j+"x"+Tt+")."),dt}else return"data"in b&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+J.width+"x"+J.height+")."),b;return b}function m(b){return b.generateMipmaps}function f(b){i.generateMipmap(b)}function T(b){return b.isWebGLCubeRenderTarget?i.TEXTURE_CUBE_MAP:b.isWebGL3DRenderTarget?i.TEXTURE_3D:b.isWebGLArrayRenderTarget||b.isCompressedArrayTexture?i.TEXTURE_2D_ARRAY:i.TEXTURE_2D}function E(b,v,F,K,J=!1){if(b!==null){if(i[b]!==void 0)return i[b];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+b+"'")}let j=v;if(v===i.RED&&(F===i.FLOAT&&(j=i.R32F),F===i.HALF_FLOAT&&(j=i.R16F),F===i.UNSIGNED_BYTE&&(j=i.R8)),v===i.RED_INTEGER&&(F===i.UNSIGNED_BYTE&&(j=i.R8UI),F===i.UNSIGNED_SHORT&&(j=i.R16UI),F===i.UNSIGNED_INT&&(j=i.R32UI),F===i.BYTE&&(j=i.R8I),F===i.SHORT&&(j=i.R16I),F===i.INT&&(j=i.R32I)),v===i.RG&&(F===i.FLOAT&&(j=i.RG32F),F===i.HALF_FLOAT&&(j=i.RG16F),F===i.UNSIGNED_BYTE&&(j=i.RG8)),v===i.RG_INTEGER&&(F===i.UNSIGNED_BYTE&&(j=i.RG8UI),F===i.UNSIGNED_SHORT&&(j=i.RG16UI),F===i.UNSIGNED_INT&&(j=i.RG32UI),F===i.BYTE&&(j=i.RG8I),F===i.SHORT&&(j=i.RG16I),F===i.INT&&(j=i.RG32I)),v===i.RGB_INTEGER&&(F===i.UNSIGNED_BYTE&&(j=i.RGB8UI),F===i.UNSIGNED_SHORT&&(j=i.RGB16UI),F===i.UNSIGNED_INT&&(j=i.RGB32UI),F===i.BYTE&&(j=i.RGB8I),F===i.SHORT&&(j=i.RGB16I),F===i.INT&&(j=i.RGB32I)),v===i.RGBA_INTEGER&&(F===i.UNSIGNED_BYTE&&(j=i.RGBA8UI),F===i.UNSIGNED_SHORT&&(j=i.RGBA16UI),F===i.UNSIGNED_INT&&(j=i.RGBA32UI),F===i.BYTE&&(j=i.RGBA8I),F===i.SHORT&&(j=i.RGBA16I),F===i.INT&&(j=i.RGBA32I)),v===i.RGB&&F===i.UNSIGNED_INT_5_9_9_9_REV&&(j=i.RGB9_E5),v===i.RGBA){const Tt=J?yr:Qt.getTransfer(K);F===i.FLOAT&&(j=i.RGBA32F),F===i.HALF_FLOAT&&(j=i.RGBA16F),F===i.UNSIGNED_BYTE&&(j=Tt===se?i.SRGB8_ALPHA8:i.RGBA8),F===i.UNSIGNED_SHORT_4_4_4_4&&(j=i.RGBA4),F===i.UNSIGNED_SHORT_5_5_5_1&&(j=i.RGB5_A1)}return(j===i.R16F||j===i.R32F||j===i.RG16F||j===i.RG32F||j===i.RGBA16F||j===i.RGBA32F)&&t.get("EXT_color_buffer_float"),j}function y(b,v){let F;return b?v===null||v===li||v===Ki?F=i.DEPTH24_STENCIL8:v===xn?F=i.DEPTH32F_STENCIL8:v===Ms&&(F=i.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):v===null||v===li||v===Ki?F=i.DEPTH_COMPONENT24:v===xn?F=i.DEPTH_COMPONENT32F:v===Ms&&(F=i.DEPTH_COMPONENT16),F}function D(b,v){return m(b)===!0||b.isFramebufferTexture&&b.minFilter!==Je&&b.minFilter!==vn?Math.log2(Math.max(v.width,v.height))+1:b.mipmaps!==void 0&&b.mipmaps.length>0?b.mipmaps.length:b.isCompressedTexture&&Array.isArray(b.image)?v.mipmaps.length:1}function w(b){const v=b.target;v.removeEventListener("dispose",w),I(v),v.isVideoTexture&&h.delete(v)}function C(b){const v=b.target;v.removeEventListener("dispose",C),M(v)}function I(b){const v=n.get(b);if(v.__webglInit===void 0)return;const F=b.source,K=p.get(F);if(K){const J=K[v.__cacheKey];J.usedTimes--,J.usedTimes===0&&S(b),Object.keys(K).length===0&&p.delete(F)}n.remove(b)}function S(b){const v=n.get(b);i.deleteTexture(v.__webglTexture);const F=b.source,K=p.get(F);delete K[v.__cacheKey],a.memory.textures--}function M(b){const v=n.get(b);if(b.depthTexture&&(b.depthTexture.dispose(),n.remove(b.depthTexture)),b.isWebGLCubeRenderTarget)for(let K=0;K<6;K++){if(Array.isArray(v.__webglFramebuffer[K]))for(let J=0;J=s.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+b+" texture units while this GPU supports only "+s.maxTextures),A+=1,b}function q(b){const v=[];return v.push(b.wrapS),v.push(b.wrapT),v.push(b.wrapR||0),v.push(b.magFilter),v.push(b.minFilter),v.push(b.anisotropy),v.push(b.internalFormat),v.push(b.format),v.push(b.type),v.push(b.generateMipmaps),v.push(b.premultiplyAlpha),v.push(b.flipY),v.push(b.unpackAlignment),v.push(b.colorSpace),v.join()}function Q(b,v){const F=n.get(b);if(b.isVideoTexture&&At(b),b.isRenderTargetTexture===!1&&b.version>0&&F.__version!==b.version){const K=b.image;if(K===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(K.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Y(F,b,v);return}}e.bindTexture(i.TEXTURE_2D,F.__webglTexture,i.TEXTURE0+v)}function X(b,v){const F=n.get(b);if(b.version>0&&F.__version!==b.version){Y(F,b,v);return}e.bindTexture(i.TEXTURE_2D_ARRAY,F.__webglTexture,i.TEXTURE0+v)}function tt(b,v){const F=n.get(b);if(b.version>0&&F.__version!==b.version){Y(F,b,v);return}e.bindTexture(i.TEXTURE_3D,F.__webglTexture,i.TEXTURE0+v)}function H(b,v){const F=n.get(b);if(b.version>0&&F.__version!==b.version){nt(F,b,v);return}e.bindTexture(i.TEXTURE_CUBE_MAP,F.__webglTexture,i.TEXTURE0+v)}const st={[Ua]:i.REPEAT,[ri]:i.CLAMP_TO_EDGE,[Ia]:i.MIRRORED_REPEAT},gt={[Je]:i.NEAREST,[bh]:i.NEAREST_MIPMAP_NEAREST,[Is]:i.NEAREST_MIPMAP_LINEAR,[vn]:i.LINEAR,[Br]:i.LINEAR_MIPMAP_NEAREST,[ai]:i.LINEAR_MIPMAP_LINEAR},Et={[Rh]:i.NEVER,[Ih]:i.ALWAYS,[Ch]:i.LESS,[fc]:i.LEQUAL,[Ph]:i.EQUAL,[Uh]:i.GEQUAL,[Dh]:i.GREATER,[Lh]:i.NOTEQUAL};function Ft(b,v){if(v.type===xn&&t.has("OES_texture_float_linear")===!1&&(v.magFilter===vn||v.magFilter===Br||v.magFilter===Is||v.magFilter===ai||v.minFilter===vn||v.minFilter===Br||v.minFilter===Is||v.minFilter===ai)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),i.texParameteri(b,i.TEXTURE_WRAP_S,st[v.wrapS]),i.texParameteri(b,i.TEXTURE_WRAP_T,st[v.wrapT]),(b===i.TEXTURE_3D||b===i.TEXTURE_2D_ARRAY)&&i.texParameteri(b,i.TEXTURE_WRAP_R,st[v.wrapR]),i.texParameteri(b,i.TEXTURE_MAG_FILTER,gt[v.magFilter]),i.texParameteri(b,i.TEXTURE_MIN_FILTER,gt[v.minFilter]),v.compareFunction&&(i.texParameteri(b,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(b,i.TEXTURE_COMPARE_FUNC,Et[v.compareFunction])),t.has("EXT_texture_filter_anisotropic")===!0){if(v.magFilter===Je||v.minFilter!==Is&&v.minFilter!==ai||v.type===xn&&t.has("OES_texture_float_linear")===!1)return;if(v.anisotropy>1||n.get(v).__currentAnisotropy){const F=t.get("EXT_texture_filter_anisotropic");i.texParameterf(b,F.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(v.anisotropy,s.getMaxAnisotropy())),n.get(v).__currentAnisotropy=v.anisotropy}}}function Xt(b,v){let F=!1;b.__webglInit===void 0&&(b.__webglInit=!0,v.addEventListener("dispose",w));const K=v.source;let J=p.get(K);J===void 0&&(J={},p.set(K,J));const j=q(v);if(j!==b.__cacheKey){J[j]===void 0&&(J[j]={texture:i.createTexture(),usedTimes:0},a.memory.textures++,F=!0),J[j].usedTimes++;const Tt=J[b.__cacheKey];Tt!==void 0&&(J[b.__cacheKey].usedTimes--,Tt.usedTimes===0&&S(v)),b.__cacheKey=j,b.__webglTexture=J[j].texture}return F}function Y(b,v,F){let K=i.TEXTURE_2D;(v.isDataArrayTexture||v.isCompressedArrayTexture)&&(K=i.TEXTURE_2D_ARRAY),v.isData3DTexture&&(K=i.TEXTURE_3D);const J=Xt(b,v),j=v.source;e.bindTexture(K,b.__webglTexture,i.TEXTURE0+F);const Tt=n.get(j);if(j.version!==Tt.__version||J===!0){e.activeTexture(i.TEXTURE0+F);const dt=Qt.getPrimaries(Qt.workingColorSpace),V=v.colorSpace===Vn?null:Qt.getPrimaries(v.colorSpace),at=v.colorSpace===Vn||dt===V?i.NONE:i.BROWSER_DEFAULT_WEBGL;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,v.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,v.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,v.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,at);let Z=_(v.image,!1,s.maxTextureSize);Z=le(v,Z);const it=r.convert(v.format,v.colorSpace),pt=r.convert(v.type);let wt=E(v.internalFormat,it,pt,v.colorSpace,v.isVideoTexture);Ft(K,v);let ht;const Bt=v.mipmaps,Ut=v.isVideoTexture!==!0,Zt=Tt.__version===void 0||J===!0,L=j.dataReady,rt=D(v,Z);if(v.isDepthTexture)wt=y(v.format===$i,v.type),Zt&&(Ut?e.texStorage2D(i.TEXTURE_2D,1,wt,Z.width,Z.height):e.texImage2D(i.TEXTURE_2D,0,wt,Z.width,Z.height,0,it,pt,null));else if(v.isDataTexture)if(Bt.length>0){Ut&&Zt&&e.texStorage2D(i.TEXTURE_2D,rt,wt,Bt[0].width,Bt[0].height);for(let G=0,$=Bt.length;G<$;G++)ht=Bt[G],Ut?L&&e.texSubImage2D(i.TEXTURE_2D,G,0,0,ht.width,ht.height,it,pt,ht.data):e.texImage2D(i.TEXTURE_2D,G,wt,ht.width,ht.height,0,it,pt,ht.data);v.generateMipmaps=!1}else Ut?(Zt&&e.texStorage2D(i.TEXTURE_2D,rt,wt,Z.width,Z.height),L&&e.texSubImage2D(i.TEXTURE_2D,0,0,0,Z.width,Z.height,it,pt,Z.data)):e.texImage2D(i.TEXTURE_2D,0,wt,Z.width,Z.height,0,it,pt,Z.data);else if(v.isCompressedTexture)if(v.isCompressedArrayTexture){Ut&&Zt&&e.texStorage3D(i.TEXTURE_2D_ARRAY,rt,wt,Bt[0].width,Bt[0].height,Z.depth);for(let G=0,$=Bt.length;G<$;G++)if(ht=Bt[G],v.format!==dn)if(it!==null)if(Ut){if(L)if(v.layerUpdates.size>0){const ft=_l(ht.width,ht.height,v.format,v.type);for(const ut of v.layerUpdates){const Ot=ht.data.subarray(ut*ft/ht.data.BYTES_PER_ELEMENT,(ut+1)*ft/ht.data.BYTES_PER_ELEMENT);e.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,G,0,0,ut,ht.width,ht.height,1,it,Ot)}v.clearLayerUpdates()}else e.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,G,0,0,0,ht.width,ht.height,Z.depth,it,ht.data)}else e.compressedTexImage3D(i.TEXTURE_2D_ARRAY,G,wt,ht.width,ht.height,Z.depth,0,ht.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else Ut?L&&e.texSubImage3D(i.TEXTURE_2D_ARRAY,G,0,0,0,ht.width,ht.height,Z.depth,it,pt,ht.data):e.texImage3D(i.TEXTURE_2D_ARRAY,G,wt,ht.width,ht.height,Z.depth,0,it,pt,ht.data)}else{Ut&&Zt&&e.texStorage2D(i.TEXTURE_2D,rt,wt,Bt[0].width,Bt[0].height);for(let G=0,$=Bt.length;G<$;G++)ht=Bt[G],v.format!==dn?it!==null?Ut?L&&e.compressedTexSubImage2D(i.TEXTURE_2D,G,0,0,ht.width,ht.height,it,ht.data):e.compressedTexImage2D(i.TEXTURE_2D,G,wt,ht.width,ht.height,0,ht.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):Ut?L&&e.texSubImage2D(i.TEXTURE_2D,G,0,0,ht.width,ht.height,it,pt,ht.data):e.texImage2D(i.TEXTURE_2D,G,wt,ht.width,ht.height,0,it,pt,ht.data)}else if(v.isDataArrayTexture)if(Ut){if(Zt&&e.texStorage3D(i.TEXTURE_2D_ARRAY,rt,wt,Z.width,Z.height,Z.depth),L)if(v.layerUpdates.size>0){const G=_l(Z.width,Z.height,v.format,v.type);for(const $ of v.layerUpdates){const ft=Z.data.subarray($*G/Z.data.BYTES_PER_ELEMENT,($+1)*G/Z.data.BYTES_PER_ELEMENT);e.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,$,Z.width,Z.height,1,it,pt,ft)}v.clearLayerUpdates()}else e.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,0,Z.width,Z.height,Z.depth,it,pt,Z.data)}else e.texImage3D(i.TEXTURE_2D_ARRAY,0,wt,Z.width,Z.height,Z.depth,0,it,pt,Z.data);else if(v.isData3DTexture)Ut?(Zt&&e.texStorage3D(i.TEXTURE_3D,rt,wt,Z.width,Z.height,Z.depth),L&&e.texSubImage3D(i.TEXTURE_3D,0,0,0,0,Z.width,Z.height,Z.depth,it,pt,Z.data)):e.texImage3D(i.TEXTURE_3D,0,wt,Z.width,Z.height,Z.depth,0,it,pt,Z.data);else if(v.isFramebufferTexture){if(Zt)if(Ut)e.texStorage2D(i.TEXTURE_2D,rt,wt,Z.width,Z.height);else{let G=Z.width,$=Z.height;for(let ft=0;ft>=1,$>>=1}}else if(Bt.length>0){if(Ut&&Zt){const G=Rt(Bt[0]);e.texStorage2D(i.TEXTURE_2D,rt,wt,G.width,G.height)}for(let G=0,$=Bt.length;G<$;G++)ht=Bt[G],Ut?L&&e.texSubImage2D(i.TEXTURE_2D,G,0,0,it,pt,ht):e.texImage2D(i.TEXTURE_2D,G,wt,it,pt,ht);v.generateMipmaps=!1}else if(Ut){if(Zt){const G=Rt(Z);e.texStorage2D(i.TEXTURE_2D,rt,wt,G.width,G.height)}L&&e.texSubImage2D(i.TEXTURE_2D,0,0,0,it,pt,Z)}else e.texImage2D(i.TEXTURE_2D,0,wt,it,pt,Z);m(v)&&f(K),Tt.__version=j.version,v.onUpdate&&v.onUpdate(v)}b.__version=v.version}function nt(b,v,F){if(v.image.length!==6)return;const K=Xt(b,v),J=v.source;e.bindTexture(i.TEXTURE_CUBE_MAP,b.__webglTexture,i.TEXTURE0+F);const j=n.get(J);if(J.version!==j.__version||K===!0){e.activeTexture(i.TEXTURE0+F);const Tt=Qt.getPrimaries(Qt.workingColorSpace),dt=v.colorSpace===Vn?null:Qt.getPrimaries(v.colorSpace),V=v.colorSpace===Vn||Tt===dt?i.NONE:i.BROWSER_DEFAULT_WEBGL;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,v.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,v.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,v.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,V);const at=v.isCompressedTexture||v.image[0].isCompressedTexture,Z=v.image[0]&&v.image[0].isDataTexture,it=[];for(let $=0;$<6;$++)!at&&!Z?it[$]=_(v.image[$],!0,s.maxCubemapSize):it[$]=Z?v.image[$].image:v.image[$],it[$]=le(v,it[$]);const pt=it[0],wt=r.convert(v.format,v.colorSpace),ht=r.convert(v.type),Bt=E(v.internalFormat,wt,ht,v.colorSpace),Ut=v.isVideoTexture!==!0,Zt=j.__version===void 0||K===!0,L=J.dataReady;let rt=D(v,pt);Ft(i.TEXTURE_CUBE_MAP,v);let G;if(at){Ut&&Zt&&e.texStorage2D(i.TEXTURE_CUBE_MAP,rt,Bt,pt.width,pt.height);for(let $=0;$<6;$++){G=it[$].mipmaps;for(let ft=0;ft0&&rt++;const $=Rt(it[0]);e.texStorage2D(i.TEXTURE_CUBE_MAP,rt,Bt,$.width,$.height)}for(let $=0;$<6;$++)if(Z){Ut?L&&e.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+$,0,0,0,it[$].width,it[$].height,wt,ht,it[$].data):e.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+$,0,Bt,it[$].width,it[$].height,0,wt,ht,it[$].data);for(let ft=0;ft>j),pt=Math.max(1,v.height>>j);J===i.TEXTURE_3D||J===i.TEXTURE_2D_ARRAY?e.texImage3D(J,j,V,it,pt,v.depth,0,Tt,dt,null):e.texImage2D(J,j,V,it,pt,0,Tt,dt,null)}e.bindFramebuffer(i.FRAMEBUFFER,b),jt(v)?o.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,K,J,Z.__webglTexture,0,qt(v)):(J===i.TEXTURE_2D||J>=i.TEXTURE_CUBE_MAP_POSITIVE_X&&J<=i.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&i.framebufferTexture2D(i.FRAMEBUFFER,K,J,Z.__webglTexture,j),e.bindFramebuffer(i.FRAMEBUFFER,null)}function lt(b,v,F){if(i.bindRenderbuffer(i.RENDERBUFFER,b),v.depthBuffer){const K=v.depthTexture,J=K&&K.isDepthTexture?K.type:null,j=y(v.stencilBuffer,J),Tt=v.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,dt=qt(v);jt(v)?o.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,dt,j,v.width,v.height):F?i.renderbufferStorageMultisample(i.RENDERBUFFER,dt,j,v.width,v.height):i.renderbufferStorage(i.RENDERBUFFER,j,v.width,v.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,Tt,i.RENDERBUFFER,b)}else{const K=v.textures;for(let J=0;J{delete v.__boundDepthTexture,delete v.__depthDisposeCallback,K.removeEventListener("dispose",J)};K.addEventListener("dispose",J),v.__depthDisposeCallback=J}v.__boundDepthTexture=K}if(b.depthTexture&&!v.__autoAllocateDepthBuffer){if(F)throw new Error("target.depthTexture not supported in Cube render targets");Ct(v.__webglFramebuffer,b)}else if(F){v.__webglDepthbuffer=[];for(let K=0;K<6;K++)if(e.bindFramebuffer(i.FRAMEBUFFER,v.__webglFramebuffer[K]),v.__webglDepthbuffer[K]===void 0)v.__webglDepthbuffer[K]=i.createRenderbuffer(),lt(v.__webglDepthbuffer[K],b,!1);else{const J=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,j=v.__webglDepthbuffer[K];i.bindRenderbuffer(i.RENDERBUFFER,j),i.framebufferRenderbuffer(i.FRAMEBUFFER,J,i.RENDERBUFFER,j)}}else if(e.bindFramebuffer(i.FRAMEBUFFER,v.__webglFramebuffer),v.__webglDepthbuffer===void 0)v.__webglDepthbuffer=i.createRenderbuffer(),lt(v.__webglDepthbuffer,b,!1);else{const K=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,J=v.__webglDepthbuffer;i.bindRenderbuffer(i.RENDERBUFFER,J),i.framebufferRenderbuffer(i.FRAMEBUFFER,K,i.RENDERBUFFER,J)}e.bindFramebuffer(i.FRAMEBUFFER,null)}function Vt(b,v,F){const K=n.get(b);v!==void 0&&_t(K.__webglFramebuffer,b,b.texture,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,0),F!==void 0&&Lt(b)}function ie(b){const v=b.texture,F=n.get(b),K=n.get(v);b.addEventListener("dispose",C);const J=b.textures,j=b.isWebGLCubeRenderTarget===!0,Tt=J.length>1;if(Tt||(K.__webglTexture===void 0&&(K.__webglTexture=i.createTexture()),K.__version=v.version,a.memory.textures++),j){F.__webglFramebuffer=[];for(let dt=0;dt<6;dt++)if(v.mipmaps&&v.mipmaps.length>0){F.__webglFramebuffer[dt]=[];for(let V=0;V0){F.__webglFramebuffer=[];for(let dt=0;dt0&&jt(b)===!1){F.__webglMultisampledFramebuffer=i.createFramebuffer(),F.__webglColorRenderbuffer=[],e.bindFramebuffer(i.FRAMEBUFFER,F.__webglMultisampledFramebuffer);for(let dt=0;dt0)for(let V=0;V0)for(let V=0;V0){if(jt(b)===!1){const v=b.textures,F=b.width,K=b.height;let J=i.COLOR_BUFFER_BIT;const j=b.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,Tt=n.get(b),dt=v.length>1;if(dt)for(let V=0;V0&&t.has("WEBGL_multisampled_render_to_texture")===!0&&v.__useRenderToTexture!==!1}function At(b){const v=a.render.frame;h.get(b)!==v&&(h.set(b,v),b.update())}function le(b,v){const F=b.colorSpace,K=b.format,J=b.type;return b.isCompressedTexture===!0||b.isVideoTexture===!0||F!==Ji&&F!==Vn&&(Qt.getTransfer(F)===se?(K!==dn||J!==Ln)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",F)),v}function Rt(b){return typeof HTMLImageElement<"u"&&b instanceof HTMLImageElement?(c.width=b.naturalWidth||b.width,c.height=b.naturalHeight||b.height):typeof VideoFrame<"u"&&b instanceof VideoFrame?(c.width=b.displayWidth,c.height=b.displayHeight):(c.width=b.width,c.height=b.height),c}this.allocateTextureUnit=k,this.resetTextureUnits=W,this.setTexture2D=Q,this.setTexture2DArray=X,this.setTexture3D=tt,this.setTextureCube=H,this.rebindTextures=Vt,this.setupRenderTarget=ie,this.updateRenderTargetMipmap=Wt,this.updateMultisampleRenderTarget=ye,this.setupDepthRenderbuffer=Lt,this.setupFrameBufferTexture=_t,this.useMultisampledRTT=jt}function Qm(i,t){function e(n,s=Vn){let r;const a=Qt.getTransfer(s);if(n===Ln)return i.UNSIGNED_BYTE;if(n===Mo)return i.UNSIGNED_SHORT_4_4_4_4;if(n===So)return i.UNSIGNED_SHORT_5_5_5_1;if(n===rc)return i.UNSIGNED_INT_5_9_9_9_REV;if(n===ic)return i.BYTE;if(n===sc)return i.SHORT;if(n===Ms)return i.UNSIGNED_SHORT;if(n===xo)return i.INT;if(n===li)return i.UNSIGNED_INT;if(n===xn)return i.FLOAT;if(n===Pn)return i.HALF_FLOAT;if(n===ac)return i.ALPHA;if(n===oc)return i.RGB;if(n===dn)return i.RGBA;if(n===lc)return i.LUMINANCE;if(n===cc)return i.LUMINANCE_ALPHA;if(n===Gi)return i.DEPTH_COMPONENT;if(n===$i)return i.DEPTH_STENCIL;if(n===yo)return i.RED;if(n===Eo)return i.RED_INTEGER;if(n===hc)return i.RG;if(n===bo)return i.RG_INTEGER;if(n===To)return i.RGBA_INTEGER;if(n===ur||n===dr||n===fr||n===pr)if(a===se)if(r=t.get("WEBGL_compressed_texture_s3tc_srgb"),r!==null){if(n===ur)return r.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===dr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===fr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===pr)return r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(r=t.get("WEBGL_compressed_texture_s3tc"),r!==null){if(n===ur)return r.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===dr)return r.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===fr)return r.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===pr)return r.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(n===Na||n===Fa||n===Oa||n===Ba)if(r=t.get("WEBGL_compressed_texture_pvrtc"),r!==null){if(n===Na)return r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===Fa)return r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===Oa)return r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===Ba)return r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(n===za||n===ka||n===Ha)if(r=t.get("WEBGL_compressed_texture_etc"),r!==null){if(n===za||n===ka)return a===se?r.COMPRESSED_SRGB8_ETC2:r.COMPRESSED_RGB8_ETC2;if(n===Ha)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:r.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(n===Va||n===Ga||n===Wa||n===Xa||n===Ya||n===qa||n===ja||n===Za||n===Ka||n===$a||n===Ja||n===Qa||n===to||n===eo)if(r=t.get("WEBGL_compressed_texture_astc"),r!==null){if(n===Va)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:r.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===Ga)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:r.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===Wa)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:r.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===Xa)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:r.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===Ya)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:r.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===qa)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:r.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===ja)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:r.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===Za)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:r.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===Ka)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:r.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===$a)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:r.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===Ja)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:r.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===Qa)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:r.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===to)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:r.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===eo)return a===se?r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:r.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(n===mr||n===no||n===io)if(r=t.get("EXT_texture_compression_bptc"),r!==null){if(n===mr)return a===se?r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:r.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===no)return r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===io)return r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(n===uc||n===so||n===ro||n===ao)if(r=t.get("EXT_texture_compression_rgtc"),r!==null){if(n===mr)return r.COMPRESSED_RED_RGTC1_EXT;if(n===so)return r.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===ro)return r.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===ao)return r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return n===Ki?i.UNSIGNED_INT_24_8:i[n]!==void 0?i[n]:null}return{convert:e}}const tg={type:"move"};class ga{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new zi,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new zi,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new P,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new P),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new zi,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new P,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new P),this._grip}dispatchEvent(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this}connect(t){if(t&&t.hand){const e=this._hand;if(e)for(const n of t.hand.values())this._getHandJoint(e,n)}return this.dispatchEvent({type:"connected",data:t}),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(t,e,n){let s=null,r=null,a=null;const o=this._targetRay,l=this._grip,c=this._hand;if(t&&e.session.visibilityState!=="visible-blurred"){if(c&&t.hand){a=!0;for(const _ of t.hand.values()){const m=e.getJointPose(_,n),f=this._getHandJoint(c,_);m!==null&&(f.matrix.fromArray(m.transform.matrix),f.matrix.decompose(f.position,f.rotation,f.scale),f.matrixWorldNeedsUpdate=!0,f.jointRadius=m.radius),f.visible=m!==null}const h=c.joints["index-finger-tip"],d=c.joints["thumb-tip"],p=h.position.distanceTo(d.position),u=.02,g=.005;c.inputState.pinching&&p>u+g?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!c.inputState.pinching&&p<=u-g&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else l!==null&&t.gripSpace&&(r=e.getPose(t.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));o!==null&&(s=e.getPose(t.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(tg)))}return o!==null&&(o.visible=s!==null),l!==null&&(l.visible=r!==null),c!==null&&(c.visible=a!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){const n=new zi;n.matrixAutoUpdate=!1,n.visible=!1,t.joints[e.jointName]=n,t.add(n)}return t.joints[e.jointName]}}const eg=` -void main() { - - gl_Position = vec4( position, 1.0 ); - -}`,ng=` -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; - - } - -}`;class ig{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const s=new Pe,r=t.properties.get(s);r.__webglTexture=e.texture,(e.depthNear!==n.depthNear||e.depthFar!==n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=s}}getMesh(t){if(this.texture!==null&&this.mesh===null){const e=t.cameras[0].viewport,n=new He({vertexShader:eg,fragmentShader:ng,uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new be(new ws(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class sg extends hi{constructor(t,e){super();const n=this;let s=null,r=1,a=null,o="local-floor",l=1,c=null,h=null,d=null,p=null,u=null,g=null;const _=new ig,m=e.getContextAttributes();let f=null,T=null;const E=[],y=[],D=new St;let w=null;const C=new $e;C.viewport=new oe;const I=new $e;I.viewport=new oe;const S=[C,I],M=new Su;let A=null,W=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Y){let nt=E[Y];return nt===void 0&&(nt=new ga,E[Y]=nt),nt.getTargetRaySpace()},this.getControllerGrip=function(Y){let nt=E[Y];return nt===void 0&&(nt=new ga,E[Y]=nt),nt.getGripSpace()},this.getHand=function(Y){let nt=E[Y];return nt===void 0&&(nt=new ga,E[Y]=nt),nt.getHandSpace()};function k(Y){const nt=y.indexOf(Y.inputSource);if(nt===-1)return;const _t=E[nt];_t!==void 0&&(_t.update(Y.inputSource,Y.frame,c||a),_t.dispatchEvent({type:Y.type,data:Y.inputSource}))}function q(){s.removeEventListener("select",k),s.removeEventListener("selectstart",k),s.removeEventListener("selectend",k),s.removeEventListener("squeeze",k),s.removeEventListener("squeezestart",k),s.removeEventListener("squeezeend",k),s.removeEventListener("end",q),s.removeEventListener("inputsourceschange",Q);for(let Y=0;Y=0&&(y[lt]=null,E[lt].disconnect(_t))}for(let nt=0;nt=y.length){y.push(_t),lt=Lt;break}else if(y[Lt]===null){y[Lt]=_t,lt=Lt;break}if(lt===-1)break}const Ct=E[lt];Ct&&Ct.connect(_t)}}const X=new P,tt=new P;function H(Y,nt,_t){X.setFromMatrixPosition(nt.matrixWorld),tt.setFromMatrixPosition(_t.matrixWorld);const lt=X.distanceTo(tt),Ct=nt.projectionMatrix.elements,Lt=_t.projectionMatrix.elements,Vt=Ct[14]/(Ct[10]-1),ie=Ct[14]/(Ct[10]+1),Wt=(Ct[9]+1)/Ct[5],ue=(Ct[9]-1)/Ct[5],R=(Ct[8]-1)/Ct[0],ye=(Lt[8]+1)/Lt[0],qt=Vt*R,jt=Vt*ye,At=lt/(-R+ye),le=At*-R;if(nt.matrixWorld.decompose(Y.position,Y.quaternion,Y.scale),Y.translateX(le),Y.translateZ(At),Y.matrixWorld.compose(Y.position,Y.quaternion,Y.scale),Y.matrixWorldInverse.copy(Y.matrixWorld).invert(),Ct[10]===-1)Y.projectionMatrix.copy(nt.projectionMatrix),Y.projectionMatrixInverse.copy(nt.projectionMatrixInverse);else{const Rt=Vt+At,b=ie+At,v=qt-le,F=jt+(lt-le),K=Wt*ie/b*Rt,J=ue*ie/b*Rt;Y.projectionMatrix.makePerspective(v,F,K,J,Rt,b),Y.projectionMatrixInverse.copy(Y.projectionMatrix).invert()}}function st(Y,nt){nt===null?Y.matrixWorld.copy(Y.matrix):Y.matrixWorld.multiplyMatrices(nt.matrixWorld,Y.matrix),Y.matrixWorldInverse.copy(Y.matrixWorld).invert()}this.updateCamera=function(Y){if(s===null)return;let nt=Y.near,_t=Y.far;_.texture!==null&&(_.depthNear>0&&(nt=_.depthNear),_.depthFar>0&&(_t=_.depthFar)),M.near=I.near=C.near=nt,M.far=I.far=C.far=_t,(A!==M.near||W!==M.far)&&(s.updateRenderState({depthNear:M.near,depthFar:M.far}),A=M.near,W=M.far),C.layers.mask=Y.layers.mask|2,I.layers.mask=Y.layers.mask|4,M.layers.mask=C.layers.mask|I.layers.mask;const lt=Y.parent,Ct=M.cameras;st(M,lt);for(let Lt=0;Lt0&&(m.alphaTest.value=f.alphaTest);const T=t.get(f),E=T.envMap,y=T.envMapRotation;E&&(m.envMap.value=E,ti.copy(y),ti.x*=-1,ti.y*=-1,ti.z*=-1,E.isCubeTexture&&E.isRenderTargetTexture===!1&&(ti.y*=-1,ti.z*=-1),m.envMapRotation.value.setFromMatrix4(rg.makeRotationFromEuler(ti)),m.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,m.reflectivity.value=f.reflectivity,m.ior.value=f.ior,m.refractionRatio.value=f.refractionRatio),f.lightMap&&(m.lightMap.value=f.lightMap,m.lightMapIntensity.value=f.lightMapIntensity,e(f.lightMap,m.lightMapTransform)),f.aoMap&&(m.aoMap.value=f.aoMap,m.aoMapIntensity.value=f.aoMapIntensity,e(f.aoMap,m.aoMapTransform))}function a(m,f){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,f.map&&(m.map.value=f.map,e(f.map,m.mapTransform))}function o(m,f){m.dashSize.value=f.dashSize,m.totalSize.value=f.dashSize+f.gapSize,m.scale.value=f.scale}function l(m,f,T,E){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,m.size.value=f.size*T,m.scale.value=E*.5,f.map&&(m.map.value=f.map,e(f.map,m.uvTransform)),f.alphaMap&&(m.alphaMap.value=f.alphaMap,e(f.alphaMap,m.alphaMapTransform)),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest)}function c(m,f){m.diffuse.value.copy(f.color),m.opacity.value=f.opacity,m.rotation.value=f.rotation,f.map&&(m.map.value=f.map,e(f.map,m.mapTransform)),f.alphaMap&&(m.alphaMap.value=f.alphaMap,e(f.alphaMap,m.alphaMapTransform)),f.alphaTest>0&&(m.alphaTest.value=f.alphaTest)}function h(m,f){m.specular.value.copy(f.specular),m.shininess.value=Math.max(f.shininess,1e-4)}function d(m,f){f.gradientMap&&(m.gradientMap.value=f.gradientMap)}function p(m,f){m.metalness.value=f.metalness,f.metalnessMap&&(m.metalnessMap.value=f.metalnessMap,e(f.metalnessMap,m.metalnessMapTransform)),m.roughness.value=f.roughness,f.roughnessMap&&(m.roughnessMap.value=f.roughnessMap,e(f.roughnessMap,m.roughnessMapTransform)),f.envMap&&(m.envMapIntensity.value=f.envMapIntensity)}function u(m,f,T){m.ior.value=f.ior,f.sheen>0&&(m.sheenColor.value.copy(f.sheenColor).multiplyScalar(f.sheen),m.sheenRoughness.value=f.sheenRoughness,f.sheenColorMap&&(m.sheenColorMap.value=f.sheenColorMap,e(f.sheenColorMap,m.sheenColorMapTransform)),f.sheenRoughnessMap&&(m.sheenRoughnessMap.value=f.sheenRoughnessMap,e(f.sheenRoughnessMap,m.sheenRoughnessMapTransform))),f.clearcoat>0&&(m.clearcoat.value=f.clearcoat,m.clearcoatRoughness.value=f.clearcoatRoughness,f.clearcoatMap&&(m.clearcoatMap.value=f.clearcoatMap,e(f.clearcoatMap,m.clearcoatMapTransform)),f.clearcoatRoughnessMap&&(m.clearcoatRoughnessMap.value=f.clearcoatRoughnessMap,e(f.clearcoatRoughnessMap,m.clearcoatRoughnessMapTransform)),f.clearcoatNormalMap&&(m.clearcoatNormalMap.value=f.clearcoatNormalMap,e(f.clearcoatNormalMap,m.clearcoatNormalMapTransform),m.clearcoatNormalScale.value.copy(f.clearcoatNormalScale),f.side===Xe&&m.clearcoatNormalScale.value.negate())),f.dispersion>0&&(m.dispersion.value=f.dispersion),f.iridescence>0&&(m.iridescence.value=f.iridescence,m.iridescenceIOR.value=f.iridescenceIOR,m.iridescenceThicknessMinimum.value=f.iridescenceThicknessRange[0],m.iridescenceThicknessMaximum.value=f.iridescenceThicknessRange[1],f.iridescenceMap&&(m.iridescenceMap.value=f.iridescenceMap,e(f.iridescenceMap,m.iridescenceMapTransform)),f.iridescenceThicknessMap&&(m.iridescenceThicknessMap.value=f.iridescenceThicknessMap,e(f.iridescenceThicknessMap,m.iridescenceThicknessMapTransform))),f.transmission>0&&(m.transmission.value=f.transmission,m.transmissionSamplerMap.value=T.texture,m.transmissionSamplerSize.value.set(T.width,T.height),f.transmissionMap&&(m.transmissionMap.value=f.transmissionMap,e(f.transmissionMap,m.transmissionMapTransform)),m.thickness.value=f.thickness,f.thicknessMap&&(m.thicknessMap.value=f.thicknessMap,e(f.thicknessMap,m.thicknessMapTransform)),m.attenuationDistance.value=f.attenuationDistance,m.attenuationColor.value.copy(f.attenuationColor)),f.anisotropy>0&&(m.anisotropyVector.value.set(f.anisotropy*Math.cos(f.anisotropyRotation),f.anisotropy*Math.sin(f.anisotropyRotation)),f.anisotropyMap&&(m.anisotropyMap.value=f.anisotropyMap,e(f.anisotropyMap,m.anisotropyMapTransform))),m.specularIntensity.value=f.specularIntensity,m.specularColor.value.copy(f.specularColor),f.specularColorMap&&(m.specularColorMap.value=f.specularColorMap,e(f.specularColorMap,m.specularColorMapTransform)),f.specularIntensityMap&&(m.specularIntensityMap.value=f.specularIntensityMap,e(f.specularIntensityMap,m.specularIntensityMapTransform))}function g(m,f){f.matcap&&(m.matcap.value=f.matcap)}function _(m,f){const T=t.get(f).light;m.referencePosition.value.setFromMatrixPosition(T.matrixWorld),m.nearDistance.value=T.shadow.camera.near,m.farDistance.value=T.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:s}}function og(i,t,e,n){let s={},r={},a=[];const o=i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS);function l(T,E){const y=E.program;n.uniformBlockBinding(T,y)}function c(T,E){let y=s[T.id];y===void 0&&(g(T),y=h(T),s[T.id]=y,T.addEventListener("dispose",m));const D=E.program;n.updateUBOMapping(T,D);const w=t.render.frame;r[T.id]!==w&&(p(T),r[T.id]=w)}function h(T){const E=d();T.__bindingPointIndex=E;const y=i.createBuffer(),D=T.__size,w=T.usage;return i.bindBuffer(i.UNIFORM_BUFFER,y),i.bufferData(i.UNIFORM_BUFFER,D,w),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,E,y),y}function d(){for(let T=0;T0&&(y+=D-w),T.__size=y,T.__cache={},this}function _(T){const E={boundary:0,storage:0};return typeof T=="number"||typeof T=="boolean"?(E.boundary=4,E.storage=4):T.isVector2?(E.boundary=8,E.storage=8):T.isVector3||T.isColor?(E.boundary=16,E.storage=12):T.isVector4?(E.boundary=16,E.storage=16):T.isMatrix3?(E.boundary=48,E.storage=48):T.isMatrix4?(E.boundary=64,E.storage=64):T.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",T),E}function m(T){const E=T.target;E.removeEventListener("dispose",m);const y=a.indexOf(E.__bindingPointIndex);a.splice(y,1),i.deleteBuffer(s[E.id]),delete s[E.id],delete r[E.id]}function f(){for(const T in s)i.deleteBuffer(s[T]);a=[],s={},r={}}return{bind:l,update:c,dispose:f}}class lg{constructor(t={}){const{canvas:e=Oh(),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:d=!1,reverseDepthBuffer:p=!1}=t;this.isWebGLRenderer=!0;let u;if(n!==null){if(typeof WebGLRenderingContext<"u"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");u=n.getContextAttributes().alpha}else u=a;const g=new Uint32Array(4),_=new Int32Array(4);let m=null,f=null;const T=[],E=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=an,this.toneMapping=Wn,this.toneMappingExposure=1;const y=this;let D=!1,w=0,C=0,I=null,S=-1,M=null;const A=new oe,W=new oe;let k=null;const q=new ot(0);let Q=0,X=e.width,tt=e.height,H=1,st=null,gt=null;const Et=new oe(0,0,X,tt),Ft=new oe(0,0,X,tt);let Xt=!1;const Y=new Ao;let nt=!1,_t=!1;this.transmissionResolutionScale=1;const lt=new ne,Ct=new ne,Lt=new P,Vt=new oe,ie={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let Wt=!1;function ue(){return I===null?H:1}let R=n;function ye(x,U){return e.getContext(x,U)}try{const x={alpha:!0,depth:s,stencil:r,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:d};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${vo}`),e.addEventListener("webglcontextlost",$,!1),e.addEventListener("webglcontextrestored",ft,!1),e.addEventListener("webglcontextcreationerror",ut,!1),R===null){const U="webgl2";if(R=ye(U,x),R===null)throw ye(U)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(x){throw console.error("THREE.WebGLRenderer: "+x.message),x}let qt,jt,At,le,Rt,b,v,F,K,J,j,Tt,dt,V,at,Z,it,pt,wt,ht,Bt,Ut,Zt,L;function rt(){qt=new _p(R),qt.init(),Ut=new Qm(R,qt),jt=new up(R,qt,t,Ut),At=new $m(R,qt),jt.reverseDepthBuffer&&p&&At.buffers.depth.setReversed(!0),le=new Mp(R),Rt=new Bm,b=new Jm(R,qt,At,Rt,jt,Ut,le),v=new fp(y),F=new gp(y),K=new wu(R),Zt=new cp(R,K),J=new vp(R,K,le,Zt),j=new yp(R,J,K,le),wt=new Sp(R,jt,b),Z=new dp(Rt),Tt=new Om(y,v,F,qt,jt,Zt,Z),dt=new ag(y,Rt),V=new km,at=new Ym(qt),pt=new lp(y,v,F,At,j,u,l),it=new Zm(y,j,jt),L=new og(R,le,jt,At),ht=new hp(R,qt,le),Bt=new xp(R,qt,le),le.programs=Tt.programs,y.capabilities=jt,y.extensions=qt,y.properties=Rt,y.renderLists=V,y.shadowMap=it,y.state=At,y.info=le}rt();const G=new sg(y,R);this.xr=G,this.getContext=function(){return R},this.getContextAttributes=function(){return R.getContextAttributes()},this.forceContextLoss=function(){const x=qt.get("WEBGL_lose_context");x&&x.loseContext()},this.forceContextRestore=function(){const x=qt.get("WEBGL_lose_context");x&&x.restoreContext()},this.getPixelRatio=function(){return H},this.setPixelRatio=function(x){x!==void 0&&(H=x,this.setSize(X,tt,!1))},this.getSize=function(x){return x.set(X,tt)},this.setSize=function(x,U,O=!0){if(G.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}X=x,tt=U,e.width=Math.floor(x*H),e.height=Math.floor(U*H),O===!0&&(e.style.width=x+"px",e.style.height=U+"px"),this.setViewport(0,0,x,U)},this.getDrawingBufferSize=function(x){return x.set(X*H,tt*H).floor()},this.setDrawingBufferSize=function(x,U,O){X=x,tt=U,H=O,e.width=Math.floor(x*O),e.height=Math.floor(U*O),this.setViewport(0,0,x,U)},this.getCurrentViewport=function(x){return x.copy(A)},this.getViewport=function(x){return x.copy(Et)},this.setViewport=function(x,U,O,z){x.isVector4?Et.set(x.x,x.y,x.z,x.w):Et.set(x,U,O,z),At.viewport(A.copy(Et).multiplyScalar(H).round())},this.getScissor=function(x){return x.copy(Ft)},this.setScissor=function(x,U,O,z){x.isVector4?Ft.set(x.x,x.y,x.z,x.w):Ft.set(x,U,O,z),At.scissor(W.copy(Ft).multiplyScalar(H).round())},this.getScissorTest=function(){return Xt},this.setScissorTest=function(x){At.setScissorTest(Xt=x)},this.setOpaqueSort=function(x){st=x},this.setTransparentSort=function(x){gt=x},this.getClearColor=function(x){return x.copy(pt.getClearColor())},this.setClearColor=function(){pt.setClearColor.apply(pt,arguments)},this.getClearAlpha=function(){return pt.getClearAlpha()},this.setClearAlpha=function(){pt.setClearAlpha.apply(pt,arguments)},this.clear=function(x=!0,U=!0,O=!0){let z=0;if(x){let N=!1;if(I!==null){const et=I.texture.format;N=et===To||et===bo||et===Eo}if(N){const et=I.texture.type,mt=et===Ln||et===li||et===Ms||et===Ki||et===Mo||et===So,vt=pt.getClearColor(),Mt=pt.getClearAlpha(),It=vt.r,Nt=vt.g,Pt=vt.b;mt?(g[0]=It,g[1]=Nt,g[2]=Pt,g[3]=Mt,R.clearBufferuiv(R.COLOR,0,g)):(_[0]=It,_[1]=Nt,_[2]=Pt,_[3]=Mt,R.clearBufferiv(R.COLOR,0,_))}else z|=R.COLOR_BUFFER_BIT}U&&(z|=R.DEPTH_BUFFER_BIT),O&&(z|=R.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),R.clear(z)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",$,!1),e.removeEventListener("webglcontextrestored",ft,!1),e.removeEventListener("webglcontextcreationerror",ut,!1),pt.dispose(),V.dispose(),at.dispose(),Rt.dispose(),v.dispose(),F.dispose(),j.dispose(),Zt.dispose(),L.dispose(),Tt.dispose(),G.dispose(),G.removeEventListener("sessionstart",Rs),G.removeEventListener("sessionend",fi),pn.stop()};function $(x){x.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),D=!0}function ft(){console.log("THREE.WebGLRenderer: Context Restored."),D=!1;const x=le.autoReset,U=it.enabled,O=it.autoUpdate,z=it.needsUpdate,N=it.type;rt(),le.autoReset=x,it.enabled=U,it.autoUpdate=O,it.needsUpdate=z,it.type=N}function ut(x){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",x.statusMessage)}function Ot(x){const U=x.target;U.removeEventListener("dispose",Ot),ce(U)}function ce(x){Ae(x),Rt.remove(x)}function Ae(x){const U=Rt.get(x).programs;U!==void 0&&(U.forEach(function(O){Tt.releaseProgram(O)}),x.isShaderMaterial&&Tt.releaseShaderCache(x))}this.renderBufferDirect=function(x,U,O,z,N,et){U===null&&(U=ie);const mt=N.isMesh&&N.matrixWorld.determinant()<0,vt=Ds(x,U,O,z,N);At.setMaterial(z,mt);let Mt=O.index,It=1;if(z.wireframe===!0){if(Mt=J.getWireframeAttribute(O),Mt===void 0)return;It=2}const Nt=O.drawRange,Pt=O.attributes.position;let Kt=Nt.start*It,te=(Nt.start+Nt.count)*It;et!==null&&(Kt=Math.max(Kt,et.start*It),te=Math.min(te,(et.start+et.count)*It)),Mt!==null?(Kt=Math.max(Kt,0),te=Math.min(te,Mt.count)):Pt!=null&&(Kt=Math.max(Kt,0),te=Math.min(te,Pt.count));const xe=te-Kt;if(xe<0||xe===1/0)return;Zt.setup(N,z,vt,O,Mt);let pe,Jt=ht;if(Mt!==null&&(pe=K.get(Mt),Jt=Bt,Jt.setIndex(pe)),N.isMesh)z.wireframe===!0?(At.setLineWidth(z.wireframeLinewidth*ue()),Jt.setMode(R.LINES)):Jt.setMode(R.TRIANGLES);else if(N.isLine){let Dt=z.linewidth;Dt===void 0&&(Dt=1),At.setLineWidth(Dt*ue()),N.isLineSegments?Jt.setMode(R.LINES):N.isLineLoop?Jt.setMode(R.LINE_LOOP):Jt.setMode(R.LINE_STRIP)}else N.isPoints?Jt.setMode(R.POINTS):N.isSprite&&Jt.setMode(R.TRIANGLES);if(N.isBatchedMesh)if(N._multiDrawInstances!==null)Jt.renderMultiDrawInstances(N._multiDrawStarts,N._multiDrawCounts,N._multiDrawCount,N._multiDrawInstances);else if(qt.get("WEBGL_multi_draw"))Jt.renderMultiDraw(N._multiDrawStarts,N._multiDrawCounts,N._multiDrawCount);else{const Dt=N._multiDrawStarts,De=N._multiDrawCounts,ee=N._multiDrawCount,ln=Mt?K.get(Mt).bytesPerElement:1,mi=Rt.get(z).currentProgram.getUniforms();for(let qe=0;qe{function et(){if(z.forEach(function(mt){Rt.get(mt).currentProgram.isReady()&&z.delete(mt)}),z.size===0){N(x);return}setTimeout(et,10)}qt.get("KHR_parallel_shader_compile")!==null?et():setTimeout(et,10)})};let Ye=null;function Qe(x){Ye&&Ye(x)}function Rs(){pn.stop()}function fi(){pn.start()}const pn=new Rc;pn.setAnimationLoop(Qe),typeof self<"u"&&pn.setContext(self),this.setAnimationLoop=function(x){Ye=x,G.setAnimationLoop(x),x===null?pn.stop():pn.start()},G.addEventListener("sessionstart",Rs),G.addEventListener("sessionend",fi),this.render=function(x,U){if(U!==void 0&&U.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(D===!0)return;if(x.matrixWorldAutoUpdate===!0&&x.updateMatrixWorld(),U.parent===null&&U.matrixWorldAutoUpdate===!0&&U.updateMatrixWorld(),G.enabled===!0&&G.isPresenting===!0&&(G.cameraAutoUpdate===!0&&G.updateCamera(U),U=G.getCamera()),x.isScene===!0&&x.onBeforeRender(y,x,U,I),f=at.get(x,E.length),f.init(U),E.push(f),Ct.multiplyMatrices(U.projectionMatrix,U.matrixWorldInverse),Y.setFromProjectionMatrix(Ct),_t=this.localClippingEnabled,nt=Z.init(this.clippingPlanes,_t),m=V.get(x,T.length),m.init(),T.push(m),G.enabled===!0&&G.isPresenting===!0){const et=y.xr.getDepthSensingMesh();et!==null&&ns(et,U,-1/0,y.sortObjects)}ns(x,U,0,y.sortObjects),m.finish(),y.sortObjects===!0&&m.sort(st,gt),Wt=G.enabled===!1||G.isPresenting===!1||G.hasDepthSensing()===!1,Wt&&pt.addToRenderList(m,x),this.info.render.frame++,nt===!0&&Z.beginShadows();const O=f.state.shadowsArray;it.render(O,x,U),nt===!0&&Z.endShadows(),this.info.autoReset===!0&&this.info.reset();const z=m.opaque,N=m.transmissive;if(f.setupLights(),U.isArrayCamera){const et=U.cameras;if(N.length>0)for(let mt=0,vt=et.length;mt0&&Ve(z,N,x,U),Wt&&pt.render(x),Cs(m,x,U);I!==null&&C===0&&(b.updateMultisampleRenderTarget(I),b.updateRenderTargetMipmap(I)),x.isScene===!0&&x.onAfterRender(y,x,U),Zt.resetDefaultState(),S=-1,M=null,E.pop(),E.length>0?(f=E[E.length-1],nt===!0&&Z.setGlobalState(y.clippingPlanes,f.state.camera)):f=null,T.pop(),T.length>0?m=T[T.length-1]:m=null};function ns(x,U,O,z){if(x.visible===!1)return;if(x.layers.test(U.layers)){if(x.isGroup)O=x.renderOrder;else if(x.isLOD)x.autoUpdate===!0&&x.update(U);else if(x.isLight)f.pushLight(x),x.castShadow&&f.pushShadow(x);else if(x.isSprite){if(!x.frustumCulled||Y.intersectsSprite(x)){z&&Vt.setFromMatrixPosition(x.matrixWorld).applyMatrix4(Ct);const mt=j.update(x),vt=x.material;vt.visible&&m.push(x,mt,vt,O,Vt.z,null)}}else if((x.isMesh||x.isLine||x.isPoints)&&(!x.frustumCulled||Y.intersectsObject(x))){const mt=j.update(x),vt=x.material;if(z&&(x.boundingSphere!==void 0?(x.boundingSphere===null&&x.computeBoundingSphere(),Vt.copy(x.boundingSphere.center)):(mt.boundingSphere===null&&mt.computeBoundingSphere(),Vt.copy(mt.boundingSphere.center)),Vt.applyMatrix4(x.matrixWorld).applyMatrix4(Ct)),Array.isArray(vt)){const Mt=mt.groups;for(let It=0,Nt=Mt.length;It0&&Re(N,U,O),et.length>0&&Re(et,U,O),mt.length>0&&Re(mt,U,O),At.buffers.depth.setTest(!0),At.buffers.depth.setMask(!0),At.buffers.color.setMask(!0),At.setPolygonOffset(!1)}function Ve(x,U,O,z){if((O.isScene===!0?O.overrideMaterial:null)!==null)return;f.state.transmissionRenderTarget[z.id]===void 0&&(f.state.transmissionRenderTarget[z.id]=new fn(1,1,{generateMipmaps:!0,type:qt.has("EXT_color_buffer_half_float")||qt.has("EXT_color_buffer_float")?Pn:Ln,minFilter:ai,samples:4,stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Qt.workingColorSpace}));const et=f.state.transmissionRenderTarget[z.id],mt=z.viewport||A;et.setSize(mt.z*y.transmissionResolutionScale,mt.w*y.transmissionResolutionScale);const vt=y.getRenderTarget();y.setRenderTarget(et),y.getClearColor(q),Q=y.getClearAlpha(),Q<1&&y.setClearColor(16777215,.5),y.clear(),Wt&&pt.render(O);const Mt=y.toneMapping;y.toneMapping=Wn;const It=z.viewport;if(z.viewport!==void 0&&(z.viewport=void 0),f.setupLightsView(z),nt===!0&&Z.setGlobalState(y.clippingPlanes,z),Re(x,O,z),b.updateMultisampleRenderTarget(et),b.updateRenderTargetMipmap(et),qt.has("WEBGL_multisampled_render_to_texture")===!1){let Nt=!1;for(let Pt=0,Kt=U.length;Pt0),Pt=!!O.morphAttributes.position,Kt=!!O.morphAttributes.normal,te=!!O.morphAttributes.color;let xe=Wn;z.toneMapped&&(I===null||I.isXRRenderTarget===!0)&&(xe=y.toneMapping);const pe=O.morphAttributes.position||O.morphAttributes.normal||O.morphAttributes.color,Jt=pe!==void 0?pe.length:0,Dt=Rt.get(z),De=f.state.lights;if(nt===!0&&(_t===!0||x!==M)){const Be=x===M&&z.id===S;Z.setState(z,x,Be)}let ee=!1;z.version===Dt.__version?(Dt.needsLights&&Dt.lightsStateVersion!==De.state.version||Dt.outputColorSpace!==vt||N.isBatchedMesh&&Dt.batching===!1||!N.isBatchedMesh&&Dt.batching===!0||N.isBatchedMesh&&Dt.batchingColor===!0&&N.colorTexture===null||N.isBatchedMesh&&Dt.batchingColor===!1&&N.colorTexture!==null||N.isInstancedMesh&&Dt.instancing===!1||!N.isInstancedMesh&&Dt.instancing===!0||N.isSkinnedMesh&&Dt.skinning===!1||!N.isSkinnedMesh&&Dt.skinning===!0||N.isInstancedMesh&&Dt.instancingColor===!0&&N.instanceColor===null||N.isInstancedMesh&&Dt.instancingColor===!1&&N.instanceColor!==null||N.isInstancedMesh&&Dt.instancingMorph===!0&&N.morphTexture===null||N.isInstancedMesh&&Dt.instancingMorph===!1&&N.morphTexture!==null||Dt.envMap!==Mt||z.fog===!0&&Dt.fog!==et||Dt.numClippingPlanes!==void 0&&(Dt.numClippingPlanes!==Z.numPlanes||Dt.numIntersection!==Z.numIntersection)||Dt.vertexAlphas!==It||Dt.vertexTangents!==Nt||Dt.morphTargets!==Pt||Dt.morphNormals!==Kt||Dt.morphColors!==te||Dt.toneMapping!==xe||Dt.morphTargetsCount!==Jt)&&(ee=!0):(ee=!0,Dt.__version=z.version);let ln=Dt.currentProgram;ee===!0&&(ln=en(z,U,N));let mi=!1,qe=!1,is=!1;const de=ln.getUniforms(),nn=Dt.uniforms;if(At.useProgram(ln.program)&&(mi=!0,qe=!0,is=!0),z.id!==S&&(S=z.id,qe=!0),mi||M!==x){At.buffers.depth.getReversed()?(lt.copy(x.projectionMatrix),zh(lt),kh(lt),de.setValue(R,"projectionMatrix",lt)):de.setValue(R,"projectionMatrix",x.projectionMatrix),de.setValue(R,"viewMatrix",x.matrixWorldInverse);const Ge=de.map.cameraPosition;Ge!==void 0&&Ge.setValue(R,Lt.setFromMatrixPosition(x.matrixWorld)),jt.logarithmicDepthBuffer&&de.setValue(R,"logDepthBufFC",2/(Math.log(x.far+1)/Math.LN2)),(z.isMeshPhongMaterial||z.isMeshToonMaterial||z.isMeshLambertMaterial||z.isMeshBasicMaterial||z.isMeshStandardMaterial||z.isShaderMaterial)&&de.setValue(R,"isOrthographic",x.isOrthographicCamera===!0),M!==x&&(M=x,qe=!0,is=!0)}if(N.isSkinnedMesh){de.setOptional(R,N,"bindMatrix"),de.setOptional(R,N,"bindMatrixInverse");const Be=N.skeleton;Be&&(Be.boneTexture===null&&Be.computeBoneTexture(),de.setValue(R,"boneTexture",Be.boneTexture,b))}N.isBatchedMesh&&(de.setOptional(R,N,"batchingTexture"),de.setValue(R,"batchingTexture",N._matricesTexture,b),de.setOptional(R,N,"batchingIdTexture"),de.setValue(R,"batchingIdTexture",N._indirectTexture,b),de.setOptional(R,N,"batchingColorTexture"),N._colorsTexture!==null&&de.setValue(R,"batchingColorTexture",N._colorsTexture,b));const sn=O.morphAttributes;if((sn.position!==void 0||sn.normal!==void 0||sn.color!==void 0)&&wt.update(N,O,ln),(qe||Dt.receiveShadow!==N.receiveShadow)&&(Dt.receiveShadow=N.receiveShadow,de.setValue(R,"receiveShadow",N.receiveShadow)),z.isMeshGouraudMaterial&&z.envMap!==null&&(nn.envMap.value=Mt,nn.flipEnvMap.value=Mt.isCubeTexture&&Mt.isRenderTargetTexture===!1?-1:1),z.isMeshStandardMaterial&&z.envMap===null&&U.environment!==null&&(nn.envMapIntensity.value=U.environmentIntensity),qe&&(de.setValue(R,"toneMappingExposure",y.toneMappingExposure),Dt.needsLights&&Ir(nn,is),et&&z.fog===!0&&dt.refreshFogUniforms(nn,et),dt.refreshMaterialUniforms(nn,z,H,tt,f.state.transmissionRenderTarget[x.id]),_r.upload(R,pi(Dt),nn,b)),z.isShaderMaterial&&z.uniformsNeedUpdate===!0&&(_r.upload(R,pi(Dt),nn,b),z.uniformsNeedUpdate=!1),z.isSpriteMaterial&&de.setValue(R,"center",N.center),de.setValue(R,"modelViewMatrix",N.modelViewMatrix),de.setValue(R,"normalMatrix",N.normalMatrix),de.setValue(R,"modelMatrix",N.matrixWorld),z.isShaderMaterial||z.isRawShaderMaterial){const Be=z.uniformsGroups;for(let Ge=0,Or=Be.length;Ge0&&b.useMultisampledRTT(x)===!1?N=Rt.get(x).__webglMultisampledFramebuffer:Array.isArray(Nt)?N=Nt[O]:N=Nt,A.copy(x.viewport),W.copy(x.scissor),k=x.scissorTest}else A.copy(Et).multiplyScalar(H).floor(),W.copy(Ft).multiplyScalar(H).floor(),k=Xt;if(O!==0&&(N=Nr),At.bindFramebuffer(R.FRAMEBUFFER,N)&&z&&At.drawBuffers(x,N),At.viewport(A),At.scissor(W),At.setScissorTest(k),et){const Mt=Rt.get(x.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_CUBE_MAP_POSITIVE_X+U,Mt.__webglTexture,O)}else if(mt){const Mt=Rt.get(x.texture),It=U;R.framebufferTextureLayer(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,Mt.__webglTexture,O,It)}else if(x!==null&&O!==0){const Mt=Rt.get(x.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_2D,Mt.__webglTexture,O)}S=-1},this.readRenderTargetPixels=function(x,U,O,z,N,et,mt){if(!(x&&x.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let vt=Rt.get(x).__webglFramebuffer;if(x.isWebGLCubeRenderTarget&&mt!==void 0&&(vt=vt[mt]),vt){At.bindFramebuffer(R.FRAMEBUFFER,vt);try{const Mt=x.texture,It=Mt.format,Nt=Mt.type;if(!jt.textureFormatReadable(It)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!jt.textureTypeReadable(Nt)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U>=0&&U<=x.width-z&&O>=0&&O<=x.height-N&&R.readPixels(U,O,z,N,Ut.convert(It),Ut.convert(Nt),et)}finally{const Mt=I!==null?Rt.get(I).__webglFramebuffer:null;At.bindFramebuffer(R.FRAMEBUFFER,Mt)}}},this.readRenderTargetPixelsAsync=async function(x,U,O,z,N,et,mt){if(!(x&&x.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let vt=Rt.get(x).__webglFramebuffer;if(x.isWebGLCubeRenderTarget&&mt!==void 0&&(vt=vt[mt]),vt){const Mt=x.texture,It=Mt.format,Nt=Mt.type;if(!jt.textureFormatReadable(It))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!jt.textureTypeReadable(Nt))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(U>=0&&U<=x.width-z&&O>=0&&O<=x.height-N){At.bindFramebuffer(R.FRAMEBUFFER,vt);const Pt=R.createBuffer();R.bindBuffer(R.PIXEL_PACK_BUFFER,Pt),R.bufferData(R.PIXEL_PACK_BUFFER,et.byteLength,R.STREAM_READ),R.readPixels(U,O,z,N,Ut.convert(It),Ut.convert(Nt),0);const Kt=I!==null?Rt.get(I).__webglFramebuffer:null;At.bindFramebuffer(R.FRAMEBUFFER,Kt);const te=R.fenceSync(R.SYNC_GPU_COMMANDS_COMPLETE,0);return R.flush(),await Bh(R,te,4),R.bindBuffer(R.PIXEL_PACK_BUFFER,Pt),R.getBufferSubData(R.PIXEL_PACK_BUFFER,0,et),R.deleteBuffer(Pt),R.deleteSync(te),et}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")}},this.copyFramebufferToTexture=function(x,U=null,O=0){x.isTexture!==!0&&(Fi("WebGLRenderer: copyFramebufferToTexture function signature has changed."),U=arguments[0]||null,x=arguments[1]);const z=Math.pow(2,-O),N=Math.floor(x.image.width*z),et=Math.floor(x.image.height*z),mt=U!==null?U.x:0,vt=U!==null?U.y:0;b.setTexture2D(x,0),R.copyTexSubImage2D(R.TEXTURE_2D,O,0,0,mt,vt,N,et),At.unbindTexture()};const Fr=R.createFramebuffer(),Oc=R.createFramebuffer();this.copyTextureToTexture=function(x,U,O=null,z=null,N=0,et=null){x.isTexture!==!0&&(Fi("WebGLRenderer: copyTextureToTexture function signature has changed."),z=arguments[0]||null,x=arguments[1],U=arguments[2],et=arguments[3]||0,O=null),et===null&&(N!==0?(Fi("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),et=N,N=0):et=0);let mt,vt,Mt,It,Nt,Pt,Kt,te,xe;const pe=x.isCompressedTexture?x.mipmaps[et]:x.image;if(O!==null)mt=O.max.x-O.min.x,vt=O.max.y-O.min.y,Mt=O.isBox3?O.max.z-O.min.z:1,It=O.min.x,Nt=O.min.y,Pt=O.isBox3?O.min.z:0;else{const sn=Math.pow(2,-N);mt=Math.floor(pe.width*sn),vt=Math.floor(pe.height*sn),x.isDataArrayTexture?Mt=pe.depth:x.isData3DTexture?Mt=Math.floor(pe.depth*sn):Mt=1,It=0,Nt=0,Pt=0}z!==null?(Kt=z.x,te=z.y,xe=z.z):(Kt=0,te=0,xe=0);const Jt=Ut.convert(U.format),Dt=Ut.convert(U.type);let De;U.isData3DTexture?(b.setTexture3D(U,0),De=R.TEXTURE_3D):U.isDataArrayTexture||U.isCompressedArrayTexture?(b.setTexture2DArray(U,0),De=R.TEXTURE_2D_ARRAY):(b.setTexture2D(U,0),De=R.TEXTURE_2D),R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,U.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,U.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,U.unpackAlignment);const ee=R.getParameter(R.UNPACK_ROW_LENGTH),ln=R.getParameter(R.UNPACK_IMAGE_HEIGHT),mi=R.getParameter(R.UNPACK_SKIP_PIXELS),qe=R.getParameter(R.UNPACK_SKIP_ROWS),is=R.getParameter(R.UNPACK_SKIP_IMAGES);R.pixelStorei(R.UNPACK_ROW_LENGTH,pe.width),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,pe.height),R.pixelStorei(R.UNPACK_SKIP_PIXELS,It),R.pixelStorei(R.UNPACK_SKIP_ROWS,Nt),R.pixelStorei(R.UNPACK_SKIP_IMAGES,Pt);const de=x.isDataArrayTexture||x.isData3DTexture,nn=U.isDataArrayTexture||U.isData3DTexture;if(x.isDepthTexture){const sn=Rt.get(x),Be=Rt.get(U),Ge=Rt.get(sn.__renderTarget),Or=Rt.get(Be.__renderTarget);At.bindFramebuffer(R.READ_FRAMEBUFFER,Ge.__webglFramebuffer),At.bindFramebuffer(R.DRAW_FRAMEBUFFER,Or.__webglFramebuffer);for(let jn=0;jnMath.PI&&(n-=We),s<-Math.PI?s+=We:s>Math.PI&&(s-=We),n<=s?this._spherical.theta=Math.max(n,Math.min(s,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(n+s)/2?Math.max(n,this._spherical.theta):Math.min(s,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let r=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const a=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),r=a!=this._spherical.radius}if(Ee.setFromSpherical(this._spherical),Ee.applyQuaternion(this._quatInverse),e.copy(this.target).add(Ee),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let a=null;if(this.object.isPerspectiveCamera){const o=Ee.length();a=this._clampDistance(o*this._scale);const l=o-a;this.object.position.addScaledVector(this._dollyDirection,l),this.object.updateMatrixWorld(),r=!!l}else if(this.object.isOrthographicCamera){const o=new P(this._mouse.x,this._mouse.y,0);o.unproject(this.object);const l=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),r=l!==this.object.zoom;const c=new P(this._mouse.x,this._mouse.y,0);c.unproject(this.object),this.object.position.sub(c).add(o),this.object.updateMatrixWorld(),a=Ee.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;a!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(a).add(this.object.position):(cr.origin.copy(this.object.position),cr.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(cr.direction))_a||8*(1-this._lastQuaternion.dot(this.object.quaternion))>_a||this._lastTargetPosition.distanceToSquared(this.target)>_a?(this.dispatchEvent(Vl),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(t){return t!==null?We/60*this.autoRotateSpeed*t:We/60/60*this.autoRotateSpeed}_getZoomScale(t){const e=Math.abs(t*.01);return Math.pow(.95,this.zoomSpeed*e)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,e){Ee.setFromMatrixColumn(e,0),Ee.multiplyScalar(-t),this._panOffset.add(Ee)}_panUp(t,e){this.screenSpacePanning===!0?Ee.setFromMatrixColumn(e,1):(Ee.setFromMatrixColumn(e,0),Ee.crossVectors(this.object.up,Ee)),Ee.multiplyScalar(t),this._panOffset.add(Ee)}_pan(t,e){const n=this.domElement;if(this.object.isPerspectiveCamera){const s=this.object.position;Ee.copy(s).sub(this.target);let r=Ee.length();r*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*r/n.clientHeight,this.object.matrix),this._panUp(2*e*r/n.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/n.clientWidth,this.object.matrix),this._panUp(e*(this.object.top-this.object.bottom)/this.object.zoom/n.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,e){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const n=this.domElement.getBoundingClientRect(),s=t-n.left,r=e-n.top,a=n.width,o=n.height;this._mouse.x=s/a*2-1,this._mouse.y=-(r/o)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(We*this._rotateDelta.x/e.clientHeight),this._rotateUp(We*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let e=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(We*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),e=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-We*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),e=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(We*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),e=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-We*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),e=!0;break}e&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(this._pointers.length===1)this._rotateStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._rotateStart.set(n,s)}}_handleTouchStartPan(t){if(this._pointers.length===1)this._panStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._panStart.set(n,s)}}_handleTouchStartDolly(t){const e=this._getSecondPointerPosition(t),n=t.pageX-e.x,s=t.pageY-e.y,r=Math.sqrt(n*n+s*s);this._dollyStart.set(0,r)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(this._pointers.length==1)this._rotateEnd.set(t.pageX,t.pageY);else{const n=this._getSecondPointerPosition(t),s=.5*(t.pageX+n.x),r=.5*(t.pageY+n.y);this._rotateEnd.set(s,r)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(We*this._rotateDelta.x/e.clientHeight),this._rotateUp(We*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(this._pointers.length===1)this._panEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),s=.5*(t.pageY+e.y);this._panEnd.set(n,s)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const e=this._getSecondPointerPosition(t),n=t.pageX-e.x,s=t.pageY-e.y,r=Math.sqrt(n*n+s*s);this._dollyEnd.set(0,r),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const a=(t.pageX+e.x)*.5,o=(t.pageY+e.y)*.5;this._updateZoomParameters(a,o)}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let e=0;e - varying vec2 vUv; - uniform sampler2D colorTexture; - uniform vec2 invSize; - uniform vec2 direction; - uniform float gaussianCoefficients[KERNEL_RADIUS]; - - void main() { - float weightSum = gaussianCoefficients[0]; - vec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum; - for( int i = 1; i < KERNEL_RADIUS; i ++ ) { - float x = float(i); - float w = gaussianCoefficients[i]; - vec2 uvOffset = direction * invSize * x; - vec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb; - vec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb; - diffuseSum += (sample1 + sample2) * w; - weightSum += 2.0 * w; - } - gl_FragColor = vec4(diffuseSum/weightSum, 1.0); - }`})}getCompositeMaterial(t){return new He({defines:{NUM_MIPS:t},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:`varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); - }`,fragmentShader:`varying vec2 vUv; - uniform sampler2D blurTexture1; - uniform sampler2D blurTexture2; - uniform sampler2D blurTexture3; - uniform sampler2D blurTexture4; - uniform sampler2D blurTexture5; - uniform float bloomStrength; - uniform float bloomRadius; - uniform float bloomFactors[NUM_MIPS]; - uniform vec3 bloomTintColors[NUM_MIPS]; - - float lerpBloomFactor(const in float factor) { - float mirrorFactor = 1.2 - factor; - return mix(factor, mirrorFactor, bloomRadius); - } - - void main() { - gl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) + - lerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) + - lerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) + - lerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) + - lerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) ); - }`})}}ts.BlurDirectionX=new St(1,0);ts.BlurDirectionY=new St(0,1);function Pg(){const t=new Float32Array(6e3),e=new Float32Array(2e3*3);for(let r=0;r<2e3;r++){const a=Math.random()*Math.PI*2,o=Math.acos(2*Math.random()-1),l=600+Math.random()*400;t[r*3]=l*Math.sin(o)*Math.cos(a),t[r*3+1]=l*Math.sin(o)*Math.sin(a),t[r*3+2]=l*Math.cos(o);const c=Math.random();e[r*3]=.55+c*.25,e[r*3+1]=.55+c*.15,e[r*3+2]=.75+c*.25}const n=new ge;n.setAttribute("position",new he(t,3)),n.setAttribute("color",new he(e,3));const s=new oi({size:1.6,sizeAttenuation:!0,vertexColors:!0,transparent:!0,opacity:.6,depthWrite:!1,blending:Le});return new Yi(n,s)}function Dg(i){const t=new lu;t.background=new ot(328975),t.fog=new Dr(657946,.0035);const e=new $e(60,i.clientWidth/i.clientHeight,.1,2e3);e.position.set(0,30,80);const n=new lg({antialias:!0,alpha:!0,powerPreference:"high-performance"});n.setSize(i.clientWidth,i.clientHeight),n.setPixelRatio(Math.min(window.devicePixelRatio,2)),n.toneMapping=ec,n.toneMappingExposure=1.25,i.appendChild(n.domElement);const s=new hg(e,n.domElement);s.enableDamping=!0,s.dampingFactor=.05,s.rotateSpeed=.5,s.zoomSpeed=.8,s.minDistance=12,s.maxDistance=180,s.autoRotate=!0,s.autoRotateSpeed=.3;const r=new Ag(n);r.addPass(new Rg(t,e));const a=new ts(new St(i.clientWidth,i.clientHeight),.55,.6,.2);r.addPass(a);const o=new Mu(2763354,.7);t.add(o);const l=new dl(6514417,1.8,240);l.position.set(50,50,50),t.add(l);const c=new dl(11032055,1.2,240);c.position.set(-50,-30,-50),t.add(c);const h=Pg();t.add(h);const d=new Eu;d.params.Points={threshold:2};const p=new St;return{scene:t,camera:e,renderer:n,controls:s,composer:r,bloomPass:a,raycaster:d,mouse:p,lights:{ambient:o,point1:l,point2:c},starfield:h}}function Lg(i,t){const e=t.clientWidth,n=t.clientHeight;i.camera.aspect=e/n,i.camera.updateProjectionMatrix(),i.renderer.setSize(e,n),i.composer.setSize(e,n)}function Ug(i){i.scene.traverse(t=>{var e;(t instanceof be||t instanceof du)&&((e=t.geometry)==null||e.dispose(),Array.isArray(t.material)?t.material.forEach(n=>n.dispose()):t.material&&t.material.dispose())}),i.renderer.dispose(),i.composer.dispose()}class Ig{constructor(t){kt(this,"positions");kt(this,"velocities");kt(this,"running",!0);kt(this,"step",0);kt(this,"repulsionStrength",500);kt(this,"attractionStrength",.01);kt(this,"dampening",.9);kt(this,"baseMaxSteps",300);kt(this,"maxSteps",300);kt(this,"cooldownExtension",0);this.positions=t,this.velocities=new Map;for(const e of t.keys())this.velocities.set(e,new P)}addNode(t,e){this.positions.set(t,e.clone()),this.velocities.set(t,new P),this.cooldownExtension=100,this.maxSteps=Math.max(this.maxSteps,this.step+this.cooldownExtension),this.running=!0}removeNode(t){this.positions.delete(t),this.velocities.delete(t)}tick(t){if(!this.running)return;if(this.step>this.maxSteps){this.cooldownExtension>0&&(this.cooldownExtension=0,this.maxSteps=this.baseMaxSteps);return}this.step++;const e=Math.max(.001,1-this.step/this.maxSteps),n=Array.from(this.positions.keys());for(let s=0;s=.7?"active":i>=.4?"dormant":i>=.1?"silent":"unavailable"}const po={active:"#10b981",dormant:"#f59e0b",silent:"#8b5cf6",unavailable:"#6b7280"},Fg={active:"Easily retrievable (retention ≥ 70%)",dormant:"Retrievable with effort (40–70%)",silent:"Difficult, needs cues (10–40%)",unavailable:"Needs reinforcement (< 10%)"},xr={aha:"#FFD700",confusion:"#EF4444",failure:"#9CA3AF"},Og={aha:"Aha moments and breakthroughs",confusion:"Confusions and weak spots",failure:"Failures and guardrails"};function Xl(i,t){return t==="state"?po[Ng(i.retention)]:t==="ahagraph"?Bg(i)??Sa[i.type]??"#8B95A5":Sa[i.type]||"#8B95A5"}function Bg(i){const t=new Set((i.tags??[]).map(e=>e.toLowerCase()));return t.has("aha")?xr.aha:t.has("confusion")||t.has("weak-spot")?xr.confusion:t.has("failure")||t.has("guardrail")?xr.failure:null}let ms=null;function mo(){if(ms)return ms;const i=128,t=document.createElement("canvas");t.width=i,t.height=i;const e=t.getContext("2d");if(!e)return ms=new Pe,ms;const n=e.createRadialGradient(i/2,i/2,0,i/2,i/2,i/2);n.addColorStop(0,"rgba(255, 255, 255, 1.0)"),n.addColorStop(.25,"rgba(255, 255, 255, 0.7)"),n.addColorStop(.55,"rgba(255, 255, 255, 0.2)"),n.addColorStop(1,"rgba(255, 255, 255, 0.0)"),e.fillStyle=n,e.fillRect(0,0,i,i);const s=new bc(t);return s.needsUpdate=!0,ms=s,s}function Yl(i){if(i===0||i===1)return i;const t=.3;return Math.pow(2,-10*i)*Math.sin((i-t/4)*(2*Math.PI)/t)+1}function zg(i){return i*i*((1.70158+1)*i-1.70158)}class kg{constructor(){kt(this,"group");kt(this,"meshMap",new Map);kt(this,"glowMap",new Map);kt(this,"positions",new Map);kt(this,"labelSprites",new Map);kt(this,"hoveredNode",null);kt(this,"selectedNode",null);kt(this,"colorMode","type");kt(this,"materializingNodes",[]);kt(this,"dissolvingNodes",[]);kt(this,"growingNodes",[]);this.group=new zi}setColorMode(t){if(this.colorMode!==t){this.colorMode=t;for(const[e,n]of this.meshMap){const s=n.userData.retention??0,r=n.userData.type??"fact",a=Array.isArray(n.userData.tags)?n.userData.tags:[],l=Xl({type:r,retention:s,tags:a},t),c=new ot(l),h=n.material;h.color.copy(c),h.emissive.copy(c);const d=this.glowMap.get(e);d&&d.material.color.copy(c)}}}createNodes(t){const e=(1+Math.sqrt(5))/2,n=t.length;for(let s=0;s0,o=new Lr(s,16,16),l=new mu({color:new ot(r),emissive:new ot(r),emissiveIntensity:a?0:.3+t.retention*.5,roughness:.3,metalness:.1,transparent:!0,opacity:a?.2:.3+t.retention*.7}),c=new be(o,l);c.position.copy(e),c.scale.setScalar(n),c.userData={nodeId:t.id,type:t.type,retention:t.retention,tags:t.tags},this.meshMap.set(t.id,c),this.group.add(c);const h=new Xi({map:mo(),color:new ot(r),transparent:!0,opacity:n>0?a?.1:.3+t.retention*.35:0,blending:Le,depthWrite:!1}),d=new Bi(h);d.scale.set(s*6*n,s*6*n,1),d.position.copy(e),d.userData={isGlow:!0,nodeId:t.id},this.glowMap.set(t.id,d),this.group.add(d);const p=t.label||t.type,u=this.createTextSprite(p,"#94a3b8");return u.position.copy(e),u.position.y+=s*2+1.5,u.userData={isLabel:!0,nodeId:t.id,offset:s*2+1.5},this.group.add(u),this.labelSprites.set(t.id,u),{mesh:c,glow:d,label:u,size:s}}addNode(t,e,n={}){const s=(e==null?void 0:e.clone())??new P((Math.random()-.5)*40,(Math.random()-.5)*40,(Math.random()-.5)*40);this.positions.set(t.id,s);const{mesh:r,glow:a,label:o}=this.createNodeMeshes(t,s,0);return r.scale.setScalar(.001),a.scale.set(.001,.001,1),a.material.opacity=0,o.material.opacity=0,n.isBirthRitual?(r.visible=!1,a.visible=!1,o.visible=!1,r.userData.birthRitualPending={totalFrames:30,targetScale:.5+t.retention*2}):this.materializingNodes.push({id:t.id,frame:0,totalFrames:30,mesh:r,glow:a,label:o,targetScale:.5+t.retention*2}),s}igniteNode(t){const e=this.meshMap.get(t),n=this.glowMap.get(t),s=this.labelSprites.get(t);if(!e||!n||!s)return;const r=e.userData.birthRitualPending;r&&(e.visible=!0,n.visible=!0,s.visible=!0,delete e.userData.birthRitualPending,this.materializingNodes.push({id:t,frame:0,totalFrames:r.totalFrames,mesh:e,glow:n,label:s,targetScale:r.targetScale}))}removeNode(t){const e=this.meshMap.get(t),n=this.glowMap.get(t),s=this.labelSprites.get(t);!e||!n||!s||(this.materializingNodes=this.materializingNodes.filter(r=>r.id!==t),this.dissolvingNodes.push({id:t,frame:0,totalFrames:60,mesh:e,glow:n,label:s,originalScale:e.scale.x}))}growNode(t,e){const n=this.meshMap.get(t);if(!n)return;const s=n.scale.x,r=.5+e*2;n.userData.retention=e,this.growingNodes.push({id:t,frame:0,totalFrames:30,startScale:s,targetScale:r})}createTextSprite(t,e){const n=document.createElement("canvas"),s=n.getContext("2d");if(!s){const f=new Pe;return new Bi(new Xi({map:f,transparent:!0,opacity:0}))}n.width=512,n.height=64;const r=t.length>40?t.slice(0,37)+"...":t;s.clearRect(0,0,n.width,n.height),s.font='600 22px -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif';const o=s.measureText(r).width,c=Math.min(o+14*2,n.width-4),h=40,d=(n.width-c)/2,p=(n.height-h)/2,u=h/2;s.fillStyle="rgba(10, 16, 28, 0.82)",s.beginPath(),s.moveTo(d+u,p),s.lineTo(d+c-u,p),s.quadraticCurveTo(d+c,p,d+c,p+u),s.lineTo(d+c,p+h-u),s.quadraticCurveTo(d+c,p+h,d+c-u,p+h),s.lineTo(d+u,p+h),s.quadraticCurveTo(d,p+h,d,p+h-u),s.lineTo(d,p+u),s.quadraticCurveTo(d,p,d+u,p),s.closePath(),s.fill(),s.strokeStyle="rgba(148, 163, 184, 0.18)",s.lineWidth=1,s.stroke(),s.textAlign="center",s.textBaseline="middle",s.fillStyle=e,s.fillText(r,n.width/2,n.height/2+1);const g=new bc(n);g.needsUpdate=!0;const _=new Xi({map:g,transparent:!0,opacity:0,depthTest:!1,sizeAttenuation:!0}),m=new Bi(_);return m.scale.set(9,1.2,1),m}updatePositions(){this.group.children.forEach(t=>{if(t.userData.nodeId){const e=this.positions.get(t.userData.nodeId);if(!e)return;t.userData.isGlow?t.position.copy(e):t.userData.isLabel?(t.position.copy(e),t.position.y+=t.userData.offset):t instanceof be&&t.position.copy(e)}})}animate(t,e,n,s=1){var a,o;for(let l=this.materializingNodes.length-1;l>=0;l--){const c=this.materializingNodes[l];c.frame++;const h=Math.min(c.frame/c.totalFrames,1),d=Yl(h);if(c.mesh.scale.setScalar(Math.max(.001,d)),c.frame>=5){const p=Math.min((c.frame-5)/5,1),u=c.glow.material;u.opacity=p*.4;const g=c.targetScale*6*d;c.glow.scale.set(g,g,1)}if(c.frame>=40){const p=Math.min((c.frame-40)/20,1);c.label.material.opacity=p*.9}c.frame>=60&&this.materializingNodes.splice(l,1)}for(let l=this.dissolvingNodes.length-1;l>=0;l--){const c=this.dissolvingNodes[l];c.frame++;const h=Math.min(c.frame/c.totalFrames,1),d=1-zg(h),p=Math.max(.001,c.originalScale*d);c.mesh.scale.setScalar(p);const u=p*6;c.glow.scale.set(u,u,1);const g=c.mesh.material;g.opacity*=.97,c.glow.material.opacity*=.95,c.label.material.opacity*=.93,c.frame>=c.totalFrames&&(this.group.remove(c.mesh),this.group.remove(c.glow),this.group.remove(c.label),c.mesh.geometry.dispose(),c.mesh.material.dispose(),(a=c.glow.material.map)==null||a.dispose(),c.glow.material.dispose(),(o=c.label.material.map)==null||o.dispose(),c.label.material.dispose(),this.meshMap.delete(c.id),this.glowMap.delete(c.id),this.labelSprites.delete(c.id),this.positions.delete(c.id),this.dissolvingNodes.splice(l,1))}for(let l=this.growingNodes.length-1;l>=0;l--){const c=this.growingNodes[l];c.frame++;const h=Math.min(c.frame/c.totalFrames,1),d=c.startScale+(c.targetScale-c.startScale)*Yl(h),p=this.meshMap.get(c.id);p&&p.scale.setScalar(d);const u=this.glowMap.get(c.id);if(u){const g=d*6;u.scale.set(g,g,1)}c.frame>=c.totalFrames&&this.growingNodes.splice(l,1)}const r=new Set([...this.materializingNodes.map(l=>l.id),...this.dissolvingNodes.map(l=>l.id),...this.growingNodes.map(l=>l.id)]);this.meshMap.forEach((l,c)=>{if(r.has(c))return;const h=e.find(T=>T.id===c);if(!h)return;const d=1+Math.sin(t*1.5+e.indexOf(h)*.5)*.15*h.retention;l.scale.setScalar(d);const p=this.positions.get(c),u=p?n.position.distanceTo(p):0,g=1+Math.min(1.4,Math.max(0,(u-60)/100)),_=l.material;if(c===this.hoveredNode)_.emissiveIntensity=1*s;else if(c===this.selectedNode)_.emissiveIntensity=.8*s;else{const E=.3+h.retention*.5+Math.sin(t*(.8+h.retention*.7))*.1*h.retention;_.emissiveIntensity=E*s*g}const m=.3+h.retention*.7;_.opacity=Math.min(1,m*s*g);const f=this.glowMap.get(c);if(f){const T=f.material,E=.3+h.retention*.35;T.opacity=Math.min(.95,E*s*g)}}),this.labelSprites.forEach((l,c)=>{if(r.has(c))return;const h=this.positions.get(c);if(!h)return;const d=n.position.distanceTo(h),p=l.material,u=c===this.hoveredNode||c===this.selectedNode?1:d<40?.9:d<80?.9*(1-(d-40)/40):0;p.opacity+=(u-p.opacity)*.1})}getMeshes(){return Array.from(this.meshMap.values())}dispose(){this.group.traverse(t=>{var e,n,s,r,a;t instanceof be?((e=t.geometry)==null||e.dispose(),(n=t.material)==null||n.dispose()):t instanceof Bi&&((r=(s=t.material)==null?void 0:s.map)==null||r.dispose(),(a=t.material)==null||a.dispose())}),this.materializingNodes=[],this.dissolvingNodes=[],this.growingNodes=[]}}function Hg(i){return 1-Math.pow(1-i,3)}class Vg{constructor(){kt(this,"group");kt(this,"growingEdges",[]);kt(this,"dissolvingEdges",[]);this.group=new zi}createEdges(t,e){for(const n of t){const s=e.get(n.source),r=e.get(n.target);if(!s||!r)continue;const a=[s,r],o=new ge().setFromPoints(a),l=new Ar({color:9133302,transparent:!0,opacity:Math.min(.25+n.weight*.5,.8),blending:Le,depthWrite:!1}),c=new co(o,l);c.userData={source:n.source,target:n.target},this.group.add(c)}}addEdge(t,e){const n=e.get(t.source),s=e.get(t.target);if(!n||!s)return;const r=[n.clone(),n.clone()],a=new ge().setFromPoints(r),o=new Ar({color:9133302,transparent:!0,opacity:0,blending:Le,depthWrite:!1}),l=new co(a,o);l.userData={source:t.source,target:t.target},this.group.add(l),this.growingEdges.push({line:l,source:t.source,target:t.target,frame:0,totalFrames:45})}removeEdgesForNode(t){const e=[];this.group.children.forEach(n=>{const s=n;(s.userData.source===t||s.userData.target===t)&&e.push(s)});for(const n of e)this.growingEdges=this.growingEdges.filter(s=>s.line!==n),this.dissolvingEdges.push({line:n,frame:0,totalFrames:40})}animateEdges(t){for(let e=this.growingEdges.length-1;e>=0;e--){const n=this.growingEdges[e];n.frame++;const s=Hg(Math.min(n.frame/n.totalFrames,1)),r=t.get(n.source),a=t.get(n.target);if(!r||!a)continue;const o=r.clone().lerp(a,s),l=n.line.geometry.attributes.position;l.setXYZ(0,r.x,r.y,r.z),l.setXYZ(1,o.x,o.y,o.z),l.needsUpdate=!0;const c=n.line.material;c.opacity=s*.65,n.frame>=n.totalFrames&&(c.opacity=.65,this.growingEdges.splice(e,1))}for(let e=this.dissolvingEdges.length-1;e>=0;e--){const n=this.dissolvingEdges[e];n.frame++;const s=n.frame/n.totalFrames,r=n.line.material;r.opacity=Math.max(0,.65*(1-s)),n.frame>=n.totalFrames&&(this.group.remove(n.line),n.line.geometry.dispose(),n.line.material.dispose(),this.dissolvingEdges.splice(e,1))}}updatePositions(t){this.group.children.forEach(e=>{const n=e;if(this.growingEdges.some(a=>a.line===n)||this.dissolvingEdges.some(a=>a.line===n))return;const s=t.get(n.userData.source),r=t.get(n.userData.target);if(s&&r){const a=n.geometry.attributes.position;a.setXYZ(0,s.x,s.y,s.z),a.setXYZ(1,r.x,r.y,r.z),a.needsUpdate=!0}})}dispose(){this.group.children.forEach(t=>{var n,s;const e=t;(n=e.geometry)==null||n.dispose(),(s=e.material)==null||s.dispose()}),this.growingEdges=[],this.dissolvingEdges=[]}}class Gg{constructor(t){kt(this,"starField");kt(this,"neuralParticles");this.starField=this.createStarField(),this.neuralParticles=this.createNeuralParticles(),t.add(this.starField),t.add(this.neuralParticles)}createStarField(){const e=new ge,n=new Float32Array(3e3*3),s=new Float32Array(3e3);for(let a=0;a<3e3;a++)n[a*3]=(Math.random()-.5)*1e3,n[a*3+1]=(Math.random()-.5)*1e3,n[a*3+2]=(Math.random()-.5)*1e3,s[a]=Math.random()*1.5;e.setAttribute("position",new he(n,3)),e.setAttribute("size",new he(s,1));const r=new oi({color:6514417,size:.5,transparent:!0,opacity:.4,sizeAttenuation:!0,blending:Le});return new Yi(e,r)}createNeuralParticles(){const e=new ge,n=new Float32Array(500*3),s=new Float32Array(500*3);for(let a=0;a<500;a++)n[a*3]=(Math.random()-.5)*100,n[a*3+1]=(Math.random()-.5)*100,n[a*3+2]=(Math.random()-.5)*100,s[a*3]=.4+Math.random()*.3,s[a*3+1]=.3+Math.random()*.2,s[a*3+2]=.8+Math.random()*.2;e.setAttribute("position",new he(n,3)),e.setAttribute("color",new he(s,3));const r=new oi({size:.3,vertexColors:!0,transparent:!0,opacity:.4,blending:Le,sizeAttenuation:!0});return new Yi(e,r)}animate(t){this.starField.rotation.y+=1e-4,this.starField.rotation.x+=5e-5;const e=this.neuralParticles.geometry.attributes.position;for(let n=0;n=0;s--){const r=this.pulseEffects[s];if(r.intensity-=r.decay,r.intensity<=0){this.pulseEffects.splice(s,1);continue}const a=t.get(r.nodeId);if(a){const o=a.material;o.emissive.lerp(r.color,r.intensity*.3),o.emissiveIntensity=Math.max(o.emissiveIntensity,r.intensity)}}for(let s=this.spawnBursts.length-1;s>=0;s--){const r=this.spawnBursts[s];if(r.age++,r.age>120){this.scene.remove(r.particles),r.particles.geometry.dispose(),r.particles.material.dispose(),this.spawnBursts.splice(s,1);continue}const a=r.particles.geometry.attributes.position,o=r.particles.geometry.attributes.velocity;for(let c=0;c=0;s--){const r=this.rainbowBursts[s];if(r.age++,r.age>r.maxAge){this.scene.remove(r.particles),r.particles.geometry.dispose(),r.particles.material.dispose(),this.rainbowBursts.splice(s,1);continue}const a=r.particles.geometry.attributes.position,o=r.particles.geometry.attributes.velocity;for(let p=0;p=0;s--){const r=this.rippleWaves[s];if(r.age++,r.radius+=r.speed,r.age>r.maxAge){this.rippleWaves.splice(s,1);continue}const a=r.radius,o=3;n.forEach((l,c)=>{if(r.pulsedNodes.has(c))return;const h=l.distanceTo(r.origin);h>=a-o&&h<=a+o&&(r.pulsedNodes.add(c),this.addPulse(c,.8,new ot(65489),.03))})}for(let s=this.implosions.length-1;s>=0;s--){const r=this.implosions[s];if(r.age++,r.age>r.maxAge+20){this.scene.remove(r.particles),r.particles.geometry.dispose(),r.particles.material.dispose(),r.flash&&(this.scene.remove(r.flash),r.flash.geometry.dispose(),r.flash.material.dispose()),this.implosions.splice(s,1);continue}if(r.age<=r.maxAge){const a=r.particles.geometry.attributes.position,o=r.particles.geometry.attributes.velocity,l=1+r.age*.02;for(let h=0;hr.maxAge){const a=(r.age-r.maxAge)/20;r.flash.material.opacity=Math.max(0,1-a),r.flash.scale.setScalar(1+a*3)}}for(let s=this.shockwaves.length-1;s>=0;s--){const r=this.shockwaves[s];if(r.age++,r.age>r.maxAge){this.scene.remove(r.mesh),r.mesh.geometry.dispose(),r.mesh.material.dispose(),this.shockwaves.splice(s,1);continue}const a=r.age/r.maxAge;r.mesh.scale.setScalar(1+a*20),r.mesh.material.opacity=.8*(1-a),r.mesh.lookAt(e.position)}for(let s=this.connectionFlashes.length-1;s>=0;s--){const r=this.connectionFlashes[s];if(r.intensity-=.015,r.intensity<=0){this.scene.remove(r.line),r.line.geometry.dispose(),r.line.material.dispose(),this.connectionFlashes.splice(s,1);continue}r.line.material.opacity=r.intensity}for(let s=this.birthOrbs.length-1;s>=0;s--){const r=this.birthOrbs[s];r.age++;const a=r.gestationFrames+r.flightFrames,o=r.sprite.material,l=r.core.material,c=r.getTargetPos();if(c)r.lastTargetPos.copy(c);else if(r.age>r.gestationFrames&&!r.aborted){r.aborted=!0;const h=r.sprite.position;o.color.setRGB(1,.15,.2),l.color.setRGB(1,.6,.6),this.createImplosion(h,new ot(16721203)),r.arriveFired=!0,r.age=a+1}if(r.age<=r.gestationFrames){const h=r.age/r.gestationFrames,d=1-Math.pow(1-h,3),p=.85+Math.sin(r.age*.35)*.15,u=.5+d*4.5*p,g=.2+d*1.8*p;r.sprite.scale.set(u,u,1),r.core.scale.set(g,g,1),o.opacity=d*.95,l.opacity=d,o.color.copy(r.color).multiplyScalar(.7+d*.3),r.sprite.position.copy(r.startPos),r.core.position.copy(r.startPos)}else if(r.age<=a){const h=(r.age-r.gestationFrames)/r.flightFrames,d=h<.5?2*h*h:1-Math.pow(-2*h+2,2)/2,p=r.startPos,u=r.lastTargetPos,g=u.x-p.x,_=u.y-p.y,m=u.z-p.z,f=Math.sqrt(g*g+_*_+m*m),T=(p.x+u.x)*.5,E=(p.y+u.y)*.5+30+f*.15,y=(p.z+u.z)*.5,D=1-d,w=D*D,C=2*D*d,I=d*d,S=w*p.x+C*T+I*u.x,M=w*p.y+C*E+I*u.y,A=w*p.z+C*y+I*u.z;r.sprite.position.set(S,M,A),r.core.position.set(S,M,A);const W=1-d*.35;r.sprite.scale.setScalar(5*W),r.core.scale.setScalar(2*W),o.opacity=.95,l.opacity=1,o.color.copy(r.color)}else if(r.arriveFired){const h=r.age-a,d=Math.max(0,1-h/8);o.opacity=.95*d,l.opacity=1*d,r.sprite.scale.setScalar(5*(1+(1-d)*2)),d<=0&&(this.scene.remove(r.sprite),this.scene.remove(r.core),o.dispose(),l.dispose(),this.birthOrbs.splice(s,1))}else{r.arriveFired=!0;try{r.onArrive()}catch(h){console.warn("[birth-orb] onArrive threw",h)}}}}dispose(){for(const t of this.spawnBursts)this.scene.remove(t.particles),t.particles.geometry.dispose(),t.particles.material.dispose();for(const t of this.rainbowBursts)this.scene.remove(t.particles),t.particles.geometry.dispose(),t.particles.material.dispose();for(const t of this.implosions)this.scene.remove(t.particles),t.particles.geometry.dispose(),t.particles.material.dispose(),t.flash&&(this.scene.remove(t.flash),t.flash.geometry.dispose(),t.flash.material.dispose());for(const t of this.shockwaves)this.scene.remove(t.mesh),t.mesh.geometry.dispose(),t.mesh.material.dispose();for(const t of this.connectionFlashes)this.scene.remove(t.line),t.line.geometry.dispose(),t.line.material.dispose();for(const t of this.birthOrbs)this.scene.remove(t.sprite),this.scene.remove(t.core),t.sprite.material.dispose(),t.core.material.dispose();this.pulseEffects=[],this.spawnBursts=[],this.rainbowBursts=[],this.rippleWaves=[],this.implosions=[],this.shockwaves=[],this.connectionFlashes=[],this.birthOrbs=[]}}const wn={bloomStrength:.8,rotateSpeed:.3,fogColor:328976,fogDensity:.008,nebulaIntensity:0,chromaticIntensity:.002,vignetteRadius:.9,breatheAmplitude:1},zn={bloomStrength:1.8,rotateSpeed:.08,fogColor:656672,fogDensity:.006,nebulaIntensity:1,chromaticIntensity:.005,vignetteRadius:.7,breatheAmplitude:2};class Xg{constructor(){kt(this,"active",!1);kt(this,"transition",0);kt(this,"transitionSpeed",.008);kt(this,"current");kt(this,"auroraHue",0);this.current={...wn}}setActive(t){this.active=t}update(t,e,n,s,r){const a=this.active?1:0;this.transition+=(a-this.transition)*this.transitionSpeed*60*(1/60),this.transition=Math.max(0,Math.min(1,this.transition));const o=this.transition;this.current.bloomStrength=this.lerp(wn.bloomStrength,zn.bloomStrength,o),this.current.rotateSpeed=this.lerp(wn.rotateSpeed,zn.rotateSpeed,o),this.current.fogDensity=this.lerp(wn.fogDensity,zn.fogDensity,o),this.current.nebulaIntensity=this.lerp(wn.nebulaIntensity,zn.nebulaIntensity,o),this.current.chromaticIntensity=this.lerp(wn.chromaticIntensity,zn.chromaticIntensity,o),this.current.vignetteRadius=this.lerp(wn.vignetteRadius,zn.vignetteRadius,o),this.current.breatheAmplitude=this.lerp(wn.breatheAmplitude,zn.breatheAmplitude,o),e.strength=this.current.bloomStrength,n.autoRotateSpeed=this.current.rotateSpeed;const l=new ot(wn.fogColor),c=new ot(zn.fogColor),h=l.clone().lerp(c,o);if(t.fog=new Dr(h,this.current.fogDensity),o>.01){this.auroraHue=r*.1%1;const d=new ot().setHSL(.75+this.auroraHue*.15,.8,.5),p=new ot().setHSL(.55+this.auroraHue*.2,.7,.4);s.point1.color.lerp(d,o*.3),s.point2.color.lerp(p,o*.3)}else s.point1.color.set(6514417),s.point2.color.set(11032055)}lerp(t,e,n){return t+(e-t)*n}}const Yg=50,xs=[];function qg(i,t,e){const n=i.tags??[],s=i.type??"";let r=null,a=0;for(const o of t){let l=0;o.type===s&&(l+=2);for(const c of o.tags)n.includes(c)&&(l+=1);l>a&&(a=l,r=o.id)}if(r&&a>0){const o=e.get(r);if(o)return new P(o.x+(Math.random()-.5)*10,o.y+(Math.random()-.5)*10,o.z+(Math.random()-.5)*10)}return new P((Math.random()-.5)*40,(Math.random()-.5)*40,(Math.random()-.5)*40)}function jg(i,t){if(xs.length<=Yg)return;const e=xs.shift();i.edgeManager.removeEdgesForNode(e),i.nodeManager.removeNode(e),i.forceSim.removeNode(e),i.onMutation({type:"edgesRemoved",nodeId:e}),i.onMutation({type:"nodeRemoved",nodeId:e});const n=t.findIndex(s=>s.id===e);n!==-1&&t.splice(n,1)}function Zg(i,t,e){var d,p;const{effects:n,nodeManager:s,edgeManager:r,forceSim:a,camera:o,onMutation:l}=t,c=s.positions,h=s.meshMap;switch(i.type){case"MemoryCreated":{const u=i.data;if(!u.id)break;const g={id:u.id,label:(u.content??"").slice(0,60),type:u.node_type??"fact",retention:Math.max(0,Math.min(1,u.retention??.9)),tags:u.tags??[],createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),isCenter:!1},_=qg(g,e,c),m=s.addNode(g,_,{isBirthRitual:!0});a.addNode(u.id,m),xs.push(u.id),jg(t,e);const f=new ot(Sa[g.type]||"#00ffd1"),T=f.clone();T.offsetHSL(.15,0,0),n.createBirthOrb(o,f,()=>s.positions.get(g.id),()=>{s.igniteNode(g.id);const E=s.positions.get(g.id)??_,y=s.meshMap.get(g.id);y&&y.scale.multiplyScalar(1.8),n.createRainbowBurst(E,f),n.createShockwave(E,f,o),n.createShockwave(E,T,o),n.createRippleWave(E)}),l({type:"nodeAdded",node:g});break}case"ConnectionDiscovered":{const u=i.data;if(!u.source_id||!u.target_id)break;const g=c.get(u.source_id),_=c.get(u.target_id),m={source:u.source_id,target:u.target_id,weight:u.weight??.5,type:u.connection_type??"semantic"};r.addEdge(m,c),g&&_&&n.createConnectionFlash(g,_,new ot(54527)),u.source_id&&h.has(u.source_id)&&n.addPulse(u.source_id,1,new ot(54527),.02),u.target_id&&h.has(u.target_id)&&n.addPulse(u.target_id,1,new ot(54527),.02),l({type:"edgeAdded",edge:m});break}case"MemoryDeleted":{const u=i.data;if(!u.id)break;const g=c.get(u.id);if(g){const m=new ot(16729943);n.createImplosion(g,m)}r.removeEdgesForNode(u.id),s.removeNode(u.id),a.removeNode(u.id);const _=xs.indexOf(u.id);_!==-1&&xs.splice(_,1),l({type:"edgesRemoved",nodeId:u.id}),l({type:"nodeRemoved",nodeId:u.id});break}case"MemoryPromoted":{const u=i.data,g=u==null?void 0:u.id;if(!g)break;const _=u.new_retention??.95;if(h.has(g)){s.growNode(g,_),n.addPulse(g,1.2,new ot(65416),.01);const m=c.get(g);m&&(n.createShockwave(m,new ot(65416),o),n.createSpawnBurst(m,new ot(65416))),l({type:"nodeUpdated",nodeId:g,retention:_})}break}case"MemoryDemoted":{const u=i.data,g=u==null?void 0:u.id;if(!g)break;const _=u.new_retention??.3;h.has(g)&&(s.growNode(g,_),n.addPulse(g,.8,new ot(16729943),.03),l({type:"nodeUpdated",nodeId:g,retention:_}));break}case"MemoryUpdated":{const u=i.data,g=u==null?void 0:u.id;if(!g||!h.has(g))break;n.addPulse(g,.6,new ot(8490232),.02),u.retention!==void 0&&(s.growNode(g,u.retention),l({type:"nodeUpdated",nodeId:g,retention:u.retention}));break}case"SearchPerformed":{h.forEach((u,g)=>{n.addPulse(g,.6+Math.random()*.4,new ot(8490232),.02)});break}case"DreamStarted":{h.forEach((u,g)=>{n.addPulse(g,1,new ot(11032055),.005)});break}case"DreamProgress":{const u=(d=i.data)==null?void 0:d.memory_id;u&&h.has(u)&&n.addPulse(u,1.5,new ot(12616956),.01);break}case"DreamCompleted":{n.createSpawnBurst(new P(0,0,0),new ot(11032055)),n.createShockwave(new P(0,0,0),new ot(11032055),o);break}case"RetentionDecayed":{const u=(p=i.data)==null?void 0:p.id;u&&h.has(u)&&n.addPulse(u,.8,new ot(16729943),.03);break}case"ConsolidationCompleted":{h.forEach((u,g)=>{n.addPulse(g,.4+Math.random()*.3,new ot(16758784),.015)});break}case"ActivationSpread":{const u=i.data;if(u.source_id&&u.target_ids){const g=c.get(u.source_id);if(g)for(const _ of u.target_ids){const m=c.get(_);m&&n.createConnectionFlash(g,m,new ot(1370310))}}break}case"MemorySuppressed":{const u=i.data;if(!u.id)break;const g=c.get(u.id);if(g){n.createImplosion(g,new ot(11032055));const _=Math.max(1,u.suppression_count??1),m=Math.min(.4+_*.15,1);n.addPulse(u.id,m,new ot(11032055),.04)}break}case"MemoryUnsuppressed":{const u=i.data;if(!u.id)break;const g=c.get(u.id);g&&h.has(u.id)&&(n.createRainbowBurst(g,new ot(65416)),n.addPulse(u.id,1,new ot(65416),.02));break}case"Rac1CascadeSwept":{const g=i.data.neighbors_affected??0;if(g===0)break;const _=Array.from(h.keys()),m=Math.min(g,_.length,12);for(let f=0;f"u")return Mr;const i=localStorage.getItem(Fc);if(i===null)return Mr;const t=Number(i);return Number.isFinite(t)?Math.min(_o,Math.max(go,t)):Mr}const ni=a_();function a_(){let i=me(!1),t=me(va(new Date)),e=me(!1),n=me(1),s=me(!1),r=me(va(r_()));return{get temporalEnabled(){return B(i)},set temporalEnabled(a){zt(i,a,!0)},get temporalDate(){return B(t)},set temporalDate(a){zt(t,a,!0)},get temporalPlaying(){return B(e)},set temporalPlaying(a){zt(e,a,!0)},get temporalSpeed(){return B(n)},set temporalSpeed(a){zt(n,a,!0)},get dreamMode(){return B(s)},set dreamMode(a){zt(s,a,!0)},get brightness(){return B(r)},set brightness(a){const o=Math.min(_o,Math.max(go,a));if(zt(r,o,!0),typeof localStorage<"u")try{localStorage.setItem(Fc,String(o))}catch{}},brightnessMin:go,brightnessMax:_o,brightnessDefault:Mr}}var o_=Se('
        ');function l_(i,t){ys(t,!0);let e=vs(t,"events",19,()=>[]),n=vs(t,"isDreaming",3,!1),s=vs(t,"colorMode",3,"type");kc(()=>{l==null||l.setColorMode(s())});let r,a,o,l,c,h,d,p,u,g,_,m=null,f=[];jl(()=>{a=Dg(r),g=Jg(a.scene).material,_=i_(a.composer),h=new Gg(a.scene),l=new kg,l.colorMode=s(),c=new Vg,d=new Wg(a.scene),u=new Xg;const M=l.createNodes(t.nodes);c.createEdges(t.edges,M),p=new Ig(M),f=[...t.nodes],a.scene.add(c.group),a.scene.add(l.group),E(),window.addEventListener("resize",D),r.addEventListener("pointermove",w),r.addEventListener("click",C)}),Zl(()=>{cancelAnimationFrame(o),window.removeEventListener("resize",D),r==null||r.removeEventListener("pointermove",w),r==null||r.removeEventListener("click",C),d==null||d.dispose(),h==null||h.dispose(),l==null||l.dispose(),c==null||c.dispose(),a&&Ug(a)});let T=0;function E(){o=requestAnimationFrame(E);const S=performance.now();T===0&&(T=S);const M=S-T;if(M<16)return;T=S-M%16;const A=S*.001;p.tick(t.edges),l.updatePositions(),c.updatePositions(l.positions),c.animateEdges(l.positions),h.animate(A),l.animate(A,f,a.camera,ni.brightness),u.setActive(n()),u.update(a.scene,a.bloomPass,a.controls,a.lights,A),Qg(g,A,u.current.nebulaIntensity,r.clientWidth,r.clientHeight),s_(_,A,u.current.nebulaIntensity),y(),d.update(l.meshMap,a.camera,l.positions),a.controls.update(),a.composer.render()}function y(){if(!e()||e().length===0)return;const S=[];for(const A of e()){if(A===m)break;S.push(A)}if(S.length===0)return;if(S.length===e().length&&e().length>=200){console.warn("[vestige] Event horizon overflow: dropping visuals for",S.length,"events"),m=e()[0];return}m=e()[0];const M={effects:d,nodeManager:l,edgeManager:c,forceSim:p,camera:a.camera,onMutation:A=>{var W;A.type==="nodeAdded"?f=[...f,A.node]:A.type==="nodeRemoved"&&(f=f.filter(k=>k.id!==A.nodeId)),(W=t.onGraphMutation)==null||W.call(t,A)}};for(let A=S.length-1;A>=0;A--)Zg(S[A],M,f)}function D(){!r||!a||Lg(a,r)}function w(S){const M=r.getBoundingClientRect();a.mouse.x=(S.clientX-M.left)/M.width*2-1,a.mouse.y=-((S.clientY-M.top)/M.height)*2+1,a.raycaster.setFromCamera(a.mouse,a.camera);const A=a.raycaster.intersectObjects(l.getMeshes());A.length>0?(l.hoveredNode=A[0].object.userData.nodeId,r.style.cursor="pointer"):(l.hoveredNode=null,r.style.cursor="grab")}function C(){var S;if(l.hoveredNode){l.selectedNode=l.hoveredNode,(S=t.onSelect)==null||S.call(t,l.hoveredNode);const M=l.positions.get(l.hoveredNode);M&&a.controls.target.lerp(M.clone(),.5)}}var I=o_();Yc(I,S=>r=S,()=>r),_e(i,I),Es()}var c_=Se('
        '),h_=Se('
        ');function u_(i,t){ys(t,!0);let e=vs(t,"width",3,240),n=vs(t,"height",3,80);function s(m){return t.stability<=0?0:Math.exp(-m/t.stability)}let r=Gn(()=>{const m=[],f=Math.max(t.stability*3,30),T=4,E=e()-T*2,y=n()-T*2;for(let D=0;D<=50;D++){const w=D/50*f,C=s(w),I=T+D/50*E,S=T+(1-C)*y;m.push(`${D===0?"M":"L"}${I.toFixed(1)},${S.toFixed(1)}`)}return m.join(" ")}),a=Gn(()=>[{label:"Now",days:0,value:t.retention},{label:"1d",days:1,value:s(1)},{label:"7d",days:7,value:s(7)},{label:"30d",days:30,value:s(30)}]);function o(m){return m>.7?"#10b981":m>.4?"#f59e0b":"#ef4444"}var l=h_(),c=yt(l),h=yt(c),d=bt(h),p=bt(d),u=bt(p),g=bt(u);Hc(),xt(c);var _=bt(c,2);_s(_,21,()=>B(a),hr,(m,f)=>{var T=c_(),E=yt(T),y=yt(E);xt(E);var D=bt(E,2),w=yt(D);xt(D),xt(T),Ke((C,I)=>{fe(y,`${B(f).label??""}:`),Sr(D,`color: ${C??""}`),fe(w,`${I??""}%`)},[()=>o(B(f).value),()=>(B(f).value*100).toFixed(0)]),_e(m,T)}),xt(_),xt(l),Ke(m=>{ve(c,"width",e()),ve(c,"height",n()),ve(c,"viewBox",`0 0 ${e()??""} ${n()??""}`),ve(h,"y1",4+(n()-8)*.5),ve(h,"x2",e()-4),ve(h,"y2",4+(n()-8)*.5),ve(d,"y1",4+(n()-8)*.8),ve(d,"x2",e()-4),ve(d,"y2",4+(n()-8)*.8),ve(p,"d",B(r)),ve(u,"d",`${B(r)??""} L${e()-4},${n()-4} L4,${n()-4} Z`),ve(g,"cy",4+(1-t.retention)*(n()-8)),ve(g,"fill",m)},[()=>o(t.retention)]),_e(i,l),Es()}function ql(i,t,e){const n=e.getTime(),s=new Set,r=new Map,a=i.filter(l=>{const c=new Date(l.createdAt).getTime();if(c<=n){s.add(l.id);const h=n-c,d=1440*60*1e3,p=hs.has(l.source)&&s.has(l.target));return{visibleNodes:a,visibleEdges:o,nodeOpacities:r}}function d_(i){if(i.length===0){const n=new Date;return{oldest:n,newest:n}}let t=1/0,e=-1/0;for(const n of i){const s=new Date(n.createdAt).getTime();se&&(e=s)}return{oldest:new Date(t),newest:new Date(e)}}var f_=Se(`
        `),p_=Se('');function m_(i,t){ys(t,!0);let e=me(!1),n=me(!1),s=me(1),r=me(100),a,o=0,l=Gn(()=>d_(t.nodes)),c=Gn(()=>{const E=B(l).oldest.getTime(),D=B(l).newest.getTime()-E||1;return new Date(E+B(r)/100*D)});function h(E){return E.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function d(){zt(e,!B(e)),t.onToggle(B(e)),B(e)&&(zt(r,100),t.onDateChange(B(c)))}function p(){zt(n,!B(n)),B(n)?(zt(r,0),o=performance.now(),u()):cancelAnimationFrame(a)}function u(){B(n)&&(a=requestAnimationFrame(E=>{const y=(E-o)/1e3;o=E;const D=B(l).oldest.getTime(),C=(B(l).newest.getTime()-D)/(1440*60*1e3)||1,I=B(s)/C*100;if(zt(r,Math.min(100,B(r)+I*y),!0),t.onDateChange(B(c)),B(r)>=100){zt(n,!1);return}u()}))}function g(){t.onDateChange(B(c))}Zl(()=>{zt(n,!1),cancelAnimationFrame(a)});var _=Gc(),m=Kl(_);{var f=E=>{var y=f_(),D=yt(y),w=yt(D),C=yt(w),I=yt(C),S=yt(I,!0);xt(I);var M=bt(I,2),A=yt(M);A.value=A.__value=1;var W=bt(A);W.value=W.__value=7;var k=bt(W);k.value=k.__value=30,xt(M),xt(C);var q=bt(C,2),Q=yt(q,!0);xt(q);var X=bt(q,2);xt(w);var tt=bt(w,2);xa(tt);var H=bt(tt,2),st=yt(H),gt=yt(st,!0);xt(st);var Et=bt(st,2),Ft=yt(Et,!0);xt(Et),xt(H),xt(D),xt(y),Ke((Xt,Y,nt)=>{fe(S,B(n)?"⏸":"▶"),fe(Q,Xt),fe(gt,Y),fe(Ft,nt)},[()=>h(B(c)),()=>h(B(l).oldest),()=>h(B(l).newest)]),Fe("click",I,p),Jl(M,()=>B(s),Xt=>zt(s,Xt)),Fe("click",X,d),Fe("input",tt,g),Ma(tt,()=>B(r),Xt=>zt(r,Xt)),_e(E,y)},T=E=>{var y=p_();Fe("click",y,d),_e(E,y)};kn(m,E=>{B(e)?E(f):E(T,!1)})}_e(i,_),Es()}$l(["click","input"]);var g_=Se('
        '),__=Se('
        FSRS accessibility
        ');function v_(i,t){ys(t,!1);const e=["active","dormant","silent","unavailable"];qc();var n=__(),s=bt(yt(n),2);_s(s,1,()=>e,r=>r,(r,a)=>{var o=g_(),l=yt(o),c=bt(l,2),h=yt(c,!0);xt(c);var d=bt(c,2),p=yt(d,!0);xt(d),xt(o),Ke(u=>{Sr(l,`background: ${po[B(a)]??""}; box-shadow: 0 0 6px ${po[B(a)]??""}55;`),fe(h,B(a)),fe(p,u)},[()=>{var u;return((u=Fg[B(a)].match(/\(([^)]+)\)/))==null?void 0:u[1])??""}]),_e(r,o)}),xt(n),_e(i,n),Es()}var x_=Se('

        Loading memory graph...

        '),M_=Se(`

        MCP Backend Offline

        The Vestige MCP server isn't reachable on :3927. - The dashboard is running but has nothing to query.

        Start the backend:
        nohup bash -c 'tail -f /dev/null | VESTIGE_DASHBOARD_ENABLED=true ~/.local/bin/vestige-mcp' > /tmp/vestige.log 2>&1 & -disown
        `),S_=Se('

        Your Mind Awaits

        No memories yet. Start using Vestige to populate your graph.

        '),y_=Se('

        Your Mind Awaits

        '),E_=Se(' · · ',1),b_=Se('
        '),T_=Se('
        '),w_=Se('
        AhaGraph
        '),A_=Se(' '),R_=Se('
        '),C_=Se("
        "),P_=Se(`

        Memory Detail

        Retention Forecast
        ◬ Explore Connections
        `),D_=Se(`
        `);function Q_(i,t){ys(t,!0);const e=()=>Xc(jc,"$eventFeed",n),[n,s]=Wc();let r=me(null),a=me(null),o=me(!0),l=me(""),c=me(!1),h=me(""),d=me(150),p=me(!1),u=me(va(new Date)),g=me("type");const _=Object.entries(xr);let m=me(0),f=me(0),T=Gn(()=>B(r)?B(p)?ql(B(r).nodes,B(r).edges,B(u)).visibleNodes:B(r).nodes:[]),E=Gn(()=>B(r)?B(p)?ql(B(r).nodes,B(r).edges,B(u)).visibleEdges:B(r).edges:[]);function y(V){if(B(r))switch(V.type){case"nodeAdded":B(r).nodes=[...B(r).nodes,V.node],B(r).nodeCount=B(r).nodes.length,zt(m,B(r).nodeCount,!0);break;case"nodeRemoved":B(r).nodes=B(r).nodes.filter(at=>at.id!==V.nodeId),B(r).nodeCount=B(r).nodes.length,zt(m,B(r).nodeCount,!0);break;case"edgeAdded":B(r).edges=[...B(r).edges,V.edge],B(r).edgeCount=B(r).edges.length,zt(f,B(r).edgeCount,!0);break;case"edgesRemoved":B(r).edges=B(r).edges.filter(at=>at.source!==V.nodeId&&at.target!==V.nodeId),B(r).edgeCount=B(r).edges.length,zt(f,B(r).edgeCount,!0);break;case"nodeUpdated":{const at=B(r).nodes.find(Z=>Z.id===V.nodeId);at&&(at.retention=V.retention);break}}}jl(()=>{const V=new URLSearchParams(window.location.search).get("colorMode");D(V)&&zt(g,V,!0),w()});function D(V){return V==="type"||V==="state"||V==="ahagraph"}async function w(V,at){var Z;zt(o,!0),zt(l,"");try{const it=!V&&!at;if(zt(r,await gi.graph({max_nodes:B(d),depth:3,query:V||void 0,center_id:at||void 0,sort:it?"recent":void 0}),!0),it&&B(r)&&B(r).nodeCount<=1&&B(r).edgeCount===0){const pt=await gi.graph({max_nodes:B(d),depth:3,sort:"connected"});pt&&pt.nodeCount>B(r).nodeCount&&zt(r,pt,!0)}B(r)&&(zt(m,B(r).nodeCount,!0),zt(f,B(r).edgeCount,!0))}catch(it){const pt=it instanceof Error?it.message:String(it),wt=pt.replace(/\/[\w./-]+\.(sqlite|rs|db|toml|lock)\b/g,"[path]").slice(0,200),ht=it instanceof TypeError||/failed to fetch|NetworkError|load failed/i.test(pt)||/^API 500:?\s*(Internal Server Error)?\s*$/i.test(pt.trim()),Bt=(((Z=B(r))==null?void 0:Z.nodeCount)??0)===0&&/not found|404|empty|no memor/i.test(pt);ht?zt(l,"OFFLINE"):Bt?zt(l,"EMPTY"):zt(l,`Failed to load graph: ${wt}`)}finally{zt(o,!1)}}async function C(){zt(c,!0);try{await gi.dream(),await w()}catch{}finally{zt(c,!1)}}async function I(V){try{zt(a,await gi.memories.get(V),!0)}catch{zt(a,null)}}function S(){B(h).trim()&&w(B(h))}var M=D_(),A=yt(M);{var W=V=>{var at=x_();_e(V,at)},k=V=>{var at=M_(),Z=yt(at),it=bt(yt(Z),8),pt=yt(it),wt=bt(pt,2);xt(it),xt(Z),xt(at),Ke(()=>ve(wt,"href",`${Do??""}/settings`)),Fe("click",pt,()=>w()),_e(V,at)},q=V=>{var at=S_();_e(V,at)},Q=V=>{var at=y_(),Z=yt(at),it=bt(yt(Z),4),pt=yt(it,!0);xt(it),xt(Z),xt(at),Ke(()=>fe(pt,B(l))),_e(V,at)},X=V=>{l_(V,{get nodes(){return B(T)},get edges(){return B(E)},get centerId(){return B(r).center_id},get events(){return e()},get isDreaming(){return B(c)},get colorMode(){return B(g)},onSelect:I,onGraphMutation:y})};kn(A,V=>{B(o)?V(W):B(l)==="OFFLINE"?V(k,1):B(l)==="EMPTY"?V(q,2):B(l)?V(Q,3):B(r)&&V(X,4)})}var tt=bt(A,2),H=yt(tt),st=yt(H);xa(st);var gt=bt(st,2);xt(H);var Et=bt(H,2),Ft=yt(Et),Xt=yt(Ft),Y=bt(Xt,2),nt=bt(Y,2);xt(Ft);var _t=bt(Ft,2),lt=yt(_t);lt.value=lt.__value=50;var Ct=bt(lt);Ct.value=Ct.__value=100;var Lt=bt(Ct);Lt.value=Lt.__value=150;var Vt=bt(Lt);Vt.value=Vt.__value=200,xt(_t);var ie=bt(_t,2),Wt=bt(yt(ie),2);xa(Wt);var ue=bt(Wt,2),R=yt(ue);xt(ue),xt(ie);var ye=bt(ie,2),qt=yt(ye,!0);xt(ye);var jt=bt(ye,2);xt(Et),xt(tt);var At=bt(tt,2),le=yt(At);{var Rt=V=>{var at=E_(),Z=Kl(at),it=yt(Z);xt(Z);var pt=bt(Z,4),wt=yt(pt);xt(pt);var ht=bt(pt,4),Bt=yt(ht);xt(ht),Ke(()=>{fe(it,`${B(m)??""} nodes`),fe(wt,`${B(f)??""} edges`),fe(Bt,`depth ${B(r).depth??""}`)}),_e(V,at)};kn(le,V=>{B(r)&&V(Rt)})}xt(At);var b=bt(At,2);{var v=V=>{var at=b_(),Z=yt(at);v_(Z,{}),xt(at),_e(V,at)};kn(b,V=>{B(g)==="state"&&V(v)})}var F=bt(b,2);{var K=V=>{var at=w_(),Z=bt(yt(at),2);_s(Z,21,()=>_,hr,(it,pt)=>{var wt=Gn(()=>Vc(B(pt),2));let ht=()=>B(wt)[0],Bt=()=>B(wt)[1];var Ut=T_(),Zt=yt(Ut),L=bt(Zt,2),rt=yt(L,!0);xt(L),xt(Ut),Ke(()=>{Sr(Zt,`background: ${Bt()??""}`),fe(rt,Og[ht()])}),_e(it,Ut)}),xt(Z),xt(at),_e(V,at)};kn(F,V=>{B(g)==="ahagraph"&&V(K)})}var J=bt(F,2);{var j=V=>{m_(V,{get nodes(){return B(r).nodes},onDateChange:at=>{zt(u,at,!0)},onToggle:at=>{zt(p,at,!0)}})};kn(J,V=>{B(r)&&V(j)})}var Tt=bt(J,2);{var dt=V=>{var at=P_(),Z=yt(at),it=bt(yt(Z),2);xt(Z);var pt=bt(Z,2),wt=yt(pt),ht=yt(wt),Bt=yt(ht,!0);xt(ht);var Ut=bt(ht,2);_s(Ut,17,()=>B(a).tags,hr,(Ve,Re)=>{var tn=A_(),en=yt(tn,!0);xt(tn),Ke(()=>fe(en,B(Re))),_e(Ve,tn)}),xt(wt);var Zt=bt(wt,2),L=yt(Zt,!0);xt(Zt);var rt=bt(Zt,2);_s(rt,21,()=>[{label:"Retention",value:B(a).retentionStrength},{label:"Storage",value:B(a).storageStrength},{label:"Retrieval",value:B(a).retrievalStrength}],hr,(Ve,Re)=>{var tn=R_(),en=yt(tn),pi=yt(en),Ps=yt(pi,!0);xt(pi);var Ds=bt(pi,2),Ir=yt(Ds);xt(Ds),xt(en);var Ls=bt(en,2),Nr=yt(Ls);xt(Ls),xt(tn),Ke(Fr=>{fe(Ps,B(Re).label),fe(Ir,`${Fr??""}%`),Sr(Nr,`width: ${B(Re).value*100}%; background: ${B(Re).value>.7?"#10b981":B(Re).value>.4?"#f59e0b":"#ef4444"}`)},[()=>(B(Re).value*100).toFixed(1)]),_e(Ve,tn)}),xt(rt);var G=bt(rt,2),$=bt(yt(G),2);{let Ve=Gn(()=>B(a).storageStrength*30);u_($,{get retention(){return B(a).retentionStrength},get stability(){return B(Ve)}})}xt(G);var ft=bt(G,2),ut=yt(ft),Ot=yt(ut);xt(ut);var ce=bt(ut,2),Ae=yt(ce);xt(ce);var $t=bt(ce,2);{var Ye=Ve=>{var Re=C_(),tn=yt(Re);xt(Re),Ke(en=>fe(tn,`Accessed: ${en??""}`),[()=>new Date(B(a).lastAccessedAt).toLocaleString()]),_e(Ve,Re)};kn($t,Ve=>{B(a).lastAccessedAt&&Ve(Ye)})}var Qe=bt($t,2),Rs=yt(Qe);xt(Qe),xt(ft);var fi=bt(ft,2),pn=yt(fi),ns=bt(pn,2);xt(fi);var Cs=bt(fi,2);xt(pt),xt(at),Ke((Ve,Re)=>{fe(Bt,B(a).nodeType),fe(L,B(a).content),fe(Ot,`Created: ${Ve??""}`),fe(Ae,`Updated: ${Re??""}`),fe(Rs,`Reviews: ${B(a).reviewCount??0??""}`),ve(Cs,"href",`${Do??""}/explore`)},[()=>new Date(B(a).createdAt).toLocaleString(),()=>new Date(B(a).updatedAt).toLocaleString()]),Fe("click",it,()=>zt(a,null)),Fe("click",pn,()=>{B(a)&&gi.memories.promote(B(a).id)}),Fe("click",ns,()=>{B(a)&&gi.memories.demote(B(a).id)}),_e(V,at)};kn(Tt,V=>{B(a)&&V(dt)})}xt(M),Ke((V,at)=>{ve(Xt,"aria-checked",B(g)==="type"),Us(Xt,1,`px-3 py-1.5 rounded-lg transition ${B(g)==="type"?"bg-synapse/25 text-synapse-glow":"text-dim hover:text-text"}`),ve(Y,"aria-checked",B(g)==="state"),Us(Y,1,`px-3 py-1.5 rounded-lg transition ${B(g)==="state"?"bg-synapse/25 text-synapse-glow":"text-dim hover:text-text"}`),ve(nt,"aria-checked",B(g)==="ahagraph"),Us(nt,1,`px-3 py-1.5 rounded-lg transition ${B(g)==="ahagraph"?"bg-synapse/25 text-synapse-glow":"text-dim hover:text-text"}`),ve(ie,"title",`Adjust graph brightness (${V??""}x). Combines with auto distance compensation.`),ve(Wt,"min",ni.brightnessMin),ve(Wt,"max",ni.brightnessMax),fe(R,`${at??""}x`),ye.disabled=B(c),Us(ye,1,`px-4 py-2 rounded-xl bg-dream/20 border border-dream/40 text-dream-glow text-sm - hover:bg-dream/30 transition-all backdrop-blur-sm disabled:opacity-50 - ${B(c)?"glow-dream animate-pulse-glow":""}`),fe(qt,B(c)?"◈ Dreaming...":"◈ Dream")},[()=>ni.brightness.toFixed(1),()=>ni.brightness.toFixed(1)]),Fe("keydown",st,V=>V.key==="Enter"&&S()),Ma(st,()=>B(h),V=>zt(h,V)),Fe("click",gt,S),Fe("click",Xt,()=>zt(g,"type")),Fe("click",Y,()=>zt(g,"state")),Fe("click",nt,()=>zt(g,"ahagraph")),Fe("change",_t,()=>w()),Jl(_t,()=>B(d),V=>zt(d,V)),Ma(Wt,()=>ni.brightness,V=>ni.brightness=V),Fe("click",ye,C),Fe("click",jt,()=>w()),_e(i,M),Es(),s()}$l(["click","keydown","change"]);export{Q_ as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.br b/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.br deleted file mode 100644 index f295aa5601e9d425bc171c6dfd745159b0a43115..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123948 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

        i;(k>)E+Um+bvTt!Aw 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 BN@@TA diff --git a/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.gz b/apps/dashboard/build/_app/immutable/nodes/10.CQzEYpYT.js.gz deleted file mode 100644 index 059eb29b86875b9a838bd12e7e3e4992648d91fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149521 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

        Y zGod4_gEU(EHLOuOPb}-s6CAjL{s%p#iNmY<2&_AE61@icvtSf`P(IOfpUL4Tj$r;< zwhSkuqSEcyW-hkAhqli;O44vtYtQ`81e|&^MBhBBku3Jfnjznnny}g{U_pMG� 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 b^Bn8{&{R| '),Ue=m('

        '),Ve=m('
        Target

        '),Ge=m(`
        Target Memory
        `,1),He=m('

        '),Je=m(' '),Le=m(" "),We=m(" "),Xe=m(" "),Ye=m(' '),Ze=m('

        '),et=m('

        '),tt=m('

        No connections found for this query.

        '),rt=m('
        '),at=m('
        '),st=m('
        '),it=m(`

        Explore Connections

        Source Memory

        Importance Scorer

        4-channel neuroscience scoring: novelty, arousal, reward, attention

        `);function ft(he,we){ze(we,!0);let V=I(""),G=I(""),F=I(null),C=I(null),B=I(Ae([])),$=I("associations"),O=I(!1),H=I(""),D=I(null);const le={associations:{icon:"◎",desc:"Spreading activation — find related memories via graph traversal"},chains:{icon:"⟿",desc:"Build reasoning path from source to target memory"},bridges:{icon:"⬡",desc:"Find connecting memories between two concepts"}};async function ve(){if(e(V).trim()){b(O,!0);try{const s=await X.search(e(V),1);s.results.length>0&&(b(F,s.results[0],!0),await Y())}catch{}finally{b(O,!1)}}}async function pe(){if(e(G).trim()){b(O,!0);try{const s=await X.search(e(G),1);s.results.length>0&&(b(C,s.results[0],!0),e(F)&&await Y())}catch{}finally{b(O,!1)}}}async function Y(){if(e(F)){b(O,!0);try{const s=(e($)==="chains"||e($)==="bridges")&&e(C)?e(C).id:void 0,i=await X.explore(e(F).id,e($),s);b(B,i.results||i.nodes||i.chain||i.bridges||[],!0)}catch{b(B,[],!0)}finally{b(O,!1)}}}async function ke(){e(H).trim()&&b(D,await X.importance(e(H)),!0)}function Se(s){b($,s,!0),e(F)&&Y()}var Z=it(),ee=a(r(Z),2);ie(ee,20,()=>["associations","chains","bridges"],ne,(s,i)=>{var d=Re(),_=r(d),h=r(_,!0);t(_);var f=a(_,2),p=r(f,!0);t(f);var n=a(f,2),g=r(n,!0);t(n),t(d),y(w=>{oe(d,1,`flex flex-col items-center gap-1 p-3 rounded-xl text-sm transition - ${e($)===i?"glass !border-synapse/30 text-synapse-glow":"glass-subtle text-dim hover:bg-white/[0.03]"}`),o(h,le[i].icon),o(p,w),o(g,le[i].desc)},[()=>i.charAt(0).toUpperCase()+i.slice(1)]),q("click",d,()=>Se(i)),c(s,d)}),t(ee);var te=a(ee,2),ce=a(r(te),2),J=r(ce);ye(J);var Fe=a(J,2);t(ce),t(te);var xe=a(te,2);{var Te=s=>{var i=Ue(),d=a(r(i),2),_=r(d,!0);t(d);var h=a(d,2),f=r(h),p=r(f,!0);t(f);var n=a(f,2),g=r(n);t(n),t(h),t(i),y((w,z)=>{o(_,w),o(p,e(F).nodeType),o(g,`${z??""}% retention`)},[()=>e(F).content.slice(0,200),()=>(e(F).retentionStrength*100).toFixed(0)]),c(s,i)};k(xe,s=>{e(F)&&s(Te)})}var me=a(xe,2);{var $e=s=>{var i=Ge(),d=ge(i),_=r(d),h=a(r(_)),f=r(h);t(h),t(_);var p=a(_,2),n=r(p);ye(n);var g=a(n,2);t(p),t(d);var w=a(d,2);{var z=u=>{var E=Ve(),x=a(r(E),2),K=r(x,!0);t(x);var M=a(x,2),S=r(M),A=r(S,!0);t(S);var T=a(S,2),P=r(T);t(T),t(M),t(E),y((Q,j)=>{o(K,Q),o(A,e(C).nodeType),o(P,`${j??""}% retention`)},[()=>e(C).content.slice(0,200),()=>(e(C).retentionStrength*100).toFixed(0)]),c(u,E)};k(w,u=>{e(C)&&u(z)})}y(()=>o(f,`(for ${e($)??""})`)),q("keydown",n,u=>u.key==="Enter"&&pe()),de(n,()=>e(G),u=>b(G,u)),q("click",g,pe),c(s,i)};k(me,s=>{(e($)==="chains"||e($)==="bridges")&&s($e)})}var ue=a(me,2);{var Ee=s=>{var i=De(),d=ge(i);{var _=p=>{var n=He(),g=a(r(n),2),w=r(g);t(g),t(n),y(()=>o(w,`Exploring ${e($)??""}...`)),c(p,n)},h=p=>{var n=et(),g=r(n),w=r(g),z=r(w);t(w),t(g);var u=a(g,2);ie(u,21,()=>e(B),ne,(E,x,K)=>{var M=Ze(),S=r(M);S.textContent=K+1;var A=a(S,2),T=r(A),P=r(T,!0);t(T);var Q=a(T,2),j=r(Q);{var L=l=>{var v=Je(),N=r(v,!0);t(v),y(()=>o(N,e(x).nodeType)),c(l,v)};k(j,l=>{e(x).nodeType&&l(L)})}var R=a(j,2);{var ae=l=>{var v=Le(),N=r(v);t(v),y(U=>o(N,`Score: ${U??""}`),[()=>Number(e(x).score).toFixed(3)]),c(l,v)};k(R,l=>{e(x).score&&l(ae)})}var W=a(R,2);{var Ie=l=>{var v=We(),N=r(v);t(v),y(U=>o(N,`Similarity: ${U??""}`),[()=>Number(e(x).similarity).toFixed(3)]),c(l,v)};k(W,l=>{e(x).similarity&&l(Ie)})}var be=a(W,2);{var je=l=>{var v=Xe(),N=r(v);t(v),y(U=>o(N,`${U??""}% retention`),[()=>(Number(e(x).retention)*100).toFixed(0)]),c(l,v)};k(be,l=>{e(x).retention&&l(je)})}var Ce=a(be,2);{var Oe=l=>{var v=Ye(),N=r(v,!0);t(v),y(()=>o(N,e(x).connectionType)),c(l,v)};k(Ce,l=>{e(x).connectionType&&l(Oe)})}t(Q),t(A),t(M),y(()=>o(P,e(x).content)),c(E,M)}),t(u),t(n),y(()=>o(z,`${e(B).length??""} Connections Found`)),c(p,n)},f=p=>{var n=tt();c(p,n)};k(d,p=>{e(O)?p(_):e(B).length>0?p(h,1):p(f,!1)})}c(s,i)};k(ue,s=>{e(F)&&s(Ee)})}var _e=a(ue,2),re=a(r(_e),4);Qe(re);var fe=a(re,2),Me=a(fe,2);{var Ne=s=>{const i=se(()=>e(D).channels),d=se(()=>Number(e(D).composite||e(D).compositeScore||0));var _=st(),h=r(_),f=r(h),p=r(f,!0);t(f);var n=a(f,2),g=r(n,!0);t(n),t(h);var w=a(h,2);{var z=u=>{var E=at();ie(E,21,()=>Object.entries(e(i)),ne,(x,K)=>{var M=se(()=>qe(e(K),2));let S=()=>e(M)[0],A=()=>e(M)[1];var T=rt(),P=r(T),Q=r(P,!0);t(P);var j=a(P,2),L=r(j);t(j);var R=a(j,2),ae=r(R,!0);t(R),t(T),y(W=>{o(Q,S()),oe(L,1,`h-full rounded-full transition-all duration-500 - ${S()==="novelty"?"bg-synapse":S()==="arousal"?"bg-dream":S()==="reward"?"bg-recall":"bg-amber-400"}`),Ke(L,`width: ${A()*100}%`),o(ae,W)},[()=>A().toFixed(2)]),c(x,T)}),t(E),c(u,E)};k(w,u=>{e(i)&&u(z)})}t(_),y(u=>{o(p,u),oe(n,1,`px-2 py-1 rounded-lg text-xs ${e(d)>.6?"bg-recall/20 text-recall border border-recall/30":"bg-white/[0.04] text-dim border border-subtle/20"}`),o(g,e(d)>.6?"SAVE":"SKIP")},[()=>e(d).toFixed(2)]),c(s,_)};k(Me,s=>{e(D)&&s(Ne)})}t(_e),t(Z),q("keydown",J,s=>s.key==="Enter"&&ve()),de(J,()=>e(V),s=>b(V,s)),q("click",Fe,ve),de(re,()=>e(H),s=>b(H,s)),q("click",fe,ke),c(he,Z),Pe()}Be(["click","keydown"]);export{ft as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/8.DGKslLJe.js.br b/apps/dashboard/build/_app/immutable/nodes/8.DGKslLJe.js.br deleted file mode 100644 index 94fe0cd3cf28f4bec210c7bcd35f575f282e2131..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3012 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 GJ@{`HYSM%N diff --git a/apps/dashboard/build/_app/immutable/nodes/8.DGKslLJe.js.gz b/apps/dashboard/build/_app/immutable/nodes/8.DGKslLJe.js.gz deleted file mode 100644 index 7a2021cb0cd847b17d03b884486e0ef8af33ef21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3513 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 diff --git a/apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js b/apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js deleted file mode 100644 index d3ddfe5..0000000 --- a/apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js +++ /dev/null @@ -1,8 +0,0 @@ -import"../chunks/Bzak7iHL.js";import{i as oe}from"../chunks/BUoSzNdg.js";import{p as ee,aB as ie,g as e,h as A,d as o,e as d,r as s,f as ne,t as $,a as te,s as K,u as X,A as Z}from"../chunks/CpWkWWOo.js";import{s as x,d as de,a as ce}from"../chunks/BlVfL1ME.js";import{a as l,f as m}from"../chunks/CHOnp4oo.js";import{i as w}from"../chunks/B4yTwGkE.js";import{e as re,i as ae}from"../chunks/CGEBXrjl.js";import{s as C}from"../chunks/Cx-f-Pzo.js";import{s as le,a as me}from"../chunks/C6HuKgyx.js";import{w as ve,e as ue}from"../chunks/MAY1QfFZ.js";import{E as O}from"../chunks/CcUbQ_Wl.js";import{s as pe}from"../chunks/A7po6GxK.js";import{s as fe}from"../chunks/aVbAZ-t7.js";import{p as Q}from"../chunks/V6gjw5Ec.js";var xe=m(' '),_e=m('
        '),ge=m('
        ',1),he=m('
        '),ye=m('
        '),$e=m('
        Cognitive Search Pipeline
        ');function be(q,F){ee(F,!0);let S=Q(F,"resultCount",3,0),j=Q(F,"durationMs",3,0),I=Q(F,"active",3,!1);const p=[{name:"Overfetch",icon:"◎",color:"#818CF8",desc:"Pull 3x results from hybrid search"},{name:"Rerank",icon:"⟿",color:"#00A8FF",desc:"Re-score by relevance quality"},{name:"Temporal",icon:"◷",color:"#00D4FF",desc:"Recent memories get recency bonus"},{name:"Access",icon:"◇",color:"#00FFD1",desc:"FSRS-6 retention threshold filter"},{name:"Context",icon:"◬",color:"#FFB800",desc:"Encoding specificity matching"},{name:"Compete",icon:"⬡",color:"#FF3CAC",desc:"Retrieval-induced forgetting"},{name:"Activate",icon:"◈",color:"#9D00FF",desc:"Spreading activation cascade"}];let _=K(-1),g=K(!1),u=K(!1);ie(()=>{I()&&!e(g)&&M()});function M(){A(g,!0),A(_,-1),A(u,!1);const t=Math.max(1500,(j()||50)*2),a=t/(p.length+1);p.forEach((i,v)=>{setTimeout(()=>{A(_,v,!0)},a*(v+1))}),setTimeout(()=>{A(u,!0),A(g,!1)},t)}var D=$e(),b=o(D),L=d(o(b),2);{var V=t=>{var a=xe(),i=o(a);s(a),$(()=>x(i,`${S()??""} results in ${j()??""}ms`)),l(t,a)};w(L,t=>{e(u)&&t(V)})}s(b);var P=d(b,2);re(P,21,()=>p,ae,(t,a,i)=>{const v=X(()=>i<=e(_)),E=X(()=>i===e(_)&&e(g));var k=ge(),h=ne(k),y=o(h),J=o(y,!0);s(y);var R=d(y,2),T=o(R,!0);s(R),s(h);var U=d(h,2);{var W=B=>{var c=_e();$(()=>C(c,`background: ${i{i{fe(y,1,`w-8 h-8 rounded-full flex items-center justify-center text-xs transition-all duration-300 - ${e(E)?"scale-125":""}`),C(y,`background: ${e(v)?e(a).color+"25":"rgba(255,255,255,0.03)"}; - border: 1.5px solid ${(e(v)?e(a).color:"rgba(255,255,255,0.06)")??""}; - color: ${(e(v)?e(a).color:"#4a4a7a")??""}; - box-shadow: ${e(E)?"0 0 12px "+e(a).color+"40":"none"}`),pe(y,"title",e(a).desc),x(J,e(a).icon),C(R,`color: ${(e(v)?e(a).color:"#4a4a7a")??""}`),x(T,e(a).name)}),l(t,k)}),s(P);var N=d(P,2),z=o(N);{var n=t=>{var a=he();$(i=>C(a,`width: ${i??""}%; - background: linear-gradient(90deg, #818CF8, #00FFD1, #9D00FF); - transition-duration: ${e(g)?"300ms":"500ms"}`),[()=>e(u)?"100":((e(_)+1)/p.length*100).toFixed(0)]),l(t,a)};w(z,t=>{(e(g)||e(u))&&t(n)})}s(N);var r=d(N,2);{var H=t=>{var a=ye(),i=d(o(a),2),v=o(i);s(i),s(a),$(()=>x(v,`Pipeline complete: ${S()??""} memories surfaced from ${p.length??""}-stage cognitive cascade`)),l(t,a)};w(r,t=>{e(u)&&t(H)})}s(D),l(q,D),te()}var we=m('

        Waiting for cognitive events...

        Events appear here in real-time as Vestige thinks.

        '),Ce=m(' '),Fe=m('
        '),Se=m(`

        `),De=m('
        '),ke=m('

        Live Feed

        ');function ze(q,F){ee(F,!1);const S=()=>me(ue,"$eventFeed",j),[j,I]=le();function p(n){return new Date(n).toLocaleTimeString()}function _(n){return{MemoryCreated:"+",MemoryUpdated:"~",MemoryDeleted:"×",MemoryPromoted:"↑",MemoryDemoted:"↓",SearchPerformed:"◎",DreamStarted:"◈",DreamProgress:"◈",DreamCompleted:"◈",ConsolidationStarted:"◉",ConsolidationCompleted:"◉",RetentionDecayed:"↘",ConnectionDiscovered:"━",ActivationSpread:"◬",ImportanceScored:"◫",Heartbeat:"♡"}[n]||"·"}function g(n){const r=n.data;switch(n.type){case"MemoryCreated":return`New ${r.node_type}: "${String(r.content_preview).slice(0,60)}..."`;case"SearchPerformed":return`Searched "${r.query}" → ${r.result_count} results (${r.duration_ms}ms)`;case"DreamStarted":return`Dream started with ${r.memory_count} memories`;case"DreamCompleted":return`Dream complete: ${r.connections_found} connections, ${r.insights_generated} insights (${r.duration_ms}ms)`;case"ConsolidationStarted":return"Consolidation cycle started";case"ConsolidationCompleted":return`Consolidated ${r.nodes_processed} nodes, ${r.decay_applied} decayed (${r.duration_ms}ms)`;case"ConnectionDiscovered":return`Connection: ${String(r.connection_type)} (weight: ${Number(r.weight).toFixed(2)})`;case"ImportanceScored":return`Scored ${Number(r.composite_score).toFixed(2)}: "${String(r.content_preview).slice(0,50)}..."`;case"MemoryPromoted":return`Promoted → ${(Number(r.new_retention)*100).toFixed(0)}% retention`;case"MemoryDemoted":return`Demoted → ${(Number(r.new_retention)*100).toFixed(0)}% retention`;default:return JSON.stringify(r).slice(0,100)}}oe();var u=ke(),M=o(u),D=d(o(M),2),b=o(D),L=o(b);s(b);var V=d(b,2);s(D),s(M);var P=d(M,2);{var N=n=>{var r=we();l(n,r)},z=n=>{var r=De();re(r,5,S,ae,(H,t)=>{var a=Se(),i=o(a),v=o(i,!0);s(i);var E=d(i,2),k=o(E),h=o(k),y=o(h,!0);s(h);var J=d(h,2);{var R=c=>{var f=Ce(),Y=o(f,!0);s(f),$(G=>x(Y,G),[()=>p(String(e(t).data.timestamp))]),l(c,f)};w(J,c=>{e(t).data.timestamp&&c(R)})}s(k);var T=d(k,2),U=o(T,!0);s(T);var W=d(T,2);{var B=c=>{var f=Fe(),Y=o(f);{let G=Z(()=>Number(e(t).data.result_count)||0),se=Z(()=>Number(e(t).data.duration_ms)||0);be(Y,{get resultCount(){return e(G)},get durationMs(){return e(se)},active:!0})}s(f),l(c,f)};w(W,c=>{e(t).type==="SearchPerformed"&&c(B)})}s(E),s(a),$((c,f)=>{C(a,`border-left: 3px solid ${(O[e(t).type]||"#8B95A5")??""}`),C(i,`background: ${(O[e(t).type]||"#8B95A5")??""}15; color: ${(O[e(t).type]||"#8B95A5")??""}`),x(v,c),C(h,`color: ${(O[e(t).type]||"#8B95A5")??""}`),x(y,e(t).type),x(U,f)},[()=>_(e(t).type),()=>g(e(t))]),l(H,a)}),s(r),l(n,r)};w(P,n=>{S().length===0?n(N):n(z,!1)})}s(u),$(()=>x(L,`${S().length??""} events`)),ce("click",V,()=>ve.clearEvents()),l(q,u),te(),I()}de(["click"]);export{ze as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js.br b/apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js.br deleted file mode 100644 index 90505a6864d339ceb8d92833638d7089a47365cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2949 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 diff --git a/apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js.gz b/apps/dashboard/build/_app/immutable/nodes/9.Vu2AXN40.js.gz deleted file mode 100644 index dcd642aa5e4af9433adc8c8e3a321c1e5d86c95f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3363 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 in i?Ze(i,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[e]=s;var D=(i,e,s)=>Je(i,typeof e!="symbol"?e+"":e,s);import"../chunks/Bzak7iHL.js";import{d as We,s as C,b as fe,o as et,a as tt}from"../chunks/DAau0uzT.js";import{p as $e,aS as it,aH as ge,g as r,a as w,b as Ye,u as q,c as d,r as u,X as p,Y as $,s as F,f as S,d as re,e as Ne,af as we}from"../chunks/CGq8RnJq.js";import{i as J}from"../chunks/Ccqjq5DS.js";import{e as Ce,i as je,s as Se,r as rt}from"../chunks/DqfV0sZu.js";import{P as st,A as Te,a as Ie,r as nt}from"../chunks/B9l3DI-J.js";import{b as at}from"../chunks/DGM4cicq.js";import{s as Ee}from"../chunks/uCQU803Y.js";import{s as Pe}from"../chunks/HFGAk8XQ.js";import{p as lt}from"../chunks/DV6OI5iy.js";import{N as ot}from"../chunks/CcUbQ_Wl.js";import{I as ct}from"../chunks/CKbQrCJw.js";import{R as ut}from"../chunks/Cqe0su6e.js";import{r as ke,M as dt,R as Ve,I as mt,m as ft}from"../chunks/BMB5u1EX.js";import{a as pt}from"../chunks/D35IQVqe.js";function Qe(i){return i>=.92?"near-identical":i>=.8?"strong":"weak"}function De(i){const e=Qe(i);return e==="near-identical"?"var(--color-decay)":e==="strong"?"var(--color-warning)":"#fde047"}function vt(i){const e=Qe(i);return e==="near-identical"?"Near-identical":e==="strong"?"Strong match":"Weak match"}function gt(i){return i>.7?"#10b981":i>.4?"#f59e0b":"#ef4444"}function Xe(i){if(!i||i.length===0)return null;let e=i[0],s=Number.isFinite(e.retention)?e.retention:-1/0;for(let t=1;ts&&(e=a,s=n)}return e}function Ae(i){return i.map(e=>e.id).slice().sort().join("|")}function ht(i,e=80){if(!i)return"";const s=i.trim().replace(/\s+/g," ");return s.length<=e?s:s.slice(0,e)+"…"}function He(i){if(!i||typeof i!="string")return"";const e=new Date(i);return Number.isNaN(e.getTime())?"":e.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}function bt(i,e=4){return Array.isArray(i)?i.slice(0,e):[]}var yt=S('REVIEW REQUIRED · NOT SAFE TO MERGE'),xt=S(" "),_t=S('WINNER'),wt=S(' '),St=S('
        '),Pt=S('

        '),kt=S('
        '),Bt=S('
        ');function Mt(i,e){$e(e,!0);let s=lt(e,"oversized",3,!1),t=re(!1);const a=12,n=q(()=>Xe(e.memories)),o=q(()=>{if(e.memories.length<=a)return e.memories;const c=e.memories.filter(y=>{var T;return y.id!==((T=r(n))==null?void 0:T.id)});return r(n)?[r(n),...c.slice(0,a-1)]:c.slice(0,a)}),m=q(()=>e.memories.length-r(o).length);var v=it(),x=ge(v);{var L=c=>{var y=Bt(),T=d(y),P=d(T),H=d(P),g=d(H),h=d(g);u(g);var M=p(g,2),z=d(M,!0);u(M);var Y=p(M,2),K=d(Y);u(Y),u(H);var O=p(H,2),k=d(O);u(O),u(P);var R=p(P,2);{var te=B=>{var b=yt();w(B,b)},ee=B=>{var b=xt(),j=d(b);u(b),$(()=>{Ee(b,1,`flex-shrink-0 rounded-full border px-3 py-1 text-xs font-medium ${e.suggestedAction==="merge"?"border-recall/40 bg-recall/10 text-recall":"border-dream-glow/40 bg-dream/10 text-dream-glow"}`),C(j,`Classification: ${e.suggestedAction==="merge"?"merge candidate":"review"}`)}),w(B,b)};J(R,B=>{s()?B(te):B(ee,!1)})}u(T);var Z=p(T,2),se=d(Z);Ce(se,17,()=>r(o),B=>B.id,(B,b)=>{var j=Pt(),ae=d(j),le=p(ae,2),oe=d(le),ce=d(oe),l=d(ce,!0);u(ce);var f=p(ce,2);{var _=W=>{var X=_t();w(W,X)};J(f,W=>{r(b).id===r(n).id&&W(_)})}var A=p(f,2);Ce(A,17,()=>bt(r(b).tags,4),je,(W,X)=>{var de=wt(),Le=d(de,!0);u(de),$(()=>C(Le,r(X))),w(W,de)}),u(oe);var G=p(oe,2),N=d(G,!0);u(G);var E=p(G,2);{var I=W=>{var X=St(),de=d(X,!0);u(X),$(Le=>C(de,Le),[()=>He(r(b).createdAt)]),w(W,X)},V=q(()=>He(r(b).createdAt));J(E,W=>{r(V)&&W(I)})}u(le);var Q=p(le,2),U=d(Q),me=d(U);u(U);var _e=p(U,2),ue=d(_e);u(_e),u(Q),u(j),$((W,X,de)=>{Ee(j,1,`group flex items-start gap-3 rounded-xl border border-synapse/5 bg-white/[0.02] p-3 transition-all duration-200 hover:border-synapse/20 hover:bg-white/[0.04] ${r(b).id===r(n).id?"ring-1 ring-recall/30":""}`),Pe(ae,`background: ${(ot[r(b).nodeType]||"#8B95A5")??""}`),Se(ae,"title",r(b).nodeType),C(l,r(b).nodeType),Ee(G,1,`text-sm text-text leading-relaxed ${r(t)?"whitespace-pre-wrap":""}`),C(N,W),Pe(me,`width: ${r(b).retention*100}%; background: ${X??""}`),C(ue,`${de??""}%`)},[()=>r(t)?r(b).content:ht(r(b).content),()=>gt(r(b).retention),()=>(r(b).retention*100).toFixed(0)]),w(B,j)});var pe=p(se,2);{var ie=B=>{var b=kt(),j=d(b);u(b),$(()=>C(j,`+${r(m)??""} linked candidates — oversized similarity component. Members + chain through pairwise similarity; distant members may be unrelated. Raise + the threshold to split it.`)),w(B,b)};J(pe,B=>{r(m)>0&&B(ie)})}u(Z);var be=p(Z,2),ye=d(be),ne=p(ye,2),Re=d(ne,!0);u(ne);var xe=p(ne,2);u(be),u(y),$((B,b,j,ae,le,oe,ce)=>{Pe(g,`color: ${B??""}`),C(h,`${b??""}%`),C(z,j),C(K,`· ${e.memories.length??""} memories`),Se(O,"aria-valuenow",ae),Pe(k,`width: ${le??""}%; background: ${oe??""}; box-shadow: 0 0 12px ${ce??""}66`),Se(ye,"title",s()?"Oversized similarity component — not safe to merge":"Merge backend not shipped yet — no destructive action is taken from this screen"),Se(ne,"aria-expanded",r(t)),C(Re,r(t)?"Collapse":"Review")},[()=>De(e.similarity),()=>(e.similarity*100).toFixed(1),()=>vt(e.similarity),()=>Math.round(e.similarity*100),()=>(e.similarity*100).toFixed(1),()=>De(e.similarity),()=>De(e.similarity)]),fe("click",ne,()=>F(t,!r(t))),fe("click",xe,function(...B){var b;(b=e.onDismiss)==null||b.apply(this,B)}),w(c,y)};J(x,c=>{e.memories.length>0&&r(n)&&c(L)})}w(i,v),Ye()}We(["click"]);const Be="rgba16float",ve=512,Me=512,Oe=16,Ue=16,qe=` +struct Params { + frame: f32, + loop_phase: f32, + node_count: f32, + edge_count: f32, + path_count: f32, + pulse: f32, + viewport_w: f32, + viewport_h: f32, + brightness: f32, + demo_id: f32, + time: f32, + capture_mode: f32, + live_kind: f32, + live_frame: f32, + live_energy: f32, + projection_days: f32, +}; + +struct FusionCell { + // x/y position in NDC, z retention, w winner flag + pos_retention: vec4f, + // x similarity, y threshold, z member slot, w cluster slot + cluster_meta: vec4f, + // x mismatch intensity, y merge flag, z radius, w member count + visual_meta: vec4f, + // x cell index, y cluster index, z/w spare + ids: vec4f, +}; + +struct FusionNeck { + // x/y winner position, z winner retention, w winner radius + a: vec4f, + // x/y candidate position, z candidate retention, w candidate radius + b: vec4f, + // x similarity, y threshold, z mismatch intensity, w merge flag + signals: vec4f, + // x neck index, y cluster index, z/w spare + ids: vec4f, +}; +`,At=` +${qe} + +@group(0) @binding(0) var params: Params; +@group(0) @binding(1) var cells: array; +@group(0) @binding(2) var necks: array; + +const QUAD = array( + vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0), + vec2f(-1.0, -1.0), vec2f(1.0, 1.0), vec2f(-1.0, 1.0) +); + +struct VSOut { + @builtin(position) clip: vec4f, + @location(0) uv: vec2f, + @location(1) @interpolate(flat) misc: vec4f, +}; + +fn similarity_neck(similarity: f32) -> f32 { + return smoothstep(0.78, 0.98, similarity); +} + +@vertex +fn vs_splat(@builtin(vertex_index) vi: u32, @builtin(instance_index) ii: u32) -> VSOut { + var out: VSOut; + let corner = QUAD[vi]; + let cell_count = u32(params.node_count); + if (ii < cell_count) { + let c = cells[ii]; + let merge_gate = c.visual_meta.y; + let radius = c.visual_meta.z * (1.0 + 0.045 * sin(params.time * 2.0 + c.cluster_meta.w * 6.28318)); + out.clip = vec4f(c.pos_retention.xy + corner * radius, 0.0, 1.0); + out.uv = corner; + out.misc = vec4f(c.pos_retention.z, c.cluster_meta.x, c.visual_meta.x, merge_gate); + } else { + let n = necks[ii - cell_count]; + let a = n.a.xy; + let b = n.b.xy; + let center = (a + b) * 0.5; + let dir = normalize(b - a + vec2f(0.0001, 0.0001)); + let normal = vec2f(-dir.y, dir.x); + let fused = similarity_neck(n.signals.x); + let length_half = distance(a, b) * 0.5; + let thickness = 0.035 + fused * 0.085 + n.signals.z * 0.025; + let pos = center + dir * corner.x * length_half + normal * corner.y * thickness; + out.clip = vec4f(pos, 0.0, 1.0); + out.uv = vec2f(corner.x, corner.y / max(0.001, thickness)); + out.misc = vec4f(n.signals.x, fused, n.signals.z, n.signals.w); + } + return out; +} + +@fragment +fn fs_splat(frag: VSOut) -> @location(0) vec4f { + let d = length(frag.uv); + let is_neck = f32(abs(frag.uv.y) > 1.0); + if (is_neck < 0.5 && d > 1.0) { discard; } + let retention = clamp(frag.misc.x, 0.0, 1.0); + let similarity = clamp(frag.misc.y, 0.0, 1.0); + let mismatch = clamp(frag.misc.z, 0.0, 1.0); + let merge_gate = frag.misc.w; + let cell_body = exp(-d * d * 3.15) * (0.38 + retention * 0.62) * (0.5 + similarity * 0.58); + let cell_rim = smoothstep(0.24, 0.02, abs(d - (0.58 + retention * 0.16))) * (0.2 + similarity * 0.55); + let neck_body = exp(-frag.uv.y * frag.uv.y * 4.0) * smoothstep(1.05, 0.82, abs(frag.uv.x)) * (0.35 + similarity * 0.9); + let density = max(cell_body + cell_rim, neck_body * (0.4 + similarity)); + // r=density, g=retention/luciferin, b=mismatch amber, a reserved. No storage textures. + return vec4f(density, density * (0.35 + retention * 0.65), mismatch * (0.18 + merge_gate * 0.12), 1.0); +} + +@vertex +fn vs_cell(@builtin(vertex_index) vi: u32, @builtin(instance_index) ii: u32) -> VSOut { + var out: VSOut; + let c = cells[ii]; + let corner = QUAD[vi]; + let winner = c.pos_retention.w; + let radius = c.visual_meta.z * (0.46 + winner * 0.18); + out.clip = vec4f(c.pos_retention.xy + corner * radius, 0.0, 1.0); + out.uv = corner; + out.misc = vec4f(c.pos_retention.z, c.cluster_meta.x, c.visual_meta.x, winner); + return out; +} + +@fragment +fn fs_cell(frag: VSOut) -> @location(0) vec4f { + let d = length(frag.uv); + if (d > 1.0) { discard; } + let retention = clamp(frag.misc.x, 0.0, 1.0); + let similarity = clamp(frag.misc.y, 0.0, 1.0); + let mismatch = clamp(frag.misc.z, 0.0, 1.0); + let winner = frag.misc.w; + let sediment = vec3f(0.54, 0.29, 0.09); + let recall = vec3f(0.16, 0.95, 0.66); + let luciferin = vec3f(0.91, 1.0, 0.72); + let ivory = vec3f(0.96, 0.945, 0.815); + let amber = vec3f(1.0, 0.69, 0.08); + let core = mix(sediment, mix(recall, luciferin, retention), retention); + let rim = smoothstep(0.98, 0.72, d) * (1.0 - smoothstep(0.72, 0.22, d)); + let body = exp(-d*d*3.2) * (0.20 + retention * 0.44 + winner * 0.16); + let mismatch_ring = smoothstep(0.16, 0.0, abs(d - 0.80)) * mismatch; + return vec4f(core * body + ivory * rim * (0.16 + similarity * 0.52) + amber * mismatch_ring * 0.34, 1.0); +} + +@vertex +fn vs_neck(@builtin(vertex_index) vi: u32, @builtin(instance_index) ii: u32) -> VSOut { + var out: VSOut; + let n = necks[ii]; + let a = n.a.xy; + let b = n.b.xy; + let t = f32(vi / 2u) / 31.0; + let side = f32(vi % 2u) * 2.0 - 1.0; + let dir = normalize(b - a + vec2f(0.0001, 0.0001)); + let normal = vec2f(-dir.y, dir.x); + let midpoint = (a + b) * 0.5; + let fused = similarity_neck(n.signals.x); + let threshold_pull = clamp(n.signals.x - n.signals.y + 0.22, 0.0, 1.0); + let bow = normal * sin(t * 3.14159) * (0.030 + n.signals.z * 0.050) * (1.0 - fused * 0.35); + let pos = mix(a, b, t) + bow; + let thickness = 0.005 + fused * 0.025 + threshold_pull * 0.010; + out.clip = vec4f(pos + normal * side * thickness, 0.0, 1.0); + out.uv = vec2f(t, side); + out.misc = vec4f(n.signals.x, n.signals.y, n.signals.z, distance(pos, midpoint)); + return out; +} + +@fragment +fn fs_neck(frag: VSOut) -> @location(0) vec4f { + let similarity = clamp(frag.misc.x, 0.0, 1.0); + let threshold = clamp(frag.misc.y, 0.0, 1.0); + let mismatch = clamp(frag.misc.z, 0.0, 1.0); + let pulse = 0.55 + 0.45 * sin(36.0 * frag.uv.x - 8.0 * frag.misc.w); + let bridge = vec3f(0.10, 0.82, 0.92); + let luciferin = vec3f(0.91, 1.0, 0.72); + let amber = vec3f(1.0, 0.69, 0.08); + let pull = smoothstep(-0.08, 0.20, similarity - threshold); + let color = mix(bridge, luciferin, pull) + amber * mismatch * pulse * 0.34; + return vec4f(color * (0.14 + similarity * 0.55 + mismatch * 0.18), 1.0); +} +`,Gt=` +${qe} + +@group(0) @binding(0) var params: Params; +@group(0) @binding(3) var field_sampler: sampler; +@group(0) @binding(4) var field_tex: texture_2d; + +const QUAD = array( + vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0), + vec2f(-1.0, -1.0), vec2f(1.0, 1.0), vec2f(-1.0, 1.0) +); + +struct VSOut { @builtin(position) clip: vec4f, @location(0) uv: vec2f }; + +@vertex +fn vs_fullscreen(@builtin(vertex_index) vi: u32) -> VSOut { + var out: VSOut; + let p = QUAD[vi]; + out.clip = vec4f(p, 0.0, 1.0); + out.uv = p * 0.5 + vec2f(0.5); + return out; +} + +@fragment +fn fs_membrane(frag: VSOut) -> @location(0) vec4f { + let f = textureSample(field_tex, field_sampler, frag.uv); + let density = clamp(f.r, 0.0, 5.0); + let retention = clamp(f.g, 0.0, 5.0); + let mismatch = clamp(f.b, 0.0, 3.0); + let membrane = smoothstep(0.13, 0.88, density) * (1.0 - smoothstep(1.9, 3.8, density)); + let blackwater = vec3f(0.008, 0.012, 0.018); + let bridge = vec3f(0.10, 0.82, 0.92); + let luciferin = vec3f(0.66, 1.0, 0.37); + let ivory = vec3f(0.96, 0.945, 0.815); + let amber = vec3f(1.0, 0.69, 0.08); + var color = blackwater * (0.18 + density * 0.055); + color = color + bridge * density * 0.055 + luciferin * retention * 0.080; + color = color + ivory * membrane * 0.22 + amber * mismatch * (0.20 + 0.08 * params.pulse); + let vignette = smoothstep(0.96, 0.18, distance(frag.uv, vec2f(0.5))); + return vec4f(color * (0.35 + 0.65 * vignette) * params.brightness, 1.0); +} +`,Ct=` +struct BlurDir { dir: vec2f, _pad: vec2f }; +@group(0) @binding(0) var blur_sampler: sampler; +@group(0) @binding(1) var blur_src: texture_2d; +@group(0) @binding(2) var blur_dir: BlurDir; +const QUAD = array( + vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0), + vec2f(-1.0, -1.0), vec2f(1.0, 1.0), vec2f(-1.0, 1.0) +); +struct VSOut { @builtin(position) clip: vec4f, @location(0) uv: vec2f }; +@vertex +fn vs_fullscreen(@builtin(vertex_index) vi: u32) -> VSOut { + var out: VSOut; + let p = QUAD[vi]; + out.clip = vec4f(p, 0.0, 1.0); + out.uv = p * 0.5 + vec2f(0.5); + return out; +} +@fragment +fn fs_blur(frag: VSOut) -> @location(0) vec4f { + let dims = vec2f(textureDimensions(blur_src, 0)); + let stepv = blur_dir.dir / max(dims, vec2f(1.0)); + var acc = textureSampleLevel(blur_src, blur_sampler, frag.uv - stepv * 2.0, 0.0) * 0.06136; + acc = acc + textureSampleLevel(blur_src, blur_sampler, frag.uv - stepv, 0.0) * 0.24477; + acc = acc + textureSampleLevel(blur_src, blur_sampler, frag.uv, 0.0) * 0.38774; + acc = acc + textureSampleLevel(blur_src, blur_sampler, frag.uv + stepv, 0.0) * 0.24477; + acc = acc + textureSampleLevel(blur_src, blur_sampler, frag.uv + stepv * 2.0, 0.0) * 0.06136; + return acc; +} +`;class Rt{constructor(e,s){D(this,"engine");D(this,"scene",null);D(this,"resources",null);D(this,"sampler",null);D(this,"splatBindLayout",null);D(this,"blurBindLayout",null);D(this,"membraneBindLayout",null);D(this,"splatPipeline",null);D(this,"blurPipeline",null);D(this,"membranePipeline",null);D(this,"cellPipeline",null);D(this,"neckPipeline",null);D(this,"cellCount",0);D(this,"neckCount",0);D(this,"cellGeometry",[]);D(this,"neckGeometry",[]);this.engine=e,this.uploadScene(s)}uploadScene(e){this.scene=e,this.buildGeometry();const s=this.engine.gpuDevice;s&&(this.ensurePipelines(s),this.ensureResources(s),this.uploadBuffers(s))}ensurePipelines(e){if(this.splatPipeline||!this.engine.paramsBuffer)return;const s=Fe(e,"duplicates-fusion-splat-wgsl",At),t=Fe(e,"duplicates-fusion-blur-wgsl",Ct),a=Fe(e,"duplicates-fusion-membrane-wgsl",Gt);this.splatBindLayout=e.createBindGroupLayout({label:"duplicates-fusion-splat-bind-layout",entries:[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}},{binding:1,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage"}},{binding:2,visibility:GPUShaderStage.VERTEX,buffer:{type:"read-only-storage"}}]}),this.blurBindLayout=e.createBindGroupLayout({label:"duplicates-fusion-blur-bind-layout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:2,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}}]}),this.membraneBindLayout=e.createBindGroupLayout({label:"duplicates-fusion-membrane-bind-layout",entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,buffer:{type:"uniform"}},{binding:3,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}},{binding:4,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}}]});const n=e.createPipelineLayout({label:"duplicates-fusion-splat-layout",bindGroupLayouts:[this.splatBindLayout]}),o=e.createPipelineLayout({label:"duplicates-fusion-blur-layout",bindGroupLayouts:[this.blurBindLayout]}),m=e.createPipelineLayout({label:"duplicates-fusion-membrane-layout",bindGroupLayouts:[this.membraneBindLayout]});this.sampler=e.createSampler({magFilter:"linear",minFilter:"linear"});const v={color:{srcFactor:"one",dstFactor:"one",operation:"add"},alpha:{srcFactor:"one",dstFactor:"one",operation:"add"}};this.splatPipeline=e.createRenderPipeline({label:"duplicates-field-additive-splat",layout:n,vertex:{module:s,entryPoint:"vs_splat"},fragment:{module:s,entryPoint:"fs_splat",targets:[{format:Be,blend:v}]},primitive:{topology:"triangle-list"}}),this.blurPipeline=e.createRenderPipeline({label:"duplicates-field-blur-render-pass",layout:o,vertex:{module:t,entryPoint:"vs_fullscreen"},fragment:{module:t,entryPoint:"fs_blur",targets:[{format:Be}]},primitive:{topology:"triangle-list"}}),this.membranePipeline=e.createRenderPipeline({label:"duplicates-synaptic-fusion-membrane",layout:m,vertex:{module:a,entryPoint:"vs_fullscreen"},fragment:{module:a,entryPoint:"fs_membrane",targets:[{format:this.engine.sceneFormat,blend:v}]},primitive:{topology:"triangle-list"}}),this.cellPipeline=e.createRenderPipeline({label:"duplicates-memory-nuclei",layout:n,vertex:{module:s,entryPoint:"vs_cell"},fragment:{module:s,entryPoint:"fs_cell",targets:[{format:this.engine.sceneFormat,blend:v}]},primitive:{topology:"triangle-list"}}),this.neckPipeline=e.createRenderPipeline({label:"duplicates-mismatch-filaments",layout:n,vertex:{module:s,entryPoint:"vs_neck"},fragment:{module:s,entryPoint:"fs_neck",targets:[{format:this.engine.sceneFormat,blend:v}]},primitive:{topology:"triangle-strip"}})}ensureResources(e){var M,z,Y,K,O,k;if(!this.splatBindLayout||!this.blurBindLayout||!this.membraneBindLayout||!this.engine.paramsBuffer||!this.sampler)return;const s=Math.max(16,Math.floor((this.engine.params[6]||1280)/2)),t=Math.max(16,Math.floor((this.engine.params[7]||720)/2)),a=!this.resources||this.resources.fieldSize[0]!==s||this.resources.fieldSize[1]!==t;let n=(M=this.resources)==null?void 0:M.cellBuffer,o=(z=this.resources)==null?void 0:z.neckBuffer,m=(Y=this.resources)==null?void 0:Y.blurHBuffer,v=(K=this.resources)==null?void 0:K.blurVBuffer;if(n||(n=e.createBuffer({label:"duplicates-cells",size:ve*Oe*4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST})),o||(o=e.createBuffer({label:"duplicates-necks",size:Me*Ue*4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST})),m||(m=e.createBuffer({label:"duplicates-blur-h-dir",size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),e.queue.writeBuffer(m,0,new Float32Array([1,0,0,0]))),v||(v=e.createBuffer({label:"duplicates-blur-v-dir",size:16,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),e.queue.writeBuffer(v,0,new Float32Array([0,1,0,0]))),!a&&this.resources)return;(O=this.resources)==null||O.fieldA.destroy(),(k=this.resources)==null||k.fieldB.destroy();const x=GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING,L=e.createTexture({label:"duplicates-field-a-rgba16float",size:[s,t],format:Be,usage:x}),c=e.createTexture({label:"duplicates-field-b-rgba16float",size:[s,t],format:Be,usage:x}),y=L.createView(),T=c.createView(),P=e.createBindGroup({label:"duplicates-fusion-splat-bind",layout:this.splatBindLayout,entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:1,resource:{buffer:n}},{binding:2,resource:{buffer:o}}]}),H=e.createBindGroup({label:"duplicates-field-blur-h-bind",layout:this.blurBindLayout,entries:[{binding:0,resource:this.sampler},{binding:1,resource:y},{binding:2,resource:{buffer:m}}]}),g=e.createBindGroup({label:"duplicates-field-blur-v-bind",layout:this.blurBindLayout,entries:[{binding:0,resource:this.sampler},{binding:1,resource:T},{binding:2,resource:{buffer:v}}]}),h=e.createBindGroup({label:"duplicates-membrane-bind",layout:this.membraneBindLayout,entries:[{binding:0,resource:{buffer:this.engine.paramsBuffer}},{binding:3,resource:this.sampler},{binding:4,resource:y}]});this.resources={cellBuffer:n,neckBuffer:o,blurHBuffer:m,blurVBuffer:v,splatBindGroup:P,blurHBindGroup:H,blurVBindGroup:g,membraneBindGroup:h,fieldA:L,fieldB:c,fieldAView:y,fieldBView:T,fieldSize:[s,t]}}buildGeometry(){var x,L;const e=((x=this.scene)==null?void 0:x.clusters)??[],s=Math.max(1,e.length),t=[],a=[],n=12,o=new Array(e.length).fill(0);let m=ve;for(let c=0;c0;c++)o[c]=1,m-=1;for(let c=0;c0;c++)o[c]===1&&e[c].memories.length>=2&&(o[c]=2,m-=1);let v=!0;for(;m>0&&v;){v=!1;for(let c=0;c0;c++)o[c]>0&&o[c]k.id===y.winnerId)??y.memories[0],z=[M,...y.memories.filter(k=>k.id!==M.id)].slice(0,o[c]),Y=Math.max(1,z.length),K=new Map;for(let k=0;k=Me||k.id===M.id)continue;const R=K.get(k.id);R&&a.push({cluster:y,winnerId:M.id,candidateId:k.id,ax:O.x,ay:O.y,bx:R.x,by:R.y,winnerRetention:O.retention,candidateRetention:R.retention,winnerRadius:O.radius,candidateRadius:R.radius,mismatch:Math.max(R.mismatch,Math.min(1,y.mismatchTokens.length/12))})}}this.cellGeometry=t,this.neckGeometry=a}uploadBuffers(e){if(!this.resources)return;const s=new Float32Array(ve*Oe),t=new Float32Array(Me*Ue);this.cellCount=Math.min(ve,this.cellGeometry.length),this.neckCount=Math.min(Me,this.neckGeometry.length);for(let a=0;a0&&(e.setPipeline(this.neckPipeline),e.setBindGroup(0,this.resources.splatBindGroup),e.draw(64,this.neckCount)),this.cellCount>0&&(e.setPipeline(this.cellPipeline),e.setBindGroup(0,this.resources.splatBindGroup),e.draw(6,this.cellCount)))}pickAt(e,s){for(let t=0;t{for(const n of a.messages)console.error(`[observatory] ${e} WGSL ${n.type} ${n.lineNum}:${n.linePos} ${n.message}`)}),i.popErrorScope().then(a=>{a&&console.error(`[observatory] ${e} shader module validation: ${a.message}`)}),t}function Tt(i,e){return ke(dt.blackwater),ke(Ve.recall),ke(Ve.luciferin),ke(mt.trustMembrane),[new Rt(i,e)]}function he(i){return Math.max(0,Math.min(1,Number.isFinite(i)?i:0))}function Ge(i,e,s){return s?{kind:i,id:e,scalar:s}:{kind:i,id:e||`${i}:unknown`}}function Et(i,e){return{kind:"scalar",id:`duplicates.${i}`,scalar:{name:i,value:e}}}function Dt(i,e=84){const s=(i||"").trim().replace(/\s+/g," ");return s.length<=e?s:`${s.slice(0,e)}…`}function Ke(i){return(i||"").toLowerCase().replace(/[^a-z0-9_\s-]/g," ").split(/\s+/).filter(e=>e.length>=4).slice(0,80)}function Ot(i){if(i.length<2)return[];const e=i.map(t=>new Set(Ke(t.content))),s=new Map;for(const t of e)for(const a of t)s.set(a,(s.get(a)??0)+1);return Array.from(s.entries()).filter(([,t])=>t>0&&ta[1]-t[1]||t[0].localeCompare(a[0])).slice(0,12).map(([t])=>t)}function Ut(i,e,s){const t=Array.isArray(i.memories)?i.memories.filter(m=>m.id):[];if(t.length<2)return null;const a=Ae(t),n=Xe(t),o=Ot(t);return{id:a,index:e,similarity:he(i.similarity),threshold:he(s),suggestedAction:i.suggestedAction==="merge"?"merge":"review",winnerId:(n==null?void 0:n.id)??t[0].id,memories:t.map((m,v)=>({...m,index:v,preview:Dt(m.content),winner:m.id===((n==null?void 0:n.id)??t[0].id),mismatchTokens:o.filter(x=>Ke(m.content).includes(x)).slice(0,8)})),mismatchTokens:o,source:Ge("pair",a)}}function Ft(i){var H;const e=he(i.threshold??.8),t=(Array.isArray(i.clusters)?i.clusters:[]).map((g,h)=>Ut(g,h,e)).filter(g=>g!==null);let a=0;const n=[],o=new Map;for(const g of t)for(const h of g.memories){if(o.has(h.id))continue;const M=a++;o.set(h.id,M),n.push({source:Ge("memory",h.id),index:M,label:h.preview||h.id.slice(0,8),retention:he(h.retention),trust:he(g.similarity),lastAccessed:h.createdAt,tags:[h.nodeType,...h.tags,h.winner?"winner":"candidate"].filter(Boolean),type:h.nodeType||"memory"})}const m=[];for(const g of t){const h=o.get(g.winnerId);if(h!=null)for(const M of g.memories){const z=o.get(M.id);z==null||z===h||m.push({source:Ge("pair",`${g.id}:${g.winnerId}:${M.id}`),sourceIndex:h,targetIndex:z,weight:Math.max(.05,g.similarity),kind:g.suggestedAction==="merge"?"fusion-candidate":"review-candidate"})}}const v=t.map((g,h)=>({source:Ge("event",`duplicates.cluster.${g.id}`),type:g.suggestedAction==="merge"?"DuplicateMergeCandidate":"DuplicateReviewCandidate",targetIndex:-1,frame:20+h*14,energy:Math.max(.1,g.similarity-e+.1)})),x=Number.isFinite(i.total)?i.total:t.length,L=n.length,c=t.reduce((g,h)=>Math.max(g,h.similarity),0),y=t.filter(g=>g.suggestedAction==="merge").length,T=t.length-y;return{organ:"duplicates",nodes:n,edges:m,events:v,receipts:[],scalars:{threshold:((H=Et("threshold",e).scalar)==null?void 0:H.value)??e,clusterCount:t.length,memoryCount:L,maxSimilarity:c,mergeCandidates:y,reviewCandidates:T,total:x},alive:t.length>0,threshold:e,total:x,clusters:t,raw:i}}const zt=()=>{var i;return typeof window<"u"&&((i=window.matchMedia)==null?void 0:i.call(window,"(prefers-reduced-motion: reduce)").matches)};function ze(i){if(zt())return{};let e=0;function s(a){const n=i.getBoundingClientRect();cancelAnimationFrame(e),e=requestAnimationFrame(()=>{i.style.setProperty("--spot-x",`${a.clientX-n.left}px`),i.style.setProperty("--spot-y",`${a.clientY-n.top}px`),i.style.setProperty("--spot-o","1")})}function t(){i.style.setProperty("--spot-o","0")}return i.addEventListener("pointermove",s),i.addEventListener("pointerleave",t),{destroy(){i.removeEventListener("pointermove",s),i.removeEventListener("pointerleave",t),cancelAnimationFrame(e)}}}var Nt=S(' Live',1),It=S(' Detecting…',1),Vt=S(' Error',1),Ht=S(" ",1),Wt=S(" ",1),$t=S(' · memories implicated',1),Yt=S('
        Synaptic neck selected
        '),jt=S(`
        Couldn't detect duplicates
        `),Qt=S('
        '),Xt=S('
        '),qt=S('
        No duplicates found — your memory is clean.
        '),Kt=S('
        '),Zt=S('
        '),Jt=S('
        '),ei=S('
        ',1);function hi(i,e){$e(e,!0);let s=re(.8),t=re(Ne([])),a=re(0);const n=12;let o=re(Ne(new Set)),m=re(!0),v=re(null),x=re(null),L;async function c(){F(m,!0),F(v,null),F(x,null);try{const l=await pt.duplicates(r(s));F(t,l.clusters,!0),F(a,l.total??l.clusters.length,!0);const f=new Set(r(t).map(A=>Ae(A.memories))),_=new Set;for(const A of r(o))f.has(A)&&_.add(A);F(o,_,!0)}catch(l){F(v,l instanceof Error?l.message:"Failed to detect duplicates",!0),F(t,[],!0)}finally{F(m,!1)}}function y(){clearTimeout(L),L=setTimeout(c,250)}function T(l){const f=new Set(r(o));f.add(l),F(o,f,!0),r(x)&&Ae(r(x).memories)===l&&F(x,null)}const P=q(()=>r(t).map(l=>({c:l,key:Ae(l.memories)})).filter(({key:l})=>!r(o).has(l))),H=q(()=>r(t).reduce((l,f)=>l+f.memories.length,0)),g=50,h=q(()=>r(P).length>g),M=q(()=>r(h)?r(P).slice(0,g):r(P)),z=q(()=>Ft({threshold:r(s),total:r(P).length,clusters:r(P).map(({c:l})=>l)}));function Y(l){l.kind!=="duplicate-neck"&&l.kind!=="duplicate-memory"||F(x,l.payload,!0)}et(()=>c()),tt(()=>clearTimeout(L));var K=ei(),O=ge(K);{let l=q(()=>`synaptic-fusion:${r(s)}:${r(P).length}:${r(H)}`),f=q(()=>`NO DUPLICATES ABOVE ${(r(s)*100).toFixed(0)}% SIMILARITY`);ut(O,{organ:"duplicates",get seed(){return r(l)},get scene(){return r(z)},get passes(){return Tt},get loading(){return r(m)},get error(){return r(v)},get emptyLabel(){return r(f)},onpick:Y})}var k=p(O,2),R=d(k);st(R,{icon:"duplicates",title:"Memory Hygiene — Duplicate Detection",subtitle:"Cosine-similarity clustering over embeddings. Oversized similarity components are quarantined for review — they chain through pairwise similarity and are not safe to merge. Dismissed clusters are hidden for this session only.",accent:"synapse",children:(l,f)=>{var _=Nt();we(2),w(l,_)},$$slots:{default:!0}});var te=p(R,2),ee=d(te),Z=p(d(ee),2);rt(Z);var se=p(Z,2),pe=d(se);u(se),u(ee);var ie=p(ee,2),be=d(ie);{var ye=l=>{var f=It();we(2),w(l,f)},ne=l=>{var f=Vt();we(2),w(l,f)},Re=l=>{var f=$t(),_=p(ge(f),2),A=d(_);{var G=I=>{var V=Ht(),Q=ge(V);Te(Q,{get value(){return r(P).length}});var U=p(Q);$(()=>C(U,` visible of ${r(a)??""} clusters`)),w(I,V)},N=I=>{var V=Wt(),Q=ge(V);Te(Q,{get value(){return r(P).length}});var U=p(Q);$(()=>C(U,` ${r(P).length===1?"cluster":"clusters"}`)),w(I,V)};J(A,I=>{r(P).length{r(m)?l(ye):r(v)?l(ne,1):l(Re,!1)})}u(ie);var xe=p(ie,2);u(te);var B=p(te,2);{var b=l=>{var f=Yt(),_=d(f),A=d(_),G=p(d(A),2),N=d(G);u(G);var E=p(G,2),I=d(E);u(E),u(A);var V=p(A,2);u(_),u(f),$((Q,U,me)=>{C(N,`${r(x).memories.length??""} memories · ${Q??""}% similar · winner ${U??""}`),C(I,`Real pair key: ${r(x).id??""}. Mismatch filaments: ${me??""}.`)},[()=>(r(x).similarity*100).toFixed(1),()=>r(x).winnerId.slice(0,8),()=>r(x).mismatchTokens.length?r(x).mismatchTokens.join(", "):"none exposed"]),fe("click",V,()=>F(x,null)),w(l,f)};J(B,l=>{r(x)&&l(b)})}var j=p(B,2);{var ae=l=>{var f=jt(),_=p(d(f),2),A=d(_,!0);u(_);var G=p(_,2);u(f),$(()=>C(A,r(v))),fe("click",G,c),w(l,f)},le=l=>{var f=Xt();Ce(f,20,()=>Array(3),je,(_,A)=>{var G=Qt();w(_,G)}),u(f),w(l,f)},oe=l=>{var f=qt(),_=d(f),A=d(_);ct(A,{name:"sparkle",size:26,draw:!0}),u(_);var G=p(_,4),N=d(G);u(G),u(f),$(E=>C(N,`Nothing clusters above ${E??""}% similarity. Lower the threshold to + surface looser matches.`),[()=>(r(s)*100).toFixed(0)]),w(l,f)},ce=l=>{var f=Jt(),_=d(f);{var A=N=>{var E=Kt(),I=d(E);u(E),$(()=>C(I,`Showing first 50 of ${r(P).length??""} clusters. Raise the + threshold to narrow results.`)),w(N,E)};J(_,N=>{r(h)&&N(A)})}var G=p(_,2);Ce(G,19,()=>r(M),({c:N,key:E})=>E,(N,E,I)=>{let V=()=>r(E).c,Q=()=>r(E).key;var U=Zt(),me=d(U),_e=d(me);{let ue=q(()=>V().memories.length>n);Mt(_e,{get similarity(){return V().similarity},get memories(){return V().memories},get suggestedAction(){return V().suggestedAction},get oversized(){return r(ue)},onDismiss:()=>T(Q())})}u(me),u(U),Ie(U,(ue,W)=>{var X;return(X=nt)==null?void 0:X(ue,W)},()=>({delay:Math.min(r(I)*40,400),y:14})),Ie(U,ue=>ze==null?void 0:ze(ue)),w(N,U)}),u(f),w(l,f)};J(j,l=>{r(v)?l(ae):r(m)?l(le,1):r(P).length===0?l(oe,2):l(ce,!1)})}u(k),$(l=>{C(pe,`${l??""}%`),xe.disabled=r(m)},[()=>(r(s)*100).toFixed(0)]),fe("input",Z,y),at(Z,()=>r(s),l=>F(s,l)),fe("click",xe,c),w(i,K),Ye()}We(["input","click"]);export{hi as component}; diff --git a/apps/dashboard/build/_app/immutable/nodes/9.h0jHlQck.js.br b/apps/dashboard/build/_app/immutable/nodes/9.h0jHlQck.js.br new file mode 100644 index 0000000000000000000000000000000000000000..cca7fb6b1aeba28f96ece09cbe512d8ed4b5d0f3 GIT binary patch literal 11550 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/nodes/9.h0jHlQck.js.gz b/apps/dashboard/build/_app/immutable/nodes/9.h0jHlQck.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6257bb07f03035bc641b66d6f89a53d6ae5af29f GIT binary patch literal 12864 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 diff --git a/apps/dashboard/build/favicon.svg.gz b/apps/dashboard/build/favicon.svg.gz index 61b0904e2b195b2803d6069882799a179af3bef3..06ecd9bda872439ec89aee1792f5fc696c936d56 100644 GIT binary patch literal 457 zcmV;)0XF_0iwFP!000026Sb60Zo)7Sh4(#$8&s)XgxJmxP8C?Ri|%@dkl0|=jZqQ^ z+`cxpQ$j$6MI|I#(Y$Zo%(KXv-3si#Mb*r`b=z)UgP`lWX%|jqy$UddFi;g9*m2su z$^G1e0D=&!pSO4bAS)?r^hI6kyyUs~&Sq&UIGsx)Ahe5+%l?J{1Q= z9$;JuMT9xbQLfw6@{7*BZ7rTBs~7jd?|9j+m0}v3uGypSgHO7xa{($@(gyhc)o$?E z4J)l{XD0@7lNY>IHE^0*@F@UV05O1GZs$Lhld&A*EAntjFiZZDJNq~^%ThHCfZ#GE z!~U}|fY|of>VLF2++a2%c`P9%VpK)B6vl?9+|NY$Sik{ z&3V9POD_F>!Nc_Rnoe7~w{VrM6Bx1G_U~mw%O=)$V%R#Kp6!A;XAi@U&e=zw|HLL1 zjfZGGPLFo);T#%JHzL8M^hCU&O(V;2uUvhI4{j0FGybUWZ& literal 462 zcmV;<0Wtm`iwFP!000026Sb7hZk#X_h4*=iTaPNW3&1u%F%iz9U3AxXV89Sm7mo}X zn75BSw&^g;D9NI$YayTSo_mi)F&tZ%|H^*g=w%!aPf;{YQ#i$;(rrXB#?f$W5ga=) z{ZKPU7%;>XVv3$00E${PgE;^cx~#iW{xU`MBXl)KErM$1D8*k9R3~@PwptZHF^uW} zs%Zu>a%3);4?(4*(j4tdmZr@kif&&gcq7Q-ENh4t6w%t&*>vPx7geV#Db6NIW<8p! zIU)&yrjwGR9WHT6O4CNGKZ2uIEx+yB@BTwDb@lkd5eZY;8{h0CVlB)BhV^R0+%Tl|H-SKe-EN(p=#EO@ImJr|NrAjh*V3Tx8b^n28t<8 diff --git a/apps/dashboard/build/index.html b/apps/dashboard/build/index.html index 53cd441..74f0b25 100644 --- a/apps/dashboard/build/index.html +++ b/apps/dashboard/build/index.html @@ -11,21 +11,17 @@ - - - - - - - - - + + + + + + + - - - - - + + + Vestige @@ -33,7 +29,7 @@
        {#if memories.length > 0 && winner} @@ -86,20 +96,32 @@
        - - - Suggested: {suggestedAction === 'merge' ? 'Merge' : 'Review'} - + + {#if oversized} + + REVIEW REQUIRED · NOT SAFE TO MERGE + + {:else} + + + Classification: {suggestedAction === 'merge' ? 'merge candidate' : 'review'} + + {/if} - +
        - {#each memories as memory (memory.id)} + {#each displayMemories as memory (memory.id)}
        + +{hiddenCount} linked candidates — oversized similarity component. Members + chain through pairwise similarity; distant members may be unrelated. Raise + the threshold to split it. +
        + {/if}
        - +
        -
        - - - -
        - - - Live bursts fired: {liveBurstsFired} - -
        - - -
        - {#if loading} -
        -
        -
        -

        Computing activation…

        -
        -
        - {:else if errorMessage} -
        -
        -
        -

        Activation failed

        -

        {errorMessage}

        -
        -
        - {:else if !focusedSource && searched} -
        -
        -
        -

        No matching memory

        -

        - Nothing in the graph matches - "{searchQuery}". Try a broader - query or switch on live mode to watch the engine fire its own - bursts. -

        -
        -
        - {:else if !focusedSource} -
        -
        -
        -

        Waiting for activation

        -

        - Seed a burst with the search bar above, or enable live mode to - overlay bursts from the cognitive engine as they happen. -

        -
        -
        - {:else} - - {/if} -
        - - - {#if focusedSource} -
        -
        - Seed -
        -

        {focusedSource.label}

        -
        - {focusedSource.nodeType} - {focusedNeighbours.length} neighbours -
        -
        - {/if} - + diff --git a/apps/dashboard/src/routes/(app)/blackbox/+page.svelte b/apps/dashboard/src/routes/(app)/blackbox/+page.svelte index bc521ec..59ebeb0 100644 --- a/apps/dashboard/src/routes/(app)/blackbox/+page.svelte +++ b/apps/dashboard/src/routes/(app)/blackbox/+page.svelte @@ -36,13 +36,17 @@ formatAt, relativeMs } from '$components/blackbox-helpers'; - import RouteStage, { type RoutePick } from '$lib/observatory/RouteStage.svelte'; + import RouteStage, { type RoutePick, type RouteFramePass } from '$lib/observatory/RouteStage.svelte'; import { createBlackboxPasses } from '$lib/observatory/blackbox/blackbox-pass'; import { normalizeBlackboxScene, type BlackboxScene, type BlackboxTraceImpulse } from '$lib/observatory/blackbox/blackbox-scene'; + import type { ObservatoryEngine } from '$lib/observatory/engine'; + import type { RouteSceneModel } from '$lib/observatory/route-scene'; + import { LivingFieldPass } from '$lib/observatory/field/living-field-pass'; + import { layoutGalaxy, FIELD_HUE, type FieldDatum } from '$lib/observatory/field/cell-layout'; // ---- state ---------------------------------------------------------- let runs = $state([]); @@ -138,16 +142,68 @@ }); onMount(loadRuns); + + // Every real agent run becomes a cell in the recorder's constellation behind + // the trace lanes: bigger = more events, scarlet = had a veto, amber = had a + // suppression, forward-cyan = clean. The field breathes even between runs. + let runsField: LivingFieldPass | null = null; + function buildRunCells() { + const maxEvents = Math.max(1, ...runs.map((r) => r.eventCount ?? 0)); + const data: FieldDatum[] = runs.slice(0, 200).map((r) => { + const load = clampLocal((r.eventCount ?? 0) / maxEvents); + const hue = + (r.vetoCount ?? 0) > 0 + ? FIELD_HUE.scarlet + : (r.suppressedCount ?? 0) > 0 + ? FIELD_HUE.caution + : FIELD_HUE.forward; + return { + id: r.runId, + score: 0.35 + 0.65 * load, + hue, + energy: 0.4 + 0.6 * load, + selected: r.runId === selectedRunId, + scar: (r.vetoCount ?? 0) > 0, + metric2: clampLocal((r.retrievedCount ?? 0) / Math.max(1, r.eventCount ?? 1)), + kind: 'trace-run', + payload: r + } satisfies FieldDatum; + }); + return layoutGalaxy(data, { maxRadius: 0.95, minCellR: 0.016, maxCellR: 0.06 }); + } + function clampLocal(v: number): number { + return Math.min(1, Math.max(0, Number.isFinite(v) ? v : 0)); + } + function createRecorderPasses(engine: ObservatoryEngine, scene: RouteSceneModel): RouteFramePass[] { + const field = new LivingFieldPass(engine); + runsField = field; + field.setCells(buildRunCells()); + const fieldWrapper: RouteFramePass = { + compute: (encoder) => field.compute(encoder), + render: (pass) => field.render(pass), + pickAt: (x, y) => field.pickAt(x, y), + dispose: () => { + field.dispose(); + if (runsField === field) runsField = null; + } + }; + return [fieldWrapper, ...createBlackboxPasses(engine, scene)]; + } + // Refresh the run constellation whenever the run list changes. + $effect(() => { + void runs.length; + runsField?.setCells(buildRunCells()); + }); @@ -553,9 +609,9 @@ } .glass { - background: color-mix(in oklab, var(--color-void, #050510) 55%, transparent); - border: 1px solid color-mix(in oklab, white 8%, transparent); - backdrop-filter: blur(12px); + background: linear-gradient(180deg, rgba(2, 3, 7, 0.26), rgba(0, 5, 16, 0.16)); + border: 1px solid color-mix(in oklab, var(--color-synapse) 16%, transparent); + backdrop-filter: blur(8px) saturate(122%); border-radius: 14px; } @@ -633,7 +689,7 @@ color: var(--color-recall, #10b981); } .s-suppress { - color: #a78bfa; + color: #b90d2b; } .s-write { color: #38bdf8; diff --git a/apps/dashboard/src/routes/(app)/contradictions/+page.svelte b/apps/dashboard/src/routes/(app)/contradictions/+page.svelte index fcd13d4..93a0780 100644 --- a/apps/dashboard/src/routes/(app)/contradictions/+page.svelte +++ b/apps/dashboard/src/routes/(app)/contradictions/+page.svelte @@ -5,8 +5,14 @@ import Dropdown, { type DropdownOption } from '$components/Dropdown.svelte'; import Icon from '$components/Icon.svelte'; import AnimatedNumber from '$components/AnimatedNumber.svelte'; - import RouteStage, { type RoutePick } from '$lib/observatory/RouteStage.svelte'; + import RouteStage, { type RoutePick, type RouteFramePass } from '$lib/observatory/RouteStage.svelte'; import { createContradictionsPasses } from '$lib/observatory/contradictions/contradictions-pass'; + import type { ObservatoryEngine } from '$lib/observatory/engine'; + import type { RouteSceneModel } from '$lib/observatory/route-scene'; + import { LivingFieldPass } from '$lib/observatory/field/living-field-pass'; + import { layoutGalaxy, FIELD_HUE, type FieldDatum } from '$lib/observatory/field/cell-layout'; + import { retentionColor } from '$lib/observatory/cognitive-palette'; + import type { Memory } from '$types'; import { normalizeContradictionsScene, type ContradictionsScene, @@ -55,6 +61,61 @@ onMount(() => load()); + // Patrolled tissue: the memory pool the immune system is watching. Even with + // zero standing contradictions the arena reads as living tissue (dim healthy + // cells), and any contradiction pair lights scarlet on top via the arcs pass. + let tissuePool = $state([]); + let tissueField: LivingFieldPass | null = null; + onMount(() => { + void api.memories + .list({ limit: '90' }) + .then((res) => { + tissuePool = res.memories; + tissueField?.setCells(buildTissueCells()); + }) + .catch(() => {}); + }); + + function buildTissueCells() { + const data: FieldDatum[] = tissuePool.map((m) => { + const retention = clamp01Local(m.retentionStrength); + // contradiction pairs (if any) will be marked scarlet by the arcs pass; + // here every cell is calm healthy tissue tinted by retention. + return { + id: m.id, + score: 0.3 + 0.4 * retention, + hue: retentionColor(retention), + energy: 0.16 + 0.3 * retention, + metric2: retention, + kind: 'immune-tissue', + payload: m + } satisfies FieldDatum; + }); + void FIELD_HUE; + return layoutGalaxy(data, { maxRadius: 0.95, minCellR: 0.012, maxCellR: 0.044 }); + } + + function clamp01Local(v: number): number { + return Math.min(1, Math.max(0, Number.isFinite(v) ? v : 0)); + } + + function createArenaPasses(engine: ObservatoryEngine, scene: RouteSceneModel): RouteFramePass[] { + const field = new LivingFieldPass(engine); + tissueField = field; + field.setCells(buildTissueCells()); + const fieldWrapper: RouteFramePass = { + compute: (encoder) => field.compute(encoder), + render: (pass) => field.render(pass), + pickAt: (x, y) => field.pickAt(x, y), + dispose: () => { + field.dispose(); + if (tissueField === field) tissueField = null; + } + }; + // Field FIRST (behind), then the real contradiction arcs/seams on top. + return [fieldWrapper, ...createContradictionsPasses(engine, scene)]; + } + // --- Filters --- type Filter = 'all' | 'recent' | 'high-trust' | 'topic'; let filter = $state('all'); @@ -183,10 +244,10 @@ organ="contradictions" seed={`immune-synapse-arena:${totalDetected}:${memoriesAnalyzed}`} scene={contradictionsScene} - passes={createContradictionsPasses} + passes={createArenaPasses} loading={loading} error={error} - emptyLabel="CALM IMMUNE FIELD — NO STANDING CONTRADICTIONS" + emptyLabel="CALM IMMUNE FIELD - NO STANDING CONTRADICTIONS" onpick={handleRoutePick} /> diff --git a/apps/dashboard/src/routes/(app)/dreams/+page.svelte b/apps/dashboard/src/routes/(app)/dreams/+page.svelte index d0a8abb..d9a2a55 100644 --- a/apps/dashboard/src/routes/(app)/dreams/+page.svelte +++ b/apps/dashboard/src/routes/(app)/dreams/+page.svelte @@ -1,504 +1,471 @@ - - Dream Cinema · Vestige + Dreams · Vestige -
        - - -
        - {#if dreaming} - - - Consolidating - - {:else if hasDream} - - - Cycle complete - - {/if} - - -
        -
        - - {#if error} -
        - - {error} -
        - {/if} - - {#if !hasDream && !dreaming} - -
        - -

        Nothing's been dreamt yet.

        -

        - Run a consolidation cycle and watch your episodic memories replay, - cross-reference, and crystallize into lasting semantic knowledge. -

        - -
        - {:else} - -
        -
        -
        - Stage {stage} · {STAGE_NAMES[stage - 1]} -
        -
        - - -
        -
        - - -
        - -
        - {#each STAGE_NAMES as name, i (name)} - - {/each} -
        -
        -
        - - -
        - - - - - -
        - - - {#if dreamResult} -
        -
        -
        {dreamResult.memoriesReplayed ?? 0}
        -
        Replayed
        -
        -
        -
        {dreamResult.stats?.newConnectionsFound ?? 0}
        -
        Connections Found
        -
        -
        -
        {dreamResult.connectionsPersisted ?? 0}
        -
        Connections Persisted
        -
        -
        -
        {dreamResult.stats?.insightsGenerated ?? 0}
        -
        Insights
        -
        -
        -
        {formatDurationMs(dreamResult.stats?.durationMs)}
        -
        Duration
        -
        -
        - {/if} - {/if} -
        - - + diff --git a/apps/dashboard/src/routes/(app)/duplicates/+page.svelte b/apps/dashboard/src/routes/(app)/duplicates/+page.svelte index 96f2e1a..087ea9c 100644 --- a/apps/dashboard/src/routes/(app)/duplicates/+page.svelte +++ b/apps/dashboard/src/routes/(app)/duplicates/+page.svelte @@ -26,6 +26,12 @@ let threshold = $state(0.8); let clusters: DuplicateClusterGroup[] = $state([]); + // Backend's own cluster count (res.total) — previously thrown away, which let + // the header mislabel the summed member count as "potential duplicates". + let apiTotal = $state(0); + // Above this member count a cluster is a similarity-CHAINED component (A~B~C~D + // with A likely unrelated to D), not a mergeable duplicate set → quarantine. + const OVERSIZED_MEMBERS = 12; // Dismissed clusters are tracked by stable identity (sorted member ids) so // dismissals survive a re-fetch. If the cluster membership changes, the key // changes and the cluster is treated as fresh. @@ -38,9 +44,13 @@ async function detect() { loading = true; error = null; + // A rerun invalidates any field selection — the inspector must never show a + // cluster that is no longer part of the current detection result. + selectedCluster = null; try { const res = await api.duplicates(threshold); clusters = res.clusters; + apiTotal = res.total ?? res.clusters.length; // Prune dismissals whose clusters no longer exist — prevents // unbounded growth across sessions and keeps the set honest. const presentKeys = new Set(clusters.map((c) => clusterKey(c.memories))); @@ -64,15 +74,17 @@ const next = new Set(dismissed); next.add(key); dismissed = next; + // If the dismissed cluster is the one in the field inspector, clear it — + // the inspector must not outlive the visible result set. + if (selectedCluster && clusterKey(selectedCluster.memories) === key) { + selectedCluster = null; + } } - function mergeCluster(key: string, winnerId: string, loserIds: string[]) { - // TODO: POST /api/duplicates/merge { winner, losers } when backend ships. - // For now we optimistically dismiss the cluster so the UI reflects the - // action and rerun counts stay consistent. - console.log('Merge cluster', key, { winnerId, loserIds }); - dismissCluster(key); - } + // NOTE: merge intentionally has NO handler. The old mergeCluster console.logged + // and optimistically dismissed — a fake success claiming destructive work + // happened. DuplicateCluster now renders a visibly-disabled "Merge unavailable" + // control until POST /api/duplicates/merge ships. const visibleClusters = $derived( clusters @@ -80,9 +92,10 @@ .filter(({ key }) => !dismissed.has(key)) ); - const totalDuplicates = $derived( - visibleClusters.reduce((sum, { c }) => sum + c.memories.length, 0) - ); + // Full implicated-memory count from the ENTIRE detection result — dismissal is + // session-local concealment, not removal, so the headline must not shrink when + // a cluster is hidden (GPT-5.6-sol cross-review). + const totalImplicated = $derived(clusters.reduce((sum, c) => sum + c.memories.length, 0)); // Cluster overflow: >50 would saturate the scroll. Show a warning and cap. const CLUSTER_RENDER_CAP = 50; @@ -110,7 +123,7 @@ -
        + +
        - - {visibleClusters.length === 1 ? 'cluster' : 'clusters'}, - potential duplicate{totalDuplicates === 1 - ? '' - : 's'} + {#if visibleClusters.length < apiTotal} + visible of {apiTotal} clusters + {:else} + + {visibleClusters.length === 1 ? 'cluster' : 'clusters'} + {/if} + · memories implicated {/if}
        @@ -275,8 +298,8 @@ similarity={c.similarity} memories={c.memories} suggestedAction={c.suggestedAction} + oversized={c.memories.length > OVERSIZED_MEMBERS} onDismiss={() => dismissCluster(key)} - onMerge={(winnerId, loserIds) => mergeCluster(key, winnerId, loserIds)} />
        diff --git a/apps/dashboard/src/routes/(app)/explore/+page.svelte b/apps/dashboard/src/routes/(app)/explore/+page.svelte index bffb591..4c0537d 100644 --- a/apps/dashboard/src/routes/(app)/explore/+page.svelte +++ b/apps/dashboard/src/routes/(app)/explore/+page.svelte @@ -1,273 +1,365 @@ -
        - + + Explore · Vestige + - -
        - {#each (['associations', 'chains', 'bridges'] as const) as m} - - {/each} -
        - - -
        - Source Memory -
        - e.key === 'Enter' && findSource()} - class="flex-1 px-4 py-2.5 bg-white/[0.03] border border-synapse/10 rounded-xl text-text text-sm - placeholder:text-muted focus:outline-none focus:border-synapse/40 transition backdrop-blur-sm" /> - -
        -
        - - {#if sourceMemory} -
        -
        Source
        -

        {sourceMemory.content.slice(0, 200)}

        -
        - {sourceMemory.nodeType} - {(sourceMemory.retentionStrength * 100).toFixed(0)}% retention -
        -
        - {/if} - - - {#if mode === 'chains' || mode === 'bridges'} -
        - Target Memory (for {mode}) -
        - e.key === 'Enter' && findTarget()} - class="flex-1 px-4 py-2.5 bg-white/[0.03] border border-synapse/10 rounded-xl text-text text-sm - placeholder:text-muted focus:outline-none focus:border-dream/40 transition backdrop-blur-sm" /> - -
        -
        - - {#if targetMemory} -
        -
        Target
        -

        {targetMemory.content.slice(0, 200)}

        -
        - {targetMemory.nodeType} - {(targetMemory.retentionStrength * 100).toFixed(0)}% retention -
        -
        - {/if} - {/if} - - - {#if sourceMemory} - {#if loading} -
        -
        - - Exploring {mode}… -
        -
        - {#each Array(4) as _, i} -
        -
        -
        -
        -
        -
        -
        - {/each} -
        -
        - {:else if associations.length > 0} -
        -
        -

        - - Connections Found -

        -
        -
        - {#each associations as assoc, i (i)} -
        -
        -
        - {i + 1} -
        -
        -

        {assoc.content}

        -
        - {#if assoc.nodeType}{assoc.nodeType}{/if} - {#if assoc.score}Score: {Number(assoc.score).toFixed(3)}{/if} - {#if assoc.similarity}Similarity: {Number(assoc.similarity).toFixed(3)}{/if} - {#if assoc.retention}{(Number(assoc.retention) * 100).toFixed(0)}% retention{/if} - {#if assoc.connectionType}{assoc.connectionType}{/if} -
        -
        -
        -
        - {/each} -
        -
        - {:else} -
        - -

        No connections surfaced yet

        -

        - {#if mode === 'associations'} - This memory hasn't formed strong links here. Try a broader source query — the graph rewards more general seeds. - {:else} - No {mode} found between these two memories. Pick a different source or target and the path may light up. - {/if} -

        -
        - {/if} - {/if} - - -
        -

        - - Importance Scorer -

        -

        4-channel neuroscience scoring: novelty, arousal, reward, attention

        - - - - {#if importanceResult} - {@const channels = importanceResult.channels as Record | undefined} - {@const composite = Number(importanceResult.composite || importanceResult.compositeScore || 0)} -
        -
        - - - {composite > 0.6 ? 'SAVE' : 'SKIP'} - -
        - {#if channels} -
        - {#each Object.entries(channels) as [channel, score]} -
        -
        {channel}
        -
        -
        -
        -
        {score.toFixed(2)}
        -
        - {/each} -
        - {/if} -
        - {/if} -
        + +
        +
        diff --git a/apps/dashboard/src/routes/(app)/feed/+page.svelte b/apps/dashboard/src/routes/(app)/feed/+page.svelte index c2b9c33..5a1161e 100644 --- a/apps/dashboard/src/routes/(app)/feed/+page.svelte +++ b/apps/dashboard/src/routes/(app)/feed/+page.svelte @@ -1,238 +1,287 @@ -
        - - - - {pill.label} - + + Feed · Vestige + - - - events - - - - - - {#if $eventFeed.length === 0} -
        - -

        Quiet for now.

        -

        - New memory activity will stream in here the moment it happens — the feed - wakes up the instant Vestige does. -

        -
        - {:else} -
        - {#each $eventFeed as event, i (i)} - {@const color = EVENT_TYPE_COLORS[event.type] || '#8B95A5'} -
        -
        - -
        -
        -
        - {event.type} - {#if event.data.timestamp} - {formatTime(String(event.data.timestamp))} - {/if} -
        -

        {eventSummary(event)}

        - {#if event.type === 'SearchPerformed'} -
        - -
        - {/if} -
        -
        - {/each} -
        - {/if} -
        - - + diff --git a/apps/dashboard/src/routes/(app)/graph/+page.svelte b/apps/dashboard/src/routes/(app)/graph/+page.svelte index 57c97e5..0fc2854 100644 --- a/apps/dashboard/src/routes/(app)/graph/+page.svelte +++ b/apps/dashboard/src/routes/(app)/graph/+page.svelte @@ -24,8 +24,49 @@ // page (its primary home) as a full-bleed takeover, like Memory Cinema. import ObservatoryStage from '$lib/observatory/ObservatoryStage.svelte'; import type { DemoMode } from '$lib/observatory/types'; + import type { ObservatoryEngine } from '$lib/observatory/engine'; + import { LivingFieldPass } from '$lib/observatory/field/living-field-pass'; + import { layoutGalaxy, type FieldDatum } from '$lib/observatory/field/cell-layout'; + import { retentionColor } from '$lib/observatory/cognitive-palette'; let graphData: GraphResponse | null = $state(null); + + // Dense real-memory galaxy layered on the recall-path field so the WebGPU + // graph renderer fills the frame like observatory (12% -> ~80%). Every cell is + // a real graph node; retention = oxygen; the recall-path scene shaders stay + // untouched (this is an ADDITIVE pass on top, not a scene-shader edit). + let graphFieldPass: LivingFieldPass | null = null; + function buildGraphFieldCells() { + const nodes = graphData?.nodes ?? []; + const data: FieldDatum[] = nodes.slice(0, 600).map((n) => { + const retention = clampGraph(n.retention); + return { + id: n.id, + score: retention, + hue: retentionColor(retention), + energy: 0.35 + 0.65 * retention, + selected: !!n.isCenter, + scar: (n.suppression_count ?? 0) > 0, + metric2: retention, + kind: 'graph-node', + payload: n + } satisfies FieldDatum; + }); + return layoutGalaxy(data, { maxRadius: 0.98, minCellR: 0.008, maxCellR: 0.036 }); + } + function clampGraph(v: number): number { + return Math.min(1, Math.max(0, Number.isFinite(v) ? v : 0)); + } + function handleFieldReady(engine: ObservatoryEngine) { + const field = new LivingFieldPass(engine); + graphFieldPass = field; + field.setCells(buildGraphFieldCells()); + engine.addPass(field); + } + $effect(() => { + void graphData?.nodes.length; + graphFieldPass?.setCells(buildGraphFieldCells()); + }); let selectedMemory: Memory | null = $state(null); let loading = $state(true); let error = $state(''); @@ -325,6 +366,7 @@ disown demo="recall-path" showSwitcher={false} onpick={onNodeSelect} + onready={handleFieldReady} />
        {:else} diff --git a/apps/dashboard/src/routes/(app)/importance/+page.svelte b/apps/dashboard/src/routes/(app)/importance/+page.svelte index 50451ec..c65fa6d 100644 --- a/apps/dashboard/src/routes/(app)/importance/+page.svelte +++ b/apps/dashboard/src/routes/(app)/importance/+page.svelte @@ -1,352 +1,269 @@ -
        - + + Importance · Vestige + - -
        -
        -

        Test Importance

        -

        - Paste any content below. Vestige scores it across 4 channels and - decides whether it is worth saving. -

        -
        - -
        -
        - -
        - - ⌘/Ctrl + Enter - {#if scoreError} - {scoreError} - {/if} -
        -
        - - -
        - {#if score} -
        -
        Composite
        -
        - -
        -
        - {#key radarKey} - - {/key} - - - {#if score.composite > 0.6} -
        -
        - - Save -
        -

        - Composite {(score.composite * 100).toFixed(0)}% > 60% threshold. - {#if topChannel} - Driven by {topChannel.key} — {CHANNEL_BLURBS[topChannel.key].high}. - {/if} -

        -
        - {:else} -
        -
        - - Skip -
        -

        - Composite {(score.composite * 100).toFixed(0)}% < 60% threshold. - {#if weakestChannel} - Weakest channel: {weakestChannel} — {CHANNEL_BLURBS[weakestChannel].low}. - {/if} -

        -
        - {/if} - {:else} -
        -
        - -
        -

        Type some content above to score its importance.

        -

        - Composite = 0.25·novelty + 0.30·arousal + 0.25·reward + 0.20·attention. - Threshold for save: 60%. -

        -
        - {/if} -
        -
        -
        - - -
        -
        -
        -

        - Top Important Memories This Week -

        -

        - Ranked by retention × reviews ÷ age. Click any card to open it. -

        -
        - -
        - - {#if loadingMemories} -
        - {#each Array(6) as _} -
        - {/each} -
        - {:else if memories.length === 0} -
        -
        - -
        -

        No standout memories yet

        -

        - As you capture decisions, wins, and discoveries, the most important ones - will rise to the top here — ranked by retention, reviews, and recency. -

        -
        - {:else} -
        - {#each memories as memory, i (memory.id)} - {@const ch = perMemoryScores[memory.id]} - - {/each} -
        - {/if} -
        + +
        +
        diff --git a/apps/dashboard/src/routes/(app)/intentions/+page.svelte b/apps/dashboard/src/routes/(app)/intentions/+page.svelte index 8fa0a06..8c04844 100644 --- a/apps/dashboard/src/routes/(app)/intentions/+page.svelte +++ b/apps/dashboard/src/routes/(app)/intentions/+page.svelte @@ -1,263 +1,256 @@ -
        - - - intentions - - + + Intentions · Vestige + - -
        -
        -
        -

        Prospective Memory

        - "Remember to do X when Y happens" -
        - - - -
        - - {#if loading} -
        - {#each Array(4) as _} -
        - {/each} -
        - {:else if intentions.length === 0} -
        -
        -

        - No {statusFilter === 'all' ? '' : statusFilter + ' '}intentions yet — say "Remind me…" in conversation and Vestige will hold the thought for you. -

        -
        - {:else} -
        - {#each intentions as intention, i (intention.id)} -
        -
        - -
        - -
        - -
        -

        {intention.content}

        -
        - - - {intention.status} - - - - {PRIORITY_LABELS[intention.priority] || 'normal'} priority - - - - {intention.trigger_type}: {summarizeTrigger(intention)} - - {#if intention.deadline} - - deadline: {formatDate(intention.deadline)} - - {/if} - {#if intention.snoozed_until} - - snoozed until {formatDate(intention.snoozed_until)} - - {/if} -
        -
        - - {formatDate(intention.created_at)} -
        -
        - {/each} -
        - {/if} -
        - - -
        -
        - -

        Predicted Needs

        - What you might need next -
        - - {#if loading} -
        - {#each Array(3) as _} -
        - {/each} -
        - {:else if predictions.length === 0} -
        -
        -

        - No predictions yet — keep using Vestige and the predictive model will start surfacing what you'll reach for next. -

        -
        - {:else} -
        - {#each predictions as pred, i} -
        -
        -
        - {i + 1} -
        -
        -

        {pred.content}

        -
        - {pred.nodeType} - {#if pred.retention} - {(Number(pred.retention) * 100).toFixed(0)}% retention - {/if} - {#if pred.predictedNeed} - {pred.predictedNeed} need - {/if} -
        -
        -
        -
        - {/each} -
        - {/if} -
        -
        + diff --git a/apps/dashboard/src/routes/(app)/memories/+page.svelte b/apps/dashboard/src/routes/(app)/memories/+page.svelte index e54543d..d009cb7 100644 --- a/apps/dashboard/src/routes/(app)/memories/+page.svelte +++ b/apps/dashboard/src/routes/(app)/memories/+page.svelte @@ -4,8 +4,10 @@ import { api } from '$stores/api'; import type { Memory } from '$types'; import type { ObservatoryEngine } from '$lib/observatory/engine'; - import { rgb01 } from '$lib/observatory/cognitive-palette'; + import { rgb01, retentionColor } from '$lib/observatory/cognitive-palette'; import { TextLayerPass, type TextLayerItem } from '$lib/observatory/text/text-layer'; + import { LivingFieldPass } from '$lib/observatory/field/living-field-pass'; + import { layoutGalaxy, type FieldDatum } from '$lib/observatory/field/cell-layout'; type MemoryTextItem = TextLayerItem & { memoryId?: string }; @@ -14,11 +16,22 @@ const MUTED = [...rgb01('#29F2A9'), 0.62] satisfies [number, number, number, number]; const MEMORY_LIMIT = 40; const ROW_LIMIT = 36; + const MIN_VISIBLE_DEPTH = 0.62; + // The MSDF reveal is frame-driven per glyph: the shared text layer packs + // ageFrame = startFrame + globalGlyphIndex * 2. Across many long rows that + // global index reaches the thousands, so late glyphs would never reveal + // before the demo clock wraps. Anchor the reveal far in the past so the + // complete memory field is legible immediately. + const REVEAL_ANCHOR = -100000; let hostEl: HTMLDivElement | null = $state(null); let engineRef: ObservatoryEngine | null = null; let textPass: TextLayerPass | null = null; + let fieldPass: LivingFieldPass | null = null; let cursorSmoothed: { x: number; y: number } | null = null; + // Local suppressed-id set — Memory has no suppression field, so we track the + // immune state we just applied so the field cell can scar immediately. + let suppressedIds = $state>(new Set()); let memories: Memory[] = $state([]); let total = $state(0); let loading = $state(true); @@ -31,12 +44,20 @@ onDestroy(() => { textPass?.dispose(); + fieldPass?.dispose(); textPass = null; + fieldPass = null; engineRef = null; }); async function handleReady(engine: ObservatoryEngine) { engineRef = engine; + // Engram galaxy FIRST (behind the parallax MSDF text): every real memory a + // glowing cell, retention = oxygen. The cursor-parallax text field rides on top. + const field = new LivingFieldPass(engine); + fieldPass = field; + field.setCells(buildFieldCells()); + engine.addPass(field); const pass = new TextLayerPass(engine); textPass = pass; await pass.init(); @@ -45,6 +66,23 @@ engine.demoClock.reset(); } + function buildFieldCells() { + const data: FieldDatum[] = memories.map((m) => { + const retention = clamp01(m.retentionStrength); + return { + id: m.id, + score: clamp01(m.retrievalStrength ?? retention), + hue: retentionColor(retention), + energy: 0.4 + 0.6 * clamp01(m.retrievalStrength ?? retention), + metric2: retention, + scar: suppressedIds.has(m.id), + kind: 'memory', + payload: m + } satisfies FieldDatum; + }); + return layoutGalaxy(data, { maxRadius: 0.95, minCellR: 0.014, maxCellR: 0.05 }); + } + async function loadMemories() { loading = true; error = null; @@ -60,6 +98,7 @@ } finally { loading = false; textPass?.setText(buildTextItems()); + fieldPass?.setCells(buildFieldCells()); engineRef?.demoClock.reset(); } } @@ -120,11 +159,13 @@ y: top - i * rowStep, size: 0.026, color: CYAN, - depth: retrieval, + depth: Math.max(MIN_VISIBLE_DEPTH, retrieval), weight: retention, - startFrame: i * 2, + startFrame: REVEAL_ANCHOR + i * 2, revealSpan: 20, - maxWidthEm: 46 + maxWidthEm: 46, + hitPadX: 0.03, + hitPadY: 0.015 }; }); } @@ -178,12 +219,32 @@ if (hit?.kind !== 'memory') return; const item = hit.payload as MemoryTextItem; if (!item.memoryId) return; + // Immune actions surfaced right on the field (backend demoability): + // shift-click -> suppress (macrophage engulfs; cell scars) + // alt-click -> unsuppress (labile release) + // plain click -> promote (retention boost) try { - const promoted = await api.memories.promote(item.memoryId); - memories = memories.map((memory) => (memory.id === promoted.id ? promoted : memory)); + if (e.shiftKey) { + await api.memories.suppress(item.memoryId, 'suppressed from memories field'); + suppressedIds = new Set(suppressedIds).add(item.memoryId); + } else if (e.altKey) { + await api.memories.unsuppress(item.memoryId); + const next = new Set(suppressedIds); + next.delete(item.memoryId); + suppressedIds = next; + } else { + const promoted = await api.memories.promote(item.memoryId); + memories = memories.map((memory) => + memory.id === promoted.id + ? { ...memory, retentionStrength: promoted.retentionStrength } + : memory + ); + } + error = null; textPass.setText(buildTextItems()); + fieldPass?.setCells(buildFieldCells()); } catch (err) { - error = err instanceof Error ? err.message : 'UNKNOWN MEMORY PROMOTE ERROR'; + error = err instanceof Error ? err.message : 'UNKNOWN MEMORY ACTION ERROR'; textPass.setText(buildTextItems()); } } diff --git a/apps/dashboard/src/routes/(app)/memory-prs/+page.svelte b/apps/dashboard/src/routes/(app)/memory-prs/+page.svelte index 1f76f0e..db6292a 100644 --- a/apps/dashboard/src/routes/(app)/memory-prs/+page.svelte +++ b/apps/dashboard/src/routes/(app)/memory-prs/+page.svelte @@ -1,740 +1,216 @@ -
        - - 0}> - pending - - + + Memory PRs · Vestige + - -
        - Vestige auto-remembers ordinary context, but opens a - Memory PR when the agent tries to rewrite its own brain. - - Risky writes are quarantine-reviewed: recorded for audit, but held - out of retrieval until you decide — influence suspended, history preserved. - -
        - - -
        - {#each modes as m (m.id)} - - {/each} -
        - - -
        - {#each statuses as s (s)} - - {/each} - -
        - -
        - - - - -
        - {#if !selected} -
        Select a Memory PR to review the diff.
        - {:else} -
        - -

        {selected.title}

        - - -
        -
        - {#if diffNodeType(selected)} - type: {diffNodeType(selected)} - {/if} - {#each diffTags(selected) as t (t)} - #{t} - {/each} -
        - {#if diffContent(selected)} -
        +{diffContent(selected)}
        - {/if} -
        - - - {#if selected.signals.length} -
        - Why this opened - {#each selected.signals as sig (sig.code)} -
        - {sig.code} - {sig.detail} -
        - {/each} -
        - {/if} - - - {#if why} -
        - Agent's reasoning - {#each why as w (w.code)} -
        - {w.code} - {w.detail} -
        - {/each} -
        - {/if} - - - {#if selected.status === 'pending'} -
        - {#each actions as a (a.id)} - - {/each} -
        - {:else} -
        - Decided: {selected.decision ?? selected.status} - {#if selected.decided_at} - · {new Date(selected.decided_at).toLocaleString()} - {/if} -
        - {/if} -
        - {/if} -
        -
        -
        - - + diff --git a/apps/dashboard/src/routes/(app)/observatory/+page.svelte b/apps/dashboard/src/routes/(app)/observatory/+page.svelte index 3c38166..1ff73d7 100644 --- a/apps/dashboard/src/routes/(app)/observatory/+page.svelte +++ b/apps/dashboard/src/routes/(app)/observatory/+page.svelte @@ -1,49 +1,333 @@ - -{#key demo} - goto(`${base}/graph`)} - /> -{/key} + + Observatory · Vestige + + + +
        + {#key demo} + goto(`${base}/graph`)} + /> + {/key} +
        diff --git a/apps/dashboard/src/routes/(app)/palace/+page.svelte b/apps/dashboard/src/routes/(app)/palace/+page.svelte new file mode 100644 index 0000000..dd850f5 --- /dev/null +++ b/apps/dashboard/src/routes/(app)/palace/+page.svelte @@ -0,0 +1,203 @@ + + + + The Memory Palace · Vestige + + + +
        + +
        diff --git a/apps/dashboard/src/routes/(app)/patterns/+page.svelte b/apps/dashboard/src/routes/(app)/patterns/+page.svelte index 68456b7..f2935a2 100644 --- a/apps/dashboard/src/routes/(app)/patterns/+page.svelte +++ b/apps/dashboard/src/routes/(app)/patterns/+page.svelte @@ -1,325 +1,287 @@ - -
        - - {#if !loading && !error} - - - pattern{patternCount === 1 ? '' : 's'} - · - - transfer{totalTransfers === 1 ? '' : 's'} - - {/if} - + + Patterns · Vestige + - -
        - - {#each CATEGORIES as cat (cat)} - - {/each} -
        - - {#if error} -
        -
        -
        Couldn't load pattern transfers
        -
        {error}
        - -
        - {:else if loading} -
        -
        -
        -
        - {:else} - -
        - -
        - - - {#if selectedCell} -
        -
        - - Filtered to - {selectedCell.from} - - {selectedCell.to} -
        - -
        - {/if} -
        - - - -
        - - -
        -
        - - pattern{patternCount === 1 ? '' : 's'} across - - project{projectCount === 1 ? '' : 's'}, - - total transfer{totalTransfers === 1 ? '' : 's'} -
        -
        - - {activeCategory === 'All' ? 'All categories' : activeCategory} -
        -
        - {/if} -
        + diff --git a/apps/dashboard/src/routes/(app)/reasoning/+page.svelte b/apps/dashboard/src/routes/(app)/reasoning/+page.svelte index c641848..db0ab3d 100644 --- a/apps/dashboard/src/routes/(app)/reasoning/+page.svelte +++ b/apps/dashboard/src/routes/(app)/reasoning/+page.svelte @@ -1,208 +1,103 @@ @@ -272,484 +156,56 @@ -
        - - - - - deep_reference - - + +
        { e.preventDefault(); void ask(); }}> + + + + {#each EXAMPLE_QUERIES as q} + + {/each} + + +
        - -
        -
        - - e.key === 'Enter' && ask()} - placeholder="Ask your memory anything…" - class="flex-1 bg-transparent text-bright text-lg placeholder:text-muted focus:outline-none font-mono" - /> - - -
        - - {#if !response && !loading} -
        - Try - {#each exampleQueries as ex} - - {/each} -
        - {/if} -
        - - - {#if error} -
        - Error: - {error} -
        - {/if} - - - {#if loading} -
        -
        - - Running cognitive pipeline -
        - -
        - {/if} - - - {#if response && !loading} - {@const conf = response.confidence} - {@const confColor = confidenceColor(conf)} - - - {#if response.reasoning} -
        -
        -

        - - Reasoning -

        -
        - intent: {response.intent} - · - analyzed - · - {conf}% {confidenceLabel(conf)} -
        -
        -
        {response.reasoning}
        -
        - {/if} - - -
        - -
        - Confidence -
        - - % - -
        - - {confidenceLabel(conf)} - - - - - - - - -
        - intent: {response.intent} - · - {response.memoriesAnalyzed} analyzed -
        -
        - - -
        -
        - Primary Source - - #{response.recommended.memory_id.slice(0, 8)} - -
        -

        {response.recommended.answer_preview}

        -
        - - - Trust {(response.recommended.trust_score * 100).toFixed(0)}% - - · - {new Date(response.recommended.date).toLocaleDateString()} -
        -
        -
        - - -
        -

        - - Cognitive Pipeline -

        -
        - -
        -
        - - -
        -
        -

        - - Evidence - ({response.evidence.length}) -

        -
        - - primary - - - supporting - - - contradicting - - - superseded - -
        -
        - -
        - {#each response.evidence as ev, i (ev.id)} - - {/each} - - - {#if arcs.length > 0} - - {/if} -
        -
        - - - {#if response.contradictions.length > 0} -
        -

        - - Contradictions Detected - () -

        -
        - {#each response.contradictions as c, i} -
        - -
        -
        - #{c.a_id.slice(0, 8)} - - #{c.b_id.slice(0, 8)} -
        -

        {c.summary}

        -
        - pair {i + 1} -
        - {/each} -
        -
        - {/if} - - - {#if response.superseded.length > 0} -
        -

        - - Superseded - ({response.superseded.length}) -

        -
        - {#each response.superseded as s} -
        - #{s.old_id.slice(0, 8)} - - #{s.new_id.slice(0, 8)} - {s.reason} -
        - {/each} -
        -
        - {/if} - - -
        - {#if response.evolution.length > 0} -
        -

        - - Evolution -

        -
        - {#each response.evolution as ev} -
        - - {new Date(ev.date).toLocaleDateString(undefined, { month: 'short', day: 'numeric' })} - - - {ev.summary} -
        - {/each} -
        -
        - {/if} - - {#if response.related_insights.length > 0} -
        -

        - - Related Insights -

        -
        - {#each response.related_insights as ins} -

        - {ins} -

        - {/each} -
        -
        - {/if} -
        - {/if} - - - {#if !response && !loading && !error} -
        -
        -

        - Ask anything. Vestige will run the full reasoning pipeline and show you its work. -

        -

        - 8-stage pipeline: retrieval → rerank → activation → trust-score → supersession → - contradiction → relations → chain. Zero LLM calls, 100% local. -

        -
        - {/if} -
        - -{#if selectedStage} - +
        {ariaSummary}
        +{#if selection} +
        {selection}
        {/if} diff --git a/apps/dashboard/src/routes/(app)/schedule/+page.svelte b/apps/dashboard/src/routes/(app)/schedule/+page.svelte index 3433cb3..13f29ce 100644 --- a/apps/dashboard/src/routes/(app)/schedule/+page.svelte +++ b/apps/dashboard/src/routes/(app)/schedule/+page.svelte @@ -1,266 +1,293 @@ -
        - - - - - - {#if activeFilterLabel}{activeFilterLabel}{/if} - - {#if !loading && !errored && truncated} -
        - Showing the first {memories.length.toLocaleString()} of {totalMemories.toLocaleString()} memories. - Schedule reflects this slice only. -
        - {/if} - - {#if loading} -
        -
        -
        -
        - {#each Array(42) as _} -
        - {/each} -
        -
        -
        - {#each Array(5) as _} -
        - {/each} -
        -
        - {:else if errored} -
        -

        API unavailable.

        -

        Could not fetch memories from /api/memories.

        -
        - {:else if scheduled.length === 0} -
        -
        -

        FSRS review schedule not yet populated.

        -

        - None of your {memories.length} memor{memories.length === 1 ? 'y has' : 'ies have'} a - nextReviewAt timestamp yet. Run consolidation to compute - next-review dates via FSRS-6. -

        - -
        - {:else} -
        - -
        - -
        - - - -
        - {/if} -
        + diff --git a/apps/dashboard/src/routes/(app)/settings/+page.svelte b/apps/dashboard/src/routes/(app)/settings/+page.svelte index dd53f98..608a78d 100644 --- a/apps/dashboard/src/routes/(app)/settings/+page.svelte +++ b/apps/dashboard/src/routes/(app)/settings/+page.svelte @@ -1,402 +1,488 @@ -
        - - - - {$isConnected ? 'Connected' : 'Offline'} - - - - - -
        -
        -
        {$memoryCount}
        -
        Memories
        -
        -
        -
        {($avgRetention * 100).toFixed(1)}%
        -
        Avg Retention
        -
        -
        -
        - - {$isConnected ? 'Online' : 'Offline'} -
        -
        WebSocket
        -
        -
        -
        v2.1
        -
        Vestige
        -
        -
        - - -
        -

        - Cognitive Operations -

        - - -
        -
        -
        -
        Pulse Toast Preview
        -
        Fire a synthetic event sequence — useful for UI demos
        -
        - -
        -
        - - -
        -
        -
        -
        Birth Ritual Preview
        -
        Inject a synthetic memory — switch to Graph to watch the orb fly in
        -
        - -
        -
        - - -
        -
        -
        -
        FSRS-6 Consolidation
        -
        Apply spaced-repetition decay, regenerate embeddings, run maintenance
        -
        - -
        - {#if consolidationResult} -
        -
        - {#if consolidationResult.nodesProcessed !== undefined} -
        -
        {consolidationResult.nodesProcessed}
        -
        Processed
        -
        - {/if} - {#if consolidationResult.decayApplied !== undefined} -
        -
        {consolidationResult.decayApplied}
        -
        Decayed
        -
        - {/if} - {#if consolidationResult.embeddingsGenerated !== undefined} -
        -
        {consolidationResult.embeddingsGenerated}
        -
        Embedded
        -
        - {/if} -
        -
        - {/if} -
        - - -
        -
        -
        -
        Memory Dream Cycle
        -
        Replay memories, discover hidden connections, synthesize insights
        -
        - -
        - {#if dreamResult} -
        - {#if dreamResult.insights && Array.isArray(dreamResult.insights)} -
        Insights Discovered:
        - {#each dreamResult.insights as insight} -
        - {typeof insight === 'string' ? insight : JSON.stringify(insight)} -
        - {/each} - {/if} - {#if dreamResult.connections_found !== undefined} -
        Connections found: {dreamResult.connections_found}
        - {/if} - {#if dreamResult.memories_replayed !== undefined} -
        Memories replayed: {dreamResult.memories_replayed}
        - {/if} -
        - {/if} -
        -
        - - - {#if retentionDist} -
        -

        - Retention Distribution -

        -
        - {#if retentionDist.distribution && Array.isArray(retentionDist.distribution)} -
        - {#each retentionDist.distribution as bucket, i} - {@const maxCount = Math.max(...(retentionDist.distribution as {count: number}[]).map((b: {count: number}) => b.count), 1)} - {@const height = ((bucket as {count: number}).count / maxCount) * 100} - {@const color = i < 2 ? '#ef4444' : i < 4 ? '#f59e0b' : i < 7 ? '#6366f1' : '#10b981'} -
        -
        {(bucket as {count: number}).count}
        -
        -
        {i * 10}%
        -
        - {/each} -
        - {/if} -
        -
        - {/if} - - -
        -

        - Keyboard Shortcuts -

        -
        -
        - {#each [ - { key: '⌘ K', desc: 'Command palette' }, - { key: '/', desc: 'Focus search' }, - { key: 'G', desc: 'Go to Graph' }, - { key: 'M', desc: 'Go to Memories' }, - { key: 'T', desc: 'Go to Timeline' }, - { key: 'F', desc: 'Go to Feed' }, - { key: 'E', desc: 'Go to Explore' }, - { key: 'S', desc: 'Go to Stats' }, - ] as shortcut} -
        - {shortcut.key} - {shortcut.desc} -
        - {/each} -
        -
        -
        - - -
        -

        - About -

        -
        -
        -
        - -
        -
        -
        Vestige v2.1 "Nuclear Dashboard"
        -
        Your AI's long-term memory system
        -
        -
        -
        -
        29 cognitive modules
        -
        FSRS-6 spaced repetition
        -
        Nomic Embed v1.5 (256d)
        -
        Jina Reranker v1 Turbo
        -
        USearch HNSW (20x FAISS)
        -
        Local-first, zero cloud
        -
        -
        - Built with Rust + Axum + SvelteKit 2 + Svelte 5 + Three.js + Tailwind CSS 4 -
        -
        -
        -
        - - + diff --git a/apps/dashboard/src/routes/(app)/stats/+page.svelte b/apps/dashboard/src/routes/(app)/stats/+page.svelte index 0fb0a81..d183b0a 100644 --- a/apps/dashboard/src/routes/(app)/stats/+page.svelte +++ b/apps/dashboard/src/routes/(app)/stats/+page.svelte @@ -1,193 +1,286 @@ - -
        - -
        - - {#if health} -
        - - {health.status.toUpperCase()} - v{health.version} -
        - {/if} -
        - - {#if loading} -
        - {#each Array(8) as _} -
        - {/each} -
        - {:else if stats && health} - -
        -
        -
        - -
        -
        Total Memories
        -
        -
        -
        - -
        -
        Avg Retention
        -
        -
        -
        - -
        -
        Due for Review
        -
        -
        -
        - -
        -
        Embedding Coverage
        -
        -
        - - - {#if retention} -
        -

        Retention Distribution

        -
        - {#each retention.distribution as bucket, i} - {@const maxCount = Math.max(...retention.distribution.map(b => b.count), 1)} - {@const height = (bucket.count / maxCount) * 100} - {@const color = i < 3 ? '#ef4444' : i < 5 ? '#f59e0b' : i < 7 ? '#10b981' : '#6366f1'} -
        - {bucket.count} -
        - {bucket.range} -
        - {/each} -
        -
        - - -
        -

        Memory Types

        -
        - {#each Object.entries(retention.byType) as [type, count]} -
        -
        - {type} - -
        - {/each} -
        -
        - - - {#if retention.endangered.length > 0} -
        -

        - - Endangered Memories ({retention.endangered.length}) -

        -
        - {#each retention.endangered.slice(0, 20) as m} -
        - {(m.retentionStrength * 100).toFixed(0)}% -
        -
        -
        - {m.content} -
        - {/each} -
        -
        - {/if} - {/if} - - -
        - -
        - {/if} -
        -
        - - + diff --git a/apps/dashboard/src/routes/(app)/timeline/+page.svelte b/apps/dashboard/src/routes/(app)/timeline/+page.svelte index 2e850f1..15e9dae 100644 --- a/apps/dashboard/src/routes/(app)/timeline/+page.svelte +++ b/apps/dashboard/src/routes/(app)/timeline/+page.svelte @@ -1,139 +1,320 @@ -
        - -
        - - memories - - -
        -
        + + Bitemporal Growth Rings · Vestige + - {#if loading} -
        - {#each Array(7) as _} -
        - {/each} -
        - {:else if timeline.length === 0} -
        -
        -

        - No memories in this window yet — widen the range or come back once Vestige has - been remembering a while. -

        -
        - {:else} -
        - -
        - -
        - {#each timeline as day, i (day.date)} -
        - -
        -
        -
        - - -
        - {/each} -
        -
        - {/if} -
        + diff --git a/apps/dashboard/src/routes/+layout.svelte b/apps/dashboard/src/routes/+layout.svelte index 7e21a42..afdf67a 100644 --- a/apps/dashboard/src/routes/+layout.svelte +++ b/apps/dashboard/src/routes/+layout.svelte @@ -37,7 +37,14 @@ let isImmersiveRoute = $derived(!isMarketingRoute); onMount(() => { - if (!isMarketingRoute && !isImmersiveRoute) { + // Live nervous system: every immersive organ consumes the WebSocket + // ($isConnected, live event feed, birth/salience/firewall pulses). Only + // true marketing/waitlist pages skip it. NOTE: this is deliberately NOT + // gated on isImmersiveRoute — immersive is the whole point of connecting. + // (The prior guard `!isMarketingRoute && !isImmersiveRoute` was always + // false since isImmersiveRoute === !isMarketingRoute, so the socket never + // connected on any route and the live system was dead everywhere.) + if (!isMarketingRoute) { websocket.connect(); } const teardownTheme = initTheme(); diff --git a/docs/dashboard/ALIVE-OVERHAUL-GOD-TIER-PROMPT.md b/docs/dashboard/ALIVE-OVERHAUL-GOD-TIER-PROMPT.md new file mode 100644 index 0000000..791c41e --- /dev/null +++ b/docs/dashboard/ALIVE-OVERHAUL-GOD-TIER-PROMPT.md @@ -0,0 +1,144 @@ +The prompt is the deliverable — I'll return it directly as my final response (the parent agent parses my text output, not a file). Here it is, ready to paste: + +--- + +# BUILD BRIEF: The Vestige Dashboard is a Living Nervous System With Receipts + +You are making the Vestige main dashboard the single most uncopyable memory-product UI in existence, for the July 14 HN launch. Read this whole brief before touching code. Every move here is verified against the real repo — file paths and line references are load-bearing, not suggestions. + +## THE THESIS (this is the whole point — internalize it) + +The dashboard is not "a graph plus some pretty background." It is a **live nervous system with receipts**: every pixel of motion is driven by a real cognitive event the Vestige backend computes and broadcasts, and *nothing else in the category can do this*. Competitors are either a static force-directed hairball (Obsidian, Cognee, Logseq) or a stack of text panels (Letta, mem0 v3, Zep). Not one renders per-memory forgetting state, live decay, causal receipts, or a contradiction firewall — because none of them have the substrate. Vestige uniquely (a) *computes* the data (per-memory FSRS state, RSB causal backfill, bitemporal state, contradiction pairs, suppression-with-reason), (b) *broadcasts* it live over WebSocket (~20 distinct `VestigeEvent` variants), and (c) already *owns* a raw-WebGPU engine (8 WGSL shaders, 5 renderers, an HDR post-chain with mip bloom + Khronos PBR tonemap). That three-way overlap exists nowhere else on Earth. + +**The discipline test, tape it to the monitor.** For every visual you build, ask: *"If I swapped the real backend value for `Math.random()`, could the viewer tell?"* If NO, it is a screensaver and a competitor ships it in a weekend — do not build it as a hero. If YES, it is the moat. Curl-noise-behind-glass fails this test. Live FSRS decay, causal wavefronts, and the contradiction firewall pass it. **Build the data-backed moves as heroes; ship exactly one cheap ambient base coat and stop.** + +## WHY NOBODY ELSE CAN BUILD THIS (the exact substrate dependencies) + +The engine is NOT the moat — curl noise, radiance cascades, reaction-diffusion are all public repos. The moat is the **data feeding the engine**, and every hero below is load-bearing on a Vestige-only substrate: + +- **Per-memory FSRS state** — `stability` + `last_accessed` on every node (`crates/vestige-core/src/node.rs`), and the closed-form retrievability curve `r=(1+factor*elapsed/stability)^(-w20)` (`crates/vestige-core/src/fsrs/algorithm.rs:101`, live personalized `w20=0.01036`). mem0 stores atomic facts with no decay; Zep has bitemporal *validity* booleans but no forgetting curve; Letta has char-count limits. To render a decay field a competitor first rebuilds spaced-repetition scheduling into their core — a two-quarter project before frame one. +- **RSB causal backfill** — `crates/vestige-core/src/advanced/retroactive_backfill.rs` produces real backward-only, shared-entity causal paths. `ConnectionType::Causal` exists (`chains.rs:59`). No competitor computes causation; they store undirected co-occurrence. +- **Suppression-with-reason** — `VestigeEvent::MemorySuppressed` carries a real `estimated_cascade` neighbor count and a `reversible_until` labile window (`crates/vestige-mcp/src/dashboard/events.rs:44-45`). Real top-down inhibitory active-forgetting. Competitors just delete. +- **Contradiction pairs** — `DeepReferenceCompleted` carries `contradiction_pairs: Vec<(String,String)>` (`events.rs:82`) from the composition engine. Nobody else has a contradiction detector wired to the graph. +- **The ~20-variant live cognitive event stream** — `MemoryCreated`, `MemorySuppressed`, `DreamStarted/Progress/Completed`, `ConnectionDiscovered`, `Rac1CascadeSwept`, etc. Competitor backends have maybe three states worth broadcasting (created/updated/deleted). + +The one-line version: **the visuals below CANNOT EXIST without that data. Build them and the competition is locked out for two quarters.** + +## THE ENGINE YOU'RE REUSING (do not add new deps, do not rebuild) + +Everything lives under `apps/dashboard/src/lib/observatory/`: +- `engine.ts` — `ObservatoryEngine`, a `FramePass` plug-in system (`addPass`) + a params uniform buffer + the reusable HDR post-chain (`post/post-chain.ts`: rgba16float scene, mip bloom, Khronos PBR tonemap, grain, vignette). +- `shaders/` — 8 WGSL: `simulate.wgsl` (edge-spring force integrator + O(N²) repulsion + damping, lines ~121-135), `render-nodes.wgsl` (already dims by retention: `intensity *= 0.45 + 0.55*retention`, line 183), `render-edges`, `render-path`, `birth-particles`, `firewall`, `forgetting`, `rescue`. +- 5 renderers: `node-renderer.ts` (has `setPathSteps()` at :142 — the hot buffer-destroy→recreate→`createPipeline` rebuild pattern you'll clone for `setEdges`/`appendNode`), `birth-renderer`, `firewall-renderer`, `forgetting-renderer`, `rescue-renderer`. +- `ObservatoryStage.svelte` — the mount point. **It does NOT subscribe to the live WebSocket today** (verified: zero websocket refs in `lib/observatory/*`). That subscription is the central new integration work. +- `graph/+page.svelte` — dual renderer: `renderMode==='field'` mounts `` (prop-driven, zero live events); `renderMode==='classic'` mounts `` (the old Three.js path that today owns all live-event wiring). The field is the banger; make it live. + +## GUARDRAILS (non-negotiable — these make the ambition WORK, not shrink it) + +1. **Reuse the observatory engine. Zero new rendering deps.** Every hero rides existing WGSL/renderers/post-chain. New work is app-code plumbing (event bridge, buffer regrow, one serializer field, one pathfinder branch), not new frameworks. +2. **Memory Cinema is untouched.** Do not reach into `graph/cinema/*` or `MemoryCinema.svelte`. It is finished and loved. All work is the graph field, the dead routes, or a sibling ambient canvas. +3. **Earned by real data, never decoration.** Every flourish maps to a real lifecycle event/metric or it does not ship. This is the discipline test above, enforced. +4. **Purple breathes, it does not sit static.** Replace flat brand purple with an FSRS-indexed perceptual ramp: high-retention = bright cyan-shifted accent (#22C7DE hot end), decaying = deep desaturated indigo, dead = near-black. Purple becomes a *retention gauge*. On the dead routes, invert to a neutral graphite substrate and spend purple + motion ONLY on live events and FSRS threshold crossings (ISA-101 / mission-control color-singleton discipline) — aliveness from contrast, not more glow. +5. **prefers-reduced-motion + WebGPU fallback + perf budget, all first-class:** + - `prefers-reduced-motion: reduce` → freeze ambient drift/sim, but KEEP discrete event pulses (they are information). Ship a persistent on-page pause control (WCAG requires it for >5s motion). + - WebGPU absent/`requestAdapter()` null/context-create throw → degrade to the existing flat-glass look (`EngineStatus 'unsupported'/'error'`). Never a black canvas. `navigator.gpu` existing is NOT sufficient — check the adapter. + - DPR clamp (`min(devicePixelRatio, 1.5)` desktop, 2 mobile) as a runtime uniform. Page-Visibility + IntersectionObserver gate the rAF loop (stop GPU submits when unseen). Mobile-first particle budget; scale UP on desktop. Event-driven render when settled — calm at rest, spike on real events. +6. **Verify in the real running app with screenshots + gates green before claiming done** (see final section). + +--- + +## BUILD ORDER — most-jaw-drop-first, each independently shippable + +Execute incrementally. Each phase lands, verifies, and can ship alone. Do NOT stack all five into one unverifiable blob — land, screenshot, gate, then next. + +### PHASE 0 — The live event bridge (foundation for everything; do this first) + +The field is inert because `ObservatoryStage` never hears the backend. Build the bridge once; every hero rides it. + +- Subscribe `ObservatoryStage.svelte` to the `eventFeed` store (`$stores/websocket`) — the same store `Graph3D` already consumes. +- Add a lock-free ingestion path: WebSocket event → engine param/buffer mutation for the current frame. Keep it allocation-free (ring buffer / typed arrays). +- This unlocks Phases 1-4. Ship nothing user-visible yet; verify with a console assertion that live events reach the engine. + +### PHASE 1 — Live FSRS decay: watch memories forget (the #1 moat, hero) + +Each node continuously dims/shrinks on its real FSRS retrievability curve. The shader path already exists (`render-nodes.wgsl:183` dims by retention; radius is retention-weighted in `graph-upload.ts:105`; retention lives in `vel_retention.w`). The ONE gap is data: the live-graph payload `get_graph` (`handlers.rs:1237`) ships `retention` + timestamps but NOT `stability` and NOT `lastAccessed` per node (they already exist for single-node handlers at `handlers.rs:305/345`, proving it's a serializer add, not new data). + +- **Backend:** add `stability` + `lastAccessed` to the `get_graph` per-node JSON (`handlers.rs` ~1237). +- **Types:** add both to `GraphNode` (`types/index.ts:68`) + `ObservatoryNode` (`observatory/types.ts:119`). +- **Engine:** each frame, compute `retrievability(stability, (now - lastAccessed)/86400)` → write `vel_retention.w`. Pure closed-form arithmetic, no per-node server round-trip. Reuses every existing shader path. +- **Honesty (protect the demo, stay honest):** with live `w20=0.01036` + multi-day stabilities, real-time drift is imperceptibly slow over a viewing session. Ship a **scrubbable "project forward N days" control** — recompute `elapsed` at `t+N` on the same true curve. Fully honest (it IS the real curve), and it makes decay legible without faking. Or tie it to the existing `?demo=3` forgetting-horizon choreography. + +### PHASE 2 — Contradiction firewall on camera (flagship live moment, hero) + +A contradicted memory flares crimson and a microglial firewall arc quarantines it live. The crimson firewall VISUAL already exists (`firewall.wgsl.ts` + `firewall-renderer.ts` + `firewall-plan.ts`) but is hard-locked to the deterministic demo-clock (compute gates on `params[9]===4`, writes are pure functions of frame + loop_phase). Make it data-driven. + +- Build a live `FirewallPlan` constructor from a real event's target node + its real graph neighbors (reuse the plan's fire-word structure; drive an event-triggered frame counter instead of `loop_phase`). +- Fire on two Vestige-only substrates: `MemorySuppressed` (real `estimated_cascade` + `reversible_until`, `events.rs:44`) and `DeepReferenceCompleted.contradiction_pairs` (`events.rs:82`). +- **Honesty:** the live DB has 0 standing contradictions at rest (they're produced per `deep_reference` run, not a resting pool), and suppression only fires on an actual suppress. So a live demo must **trigger a suppress or a contradiction-surfacing query on camera** rather than wait for ambient events. When it fires, every frame is earned by a real cognitive event. + +### PHASE 3 — Dream consolidation storm (visible metabolic event, hero) + +When the real dream pipeline streams in, the whole field enters a consolidation storm: edges rewire, clusters merge. All mechanics exist. `simulate.wgsl` (~121-135) already runs edge-spring forces + repulsion + damping every frame, so "clusters merge" is the emergent settle when new springs are added — no new physics. The server dream handler (`handlers.rs` ~1400-1491) emits a REAL sequence backed by `save_connection` DB writes: `DreamStarted{memory_count}` → `ConnectionDiscovered{source,target,weight,type}` ×N → `DreamCompleted`. + +- Add `setEdges()` to `node-renderer.ts` — a `setPathSteps()` clone (`:142`): rebuild the sized-to-graph edge index buffer, bump `params.edge_count`, rebuild pipeline. This is the real work; the machinery is proven. +- On `DreamStarted`: raise a global agitation param + loosen damping (params-driven, no shader rewrite). +- Append each `ConnectionDiscovered` pair to the edge buffer live — springs auto-pull the clusters together. +- On `DreamCompleted`: settle back. +- **Honesty:** `DreamProgress` is defined + handled client-side but is NEVER emitted server-side. Ride `DreamStarted` + the `ConnectionDiscovered` burst + `DreamCompleted` — do not depend on Progress. + +### PHASE 4 — RSB causal recall wavefront (scoped, hero — ship the honest version) + +Recall lights the backward causal path through the graph. The backward wavefront ALREADY renders on the field: `ObservatoryStage demo="recall-path"` → `node-renderer` calls `buildRecallPath` (`path-builder.ts`) → `PathStep` buffer scanned by `simulate.wgsl`. Raw WebGPU, no library. Three gaps make the literal "every recall, real causal edges" pitch false today — close them, don't over-claim: + +- **Real trigger:** a live recall emits `SearchPerformed{result_ids}` and `DeepReferenceCompleted{primary/supporting/contradicting_ids}`, but the graph handler just random-pulses all nodes. Wire a new `BackfillFired`/`CausalReceipt` WebSocket event (carrying the backward causal path + shared-entity join keys) and drive `buildRecallPath` from it instead of the DemoClock. +- **Real causal edges:** `planCinemaPath` (`cinema/pathfinder.ts`) is a greedy edge-weight walk — add a branch that prefers `ConnectionType::Causal` edges (the type exists, `chains.rs:59`). +- **Scope discipline:** ship "recall lights the backward causal path" on the graph page FIRST (highest EV, engine already there, wired to the real event so the wavefront is *earned*, not scripted). Then generalize the recall-wavefront to the other routes as they get the canvas. +- **Marketing honesty:** do NOT claim "nobody does causal/backward memory" (Datadog Watchdog / Pernosco / git-bisect exist). The uncopyable claim is the *conjunction as persistent memory* — RSB's failure-triggered, backward-only, shared-entity causal promotion + per-memory FSRS + the causal edge type + the raw-WebGPU engine. Do not market "every recall reaches backward" until the trigger + causal pathfinder land. + +### PHASE 5 — The one ambient base coat (cheap, ONE day, then STOP) + +Kill "purple and static" on the 10 dead routes with a single ambient WGSL `FramePass` behind them, added to the observatory engine and composited through the existing bloom. `engine.ts` exposes `addPass`; the post-chain is core WebGPU (no feature gate); it already degrades to flat-glass on `unsupported`/`error`. + +- One shared full-bleed field, per-route metric-uniform block, driven by the already-live APIs (`stats`/`health`/`retentionDistribution`/`timeline`/`duplicates`/`contradictions`/`crossProjectPatterns`/`importance`/`intentions` in `lib/stores/api.ts`). +- **Acceptance gate is "the field legibly READS the backend," not "the noise looks alive."** Endangered-count storms the decay field; contradiction pairs visibly fracture it; due-for-review pulses it. If it ships as generic pretty noise loosely tinted by one metric, it is copyable, off-thesis, and violates the earned-by-data rule — cut it. +- **Do not exceed one day or one substrate here.** Curl noise / reaction-diffusion / physarum are all public repos; behind a card at low opacity the metric-binding is invisible, so extra investment subsidizes a competitor's catch-up. This is a base coat, not a hero. The dead routes (`stats`, `memories`, `timeline`, `patterns`, `duplicates`, `contradictions`, `intentions`, `importance`, `explore`, `schedule`) are the target; render once via single-canvas + `setViewport`/`setScissorRect` (a raw-WebGPU advantage Three.js dashboards drop). + +--- + +## EXPLICITLY OUT OF SCOPE (do not spend launch week here) + +Per adversarial teardown, these fail the `Math.random()` test or are `npm install`-able — a competitor ships them in three weeks: +- Radiance-cascade GI ("importance is a light source") — highest effort-to-legibility ratio; the penumbra looks identical whether the light is `importance_score` or a random float. The importance signal is already served by the existing emissive-mask bloom. **Defer past launch.** +- More than one reaction-diffusion / physarum / metaball substrate — the drive is unverifiable, so it's wallpaper. One base coat max (Phase 5). +- ChartGPU as a "moat" — it's an MIT library; use it if useful but it's a commodity, not a differentiator. +- MSDF text, View Transitions, dual-Kawase bloom retune, GPU picking polish — good hygiene, background chores, never headline features. +- Birth-on-write as a hero — the pixels ("sparkles fly in on a websocket event") are a generic dataviz trope, copyable in a day, and today's `MemoryCreated` payload lacks position/neighbors/retention so a naive live birth would invent the neighborhood (decoration). It only becomes uncopyable if it resolves the new node's REAL retention-ranked neighbors and engraves true incident edges. Defer it behind the four data-backed heroes; if built, do the engine extension honestly (`appendNode` with buffer regrow + pipeline rebuild, reusing the `setPathSteps` machinery + `birth-plan` golden-angle placement) and resolve real associations — never a firework. + +--- + +## VERIFICATION — required before you claim any phase done + +Run the real app and show proof. No "done" without it. + +1. `pnpm --filter @vestige/dashboard build && pnpm --filter @vestige/dashboard check` — green. +2. `cargo test --workspace --no-fail-fast && cargo clippy --workspace -- -D warnings` — green (for the backend serializer + event changes). +3. Launch the running dashboard, connect the live backend, and for each hero: trigger the real event (project-forward decay scrub; on-camera suppress/contradiction query; a real `dream` run; a real recall) and **capture screenshots proving the field responds to real data**, not the demo clock. Confirm the `Math.random()` test by eye: the motion must be legibly wrong if you fed it noise. +4. Confirm graceful degradation: force WebGPU off → flat-glass, never black. Toggle `prefers-reduced-motion` → ambient stops, event pulses remain, pause control present. +5. Confirm Memory Cinema is byte-for-byte untouched. + +Save each landed phase (decision/finding) to Vestige as it lands. Land most-jaw-drop-first: Phase 0 bridge → Phase 1 live decay → Phase 2 firewall → Phase 3 dream storm → Phase 4 causal wavefront → Phase 5 base coat. Ship the ones that pass. Let's go. + +--- + +**File paths returned for the executing session (all absolute):** +- Engine: `/Users/entity002/vestige/apps/dashboard/src/lib/observatory/engine.ts` +- Mount + event bridge target: `/Users/entity002/vestige/apps/dashboard/src/lib/observatory/ObservatoryStage.svelte` +- Node renderer (`setPathSteps` → clone for `setEdges`/`appendNode`): `/Users/entity002/vestige/apps/dashboard/src/lib/observatory/node-renderer.ts` +- Shaders: `/Users/entity002/vestige/apps/dashboard/src/lib/observatory/shaders/` (`render-nodes.wgsl.ts:183`, `simulate.wgsl.ts:121`, `firewall.wgsl.ts`) +- Path/firewall/plans: `path-builder.ts`, `firewall-plan.ts`, `graph/cinema/pathfinder.ts` (add Causal branch), `graph-upload.ts:105` +- Graph route (dual renderer): `/Users/entity002/vestige/apps/dashboard/src/routes/(app)/graph/+page.svelte` +- Types: `/Users/entity002/vestige/apps/dashboard/src/lib/types/index.ts:68` + `/Users/entity002/vestige/apps/dashboard/src/lib/observatory/types.ts:119` +- Live-metric APIs: `/Users/entity002/vestige/apps/dashboard/src/lib/stores/api.ts` +- Backend serializer (add `stability`+`lastAccessed` to `get_graph`): `/Users/entity002/vestige/crates/vestige-mcp/src/dashboard/handlers.rs:1237` +- Event enum: `/Users/entity002/vestige/crates/vestige-mcp/src/dashboard/events.rs` (`MemorySuppressed:44`, `DeepReferenceCompleted:82`) +- FSRS curve: `/Users/entity002/vestige/crates/vestige-core/src/fsrs/algorithm.rs:101`; RSB: `/Users/entity002/vestige/crates/vestige-core/src/advanced/retroactive_backfill.rs`; causal type: `/Users/entity002/vestige/crates/vestige-core/src/advanced/chains.rs:59` \ No newline at end of file

        c5EkcFE5%3y#h9 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%0AGHzDO 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�b2QlmuRQqOK^)nb6mQQ{!52 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,e.__value)});r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),c(()=>{r.disconnect()})}function p(e,r,l=r){var a=new WeakSet,t=!0;s(e,"change",u=>{var f=u?"[selected]":":checked",n;if(e.multiple)n=[].map.call(e.querySelectorAll(f),i);else{var d=e.querySelector(f)??e.querySelector("option:not([disabled])");n=d&&i(d)}l(n),v!==null&&a.add(v)}),o(()=>{var u=r();if(e===document.activeElement){var f=q??v;if(a.has(f))return}if(_(e,u,t),t&&u===void 0){var n=e.querySelector(":checked");n!==null&&(u=i(n),l(u))}e.__value=u,t=!1}),y(e)}function i(e){return"__value"in e?e.__value:e.value}export{p as b}; diff --git a/apps/dashboard/build/_app/immutable/chunks/BzfFPM53.js.br b/apps/dashboard/build/_app/immutable/chunks/BzfFPM53.js.br new file mode 100644 index 0000000000000000000000000000000000000000..38b158d64acd951b6be8477d682899d7f8085a52 GIT binary patch literal 515 zcmV+e0{s0O;saoe#5hLspB9!jb+&hz5)VGj#C-EOoX?DL=S5I$b7 zG8DP(9PgvnU>L0fc^ja&75n2P1f_i2YUaDC@yxHHHC_Us%sPiu4IhsQ-SappIn63y zsKXKStk?KB>{HdmY09(_0B=@qA*alEtJZYu?mbc>r&n@%t-yx?s-~VtL@SjgBj%a8 z_QupyJD^*EA%&8TqDE$fbD1=AwY_?KHCE# z9}mcou1rp`gQulJM4zeid8ekLI5)PghV9-K|DnQ(l~n61r05@Dk=hVekF}0CN>gaj zBRK%HrPD|WsB=L?W&$o#_-S58qszs7-jdEoe2FT^kSY5NGsRg(Wq{9+{B^Vip8I<@+MVJYCafxpG~ z7)18}*m`gyIE)E@cgXVqc6&Pt9f3?qEVBzCJsjFzY57h0uqv;pkK5n?@}~&Fscj74 z|FJ$P9l)*DXwHT<6QS)=#xbdUYmG@_aVm3GxjQbzEn3B_^%sb{8wfPy{(WMgwio6% zAR1G$%W3A9SJ?ta6hnqRny7$S|5voWH z+QXb%@(WHPG|i5XA&At5%c@dXl1XDj=vXdSRaJrsDe;*4r*@f3 zE*H7O^ZJ2vE^QkJFoB6Qo)JE3$QC*Fyli in E?du(E,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):E[i]=r;var o=(E,i,r)=>hu(E,typeof i!="symbol"?i+"":i,r);import{StorageBufferAttribute as It,SpriteNodeMaterial as ru}from"./CkiUhdKe.js";import{uniform as h,storage as lt,Fn as R,instanceIndex as W,fract as T,float as t,mx_noise_vec3 as X,vec3 as u,sin as m,cos as b,sqrt as Rt,floor as et,pow as H,abs as nt,clamp as C,vec2 as y,smoothstep as mt,oneMinus as at,mix as M,select as e,cross as is,length as $,min as vu,atan as cs,positionView as bu}from"./Cqk6fVmx.js";import{V as ds,br as pu,eu as gu,dS as fu}from"./Bo4EDkTQ.js";const xu={anchor:0,connection:1,contradiction:2};class Bu{constructor(i,r,g={}){o(this,"count");o(this,"scene");o(this,"renderer");o(this,"bufferPos");o(this,"bufferVel");o(this,"bufferPhase");o(this,"computeNode");o(this,"mesh",null);o(this,"material",null);o(this,"computeInFlight",null);o(this,"uTarget",h(new ds(0,0,0)));o(this,"uTime",h(0));o(this,"uIgnition",h(.2));o(this,"uMode",h(0));o(this,"uContainRadius",h(48));o(this,"uHueShift",h(0));o(this,"uModeTintAmt",h(.25));o(this,"uBurst",h(0));o(this,"uActDim",h(.12));o(this,"uWorld",h(0));o(this,"uPrevWorld",h(0));o(this,"uBlend",h(0));o(this,"worldCount",7);o(this,"uBlast",h(0));o(this,"uBlastTime",h(0));o(this,"uMorphSeed",h(0));o(this,"uChaos",h(0));o(this,"uClash",h(0));o(this,"uFadeNear",h(2));o(this,"uFadeBand",h(7));o(this,"uFogDensity",h(.012));o(this,"uFocus",h(28));o(this,"uFocusRange",h(20));o(this,"uDofDim",h(.3));o(this,"uZoomPeriod",h(9));o(this,"uLambda",h(1.923));o(this,"uZoomOn",h(0));o(this,"uCamVelView",h(new ds(0,0,0)));o(this,"uStreak",h(0));o(this,"uMaxStretch",h(7));o(this,"dreamCount",0);this.renderer=i,this.scene=r,this.count=g.count??15e4;const f=g.spawnRadius??34,q=new Float32Array(this.count*3),D=new Float32Array(this.count*3),c=new Float32Array(this.count);for(let S=0;S{const c=f.element(W),p=q.element(W),B=D.element(W),F=B.mul(12.9898).sin().mul(43758.5453),S=B.mul(78.233).sin().mul(12543.531),L=B.mul(39.346).sin().mul(24634.633),O=T(F),V=T(S),a=T(L),l=O.mul(6.28318),d=V.mul(3.14159),n=this.uContainRadius,w=T(B.mul(3.7)),z=t(.62).add(w.mul(w).mul(.38)),A=t(W),v=R(([s])=>{const x=t(.6),ns=X(s.add(u(x,0,0))).sub(X(s.sub(u(x,0,0)))),ms=X(s.add(u(0,x,0))).sub(X(s.sub(u(0,x,0)))),as=X(s.add(u(0,0,x))).sub(X(s.sub(u(0,0,x))));return u(ms.z.sub(as.y),as.x.sub(ns.z),ns.y.sub(ms.x)).normalize()}),P=u(m(d).mul(b(l)),b(d),m(d).mul(m(l))),G=P.mul(n.mul(z)),tt=P.mul(n.mul(t(.5).add(w.mul(.3)))),N=t(.19),Z=u(m(c.y).sub(c.x.mul(N)),m(c.z).sub(c.y.mul(N)),m(c.x).sub(c.z.mul(N))),_=c.add(Z.mul(n.mul(.12))),j=G,st=u(O.sub(.5).mul(2).mul(n.mul(.8)),V.sub(.5).mul(2).mul(n.mul(.8)),a.sub(.5).mul(2).mul(n.mul(.8))),K=O.mul(6.28318).mul(3).add(a.mul(.6)),it=n.mul(.2).add(n.mul(.8).mul(a)),hs=u(it.mul(b(K)),n.mul(.06).mul(m(B.mul(20))),it.mul(m(K))),rs=t(2.39996323),Wt=A.mul(rs),Dt=Rt(A).mul(n.mul(.0042)),vs=u(Wt.cos().mul(Dt),n.mul(.04).mul(m(B.mul(9))),Wt.sin().mul(Dt)),Y=this.uMorphSeed,xt=this.uChaos,bs=T(Y.mul(.731).add(.13)),ps=T(Y.mul(1.323).add(.51)),gs=T(Y.mul(2.117).add(.27)),yt=t(387),J=T(A.div(yt)),k=et(A.div(yt)).div(yt),Vt=s=>s.exp().sub(s.mul(-1).exp()).mul(.5),Zt=s=>s.exp().add(s.mul(-1).exp()).mul(.5),I=(s,x)=>y(s.x.mul(x.x).sub(s.y.mul(x.y)),s.x.mul(x.y).add(s.y.mul(x.x))),wt=s=>{const x=s.x.exp();return y(x.mul(b(s.y)),x.mul(m(s.y)))},fs=s=>y(s.x.mul(s.x).add(s.y.mul(s.y)).max(1e-12).log().mul(.5),cs(s.y,s.x)),Ot=(s,x)=>wt(I(y(x,t(0)),fs(s))),xs=s=>y(Zt(s.x).mul(b(s.y)),Vt(s.x).mul(m(s.y))),ys=s=>y(Vt(s.x).mul(b(s.y)),Zt(s.x).mul(m(s.y))),Mt=s=>{const x=s.x.mul(s.x).add(s.y.mul(s.y)).max(1e-6);return y(s.x.div(x),s.y.mul(-1).div(x))},ct=t(2).add(et(bs.mul(14))),Nt=l,ws=H(nt(b(ct.mul(Nt).div(4))),t(2).add(ps.mul(8))).add(H(nt(m(ct.mul(Nt).div(4))),t(2).add(gs.mul(8)))).add(1e-4).pow(t(-.5)),Ms=H(nt(b(ct.mul(d).div(4))),t(3)).add(H(nt(m(ct.mul(d).div(4))),t(3))).add(1e-4).pow(t(-.5)),Tt=n.mul(.85).mul(C(ws.mul(Ms).mul(.5),.1,1.4)),Ts=u(m(d).mul(b(l)).mul(Tt),b(d).mul(Tt),m(d).mul(m(l)).mul(Tt)),kt=t(5),Ht=et(T(Y.mul(.013).add(A.mul(.00667))).mul(25)),Et=et(Ht.div(5)),qs=Ht.sub(Et.mul(5)),Cs=J.mul(2).sub(1),Bs=k.mul(1.5708),Lt=y(Cs,Bs),As=wt(y(t(0),Et.mul(6.28318).div(kt))),zs=wt(y(t(0),qs.mul(6.28318).div(kt))),Gt=I(As,Ot(xs(Lt),t(.4))),_t=I(zs,Ot(ys(Lt),t(.4))),jt=this.uTime.mul(.25).add(Y).add(xt.mul(1.5)),Ss=u(Gt.x,_t.x,b(jt).mul(Gt.y).add(m(jt).mul(_t.y))).mul(n.mul(.55)),Kt=Rt(J),Yt=k.mul(6.28318),qt=y(Kt.mul(b(Yt)),Kt.mul(m(Yt))),Q=I(qt,qt),ut=I(Q,qt),dt=Mt(Q),ht=Mt(ut),Fs=y(ut.x.sub(ht.x).add(2.2360679),ut.y.sub(ht.y)),Ct=Mt(Fs),Ps=I(y(t(0),t(1)),y(Q.x.sub(dt.x),Q.y.sub(dt.y))),Is=y(Q.x.add(dt.x),Q.y.add(dt.y)),Rs=I(y(t(0),t(.6667)),y(ut.x.add(ht.x),ut.y.add(ht.y))),Bt=I(Ct,Ps).x,At=I(Ct,Is).x,zt=I(Ct,Rs).x.add(.5),St=Bt.mul(Bt).add(At.mul(At)).add(zt.mul(zt)).max(1e-4),Ws=u(Bt.div(St),At.div(St),zt.div(St).sub(.86)).mul(n.mul(.5)),rt=k.mul(2).sub(1),Jt=Rt(t(1).sub(rt.mul(rt)).max(0)).mul(.9).add(.25),Qt=J.mul(6.28318).add(rt.mul(6).mul(xt.add(.4))),Ds=u(Jt.mul(b(Qt)),rt.mul(1.4),Jt.mul(m(Qt))).mul(n.mul(.5)),Ut=t(2.2).add(xt.mul(2)),vt=J.mul(6.28318).mul(Ut),bt=k.mul(6.28318).mul(Ut),pt=this.uTime.mul(.3).add(Y.mul(6.28318)),Vs=m(vt).mul(b(bt)).add(m(bt).mul(b(pt))).add(m(pt).mul(b(vt))),Zs=b(vt).mul(b(bt)).mul(b(pt)).sub(m(vt).mul(m(bt)).mul(m(pt))),Xt=this.uTime.mul(.15),Os=b(Xt).mul(Vs).add(m(Xt).mul(Zs)),Ns=u(m(k.mul(3.14159)).mul(b(J.mul(6.28318))),b(k.mul(3.14159)),m(k.mul(3.14159)).mul(m(J.mul(6.28318)))).mul(n.mul(.5).add(Os.mul(n.mul(.12)))),Ft=s=>e(s.equal(0),G,e(s.equal(1),tt,e(s.equal(2),_,e(s.equal(3),j,e(s.equal(4),st,e(s.equal(5),hs,e(s.equal(6),vs,e(s.equal(7),Ts,e(s.equal(8),Ss,e(s.equal(9),Ws,e(s.equal(10),Ds,Ns))))))))))),ks=Ft(t(this.uWorld)),Hs=Ft(t(this.uPrevWorld)),Es=mt(t(0),t(1),at(this.uBlend)),Ls=M(Hs,ks,Es),Gs=T(A.mul(.001).add(.5)).greaterThan(.66),Pt=t(this.uWorld).add(5),_s=e(Pt.greaterThan(11),Pt.sub(12),Pt),ot=Ft(_s),$t=this.uTime.mul(.4),ts=b($t),ss=m($t),js=u(ot.x.mul(ts).sub(ot.z.mul(ss)),ot.y,ot.x.mul(ss).add(ot.z.mul(ts))).mul(.52),Ks=this.uTime.div(this.uZoomPeriod).fract(),Ys=this.uTime.div(this.uZoomPeriod).add(.5).fract(),Js=M(t(1),this.uLambda.pow(Ks),this.uZoomOn),Qs=M(t(1),this.uLambda.pow(Ys),this.uZoomOn),Us=Ls.mul(Js),Xs=js.mul(Qs.mul(this.uLambda)),us=M(Us,Xs,Gs.select(t(1),t(0))),$s=c.normalize(),tu=at(T(B.mul(7.3)).mul(.4));p.addAssign($s.mul(this.uBurst.mul(.95).mul(tu))),p.addAssign(us.sub(c).mul(.045));const su=v(c.mul(.045).add(u(0,this.uTime.mul(.2),0))),uu=e(this.uWorld.equal(0),t(.05),e(this.uWorld.equal(5),t(.06),t(0)));p.addAssign(su.mul(uu)),p.addAssign(is(u(0,1,0),c).mul(9e-4).mul(e(this.uWorld.equal(1),t(1),t(0)))),p.addAssign(Z.mul(.012).mul(e(this.uWorld.equal(2),t(1),t(0))));const gt=c.x.div(n.mul(.5)),ft=c.y.div(n.mul(.5)),U=c.z.div(n.mul(.5)),ou=u(U.sub(.7).mul(gt).sub(ft.mul(3.5)),gt.mul(3.5).add(U.sub(.7).mul(ft)),t(.6).add(U.mul(.95)).sub(U.mul(U).mul(U).div(3)).sub(gt.mul(gt).add(ft.mul(ft))));p.addAssign(ou.mul(.008).mul(e(this.uWorld.equal(10),t(1),t(0)))),p.addAssign(is(u(0,1,0),c).mul(.0016).mul(e(this.uWorld.equal(5),t(1),t(0))));const lu=us.normalize().mul(m(this.uTime.mul(1.3).add(B.mul(6.1))).mul(.015));p.addAssign(lu);const os=$(p),eu=t(1.3);p.assign(p.mul(vu(eu,os).div(os.max(1e-4)))),c.addAssign(p),p.mulAssign(.9);const nu=e(this.uWorld.equal(4),t(1.6),t(1)),ls=M(t(.55),t(6),C(this.uBurst,0,1)),mu=et(c.div(ls)).add(.5).mul(ls),au=C(at(this.uBurst.mul(1.4)),0,.9).mul(nu).min(.9);c.assign(M(c,mu,au));const iu=$(c),es=this.uContainRadius,cu=c.normalize().mul(es);c.assign(M(c,cu,iu.greaterThan(es).select(t(1),t(0))))})().compute(this.count)}buildRender(i,r){const g=new ru({transparent:!0,blending:pu,depthWrite:!1}),f=lt(r,"float",this.count),q=lt(i,"vec3",this.count).element(W);g.positionNode=q;const D=g;{const a=u(this.uCamVelView),l=y(a.x,a.y),d=$(l).max(1e-4),n=T(f.element(W).mul(13.17)).mul(.5).add(.75);D.rotationNode=cs(l.y,l.x);const w=C(d.mul(this.uStreak).mul(n).mul(.6).add(1),t(1),this.uMaxStretch),z=t(1);D.scaleNode=y(z.mul(w),z)}const c=R(([a,l,d,n,w])=>l.add(d.mul(b(n.mul(a).add(w).mul(6.28318))))),p=R(([a])=>{const l=a.div(100),d=H(l.sub(60).max(1e-4),t(-.1332047592)).mul(329.698727446),n=l.lessThanEqual(66).select(t(255),d),w=l.max(1e-4).log().mul(99.4708025861).sub(161.1195681661),z=H(l.sub(60).max(1e-4),t(-.0755148492)).mul(288.1221695283),A=l.lessThanEqual(66).select(w,z),v=l.sub(10).max(1e-4).log().mul(138.5177312231).sub(305.0447927307),P=l.greaterThanEqual(66).select(t(255),l.lessThanEqual(19).select(t(0),v));return C(u(n,A,P).div(255),0,1)}),B=R(()=>{const a=q,l=f.element(W),d=$(a.sub(u(this.uTarget))),n=t(W),w=T(n.mul(.001).add(.5)).greaterThan(.66),z=a.x.mul(.03).add(a.y.mul(.021)).add(a.z.mul(.027)),A=T(l.mul(.41).add(d.mul(.06)).add(z).add(this.uTime.mul(.1)).add(this.uHueShift)),v=this.uClash,P=e(v.equal(0),u(0,.85,1),e(v.equal(1),u(.55,1,0),e(v.equal(2),u(1,.82,0),e(v.equal(3),u(0,1,.6),u(.1,.5,1))))),G=e(v.equal(0),u(.3,.2,1),e(v.equal(1),u(0,.7,.5),e(v.equal(2),u(1,.4,0),e(v.equal(3),u(0,.6,1),u(.5,0,1))))),tt=e(v.equal(0),u(1,.25,0),e(v.equal(1),u(1,0,.55),e(v.equal(2),u(.6,0,1),e(v.equal(3),u(1,.1,.3),u(1,.7,0))))),N=e(v.equal(0),u(1,0,.3),e(v.equal(1),u(1,.45,0),e(v.equal(2),u(1,0,.7),e(v.equal(3),u(1,.5,0),u(1,.2,.4))))),Z=mt(t(0),t(1),A),_=M(P,G,Z),j=M(tt,N,Z),st=M(_,j,w.select(t(1),t(0))),K=e(this.uMode.equal(2),u(1,.08,.32),e(this.uMode.equal(3),u(1,.78,.1),u(.1,.9,1)));return M(st,K,this.uModeTintAmt.mul(.4))}),F=R(()=>{const a=q,l=C($(a).div(this.uContainRadius.max(1e-4)),0,1),d=l.mul(l),n=a.normalize(),w=H(at(nt(n.z)),t(4)),z=t(.12).add(d.mul(.6)).add(w.mul(.5)),A=t(W),v=T(A.mul(.001).add(.5)).greaterThan(.66),P=t(.07).add(w.mul(.3)),G=v.select(P,z),tt=this.uTime.div(this.uZoomPeriod).fract(),N=this.uTime.div(this.uZoomPeriod).add(.5).fract(),Z=m(tt.mul(3.14159)),_=m(N.mul(3.14159)),j=Z.add(_).max(1e-4),st=M(t(1),Z.div(j).mul(2).min(1),this.uZoomOn),K=M(t(1),_.div(j).mul(2).min(1),this.uZoomOn),it=v.select(K,st);return G.mul(it)}),S=R(()=>{const a=bu.z.negate(),l=mt(this.uFadeNear,this.uFadeNear.add(this.uFadeBand),a),d=C(this.uFogDensity.mul(a).negate().exp(),.45,1),n=C(a.sub(this.uFocus).abs().div(this.uFocusRange),0,1),w=at(n.mul(this.uDofDim));return l.mul(d).mul(w)}),L=R(()=>{const a=q,l=C(this.uBlast,0,1),d=this.uBlastTime,n=C($(a).div(this.uContainRadius.max(1e-4)),0,1),w=M(t(1600),t(5200),l),z=C(l.mul(1.1).add(.4),0,1.3),A=p(w).mul(z),v=T(n.mul(1.6).sub(d.mul(1.5))),P=c(v,u(.55),u(.55),u(3),u(0,.33,.67));return M(A,P,t(.78))});g.colorNode=R(()=>{const a=C(this.uIgnition.mul(.05).add(.72),0,1.25),l=B().mul(a).mul(F()).mul(this.uActDim),d=mt(t(0),t(.85),C(this.uBlast,0,1)).mul(.6);return M(l,L().mul(F()).mul(this.uActDim),d).mul(S())})(),g.emissiveNode=R(()=>{const a=C(this.uIgnition.mul(.04).add(.85),0,1.35),l=B().mul(a).mul(F()).mul(this.uActDim),d=mt(t(0),t(.85),C(this.uBlast,0,1)).mul(.6);return M(l,L().mul(.85).mul(F()).mul(this.uActDim),d).mul(S())})();const O=new gu(.1,.1),V=new fu(O,g,this.count);V.frustumCulled=!1,this.material=g,this.mesh=V,this.scene.add(this.mesh)}async update(i){const r=Math.max(0,Math.min(i,.05));this.uTime.value+=r,this.uHueShift.value=(this.uHueShift.value+r*.06)%1,this.uBlend.value=Math.max(0,this.uBlend.value-r*1),this.uIgnition.value=Math.max(0,this.uIgnition.value-r*2),this.uBurst.value=Math.max(0,this.uBurst.value-r*.85),this.uBlast.value=Math.max(0,this.uBlast.value-r*.35),this.uBlastTime.value+=r;const g=this.uTime.value/this.uZoomPeriod.value%1,f=this.uZoomOn.value>.5?40-g*16:26+Math.sin(this.uTime.value*.18)*9;this.uFocus.value+=(f-this.uFocus.value)*Math.min(1,r*3),this.computeInFlight&&await this.computeInFlight,this.computeInFlight=this.renderer.computeAsync(this.computeNode).finally(()=>{this.computeInFlight=null}),await this.computeInFlight}transitionTo(i,r,g="II",f=99){this.uTarget.value.copy(r);const q=xu[i]??1;this.uMode.value=q,this.uPrevWorld.value=this.uWorld.value,this.uWorld.value=f%this.worldCount,this.uBlend.value=1,this.uClash.value=f%5,this.uZoomOn.value=f>=2?1:0;const D=f===0?.12:f===1?.2:null,c=g==="I"?.26:1;this.uActDim.value=D??c,this.uIgnition.value=f<=1?.4:g==="I"?1.6:4.5;const p=this.uWorld.value===3;this.uBurst.value=q===2||p?1:.8,this.uBlast.value=f<=1?.25:1,this.uBlastTime.value=0,this.uModeTintAmt.value=q>=2?.7:.22}dreamBeat(){this.dreamCount+=1;const i=7+Math.floor(Math.random()*5);this.uPrevWorld.value=this.uWorld.value,this.uWorld.value=i,this.uBlend.value=1,this.uMorphSeed.value=Math.random()*1e3,this.uClash.value=Math.floor(Math.random()*5),this.uChaos.value=Math.min(1,.25+this.dreamCount*.1),this.uZoomOn.value=1,this.uActDim.value=.85,this.uIgnition.value=3,this.uBurst.value=1,this.uBlast.value=1,this.uBlastTime.value=0;const r=[1,2,3];this.uMode.value=r[Math.floor(Math.random()*r.length)],this.uModeTintAmt.value=.3+Math.random()*.5}setContainRadius(i){this.uContainRadius.value=Math.max(8,i)}setZoom(i){this.uZoomOn.value=i?1:0}setCameraVel(i){this.uCamVelView.value.copy(i)}setStreak(i){this.uStreak.value=i}dispose(){var i,r,g,f;this.mesh&&(this.scene.remove(this.mesh),(i=this.mesh.geometry)==null||i.dispose(),(g=(r=this.mesh).dispose)==null||g.call(r),this.mesh=null),(f=this.material)==null||f.dispose(),this.material=null,this.bufferPos=null,this.bufferVel=null,this.bufferPhase=null}}export{Bu as SemanticComputeStorm}; diff --git a/apps/dashboard/build/_app/immutable/chunks/C2CaJvaA.js.br b/apps/dashboard/build/_app/immutable/chunks/C2CaJvaA.js.br new file mode 100644 index 0000000000000000000000000000000000000000..8757bef1b64efd0266c7d904ada1a1505c219f11 GIT binary patch literal 4612 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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/C2CaJvaA.js.gz b/apps/dashboard/build/_app/immutable/chunks/C2CaJvaA.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..11e9ccdf995ea91e205e33dd4acb34c8c805a5a4 GIT binary patch literal 5095 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 -՟xSKp0uj2k^zu$)DyI;z7@W*U}uXf-?!pTvtdgTY_#9C!}(W%nXwvch^Rg`T= zz%^1Gm~b3A^0_&aHYjPKu6uP2)c9a%H%6|V=9wC!v*tcZBxQk+GfCYx(81ynCApp^ z4sUN0)FkS{g#d+t7E8(V3|jp=+vpg{o7LGm10x`!%xRnk08~#2G>XF{t?u.source.v=f:g(u.source,f)}),t=!1}return e&&i in r?l(e):d(u.source)}function m(){const e={};function n(){o(()=>{for(var r in e)e[r].unsubscribe();b(e,i,{enumerable:!1,value:!0})})}return[e,n]}function I(e){var n=s;try{return s=!1,[e(),s]}finally{s=n}}export{y as a,I as c,m as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/C6HuKgyx.js.br b/apps/dashboard/build/_app/immutable/chunks/C6HuKgyx.js.br deleted file mode 100644 index 7f962dd5db7606de37f35a4b7308e75e9b187b94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0BdIDf%)n@xI(_Noz$)z=sA8{<9Th0+gng470ffd=gMD!23&|Zbk1~}Xs z4tN%YG~HCBSE28QnrfD@v(F?3mu=!L5^qJ@8Jrxz(?+ZPB)@Nc^YPj`Bn=%&yiozY zgC%_!wV+QcOb2V)nX^SwfC}N8&~%V8(-l+;C+{$8W!&|d<>tnRy|*`BjOf~57?45>miv2n zAj}sCv(`pTE9XN>1-#J0FsxWEr0jRJ`_B~!ZTQZn_dxYVZQ;H{8+1q`?mB%Uxw)xx z_WlHdY8{)RBPlrpKPST0k*6ESbO3;SXC-9BU{?srD4w*ush1$MCo4w{4VNcTewU;% zsr-&Zhb5hjgv?}f^a=8^tQk&p8do+|v^%|T8lC~8^Ttx8gHqs3usu~Lem3&J)&hcdp>w^J9aU`-wH$aT=Y|52 zR;z+bCN;A{%#|BD7jR)BHO;I}h#5sFmpSDbmpO3PiET~FQ9QSnc`VlTeYNKV13pII z+~^F|kzb!Mh$O&cu}PMEu$s|owb*PFCs7?fs3Lu2H1caagfV?)r@4rRbAgX>FqUUi zHfxcfo!#GWTz8y6LL?nVvTdiRDmHL#RiLU^Cy~U((T+gxKWD#j67#wmUG41@FTUpw o-Q_6VJ`Ga0N=?zBPKo}_H#6N_Ne^QNm+CM70mI!_Bzpn?06lKFrvLx| diff --git a/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js b/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js deleted file mode 100644 index 040e765..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js +++ /dev/null @@ -1 +0,0 @@ -import{J as z,b as fe,aa as re,N as k,T as L,V as ie,ab as le,g as Z,ac as ue,ad as se,ae as $,R as q,U as F,O as oe,af as ve,ag as y,_ as te,ah as T,ai as Y,aj as de,ak as ce,A as pe,a7 as _e,al as U,am as he,an as ge,I as Ee,ao as j,ap as me,aq as ne,ar as ae,as as V,Y as Te,at as Ae,au as Ce,av as we,aw as Ie,Q as Ne}from"./CpWkWWOo.js";function ke(e,i){return i}function Se(e,i,l){for(var t=[],g=i.length,s,u=i.length,c=0;c{if(s){if(s.pending.delete(E),s.done.add(E),s.pending.size===0){var o=e.outrogroups;B(U(s.done)),o.delete(s),o.size===0&&(e.outrogroups=null)}}else u-=1},!1)}if(u===0){var f=t.length===0&&l!==null;if(f){var v=l,n=v.parentNode;we(n),n.append(v),e.items.clear()}B(i,!f)}else s={pending:new Set(i),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(s)}function B(e,i=!0){for(var l=0;l{var a=l();return _e(a)?a:a==null?[]:U(a)}),o,d=!0;function C(){r.fallback=n,xe(r,o,u,i,t),n!==null&&(o.length===0?(n.f&T)===0?ne(n):(n.f^=T,M(n,null,u)):ae(n,()=>{n=null}))}var N=fe(()=>{o=Z(E);var a=o.length;let S=!1;if(k){var x=ue(u)===se;x!==(a===0)&&(u=$(),L(u),q(!1),S=!0)}for(var _=new Set,w=te,R=ce(),p=0;ps(u)):(n=Y(()=>s(ee??(ee=z()))),n.f|=T)),a>_.size&&de(),k&&a>0&&L($()),!d)if(R){for(const[O,D]of c)_.has(O)||w.skip_effect(D.e);w.oncommit(C),w.ondiscard(()=>{})}else C();S&&q(!0),Z(E)}),r={effect:N,items:c,outrogroups:null,fallback:n};d=!1,k&&(u=F)}function H(e){for(;e!==null&&(e.f&Ae)===0;)e=e.next;return e}function xe(e,i,l,t,g){var h,O,D,J,Q,X,G,K,P;var s=(t&Ce)!==0,u=i.length,c=e.items,f=H(e.effect.first),v,n=null,E,o=[],d=[],C,N,r,a;if(s)for(a=0;a0){var b=(t&re)!==0&&u===0?l:null;if(s){for(a=0;a{var m,W;if(E!==void 0)for(r of E)(W=(m=r.nodes)==null?void 0:m.a)==null||W.apply()})}function Re(e,i,l,t,g,s,u,c){var f=(u&he)!==0?(u&ge)===0?Ee(l,!1,!1):j(l):null,v=(u&me)!==0?j(g):null;return{v:f,i:v,e:Y(()=>(s(i,f??l,v??g,c),()=>{e.delete(t)}))}}function M(e,i,l){if(e.nodes)for(var t=e.nodes.start,g=e.nodes.end,s=i&&(i.f&T)===0?i.nodes.start:l;t!==null;){var u=Ne(t);if(s.before(t),t===g)return;t=u}}function A(e,i,l){i===null?e.effect.first=l:i.next=l,l===null?e.effect.last=i:l.prev=i}export{He as e,ke as i}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.br b/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.br deleted file mode 100644 index f66f2f9a93c9e2fea6c5382bd8c23c51e5744fd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1804 zcmV+n2lMzFO%MQ#!g23|OKY20B4RN@l37#3)$0paERUFtme)x!L$1}|b+$CKy+9`0 zvj2U4oF=F2yLFZ|fr>LB0x7Y^pmP7Wrd7`V!V##x2zSPntY~Kb?qD~-vjv9TLsE%5 zdY)Wm8g;-5oQQ1YfzuhEd2pBs)MUBpn!E}Wh)m>6P>9zp~ib7haz2gxj;!1k7bLuy0>kou$vTS9(x~~)$>BWqOmyK$xRmO^l|+JTd&S$ca{)K< z%)qUa!JX5?J(;Wh!EUmD!nJRef7!)#cYVFp<@x$qh<#m`PRV1_CEgp$aSANdzQ^nS zk&SpvdV!9iVlh@4c+%{@9F5>Yf9Q>Enn9f00AURUd z-d+vgiuttOBdr?3ZY^5$?akFW&SvA>FTM9TKs_XJ34O0L1O1ddh(+&l^B7@8^fhHdutC_$xYMth=9SD=bMGafD zkwdzrW+0~rl{#NE16t2JnybR>C(7zfnX1=7yhy40BV&t#Z zy7L^tg*S}~s~9eoj0DxxEgKZl!>l{6Glrq$2!%gq-$Bq<0J-u2zIZYMOLew%zf%4m zvzJd6!s(DkX_yHLGtwA~&TLX5CH3^vI?{PoTC#mJ(Yd?SldqURPT=2Mw=Lywmc+tS{j#2Aj=b5}#HI)T%1dF-g0vG|`++ zVPOa7tZCS|n_-gWvQL%5mih_e;wE0f7GMQ)U0W-lPnkKhM4187&UC8)d+lMmP*vm} zzeWu{1ET4sm-sg`k`CFKq3NpG%D(~#CIp9bFYL$r(is0~w&i&Jd_KU~{M&9{`xeWO zzHsV{MZ^Vt_SHUyJp*g(-r;rNMR@f5xBlvx!zj&OJV`;stm>fE`)EPk&~cPkOmo*2 zg&wkNRMmqh8L`u4*!al|X@BZ~qJ23n%-$r9(*aZTyYcYM>n=LL-Gk*LP(R&r%P|++ z^M+F{xr53oC*bX!>0c)hxL$8HnPyH4SGol9aWK->)70Tak(C`8H?%|%At>$Jk!@Y%7axxiV zSBHmmR5+^lhwEAO$bkaewI}`^(URb4giv)qX@-UDJb^d$mkSPcF%48Ih*mUS(B1Gc zja3XVrYan{tsS#elJj-U_t~oE*H*P5B~pI))P-QKhn5a^70_dAAR5{z1IY_G83t%H zF_uWUlq4`q)Y^^iiwD-f$vXYUruaA(r*Pg#v&$A)3HIv7vFGn4{IUdMvs=nRDXac) zs1PC%amvUtid5!Jl%+oxVK9yIjX)TxxB^6wZ5eG!WM0I3M#b+X0lvZH9H0AqN|mae ze$!Q87BZ#$NllB13pvfE`L#Y3xRJTB1-HGqYwDFB5Mz;D7ng09nO*S%y1(>Nr(uoW zugxyfN-KFy^Mi8PlKf4s1*F4iEA{p7%jRj=L+`ys&OFLMd|br@f*lA?HcR$FOFyIw zCZn|q_1Ohtyox=VPrIw8#tqiB7O^t&8cA!4^Lcm9$yyVPtu@3*PI(APdt|5~I?ejX zd|eM^HT3eGTg$#5p8}h6J@jmkPTUOeEcu?p4ii;`$DaFwg4&S4@PYqjD7!uAb)sQmJ>1jS}NmIb_u%Zzx>hgTe=XL$-JyY=oW9iIT-znbI# diff --git a/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.gz b/apps/dashboard/build/_app/immutable/chunks/CGEBXrjl.js.gz deleted file mode 100644 index 19bda0036425f8ed00fe324b44f2f9aa1aa3d172..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1954 zcmV;T2VM9diwFP!000026OC9~bJI!^e&1hVpQ5I^i$?1_ZIzV41tCCyB#;CG$K`cR zq?Ro#OG3989RK&No{?`{cK5~IBlS$*zV2x`SrmC$uio@b)%!trLSiOkgejRWgwE+k z$UFKZBw;dEE@heu{hLfEv|%!lFcp(wVII+ykZ<%+$V<8uk~5iDn3l=d1HRKlNX=ws z!rYKagnl9ORcORy=E8(b&x96C=3l~0m`p0nM=}ecGbWP>Gi5pxddg&SVZM?ngf5uO zH(@d+Qwn34vfjSAwr?oKRh*a5nzC2x(U_(>@lwvF^^7WN zc8gFCg7A16gpVKND&@L&s*_PT4h+L70qUo#B!&v@uUBvuCE3)AIOUq*6shu}JY&y9 zky~vfs^kZ2tp~Ug3v$g~-qdA2E%TY#JcYMaz~_nZTAI946zewbxN6Ty~327)faih!97EUlzFBQ>!C$r zFR6J^d11!;@|jgYr@COUSdoWDr+`5R%n5_R zq4AAN#BenBKZ3zEQcjWX4|bNH0Io_eHfefi!nw|9$xu>G4JA|~WnC(jf_yK>L&&^X z-Js<&Nu)1N{;hB595S-zHHf}p$Q+!V&1-bAyU=lGdanP5Q|Fe^`8M2K_pWvSNP;wX zL0amDp%IN02g|=y-DR{lX$w^YCTI4P?dsijSwQ!ZCYBtIu~ zK_!{M-VS27(SyJoH-QltpXg*{#&n^la6(3+dJ+#)%u6gb8nAo1j7EiZ-Im%>^6Ym(w?1lf}vMcNyJ=5|PTj#7t7z_O*8BDAn4E zF44Z&H0Z1y8V$xY2{OI3PTMlL*SS2s()nn!@5#~Ff@h)!!Q^<`{wIQ=bI3=N zF)bxoJDKP}rrj7EjV5CZB%t?JAzgKuaKXNJ%oQz>V!fnHUy*sDk9NU!t)|@rmn0>Y zq}VjMQ_H%WT5O3R#aAknd4u{bGRAezyV&w0Cd&U?@HfVKT{Dd-N@>q@Dcy^(T3w_@+^+wFsk@evH81U-2CwZ$KGWRNWF7qDKMNMo|4tA90QLy!JOBUy diff --git a/apps/dashboard/build/_app/immutable/chunks/CGq8RnJq.js b/apps/dashboard/build/_app/immutable/chunks/CGq8RnJq.js new file mode 100644 index 0000000..ac93004 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/CGq8RnJq.js @@ -0,0 +1 @@ +var wn=Object.defineProperty;var mt=e=>{throw TypeError(e)};var yn=(e,t,n)=>t in e?wn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ye=(e,t,n)=>yn(e,typeof t!="symbol"?t+"":t,n),We=(e,t,n)=>t.has(e)||mt("Cannot "+n);var p=(e,t,n)=>(We(e,t,"read from private field"),n?n.call(e):t.get(e)),F=(e,t,n)=>t.has(e)?mt("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),W=(e,t,n,r)=>(We(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),X=(e,t,n)=>(We(e,t,"access private method"),n);var mn=Array.isArray,En=Array.prototype.indexOf,Ae=Array.prototype.includes,yr=Array.from,mr=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,gn=Object.getOwnPropertyDescriptors,Tn=Object.prototype,bn=Array.prototype,Ct=Object.getPrototypeOf,Et=Object.isExtensible;const An=()=>{};function Er(e){return e()}function Sn(e){for(var t=0;t{e=r,t=s});return{promise:n,resolve:e,reject:t}}function gr(e,t){if(Array.isArray(e))return e;if(!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}const A=2,Pe=4,Me=8,Pt=1<<24,K=16,U=32,we=64,Rn=128,P=512,g=1024,R=2048,V=4096,Y=8192,Q=16384,ne=32768,Ve=65536,gt=1<<17,Mt=1<<18,Fe=1<<19,Ft=1<<20,Tr=1<<25,_e=65536,Je=1<<21,it=1<<22,ee=1<<23,ue=Symbol("$state"),br=Symbol("legacy props"),Ar=Symbol(""),fe=new class extends Error{constructor(){super(...arguments);ye(this,"name","StaleReactionError");ye(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var kt;const Rr=!!((kt=globalThis.document)!=null&&kt.contentType)&&globalThis.document.contentType.includes("xml"),Le=3,Lt=8;function Nn(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Nr(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function On(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function xn(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function kn(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Dn(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Or(){throw new Error("https://svelte.dev/e/hydration_failed")}function xr(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Cn(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function In(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Pn(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function kr(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Dr=1,Cr=2,Ir=4,Pr=8,Mr=16,Fr=1,Lr=2,jr=4,Hr=8,Yr=16,jt=1,Mn=2,Fn="[",Ln="[!",qr="[?",jn="]",lt={},T=Symbol(),Hn="http://www.w3.org/1999/xhtml",Vr="http://www.w3.org/2000/svg",Ur="http://www.w3.org/1998/Math/MathML";function ot(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Br(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Gr(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let D=!1;function $r(e){D=e}let y;function ve(e){if(e===null)throw ot(),lt;return y=e}function Yn(){return ve(se(y))}function zr(e){if(D){if(se(y)!==null)throw ot(),lt;y=e}}function Kr(e=1){if(D){for(var t=e,n=y;t--;)n=se(n);y=n}}function Wr(e=!0){for(var t=0,n=y;;){if(n.nodeType===Lt){var r=n.data;if(r===jn){if(t===0)return n;t-=1}else(r===Fn||r===Ln||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=se(n);e&&n.remove(),n=s}}function Xr(e){if(!e||e.nodeType!==Lt)throw ot(),lt;return e.data}function Ht(e){return e===this.v}function qn(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Yt(e){return!qn(e,this.v)}let Ge=!1;function Zr(){Ge=!0}let S=null;function Ue(e){S=e}function Jr(e,t=!1,n){S={p:S,i:!1,c:null,e:null,s:e,x:null,l:Ge&&!t?{s:null,u:null,$:[]}:null}}function Qr(e){var t=S,n=t.e;if(n!==null){t.e=null;for(var r of n)rn(r)}return t.i=!0,S=t.p,{}}function je(){return!Ge||S!==null&&S.l===null}let ae=[];function qt(){var e=ae;ae=[],Sn(e)}function Tt(e){if(ae.length===0&&!ke){var t=ae;queueMicrotask(()=>{t===ae&&qt()})}ae.push(e)}function Vn(){for(;ae.length>0;)qt()}function Un(e){var t=h;if(t===null)return _.f|=ee,e;if((t.f&ne)===0&&(t.f&Pe)===0)throw e;Be(e,t)}function Be(e,t){for(;t!==null;){if((t.f&Rn)!==0){if((t.f&ne)===0)throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Bn=-7169;function E(e,t){e.f=e.f&Bn|t}function ut(e){(e.f&P)!==0||e.deps===null?E(e,g):E(e,V)}function Vt(e){if(e!==null)for(const t of e)(t.f&A)===0||(t.f&_e)===0||(t.f^=_e,Vt(t.deps))}function Gn(e,t,n){(e.f&R)!==0?t.add(e):(e.f&V)!==0&&n.add(e),Vt(e.deps),E(e,g)}const Ye=new Set;let d=null,bt=null,b=null,O=[],$e=null,Qe=!1,ke=!1;var Ee,ge,le,Te,Ce,Ie,oe,$,be,C,et,tt,nt,Ut;const ht=class ht{constructor(){F(this,C);ye(this,"current",new Map);ye(this,"previous",new Map);F(this,Ee,new Set);F(this,ge,new Set);F(this,le,0);F(this,Te,0);F(this,Ce,null);F(this,Ie,new Set);F(this,oe,new Set);F(this,$,new Map);ye(this,"is_fork",!1);F(this,be,!1)}skip_effect(t){p(this,$).has(t)||p(this,$).set(t,{d:[],m:[]})}unskip_effect(t){var n=p(this,$).get(t);if(n){p(this,$).delete(t);for(var r of n.d)E(r,R),z(r);for(r of n.m)E(r,V),z(r)}}process(t){var s;O=[],this.apply();var n=[],r=[];for(const f of t)X(this,C,tt).call(this,f,n,r);if(X(this,C,et).call(this)){X(this,C,nt).call(this,r),X(this,C,nt).call(this,n);for(const[f,i]of p(this,$))zt(f,i)}else{for(const f of p(this,Ee))f();p(this,Ee).clear(),p(this,le)===0&&X(this,C,Ut).call(this),bt=this,d=null,At(r),At(n),bt=null,(s=p(this,Ce))==null||s.resolve()}b=null}capture(t,n){n!==T&&!this.previous.has(t)&&this.previous.set(t,n),(t.f&ee)===0&&(this.current.set(t,t.v),b==null||b.set(t,t.v))}activate(){d=this,this.apply()}deactivate(){d===this&&(d=null,b=null)}flush(){if(this.activate(),O.length>0){if(Bt(),d!==null&&d!==this)return}else p(this,le)===0&&this.process([]);this.deactivate()}discard(){for(const t of p(this,ge))t(this);p(this,ge).clear()}increment(t){W(this,le,p(this,le)+1),t&&W(this,Te,p(this,Te)+1)}decrement(t){W(this,le,p(this,le)-1),t&&W(this,Te,p(this,Te)-1),!p(this,be)&&(W(this,be,!0),Tt(()=>{W(this,be,!1),X(this,C,et).call(this)?O.length>0&&this.flush():this.revive()}))}revive(){for(const t of p(this,Ie))p(this,oe).delete(t),E(t,R),z(t);for(const t of p(this,oe))E(t,V),z(t);this.flush()}oncommit(t){p(this,Ee).add(t)}ondiscard(t){p(this,ge).add(t)}settled(){return(p(this,Ce)??W(this,Ce,It())).promise}static ensure(){if(d===null){const t=d=new ht;Ye.add(d),ke||Tt(()=>{d===t&&t.flush()})}return d}apply(){}};Ee=new WeakMap,ge=new WeakMap,le=new WeakMap,Te=new WeakMap,Ce=new WeakMap,Ie=new WeakMap,oe=new WeakMap,$=new WeakMap,be=new WeakMap,C=new WeakSet,et=function(){return this.is_fork||p(this,Te)>0},tt=function(t,n,r){t.f^=g;for(var s=t.first;s!==null;){var f=s.f,i=(f&(U|we))!==0,o=i&&(f&g)!==0,a=o||(f&Y)!==0||p(this,$).has(s);if(!a&&s.fn!==null){i?s.f^=g:(f&Pe)!==0?n.push(s):He(s)&&((f&K)!==0&&p(this,oe).add(s),Ne(s));var l=s.first;if(l!==null){s=l;continue}}for(;s!==null;){var c=s.next;if(c!==null){s=c;break}s=s.parent}}},nt=function(t){for(var n=0;n1){this.previous.clear();var t=b,n=!0;for(const f of Ye){if(f===this){n=!1;continue}const i=[];for(const[a,l]of this.current){if(f.current.has(a))if(n&&l!==f.current.get(a))f.current.set(a,l);else continue;i.push(a)}if(i.length===0)continue;const o=[...f.current.keys()].filter(a=>!this.current.has(a));if(o.length>0){var r=O;O=[];const a=new Set,l=new Map;for(const c of i)Gt(c,o,a,l);if(O.length>0){d=f,f.apply();for(const c of O)X(s=f,C,tt).call(s,c,[],[]);f.deactivate()}O=r}}d=null,b=t}Ye.delete(this)};let Se=ht;function $n(e){var t=ke;ke=!0;try{for(var n;;){if(Vn(),O.length===0&&(d==null||d.flush(),O.length===0))return $e=null,n;Bt()}}finally{ke=t}}function Bt(){Qe=!0;var e=null;try{for(var t=0;O.length>0;){var n=Se.ensure();if(t++>1e3){var r,s;zn()}n.process(O),te.clear()}}finally{O=[],Qe=!1,$e=null}}function zn(){try{Dn()}catch(e){Be(e,$e)}}let L=null;function At(e){var t=e.length;if(t!==0){for(var n=0;n0)){te.clear();for(const s of L){if((s.f&(Q|Y))!==0)continue;const f=[s];let i=s.parent;for(;i!==null;)L.has(i)&&(L.delete(i),f.push(i)),i=i.parent;for(let o=f.length-1;o>=0;o--){const a=f[o];(a.f&(Q|Y))===0&&Ne(a)}}L.clear()}}L=null}}function Gt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const f=s.f;(f&A)!==0?Gt(s,t,n,r):(f&(it|K))!==0&&(f&R)===0&&$t(s,t,r)&&(E(s,R),z(s))}}function $t(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(Ae.call(t,s))return!0;if((s.f&A)!==0&&$t(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function z(e){var t=$e=e,n=t.b;if(n!=null&&n.is_pending&&(e.f&(Pe|Me|Pt))!==0&&(e.f&ne)===0){n.defer_effect(e);return}for(;t.parent!==null;){t=t.parent;var r=t.f;if(Qe&&t===h&&(r&K)!==0&&(r&Mt)===0&&(r&ne)!==0)return;if((r&(we|U))!==0){if((r&g)===0)return;t.f^=g}}O.push(t)}function zt(e,t){if(!((e.f&U)!==0&&(e.f&g)!==0)){(e.f&R)!==0?t.d.push(e):(e.f&V)!==0&&t.m.push(e),E(e,g);for(var n=e.first;n!==null;)zt(n,t),n=n.next}}function Kn(e,t,n,r){const s=je()?ct:Jn;var f=e.filter(u=>!u.settled);if(n.length===0&&f.length===0){r(t.map(s));return}var i=h,o=Wn(),a=f.length===1?f[0].promise:f.length>1?Promise.all(f.map(u=>u.promise)):null;function l(u){o();try{r(u)}catch(v){(i.f&Q)===0&&Be(v,i)}rt()}if(n.length===0){a.then(()=>l(t.map(s)));return}function c(){o(),Promise.all(n.map(u=>Zn(u))).then(u=>l([...t.map(s),...u])).catch(u=>Be(u,i))}a?a.then(c):c()}function Wn(){var e=h,t=_,n=S,r=d;return function(f=!0){Re(e),re(t),Ue(n),f&&(r==null||r.activate())}}function rt(e=!0){Re(null),re(null),Ue(null),e&&(d==null||d.deactivate())}function Xn(){var e=h.b,t=d,n=e.is_rendered();return e.update_pending_count(1),t.increment(n),()=>{e.update_pending_count(-1),t.decrement(n)}}function ct(e){var t=A|R,n=_!==null&&(_.f&A)!==0?_:null;return h!==null&&(h.f|=Fe),{ctx:S,deps:null,effects:null,equals:Ht,f:t,fn:e,reactions:null,rv:0,v:T,wv:0,parent:n??h,ac:null}}function Zn(e,t,n){h===null&&Nn();var s=void 0,f=vt(T),i=!_,o=new Map;return or(()=>{var v;var a=It();s=a.promise;try{Promise.resolve(e()).then(a.resolve,a.reject).finally(rt)}catch(m){a.reject(m),rt()}var l=d;if(i){var c=Xn();(v=o.get(l))==null||v.reject(fe),o.delete(l),o.set(l,a)}const u=(m,w=void 0)=>{if(l.activate(),w)w!==fe&&(f.f|=ee,ft(f,w));else{(f.f&ee)!==0&&(f.f^=ee),ft(f,m);for(const[G,N]of o){if(o.delete(G),G===l)break;N.reject(fe)}}c&&c()};a.promise.then(u,m=>u(null,m||"unknown"))}),lr(()=>{for(const a of o.values())a.reject(fe)}),new Promise(a=>{function l(c){function u(){c===s?a(f):l(s)}c.then(u,u)}l(s)})}function es(e){const t=ct(e);return on(t),t}function Jn(e){const t=ct(e);return t.equals=Yt,t}function Qn(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n0&&!Xt&&nr()}return t}function nr(){Xt=!1;for(const e of st)(e.f&g)!==0&&E(e,V),He(e)&&Ne(e);st.clear()}function ns(e,t=1){var n=me(e),r=t===1?n++:n--;return J(e,n),r}function Xe(e){J(e,e.v+1)}function Zt(e,t){var n=e.reactions;if(n!==null)for(var r=je(),s=n.length,f=0;f{if(ce===f)return o();var a=_,l=ce;re(null),xt(f);var c=o();return re(a),xt(l),c};return r&&n.set("length",Z(e.length)),new Proxy(e,{defineProperty(o,a,l){(!("value"in l)||l.configurable===!1||l.enumerable===!1||l.writable===!1)&&Cn();var c=n.get(a);return c===void 0?i(()=>{var u=Z(l.value);return n.set(a,u),u}):J(c,l.value,!0),!0},deleteProperty(o,a){var l=n.get(a);if(l===void 0){if(a in o){const c=i(()=>Z(T));n.set(a,c),Xe(s)}}else J(l,T),Xe(s);return!0},get(o,a,l){var m;if(a===ue)return e;var c=n.get(a),u=a in o;if(c===void 0&&(!u||(m=xe(o,a))!=null&&m.writable)&&(c=i(()=>{var w=Oe(u?o[a]:T),G=Z(w);return G}),n.set(a,c)),c!==void 0){var v=me(c);return v===T?void 0:v}return Reflect.get(o,a,l)},getOwnPropertyDescriptor(o,a){var l=Reflect.getOwnPropertyDescriptor(o,a);if(l&&"value"in l){var c=n.get(a);c&&(l.value=me(c))}else if(l===void 0){var u=n.get(a),v=u==null?void 0:u.v;if(u!==void 0&&v!==T)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return l},has(o,a){var v;if(a===ue)return!0;var l=n.get(a),c=l!==void 0&&l.v!==T||Reflect.has(o,a);if(l!==void 0||h!==null&&(!c||(v=xe(o,a))!=null&&v.writable)){l===void 0&&(l=i(()=>{var m=c?Oe(o[a]):T,w=Z(m);return w}),n.set(a,l));var u=me(l);if(u===T)return!1}return c},set(o,a,l,c){var yt;var u=n.get(a),v=a in o;if(r&&a==="length")for(var m=l;mZ(T)),n.set(m+"",w))}if(u===void 0)(!v||(yt=xe(o,a))!=null&&yt.writable)&&(u=i(()=>Z(void 0)),J(u,Oe(l)),n.set(a,u));else{v=u.v!==T;var G=i(()=>Oe(l));J(u,G)}var N=Reflect.getOwnPropertyDescriptor(o,a);if(N!=null&&N.set&&N.set.call(c,l),!v){if(r&&typeof a=="string"){var wt=n.get("length"),Ke=Number(a);Number.isInteger(Ke)&&Ke>=wt.v&&J(wt,Ke+1)}Xe(s)}return!0},ownKeys(o){me(s);var a=Reflect.ownKeys(o).filter(u=>{var v=n.get(u);return v===void 0||v.v!==T});for(var[l,c]of n)c.v!==T&&!(l in o)&&a.push(l);return a},setPrototypeOf(){In()}})}function St(e){try{if(e!==null&&typeof e=="object"&&ue in e)return e[ue]}catch{}return e}function rs(e,t){return Object.is(St(e),St(t))}var Rt,rr,Jt,Qt,en;function ss(){if(Rt===void 0){Rt=window,rr=document,Jt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Qt=xe(t,"firstChild").get,en=xe(t,"nextSibling").get,Et(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Et(n)&&(n.__t=void 0)}}function de(e=""){return document.createTextNode(e)}function j(e){return Qt.call(e)}function se(e){return en.call(e)}function fs(e,t){if(!D)return j(e);var n=j(y);if(n===null)n=y.appendChild(de());else if(t&&n.nodeType!==Le){var r=de();return n==null||n.before(r),ve(r),r}return t&&ze(n),ve(n),n}function as(e,t=!1){if(!D){var n=j(e);return n instanceof Comment&&n.data===""?se(n):n}if(t){if((y==null?void 0:y.nodeType)!==Le){var r=de();return y==null||y.before(r),ve(r),r}ze(y)}return y}function is(e,t=1,n=!1){let r=D?y:e;for(var s;t--;)s=r,r=se(r);if(!D)return r;if(n){if((r==null?void 0:r.nodeType)!==Le){var f=de();return r===null?s==null||s.after(f):r.before(f),ve(f),f}ze(r)}return ve(r),r}function sr(e){e.textContent=""}function ls(){return!1}function fr(e,t,n){return document.createElementNS(t??Hn,e,void 0)}function ze(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Le;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function os(e){D&&j(e)!==null&&sr(e)}let Nt=!1;function ar(){Nt||(Nt=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const n of e.target.elements)(t=n.__on_r)==null||t.call(n)})},{capture:!0}))}function dt(e){var t=_,n=h;re(null),Re(null);try{return e()}finally{re(t),Re(n)}}function us(e,t,n,r=n){e.addEventListener(t,()=>dt(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),ar()}function tn(e){h===null&&(_===null&&kn(),xn()),he&&On()}function ir(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function B(e,t,n){var r=h;r!==null&&(r.f&Y)!==0&&(e|=Y);var s={ctx:S,deps:null,nodes:null,f:e|R|P,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{Ne(s)}catch(o){throw pe(s),o}else t!==null&&z(s);var f=s;if(n&&f.deps===null&&f.teardown===null&&f.nodes===null&&f.first===f.last&&(f.f&Fe)===0&&(f=f.first,(e&K)!==0&&(e&Ve)!==0&&f!==null&&(f.f|=Ve)),f!==null&&(f.parent=r,r!==null&&ir(f,r),_!==null&&(_.f&A)!==0&&(e&we)===0)){var i=_;(i.effects??(i.effects=[])).push(f)}return s}function nn(){return _!==null&&!H}function lr(e){const t=B(Me,null,!1);return E(t,g),t.teardown=e,t}function cs(e){tn();var t=h.f,n=!_&&(t&U)!==0&&(t&ne)===0;if(n){var r=S;(r.e??(r.e=[])).push(e)}else return rn(e)}function rn(e){return B(Pe|Ft,e,!1)}function _s(e){return tn(),B(Me|Ft,e,!0)}function vs(e){Se.ensure();const t=B(we|Fe,e,!0);return(n={})=>new Promise(r=>{n.outro?_r(t,()=>{pe(t),r(void 0)}):(pe(t),r(void 0))})}function ds(e){return B(Pe,e,!1)}function or(e){return B(it|Fe,e,!0)}function ps(e,t=0){return B(Me|t,e,!0)}function hs(e,t=[],n=[],r=[]){Kn(r,t,n,s=>{B(Me,()=>e(...s.map(me)),!0)})}function ws(e,t=0){var n=B(K|t,e,!0);return n}function ys(e){return B(U|Fe,e,!0)}function sn(e){var t=e.teardown;if(t!==null){const n=he,r=_;Ot(!0),re(null);try{t.call(null)}finally{Ot(n),re(r)}}}function pt(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&dt(()=>{s.abort(fe)});var r=n.next;(n.f&we)!==0?n.parent=null:pe(n,t),n=r}}function ur(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&U)===0&&pe(t),t=n}}function pe(e,t=!0){var n=!1;(t||(e.f&Mt)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(cr(e.nodes.start,e.nodes.end),n=!0),pt(e,t&&!n),De(e,0),E(e,Q);var r=e.nodes&&e.nodes.t;if(r!==null)for(const f of r)f.stop();sn(e);var s=e.parent;s!==null&&s.first!==null&&fn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function cr(e,t){for(;e!==null;){var n=e===t?null:se(e);e.remove(),e=n}}function fn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function _r(e,t,n=!0){var r=[];an(e,r,!0);var s=()=>{n&&pe(e),t&&t()},f=r.length;if(f>0){var i=()=>--f||s();for(var o of r)o.out(i)}else s()}function an(e,t,n){if((e.f&Y)===0){e.f^=Y;var r=e.nodes&&e.nodes.t;if(r!==null)for(const o of r)(o.is_global||n)&&t.push(o);for(var s=e.first;s!==null;){var f=s.next,i=(s.f&Ve)!==0||(s.f&U)!==0&&(e.f&K)!==0;an(s,t,i?n:!1),s=f}}}function ms(e){ln(e,!0)}function ln(e,t){if((e.f&Y)!==0){e.f^=Y,(e.f&g)===0&&(E(e,R),z(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Ve)!==0||(n.f&U)!==0;ln(n,s?t:!1),n=r}var f=e.nodes&&e.nodes.t;if(f!==null)for(const i of f)(i.is_global||t)&&i.in()}}function Es(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:se(n);t.append(n),n=s}}let qe=!1,he=!1;function Ot(e){he=e}let _=null,H=!1;function re(e){_=e}let h=null;function Re(e){h=e}let M=null;function on(e){_!==null&&(M===null?M=[e]:M.push(e))}let x=null,k=0,I=null;function vr(e){I=e}let un=1,ie=0,ce=ie;function xt(e){ce=e}function cn(){return++un}function He(e){var t=e.f;if((t&R)!==0)return!0;if(t&A&&(e.f&=~_e),(t&V)!==0){for(var n=e.deps,r=n.length,s=0;se.wv)return!0}(t&P)!==0&&b===null&&E(e,g)}return!1}function _n(e,t,n=!0){var r=e.reactions;if(r!==null&&!(M!==null&&Ae.call(M,e)))for(var s=0;s{e.ac.abort(fe)}),e.ac=null);try{e.f|=Je;var c=e.fn,u=c();e.f|=ne;var v=e.deps,m=d==null?void 0:d.is_fork;if(x!==null){var w;if(m||De(e,k),v!==null&&k>0)for(v.length=k+x.length,w=0;we});function pr(e){return(Ze==null?void 0:Ze.createHTML(e))??e}function hn(e){var t=fr("template");return t.innerHTML=pr(e.replaceAll("","")),t.content}function q(e,t){var n=h;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function Ss(e,t){var n=(t&jt)!==0,r=(t&Mn)!==0,s,f=!e.startsWith("");return()=>{if(D)return q(y,null),y;s===void 0&&(s=hn(f?e:""+e),n||(s=j(s)));var i=r||Jt?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=j(i),a=i.lastChild;q(o,a)}else q(i,i);return i}}function hr(e,t,n="svg"){var r=!e.startsWith(""),s=(t&jt)!==0,f=`<${n}>${r?e:""+e}`,i;return()=>{if(D)return q(y,null),y;if(!i){var o=hn(f),a=j(o);if(s)for(i=document.createDocumentFragment();j(a);)i.appendChild(j(a));else i=j(a)}var l=i.cloneNode(!0);if(s){var c=j(l),u=l.lastChild;q(c,u)}else q(l,l);return l}}function Rs(e,t){return hr(e,t,"svg")}function Ns(e=""){if(!D){var t=de(e+"");return q(t,t),t}var n=y;return n.nodeType!==Le?(n.before(n=de()),ve(n)):ze(n),q(n,n),n}function Os(){if(D)return q(y,null),y;var e=document.createDocumentFragment(),t=document.createComment(""),n=de();return e.append(t,n),q(t,n),e}function xs(e,t){if(D){var n=h;((n.f&ne)===0||n.nodes.end===null)&&(n.nodes.end=y),Yn();return}e!==null&&e.before(t)}export{rr as $,de as A,Fe as B,Lt as C,se as D,Ve as E,$r as F,ve as G,Mt as H,y as I,j as J,ms as K,pe as L,_r as M,ys as N,Es as O,ls as P,S as Q,_s as R,Sn as S,Er as T,As as U,ct as V,Zr as W,is as X,hs as Y,An as Z,ts as _,xs as a,z as a$,mr as a0,xe as a1,xr as a2,jr as a3,he as a4,h as a5,Q as a6,Yr as a7,Hr as a8,Ge as a9,Hn as aA,Ct as aB,gn as aC,Rr as aD,ar as aE,Ar as aF,Fn as aG,as as aH,cr as aI,ot as aJ,lt as aK,q as aL,fr as aM,Vr as aN,Ur as aO,Rs as aP,qn as aQ,$n as aR,Os as aS,Ns as aT,nn as aU,Xe as aV,Rn as aW,qr as aX,Se as aY,E as aZ,R as a_,Lr as aa,Fr as ab,Jn as ac,ue as ad,br as ae,Kr as af,os as ag,Ir as ah,Yn as ai,Xr as aj,Ln as ak,Wr as al,jn as am,ft as an,Tr as ao,Nr as ap,yr as aq,Dr as ar,Mr as as,vt as at,Cr as au,Y as av,Tt as aw,U as ax,Pr as ay,sr as az,Qr as b,V as b0,Gn as b1,Re as b2,re as b3,Ue as b4,Un as b5,_ as b6,Be as b7,kr as b8,Gr as b9,dt as ba,ss as bb,Or as bc,vs as bd,Ts as be,je as bf,Rt as bg,gr as bh,fs as c,Z as d,Oe as e,Ss as f,me as g,ds as h,ws as i,cs as j,ns as k,us as l,d as m,mn as n,Br as o,Jr as p,rs as q,zr as r,J as s,lr as t,es as u,bt as v,D as w,gs as x,bs as y,ps as z}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CGq8RnJq.js.br b/apps/dashboard/build/_app/immutable/chunks/CGq8RnJq.js.br new file mode 100644 index 0000000000000000000000000000000000000000..ade9b66c0a5abfb8263e1de0072c9fc905c8d921 GIT binary patch literal 9260 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 Os&ic1>HPj(f7}3x7#c$W literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CGq8RnJq.js.gz b/apps/dashboard/build/_app/immutable/chunks/CGq8RnJq.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..15cb9614aa17b7360f9a189a0e9604eb8bd66233 GIT binary patch literal 10303 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 zV=<e});function O(e){return(m==null?void 0:m.createHTML(e))??e}function g(e){var a=M("template");return a.innerHTML=O(e.replaceAll("","")),a.content}function n(e,a){var r=T;r.nodes===null&&(r.nodes={start:e,end:a,a:null,t:null})}function R(e,a){var r=(a&p)!==0,f=(a&b)!==0,s,c=!e.startsWith("");return()=>{if(d)return n(i,null),i;s===void 0&&(s=g(c?e:""+e),r||(s=o(s)));var t=f||y?document.importNode(s,!0):s.cloneNode(!0);if(r){var _=o(t),u=t.lastChild;n(_,u)}else n(t,t);return t}}function D(e,a,r="svg"){var f=!e.startsWith(""),s=(a&p)!==0,c=`<${r}>${f?e:""+e}`,t;return()=>{if(d)return n(i,null),i;if(!t){var _=g(c),u=o(_);if(s)for(t=document.createDocumentFragment();o(u);)t.appendChild(o(u));else t=o(u)}var l=t.cloneNode(!0);if(s){var E=o(l),N=l.lastChild;n(E,N)}else n(l,l);return l}}function F(e,a){return D(e,a,"svg")}function H(e=""){if(!d){var a=v(e+"");return n(a,a),a}var r=i;return r.nodeType!==A?(r.before(r=v()),L(r)):C(r),n(r,r),r}function I(){if(d)return n(i,null),i;var e=document.createDocumentFragment(),a=document.createComment(""),r=v();return e.append(a,r),n(a,r),e}function $(e,a){if(d){var r=T;((r.f&w)===0||r.nodes.end===null)&&(r.nodes.end=i),x();return}e!==null&&e.before(a)}export{$ as a,F as b,I as c,n as d,R as f,H as t}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js.br b/apps/dashboard/build/_app/immutable/chunks/CHOnp4oo.js.br deleted file mode 100644 index e88d0d13bfc9cb800fbf4f2eee4f61879177f6ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbO-G6n#Q!g22sr`9%cQG~Qqby{Vn0cV7#nbb?EWmqfInq>F4XwH0%%au?V zphuSZ3Bv4_|9)-N&zlViEtN)v5NU1Yv8Z@6sbV1$3MZ*u4Y!Ertd!A3MB*1KoLA_p z7d^JZgMNdhkPFW$$v0f;svfQaj$YG%r=MIGL*QC>%;ABY;3lxvccyzj1hv7g;#j`#w2r&Xb1j6yRW%V5W$O6*S|FA_*PE zBfx9n_O_+@-V`y0f1kK9(@#q_lyPa;6@pOEwPxu#m3&(iXU1ye4L;wUKpvWdJla)& zPj+2#2-%odU@tIqu^NV2#Dik8_6GkEEFadN8BAlfL0hbBx3_^5A~|RLAcae)3$*Xd zxAfo=3uR<`8wZV7_V_CK^1q)Fgk;7k-8^u*sq*<%58J;SnbivRsfT8fYgUQ9p}&tB zhL(@kFX&slil5;znu!9jyh>1U4jrP78HdC|xLrw3)Q=0r^%_trA*2@asRfmH(aAFM zG5fXUeJ`?VCW-FnPfp*A2iT2> zX8P$%aB+PQ>q7~edR_Z(S}S_Hu@FQo=*<*x^_>()tiH4ikr2MX4VJJY_b%b{525Fm zdEJ~iA;N7R`q>uQANL0hz#exp$KIiKz~CO8$xN|GiQtB0>aUi`ZuBb4lqqL$tC1NV zr&!IHBlkWtp=6^?J^5e*8n^EGk_r(udieR%t`(h za6|Go;DYW0RP;xHhU8tqXOfG6FC?S-isk`sNj?OewY4?tEdMy$JpTRo_+awCTvqI) z?X8N^XyA0e z_4`cLd1nWVIGu8Pwp#|fP_-0yka=Ejl=Pfok$m-J-e}D>*op_>-10`rlCPA4?6N<} zD7)+rhr{6{LnN7(Mtj!2^RIzPrU+Kd3!7_Gu@fo7!2nKzz4OxgF%#=*EJ==oo_vHB zJAYr_`U5%GU|)z4)#1EIXGf*za~>VK$HuQxrl*ns#bn>qP~ove4Go1bNKFwkOSBCJ z;KUNjDUYN12S&1o12|#8A!2M5FY3eLby}HnyJqe4Cid{XsTdsfM>uwQsf^|*>5s5z zYOpE$Ct<)NZH3R3bbhvKR8?qrqAj+p9QQPM^5^g1+m3@zfdjH4bGv1hywyLgnA{tR zO7ZRTVsG2Y#lG%}YA-)V;WzUCho7c~zCRVPgfbLh;3*d7ur?OFIJ1%3?$hylZRIi` zU}0d31^QfWHms{yIs_ROv2riMr42!p@INx>QUafa0flrg)H?=0)BTx2Me59;dc)v# z>Y}42@tN4{-rN9-EW(V;QX2 z0V3UkMI6t-B5AN>k!%{const n=s()??null;e.ensure(n,n&&(o=>n(o,...a)))},t)}export{E as s}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.br b/apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.br deleted file mode 100644 index 8c1474664d2ee8a946e9c4e9d6780ce8cecadd93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmV;U09^kYxd4DH4$L#--F*-##bsWaVOrdlD)@E_1@jVrpsMxGlUkotfTK&7m$1Gn zTD$x7Jjy)Rwk&8-Tb{JVIj0A?+t~KG6+!wn;sW=pG`VUMD`4C2e;T4}G90xUo)A)P z6(sMPe{_xH90e?FWrDl??Sr8|wH6j601U#n9fx((hF}GZqIq+#{~nDwu)%R)L=7-9 RK^*&M;|nD6EwroH;|EnAO{f3> diff --git a/apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.gz b/apps/dashboard/build/_app/immutable/chunks/CJCPY1OL.js.gz deleted file mode 100644 index b91f18a15a51f483cd5b13b41a3d7e5fb4952846..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmV;a09OAWiwFP!000026E)7U3WG2dh2gzV5gg=R2AsSrg#xtYHEKGw(=>Sj_tF{y(BNYJ4lBQvhMi>f{H$a^79IPq`?D2t^ Xc*JDBd%&I;l05wYEND)(x&QzG+citx diff --git a/apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js b/apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js deleted file mode 100644 index 0b355f6..0000000 --- a/apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js +++ /dev/null @@ -1 +0,0 @@ -import{W as S,X as h,v as k,Y as T,S as Y}from"./CpWkWWOo.js";function t(r,i){return r===i||(r==null?void 0:r[Y])===i}function x(r={},i,a,c){return S(()=>{var f,s;return h(()=>{f=s,s=[],k(()=>{r!==a(...s)&&(i(r,...s),f&&t(a(...f),r)&&i(null,...f))})}),()=>{T(()=>{s&&t(a(...s),r)&&i(null,...s)})}}),r}export{x as b}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js.br b/apps/dashboard/build/_app/immutable/chunks/CJsMJEun.js.br deleted file mode 100644 index 4f223100cff5742815073986bf0d88ac1720dc06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmV;$06PC0JOLoYG@W~w3CJ&9U~c51c3^l1sF$aj3x}R4z)@Q?Hc;B~#O+d_@V_$= z({Ze?cW6oVaG6Z9JIM|(4YF^n?9w$o0RRA~P-o@< diff --git a/apps/dashboard/build/_app/immutable/chunks/CKbQrCJw.js b/apps/dashboard/build/_app/immutable/chunks/CKbQrCJw.js new file mode 100644 index 0000000..739a73e --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/CKbQrCJw.js @@ -0,0 +1 @@ +import"./Bzak7iHL.js";import{Y as m,w as y,ai as v,a5 as C,aI as g,I as x,C as _,D as w,aJ as A,aK as z,aL as u,G as L,aM as H,aN as V,aO as E,J as d,a as N,aP as b,c as I,r as O}from"./CGq8RnJq.js";import{s as M}from"./DqfV0sZu.js";import{s as T}from"./uCQU803Y.js";import{p as n}from"./DV6OI5iy.js";function Z(h,c,t=!1,l=!1,p=!1){var a=h,r="";m(()=>{var o=C;if(r===(r=c()??"")){y&&v();return}if(o.nodes!==null&&(g(o.nodes.start,o.nodes.end),o.nodes=null),r!==""){if(y){x.data;for(var e=v(),f=e;e!==null&&(e.nodeType!==_||e.data!=="");)f=e,e=w(e);if(e===null)throw A(),z;u(x,f),a=L(e);return}var k=t?V:l?E:void 0,s=H(t?"svg":l?"math":"template",k);s.innerHTML=r;var i=t||l?s:s.content;if(u(d(i),i.lastChild),t||l)for(;d(i);)a.before(d(i));else a.before(i)}})}const P={blackbox:'',memorypr:'',graph:'',reasoning:'',memories:'',timeline:'',feed:'',explore:'',activation:'',dreams:'',schedule:'',importance:'',duplicates:'',contradictions:'',patterns:'',intentions:'',stats:'',settings:'',command:'',search:'',filter:'',sparkle:'',chevron:'',close:'',pulse:'',logo:''};var R=b('');function Y(h,c){let t=n(c,"size",3,20),l=n(c,"strokeWidth",3,1.6),p=n(c,"class",3,""),a=n(c,"draw",3,!1);var r=R(),o=I(r);Z(o,()=>P[c.name],!0),O(r),m(()=>{M(r,"width",t()),M(r,"height",t()),M(r,"stroke-width",l()),T(r,0,`vestige-icon ${a()?"vestige-icon-draw":""} ${p()??""}`,"svelte-1eqehiz")}),N(h,r)}export{Y as I}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CKbQrCJw.js.br b/apps/dashboard/build/_app/immutable/chunks/CKbQrCJw.js.br new file mode 100644 index 0000000000000000000000000000000000000000..24924ae520e7e8901410e27140bfc3dd133ab091 GIT binary patch literal 1929 zcmV;42X^=y`V~=>P0maZIuGn-jtDG#R2X>Xlo0Js%+C=_ZM(O*{{Al~oZm9rKhct zlmA^SD>GSmCrPNfl?7oAeXC@vZho>eJINBx9x!DNm}Mp4zB)oxRb|-r)%VA=hXw4I zXo$-EV0yP{8om@gX5fnFC51MzC@4sDsVsxq8=R3CA%KcIV9Tr;7?@L zD={tRYM9Fq79o|(Y;+T$LXCT<3407lFPIPjr*R-^oK`Z6-A;k}5ygc-3RpR6{ajfn zs4}_qYc^Ah(KY!TquR0g}h(Ld68Om|(z}`)Ci{ z1H0XR{=&!bvB+F7MF>6&Fr@%&D2`E}!7XAWNb9Vf6`|NWo9S|68(CZ-Fgj*(uKN2g$=rYH<%t239J;LorrwLccvaOiUasCDQORa03)`kD|lT`NqEv@{_su-4~ zftq0rwauKTxLfuZE*6)p*GJzn*7-KD ze93}5_`65i>o@sZU-Yz0rjvnUz(8>eFI>0sNk@wdKmyCf4ANY||AbbDQf*)OM)RT# zj}jszax70bK@R0QEd)niyp&x#nTRr?Ub1lb*WQoHIX8L9F28wq;kbb6XQ(JUC6qXa zf4)V7QEaF+&yo^abDvRI%%z+|pQfnf{hkhMLo!hHMY9aPncpTcx zfL^Pow0Q}TA19fnL&WR26^6w#g@vljc4~~6(6$FO-lLAK32a(gp@0OpYk^mxPye0J z^~8%ezmh4I!J%ejtV~6tHr=M*(`PX&kn8T)uTVR?JUxf?@L1&~o#hzuAH6&vsXR5|a^&p&!-rr~ai!vR+F`5&o6IE+xZ+|6RK+06>;{y$no zkD9d`tA``0rkc}VT$JytLb|CVKh1>_#|Rj3`RJ3R*vS-UABt^ou1*O6J^tb{gc$EO zm-|uiag?e^97v~rlF9yrO0enIXdL|u_L@wqCz!tIHe26p(wYtgp!WAC2tAfz4SuC0 zGVg0A5qmjy9`Xsa(q$it8>Zf1J*ID#T~vXlX#|YcOJgu^(}u{aR6O%O)>V5v*D?93 z*<4_U?A91IH>G;21Zm}5b6&K?hXdICP~e!46*3U?K-oC^r|}-&sDq*IUrueZYr@#{ zIm_Jtm^+UUf?rZ-4Cz+1q;QQkmrBcqe0!!T436tJwl*+3K+)zA^8m_F$Fnz;-LR$} z>P0K4;i{=o+y48Q=r6~VFVyo=b~_CqH@@1DAD(T#obC5#3~=~|RS5J#kMdj^6qS^u zJn0uS3ij#__{+g%viQglk1k!ss&Iyg2&wVKrvJi1zZ_A{{$%rdZdt&w?b2V3(&_aojl3YtqK4{*uF8sJcTqIqtYCJ7_EM#c52p#%olmuSPi z?~eB6(Qjn}jW`t#agkEsFd9dh=@{ye;q~OXZQy+!#Az0HFtYG(sHqsnD2XlEly8ep z{w;|mG)6(APNgyig`K6G zOEGGM7kg(?uVLpMG?u4$SfH@5;gBB7Cf^iU2MXQAQa9S7L!w`T(QF`}6l`fD>|8^y ziOloPo0|R~8ujO!_f&+Q)3DC5X%Mvyze_oaec!xjH8N|rbKJcNOESb5q+)1y50|#eUbz~T;Umb}dsVf*moi9YMIVrBs%8Z5o7+Xe!uLkmys zQ6Pt36618JGArY;@Cm*%LO)ujr3IuRm28`Qo+Wrj7iEk&B|=%CdjYiB16eibU~5tE z{o$H#1yaH%LZkC45)#PW>o;G12i9iPT0puwxJdHX=0a$Ka(mHCpd~a4>%zsJB6emx zlpZisA-vj&vy^ P(l}R@To>f2`rP>iwRXGx literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CKbQrCJw.js.gz b/apps/dashboard/build/_app/immutable/chunks/CKbQrCJw.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..7bde9b4f799a62c8126bed9413dd3ac71a85390e GIT binary patch literal 2207 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 s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p}; diff --git a/apps/dashboard/build/_app/immutable/chunks/CbBCXwzm.js.br b/apps/dashboard/build/_app/immutable/chunks/CbBCXwzm.js.br new file mode 100644 index 0000000000000000000000000000000000000000..ad24cbc23890c0239a8ef0b9d5391874d0ae2df9 GIT binary patch literal 141 zcmV;80CN8u;s79wgxo~yZEb>{IX4yLAc{0rrZc#LHX-Vo2|XB1g^!`7W7`}rW28vP=-wu0PPO;paG4hs%iW7 zX_BX`2*Qn0-|wKSTG$;3r7PcSx>!d!%F&*tv|M{pKco)hmp@&T$nzx0Zv5_*h$IYW zKym)+P@|_fh@oCTDe>diqJC#KXsG?b)fhJGvV=c(|I8-bOx7W|7HX>T zX8mPyp09;mGQQPjF10thh2}F2ZMjam1~i#}8=xIhKZwL!NF^Ar0o)dLKwu3>?A_SD z%&S7xj6Wg%e+Ozi6SiQG+SF^YT4xpGHG%G%pec#QB@K8(_%}9r&u*(cFMs(}l}zMH zGA_}2+;^=G9oornT=G@=Qm@pih#$5Pz{X?^Mt@(;U!t{OhFs?j9)QkUNasd1) zN1!hU`rJFDpsj(%Ae~Lq%{+mo@CS65F6;CFU-AD@&9tAbImGAn^l{var f=!1;r((T,t=0)=>{f=!0,s(t,T)}),f||s(!1,null)},i)}function l(a,r){return a===r||(a==null?void 0:a[e])===r}function H(a={},r,n,c){return I(()=>{var i,s;return O(()=>{i=s,s=[],Y(()=>{a!==n(...s)&&(r(a,...s),i&&l(n(...i),a)&&r(null,...i))})}),()=>{_(()=>{s&&l(n(...s),a)&&r(null,...s)})}}),a}export{H as b,G as i}; diff --git a/apps/dashboard/build/_app/immutable/chunks/Ccqjq5DS.js.br b/apps/dashboard/build/_app/immutable/chunks/Ccqjq5DS.js.br new file mode 100644 index 0000000000000000000000000000000000000000..7db8d4a0b7061cfe61301b68716b90b28670f023 GIT binary patch literal 418 zcmV;T0bTwZ&H@08!*tste_YnOWF(gi(UP5emkm-1I`xCOLh!v#rfi2;?vj^j(&jQb zk0m%j3>>ojpTC^Gdw`$xz)o$Mg4?RG8Pr5Mn zWpdrVgWrJmEr6 zRvQ+wA8-MX<@5Q-tIeSc$vbeTFA8jP29vLA`rw7G>#3u|*r~FK!bloL_6V^)DH6=O Mm&UdBR|B#d1|#p$i2wiq literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/Ccqjq5DS.js.gz b/apps/dashboard/build/_app/immutable/chunks/Ccqjq5DS.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..2b0ff3e0df404864bf99f06f3f260a96af258d4e GIT binary patch literal 455 zcmV;&0XY62iwFP!000026J1ilZrd;nz3(fW9t;T}Jm)eLG1MSglQccFKw4mEi=t3m zJ67k)i6l4M9R2%9c}uXJ9`*Q0J`z&z+s3#~Mbbtq*b_`ZhUXp32-YCq2sa=Xgf}3+ z6YfFQgi{Fg9OeWws0fzui{KW15yF&Of0632IpXCKl;xzNQv+A_&O2|Zqq(o>0L zCEW8)m2AShywTQ0mDr#(RJsfkl@Q`)>_j@EXphlgIC5eujV+eiu`03c+B&23h7CD~ zav+4`9o4sDiXP^y<&Y;*=T&1w3p0iWktnonO%V(bm-5UMt~J{Ge{z1s7#A0zVTrRd z!`MBbA0m-R!7@iW9DO)gY!14uYwkgDe_XVt+wiWR5J}v`91aYTwBwIPy+-LsJ{8ZL zQm48r)O4QC3i+{od2*z{{;?h1_N)>Xtay5chyE?`9-1XdVtE`hgFZqGDvoOw5{iSw xoMGez0)gA$KB4}lZ)1;g`@h_h8s*X#Kf-6Z>VIhXfy!r}egnt7b$ZVN004IO*}nh) literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/Ch9vNiEl.js b/apps/dashboard/build/_app/immutable/chunks/Ch9vNiEl.js new file mode 100644 index 0000000..f50949a --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/Ch9vNiEl.js @@ -0,0 +1 @@ +import{c,w as g}from"./DAau0uzT.js";const v=200;function $(){const{subscribe:e,set:n,update:t}=g({connected:!1,reconnecting:!1,events:[],lastHeartbeat:null,error:null});let o=null,s=null,d=0;function m(i){const l=i||(window.location.port==="5173"?`ws://${window.location.hostname}:3927/ws`:`ws://${window.location.host}/ws`);if((o==null?void 0:o.readyState)!==WebSocket.OPEN)try{o=new WebSocket(l),o.onopen=()=>{d=0,t(r=>({...r,connected:!0,reconnecting:!1,error:null}))},o.onmessage=r=>{try{const u=JSON.parse(r.data);t(f=>{if(u.type==="Heartbeat")return{...f,lastHeartbeat:u};const w=[u,...f.events].slice(0,v);return{...f,events:w}})}catch(u){console.warn("[vestige] Failed to parse WebSocket message:",u)}},o.onclose=()=>{t(r=>({...r,connected:!1})),p(l)},o.onerror=()=>{t(r=>({...r,error:"WebSocket connection failed"}))}}catch(r){t(u=>({...u,error:String(r)}))}}function p(i){s&&clearTimeout(s),t(r=>({...r,reconnecting:!0}));const l=Math.min(1e3*2**d,3e4);d++,s=setTimeout(()=>m(i),l)}function b(){s&&clearTimeout(s),o==null||o.close(),o=null,n({connected:!1,reconnecting:!1,events:[],lastHeartbeat:null,error:null})}function y(){t(i=>({...i,events:[]}))}function h(i){t(l=>{const r=[i,...l.events].slice(0,v);return{...l,events:r}})}return{subscribe:e,connect:m,disconnect:b,clearEvents:y,injectEvent:h}}const a=$(),S=c(a,e=>e.connected),H=c(a,e=>e.reconnecting),T=c(a,e=>e.events);c(a,e=>e.lastHeartbeat);const M=c(a,e=>{var n,t;return((t=(n=e.lastHeartbeat)==null?void 0:n.data)==null?void 0:t.memory_count)??0}),k=c(a,e=>{var n,t;return((t=(n=e.lastHeartbeat)==null?void 0:n.data)==null?void 0:t.avg_retention)??0}),_=c(a,e=>{var n,t;return((t=(n=e.lastHeartbeat)==null?void 0:n.data)==null?void 0:t.suppressed_count)??0}),W=c(a,e=>{var n,t;return((t=(n=e.lastHeartbeat)==null?void 0:n.data)==null?void 0:t.uptime_secs)??0}),N=c(a,e=>e.events.filter(n=>n.type==="TraceEvent")),P=c(a,e=>{var t;const n=e.events.find(o=>o.type==="TraceEvent");return((t=n==null?void 0:n.data)==null?void 0:t.run_id)??null}),R=c(a,e=>e.events.find(n=>n.type==="TraceEvent")??null),C=c(a,e=>e.events.filter(n=>n.type==="MemoryPrOpened"||n.type==="MemoryPrDecided"));function F(e){if(!Number.isFinite(e)||e<0)return"—";const n=Math.floor(e/86400),t=Math.floor(e%86400/3600),o=Math.floor(e%3600/60),s=Math.floor(e%60);return n>0?t>0?`${n}d ${t}h`:`${n}d`:t>0?o>0?`${t}h ${o}m`:`${t}h`:o>0?s>0?`${o}m ${s}s`:`${o}m`:`${s}s`}export{S as a,P as b,M as c,k as d,T as e,F as f,H as i,R as l,C as m,_ as s,N as t,W as u,a as w}; diff --git a/apps/dashboard/build/_app/immutable/chunks/Ch9vNiEl.js.br b/apps/dashboard/build/_app/immutable/chunks/Ch9vNiEl.js.br new file mode 100644 index 0000000000000000000000000000000000000000..4bfc8a05ddef92adebf09e2f63e9127e2316b56b GIT binary patch literal 932 zcmV;V16%wX&fL#-?#087uN9-{;n{{xtJt$7Rr*G>3ozQ++z-M2}ka z^EcVd?{h_!lcv&(E#UdsgvCn7%rPuI+}z%>N)>A`%h<9Nn_&PGQ-!JbGIM^se|ngg z|E}7BUAKBn3Jf_lFsZ}ygVXW8|0(p;gvAwA297mLExW2~QaMrM@8AaWS6zQ}%~D74 z9T>la(ckort-i{DqhN*PgtHNfGXwIZZ&^|V&lBi{5T3jlR?c)-9wu%Y=p6QI5-Kjr z?YO-7_y3XWMJ}{p5n(!QHB;zBEs(R40+OF&^^hW~O=DHir3`7k;-4KMrHdaefqw@g zwMAAdA1gZSn};98Rpl+@KQDENW~P6CCID7>n#1&CSo*1)I!q>WR*U!M zTPKg)M6M{ZUNay&9{ckWJyGI<`6lM>Z&aU$&Ow5lf{ zV4!DmTaC9&lwREVDuxR)8C~&!xRa6tlXod3ku3@36TQ&^t zmjY6NRB2YQfC#e*~5 zmKf#C*F>p(Csbi68W<};WUx#*OQVx+t9ceceiS{GbnO2cmZeNcOHre%%h_MAqqb4h zz199srVT1)nq{@G6LX{vvg2>iO*pLjCaCiN^wDH_V%yHtPhCBK!qS_F^zNJyqrKfS zn`+yFTSa!$ZP~che6;WEU(;e)g76UO!#-`h65@*^J+xOo4`Tj1|F4X($1s5P-&SKA zVu$T}0-6Sa^1YOPX~Gj@P1K-q81!A)>2&4)&Am2#AoNE)K07&*5-CEQ+oj{f6L1(u zfSmCOEKD$qq)}Xpoyam?fAVjux2esx`k3bb)Fb9LLDL|Zre5#zTZeSz*OLY8A@+oOk{wd=Uy>HRST2lXp8xZmb4c-GDwU~HI`3?V@uWu8+|N-Foa4!SuQPcp~X4awM6 zItAfvK3>lFa!KY~WO5$nGEJ;PXv<`b`M(^#KlV=_<~r_l_N%8_6RC|z3aI1b-;UmQ z=K3N2o@#A1f-WBsBALtTbS8P`MX?MOB-x^G5Qt!pv0E7SW%>vvyt@8$85p&wuo{?q zYXQjvDnlvc6a*sy>s44FHAJxZ_*qAyx|4N(hwc&GLld#}|9K!Lz(ZNARkKtX=&ECGn zmB7tgd9)STeV|zAI`)vf7`h$Xg=wudu_)m> zU|X8X6}#hhw({@KR=)D5>}<9C?aQgnKQ3s-_3ALB4w6re>4I|c1=;QxPq4`@gM{IA zNBb-#2?f@JaE(kr&o|s{hyr@E5j2TmCs&Le$W|S`SQ%8aM0tXmwm3ozBZ57(+P!c@ zv&p+m6BbZNwHTzb6ec)5#d)HSuMj4gjR)ujtHchraR#ptN0-y7!qtatr=;6g2vtrE zuE{_{s@o`+Pa7JJcy2&pgq~R6n>Q*+!Of44x6SoVW~S}5O=;~yWcYaWJUGa zwJODcXP9uad-U@QIb*NV<=5D`HE~O&S`Ss*o6ye3W!~NNDJI5zh zBzHxY**QVJ-sK~!#n=n&ny|yb4xh=Y)MW(SW?h|C7NDZ YV(6_UB~2`u*WI7~1Hme^;L!;H0N(WvyZ`_I literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CkiUhdKe.js b/apps/dashboard/build/_app/immutable/chunks/CkiUhdKe.js new file mode 100644 index 0000000..d50d685 --- /dev/null +++ b/apps/dashboard/build/_app/immutable/chunks/CkiUhdKe.js @@ -0,0 +1,376 @@ +import{C as mt,S as vg,I as Ag,c as Rg,G as ll,d as _t,e as Ku,a as Yn,f as Zs,g as Js,W as ln,h as Pn,B as Ct,i as dl,j as Cg,D as zs,k as oa,P as hl,V as j,L as pl,N as en,l as Eg,m as fl,n as wg,o as Mg,p as Bg,q as Fg,r as Ug,s as Pg,t as Dg,E as gl,M as ml,R as Ss,u as ft,v as _o,w as Xs,x as ms,b as Ye,y as Me,z as ze,U as Le,F as yl,A as xl,J as Lg,K as Ig,O as Xu,Q as Ys,T as Vg,X as Gg,Y as Yu,Z as Og,_ as tn,$ as Tl,a0 as kg,a1 as _l,a2 as aa,a3 as vs,H as pt,a4 as ss,a5 as kt,a6 as Ie,a7 as Dn,a8 as zg,a9 as Wg,aa as ua,ab as fr,ac as Ln,ad as $g,ae as Hg,af as Ur,ag as bl,ah as qg,ai as Kg,aj as Xg,ak as Yg,al as ot,am as jg,an as Nl,ao as Qg,ap as bo,aq as Sl,ar as sn,as as ju,at as Zg,au as Jg,av as vl,aw as q,ax as em,ay as tm,az as No,aA as js,aB as sm,aC as nm,aD as rm,aE as im,aF as om,aG as am,aH as um,aI as cm,aJ as lm,aK as dm,aL as hm,aM as pm,aN as fm,aO as gm,aP as jn,aQ as Qn,aR as mm,aS as oi,aT as ai,aU as ui,aV as ys,aW as ym,aX as ci,aY as ca,aZ as li,a_ as So,a$ as bt,b0 as Al,b1 as Rl,b2 as Cl,b3 as El,b4 as wl,b5 as Ml,b6 as Bl,b7 as Fl,b8 as Ul,b9 as Gs,ba as Pl,bb as Dl,bc as Ll,bd as Il,be as Vl,bf as Gl,bg as Ol,bh as kl,bi as zl,bj as Wl,bk as $l,bl as xm,bm as Tm,bn as _m,bo as Hl,bp as $r,bq as Hr,br as qr,bs as ql,bt as Kl,bu as Xl,bv as Yl,bw as jl,bx as Ql,by as Zl,bz as Jl,bA as bm,bB as Nm,bC as ed,bD as An,bE as Rn,bF as Ws,bG as Sm,bH as la,bI as vm,bJ as Am,bK as da,bL as ha,bM as pa,bN as fa,bO as Li,bP as Pr,bQ as Dr,bR as Lr,bS as Qu,bT as Zu,bU as Ju,bV as ec,bW as tc,bX as vo,bY as Ao,bZ as Ro,b_ as Co,b$ as Eo,c0 as wo,c1 as Mo,c2 as Bo,c3 as Fo,c4 as Uo,c5 as Po,c6 as Do,c7 as Lo,c8 as Io,c9 as Vo,ca as Go,cb as Ii,cc as Rm,cd as sc,ce as nc,cf as rc,cg as Cm,ch as Em,ci as wm,cj as Mm,ck as Bm,cl as Fm,cm as Um,cn as Pm,co as Dm,cp as Lm,cq as Im,cr as Vm,cs as Gm,ct as Om,cu as km,cv as zm,cw as Wm,cx as $m,cy as Hm,cz as qm,cA as Km,cB as td,cC as Xm}from"./Bo4EDkTQ.js";import{cD as RR,cE as CR,cF as ER,cG as wR,cH as MR,cI as BR,cJ as FR,cK as UR,cL as PR,cM as DR,cN as LR,cO as IR,cP as VR,cQ as GR,cR as OR,cS as kR,cT as zR,cU as WR,cV as $R,cW as HR,cX as qR,cY as KR,cZ as XR,c_ as YR,c$ as jR,d0 as QR,d1 as ZR,d2 as JR,d3 as e0,d4 as t0,d5 as s0,d6 as n0,d7 as r0,d8 as i0,d9 as o0,da as a0,db as u0,dc as c0,dd as l0,de as d0,df as h0,dg as p0,dh as f0,di as g0,dj as m0,dk as y0,dl as x0,dm as T0,dn as _0,dp as b0,dq as N0,dr as S0,ds as v0,dt as A0,du as R0,dv as C0,dw as E0,dx as w0,dy as M0,dz as B0,dA as F0,dB as U0,dC as P0,dD as D0,dE as L0,dF as I0,dG as V0,dH as G0,dI as O0,dJ as k0,dK as z0,dL as W0,dM as $0,dN as H0,dO as q0,dP as K0,dQ as X0,dR as Y0,dS as j0,dT as Q0,dU as Z0,dV as J0,dW as eC,dX as tC,dY as sC,dZ as nC,d_ as rC,d$ as iC,e0 as oC,e1 as aC,e2 as uC,e3 as cC,e4 as lC,e5 as dC,e6 as hC,e7 as pC,e8 as fC,e9 as gC,ea as mC,eb as yC,ec as xC,ed as TC,ee as _C,ef as bC,eg as NC,eh as SC,ei as vC,ej as AC,ek as RC,el as CC,em as EC,en as wC,eo as MC,ep as BC,eq as FC,er as UC,es as PC,et as DC,eu as LC,ev as IC,ew as VC,ex as GC,ey as OC,ez as kC,eA as zC,eB as WC,eC as $C,eD as HC,eE as qC,eF as KC,eG as XC,eH as YC,eI as jC,eJ as QC,eK as ZC,eL as JC,eM as eE,eN as tE,eO as sE,eP as nE,eQ as rE,eR as iE,eS as oE,eT as aE,eU as uE,eV as cE,eW as lE,eX as dE,eY as hE,eZ as pE,e_ as fE,e$ as gE,f0 as mE,f1 as yE,f2 as xE,f3 as TE,f4 as _E,f5 as bE,f6 as NE,f7 as SE,f8 as vE,f9 as AE,fa as RE,fb as CE,fc as EE,fd as wE,fe as ME,ff as BE,fg as FE,fh as UE,fi as PE,fj as DE,fk as LE,fl as IE,fm as VE,fn as GE,fo as OE,fp as kE,fq as zE,fr as WE,fs as $E,ft as HE,fu as qE,fv as KE,fw as XE,fx as YE,fy as jE,fz as QE,fA as ZE}from"./Bo4EDkTQ.js";/** + * @license + * Copyright 2010-2024 Three.js Authors + * SPDX-License-Identifier: MIT + */const Ym=["alphaMap","alphaTest","anisotropy","anisotropyMap","anisotropyRotation","aoMap","attenuationColor","attenuationDistance","bumpMap","clearcoat","clearcoatMap","clearcoatNormalMap","clearcoatNormalScale","clearcoatRoughness","color","dispersion","displacementMap","emissive","emissiveMap","envMap","gradientMap","ior","iridescence","iridescenceIOR","iridescenceMap","iridescenceThicknessMap","lightMap","map","matcap","metalness","metalnessMap","normalMap","normalScale","opacity","roughness","roughnessMap","sheen","sheenColor","sheenColorMap","sheenRoughnessMap","shininess","specular","specularColor","specularColorMap","specularIntensity","specularIntensityMap","specularMap","thickness","transmission","transmissionMap"];class jm{constructor(e){this.renderObjects=new WeakMap,this.hasNode=this.containsNode(e),this.hasAnimation=e.object.isSkinnedMesh===!0,this.refreshUniforms=Ym,this.renderId=0}firstInitialization(e){return this.renderObjects.has(e)===!1?(this.getRenderObjectData(e),!0):!1}getRenderObjectData(e){let t=this.renderObjects.get(e);if(t===void 0){const{geometry:s,material:n,object:r}=e;if(t={material:this.getMaterialData(n),geometry:{attributes:this.getAttributesData(s.attributes),indexVersion:s.index?s.index.version:null,drawRange:{start:s.drawRange.start,count:s.drawRange.count}},worldMatrix:r.matrixWorld.clone()},r.center&&(t.center=r.center.clone()),r.morphTargetInfluences&&(t.morphTargetInfluences=r.morphTargetInfluences.slice()),e.bundle!==null&&(t.version=e.bundle.version),t.material.transmission>0){const{width:i,height:a}=e.context;t.bufferWidth=i,t.bufferHeight=a}this.renderObjects.set(e,t)}return t}getAttributesData(e){const t={};for(const s in e){const n=e[s];t[s]={version:n.version}}return t}containsNode(e){const t=e.material;for(const s in t)if(t[s]&&t[s].isNode)return!0;return e.renderer.nodes.modelViewMatrix!==null||e.renderer.nodes.modelNormalViewMatrix!==null}getMaterialData(e){const t={};for(const s of this.refreshUniforms){const n=e[s];n!=null&&(typeof n=="object"&&n.clone!==void 0?n.isTexture===!0?t[s]={id:n.id,version:n.version}:t[s]=n.clone():t[s]=n)}return t}equals(e){const{object:t,material:s,geometry:n}=e,r=this.getRenderObjectData(e);if(r.worldMatrix.equals(t.matrixWorld)!==!0)return r.worldMatrix.copy(t.matrixWorld),!1;const i=r.material;for(const m in i){const x=i[m],N=s[m];if(x.equals!==void 0){if(x.equals(N)===!1)return x.copy(N),!1}else if(N.isTexture===!0){if(x.id!==N.id||x.version!==N.version)return x.id=N.id,x.version=N.version,!1}else if(x!==N)return i[m]=N,!1}if(i.transmission>0){const{width:m,height:x}=e.context;if(r.bufferWidth!==m||r.bufferHeight!==x)return r.bufferWidth=m,r.bufferHeight=x,!1}const a=r.geometry,u=n.attributes,c=a.attributes,l=Object.keys(c),d=Object.keys(u);if(l.length!==d.length)return r.geometry.attributes=this.getAttributesData(u),!1;for(const m of l){const x=c[m],N=u[m];if(N===void 0)return delete c[m],!1;if(x.version!==N.version)return x.version=N.version,!1}const h=n.index,p=a.indexVersion,f=h?h.version:null;if(p!==f)return a.indexVersion=f,!1;if(a.drawRange.start!==n.drawRange.start||a.drawRange.count!==n.drawRange.count)return a.drawRange.start=n.drawRange.start,a.drawRange.count=n.drawRange.count,!1;if(r.morphTargetInfluences){let m=!1;for(let x=0;x>>16,2246822507),t^=Math.imul(s^s>>>13,3266489909),s=Math.imul(s^s>>>16,2246822507),s^=Math.imul(t^t>>>13,3266489909),4294967296*(2097151&s)+(t>>>0)}const ga=o=>In(o),Zn=o=>In(o),di=(...o)=>In(o);function ma(o,e=!1){const t=[];o.isNode===!0&&(t.push(o.id),o=o.getSelf());for(const{property:s,childNode:n}of Vn(o))t.push(t,In(s.slice(0,-4)),n.getCacheKey(e));return In(t)}function*Vn(o,e=!1){for(const t in o){if(t.startsWith("_")===!0)continue;const s=o[t];if(Array.isArray(s)===!0)for(let n=0;ne.charCodeAt(0)).buffer}var cR=Object.freeze({__proto__:null,arrayBufferToBase64:Na,base64ToArrayBuffer:Sa,getCacheKey:ma,getDataFromObject:ba,getLengthFromType:Ta,getNodeChildren:Vn,getTypeFromLength:ya,getTypedArrayFromType:xa,getValueFromType:_a,getValueType:Ot,hash:di,hashArray:Zn,hashString:ga});const Oo={VERTEX:"vertex",FRAGMENT:"fragment"},W={NONE:"none",FRAME:"frame",RENDER:"render",OBJECT:"object"},Zm={BOOLEAN:"bool",INTEGER:"int",FLOAT:"float",VECTOR2:"vec2",VECTOR3:"vec3",VECTOR4:"vec4",MATRIX2:"mat2",MATRIX3:"mat3",MATRIX4:"mat4"},Ve={READ_ONLY:"readOnly",WRITE_ONLY:"writeOnly",READ_WRITE:"readWrite"},sd=["fragment","vertex"],ko=["setup","analyze","generate"],zo=[...sd,"compute"],As=["x","y","z","w"];let Jm=0;class O extends gl{static get type(){return"Node"}constructor(e=null){super(),this.nodeType=e,this.updateType=W.NONE,this.updateBeforeType=W.NONE,this.updateAfterType=W.NONE,this.uuid=ml.generateUUID(),this.version=0,this.global=!1,this.isNode=!0,this._cacheKey=null,this._cacheKeyVersion=0,Object.defineProperty(this,"id",{value:Jm++})}set needsUpdate(e){e===!0&&this.version++}get type(){return this.constructor.type}onUpdate(e,t){return this.updateType=t,this.update=e.bind(this.getSelf()),this}onFrameUpdate(e){return this.onUpdate(e,W.FRAME)}onRenderUpdate(e){return this.onUpdate(e,W.RENDER)}onObjectUpdate(e){return this.onUpdate(e,W.OBJECT)}onReference(e){return this.updateReference=e.bind(this.getSelf()),this}getSelf(){return this.self||this}updateReference(){return this}isGlobal(){return this.global}*getChildren(){for(const{childNode:e}of Vn(this))yield e}dispose(){this.dispatchEvent({type:"dispose"})}traverse(e){e(this);for(const t of this.getChildren())t.traverse(e)}getCacheKey(e=!1){return e=e||this.version!==this._cacheKeyVersion,(e===!0||this._cacheKey===null)&&(this._cacheKey=di(ma(this,e),this.customCacheKey()),this._cacheKeyVersion=this.version),this._cacheKey}customCacheKey(){return 0}getScope(){return this}getHash(){return this.uuid}getUpdateType(){return this.updateType}getUpdateBeforeType(){return this.updateBeforeType}getUpdateAfterType(){return this.updateAfterType}getElementType(e){const t=this.getNodeType(e);return e.getElementType(t)}getNodeType(e){const t=e.getNodeProperties(this);return t.outputNode?t.outputNode.getNodeType(e):this.nodeType}getShared(e){const t=this.getHash(e);return e.getNodeFromHash(t)||this}setup(e){const t=e.getNodeProperties(this);let s=0;for(const n of this.getChildren())t["node"+s++]=n;return t.outputNode||null}analyze(e){if(e.increaseUsage(this)===1){const s=e.getNodeProperties(this);for(const n of Object.values(s))n&&n.isNode===!0&&n.build(e)}}generate(e,t){const{outputNode:s}=e.getNodeProperties(this);if(s&&s.isNode===!0)return s.build(e,t)}updateBefore(){console.warn("Abstract function.")}updateAfter(){console.warn("Abstract function.")}update(){console.warn("Abstract function.")}build(e,t=null){const s=this.getShared(e);if(this!==s)return s.build(e,t);e.addNode(this),e.addChain(this);let n=null;const r=e.getBuildStage();if(r==="setup"){this.updateReference(e);const i=e.getNodeProperties(this);if(i.initialized!==!0){i.initialized=!0;const a=this.setup(e),u=a&&a.isNode===!0;for(const c of Object.values(i))c&&c.isNode===!0&&c.build(e);u&&a.build(e),i.outputNode=a}}else if(r==="analyze")this.analyze(e);else if(r==="generate")if(this.generate.length===1){const a=this.getNodeType(e),u=e.getDataFromNode(this);n=u.snippet,n===void 0?(n=this.generate(e)||"",u.snippet=n):u.flowCodes!==void 0&&e.context.nodeBlock!==void 0&&e.addFlowCodeHierarchy(this,e.context.nodeBlock),n=e.format(n,a,t)}else n=this.generate(e,t)||"";return e.removeChain(this),e.addSequentialNode(this),n}getSerializeChildren(){return Vn(this)}serialize(e){const t=this.getSerializeChildren(),s={};for(const{property:n,index:r,childNode:i}of t)r!==void 0?(s[n]===void 0&&(s[n]=Number.isInteger(r)?[]:{}),s[n][r]=i.toJSON(e.meta).uuid):s[n]=i.toJSON(e.meta).uuid;Object.keys(s).length>0&&(e.inputNodes=s)}deserialize(e){if(e.inputNodes!==void 0){const t=e.meta.nodes;for(const s in e.inputNodes)if(Array.isArray(e.inputNodes[s])){const n=[];for(const r of e.inputNodes[s])n.push(t[r]);this[s]=n}else if(typeof e.inputNodes[s]=="object"){const n={};for(const r in e.inputNodes[s]){const i=e.inputNodes[s][r];n[r]=t[i]}this[s]=n}else{const n=e.inputNodes[s];this[s]=t[n]}}}toJSON(e){const{uuid:t,type:s}=this,n=e===void 0||typeof e=="string";n&&(e={textures:{},images:{},nodes:{}});let r=e.nodes[t];r===void 0&&(r={uuid:t,type:s,meta:e,metadata:{version:4.6,type:"Node",generator:"Node.toJSON"}},n!==!0&&(e.nodes[r.uuid]=r),this.serialize(r),delete r.meta);function i(a){const u=[];for(const c in a){const l=a[c];delete l.metadata,u.push(l)}return u}if(n){const a=i(e.textures),u=i(e.images),c=i(e.nodes);a.length>0&&(r.textures=a),u.length>0&&(r.images=u),c.length>0&&(r.nodes=c)}return r}}class Rs extends O{static get type(){return"ArrayElementNode"}constructor(e,t){super(),this.node=e,this.indexNode=t,this.isArrayElementNode=!0}getNodeType(e){return this.node.getElementType(e)}generate(e){const t=this.node.build(e),s=this.indexNode.build(e,"uint");return`${t}[ ${s} ]`}}class nd extends O{static get type(){return"ConvertNode"}constructor(e,t){super(),this.node=e,this.convertTo=t}getNodeType(e){const t=this.node.getNodeType(e);let s=null;for(const n of this.convertTo.split("|"))(s===null||e.getTypeLength(t)===e.getTypeLength(n))&&(s=n);return s}serialize(e){super.serialize(e),e.convertTo=this.convertTo}deserialize(e){super.deserialize(e),this.convertTo=e.convertTo}generate(e,t){const s=this.node,n=this.getNodeType(e),r=s.build(e,n);return e.format(r,n,t)}}class be extends O{static get type(){return"TempNode"}constructor(e=null){super(e),this.isTempNode=!0}hasDependencies(e){return e.getDataFromNode(this).usageCount>1}build(e,t){if(e.getBuildStage()==="generate"){const n=e.getVectorType(this.getNodeType(e,t)),r=e.getDataFromNode(this);if(r.propertyName!==void 0)return e.format(r.propertyName,n,t);if(n!=="void"&&t!=="void"&&this.hasDependencies(e)){const i=super.build(e,n),a=e.getVarFromNode(this,null,n),u=e.getPropertyName(a);return e.addLineFlowCode(`${u} = ${i}`,this),r.snippet=i,r.propertyName=u,e.format(r.propertyName,n,t)}}return super.build(e,t)}}class ey extends be{static get type(){return"JoinNode"}constructor(e=[],t=null){super(t),this.nodes=e}getNodeType(e){return this.nodeType!==null?e.getVectorType(this.nodeType):e.getTypeFromLength(this.nodes.reduce((t,s)=>t+e.getTypeLength(s.getNodeType(e)),0))}generate(e,t){const s=this.getNodeType(e),n=this.nodes,r=e.getComponentType(s),i=[];for(const u of n){let c=u.build(e);const l=e.getComponentType(u.getNodeType(e));l!==r&&(c=e.format(c,l,r)),i.push(c)}const a=`${e.getType(s)}( ${i.join(", ")} )`;return e.format(a,s,t)}}const ty=As.join("");class Wo extends O{static get type(){return"SplitNode"}constructor(e,t="x"){super(),this.node=e,this.components=t,this.isSplitNode=!0}getVectorLength(){let e=this.components.length;for(const t of this.components)e=Math.max(As.indexOf(t)+1,e);return e}getComponentType(e){return e.getComponentType(this.node.getNodeType(e))}getNodeType(e){return e.getTypeFromLength(this.components.length,this.getComponentType(e))}generate(e,t){const s=this.node,n=e.getTypeLength(s.getNodeType(e));let r=null;if(n>1){let i=null;this.getVectorLength()>=n&&(i=e.getTypeFromLength(this.getVectorLength(),this.getComponentType(e)));const u=s.build(e,i);this.components.length===n&&this.components===ty.slice(0,this.components.length)?r=e.format(u,i,t):r=e.format(`${u}.${this.components}`,this.getNodeType(e),t)}else r=s.build(e,t);return r}serialize(e){super.serialize(e),e.components=this.components}deserialize(e){super.deserialize(e),this.components=e.components}}class sy extends be{static get type(){return"SetNode"}constructor(e,t,s){super(),this.sourceNode=e,this.components=t,this.targetNode=s}getNodeType(e){return this.sourceNode.getNodeType(e)}generate(e){const{sourceNode:t,components:s,targetNode:n}=this,r=this.getNodeType(e),i=e.getComponentType(n.getNodeType(e)),a=e.getTypeFromLength(s.length,i),u=n.build(e,a),c=t.build(e,r),l=e.getTypeLength(r),d=[];for(let h=0;ho.replace(/r|s/g,"x").replace(/g|t/g,"y").replace(/b|p/g,"z").replace(/a|q/g,"w"),oc=o=>rd(o).split("").sort().join(""),id={setup(o,e){const t=e.shift();return o(Jn(t),...e)},get(o,e,t){if(typeof e=="string"&&o[e]===void 0){if(o.isStackNode!==!0&&e==="assign")return(...s)=>(nn.assign(t,...s),t);if($s.has(e)){const s=$s.get(e);return o.isStackNode?(...n)=>t.add(s(...n)):(...n)=>s(t,...n)}else{if(e==="self")return o;if(e.endsWith("Assign")&&$s.has(e.slice(0,e.length-6))){const s=$s.get(e.slice(0,e.length-6));return o.isStackNode?(...n)=>t.assign(n[0],s(...n)):(...n)=>t.assign(s(t,...n))}else{if(/^[xyzwrgbastpq]{1,4}$/.test(e)===!0)return e=rd(e),E(new Wo(t,e));if(/^set[XYZWRGBASTPQ]{1,4}$/.test(e)===!0)return e=oc(e.slice(3).toLowerCase()),s=>E(new sy(o,e,s));if(/^flip[XYZWRGBASTPQ]{1,4}$/.test(e)===!0)return e=oc(e.slice(4).toLowerCase()),()=>E(new ny(E(o),e));if(e==="width"||e==="height"||e==="depth")return e==="width"?e="x":e==="height"?e="y":e==="depth"&&(e="z"),E(new Wo(o,e));if(/^\d+$/.test(e)===!0)return E(new Rs(t,new yt(Number(e),"uint")))}}}return Reflect.get(o,e,t)},set(o,e,t,s){return typeof e=="string"&&o[e]===void 0&&(/^[xyzwrgbastpq]{1,4}$/.test(e)===!0||e==="width"||e==="height"||e==="depth"||/^\d+$/.test(e)===!0)?(s[e].assign(t),!0):Reflect.set(o,e,t,s)}},Vi=new WeakMap,ac=new WeakMap,ry=function(o,e=null){const t=Ot(o);if(t==="node"){let s=Vi.get(o);return s===void 0&&(s=new Proxy(o,id),Vi.set(o,s),Vi.set(s,s)),s}else{if(e===null&&(t==="float"||t==="boolean")||t&&t!=="shader"&&t!=="string")return E($o(o,e));if(t==="shader")return b(o)}return o},iy=function(o,e=null){for(const t in o)o[t]=E(o[t],e);return o},oy=function(o,e=null){const t=o.length;for(let s=0;sE(s!==null?Object.assign(r,s):r);return e===null?(...r)=>n(new o(...xs(r))):t!==null?(t=E(t),(...r)=>n(new o(e,...xs(r),t))):(...r)=>n(new o(e,...xs(r)))},uy=function(o,...e){return E(new o(...xs(e)))};class cy extends O{constructor(e,t){super(),this.shaderNode=e,this.inputNodes=t}getNodeType(e){return this.shaderNode.nodeType||this.getOutputNode(e).getNodeType(e)}call(e){const{shaderNode:t,inputNodes:s}=this,n=e.getNodeProperties(t);if(n.onceOutput)return n.onceOutput;let r=null;if(t.layout){let i=ac.get(e.constructor);i===void 0&&(i=new WeakMap,ac.set(e.constructor,i));let a=i.get(t);a===void 0&&(a=E(e.buildFunctionNode(t)),i.set(t,a)),e.currentFunctionNode!==null&&e.currentFunctionNode.includes.push(a),r=E(a.call(s))}else{const i=t.jsFunc,a=s!==null?i(s,e):i(e);r=E(a)}return t.once&&(n.onceOutput=r),r}getOutputNode(e){const t=e.getNodeProperties(this);return t.outputNode===null&&(t.outputNode=this.setupOutput(e)),t.outputNode}setup(e){return this.getOutputNode(e)}setupOutput(e){return e.addStack(),e.stack.outputNode=this.call(e),e.removeStack()}generate(e,t){return this.getOutputNode(e).build(e,t)}}class ly extends O{constructor(e,t){super(t),this.jsFunc=e,this.layout=null,this.global=!0,this.once=!1}setLayout(e){return this.layout=e,this}call(e=null){return Jn(e),E(new cy(this,e))}setup(){return this.call()}}const dy=[!1,!0],hy=[0,1,2,3],py=[-1,-2],od=[.5,1.5,1/3,1e-6,1e6,Math.PI,Math.PI*2,1/Math.PI,2/Math.PI,1/(Math.PI*2),Math.PI/2],Aa=new Map;for(const o of dy)Aa.set(o,new yt(o));const Ra=new Map;for(const o of hy)Ra.set(o,new yt(o,"uint"));const Ca=new Map([...Ra].map(o=>new yt(o.value,"int")));for(const o of py)Ca.set(o,new yt(o,"int"));const hi=new Map([...Ca].map(o=>new yt(o.value)));for(const o of od)hi.set(o,new yt(o));for(const o of od)hi.set(-o,new yt(-o));const pi={bool:Aa,uint:Ra,ints:Ca,float:hi},uc=new Map([...Aa,...hi]),$o=(o,e)=>uc.has(o)?uc.get(o):o.isNode===!0?o:new yt(o,e),fy=o=>{try{return o.getNodeType()}catch{return}},ve=function(o,e=null){return(...t)=>{if((t.length===0||!["bool","float","int","uint"].includes(o)&&t.every(n=>typeof n!="object"))&&(t=[_a(o,...t)]),t.length===1&&e!==null&&e.has(t[0]))return E(e.get(t[0]));if(t.length===1){const n=$o(t[0],o);return fy(n)===o?E(n):E(new nd(n,o))}const s=t.map(n=>$o(n));return E(new ey(s,o))}},Gn=o=>typeof o=="object"&&o!==null?o.value:o,ad=o=>o!=null?o.nodeType||o.convertTo||(typeof o=="string"?o:null):null;function Cn(o,e){return new Proxy(new ly(o,e),id)}const E=(o,e=null)=>ry(o,e),Jn=(o,e=null)=>new iy(o,e),xs=(o,e=null)=>new oy(o,e),C=(...o)=>new ay(...o),U=(...o)=>new uy(...o),b=(o,e)=>{const t=new Cn(o,e),s=(...n)=>{let r;return Jn(n),n[0]&&n[0].isNode?r=[...n]:r=n[0],t.call(r)};return s.shaderNode=t,s.setLayout=n=>(t.setLayout(n),s),s.once=()=>(t.once=!0,s),s},gy=(...o)=>(console.warn("TSL.ShaderNode: tslFn() has been renamed to Fn()."),b(...o));R("toGlobal",o=>(o.global=!0,o));const On=o=>{nn=o},Ea=()=>nn,z=(...o)=>nn.If(...o);function ud(o){return nn&&nn.add(o),o}R("append",ud);const cd=new ve("color"),g=new ve("float",pi.float),y=new ve("int",pi.ints),D=new ve("uint",pi.uint),Ht=new ve("bool",pi.bool),M=new ve("vec2"),Ae=new ve("ivec2"),ld=new ve("uvec2"),dd=new ve("bvec2"),T=new ve("vec3"),hd=new ve("ivec3"),dn=new ve("uvec3"),wa=new ve("bvec3"),P=new ve("vec4"),pd=new ve("ivec4"),fd=new ve("uvec4"),gd=new ve("bvec4"),fi=new ve("mat2"),Oe=new ve("mat3"),Ts=new ve("mat4"),my=(o="")=>E(new yt(o,"string")),yy=o=>E(new yt(o,"ArrayBuffer"));R("toColor",cd);R("toFloat",g);R("toInt",y);R("toUint",D);R("toBool",Ht);R("toVec2",M);R("toIVec2",Ae);R("toUVec2",ld);R("toBVec2",dd);R("toVec3",T);R("toIVec3",hd);R("toUVec3",dn);R("toBVec3",wa);R("toVec4",P);R("toIVec4",pd);R("toUVec4",fd);R("toBVec4",gd);R("toMat2",fi);R("toMat3",Oe);R("toMat4",Ts);const md=C(Rs),yd=(o,e)=>E(new nd(E(o),e)),xy=(o,e)=>E(new Wo(E(o),e));R("element",md);R("convert",yd);class xd extends O{static get type(){return"UniformGroupNode"}constructor(e,t=!1,s=1){super("string"),this.name=e,this.shared=t,this.order=s,this.isUniformGroup=!0}serialize(e){super.serialize(e),e.name=this.name,e.version=this.version,e.shared=this.shared}deserialize(e){super.deserialize(e),this.name=e.name,this.version=e.version,this.shared=e.shared}}const Td=o=>new xd(o),Ma=(o,e=0)=>new xd(o,!0,e),_d=Ma("frame"),k=Ma("render"),Ba=Td("object");class er extends va{static get type(){return"UniformNode"}constructor(e,t=null){super(e,t),this.isUniformNode=!0,this.name="",this.groupNode=Ba}label(e){return this.name=e,this}setGroup(e){return this.groupNode=e,this}getGroup(){return this.groupNode}getUniformHash(e){return this.getHash(e)}onUpdate(e,t){const s=this.getSelf();return e=e.bind(s),super.onUpdate(n=>{const r=e(n,s);r!==void 0&&(this.value=r)},t)}generate(e,t){const s=this.getNodeType(e),n=this.getUniformHash(e);let r=e.getNodeFromHash(n);r===void 0&&(e.setHashNode(this,n),r=this);const i=r.getInputType(e),a=e.getUniformFromNode(r,i,e.shaderStage,this.name||e.context.label),u=e.getPropertyName(a);return e.context.label!==void 0&&delete e.context.label,e.format(u,s,t)}}const V=(o,e)=>{const t=ad(e||o),s=o&&o.isNode===!0?o.node&&o.node.value||o.value:o;return E(new er(s,t))};class se extends O{static get type(){return"PropertyNode"}constructor(e,t=null,s=!1){super(e),this.name=t,this.varying=s,this.isPropertyNode=!0}getHash(e){return this.name||super.getHash(e)}isGlobal(){return!0}generate(e){let t;return this.varying===!0?(t=e.getVaryingFromNode(this,this.name),t.needsInterpolation=!0):t=e.getVarFromNode(this,this.name),e.getPropertyName(t)}}const Fa=(o,e)=>E(new se(o,e)),et=(o,e)=>E(new se(o,e,!0)),ee=U(se,"vec4","DiffuseColor"),Ho=U(se,"vec3","EmissiveColor"),Nt=U(se,"float","Roughness"),kn=U(se,"float","Metalness"),Kr=U(se,"float","Clearcoat"),zn=U(se,"float","ClearcoatRoughness"),fs=U(se,"vec3","Sheen"),gi=U(se,"float","SheenRoughness"),mi=U(se,"float","Iridescence"),Ua=U(se,"float","IridescenceIOR"),Pa=U(se,"float","IridescenceThickness"),Xr=U(se,"float","AlphaT"),Zt=U(se,"float","Anisotropy"),En=U(se,"vec3","AnisotropyT"),_s=U(se,"vec3","AnisotropyB"),We=U(se,"color","SpecularColor"),Wn=U(se,"float","SpecularF90"),Yr=U(se,"float","Shininess"),$n=U(se,"vec4","Output"),bs=U(se,"float","dashSize"),Hn=U(se,"float","gapSize"),Ty=U(se,"float","pointWidth"),wn=U(se,"float","IOR"),jr=U(se,"float","Transmission"),Da=U(se,"float","Thickness"),La=U(se,"float","AttenuationDistance"),Ia=U(se,"color","AttenuationColor"),Va=U(se,"float","Dispersion");class _y extends be{static get type(){return"AssignNode"}constructor(e,t){super(),this.targetNode=e,this.sourceNode=t}hasDependencies(){return!1}getNodeType(e,t){return t!=="void"?this.targetNode.getNodeType(e):"void"}needsSplitAssign(e){const{targetNode:t}=this;if(e.isAvailable("swizzleAssign")===!1&&t.isSplitNode&&t.components.length>1){const s=e.getTypeLength(t.node.getNodeType(e));return As.join("").slice(0,s)!==t.components}return!1}generate(e,t){const{targetNode:s,sourceNode:n}=this,r=this.needsSplitAssign(e),i=s.getNodeType(e),a=s.context({assign:!0}).build(e),u=n.build(e,i),c=n.getNodeType(e),l=e.getDataFromNode(this);let d;if(l.initialized===!0)t!=="void"&&(d=a);else if(r){const h=e.getVarFromNode(this,null,i),p=e.getPropertyName(h);e.addLineFlowCode(`${p} = ${u}`,this);const f=s.node.context({assign:!0}).build(e);for(let m=0;m{const l=c.type,d=l==="pointer";let h;return d?h="&"+u.build(e):h=u.build(e,l),h};if(Array.isArray(r))for(let u=0;u(e=e.length>1||e[0]&&e[0].isNode===!0?xs(e):Jn(e[0]),E(new by(E(o),e)));R("call",Nd);class pe extends be{static get type(){return"OperatorNode"}constructor(e,t,s,...n){if(super(),n.length>0){let r=new pe(e,t,s);for(let i=0;i>"||s==="<<")return e.getIntegerType(i);if(s==="!"||s==="=="||s==="&&"||s==="||"||s==="^^")return"bool";if(s==="<"||s===">"||s==="<="||s===">="){const u=t?e.getTypeLength(t):Math.max(e.getTypeLength(i),e.getTypeLength(a));return u>1?`bvec${u}`:"bool"}else return i==="float"&&e.isMatrix(a)?a:e.isMatrix(i)&&e.isVector(a)?e.getVectorFromMatrix(i):e.isVector(i)&&e.isMatrix(a)?e.getVectorFromMatrix(a):e.getTypeLength(a)>e.getTypeLength(i)?a:i}generate(e,t){const s=this.op,n=this.aNode,r=this.bNode,i=this.getNodeType(e,t);let a=null,u=null;i!=="void"?(a=n.getNodeType(e),u=typeof r<"u"?r.getNodeType(e):null,s==="<"||s===">"||s==="<="||s===">="||s==="=="?e.isVector(a)?u=a:a!==u&&(a=u="float"):s===">>"||s==="<<"?(a=i,u=e.changeComponentType(u,"uint")):e.isMatrix(a)&&e.isVector(u)?u=e.getVectorFromMatrix(a):e.isVector(a)&&e.isMatrix(u)?a=e.getVectorFromMatrix(u):a=u=i):a=u=i;const c=n.build(e,a),l=typeof r<"u"?r.build(e,u):null,d=e.getTypeLength(t),h=e.getFunctionOperator(s);if(t!=="void")return s==="<"&&d>1?e.useComparisonMethod?e.format(`${e.getMethod("lessThan",t)}( ${c}, ${l} )`,i,t):e.format(`( ${c} < ${l} )`,i,t):s==="<="&&d>1?e.useComparisonMethod?e.format(`${e.getMethod("lessThanEqual",t)}( ${c}, ${l} )`,i,t):e.format(`( ${c} <= ${l} )`,i,t):s===">"&&d>1?e.useComparisonMethod?e.format(`${e.getMethod("greaterThan",t)}( ${c}, ${l} )`,i,t):e.format(`( ${c} > ${l} )`,i,t):s===">="&&d>1?e.useComparisonMethod?e.format(`${e.getMethod("greaterThanEqual",t)}( ${c}, ${l} )`,i,t):e.format(`( ${c} >= ${l} )`,i,t):s==="!"||s==="~"?e.format(`(${s}${c})`,a,t):h?e.format(`${h}( ${c}, ${l} )`,i,t):e.format(`( ${c} ${s} ${l} )`,i,t);if(a!=="void")return h?e.format(`${h}( ${c}, ${l} )`,i,t):e.format(`${c} ${s} ${l}`,i,t)}serialize(e){super.serialize(e),e.op=this.op}deserialize(e){super.deserialize(e),this.op=e.op}}const _e=C(pe,"+"),Y=C(pe,"-"),$=C(pe,"*"),gt=C(pe,"/"),Ga=C(pe,"%"),Sd=C(pe,"=="),vd=C(pe,"!="),Ad=C(pe,"<"),Oa=C(pe,">"),Rd=C(pe,"<="),Cd=C(pe,">="),Ed=C(pe,"&&"),wd=C(pe,"||"),Md=C(pe,"!"),Bd=C(pe,"^^"),Fd=C(pe,"&"),Ud=C(pe,"~"),Pd=C(pe,"|"),Dd=C(pe,"^"),Ld=C(pe,"<<"),Id=C(pe,">>");R("add",_e);R("sub",Y);R("mul",$);R("div",gt);R("modInt",Ga);R("equal",Sd);R("notEqual",vd);R("lessThan",Ad);R("greaterThan",Oa);R("lessThanEqual",Rd);R("greaterThanEqual",Cd);R("and",Ed);R("or",wd);R("not",Md);R("xor",Bd);R("bitAnd",Fd);R("bitNot",Ud);R("bitOr",Pd);R("bitXor",Dd);R("shiftLeft",Ld);R("shiftRight",Id);const Vd=(...o)=>(console.warn("TSL.OperatorNode: .remainder() has been renamed to .modInt()."),Ga(...o));R("remainder",Vd);class S extends be{static get type(){return"MathNode"}constructor(e,t,s=null,n=null){super(),this.method=e,this.aNode=t,this.bNode=s,this.cNode=n}getInputType(e){const t=this.aNode.getNodeType(e),s=this.bNode?this.bNode.getNodeType(e):null,n=this.cNode?this.cNode.getNodeType(e):null,r=e.isMatrix(t)?0:e.getTypeLength(t),i=e.isMatrix(s)?0:e.getTypeLength(s),a=e.isMatrix(n)?0:e.getTypeLength(n);return r>i&&r>a?t:i>a?s:a>r?n:t}getNodeType(e){const t=this.method;return t===S.LENGTH||t===S.DISTANCE||t===S.DOT?"float":t===S.CROSS?"vec3":t===S.ALL?"bool":t===S.EQUALS?e.changeComponentType(this.aNode.getNodeType(e),"bool"):t===S.MOD?this.aNode.getNodeType(e):this.getInputType(e)}generate(e,t){let s=this.method;const n=this.getNodeType(e),r=this.getInputType(e),i=this.aNode,a=this.bNode,u=this.cNode,c=e.renderer.coordinateSystem;if(s===S.TRANSFORM_DIRECTION){let l=i,d=a;e.isMatrix(l.getNodeType(e))?d=P(T(d),0):l=P(T(l),0);const h=$(l,d).xyz;return qt(h).build(e,t)}else{if(s===S.NEGATE)return e.format("( - "+i.build(e,r)+" )",n,t);if(s===S.ONE_MINUS)return Y(1,i).build(e,t);if(s===S.RECIPROCAL)return gt(1,i).build(e,t);if(s===S.DIFFERENCE)return oe(Y(i,a)).build(e,t);{const l=[];return s===S.CROSS||s===S.MOD?l.push(i.build(e,n),a.build(e,n)):c===Pn&&s===S.STEP?l.push(i.build(e,e.getTypeLength(i.getNodeType(e))===1?"float":r),a.build(e,r)):c===Pn&&(s===S.MIN||s===S.MAX)||s===S.MOD?l.push(i.build(e,r),a.build(e,e.getTypeLength(a.getNodeType(e))===1?"float":r)):s===S.REFRACT?l.push(i.build(e,r),a.build(e,r),u.build(e,"float")):s===S.MIX?l.push(i.build(e,r),a.build(e,r),u.build(e,e.getTypeLength(u.getNodeType(e))===1?"float":r)):(c===ln&&s===S.ATAN&&a!==null&&(s="atan2"),l.push(i.build(e,r)),a!==null&&l.push(a.build(e,r)),u!==null&&l.push(u.build(e,r))),e.format(`${e.getMethod(s,n)}( ${l.join(", ")} )`,n,t)}}}serialize(e){super.serialize(e),e.method=this.method}deserialize(e){super.deserialize(e),this.method=e.method}}S.ALL="all";S.ANY="any";S.RADIANS="radians";S.DEGREES="degrees";S.EXP="exp";S.EXP2="exp2";S.LOG="log";S.LOG2="log2";S.SQRT="sqrt";S.INVERSE_SQRT="inversesqrt";S.FLOOR="floor";S.CEIL="ceil";S.NORMALIZE="normalize";S.FRACT="fract";S.SIN="sin";S.COS="cos";S.TAN="tan";S.ASIN="asin";S.ACOS="acos";S.ATAN="atan";S.ABS="abs";S.SIGN="sign";S.LENGTH="length";S.NEGATE="negate";S.ONE_MINUS="oneMinus";S.DFDX="dFdx";S.DFDY="dFdy";S.ROUND="round";S.RECIPROCAL="reciprocal";S.TRUNC="trunc";S.FWIDTH="fwidth";S.TRANSPOSE="transpose";S.BITCAST="bitcast";S.EQUALS="equals";S.MIN="min";S.MAX="max";S.MOD="mod";S.STEP="step";S.REFLECT="reflect";S.DISTANCE="distance";S.DIFFERENCE="difference";S.DOT="dot";S.CROSS="cross";S.POW="pow";S.TRANSFORM_DIRECTION="transformDirection";S.MIX="mix";S.CLAMP="clamp";S.REFRACT="refract";S.SMOOTHSTEP="smoothstep";S.FACEFORWARD="faceforward";const Gd=g(1e-6),Ny=g(1e6),Qr=g(Math.PI),Sy=g(Math.PI*2),ka=C(S,S.ALL),Od=C(S,S.ANY),kd=C(S,S.RADIANS),zd=C(S,S.DEGREES),za=C(S,S.EXP),rn=C(S,S.EXP2),yi=C(S,S.LOG),vt=C(S,S.LOG2),Pt=C(S,S.SQRT),Wa=C(S,S.INVERSE_SQRT),At=C(S,S.FLOOR),xi=C(S,S.CEIL),qt=C(S,S.NORMALIZE),Xt=C(S,S.FRACT),st=C(S,S.SIN),It=C(S,S.COS),Wd=C(S,S.TAN),$d=C(S,S.ASIN),Hd=C(S,S.ACOS),$a=C(S,S.ATAN),oe=C(S,S.ABS),qn=C(S,S.SIGN),zt=C(S,S.LENGTH),qd=C(S,S.NEGATE),Kd=C(S,S.ONE_MINUS),Ha=C(S,S.DFDX),qa=C(S,S.DFDY),Xd=C(S,S.ROUND),Yd=C(S,S.RECIPROCAL),Ka=C(S,S.TRUNC),jd=C(S,S.FWIDTH),Qd=C(S,S.TRANSPOSE),vy=C(S,S.BITCAST),Zd=C(S,S.EQUALS),Re=C(S,S.MIN),ue=C(S,S.MAX),Xa=C(S,S.MOD),Ti=C(S,S.STEP),Jd=C(S,S.REFLECT),eh=C(S,S.DISTANCE),th=C(S,S.DIFFERENCE),is=C(S,S.DOT),_i=C(S,S.CROSS),ht=C(S,S.POW),Ya=C(S,S.POW,2),sh=C(S,S.POW,3),nh=C(S,S.POW,4),rh=C(S,S.TRANSFORM_DIRECTION),ih=o=>$(qn(o),ht(oe(o),1/3)),ja=o=>is(o,o),Q=C(S,S.MIX),Et=(o,e=0,t=1)=>E(new S(S.CLAMP,E(o),E(e),E(t))),oh=o=>Et(o),Qa=C(S,S.REFRACT),ct=C(S,S.SMOOTHSTEP),Za=C(S,S.FACEFORWARD),ah=b(([o])=>{const s=43758.5453,n=is(o.xy,M(12.9898,78.233)),r=Xa(n,Qr);return Xt(st(r).mul(s))}),uh=(o,e,t)=>Q(e,t,o),ch=(o,e,t)=>ct(e,t,o),lh=(o,e)=>(console.warn('THREE.TSL: "atan2" is overloaded. Use "atan" instead.'),$a(o,e)),Ay=Za,Ry=Wa;R("all",ka);R("any",Od);R("equals",Zd);R("radians",kd);R("degrees",zd);R("exp",za);R("exp2",rn);R("log",yi);R("log2",vt);R("sqrt",Pt);R("inverseSqrt",Wa);R("floor",At);R("ceil",xi);R("normalize",qt);R("fract",Xt);R("sin",st);R("cos",It);R("tan",Wd);R("asin",$d);R("acos",Hd);R("atan",$a);R("abs",oe);R("sign",qn);R("length",zt);R("lengthSq",ja);R("negate",qd);R("oneMinus",Kd);R("dFdx",Ha);R("dFdy",qa);R("round",Xd);R("reciprocal",Yd);R("trunc",Ka);R("fwidth",jd);R("atan2",lh);R("min",Re);R("max",ue);R("mod",Xa);R("step",Ti);R("reflect",Jd);R("distance",eh);R("dot",is);R("cross",_i);R("pow",ht);R("pow2",Ya);R("pow3",sh);R("pow4",nh);R("transformDirection",rh);R("mix",uh);R("clamp",Et);R("refract",Qa);R("smoothstep",ch);R("faceForward",Za);R("difference",th);R("saturate",oh);R("cbrt",ih);R("transpose",Qd);R("rand",ah);class Cy extends O{static get type(){return"ConditionalNode"}constructor(e,t,s=null){super(),this.condNode=e,this.ifNode=t,this.elseNode=s}getNodeType(e){const{ifNode:t,elseNode:s}=e.getNodeProperties(this);if(t===void 0)return this.setup(e),this.getNodeType(e);const n=t.getNodeType(e);if(s!==null){const r=s.getNodeType(e);if(e.getTypeLength(r)>e.getTypeLength(n))return r}return n}setup(e){const t=this.condNode.cache(),s=this.ifNode.cache(),n=this.elseNode?this.elseNode.cache():null,r=e.context.nodeBlock;e.getDataFromNode(s).parentNodeBlock=r,n!==null&&(e.getDataFromNode(n).parentNodeBlock=r);const i=e.getNodeProperties(this);i.condNode=t,i.ifNode=s.context({nodeBlock:s}),i.elseNode=n?n.context({nodeBlock:n}):null}generate(e,t){const s=this.getNodeType(e),n=e.getDataFromNode(this);if(n.nodeProperty!==void 0)return n.nodeProperty;const{condNode:r,ifNode:i,elseNode:a}=e.getNodeProperties(this),u=t!=="void",c=u?Fa(s).build(e):"";n.nodeProperty=c;const l=r.build(e,"bool");e.addFlowCode(` +${e.tab}if ( ${l} ) { + +`).addFlowTab();let d=i.build(e,s);if(d&&(u?d=c+" = "+d+";":d="return "+d+";"),e.removeFlowTab().addFlowCode(e.tab+" "+d+` + +`+e.tab+"}"),a!==null){e.addFlowCode(` else { + +`).addFlowTab();let h=a.build(e,s);h&&(u?h=c+" = "+h+";":h="return "+h+";"),e.removeFlowTab().addFlowCode(e.tab+" "+h+` + +`+e.tab+`} + +`)}else e.addFlowCode(` + +`);return e.format(c,s,t)}}const Ue=C(Cy);R("select",Ue);const dh=(...o)=>(console.warn("TSL.ConditionalNode: cond() has been renamed to select()."),Ue(...o));R("cond",dh);class hh extends O{static get type(){return"ContextNode"}constructor(e,t={}){super(),this.isContextNode=!0,this.node=e,this.value=t}getScope(){return this.node.getScope()}getNodeType(e){return this.node.getNodeType(e)}analyze(e){this.node.build(e)}setup(e){const t=e.getContext();e.setContext({...e.context,...this.value});const s=this.node.build(e);return e.setContext(t),s}generate(e,t){const s=e.getContext();e.setContext({...e.context,...this.value});const n=this.node.build(e,t);return e.setContext(s),n}}const bi=C(hh),ph=(o,e)=>bi(o,{label:e});R("context",bi);R("label",ph);class Ir extends O{static get type(){return"VarNode"}constructor(e,t=null){super(),this.node=e,this.name=t,this.global=!0,this.isVarNode=!0}getHash(e){return this.name||super.getHash(e)}getNodeType(e){return this.node.getNodeType(e)}generate(e){const{node:t,name:s}=this,n=e.getVarFromNode(this,s,e.getVectorType(this.getNodeType(e))),r=e.getPropertyName(n),i=t.build(e,n.type);return e.addLineFlowCode(`${r} = ${i}`,this),r}}const fh=C(Ir);R("toVar",(...o)=>fh(...o).append());const gh=o=>(console.warn('TSL: "temp" is deprecated. Use ".toVar()" instead.'),fh(o));R("temp",gh);class Ey extends O{static get type(){return"VaryingNode"}constructor(e,t=null){super(),this.node=e,this.name=t,this.isVaryingNode=!0}isGlobal(){return!0}getHash(e){return this.name||super.getHash(e)}getNodeType(e){return this.node.getNodeType(e)}setupVarying(e){const t=e.getNodeProperties(this);let s=t.varying;if(s===void 0){const n=this.name,r=this.getNodeType(e);t.varying=s=e.getVaryingFromNode(this,n,r),t.node=this.node}return s.needsInterpolation||(s.needsInterpolation=e.shaderStage==="fragment"),s}setup(e){this.setupVarying(e)}analyze(e){return this.setupVarying(e),this.node.analyze(e)}generate(e){const t=e.getNodeProperties(this),s=this.setupVarying(e),n=e.shaderStage==="fragment"&&t.reassignPosition===!0&&e.context.needsPositionReassign;if(t.propertyName===void 0||n){const r=this.getNodeType(e),i=e.getPropertyName(s,Oo.VERTEX);e.flowNodeFromShaderStage(Oo.VERTEX,this.node,r,i),t.propertyName=i,n?t.reassignPosition=!1:t.reassignPosition===void 0&&e.context.isPositionNodeInput&&(t.reassignPosition=!0)}return e.getPropertyName(s)}}const ke=C(Ey),mh=o=>ke(o);R("varying",ke);R("vertexStage",mh);const yh=b(([o])=>{const e=o.mul(.9478672986).add(.0521327014).pow(2.4),t=o.mul(.0773993808),s=o.lessThanEqual(.04045);return Q(e,t,s)}).setLayout({name:"sRGBTransferEOTF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),xh=b(([o])=>{const e=o.pow(.41666).mul(1.055).sub(.055),t=o.mul(12.92),s=o.lessThanEqual(.0031308);return Q(e,t,s)}).setLayout({name:"sRGBTransferOETF",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),tr="WorkingColorSpace",Ja="OutputColorSpace";class sr extends be{static get type(){return"ColorSpaceNode"}constructor(e,t,s){super("vec4"),this.colorNode=e,this.source=t,this.target=s}resolveColorSpace(e,t){return t===tr?_t.workingColorSpace:t===Ja?e.context.outputColorSpace||e.renderer.outputColorSpace:t}setup(e){const{colorNode:t}=this,s=this.resolveColorSpace(e,this.source),n=this.resolveColorSpace(e,this.target);let r=t;return _t.enabled===!1||s===n||!s||!n||(_t.getTransfer(s)===Ku&&(r=P(yh(r.rgb),r.a)),_t.getPrimaries(s)!==_t.getPrimaries(n)&&(r=P(Oe(_t._getMatrix(new Yn,s,n)).mul(r.rgb),r.a)),_t.getTransfer(n)===Ku&&(r=P(xh(r.rgb),r.a))),r}}const Th=o=>E(new sr(E(o),tr,Ja)),_h=o=>E(new sr(E(o),Ja,tr)),bh=(o,e)=>E(new sr(E(o),tr,e)),eu=(o,e)=>E(new sr(E(o),e,tr)),wy=(o,e,t)=>E(new sr(E(o),e,t));R("toOutputColorSpace",Th);R("toWorkingColorSpace",_h);R("workingToColorSpace",bh);R("colorSpaceToWorking",eu);let My=class extends Rs{static get type(){return"ReferenceElementNode"}constructor(e,t){super(e,t),this.referenceNode=e,this.isReferenceElementNode=!0}getNodeType(){return this.referenceNode.uniformType}generate(e){const t=super.generate(e),s=this.referenceNode.getNodeType(),n=this.getNodeType();return e.format(t,s,n)}};class Nh extends O{static get type(){return"ReferenceBaseNode"}constructor(e,t,s=null,n=null){super(),this.property=e,this.uniformType=t,this.object=s,this.count=n,this.properties=e.split("."),this.reference=s,this.node=null,this.group=null,this.updateType=W.OBJECT}setGroup(e){return this.group=e,this}element(e){return E(new My(this,E(e)))}setNodeType(e){const t=V(null,e).getSelf();this.group!==null&&t.setGroup(this.group),this.node=t}getNodeType(e){return this.node===null&&(this.updateReference(e),this.updateValue()),this.node.getNodeType(e)}getValueFromReference(e=this.reference){const{properties:t}=this;let s=e[t[0]];for(let n=1;nE(new Nh(o,e,t));class Fy extends Nh{static get type(){return"RendererReferenceNode"}constructor(e,t,s=null){super(e,t,s),this.renderer=s,this.setGroup(k)}updateReference(e){return this.reference=this.renderer!==null?this.renderer:e.renderer,this.reference}}const Sh=(o,e,t=null)=>E(new Fy(o,e,t));class Uy extends be{static get type(){return"ToneMappingNode"}constructor(e,t=Ah,s=null){super("vec3"),this.toneMapping=e,this.exposureNode=t,this.colorNode=s}customCacheKey(){return di(this.toneMapping)}setup(e){const t=this.colorNode||e.context.color,s=this.toneMapping;if(s===ss)return t;let n=null;const r=e.renderer.library.getToneMappingFunction(s);return r!==null?n=P(r(t.rgb,this.exposureNode),t.a):(console.error("ToneMappingNode: Unsupported Tone Mapping configuration.",s),n=t),n}}const vh=(o,e,t)=>E(new Uy(o,E(e),E(t))),Ah=Sh("toneMappingExposure","float");R("toneMapping",(o,e,t)=>vh(e,t,o));class Py extends va{static get type(){return"BufferAttributeNode"}constructor(e,t=null,s=0,n=0){super(e,t),this.isBufferNode=!0,this.bufferType=t,this.bufferStride=s,this.bufferOffset=n,this.usage=vg,this.instanced=!1,this.attribute=null,this.global=!0,e&&e.isBufferAttribute===!0&&(this.attribute=e,this.usage=e.usage,this.instanced=e.isInstancedBufferAttribute)}getHash(e){if(this.bufferStride===0&&this.bufferOffset===0){let t=e.globalCache.getData(this.value);return t===void 0&&(t={node:this},e.globalCache.setData(this.value,t)),t.node.uuid}return this.uuid}getNodeType(e){return this.bufferType===null&&(this.bufferType=e.getTypeFromAttribute(this.attribute)),this.bufferType}setup(e){if(this.attribute!==null)return;const t=this.getNodeType(e),s=this.value,n=e.getTypeLength(t),r=this.bufferStride||n,i=this.bufferOffset,a=s.isInterleavedBuffer===!0?s:new Ag(s,r),u=new Rg(a,n,i);a.setUsage(this.usage),this.attribute=u,this.attribute.isInstancedBufferAttribute=this.instanced}generate(e){const t=this.getNodeType(e),s=e.getBufferAttributeFromNode(this,t),n=e.getPropertyName(s);let r=null;return e.shaderStage==="vertex"||e.shaderStage==="compute"?(this.name=n,r=n):r=ke(this).build(e,t),r}getInputType(){return"bufferAttribute"}setUsage(e){return this.usage=e,this.attribute&&this.attribute.isBufferAttribute===!0&&(this.attribute.usage=e),this}setInstanced(e){return this.instanced=e,this}}const nr=(o,e=null,t=0,s=0)=>E(new Py(o,e,t,s)),Rh=(o,e=null,t=0,s=0)=>nr(o,e,t,s).setUsage(zs),Zr=(o,e=null,t=0,s=0)=>nr(o,e,t,s).setInstanced(!0),qo=(o,e=null,t=0,s=0)=>Rh(o,e,t,s).setInstanced(!0);R("toAttribute",o=>nr(o.value));class Dy extends O{static get type(){return"ComputeNode"}constructor(e,t,s=[64]){super("void"),this.isComputeNode=!0,this.computeNode=e,this.count=t,this.workgroupSize=s,this.dispatchCount=0,this.version=1,this.name="",this.updateBeforeType=W.OBJECT,this.onInitFunction=null,this.updateDispatchCount()}dispose(){this.dispatchEvent({type:"dispose"})}label(e){return this.name=e,this}updateDispatchCount(){const{count:e,workgroupSize:t}=this;let s=t[0];for(let n=1;nE(new Dy(E(o),e,t));R("compute",Ch);class Ly extends O{static get type(){return"CacheNode"}constructor(e,t=!0){super(),this.node=e,this.parent=t,this.isCacheNode=!0}getNodeType(e){const t=e.getCache(),s=e.getCacheFromNode(this,this.parent);e.setCache(s);const n=this.node.getNodeType(e);return e.setCache(t),n}build(e,...t){const s=e.getCache(),n=e.getCacheFromNode(this,this.parent);e.setCache(n);const r=this.node.build(e,...t);return e.setCache(s),r}}const Mn=(o,e)=>E(new Ly(E(o),e));R("cache",Mn);class Iy extends O{static get type(){return"BypassNode"}constructor(e,t){super(),this.isBypassNode=!0,this.outputNode=e,this.callNode=t}getNodeType(e){return this.outputNode.getNodeType(e)}generate(e){const t=this.callNode.build(e,"void");return t!==""&&e.addLineFlowCode(t,this),this.outputNode.build(e)}}const Eh=C(Iy);R("bypass",Eh);class wh extends O{static get type(){return"RemapNode"}constructor(e,t,s,n=g(0),r=g(1)){super(),this.node=e,this.inLowNode=t,this.inHighNode=s,this.outLowNode=n,this.outHighNode=r,this.doClamp=!0}setup(){const{node:e,inLowNode:t,inHighNode:s,outLowNode:n,outHighNode:r,doClamp:i}=this;let a=e.sub(t).div(s.sub(t));return i===!0&&(a=a.clamp()),a.mul(r.sub(n)).add(n)}}const Mh=C(wh,null,null,{doClamp:!1}),Bh=C(wh);R("remap",Mh);R("remapClamp",Bh);class Vr extends O{static get type(){return"ExpressionNode"}constructor(e="",t="void"){super(t),this.snippet=e}generate(e,t){const s=this.getNodeType(e),n=this.snippet;if(s==="void")e.addLineFlowCode(n,this);else return e.format(`( ${n} )`,s,t)}}const rs=C(Vr),Fh=o=>(o?Ue(o,rs("discard")):rs("discard")).append(),Vy=()=>rs("return").append();R("discard",Fh);class Gy extends be{static get type(){return"RenderOutputNode"}constructor(e,t,s){super("vec4"),this.colorNode=e,this.toneMapping=t,this.outputColorSpace=s,this.isRenderOutputNode=!0}setup({context:e}){let t=this.colorNode||e.color;const s=(this.toneMapping!==null?this.toneMapping:e.toneMapping)||ss,n=(this.outputColorSpace!==null?this.outputColorSpace:e.outputColorSpace)||Dn;return s!==ss&&(t=t.toneMapping(s)),n!==Dn&&n!==_t.workingColorSpace&&(t=t.workingToColorSpace(n)),t}}const tu=(o,e=null,t=null)=>E(new Gy(E(o),e,t));R("renderOutput",tu);function Oy(o){console.warn("THREE.TSLBase: AddNodeElement has been removed in favor of tree-shaking. Trying add",o)}class Uh extends O{static get type(){return"AttributeNode"}constructor(e,t=null){super(t),this.global=!0,this._attributeName=e}getHash(e){return this.getAttributeName(e)}getNodeType(e){let t=this.nodeType;if(t===null){const s=this.getAttributeName(e);if(e.hasGeometryAttribute(s)){const n=e.geometry.getAttribute(s);t=e.getTypeFromAttribute(n)}else t="float"}return t}setAttributeName(e){return this._attributeName=e,this}getAttributeName(){return this._attributeName}generate(e){const t=this.getAttributeName(e),s=this.getNodeType(e);if(e.hasGeometryAttribute(t)===!0){const r=e.geometry.getAttribute(t),i=e.getTypeFromAttribute(r),a=e.getAttribute(t,i);return e.shaderStage==="vertex"?e.format(a.name,i,s):ke(this).build(e,s)}else return console.warn(`AttributeNode: Vertex attribute "${t}" not found on geometry.`),e.generateConst(s)}serialize(e){super.serialize(e),e.global=this.global,e._attributeName=this._attributeName}deserialize(e){super.deserialize(e),this.global=e.global,this._attributeName=e._attributeName}}const we=(o,e)=>E(new Uh(o,e)),le=(o=0)=>we("uv"+(o>0?o:""),"vec2");class ky extends O{static get type(){return"TextureSizeNode"}constructor(e,t=null){super("uvec2"),this.isTextureSizeNode=!0,this.textureNode=e,this.levelNode=t}generate(e,t){const s=this.textureNode.build(e,"property"),n=this.levelNode===null?"0":this.levelNode.build(e,"int");return e.format(`${e.getMethod("textureDimensions")}( ${s}, ${n} )`,this.getNodeType(e),t)}}const ns=C(ky);class zy extends er{static get type(){return"MaxMipLevelNode"}constructor(e){super(0),this._textureNode=e,this.updateType=W.FRAME}get textureNode(){return this._textureNode}get texture(){return this._textureNode.value}update(){const e=this.texture,t=e.images,s=t&&t.length>0?t[0]&&t[0].image||t[0]:e.image;if(s&&s.width!==void 0){const{width:n,height:r}=s;this.value=Math.log2(Math.max(n,r))}}}const Ph=C(zy);class wt extends er{static get type(){return"TextureNode"}constructor(e,t=null,s=null,n=null){super(e),this.isTextureNode=!0,this.uvNode=t,this.levelNode=s,this.biasNode=n,this.compareNode=null,this.depthNode=null,this.gradNode=null,this.sampler=!0,this.updateMatrix=!1,this.updateType=W.NONE,this.referenceNode=null,this._value=e,this._matrixUniform=null,this.setUpdateMatrix(t===null)}set value(e){this.referenceNode?this.referenceNode.value=e:this._value=e}get value(){return this.referenceNode?this.referenceNode.value:this._value}getUniformHash(){return this.value.uuid}getNodeType(){return this.value.isDepthTexture===!0?"float":this.value.type===Le?"uvec4":this.value.type===ze?"ivec4":"vec4"}getInputType(){return"texture"}getDefaultUV(){return le(this.value.channel)}updateReference(){return this.value}getTransformedUV(e){return this._matrixUniform===null&&(this._matrixUniform=V(this.value.matrix)),this._matrixUniform.mul(T(e,1)).xy}setUpdateMatrix(e){return this.updateMatrix=e,this.updateType=e?W.RENDER:W.NONE,this}setupUV(e,t){const s=this.value;return e.isFlipY()&&(s.image instanceof ImageBitmap&&s.flipY===!0||s.isRenderTargetTexture===!0||s.isFramebufferTexture===!0||s.isDepthTexture===!0)&&(this.sampler?t=t.flipY():t=t.setY(y(ns(this,this.levelNode).y).sub(t.y).sub(1))),t}setup(e){const t=e.getNodeProperties(this);t.referenceNode=this.referenceNode;const s=this.value;if(!s||s.isTexture!==!0)throw new Error("THREE.TSL: `texture( value )` function expects a valid instance of THREE.Texture().");let n=this.uvNode;(n===null||e.context.forceUVContext===!0)&&e.context.getUV&&(n=e.context.getUV(this)),n||(n=this.getDefaultUV()),this.updateMatrix===!0&&(n=this.getTransformedUV(n)),n=this.setupUV(e,n);let r=this.levelNode;r===null&&e.context.getTextureLevel&&(r=e.context.getTextureLevel(this)),t.uvNode=n,t.levelNode=r,t.biasNode=this.biasNode,t.compareNode=this.compareNode,t.gradNode=this.gradNode,t.depthNode=this.depthNode}generateUV(e,t){return t.build(e,this.sampler===!0?"vec2":"ivec2")}generateSnippet(e,t,s,n,r,i,a,u){const c=this.value;let l;return n?l=e.generateTextureLevel(c,t,s,n,i):r?l=e.generateTextureBias(c,t,s,r,i):u?l=e.generateTextureGrad(c,t,s,u,i):a?l=e.generateTextureCompare(c,t,s,a,i):this.sampler===!1?l=e.generateTextureLoad(c,t,s,i):l=e.generateTexture(c,t,s,i),l}generate(e,t){const s=this.value,n=e.getNodeProperties(this),r=super.generate(e,"property");if(t==="sampler")return r+"_sampler";if(e.isReference(t))return r;{const i=e.getDataFromNode(this);let a=i.propertyName;if(a===void 0){const{uvNode:l,levelNode:d,biasNode:h,compareNode:p,depthNode:f,gradNode:m}=n,x=this.generateUV(e,l),N=d?d.build(e,"float"):null,v=h?h.build(e,"float"):null,w=f?f.build(e,"int"):null,B=p?p.build(e,"float"):null,F=m?[m[0].build(e,"vec2"),m[1].build(e,"vec2")]:null,L=e.getVarFromNode(this);a=e.getPropertyName(L);const I=this.generateSnippet(e,r,x,N,v,w,B,F);e.addLineFlowCode(`${a} = ${I}`,this),i.snippet=I,i.propertyName=a}let u=a;const c=this.getNodeType(e);return e.needsToWorkingColorSpace(s)&&(u=eu(rs(u,c),s.colorSpace).setup(e).build(e,c)),e.format(u,c,t)}}setSampler(e){return this.sampler=e,this}getSampler(){return this.sampler}uv(e){return console.warn("THREE.TextureNode: .uv() has been renamed. Use .sample() instead."),this.sample(e)}sample(e){const t=this.clone();return t.uvNode=E(e),t.referenceNode=this.getSelf(),E(t)}blur(e){const t=this.clone();return t.biasNode=E(e).mul(Ph(t)),t.referenceNode=this.getSelf(),E(t)}level(e){const t=this.clone();return t.levelNode=E(e),t.referenceNode=this.getSelf(),E(t)}size(e){return ns(this,e)}bias(e){const t=this.clone();return t.biasNode=E(e),t.referenceNode=this.getSelf(),E(t)}compare(e){const t=this.clone();return t.compareNode=E(e),t.referenceNode=this.getSelf(),E(t)}grad(e,t){const s=this.clone();return s.gradNode=[E(e),E(t)],s.referenceNode=this.getSelf(),E(s)}depth(e){const t=this.clone();return t.depthNode=E(e),t.referenceNode=this.getSelf(),E(t)}serialize(e){super.serialize(e),e.value=this.value.toJSON(e.meta).uuid,e.sampler=this.sampler,e.updateMatrix=this.updateMatrix,e.updateType=this.updateType}deserialize(e){super.deserialize(e),this.value=e.meta.textures[e.value],this.sampler=e.sampler,this.updateMatrix=e.updateMatrix,this.updateType=e.updateType}update(){const e=this.value,t=this._matrixUniform;t!==null&&(t.value=e.matrix),e.matrixAutoUpdate===!0&&e.updateMatrix()}clone(){const e=new this.constructor(this.value,this.uvNode,this.levelNode,this.biasNode);return e.sampler=this.sampler,e}}const K=C(wt),ge=(...o)=>K(...o).setSampler(!1),Wy=o=>(o.isNode===!0?o:K(o)).convert("sampler"),Jt=V("float").label("cameraNear").setGroup(k).onRenderUpdate(({camera:o})=>o.near),es=V("float").label("cameraFar").setGroup(k).onRenderUpdate(({camera:o})=>o.far),He=V("mat4").label("cameraProjectionMatrix").setGroup(k).onRenderUpdate(({camera:o})=>o.projectionMatrix),$y=V("mat4").label("cameraProjectionMatrixInverse").setGroup(k).onRenderUpdate(({camera:o})=>o.projectionMatrixInverse),je=V("mat4").label("cameraViewMatrix").setGroup(k).onRenderUpdate(({camera:o})=>o.matrixWorldInverse),Hy=V("mat4").label("cameraWorldMatrix").setGroup(k).onRenderUpdate(({camera:o})=>o.matrixWorld),qy=V("mat3").label("cameraNormalMatrix").setGroup(k).onRenderUpdate(({camera:o})=>o.normalMatrix),su=V(new j).label("cameraPosition").setGroup(k).onRenderUpdate(({camera:o},e)=>e.value.setFromMatrixPosition(o.matrixWorld));class J extends O{static get type(){return"Object3DNode"}constructor(e,t=null){super(),this.scope=e,this.object3d=t,this.updateType=W.OBJECT,this._uniformNode=new er(null)}getNodeType(){const e=this.scope;if(e===J.WORLD_MATRIX)return"mat4";if(e===J.POSITION||e===J.VIEW_POSITION||e===J.DIRECTION||e===J.SCALE)return"vec3"}update(e){const t=this.object3d,s=this._uniformNode,n=this.scope;if(n===J.WORLD_MATRIX)s.value=t.matrixWorld;else if(n===J.POSITION)s.value=s.value||new j,s.value.setFromMatrixPosition(t.matrixWorld);else if(n===J.SCALE)s.value=s.value||new j,s.value.setFromMatrixScale(t.matrixWorld);else if(n===J.DIRECTION)s.value=s.value||new j,t.getWorldDirection(s.value);else if(n===J.VIEW_POSITION){const r=e.camera;s.value=s.value||new j,s.value.setFromMatrixPosition(t.matrixWorld),s.value.applyMatrix4(r.matrixWorldInverse)}}generate(e){const t=this.scope;return t===J.WORLD_MATRIX?this._uniformNode.nodeType="mat4":(t===J.POSITION||t===J.VIEW_POSITION||t===J.DIRECTION||t===J.SCALE)&&(this._uniformNode.nodeType="vec3"),this._uniformNode.build(e)}serialize(e){super.serialize(e),e.scope=this.scope}deserialize(e){super.deserialize(e),this.scope=e.scope}}J.WORLD_MATRIX="worldMatrix";J.POSITION="position";J.SCALE="scale";J.VIEW_POSITION="viewPosition";J.DIRECTION="direction";const Ky=C(J,J.DIRECTION),Xy=C(J,J.WORLD_MATRIX),Dh=C(J,J.POSITION),Yy=C(J,J.SCALE),jy=C(J,J.VIEW_POSITION);class Mt extends J{static get type(){return"ModelNode"}constructor(e){super(e)}update(e){this.object3d=e.object,super.update(e)}}const Qy=U(Mt,Mt.DIRECTION),at=U(Mt,Mt.WORLD_MATRIX),Zy=U(Mt,Mt.POSITION),Jy=U(Mt,Mt.SCALE),ex=U(Mt,Mt.VIEW_POSITION),Lh=V(new Yn).onObjectUpdate(({object:o},e)=>e.value.getNormalMatrix(o.matrixWorld)),Ih=V(new Ie).onObjectUpdate(({object:o},e)=>e.value.copy(o.matrixWorld).invert()),Kt=b(o=>o.renderer.nodes.modelViewMatrix||Vh).once()().toVar("modelViewMatrix"),Vh=je.mul(at),tx=b(o=>(o.context.isHighPrecisionModelViewMatrix=!0,V("mat4").onObjectUpdate(({object:e,camera:t})=>e.modelViewMatrix.multiplyMatrices(t.matrixWorldInverse,e.matrixWorld)))).once()().toVar("highpModelViewMatrix"),sx=b(o=>{const e=o.context.isHighPrecisionModelViewMatrix;return V("mat3").onObjectUpdate(({object:t,camera:s})=>(e!==!0&&t.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix)))}).once()().toVar("highpModelNormalViewMatrix"),Ce=we("position","vec3"),me=Ce.varying("positionLocal"),Jr=Ce.varying("positionPrevious"),Wt=at.mul(me).xyz.varying("v_positionWorld").context({needsPositionReassign:!0}),nu=me.transformDirection(at).varying("v_positionWorldDirection").normalize().toVar("positionWorldDirection").context({needsPositionReassign:!0}),xe=b(o=>o.context.setupPositionView(),"vec3").once()().varying("v_positionView").context({needsPositionReassign:!0}),ae=xe.negate().varying("v_positionViewDirection").normalize().toVar("positionViewDirection");class nx extends O{static get type(){return"FrontFacingNode"}constructor(){super("bool"),this.isFrontFacingNode=!0}generate(e){const{renderer:t,material:s}=e;return t.coordinateSystem===Pn&&s.side===Ct?"false":e.getFrontFacing()}}const Gh=U(nx),rr=g(Gh).mul(2).sub(1),Ni=we("normal","vec3"),Xe=b(o=>o.geometry.hasAttribute("normal")===!1?(console.warn('TSL.NormalNode: Vertex attribute "normal" not found on geometry.'),T(0,1,0)):Ni,"vec3").once()().toVar("normalLocal"),Oh=xe.dFdx().cross(xe.dFdy()).normalize().toVar("normalFlat"),lt=b(o=>{let e;return o.material.flatShading===!0?e=Oh:e=ke(ru(Xe),"v_normalView").normalize(),e},"vec3").once()().toVar("normalView"),Si=ke(lt.transformDirection(je),"v_normalWorld").normalize().toVar("normalWorld"),fe=b(o=>o.context.setupNormal(),"vec3").once()().mul(rr).toVar("transformedNormalView"),vi=fe.transformDirection(je).toVar("transformedNormalWorld"),Hs=b(o=>o.context.setupClearcoatNormal(),"vec3").once()().mul(rr).toVar("transformedClearcoatNormalView"),kh=b(([o,e=at])=>{const t=Oe(e),s=o.div(T(t[0].dot(t[0]),t[1].dot(t[1]),t[2].dot(t[2])));return t.mul(s).xyz}),ru=b(([o],e)=>{const t=e.renderer.nodes.modelNormalViewMatrix;if(t!==null)return t.transformDirection(o);const s=Lh.mul(o);return je.transformDirection(s)}),zh=V(0).onReference(({material:o})=>o).onRenderUpdate(({material:o})=>o.refractionRatio),Wh=ae.negate().reflect(fe),$h=ae.negate().refract(fe,zh),Hh=Wh.transformDirection(je).toVar("reflectVector"),qh=$h.transformDirection(je).toVar("reflectVector");class rx extends wt{static get type(){return"CubeTextureNode"}constructor(e,t=null,s=null,n=null){super(e,t,s,n),this.isCubeTextureNode=!0}getInputType(){return"cubeTexture"}getDefaultUV(){const e=this.value;return e.mapping===Zs?Hh:e.mapping===Js?qh:(console.error('THREE.CubeTextureNode: Mapping "%s" not supported.',e.mapping),T(0,0,0))}setUpdateMatrix(){}setupUV(e,t){const s=this.value;return e.renderer.coordinateSystem===ln||!s.isRenderTargetTexture?T(t.x.negate(),t.yz):t}generateUV(e,t){return t.build(e,"vec3")}}const on=C(rx);class iu extends er{static get type(){return"BufferNode"}constructor(e,t,s=0){super(e,t),this.isBufferNode=!0,this.bufferType=t,this.bufferCount=s}getElementType(e){return this.getNodeType(e)}getInputType(){return"buffer"}}const ir=(o,e,t)=>E(new iu(o,e,t));class ix extends Rs{static get type(){return"UniformArrayElementNode"}constructor(e,t){super(e,t),this.isArrayBufferElementNode=!0}generate(e){const t=super.generate(e),s=this.getNodeType(),n=this.node.getPaddedType();return e.format(t,n,s)}}class Kh extends iu{static get type(){return"UniformArrayNode"}constructor(e,t=null){super(null),this.array=e,this.elementType=t===null?Ot(e[0]):t,this.paddedType=this.getPaddedType(),this.updateType=W.RENDER,this.isArrayBufferNode=!0}getNodeType(){return this.paddedType}getElementType(){return this.elementType}getPaddedType(){const e=this.elementType;let t="vec4";return e==="mat2"?t="mat2":/mat/.test(e)===!0?t="mat4":e.charAt(0)==="i"?t="ivec4":e.charAt(0)==="u"&&(t="uvec4"),t}update(){const{array:e,value:t}=this,s=this.elementType;if(s==="float"||s==="int"||s==="uint")for(let n=0;nE(new Kh(o,e)),ox=(o,e)=>(console.warn("TSL.UniformArrayNode: uniforms() has been renamed to uniformArray()."),E(new Kh(o,e)));class ax extends Rs{static get type(){return"ReferenceElementNode"}constructor(e,t){super(e,t),this.referenceNode=e,this.isReferenceElementNode=!0}getNodeType(){return this.referenceNode.uniformType}generate(e){const t=super.generate(e),s=this.referenceNode.getNodeType(),n=this.getNodeType();return e.format(t,s,n)}}class Ai extends O{static get type(){return"ReferenceNode"}constructor(e,t,s=null,n=null){super(),this.property=e,this.uniformType=t,this.object=s,this.count=n,this.properties=e.split("."),this.reference=s,this.node=null,this.group=null,this.name=null,this.updateType=W.OBJECT}element(e){return E(new ax(this,E(e)))}setGroup(e){return this.group=e,this}label(e){return this.name=e,this}setNodeType(e){let t=null;this.count!==null?t=ir(null,e,this.count):Array.isArray(this.getValueFromReference())?t=Gt(null,e):e==="texture"?t=K(null):e==="cubeTexture"?t=on(null):t=V(null,e),this.group!==null&&t.setGroup(this.group),this.name!==null&&t.label(this.name),this.node=t.getSelf()}getNodeType(e){return this.node===null&&(this.updateReference(e),this.updateValue()),this.node.getNodeType(e)}getValueFromReference(e=this.reference){const{properties:t}=this;let s=e[t[0]];for(let n=1;nE(new Ai(o,e,t)),Ko=(o,e,t,s)=>E(new Ai(o,e,s,t));class ux extends Ai{static get type(){return"MaterialReferenceNode"}constructor(e,t,s=null){super(e,t,s),this.material=s,this.isMaterialReferenceNode=!0}updateReference(e){return this.reference=this.material!==null?this.material:e.material,this.reference}}const dt=(o,e,t=null)=>E(new ux(o,e,t)),Ri=b(o=>(o.geometry.hasAttribute("tangent")===!1&&o.geometry.computeTangents(),we("tangent","vec4")))(),or=Ri.xyz.toVar("tangentLocal"),ar=Kt.mul(P(or,0)).xyz.varying("v_tangentView").normalize().toVar("tangentView"),Xh=ar.transformDirection(je).varying("v_tangentWorld").normalize().toVar("tangentWorld"),ou=ar.toVar("transformedTangentView"),cx=ou.transformDirection(je).normalize().toVar("transformedTangentWorld"),ur=o=>o.mul(Ri.w).xyz,lx=ke(ur(Ni.cross(Ri)),"v_bitangentGeometry").normalize().toVar("bitangentGeometry"),dx=ke(ur(Xe.cross(or)),"v_bitangentLocal").normalize().toVar("bitangentLocal"),Yh=ke(ur(lt.cross(ar)),"v_bitangentView").normalize().toVar("bitangentView"),hx=ke(ur(Si.cross(Xh)),"v_bitangentWorld").normalize().toVar("bitangentWorld"),jh=ur(fe.cross(ou)).normalize().toVar("transformedBitangentView"),px=jh.transformDirection(je).normalize().toVar("transformedBitangentWorld"),gs=Oe(ar,Yh,lt),Qh=ae.mul(gs),fx=(o,e)=>o.sub(Qh.mul(e)),Zh=(()=>{let o=_s.cross(ae);return o=o.cross(_s).normalize(),o=Q(o,fe,Zt.mul(Nt.oneMinus()).oneMinus().pow2().pow2()).normalize(),o})(),gx=b(o=>{const{eye_pos:e,surf_norm:t,mapN:s,uv:n}=o,r=e.dFdx(),i=e.dFdy(),a=n.dFdx(),u=n.dFdy(),c=t,l=i.cross(c),d=c.cross(r),h=l.mul(a.x).add(d.mul(u.x)),p=l.mul(a.y).add(d.mul(u.y)),f=h.dot(h).max(p.dot(p)),m=rr.mul(f.inverseSqrt());return _e(h.mul(s.x,m),p.mul(s.y,m),c.mul(s.z)).normalize()});class mx extends be{static get type(){return"NormalMapNode"}constructor(e,t=null){super("vec3"),this.node=e,this.scaleNode=t,this.normalMapType=Yu}setup(e){const{normalMapType:t,scaleNode:s}=this;let n=this.node.mul(2).sub(1);s!==null&&(n=T(n.xy.mul(s),n.z));let r=null;return t===Og?r=ru(n):t===Yu&&(e.hasGeometryAttribute("tangent")===!0?r=gs.mul(n).normalize():r=gx({eye_pos:xe,surf_norm:lt,mapN:n,uv:le()})),r}}const Xo=C(mx),yx=b(({textureNode:o,bumpScale:e})=>{const t=n=>o.cache().context({getUV:r=>n(r.uvNode||le()),forceUVContext:!0}),s=g(t(n=>n));return M(g(t(n=>n.add(n.dFdx()))).sub(s),g(t(n=>n.add(n.dFdy()))).sub(s)).mul(e)}),xx=b(o=>{const{surf_pos:e,surf_norm:t,dHdxy:s}=o,n=e.dFdx().normalize(),r=e.dFdy().normalize(),i=t,a=r.cross(i),u=i.cross(n),c=n.dot(a).mul(rr),l=c.sign().mul(s.x.mul(a).add(s.y.mul(u)));return c.abs().mul(t).sub(l).normalize()});class Tx extends be{static get type(){return"BumpMapNode"}constructor(e,t=null){super("vec3"),this.textureNode=e,this.scaleNode=t}setup(){const e=this.scaleNode!==null?this.scaleNode:1,t=yx({textureNode:this.textureNode,bumpScale:e});return xx({surf_pos:xe,surf_norm:lt,dHdxy:t})}}const Jh=C(Tx),cc=new Map;class A extends O{static get type(){return"MaterialNode"}constructor(e){super(),this.scope=e}getCache(e,t){let s=cc.get(e);return s===void 0&&(s=dt(e,t),cc.set(e,s)),s}getFloat(e){return this.getCache(e,"float")}getColor(e){return this.getCache(e,"color")}getTexture(e){return this.getCache(e==="map"?"map":e+"Map","texture")}setup(e){const t=e.context.material,s=this.scope;let n=null;if(s===A.COLOR){const r=t.color!==void 0?this.getColor(s):T();t.map&&t.map.isTexture===!0?n=r.mul(this.getTexture("map")):n=r}else if(s===A.OPACITY){const r=this.getFloat(s);t.alphaMap&&t.alphaMap.isTexture===!0?n=r.mul(this.getTexture("alpha")):n=r}else if(s===A.SPECULAR_STRENGTH)t.specularMap&&t.specularMap.isTexture===!0?n=this.getTexture("specular").r:n=g(1);else if(s===A.SPECULAR_INTENSITY){const r=this.getFloat(s);t.specularIntensityMap&&t.specularIntensityMap.isTexture===!0?n=r.mul(this.getTexture(s).a):n=r}else if(s===A.SPECULAR_COLOR){const r=this.getColor(s);t.specularColorMap&&t.specularColorMap.isTexture===!0?n=r.mul(this.getTexture(s).rgb):n=r}else if(s===A.ROUGHNESS){const r=this.getFloat(s);t.roughnessMap&&t.roughnessMap.isTexture===!0?n=r.mul(this.getTexture(s).g):n=r}else if(s===A.METALNESS){const r=this.getFloat(s);t.metalnessMap&&t.metalnessMap.isTexture===!0?n=r.mul(this.getTexture(s).b):n=r}else if(s===A.EMISSIVE){const r=this.getFloat("emissiveIntensity"),i=this.getColor(s).mul(r);t.emissiveMap&&t.emissiveMap.isTexture===!0?n=i.mul(this.getTexture(s)):n=i}else if(s===A.NORMAL)t.normalMap?(n=Xo(this.getTexture("normal"),this.getCache("normalScale","vec2")),n.normalMapType=t.normalMapType):t.bumpMap?n=Jh(this.getTexture("bump").r,this.getFloat("bumpScale")):n=lt;else if(s===A.CLEARCOAT){const r=this.getFloat(s);t.clearcoatMap&&t.clearcoatMap.isTexture===!0?n=r.mul(this.getTexture(s).r):n=r}else if(s===A.CLEARCOAT_ROUGHNESS){const r=this.getFloat(s);t.clearcoatRoughnessMap&&t.clearcoatRoughnessMap.isTexture===!0?n=r.mul(this.getTexture(s).r):n=r}else if(s===A.CLEARCOAT_NORMAL)t.clearcoatNormalMap?n=Xo(this.getTexture(s),this.getCache(s+"Scale","vec2")):n=lt;else if(s===A.SHEEN){const r=this.getColor("sheenColor").mul(this.getFloat("sheen"));t.sheenColorMap&&t.sheenColorMap.isTexture===!0?n=r.mul(this.getTexture("sheenColor").rgb):n=r}else if(s===A.SHEEN_ROUGHNESS){const r=this.getFloat(s);t.sheenRoughnessMap&&t.sheenRoughnessMap.isTexture===!0?n=r.mul(this.getTexture(s).a):n=r,n=n.clamp(.07,1)}else if(s===A.ANISOTROPY)if(t.anisotropyMap&&t.anisotropyMap.isTexture===!0){const r=this.getTexture(s);n=fi(Os.x,Os.y,Os.y.negate(),Os.x).mul(r.rg.mul(2).sub(M(1)).normalize().mul(r.b))}else n=Os;else if(s===A.IRIDESCENCE_THICKNESS){const r=ne("1","float",t.iridescenceThicknessRange);if(t.iridescenceThicknessMap){const i=ne("0","float",t.iridescenceThicknessRange);n=r.sub(i).mul(this.getTexture(s).g).add(i)}else n=r}else if(s===A.TRANSMISSION){const r=this.getFloat(s);t.transmissionMap?n=r.mul(this.getTexture(s).r):n=r}else if(s===A.THICKNESS){const r=this.getFloat(s);t.thicknessMap?n=r.mul(this.getTexture(s).g):n=r}else if(s===A.IOR)n=this.getFloat(s);else if(s===A.LIGHT_MAP)n=this.getTexture(s).rgb.mul(this.getFloat("lightMapIntensity"));else if(s===A.AO)n=this.getTexture(s).r.sub(1).mul(this.getFloat("aoMapIntensity")).add(1);else{const r=this.getNodeType(e);n=this.getCache(s,r)}return n}}A.ALPHA_TEST="alphaTest";A.COLOR="color";A.OPACITY="opacity";A.SHININESS="shininess";A.SPECULAR="specular";A.SPECULAR_STRENGTH="specularStrength";A.SPECULAR_INTENSITY="specularIntensity";A.SPECULAR_COLOR="specularColor";A.REFLECTIVITY="reflectivity";A.ROUGHNESS="roughness";A.METALNESS="metalness";A.NORMAL="normal";A.CLEARCOAT="clearcoat";A.CLEARCOAT_ROUGHNESS="clearcoatRoughness";A.CLEARCOAT_NORMAL="clearcoatNormal";A.EMISSIVE="emissive";A.ROTATION="rotation";A.SHEEN="sheen";A.SHEEN_ROUGHNESS="sheenRoughness";A.ANISOTROPY="anisotropy";A.IRIDESCENCE="iridescence";A.IRIDESCENCE_IOR="iridescenceIOR";A.IRIDESCENCE_THICKNESS="iridescenceThickness";A.IOR="ior";A.TRANSMISSION="transmission";A.THICKNESS="thickness";A.ATTENUATION_DISTANCE="attenuationDistance";A.ATTENUATION_COLOR="attenuationColor";A.LINE_SCALE="scale";A.LINE_DASH_SIZE="dashSize";A.LINE_GAP_SIZE="gapSize";A.LINE_WIDTH="linewidth";A.LINE_DASH_OFFSET="dashOffset";A.POINT_WIDTH="pointWidth";A.DISPERSION="dispersion";A.LIGHT_MAP="light";A.AO="ao";const ep=U(A,A.ALPHA_TEST),an=U(A,A.COLOR),tp=U(A,A.SHININESS),sp=U(A,A.EMISSIVE),cr=U(A,A.OPACITY),np=U(A,A.SPECULAR),Yo=U(A,A.SPECULAR_INTENSITY),rp=U(A,A.SPECULAR_COLOR),Bn=U(A,A.SPECULAR_STRENGTH),Gr=U(A,A.REFLECTIVITY),ip=U(A,A.ROUGHNESS),op=U(A,A.METALNESS),ap=U(A,A.NORMAL).context({getUV:null}),up=U(A,A.CLEARCOAT),cp=U(A,A.CLEARCOAT_ROUGHNESS),lp=U(A,A.CLEARCOAT_NORMAL).context({getUV:null}),dp=U(A,A.ROTATION),hp=U(A,A.SHEEN),pp=U(A,A.SHEEN_ROUGHNESS),fp=U(A,A.ANISOTROPY),gp=U(A,A.IRIDESCENCE),mp=U(A,A.IRIDESCENCE_IOR),yp=U(A,A.IRIDESCENCE_THICKNESS),xp=U(A,A.TRANSMISSION),Tp=U(A,A.THICKNESS),_p=U(A,A.IOR),bp=U(A,A.ATTENUATION_DISTANCE),Np=U(A,A.ATTENUATION_COLOR),au=U(A,A.LINE_SCALE),uu=U(A,A.LINE_DASH_SIZE),cu=U(A,A.LINE_GAP_SIZE),Or=U(A,A.LINE_WIDTH),lu=U(A,A.LINE_DASH_OFFSET),Sp=U(A,A.POINT_WIDTH),vp=U(A,A.DISPERSION),du=U(A,A.LIGHT_MAP),Ap=U(A,A.AO),Os=V(new Ye).onReference(function(o){return o.material}).onRenderUpdate(function({material:o}){this.value.set(o.anisotropy*Math.cos(o.anisotropyRotation),o.anisotropy*Math.sin(o.anisotropyRotation))}),hu=b(o=>o.context.setupModelViewProjection(),"vec4").once()().varying("v_modelViewProjection");class de extends O{static get type(){return"IndexNode"}constructor(e){super("uint"),this.scope=e,this.isIndexNode=!0}generate(e){const t=this.getNodeType(e),s=this.scope;let n;if(s===de.VERTEX)n=e.getVertexIndex();else if(s===de.INSTANCE)n=e.getInstanceIndex();else if(s===de.DRAW)n=e.getDrawIndex();else if(s===de.INVOCATION_LOCAL)n=e.getInvocationLocalIndex();else if(s===de.INVOCATION_SUBGROUP)n=e.getInvocationSubgroupIndex();else if(s===de.SUBGROUP)n=e.getSubgroupIndex();else throw new Error("THREE.IndexNode: Unknown scope: "+s);let r;return e.shaderStage==="vertex"||e.shaderStage==="compute"?r=n:r=ke(this).build(e,t),r}}de.VERTEX="vertex";de.INSTANCE="instance";de.SUBGROUP="subgroup";de.INVOCATION_LOCAL="invocationLocal";de.INVOCATION_SUBGROUP="invocationSubgroup";de.DRAW="draw";const Rp=U(de,de.VERTEX),lr=U(de,de.INSTANCE),_x=U(de,de.SUBGROUP),bx=U(de,de.INVOCATION_SUBGROUP),Nx=U(de,de.INVOCATION_LOCAL),Cp=U(de,de.DRAW);class Ep extends O{static get type(){return"InstanceNode"}constructor(e,t,s){super("void"),this.count=e,this.instanceMatrix=t,this.instanceColor=s,this.instanceMatrixNode=null,this.instanceColorNode=null,this.updateType=W.FRAME,this.buffer=null,this.bufferColor=null}setup(e){const{count:t,instanceMatrix:s,instanceColor:n}=this;let{instanceMatrixNode:r,instanceColorNode:i}=this;if(r===null){if(t<=1e3)r=ir(s.array,"mat4",Math.max(t,1)).element(lr);else{const u=new Cg(s.array,16,1);this.buffer=u;const c=s.usage===zs?qo:Zr,l=[c(u,"vec4",16,0),c(u,"vec4",16,4),c(u,"vec4",16,8),c(u,"vec4",16,12)];r=Ts(...l)}this.instanceMatrixNode=r}if(n&&i===null){const u=new oa(n.array,3),c=n.usage===zs?qo:Zr;this.bufferColor=u,i=T(c(u,"vec3",3,0)),this.instanceColorNode=i}const a=r.mul(me).xyz;if(me.assign(a),e.hasGeometryAttribute("normal")){const u=kh(Xe,r);Xe.assign(u)}this.instanceColorNode!==null&&et("vec3","vInstanceColor").assign(this.instanceColorNode)}update(){this.instanceMatrix.usage!==zs&&this.buffer!==null&&this.instanceMatrix.version!==this.buffer.version&&(this.buffer.version=this.instanceMatrix.version),this.instanceColor&&this.instanceColor.usage!==zs&&this.bufferColor!==null&&this.instanceColor.version!==this.bufferColor.version&&(this.bufferColor.version=this.instanceColor.version)}}const Sx=C(Ep);class vx extends Ep{static get type(){return"InstancedMeshNode"}constructor(e){const{count:t,instanceMatrix:s,instanceColor:n}=e;super(t,s,n),this.instancedMesh=e}}const wp=C(vx);class Ax extends O{static get type(){return"BatchNode"}constructor(e){super("void"),this.batchMesh=e,this.batchingIdNode=null}setup(e){this.batchingIdNode===null&&(e.getDrawIndex()===null?this.batchingIdNode=lr:this.batchingIdNode=Cp);const s=b(([f])=>{const m=ns(ge(this.batchMesh._indirectTexture),0),x=y(f).modInt(y(m)),N=y(f).div(y(m));return ge(this.batchMesh._indirectTexture,Ae(x,N)).x}).setLayout({name:"getIndirectIndex",type:"uint",inputs:[{name:"id",type:"int"}]})(y(this.batchingIdNode)),n=this.batchMesh._matricesTexture,r=ns(ge(n),0),i=g(s).mul(4).toInt().toVar(),a=i.modInt(r),u=i.div(y(r)),c=Ts(ge(n,Ae(a,u)),ge(n,Ae(a.add(1),u)),ge(n,Ae(a.add(2),u)),ge(n,Ae(a.add(3),u))),l=this.batchMesh._colorsTexture;if(l!==null){const m=b(([x])=>{const N=ns(ge(l),0).x,v=x,w=v.modInt(N),B=v.div(N);return ge(l,Ae(w,B)).rgb}).setLayout({name:"getBatchingColor",type:"vec3",inputs:[{name:"id",type:"int"}]})(s);et("vec3","vBatchColor").assign(m)}const d=Oe(c);me.assign(c.mul(me));const h=Xe.div(T(d[0].dot(d[0]),d[1].dot(d[1]),d[2].dot(d[2]))),p=d.mul(h).xyz;Xe.assign(p),e.hasGeometryAttribute("tangent")&&or.mulAssign(d)}}const Mp=C(Ax),lc=new WeakMap;class Bp extends O{static get type(){return"SkinningNode"}constructor(e,t=!1){super("void"),this.skinnedMesh=e,this.useReference=t,this.updateType=W.OBJECT,this.skinIndexNode=we("skinIndex","uvec4"),this.skinWeightNode=we("skinWeight","vec4");let s,n,r;t?(s=ne("bindMatrix","mat4"),n=ne("bindMatrixInverse","mat4"),r=Ko("skeleton.boneMatrices","mat4",e.skeleton.bones.length)):(s=V(e.bindMatrix,"mat4"),n=V(e.bindMatrixInverse,"mat4"),r=ir(e.skeleton.boneMatrices,"mat4",e.skeleton.bones.length)),this.bindMatrixNode=s,this.bindMatrixInverseNode=n,this.boneMatricesNode=r,this.previousBoneMatricesNode=null}getSkinnedPosition(e=this.boneMatricesNode,t=me){const{skinIndexNode:s,skinWeightNode:n,bindMatrixNode:r,bindMatrixInverseNode:i}=this,a=e.element(s.x),u=e.element(s.y),c=e.element(s.z),l=e.element(s.w),d=r.mul(t),h=_e(a.mul(n.x).mul(d),u.mul(n.y).mul(d),c.mul(n.z).mul(d),l.mul(n.w).mul(d));return i.mul(h).xyz}getSkinnedNormal(e=this.boneMatricesNode,t=Xe){const{skinIndexNode:s,skinWeightNode:n,bindMatrixNode:r,bindMatrixInverseNode:i}=this,a=e.element(s.x),u=e.element(s.y),c=e.element(s.z),l=e.element(s.w);let d=_e(n.x.mul(a),n.y.mul(u),n.z.mul(c),n.w.mul(l));return d=i.mul(d).mul(r),d.transformDirection(t).xyz}getPreviousSkinnedPosition(e){const t=e.object;return this.previousBoneMatricesNode===null&&(t.skeleton.previousBoneMatrices=new Float32Array(t.skeleton.boneMatrices),this.previousBoneMatricesNode=Ko("skeleton.previousBoneMatrices","mat4",t.skeleton.bones.length)),this.getSkinnedPosition(this.previousBoneMatricesNode,Jr)}needsPreviousBoneMatrices(e){const t=e.renderer.getMRT();return t&&t.has("velocity")||ba(e.object).useVelocity===!0}setup(e){this.needsPreviousBoneMatrices(e)&&Jr.assign(this.getPreviousSkinnedPosition(e));const t=this.getSkinnedPosition();if(me.assign(t),e.hasGeometryAttribute("normal")){const s=this.getSkinnedNormal();Xe.assign(s),e.hasGeometryAttribute("tangent")&&or.assign(s)}}generate(e,t){if(t!=="void")return me.build(e,t)}update(e){const s=(this.useReference?e.object:this.skinnedMesh).skeleton;lc.get(s)!==e.frameId&&(lc.set(s,e.frameId),this.previousBoneMatricesNode!==null&&s.previousBoneMatrices.set(s.boneMatrices),s.update())}}const Rx=o=>E(new Bp(o)),Fp=o=>E(new Bp(o,!0));class Cx extends O{static get type(){return"LoopNode"}constructor(e=[]){super(),this.params=e}getVarName(e){return String.fromCharCode(105+e)}getProperties(e){const t=e.getNodeProperties(this);if(t.stackNode!==void 0)return t;const s={};for(let r=0,i=this.params.length-1;rNumber(d)?f=">=":f="<"));const x={start:l,end:d},N=x.start,v=x.end;let w="",B="",F="";m||(p==="int"||p==="uint"?f.includes("<")?m="++":m="--":f.includes("<")?m="+= 1.":m="-= 1."),w+=e.getVar(p,h)+" = "+N,B+=h+" "+f+" "+v,F+=h+" "+m;const L=`for ( ${w}; ${B}; ${F} )`;e.addFlowCode((a===0?` +`:"")+e.tab+L+` { + +`).addFlowTab()}const r=n.build(e,"void"),i=t.returnsNode?t.returnsNode.build(e):"";e.removeFlowTab().addFlowCode(` +`+e.tab+r);for(let a=0,u=this.params.length-1;aE(new Cx(xs(o,"int"))).append(),Ex=()=>rs("continue").append(),pu=()=>rs("break").append(),wx=(...o)=>(console.warn("TSL.LoopNode: loop() has been renamed to Loop()."),te(...o)),Gi=new WeakMap,Je=new Me,dc=b(({bufferMap:o,influence:e,stride:t,width:s,depth:n,offset:r})=>{const i=y(Rp).mul(t).add(r),a=i.div(s),u=i.sub(a.mul(s));return ge(o,Ae(u,a)).depth(n).mul(e)});function Mx(o){const e=o.morphAttributes.position!==void 0,t=o.morphAttributes.normal!==void 0,s=o.morphAttributes.color!==void 0,n=o.morphAttributes.position||o.morphAttributes.normal||o.morphAttributes.color,r=n!==void 0?n.length:0;let i=Gi.get(o);if(i===void 0||i.count!==r){let N=function(){m.dispose(),Gi.delete(o),o.removeEventListener("dispose",N)};i!==void 0&&i.texture.dispose();const a=o.morphAttributes.position||[],u=o.morphAttributes.normal||[],c=o.morphAttributes.color||[];let l=0;e===!0&&(l=1),t===!0&&(l=2),s===!0&&(l=3);let d=o.attributes.position.count*l,h=1;const p=4096;d>p&&(h=Math.ceil(d/p),d=p);const f=new Float32Array(d*h*4*r),m=new Yg(f,d,h,r);m.type=ot,m.needsUpdate=!0;const x=l*4;for(let v=0;v{const h=g(0).toVar();this.mesh.count>1&&this.mesh.morphTexture!==null&&this.mesh.morphTexture!==void 0?h.assign(ge(this.mesh.morphTexture,Ae(y(d).add(1),y(lr))).r):h.assign(ne("morphTargetInfluences","float").element(d).toVar()),s===!0&&me.addAssign(dc({bufferMap:a,influence:h,stride:u,width:l,depth:d,offset:y(0)})),n===!0&&Xe.addAssign(dc({bufferMap:a,influence:h,stride:u,width:l,depth:d,offset:y(1)}))})}update(){const e=this.morphBaseInfluence;this.mesh.geometry.morphTargetsRelative?e.value=1:e.value=1-this.mesh.morphTargetInfluences.reduce((t,s)=>t+s,0)}}const Up=C(Bx);class hn extends O{static get type(){return"LightingNode"}constructor(){super("vec3"),this.isLightingNode=!0}}class Fx extends hn{static get type(){return"AONode"}constructor(e=null){super(),this.aoNode=e}setup(e){e.context.ambientOcclusion.mulAssign(this.aoNode)}}class Ux extends hh{static get type(){return"LightingContextNode"}constructor(e,t=null,s=null,n=null){super(e),this.lightingModel=t,this.backdropNode=s,this.backdropAlphaNode=n,this._value=null}getContext(){const{backdropNode:e,backdropAlphaNode:t}=this,s=T().toVar("directDiffuse"),n=T().toVar("directSpecular"),r=T().toVar("indirectDiffuse"),i=T().toVar("indirectSpecular"),a={directDiffuse:s,directSpecular:n,indirectDiffuse:r,indirectSpecular:i};return{radiance:T().toVar("radiance"),irradiance:T().toVar("irradiance"),iblIrradiance:T().toVar("iblIrradiance"),ambientOcclusion:g(1).toVar("ambientOcclusion"),reflectedLight:a,backdrop:e,backdropAlpha:t}}setup(e){return this.value=this._value||(this._value=this.getContext()),this.value.lightingModel=this.lightingModel||e.context.lightingModel,super.setup(e)}}const Pp=C(Ux);class Px extends hn{static get type(){return"IrradianceNode"}constructor(e){super(),this.node=e}setup(e){e.context.irradiance.addAssign(this.node)}}let fn,gn;class Se extends O{static get type(){return"ScreenNode"}constructor(e){super(),this.scope=e,this.isViewportNode=!0}getNodeType(){return this.scope===Se.VIEWPORT?"vec4":"vec2"}getUpdateType(){let e=W.NONE;return(this.scope===Se.SIZE||this.scope===Se.VIEWPORT)&&(e=W.RENDER),this.updateType=e,e}update({renderer:e}){const t=e.getRenderTarget();this.scope===Se.VIEWPORT?t!==null?gn.copy(t.viewport):(e.getViewport(gn),gn.multiplyScalar(e.getPixelRatio())):t!==null?(fn.width=t.width,fn.height=t.height):e.getDrawingBufferSize(fn)}setup(){const e=this.scope;let t=null;return e===Se.SIZE?t=V(fn||(fn=new Ye)):e===Se.VIEWPORT?t=V(gn||(gn=new Me)):t=M(dr.div(Kn)),t}generate(e){if(this.scope===Se.COORDINATE){let t=e.getFragCoord();if(e.isFlipY()){const s=e.getNodeProperties(Kn).outputNode.build(e);t=`${e.getType("vec2")}( ${t}.x, ${s}.y - ${t}.y )`}return t}return super.generate(e)}}Se.COORDINATE="coordinate";Se.VIEWPORT="viewport";Se.SIZE="size";Se.UV="uv";const Bt=U(Se,Se.UV),Kn=U(Se,Se.SIZE),dr=U(Se,Se.COORDINATE),$t=U(Se,Se.VIEWPORT),Dp=$t.zw,Lp=dr.sub($t.xy),Dx=Lp.div(Dp),Lx=b(()=>(console.warn('TSL.ViewportNode: "viewportResolution" is deprecated. Use "screenSize" instead.'),Kn),"vec2").once()(),Ix=b(()=>(console.warn('TSL.ViewportNode: "viewportTopLeft" is deprecated. Use "screenUV" instead.'),Bt),"vec2").once()(),Vx=b(()=>(console.warn('TSL.ViewportNode: "viewportBottomLeft" is deprecated. Use "screenUV.flipY()" instead.'),Bt.flipY()),"vec2").once()(),mn=new Ye;class Ci extends wt{static get type(){return"ViewportTextureNode"}constructor(e=Bt,t=null,s=null){s===null&&(s=new bl,s.minFilter=ms),super(s,e,t),this.generateMipmaps=!1,this.isOutputTextureNode=!0,this.updateBeforeType=W.FRAME}updateBefore(e){const t=e.renderer;t.getDrawingBufferSize(mn);const s=this.value;(s.image.width!==mn.width||s.image.height!==mn.height)&&(s.image.width=mn.width,s.image.height=mn.height,s.needsUpdate=!0);const n=s.generateMipmaps;s.generateMipmaps=this.generateMipmaps,t.copyFramebufferToTexture(s),s.generateMipmaps=n}clone(){const e=new this.constructor(this.uvNode,this.levelNode,this.value);return e.generateMipmaps=this.generateMipmaps,e}}const Gx=C(Ci),fu=C(Ci,null,null,{generateMipmaps:!0});let Oi=null;class Ox extends Ci{static get type(){return"ViewportDepthTextureNode"}constructor(e=Bt,t=null){Oi===null&&(Oi=new vs),super(e,t,Oi)}}const gu=C(Ox);class qe extends O{static get type(){return"ViewportDepthNode"}constructor(e,t=null){super("float"),this.scope=e,this.valueNode=t,this.isViewportDepthNode=!0}generate(e){const{scope:t}=this;return t===qe.DEPTH_BASE?e.getFragDepth():super.generate(e)}setup({camera:e}){const{scope:t}=this,s=this.valueNode;let n=null;if(t===qe.DEPTH_BASE)s!==null&&(n=Vp().assign(s));else if(t===qe.DEPTH)e.isPerspectiveCamera?n=Ip(xe.z,Jt,es):n=Qs(xe.z,Jt,es);else if(t===qe.LINEAR_DEPTH)if(s!==null)if(e.isPerspectiveCamera){const r=mu(s,Jt,es);n=Qs(r,Jt,es)}else n=s;else n=Qs(xe.z,Jt,es);return n}}qe.DEPTH_BASE="depthBase";qe.DEPTH="depth";qe.LINEAR_DEPTH="linearDepth";const Qs=(o,e,t)=>o.add(e).div(e.sub(t)),kx=(o,e,t)=>e.sub(t).mul(o).sub(e),Ip=(o,e,t)=>e.add(o).mul(t).div(t.sub(e).mul(o)),mu=(o,e,t)=>e.mul(t).div(t.sub(e).mul(o).sub(t)),yu=(o,e,t)=>{e=e.max(1e-6).toVar();const s=vt(o.negate().div(e)),n=vt(t.div(e));return s.div(n)},zx=(o,e,t)=>{const s=o.mul(yi(t.div(e)));return g(Math.E).pow(s).mul(e).negate()},Vp=C(qe,qe.DEPTH_BASE),xu=U(qe,qe.DEPTH),ei=C(qe,qe.LINEAR_DEPTH),Wx=ei(gu());xu.assign=o=>Vp(o);class $x extends O{constructor(e){super("float"),this.name=e,this.isBuiltinNode=!0}generate(){return this.name}}const Hx=C($x);class ut extends O{static get type(){return"ClippingNode"}constructor(e=ut.DEFAULT){super(),this.scope=e}setup(e){super.setup(e);const t=e.clippingContext,{intersectionPlanes:s,unionPlanes:n}=t;return this.hardwareClipping=e.material.hardwareClipping,this.scope===ut.ALPHA_TO_COVERAGE?this.setupAlphaToCoverage(s,n):this.scope===ut.HARDWARE?this.setupHardwareClipping(n,e):this.setupDefault(s,n)}setupAlphaToCoverage(e,t){return b(()=>{const s=g().toVar("distanceToPlane"),n=g().toVar("distanceToGradient"),r=g(1).toVar("clipOpacity"),i=t.length;if(this.hardwareClipping===!1&&i>0){const u=Gt(t);te(i,({i:c})=>{const l=u.element(c);s.assign(xe.dot(l.xyz).negate().add(l.w)),n.assign(s.fwidth().div(2)),r.mulAssign(ct(n.negate(),n,s))})}const a=e.length;if(a>0){const u=Gt(e),c=g(1).toVar("intersectionClipOpacity");te(a,({i:l})=>{const d=u.element(l);s.assign(xe.dot(d.xyz).negate().add(d.w)),n.assign(s.fwidth().div(2)),c.mulAssign(ct(n.negate(),n,s).oneMinus())}),r.mulAssign(c.oneMinus())}ee.a.mulAssign(r),ee.a.equal(0).discard()})()}setupDefault(e,t){return b(()=>{const s=t.length;if(this.hardwareClipping===!1&&s>0){const r=Gt(t);te(s,({i})=>{const a=r.element(i);xe.dot(a.xyz).greaterThan(a.w).discard()})}const n=e.length;if(n>0){const r=Gt(e),i=Ht(!0).toVar("clipped");te(n,({i:a})=>{const u=r.element(a);i.assign(xe.dot(u.xyz).greaterThan(u.w).and(i))}),i.discard()}})()}setupHardwareClipping(e,t){const s=e.length;return t.enableHardwareClipping(s),b(()=>{const n=Gt(e),r=Hx(t.getClipDistance());te(s,({i})=>{const a=n.element(i),u=xe.dot(a.xyz).sub(a.w).negate();r.element(i).assign(u)})})()}}ut.ALPHA_TO_COVERAGE="alphaToCoverage";ut.DEFAULT="default";ut.HARDWARE="hardware";const qx=()=>E(new ut),Kx=()=>E(new ut(ut.ALPHA_TO_COVERAGE)),Xx=()=>E(new ut(ut.HARDWARE)),Yx=.05,hc=b(([o])=>Xt($(1e4,st($(17,o.x).add($(.1,o.y)))).mul(_e(.1,oe(st($(13,o.y).add(o.x))))))),pc=b(([o])=>hc(M(hc(o.xy),o.z))),jx=b(([o])=>{const e=ue(zt(Ha(o.xyz)),zt(qa(o.xyz))),t=g(1).div(g(Yx).mul(e)).toVar("pixScale"),s=M(rn(At(vt(t))),rn(xi(vt(t)))),n=M(pc(At(s.x.mul(o.xyz))),pc(At(s.y.mul(o.xyz)))),r=Xt(vt(t)),i=_e($(r.oneMinus(),n.x),$(r,n.y)),a=Re(r,r.oneMinus()),u=T(i.mul(i).div($(2,a).mul(Y(1,a))),i.sub($(.5,a)).div(Y(1,a)),Y(1,Y(1,i).mul(Y(1,i)).div($(2,a).mul(Y(1,a))))),c=i.lessThan(a.oneMinus()).select(i.lessThan(a).select(u.x,u.y),u.z);return Et(c,1e-6,1)}).setLayout({name:"getAlphaHashThreshold",type:"float",inputs:[{name:"position",type:"vec3"}]});class ce extends Xu{static get type(){return"NodeMaterial"}get type(){return this.constructor.type}set type(e){}constructor(){super(),this.isNodeMaterial=!0,this.fog=!0,this.lights=!1,this.hardwareClipping=!1,this.lightsNode=null,this.envNode=null,this.aoNode=null,this.colorNode=null,this.normalNode=null,this.opacityNode=null,this.backdropNode=null,this.backdropAlphaNode=null,this.alphaTestNode=null,this.positionNode=null,this.geometryNode=null,this.depthNode=null,this.shadowPositionNode=null,this.receivedShadowNode=null,this.castShadowNode=null,this.outputNode=null,this.mrtNode=null,this.fragmentNode=null,this.vertexNode=null}customProgramCacheKey(){return this.type+ma(this)}build(e){this.setup(e)}setupObserver(e){return new jm(e)}setup(e){e.context.setupNormal=()=>this.setupNormal(e),e.context.setupPositionView=()=>this.setupPositionView(e),e.context.setupModelViewProjection=()=>this.setupModelViewProjection(e);const t=e.renderer,s=t.getRenderTarget();e.addStack();const n=this.vertexNode||this.setupVertex(e);e.stack.outputNode=n,this.setupHardwareClipping(e),this.geometryNode!==null&&(e.stack.outputNode=e.stack.outputNode.bypass(this.geometryNode)),e.addFlow("vertex",e.removeStack()),e.addStack();let r;const i=this.setupClipping(e);if((this.depthWrite===!0||this.depthTest===!0)&&(s!==null?s.depthBuffer===!0&&this.setupDepth(e):t.depth===!0&&this.setupDepth(e)),this.fragmentNode===null){this.setupDiffuseColor(e),this.setupVariants(e);const a=this.setupLighting(e);i!==null&&e.stack.add(i);const u=P(a,ee.a).max(0);if(r=this.setupOutput(e,u),$n.assign(r),this.outputNode!==null&&(r=this.outputNode),s!==null){const c=t.getMRT(),l=this.mrtNode;c!==null?(r=c,l!==null&&(r=c.merge(l))):l!==null&&(r=l)}}else{let a=this.fragmentNode;a.isOutputStructNode!==!0&&(a=P(a)),r=this.setupOutput(e,a)}e.stack.outputNode=r,e.addFlow("fragment",e.removeStack()),e.monitor=this.setupObserver(e)}setupClipping(e){if(e.clippingContext===null)return null;const{unionPlanes:t,intersectionPlanes:s}=e.clippingContext;let n=null;if(t.length>0||s.length>0){const r=e.renderer.samples;this.alphaToCoverage&&r>1?n=Kx():e.stack.add(qx())}return n}setupHardwareClipping(e){if(this.hardwareClipping=!1,e.clippingContext===null)return;const t=e.clippingContext.unionPlanes.length;t>0&&t<=8&&e.isAvailable("clipDistance")&&(e.stack.add(Xx()),this.hardwareClipping=!0)}setupDepth(e){const{renderer:t,camera:s}=e;let n=this.depthNode;if(n===null){const r=t.getMRT();r&&r.has("depth")?n=r.get("depth"):t.logarithmicDepthBuffer===!0&&(s.isPerspectiveCamera?n=yu(xe.z,Jt,es):n=Qs(xe.z,Jt,es))}n!==null&&xu.assign(n).append()}setupPositionView(){return Kt.mul(me).xyz}setupModelViewProjection(){return He.mul(xe)}setupVertex(e){return e.addStack(),this.setupPosition(e),e.context.vertex=e.removeStack(),hu}setupPosition(e){const{object:t,geometry:s}=e;if((s.morphAttributes.position||s.morphAttributes.normal||s.morphAttributes.color)&&Up(t).append(),t.isSkinnedMesh===!0&&Fp(t).append(),this.displacementMap){const n=dt("displacementMap","texture"),r=dt("displacementScale","float"),i=dt("displacementBias","float");me.addAssign(Xe.normalize().mul(n.x.mul(r).add(i)))}return t.isBatchedMesh&&Mp(t).append(),t.isInstancedMesh&&t.instanceMatrix&&t.instanceMatrix.isInstancedBufferAttribute===!0&&wp(t).append(),this.positionNode!==null&&me.assign(this.positionNode.context({isPositionNodeInput:!0})),me}setupDiffuseColor({object:e,geometry:t}){let s=this.colorNode?P(this.colorNode):an;this.vertexColors===!0&&t.hasAttribute("color")&&(s=P(s.xyz.mul(we("color","vec3")),s.a)),e.instanceColor&&(s=et("vec3","vInstanceColor").mul(s)),e.isBatchedMesh&&e._colorsTexture&&(s=et("vec3","vBatchColor").mul(s)),ee.assign(s);const n=this.opacityNode?g(this.opacityNode):cr;if(ee.a.assign(ee.a.mul(n)),this.alphaTestNode!==null||this.alphaTest>0){const r=this.alphaTestNode!==null?g(this.alphaTestNode):ep;ee.a.lessThanEqual(r).discard()}this.alphaHash===!0&&ee.a.lessThan(jx(me)).discard(),this.transparent===!1&&this.blending===Ys&&this.alphaToCoverage===!1&&ee.a.assign(1)}setupVariants(){}setupOutgoingLight(){return this.lights===!0?T(0):ee.rgb}setupNormal(){return this.normalNode?T(this.normalNode):ap}setupEnvironment(){let e=null;return this.envNode?e=this.envNode:this.envMap&&(e=this.envMap.isCubeTexture?dt("envMap","cubeTexture"):dt("envMap","texture")),e}setupLightMap(e){let t=null;return e.material.lightMap&&(t=new Px(du)),t}setupLights(e){const t=[],s=this.setupEnvironment(e);s&&s.isLightingNode&&t.push(s);const n=this.setupLightMap(e);if(n&&n.isLightingNode&&t.push(n),this.aoNode!==null||e.material.aoMap){const i=this.aoNode!==null?this.aoNode:Ap;t.push(new Fx(i))}let r=this.lightsNode||e.lightsNode;return t.length>0&&(r=e.renderer.lighting.createNode([...r.getLights(),...t])),r}setupLightingModel(){}setupLighting(e){const{material:t}=e,{backdropNode:s,backdropAlphaNode:n,emissiveNode:r}=this,a=this.lights===!0||this.lightsNode!==null?this.setupLights(e):null;let u=this.setupOutgoingLight(e);if(a&&a.getScope().hasLights){const c=this.setupLightingModel(e);u=Pp(a,c,s,n)}else s!==null&&(u=T(n!==null?Q(u,s,n):s));return(r&&r.isNode===!0||t.emissive&&t.emissive.isColor===!0)&&(Ho.assign(T(r||sp)),u=u.add(Ho)),u}setupOutput(e,t){if(this.fog===!0){const s=e.fogNode;s&&($n.assign(t),t=P(s))}return t}setDefaultValues(e){for(const s in e){const n=e[s];this[s]===void 0&&(this[s]=n,n&&n.clone&&(this[s]=n.clone()))}const t=Object.getOwnPropertyDescriptors(e.constructor.prototype);for(const s in t)Object.getOwnPropertyDescriptor(this.constructor.prototype,s)===void 0&&t[s].get!==void 0&&Object.defineProperty(this.constructor.prototype,s,t[s])}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{},nodes:{}});const s=Xu.prototype.toJSON.call(this,e),n=Vn(this);s.inputNodes={};for(const{property:i,childNode:a}of n)s.inputNodes[i]=a.toJSON(e).uuid;function r(i){const a=[];for(const u in i){const c=i[u];delete c.metadata,a.push(c)}return a}if(t){const i=r(e.textures),a=r(e.images),u=r(e.nodes);i.length>0&&(s.textures=i),a.length>0&&(s.images=a),u.length>0&&(s.nodes=u)}return s}copy(e){return this.lightsNode=e.lightsNode,this.envNode=e.envNode,this.colorNode=e.colorNode,this.normalNode=e.normalNode,this.opacityNode=e.opacityNode,this.backdropNode=e.backdropNode,this.backdropAlphaNode=e.backdropAlphaNode,this.alphaTestNode=e.alphaTestNode,this.positionNode=e.positionNode,this.geometryNode=e.geometryNode,this.depthNode=e.depthNode,this.shadowPositionNode=e.shadowPositionNode,this.receivedShadowNode=e.receivedShadowNode,this.castShadowNode=e.castShadowNode,this.outputNode=e.outputNode,this.mrtNode=e.mrtNode,this.fragmentNode=e.fragmentNode,this.vertexNode=e.vertexNode,super.copy(e)}}const Qx=new hl;class dR extends ce{static get type(){return"InstancedPointsNodeMaterial"}constructor(e={}){super(),this.isInstancedPointsNodeMaterial=!0,this.useColor=e.vertexColors,this.pointWidth=1,this.pointColorNode=null,this.pointWidthNode=null,this._useAlphaToCoverage=!0,this.setDefaultValues(Qx),this.setValues(e)}setup(e){const{renderer:t}=e,s=this._useAlphaToCoverage,n=this.useColor;this.vertexNode=b(()=>{const r=we("instancePosition").xyz,i=P(Kt.mul(P(r,1))),a=$t.z.div($t.w),u=He.mul(i),c=Ce.xy.toVar();return c.mulAssign(this.pointWidthNode?this.pointWidthNode:Sp),c.assign(c.div($t.z)),c.y.assign(c.y.mul(a)),c.assign(c.mul(u.w)),u.addAssign(P(c,0,0)),u})(),this.fragmentNode=b(()=>{const r=g(1).toVar(),i=ja(le().mul(2).sub(1));if(s&&t.samples>1){const u=g(i.fwidth()).toVar();r.assign(ct(u.oneMinus(),u.add(1),i).oneMinus())}else i.greaterThan(1).discard();let a;return this.pointColorNode?a=this.pointColorNode:n?a=we("instanceColor").mul(an):a=an,r.mulAssign(cr),P(a,r)})(),super.setup(e)}get alphaToCoverage(){return this._useAlphaToCoverage}set alphaToCoverage(e){this._useAlphaToCoverage!==e&&(this._useAlphaToCoverage=e,this.needsUpdate=!0)}}const Zx=new Eg;class Jx extends ce{static get type(){return"LineBasicNodeMaterial"}constructor(e){super(),this.isLineBasicNodeMaterial=!0,this.setDefaultValues(Zx),this.setValues(e)}}const eT=new pl;class tT extends ce{static get type(){return"LineDashedNodeMaterial"}constructor(e){super(),this.isLineDashedNodeMaterial=!0,this.setDefaultValues(eT),this.dashOffset=0,this.offsetNode=null,this.dashScaleNode=null,this.dashSizeNode=null,this.gapSizeNode=null,this.setValues(e)}setupVariants(){const e=this.offsetNode?g(this.offsetNode):lu,t=this.dashScaleNode?g(this.dashScaleNode):au,s=this.dashSizeNode?g(this.dashSizeNode):uu,n=this.gapSizeNode?g(this.gapSizeNode):cu;bs.assign(s),Hn.assign(n);const r=ke(we("lineDistance").mul(t));(e?r.add(e):r).mod(bs.add(Hn)).greaterThan(bs).discard()}}let ki=null;class sT extends Ci{static get type(){return"ViewportSharedTextureNode"}constructor(e=Bt,t=null){ki===null&&(ki=new bl),super(e,t,ki)}updateReference(){return this}}const Gp=C(sT),nT=new pl;class hR extends ce{static get type(){return"Line2NodeMaterial"}constructor(e={}){super(),this.isLine2NodeMaterial=!0,this.setDefaultValues(nT),this.useColor=e.vertexColors,this.dashOffset=0,this.lineWidth=1,this.lineColorNode=null,this.offsetNode=null,this.dashScaleNode=null,this.dashSizeNode=null,this.gapSizeNode=null,this.blending=en,this._useDash=e.dashed,this._useAlphaToCoverage=!0,this._useWorldUnits=!1,this.setValues(e)}setup(e){const{renderer:t}=e,s=this._useAlphaToCoverage,n=this.useColor,r=this._useDash,i=this._useWorldUnits,a=b(({start:c,end:l})=>{const d=He.element(2).element(2),f=He.element(3).element(2).mul(-.5).div(d).sub(c.z).div(l.z.sub(c.z));return P(Q(c.xyz,l.xyz,f),l.w)}).setLayout({name:"trimSegment",type:"vec4",inputs:[{name:"start",type:"vec4"},{name:"end",type:"vec4"}]});this.vertexNode=b(()=>{const c=we("instanceStart"),l=we("instanceEnd"),d=P(Kt.mul(P(c,1))).toVar("start"),h=P(Kt.mul(P(l,1))).toVar("end");if(r){const F=this.dashScaleNode?g(this.dashScaleNode):au,L=this.offsetNode?g(this.offsetNode):lu,I=we("instanceDistanceStart"),G=we("instanceDistanceEnd");let X=Ce.y.lessThan(.5).select(F.mul(I),F.mul(G));X=X.add(L),et("float","lineDistance").assign(X)}i&&(et("vec3","worldStart").assign(d.xyz),et("vec3","worldEnd").assign(h.xyz));const p=$t.z.div($t.w),f=He.element(2).element(3).equal(-1);z(f,()=>{z(d.z.lessThan(0).and(h.z.greaterThan(0)),()=>{h.assign(a({start:d,end:h}))}).ElseIf(h.z.lessThan(0).and(d.z.greaterThanEqual(0)),()=>{d.assign(a({start:h,end:d}))})});const m=He.mul(d),x=He.mul(h),N=m.xyz.div(m.w),v=x.xyz.div(x.w),w=v.xy.sub(N.xy).toVar();w.x.assign(w.x.mul(p)),w.assign(w.normalize());const B=P().toVar();if(i){const F=h.xyz.sub(d.xyz).normalize(),L=Q(d.xyz,h.xyz,.5).normalize(),I=F.cross(L).normalize(),G=F.cross(I),X=et("vec4","worldPos");X.assign(Ce.y.lessThan(.5).select(d,h));const ie=Or.mul(.5);X.addAssign(P(Ce.x.lessThan(0).select(I.mul(ie),I.mul(ie).negate()),0)),r||(X.addAssign(P(Ce.y.lessThan(.5).select(F.mul(ie).negate(),F.mul(ie)),0)),X.addAssign(P(G.mul(ie),0)),z(Ce.y.greaterThan(1).or(Ce.y.lessThan(0)),()=>{X.subAssign(P(G.mul(2).mul(ie),0))})),B.assign(He.mul(X));const Z=T().toVar();Z.assign(Ce.y.lessThan(.5).select(N,v)),B.z.assign(Z.z.mul(B.w))}else{const F=M(w.y,w.x.negate()).toVar("offset");w.x.assign(w.x.div(p)),F.x.assign(F.x.div(p)),F.assign(Ce.x.lessThan(0).select(F.negate(),F)),z(Ce.y.lessThan(0),()=>{F.assign(F.sub(w))}).ElseIf(Ce.y.greaterThan(1),()=>{F.assign(F.add(w))}),F.assign(F.mul(Or)),F.assign(F.div($t.w)),B.assign(Ce.y.lessThan(.5).select(m,x)),F.assign(F.mul(B.w)),B.assign(B.add(P(F,0,0)))}return B})();const u=b(({p1:c,p2:l,p3:d,p4:h})=>{const p=c.sub(d),f=h.sub(d),m=l.sub(c),x=p.dot(f),N=f.dot(m),v=p.dot(m),w=f.dot(f),F=m.dot(m).mul(w).sub(N.mul(N)),I=x.mul(N).sub(v.mul(w)).div(F).clamp(),G=x.add(N.mul(I)).div(w).clamp();return M(I,G)});if(this.colorNode=b(()=>{const c=le();if(r){const h=this.dashSizeNode?g(this.dashSizeNode):uu,p=this.gapSizeNode?g(this.gapSizeNode):cu;bs.assign(h),Hn.assign(p);const f=et("float","lineDistance");c.y.lessThan(-1).or(c.y.greaterThan(1)).discard(),f.mod(bs.add(Hn)).greaterThan(bs).discard()}const l=g(1).toVar("alpha");if(i){const h=et("vec3","worldStart"),p=et("vec3","worldEnd"),f=et("vec4","worldPos").xyz.normalize().mul(1e5),m=p.sub(h),x=u({p1:h,p2:p,p3:T(0,0,0),p4:f}),N=h.add(m.mul(x.x)),v=f.mul(x.y),F=N.sub(v).length().div(Or);if(!r)if(s&&t.samples>1){const L=F.fwidth();l.assign(ct(L.negate().add(.5),L.add(.5),F).oneMinus())}else F.greaterThan(.5).discard()}else if(s&&t.samples>1){const h=c.x,p=c.y.greaterThan(0).select(c.y.sub(1),c.y.add(1)),f=h.mul(h).add(p.mul(p)),m=g(f.fwidth()).toVar("dlen");z(c.y.abs().greaterThan(1),()=>{l.assign(ct(m.oneMinus(),m.add(1),f).oneMinus())})}else z(c.y.abs().greaterThan(1),()=>{const h=c.x,p=c.y.greaterThan(0).select(c.y.sub(1),c.y.add(1));h.mul(h).add(p.mul(p)).greaterThan(1).discard()});let d;if(this.lineColorNode)d=this.lineColorNode;else if(n){const h=we("instanceColorStart"),p=we("instanceColorEnd");d=Ce.y.lessThan(.5).select(h,p).mul(an)}else d=an;return P(d,l)})(),this.transparent){const c=this.opacityNode?g(this.opacityNode):cr;this.outputNode=P(this.colorNode.rgb.mul(c).add(Gp().rgb.mul(c.oneMinus())),this.colorNode.a)}super.setup(e)}get worldUnits(){return this._useWorldUnits}set worldUnits(e){this._useWorldUnits!==e&&(this._useWorldUnits=e,this.needsUpdate=!0)}get dashed(){return this._useDash}set dashed(e){this._useDash!==e&&(this._useDash=e,this.needsUpdate=!0)}get alphaToCoverage(){return this._useAlphaToCoverage}set alphaToCoverage(e){this._useAlphaToCoverage!==e&&(this._useAlphaToCoverage=e,this.needsUpdate=!0)}}const Op=o=>E(o).mul(.5).add(.5),rT=o=>E(o).mul(2).sub(1),iT=new Bg;class oT extends ce{static get type(){return"MeshNormalNodeMaterial"}constructor(e){super(),this.isMeshNormalNodeMaterial=!0,this.setDefaultValues(iT),this.setValues(e)}setupDiffuseColor(){const e=this.opacityNode?g(this.opacityNode):cr;ee.assign(P(Op(fe),e))}}class aT extends be{static get type(){return"EquirectUVNode"}constructor(e=nu){super("vec2"),this.dirNode=e}setup(){const e=this.dirNode,t=e.z.atan(e.x).mul(1/(Math.PI*2)).add(.5),s=e.y.clamp(-1,1).asin().mul(1/Math.PI).add(.5);return M(t,s)}}const Tu=C(aT);class kp extends jg{constructor(e=1,t={}){super(e,t),this.isCubeRenderTarget=!0}fromEquirectangularTexture(e,t){const s=t.minFilter,n=t.generateMipmaps;t.generateMipmaps=!0,this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const r=new _l(5,5,5),i=Tu(nu),a=new ce;a.colorNode=K(t,i,0),a.side=Ct,a.blending=en;const u=new tn(r,a),c=new Nl;c.add(u),t.minFilter===ms&&(t.minFilter=ft);const l=new Qg(1,10,this),d=e.getMRT();return e.setMRT(null),l.update(e,c),e.setMRT(d),t.minFilter=s,t.currentGenerateMipmaps=n,u.geometry.dispose(),u.material.dispose(),this}}const Fn=new WeakMap;class uT extends be{static get type(){return"CubeMapNode"}constructor(e){super("vec3"),this.envNode=e,this._cubeTexture=null,this._cubeTextureNode=on();const t=new td;t.isRenderTargetTexture=!0,this._defaultTexture=t,this.updateBeforeType=W.RENDER}updateBefore(e){const{renderer:t,material:s}=e,n=this.envNode;if(n.isTextureNode||n.isMaterialReferenceNode){const r=n.isTextureNode?n.value:s[n.property];if(r&&r.isTexture){const i=r.mapping;if(i===jn||i===Qn){if(Fn.has(r)){const a=Fn.get(r);fc(a,r.mapping),this._cubeTexture=a}else{const a=r.image;if(cT(a)){const u=new kp(a.height);u.fromEquirectangularTexture(t,r),fc(u.texture,r.mapping),this._cubeTexture=u.texture,Fn.set(r,u.texture),r.addEventListener("dispose",zp)}else this._cubeTexture=this._defaultTexture}this._cubeTextureNode.value=this._cubeTexture}else this._cubeTextureNode=this.envNode}}}setup(e){return this.updateBefore(e),this._cubeTextureNode}}function cT(o){return o==null?!1:o.height>0}function zp(o){const e=o.target;e.removeEventListener("dispose",zp);const t=Fn.get(e);t!==void 0&&(Fn.delete(e),t.dispose())}function fc(o,e){e===jn?o.mapping=Zs:e===Qn&&(o.mapping=Js)}const Wp=C(uT);class _u extends hn{static get type(){return"BasicEnvironmentNode"}constructor(e=null){super(),this.envNode=e}setup(e){e.context.environment=Wp(this.envNode)}}class lT extends hn{static get type(){return"BasicLightMapNode"}constructor(e=null){super(),this.lightMapNode=e}setup(e){const t=g(1/Math.PI);e.context.irradianceLightMap=this.lightMapNode.mul(t)}}class Ei{start(){}finish(){}direct(){}directRectArea(){}indirect(){}ambientOcclusion(){}}class $p extends Ei{constructor(){super()}indirect(e,t,s){const n=e.ambientOcclusion,r=e.reflectedLight,i=s.context.irradianceLightMap;r.indirectDiffuse.assign(P(0)),i?r.indirectDiffuse.addAssign(i):r.indirectDiffuse.addAssign(P(1,1,1,0)),r.indirectDiffuse.mulAssign(n),r.indirectDiffuse.mulAssign(ee.rgb)}finish(e,t,s){const n=s.material,r=e.outgoingLight,i=s.context.environment;if(i)switch(n.combine){case Xg:r.rgb.assign(Q(r.rgb,r.rgb.mul(i.rgb),Bn.mul(Gr)));break;case Kg:r.rgb.assign(Q(r.rgb,i.rgb,Bn.mul(Gr)));break;case qg:r.rgb.addAssign(i.rgb.mul(Bn.mul(Gr)));break;default:console.warn("THREE.BasicLightingModel: Unsupported .combine value:",n.combine);break}}}const dT=new fl;class hT extends ce{static get type(){return"MeshBasicNodeMaterial"}constructor(e){super(),this.isMeshBasicNodeMaterial=!0,this.lights=!0,this.setDefaultValues(dT),this.setValues(e)}setupNormal(){return lt}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new _u(t):null}setupLightMap(e){let t=null;return e.material.lightMap&&(t=new lT(du)),t}setupOutgoingLight(){return ee.rgb}setupLightingModel(){return new $p}}const un=b(({f0:o,f90:e,dotVH:t})=>{const s=t.mul(-5.55473).sub(6.98316).mul(t).exp2();return o.mul(s.oneMinus()).add(e.mul(s))}),Ns=b(o=>o.diffuseColor.mul(1/Math.PI)),pT=()=>g(.25),fT=b(({dotNH:o})=>Yr.mul(g(.5)).add(1).mul(g(1/Math.PI)).mul(o.pow(Yr))),gT=b(({lightDirection:o})=>{const e=o.add(ae).normalize(),t=fe.dot(e).clamp(),s=ae.dot(e).clamp(),n=un({f0:We,f90:1,dotVH:s}),r=pT(),i=fT({dotNH:t});return n.mul(r).mul(i)});class Hp extends $p{constructor(e=!0){super(),this.specular=e}direct({lightDirection:e,lightColor:t,reflectedLight:s}){const r=fe.dot(e).clamp().mul(t);s.directDiffuse.addAssign(r.mul(Ns({diffuseColor:ee.rgb}))),this.specular===!0&&s.directSpecular.addAssign(r.mul(gT({lightDirection:e})).mul(Bn))}indirect({ambientOcclusion:e,irradiance:t,reflectedLight:s}){s.indirectDiffuse.addAssign(t.mul(Ns({diffuseColor:ee}))),s.indirectDiffuse.mulAssign(e)}}const mT=new wg;class yT extends ce{static get type(){return"MeshLambertNodeMaterial"}constructor(e){super(),this.isMeshLambertNodeMaterial=!0,this.lights=!0,this.setDefaultValues(mT),this.setValues(e)}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new _u(t):null}setupLightingModel(){return new Hp(!1)}}const xT=new Fg;class TT extends ce{static get type(){return"MeshPhongNodeMaterial"}constructor(e){super(),this.isMeshPhongNodeMaterial=!0,this.lights=!0,this.shininessNode=null,this.specularNode=null,this.setDefaultValues(xT),this.setValues(e)}setupEnvironment(e){const t=super.setupEnvironment(e);return t?new _u(t):null}setupLightingModel(){return new Hp}setupVariants(){const e=(this.shininessNode?g(this.shininessNode):tp).max(1e-4);Yr.assign(e);const t=this.specularNode||np;We.assign(t)}copy(e){return this.shininessNode=e.shininessNode,this.specularNode=e.specularNode,super.copy(e)}}const qp=b(o=>{if(o.geometry.hasAttribute("normal")===!1)return g(0);const e=lt.dFdx().abs().max(lt.dFdy().abs());return e.x.max(e.y).max(e.z)}),bu=b(o=>{const{roughness:e}=o,t=qp();let s=e.max(.0525);return s=s.add(t),s=s.min(1),s}),Kp=b(({alpha:o,dotNL:e,dotNV:t})=>{const s=o.pow2(),n=e.mul(s.add(s.oneMinus().mul(t.pow2())).sqrt()),r=t.mul(s.add(s.oneMinus().mul(e.pow2())).sqrt());return gt(.5,n.add(r).max(Gd))}).setLayout({name:"V_GGX_SmithCorrelated",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNL",type:"float"},{name:"dotNV",type:"float"}]}),_T=b(({alphaT:o,alphaB:e,dotTV:t,dotBV:s,dotTL:n,dotBL:r,dotNV:i,dotNL:a})=>{const u=a.mul(T(o.mul(t),e.mul(s),i).length()),c=i.mul(T(o.mul(n),e.mul(r),a).length());return gt(.5,u.add(c)).saturate()}).setLayout({name:"V_GGX_SmithCorrelated_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotTV",type:"float",qualifier:"in"},{name:"dotBV",type:"float",qualifier:"in"},{name:"dotTL",type:"float",qualifier:"in"},{name:"dotBL",type:"float",qualifier:"in"},{name:"dotNV",type:"float",qualifier:"in"},{name:"dotNL",type:"float",qualifier:"in"}]}),Xp=b(({alpha:o,dotNH:e})=>{const t=o.pow2(),s=e.pow2().mul(t.oneMinus()).oneMinus();return t.div(s.pow2()).mul(1/Math.PI)}).setLayout({name:"D_GGX",type:"float",inputs:[{name:"alpha",type:"float"},{name:"dotNH",type:"float"}]}),bT=g(1/Math.PI),NT=b(({alphaT:o,alphaB:e,dotNH:t,dotTH:s,dotBH:n})=>{const r=o.mul(e),i=T(e.mul(s),o.mul(n),r.mul(t)),a=i.dot(i),u=r.div(a);return bT.mul(r.mul(u.pow2()))}).setLayout({name:"D_GGX_Anisotropic",type:"float",inputs:[{name:"alphaT",type:"float",qualifier:"in"},{name:"alphaB",type:"float",qualifier:"in"},{name:"dotNH",type:"float",qualifier:"in"},{name:"dotTH",type:"float",qualifier:"in"},{name:"dotBH",type:"float",qualifier:"in"}]}),jo=b(o=>{const{lightDirection:e,f0:t,f90:s,roughness:n,f:r,USE_IRIDESCENCE:i,USE_ANISOTROPY:a}=o,u=o.normalView||fe,c=n.pow2(),l=e.add(ae).normalize(),d=u.dot(e).clamp(),h=u.dot(ae).clamp(),p=u.dot(l).clamp(),f=ae.dot(l).clamp();let m=un({f0:t,f90:s,dotVH:f}),x,N;if(Gn(i)&&(m=mi.mix(m,r)),Gn(a)){const v=En.dot(e),w=En.dot(ae),B=En.dot(l),F=_s.dot(e),L=_s.dot(ae),I=_s.dot(l);x=_T({alphaT:Xr,alphaB:c,dotTV:w,dotBV:L,dotTL:v,dotBL:F,dotNV:h,dotNL:d}),N=NT({alphaT:Xr,alphaB:c,dotNH:p,dotTH:B,dotBH:I})}else x=Kp({alpha:c,dotNL:d,dotNV:h}),N=Xp({alpha:c,dotNH:p});return m.mul(x).mul(N)}),Nu=b(({roughness:o,dotNV:e})=>{const t=P(-1,-.0275,-.572,.022),s=P(1,.0425,1.04,-.04),n=o.mul(t).add(s),r=n.x.mul(n.x).min(e.mul(-9.28).exp2()).mul(n.x).add(n.y);return M(-1.04,1.04).mul(r).add(n.zw)}).setLayout({name:"DFGApprox",type:"vec2",inputs:[{name:"roughness",type:"float"},{name:"dotNV",type:"vec3"}]}),Yp=b(o=>{const{dotNV:e,specularColor:t,specularF90:s,roughness:n}=o,r=Nu({dotNV:e,roughness:n});return t.mul(r.x).add(s.mul(r.y))}),jp=b(({f:o,f90:e,dotVH:t})=>{const s=t.oneMinus().saturate(),n=s.mul(s),r=s.mul(n,n).clamp(0,.9999);return o.sub(T(e).mul(r)).div(r.oneMinus())}).setLayout({name:"Schlick_to_F0",type:"vec3",inputs:[{name:"f",type:"vec3"},{name:"f90",type:"float"},{name:"dotVH",type:"float"}]}),ST=b(({roughness:o,dotNH:e})=>{const t=o.pow2(),s=g(1).div(t),r=e.pow2().oneMinus().max(.0078125);return g(2).add(s).mul(r.pow(s.mul(.5))).div(2*Math.PI)}).setLayout({name:"D_Charlie",type:"float",inputs:[{name:"roughness",type:"float"},{name:"dotNH",type:"float"}]}),vT=b(({dotNV:o,dotNL:e})=>g(1).div(g(4).mul(e.add(o).sub(e.mul(o))))).setLayout({name:"V_Neubelt",type:"float",inputs:[{name:"dotNV",type:"float"},{name:"dotNL",type:"float"}]}),AT=b(({lightDirection:o})=>{const e=o.add(ae).normalize(),t=fe.dot(o).clamp(),s=fe.dot(ae).clamp(),n=fe.dot(e).clamp(),r=ST({roughness:gi,dotNH:n}),i=vT({dotNV:s,dotNL:t});return fs.mul(r).mul(i)}),RT=b(({N:o,V:e,roughness:t})=>{const r=.0078125,i=o.dot(e).saturate(),a=M(t,i.oneMinus().sqrt());return a.assign(a.mul(.984375).add(r)),a}).setLayout({name:"LTC_Uv",type:"vec2",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"roughness",type:"float"}]}),CT=b(({f:o})=>{const e=o.length();return ue(e.mul(e).add(o.z).div(e.add(1)),0)}).setLayout({name:"LTC_ClippedSphereFormFactor",type:"float",inputs:[{name:"f",type:"vec3"}]}),gr=b(({v1:o,v2:e})=>{const t=o.dot(e),s=t.abs().toVar(),n=s.mul(.0145206).add(.4965155).mul(s).add(.8543985).toVar(),r=s.add(4.1616724).mul(s).add(3.417594).toVar(),i=n.div(r),a=t.greaterThan(0).select(i,ue(t.mul(t).oneMinus(),1e-7).inverseSqrt().mul(.5).sub(i));return o.cross(e).mul(a)}).setLayout({name:"LTC_EdgeVectorFormFactor",type:"vec3",inputs:[{name:"v1",type:"vec3"},{name:"v2",type:"vec3"}]}),gc=b(({N:o,V:e,P:t,mInv:s,p0:n,p1:r,p2:i,p3:a})=>{const u=r.sub(n).toVar(),c=a.sub(n).toVar(),l=u.cross(c),d=T().toVar();return z(l.dot(t.sub(n)).greaterThanEqual(0),()=>{const h=e.sub(o.mul(e.dot(o))).normalize(),p=o.cross(h).negate(),f=s.mul(Oe(h,p,o).transpose()).toVar(),m=f.mul(n.sub(t)).normalize().toVar(),x=f.mul(r.sub(t)).normalize().toVar(),N=f.mul(i.sub(t)).normalize().toVar(),v=f.mul(a.sub(t)).normalize().toVar(),w=T(0).toVar();w.addAssign(gr({v1:m,v2:x})),w.addAssign(gr({v1:x,v2:N})),w.addAssign(gr({v1:N,v2:v})),w.addAssign(gr({v1:v,v2:m})),d.assign(T(CT({f:w})))}),d}).setLayout({name:"LTC_Evaluate",type:"vec3",inputs:[{name:"N",type:"vec3"},{name:"V",type:"vec3"},{name:"P",type:"vec3"},{name:"mInv",type:"mat3"},{name:"p0",type:"vec3"},{name:"p1",type:"vec3"},{name:"p2",type:"vec3"},{name:"p3",type:"vec3"}]}),wi=1/6,Qp=o=>$(wi,$(o,$(o,o.negate().add(3)).sub(3)).add(1)),Qo=o=>$(wi,$(o,$(o,$(3,o).sub(6))).add(4)),Zp=o=>$(wi,$(o,$(o,$(-3,o).add(3)).add(3)).add(1)),Zo=o=>$(wi,ht(o,3)),mc=o=>Qp(o).add(Qo(o)),yc=o=>Zp(o).add(Zo(o)),xc=o=>_e(-1,Qo(o).div(Qp(o).add(Qo(o)))),Tc=o=>_e(1,Zo(o).div(Zp(o).add(Zo(o)))),_c=(o,e,t)=>{const s=o.uvNode,n=$(s,e.zw).add(.5),r=At(n),i=Xt(n),a=mc(i.x),u=yc(i.x),c=xc(i.x),l=Tc(i.x),d=xc(i.y),h=Tc(i.y),p=M(r.x.add(c),r.y.add(d)).sub(.5).mul(e.xy),f=M(r.x.add(l),r.y.add(d)).sub(.5).mul(e.xy),m=M(r.x.add(c),r.y.add(h)).sub(.5).mul(e.xy),x=M(r.x.add(l),r.y.add(h)).sub(.5).mul(e.xy),N=mc(i.y).mul(_e(a.mul(o.sample(p).level(t)),u.mul(o.sample(f).level(t)))),v=yc(i.y).mul(_e(a.mul(o.sample(m).level(t)),u.mul(o.sample(x).level(t))));return N.add(v)},Jp=b(([o,e=g(3)])=>{const t=M(o.size(y(e))),s=M(o.size(y(e.add(1)))),n=gt(1,t),r=gt(1,s),i=_c(o,P(n,t),At(e)),a=_c(o,P(r,s),xi(e));return Xt(e).mix(i,a)}),bc=b(([o,e,t,s,n])=>{const r=T(Qa(e.negate(),qt(o),gt(1,s))),i=T(zt(n[0].xyz),zt(n[1].xyz),zt(n[2].xyz));return qt(r).mul(t.mul(i))}).setLayout({name:"getVolumeTransmissionRay",type:"vec3",inputs:[{name:"n",type:"vec3"},{name:"v",type:"vec3"},{name:"thickness",type:"float"},{name:"ior",type:"float"},{name:"modelMatrix",type:"mat4"}]}),ET=b(([o,e])=>o.mul(Et(e.mul(2).sub(2),0,1))).setLayout({name:"applyIorToRoughness",type:"float",inputs:[{name:"roughness",type:"float"},{name:"ior",type:"float"}]}),wT=fu(),MT=fu(),Nc=b(([o,e,t],{material:s})=>{const r=(s.side===Ct?wT:MT).sample(o),i=vt(Kn.x).mul(ET(e,t));return Jp(r,i)}),Sc=b(([o,e,t])=>(z(t.notEqual(0),()=>{const s=yi(e).negate().div(t);return za(s.negate().mul(o))}),T(1))).setLayout({name:"volumeAttenuation",type:"vec3",inputs:[{name:"transmissionDistance",type:"float"},{name:"attenuationColor",type:"vec3"},{name:"attenuationDistance",type:"float"}]}),BT=b(([o,e,t,s,n,r,i,a,u,c,l,d,h,p,f])=>{let m,x;if(f){m=P().toVar(),x=T().toVar();const F=l.sub(1).mul(f.mul(.025)),L=T(l.sub(F),l,l.add(F));te({start:0,end:3},({i:I})=>{const G=L.element(I),X=bc(o,e,d,G,a),ie=i.add(X),Z=c.mul(u.mul(P(ie,1))),Qe=M(Z.xy.div(Z.w)).toVar();Qe.addAssign(1),Qe.divAssign(2),Qe.assign(M(Qe.x,Qe.y.oneMinus()));const Ze=Nc(Qe,t,G);m.element(I).assign(Ze.element(I)),m.a.addAssign(Ze.a),x.element(I).assign(s.element(I).mul(Sc(zt(X),h,p).element(I)))}),m.a.divAssign(3)}else{const F=bc(o,e,d,l,a),L=i.add(F),I=c.mul(u.mul(P(L,1))),G=M(I.xy.div(I.w)).toVar();G.addAssign(1),G.divAssign(2),G.assign(M(G.x,G.y.oneMinus())),m=Nc(G,t,l),x=s.mul(Sc(zt(F),h,p))}const N=x.rgb.mul(m.rgb),v=o.dot(e).clamp(),w=T(Yp({dotNV:v,specularColor:n,specularF90:r,roughness:t})),B=x.r.add(x.g,x.b).div(3);return P(w.oneMinus().mul(N),m.a.oneMinus().mul(B).oneMinus())}),FT=Oe(3.2404542,-.969266,.0556434,-1.5371385,1.8760108,-.2040259,-.4985314,.041556,1.0572252),UT=o=>{const e=o.sqrt();return T(1).add(e).div(T(1).sub(e))},vc=(o,e)=>o.sub(e).div(o.add(e)).pow2(),PT=(o,e)=>{const t=o.mul(2*Math.PI*1e-9),s=T(54856e-17,44201e-17,52481e-17),n=T(1681e3,1795300,2208400),r=T(43278e5,93046e5,66121e5),i=g(9747e-17*Math.sqrt(2*Math.PI*45282e5)).mul(t.mul(2239900).add(e.x).cos()).mul(t.pow2().mul(-45282e5).exp());let a=s.mul(r.mul(2*Math.PI).sqrt()).mul(n.mul(t).add(e).cos()).mul(t.pow2().negate().mul(r).exp());return a=T(a.x.add(i),a.y,a.z).div(10685e-11),FT.mul(a)},DT=b(({outsideIOR:o,eta2:e,cosTheta1:t,thinFilmThickness:s,baseF0:n})=>{const r=Q(o,e,ct(0,.03,s)),a=o.div(r).pow2().mul(t.pow2().oneMinus()).oneMinus();z(a.lessThan(0),()=>T(1));const u=a.sqrt(),c=vc(r,o),l=un({f0:c,f90:1,dotVH:t}),d=l.oneMinus(),h=r.lessThan(o).select(Math.PI,0),p=g(Math.PI).sub(h),f=UT(n.clamp(0,.9999)),m=vc(f,r.toVec3()),x=un({f0:m,f90:1,dotVH:u}),N=T(f.x.lessThan(r).select(Math.PI,0),f.y.lessThan(r).select(Math.PI,0),f.z.lessThan(r).select(Math.PI,0)),v=r.mul(s,u,2),w=T(p).add(N),B=l.mul(x).clamp(1e-5,.9999),F=B.sqrt(),L=d.pow2().mul(x).div(T(1).sub(B)),G=l.add(L).toVar(),X=L.sub(d).toVar();return te({start:1,end:2,condition:"<=",name:"m"},({m:ie})=>{X.mulAssign(F);const Z=PT(g(ie).mul(v),g(ie).mul(w)).mul(2);G.addAssign(X.mul(Z))}),G.max(T(0))}).setLayout({name:"evalIridescence",type:"vec3",inputs:[{name:"outsideIOR",type:"float"},{name:"eta2",type:"float"},{name:"cosTheta1",type:"float"},{name:"thinFilmThickness",type:"float"},{name:"baseF0",type:"vec3"}]}),LT=b(({normal:o,viewDir:e,roughness:t})=>{const s=o.dot(e).saturate(),n=t.pow2(),r=Ue(t.lessThan(.25),g(-339.2).mul(n).add(g(161.4).mul(t)).sub(25.9),g(-8.48).mul(n).add(g(14.3).mul(t)).sub(9.95)),i=Ue(t.lessThan(.25),g(44).mul(n).sub(g(23.7).mul(t)).add(3.26),g(1.97).mul(n).sub(g(3.27).mul(t)).add(.72));return Ue(t.lessThan(.25),0,g(.1).mul(t).sub(.025)).add(r.mul(s).add(i).exp()).mul(1/Math.PI).saturate()}),zi=T(.04),Wi=g(1);class Su extends Ei{constructor(e=!1,t=!1,s=!1,n=!1,r=!1,i=!1){super(),this.clearcoat=e,this.sheen=t,this.iridescence=s,this.anisotropy=n,this.transmission=r,this.dispersion=i,this.clearcoatRadiance=null,this.clearcoatSpecularDirect=null,this.clearcoatSpecularIndirect=null,this.sheenSpecularDirect=null,this.sheenSpecularIndirect=null,this.iridescenceFresnel=null,this.iridescenceF0=null}start(e){if(this.clearcoat===!0&&(this.clearcoatRadiance=T().toVar("clearcoatRadiance"),this.clearcoatSpecularDirect=T().toVar("clearcoatSpecularDirect"),this.clearcoatSpecularIndirect=T().toVar("clearcoatSpecularIndirect")),this.sheen===!0&&(this.sheenSpecularDirect=T().toVar("sheenSpecularDirect"),this.sheenSpecularIndirect=T().toVar("sheenSpecularIndirect")),this.iridescence===!0){const t=fe.dot(ae).clamp();this.iridescenceFresnel=DT({outsideIOR:g(1),eta2:Ua,cosTheta1:t,thinFilmThickness:Pa,baseF0:We}),this.iridescenceF0=jp({f:this.iridescenceFresnel,f90:1,dotVH:t})}if(this.transmission===!0){const t=Wt,s=su.sub(Wt).normalize(),n=vi;e.backdrop=BT(n,s,Nt,ee,We,Wn,t,at,je,He,wn,Da,Ia,La,this.dispersion?Va:null),e.backdropAlpha=jr,ee.a.mulAssign(Q(1,e.backdrop.a,jr))}}computeMultiscattering(e,t,s){const n=fe.dot(ae).clamp(),r=Nu({roughness:Nt,dotNV:n}),a=(this.iridescenceF0?mi.mix(We,this.iridescenceF0):We).mul(r.x).add(s.mul(r.y)),c=r.x.add(r.y).oneMinus(),l=We.add(We.oneMinus().mul(.047619)),d=a.mul(l).div(c.mul(l).oneMinus());e.addAssign(a),t.addAssign(d.mul(c))}direct({lightDirection:e,lightColor:t,reflectedLight:s}){const r=fe.dot(e).clamp().mul(t);if(this.sheen===!0&&this.sheenSpecularDirect.addAssign(r.mul(AT({lightDirection:e}))),this.clearcoat===!0){const a=Hs.dot(e).clamp().mul(t);this.clearcoatSpecularDirect.addAssign(a.mul(jo({lightDirection:e,f0:zi,f90:Wi,roughness:zn,normalView:Hs})))}s.directDiffuse.addAssign(r.mul(Ns({diffuseColor:ee.rgb}))),s.directSpecular.addAssign(r.mul(jo({lightDirection:e,f0:We,f90:1,roughness:Nt,iridescence:this.iridescence,f:this.iridescenceFresnel,USE_IRIDESCENCE:this.iridescence,USE_ANISOTROPY:this.anisotropy})))}directRectArea({lightColor:e,lightPosition:t,halfWidth:s,halfHeight:n,reflectedLight:r,ltc_1:i,ltc_2:a}){const u=t.add(s).sub(n),c=t.sub(s).sub(n),l=t.sub(s).add(n),d=t.add(s).add(n),h=fe,p=ae,f=xe.toVar(),m=RT({N:h,V:p,roughness:Nt}),x=i.sample(m).toVar(),N=a.sample(m).toVar(),v=Oe(T(x.x,0,x.y),T(0,1,0),T(x.z,0,x.w)).toVar(),w=We.mul(N.x).add(We.oneMinus().mul(N.y)).toVar();r.directSpecular.addAssign(e.mul(w).mul(gc({N:h,V:p,P:f,mInv:v,p0:u,p1:c,p2:l,p3:d}))),r.directDiffuse.addAssign(e.mul(ee).mul(gc({N:h,V:p,P:f,mInv:Oe(1,0,0,0,1,0,0,0,1),p0:u,p1:c,p2:l,p3:d})))}indirect(e,t,s){this.indirectDiffuse(e,t,s),this.indirectSpecular(e,t,s),this.ambientOcclusion(e,t,s)}indirectDiffuse({irradiance:e,reflectedLight:t}){t.indirectDiffuse.addAssign(e.mul(Ns({diffuseColor:ee})))}indirectSpecular({radiance:e,iblIrradiance:t,reflectedLight:s}){if(this.sheen===!0&&this.sheenSpecularIndirect.addAssign(t.mul(fs,LT({normal:fe,viewDir:ae,roughness:gi}))),this.clearcoat===!0){const c=Hs.dot(ae).clamp(),l=Yp({dotNV:c,specularColor:zi,specularF90:Wi,roughness:zn});this.clearcoatSpecularIndirect.addAssign(this.clearcoatRadiance.mul(l))}const n=T().toVar("singleScattering"),r=T().toVar("multiScattering"),i=t.mul(1/Math.PI);this.computeMultiscattering(n,r,Wn);const a=n.add(r),u=ee.mul(a.r.max(a.g).max(a.b).oneMinus());s.indirectSpecular.addAssign(e.mul(n)),s.indirectSpecular.addAssign(r.mul(i)),s.indirectDiffuse.addAssign(u.mul(i))}ambientOcclusion({ambientOcclusion:e,reflectedLight:t}){const n=fe.dot(ae).clamp().add(e),r=Nt.mul(-16).oneMinus().negate().exp2(),i=e.sub(n.pow(r).oneMinus()).clamp();this.clearcoat===!0&&this.clearcoatSpecularIndirect.mulAssign(e),this.sheen===!0&&this.sheenSpecularIndirect.mulAssign(e),t.indirectDiffuse.mulAssign(e),t.indirectSpecular.mulAssign(i)}finish(e){const{outgoingLight:t}=e;if(this.clearcoat===!0){const s=Hs.dot(ae).clamp(),n=un({dotVH:s,f0:zi,f90:Wi}),r=t.mul(Kr.mul(n).oneMinus()).add(this.clearcoatSpecularDirect.add(this.clearcoatSpecularIndirect).mul(Kr));t.assign(r)}if(this.sheen===!0){const s=fs.r.max(fs.g).max(fs.b).mul(.157).oneMinus(),n=t.mul(s).add(this.sheenSpecularDirect,this.sheenSpecularIndirect);t.assign(n)}}}const Ac=g(1),Jo=g(-2),mr=g(.8),$i=g(-1),yr=g(.4),Hi=g(2),xr=g(.305),qi=g(3),Rc=g(.21),IT=g(4),Cc=g(4),VT=g(16),GT=b(([o])=>{const e=T(oe(o)).toVar(),t=g(-1).toVar();return z(e.x.greaterThan(e.z),()=>{z(e.x.greaterThan(e.y),()=>{t.assign(Ue(o.x.greaterThan(0),0,3))}).Else(()=>{t.assign(Ue(o.y.greaterThan(0),1,4))})}).Else(()=>{z(e.z.greaterThan(e.y),()=>{t.assign(Ue(o.z.greaterThan(0),2,5))}).Else(()=>{t.assign(Ue(o.y.greaterThan(0),1,4))})}),t}).setLayout({name:"getFace",type:"float",inputs:[{name:"direction",type:"vec3"}]}),OT=b(([o,e])=>{const t=M().toVar();return z(e.equal(0),()=>{t.assign(M(o.z,o.y).div(oe(o.x)))}).ElseIf(e.equal(1),()=>{t.assign(M(o.x.negate(),o.z.negate()).div(oe(o.y)))}).ElseIf(e.equal(2),()=>{t.assign(M(o.x.negate(),o.y).div(oe(o.z)))}).ElseIf(e.equal(3),()=>{t.assign(M(o.z.negate(),o.y).div(oe(o.x)))}).ElseIf(e.equal(4),()=>{t.assign(M(o.x.negate(),o.z).div(oe(o.y)))}).Else(()=>{t.assign(M(o.x,o.y).div(oe(o.z)))}),$(.5,t.add(1))}).setLayout({name:"getUV",type:"vec2",inputs:[{name:"direction",type:"vec3"},{name:"face",type:"float"}]}),kT=b(([o])=>{const e=g(0).toVar();return z(o.greaterThanEqual(mr),()=>{e.assign(Ac.sub(o).mul($i.sub(Jo)).div(Ac.sub(mr)).add(Jo))}).ElseIf(o.greaterThanEqual(yr),()=>{e.assign(mr.sub(o).mul(Hi.sub($i)).div(mr.sub(yr)).add($i))}).ElseIf(o.greaterThanEqual(xr),()=>{e.assign(yr.sub(o).mul(qi.sub(Hi)).div(yr.sub(xr)).add(Hi))}).ElseIf(o.greaterThanEqual(Rc),()=>{e.assign(xr.sub(o).mul(IT.sub(qi)).div(xr.sub(Rc)).add(qi))}).Else(()=>{e.assign(g(-2).mul(vt($(1.16,o))))}),e}).setLayout({name:"roughnessToMip",type:"float",inputs:[{name:"roughness",type:"float"}]}),ef=b(([o,e])=>{const t=o.toVar();t.assign($(2,t).sub(1));const s=T(t,1).toVar();return z(e.equal(0),()=>{s.assign(s.zyx)}).ElseIf(e.equal(1),()=>{s.assign(s.xzy),s.xz.mulAssign(-1)}).ElseIf(e.equal(2),()=>{s.x.mulAssign(-1)}).ElseIf(e.equal(3),()=>{s.assign(s.zyx),s.xz.mulAssign(-1)}).ElseIf(e.equal(4),()=>{s.assign(s.xzy),s.xy.mulAssign(-1)}).ElseIf(e.equal(5),()=>{s.z.mulAssign(-1)}),s}).setLayout({name:"getDirection",type:"vec3",inputs:[{name:"uv",type:"vec2"},{name:"face",type:"float"}]}),tf=b(([o,e,t,s,n,r])=>{const i=g(t),a=T(e),u=Et(kT(i),Jo,r),c=Xt(u),l=At(u),d=T(ea(o,a,l,s,n,r)).toVar();return z(c.notEqual(0),()=>{const h=T(ea(o,a,l.add(1),s,n,r)).toVar();d.assign(Q(d,h,c))}),d}),ea=b(([o,e,t,s,n,r])=>{const i=g(t).toVar(),a=T(e),u=g(GT(a)).toVar(),c=g(ue(Cc.sub(i),0)).toVar();i.assign(ue(i,Cc));const l=g(rn(i)).toVar(),d=M(OT(a,u).mul(l.sub(2)).add(1)).toVar();return z(u.greaterThan(2),()=>{d.y.addAssign(l),u.subAssign(3)}),d.x.addAssign(u.mul(l)),d.x.addAssign(c.mul($(3,VT))),d.y.addAssign($(4,rn(r).sub(l))),d.x.mulAssign(s),d.y.mulAssign(n),o.sample(d).grad(M(),M())}),Ki=b(({envMap:o,mipInt:e,outputDirection:t,theta:s,axis:n,CUBEUV_TEXEL_WIDTH:r,CUBEUV_TEXEL_HEIGHT:i,CUBEUV_MAX_MIP:a})=>{const u=It(s),c=t.mul(u).add(n.cross(t).mul(st(s))).add(n.mul(n.dot(t).mul(u.oneMinus())));return ea(o,c,e,r,i,a)}),sf=b(({n:o,latitudinal:e,poleAxis:t,outputDirection:s,weights:n,samples:r,dTheta:i,mipInt:a,envMap:u,CUBEUV_TEXEL_WIDTH:c,CUBEUV_TEXEL_HEIGHT:l,CUBEUV_MAX_MIP:d})=>{const h=T(Ue(e,t,_i(t,s))).toVar();z(ka(h.equals(T(0))),()=>{h.assign(T(s.z,0,s.x.negate()))}),h.assign(qt(h));const p=T().toVar();return p.addAssign(n.element(y(0)).mul(Ki({theta:0,axis:h,outputDirection:s,mipInt:a,envMap:u,CUBEUV_TEXEL_WIDTH:c,CUBEUV_TEXEL_HEIGHT:l,CUBEUV_MAX_MIP:d}))),te({start:y(1),end:o},({i:f})=>{z(f.greaterThanEqual(r),()=>{pu()});const m=g(i.mul(g(f))).toVar();p.addAssign(n.element(f).mul(Ki({theta:m.mul(-1),axis:h,outputDirection:s,mipInt:a,envMap:u,CUBEUV_TEXEL_WIDTH:c,CUBEUV_TEXEL_HEIGHT:l,CUBEUV_MAX_MIP:d}))),p.addAssign(n.element(f).mul(Ki({theta:m,axis:h,outputDirection:s,mipInt:a,envMap:u,CUBEUV_TEXEL_WIDTH:c,CUBEUV_TEXEL_HEIGHT:l,CUBEUV_MAX_MIP:d})))}),P(p,1)});let ti=null;const Ec=new WeakMap;function zT(o){const e=Math.log2(o)-2,t=1/o;return{texelWidth:1/(3*Math.max(Math.pow(2,e),112)),texelHeight:t,maxMip:e}}function WT(o){let e=Ec.get(o);if((e!==void 0?e.pmremVersion:-1)!==o.pmremVersion){const s=o.image;if(o.isCubeTexture)if(HT(s))e=ti.fromCubemap(o,e);else return null;else if(qT(s))e=ti.fromEquirectangular(o,e);else return null;e.pmremVersion=o.pmremVersion,Ec.set(o,e)}return e.texture}class $T extends be{static get type(){return"PMREMNode"}constructor(e,t=null,s=null){super("vec3"),this._value=e,this._pmrem=null,this.uvNode=t,this.levelNode=s,this._generator=null;const n=new aa;n.isRenderTargetTexture=!0,this._texture=K(n),this._width=V(0),this._height=V(0),this._maxMip=V(0),this.updateBeforeType=W.RENDER}set value(e){this._value=e,this._pmrem=null}get value(){return this._value}updateFromTexture(e){const t=zT(e.image.height);this._texture.value=e,this._width.value=t.texelWidth,this._height.value=t.texelHeight,this._maxMip.value=t.maxMip}updateBefore(){let e=this._pmrem;const t=e?e.pmremVersion:-1,s=this._value;t!==s.pmremVersion&&(s.isPMREMTexture===!0?e=s:e=WT(s),e!==null&&(this._pmrem=e,this.updateFromTexture(e)))}setup(e){ti===null&&(ti=e.createPMREMGenerator()),this.updateBefore(e);let t=this.uvNode;t===null&&e.context.getUV&&(t=e.context.getUV(this));const s=this.value;e.renderer.coordinateSystem===Pn&&s.isPMREMTexture!==!0&&s.isRenderTargetTexture===!0&&(t=T(t.x.negate(),t.yz)),t=T(t.x,t.y.negate(),t.z);let n=this.levelNode;return n===null&&e.context.getTextureLevel&&(n=e.context.getTextureLevel(this)),tf(this._texture,t,n,this._width,this._height,this._maxMip)}}function HT(o){if(o==null)return!1;let e=0;const t=6;for(let s=0;s0}const vu=C($T),wc=new WeakMap;class KT extends hn{static get type(){return"EnvironmentNode"}constructor(e=null){super(),this.envNode=e}setup(e){const{material:t}=e;let s=this.envNode;if(s.isTextureNode||s.isMaterialReferenceNode){const p=s.isTextureNode?s.value:t[s.property];let f=wc.get(p);f===void 0&&(f=vu(p),wc.set(p,f)),s=f}const r=t.envMap?ne("envMapIntensity","float",e.material):ne("environmentIntensity","float",e.scene),a=t.useAnisotropy===!0||t.anisotropy>0?Zh:fe,u=s.context(Mc(Nt,a)).mul(r),c=s.context(XT(vi)).mul(Math.PI).mul(r),l=Mn(u),d=Mn(c);e.context.radiance.addAssign(l),e.context.iblIrradiance.addAssign(d);const h=e.context.lightingModel.clearcoatRadiance;if(h){const p=s.context(Mc(zn,Hs)).mul(r),f=Mn(p);h.addAssign(f)}}}const Mc=(o,e)=>{let t=null;return{getUV:()=>(t===null&&(t=ae.negate().reflect(e),t=o.mul(o).mix(t,e).normalize(),t=t.transformDirection(je)),t),getTextureLevel:()=>o}},XT=o=>({getUV:()=>o,getTextureLevel:()=>g(1)}),YT=new Pg;class nf extends ce{static get type(){return"MeshStandardNodeMaterial"}constructor(e){super(),this.isMeshStandardNodeMaterial=!0,this.lights=!0,this.emissiveNode=null,this.metalnessNode=null,this.roughnessNode=null,this.setDefaultValues(YT),this.setValues(e)}setupEnvironment(e){let t=super.setupEnvironment(e);return t===null&&e.environmentNode&&(t=e.environmentNode),t?new KT(t):null}setupLightingModel(){return new Su}setupSpecular(){const e=Q(T(.04),ee.rgb,kn);We.assign(e),Wn.assign(1)}setupVariants(){const e=this.metalnessNode?g(this.metalnessNode):op;kn.assign(e);let t=this.roughnessNode?g(this.roughnessNode):ip;t=bu({roughness:t}),Nt.assign(t),this.setupSpecular(),ee.assign(P(ee.rgb.mul(e.oneMinus()),ee.a))}copy(e){return this.emissiveNode=e.emissiveNode,this.metalnessNode=e.metalnessNode,this.roughnessNode=e.roughnessNode,super.copy(e)}}const jT=new Ug;class rf extends nf{static get type(){return"MeshPhysicalNodeMaterial"}constructor(e){super(),this.isMeshPhysicalNodeMaterial=!0,this.clearcoatNode=null,this.clearcoatRoughnessNode=null,this.clearcoatNormalNode=null,this.sheenNode=null,this.sheenRoughnessNode=null,this.iridescenceNode=null,this.iridescenceIORNode=null,this.iridescenceThicknessNode=null,this.specularIntensityNode=null,this.specularColorNode=null,this.iorNode=null,this.transmissionNode=null,this.thicknessNode=null,this.attenuationDistanceNode=null,this.attenuationColorNode=null,this.dispersionNode=null,this.anisotropyNode=null,this.setDefaultValues(jT),this.setValues(e)}get useClearcoat(){return this.clearcoat>0||this.clearcoatNode!==null}get useIridescence(){return this.iridescence>0||this.iridescenceNode!==null}get useSheen(){return this.sheen>0||this.sheenNode!==null}get useAnisotropy(){return this.anisotropy>0||this.anisotropyNode!==null}get useTransmission(){return this.transmission>0||this.transmissionNode!==null}get useDispersion(){return this.dispersion>0||this.dispersionNode!==null}setupSpecular(){const e=this.iorNode?g(this.iorNode):_p;wn.assign(e),We.assign(Q(Re(Ya(wn.sub(1).div(wn.add(1))).mul(rp),T(1)).mul(Yo),ee.rgb,kn)),Wn.assign(Q(Yo,1,kn))}setupLightingModel(){return new Su(this.useClearcoat,this.useSheen,this.useIridescence,this.useAnisotropy,this.useTransmission,this.useDispersion)}setupVariants(e){if(super.setupVariants(e),this.useClearcoat){const t=this.clearcoatNode?g(this.clearcoatNode):up,s=this.clearcoatRoughnessNode?g(this.clearcoatRoughnessNode):cp;Kr.assign(t),zn.assign(bu({roughness:s}))}if(this.useSheen){const t=this.sheenNode?T(this.sheenNode):hp,s=this.sheenRoughnessNode?g(this.sheenRoughnessNode):pp;fs.assign(t),gi.assign(s)}if(this.useIridescence){const t=this.iridescenceNode?g(this.iridescenceNode):gp,s=this.iridescenceIORNode?g(this.iridescenceIORNode):mp,n=this.iridescenceThicknessNode?g(this.iridescenceThicknessNode):yp;mi.assign(t),Ua.assign(s),Pa.assign(n)}if(this.useAnisotropy){const t=(this.anisotropyNode?M(this.anisotropyNode):fp).toVar();Zt.assign(t.length()),z(Zt.equal(0),()=>{t.assign(M(1,0))}).Else(()=>{t.divAssign(M(Zt)),Zt.assign(Zt.saturate())}),Xr.assign(Zt.pow2().mix(Nt.pow2(),1)),En.assign(gs[0].mul(t.x).add(gs[1].mul(t.y))),_s.assign(gs[1].mul(t.x).sub(gs[0].mul(t.y)))}if(this.useTransmission){const t=this.transmissionNode?g(this.transmissionNode):xp,s=this.thicknessNode?g(this.thicknessNode):Tp,n=this.attenuationDistanceNode?g(this.attenuationDistanceNode):bp,r=this.attenuationColorNode?T(this.attenuationColorNode):Np;if(jr.assign(t),Da.assign(s),La.assign(n),Ia.assign(r),this.useDispersion){const i=this.dispersionNode?g(this.dispersionNode):vp;Va.assign(i)}}}setupClearcoatNormal(){return this.clearcoatNormalNode?T(this.clearcoatNormalNode):lp}setup(e){e.context.setupClearcoatNormal=()=>this.setupClearcoatNormal(e),super.setup(e)}copy(e){return this.clearcoatNode=e.clearcoatNode,this.clearcoatRoughnessNode=e.clearcoatRoughnessNode,this.clearcoatNormalNode=e.clearcoatNormalNode,this.sheenNode=e.sheenNode,this.sheenRoughnessNode=e.sheenRoughnessNode,this.iridescenceNode=e.iridescenceNode,this.iridescenceIORNode=e.iridescenceIORNode,this.iridescenceThicknessNode=e.iridescenceThicknessNode,this.specularIntensityNode=e.specularIntensityNode,this.specularColorNode=e.specularColorNode,this.transmissionNode=e.transmissionNode,this.thicknessNode=e.thicknessNode,this.attenuationDistanceNode=e.attenuationDistanceNode,this.attenuationColorNode=e.attenuationColorNode,this.dispersionNode=e.dispersionNode,this.anisotropyNode=e.anisotropyNode,super.copy(e)}}class QT extends Su{constructor(e=!1,t=!1,s=!1,n=!1,r=!1,i=!1,a=!1){super(e,t,s,n,r,i),this.useSSS=a}direct({lightDirection:e,lightColor:t,reflectedLight:s},n,r){if(this.useSSS===!0){const i=r.material,{thicknessColorNode:a,thicknessDistortionNode:u,thicknessAmbientNode:c,thicknessAttenuationNode:l,thicknessPowerNode:d,thicknessScaleNode:h}=i,p=e.add(fe.mul(u)).normalize(),f=g(ae.dot(p.negate()).saturate().pow(d).mul(h)),m=T(f.add(c).mul(a));s.directDiffuse.addAssign(m.mul(l.mul(t)))}super.direct({lightDirection:e,lightColor:t,reflectedLight:s},n,r)}}class pR extends rf{static get type(){return"MeshSSSNodeMaterial"}constructor(e){super(e),this.thicknessColorNode=null,this.thicknessDistortionNode=g(.1),this.thicknessAmbientNode=g(0),this.thicknessAttenuationNode=g(.1),this.thicknessPowerNode=g(2),this.thicknessScaleNode=g(10)}get useSSS(){return this.thicknessColorNode!==null}setupLightingModel(){return new QT(this.useClearcoat,this.useSheen,this.useIridescence,this.useAnisotropy,this.useTransmission,this.useDispersion,this.useSSS)}copy(e){return this.thicknessColorNode=e.thicknessColorNode,this.thicknessDistortionNode=e.thicknessDistortionNode,this.thicknessAmbientNode=e.thicknessAmbientNode,this.thicknessAttenuationNode=e.thicknessAttenuationNode,this.thicknessPowerNode=e.thicknessPowerNode,this.thicknessScaleNode=e.thicknessScaleNode,super.copy(e)}}const ZT=b(({normal:o,lightDirection:e,builder:t})=>{const s=o.dot(e),n=M(s.mul(.5).add(.5),0);if(t.material.gradientMap){const r=dt("gradientMap","texture").context({getUV:()=>n});return T(r.r)}else{const r=n.fwidth().mul(.5);return Q(T(.7),T(1),ct(g(.7).sub(r.x),g(.7).add(r.x),n.x))}});class JT extends Ei{direct({lightDirection:e,lightColor:t,reflectedLight:s},n,r){const i=ZT({normal:Ni,lightDirection:e,builder:r}).mul(t);s.directDiffuse.addAssign(i.mul(Ns({diffuseColor:ee.rgb})))}indirect({ambientOcclusion:e,irradiance:t,reflectedLight:s}){s.indirectDiffuse.addAssign(t.mul(Ns({diffuseColor:ee}))),s.indirectDiffuse.mulAssign(e)}}const e_=new Dg;class t_ extends ce{static get type(){return"MeshToonNodeMaterial"}constructor(e){super(),this.isMeshToonNodeMaterial=!0,this.lights=!0,this.setDefaultValues(e_),this.setValues(e)}setupLightingModel(){return new JT}}class s_ extends be{static get type(){return"MatcapUVNode"}constructor(){super("vec2")}setup(){const e=T(ae.z,0,ae.x.negate()).normalize(),t=ae.cross(e);return M(e.dot(fe),t.dot(fe)).mul(.495).add(.5)}}const of=U(s_),n_=new Mg;class r_ extends ce{static get type(){return"MeshMatcapNodeMaterial"}constructor(e){super(),this.isMeshMatcapNodeMaterial=!0,this.setDefaultValues(n_),this.setValues(e)}setupVariants(e){const t=of;let s;e.material.matcap?s=dt("matcap","texture").context({getUV:()=>t}):s=T(Q(.2,.8,t.y)),ee.rgb.mulAssign(s.rgb)}}const i_=new hl;class o_ extends ce{static get type(){return"PointsNodeMaterial"}constructor(e){super(),this.isPointsNodeMaterial=!0,this.setDefaultValues(i_),this.setValues(e)}}class a_ extends be{static get type(){return"RotateNode"}constructor(e,t){super(),this.positionNode=e,this.rotationNode=t}getNodeType(e){return this.positionNode.getNodeType(e)}setup(e){const{rotationNode:t,positionNode:s}=this;if(this.getNodeType(e)==="vec2"){const r=t.cos(),i=t.sin();return fi(r,i,i.negate(),r).mul(s)}else{const r=t,i=Ts(P(1,0,0,0),P(0,It(r.x),st(r.x).negate(),0),P(0,st(r.x),It(r.x),0),P(0,0,0,1)),a=Ts(P(It(r.y),0,st(r.y),0),P(0,1,0,0),P(st(r.y).negate(),0,It(r.y),0),P(0,0,0,1)),u=Ts(P(It(r.z),st(r.z).negate(),0,0),P(st(r.z),It(r.z),0,0),P(0,0,1,0),P(0,0,0,1));return i.mul(a).mul(u).mul(P(s,1)).xyz}}}const Au=C(a_),u_=new Hg;class c_ extends ce{static get type(){return"SpriteNodeMaterial"}constructor(e){super(),this.isSpriteNodeMaterial=!0,this._useSizeAttenuation=!0,this.positionNode=null,this.rotationNode=null,this.scaleNode=null,this.setDefaultValues(u_),this.setValues(e)}setupPositionView(e){const{object:t,camera:s}=e,n=this.sizeAttenuation,{positionNode:r,rotationNode:i,scaleNode:a}=this,u=Kt.mul(T(r||0));let c=M(at[0].xyz.length(),at[1].xyz.length());if(a!==null&&(c=c.mul(a)),n===!1)if(s.isPerspectiveCamera)c=c.mul(u.z.negate());else{const p=g(2).div(He.element(1).element(1));c=c.mul(p.mul(2))}let l=Ce.xy;if(t.center&&t.center.isVector2===!0){const p=By("center","vec2",t);l=l.sub(p.sub(.5))}l=l.mul(c);const d=g(i||dp),h=Au(l,d);return P(u.xy.add(h),u.zw)}copy(e){return this.positionNode=e.positionNode,this.rotationNode=e.rotationNode,this.scaleNode=e.scaleNode,super.copy(e)}get sizeAttenuation(){return this._useSizeAttenuation}set sizeAttenuation(e){this._useSizeAttenuation!==e&&(this._useSizeAttenuation=e,this.needsUpdate=!0)}}class l_ extends Ei{constructor(){super(),this.shadowNode=g(1).toVar("shadowMask")}direct({shadowMask:e}){this.shadowNode.mulAssign(e)}finish(e){ee.a.mulAssign(this.shadowNode.oneMinus()),e.outgoingLight.rgb.assign(ee.rgb)}}const d_=new $g;class h_ extends ce{static get type(){return"ShadowNodeMaterial"}constructor(e){super(),this.isShadowNodeMaterial=!0,this.lights=!0,this.setDefaultValues(d_),this.setValues(e)}setupLightingModel(){return new l_}}const p_=b(({texture:o,uv:e})=>{const s=T().toVar();return z(e.x.lessThan(1e-4),()=>{s.assign(T(1,0,0))}).ElseIf(e.y.lessThan(1e-4),()=>{s.assign(T(0,1,0))}).ElseIf(e.z.lessThan(1e-4),()=>{s.assign(T(0,0,1))}).ElseIf(e.x.greaterThan(1-1e-4),()=>{s.assign(T(-1,0,0))}).ElseIf(e.y.greaterThan(1-1e-4),()=>{s.assign(T(0,-1,0))}).ElseIf(e.z.greaterThan(1-1e-4),()=>{s.assign(T(0,0,-1))}).Else(()=>{const r=o.sample(e.add(T(-.01,0,0))).r.sub(o.sample(e.add(T(.01,0,0))).r),i=o.sample(e.add(T(0,-.01,0))).r.sub(o.sample(e.add(T(0,.01,0))).r),a=o.sample(e.add(T(0,0,-.01))).r.sub(o.sample(e.add(T(0,0,.01))).r);s.assign(T(r,i,a))}),s.normalize()});class f_ extends wt{static get type(){return"Texture3DNode"}constructor(e,t=null,s=null){super(e,t,s),this.isTexture3DNode=!0}getInputType(){return"texture3D"}getDefaultUV(){return T(.5,.5,.5)}setUpdateMatrix(){}setupUV(e,t){const s=this.value;return e.isFlipY()&&(s.isRenderTargetTexture===!0||s.isFramebufferTexture===!0)&&(this.sampler?t=t.flipY():t=t.setY(y(ns(this,this.levelNode).y).sub(t.y).sub(1))),t}generateUV(e,t){return t.build(e,"vec3")}normal(e){return p_({texture:this,uv:e})}}const af=C(f_);class fR extends ce{static get type(){return"VolumeNodeMaterial"}constructor(e){super(),this.isVolumeNodeMaterial=!0,this.base=new mt(16777215),this.map=null,this.steps=100,this.testNode=null,this.setValues(e)}setup(e){const t=af(this.map,null,0),s=b(({orig:n,dir:r})=>{const i=T(-.5),a=T(.5),u=r.reciprocal(),c=i.sub(n).mul(u),l=a.sub(n).mul(u),d=Re(c,l),h=ue(c,l),p=ue(d.x,ue(d.y,d.z)),f=Re(h.x,Re(h.y,h.z));return M(p,f)});this.fragmentNode=b(()=>{const n=ke(T(Ih.mul(P(su,1)))),i=ke(Ce.sub(n)).normalize(),a=M(s({orig:n,dir:i})).toVar();a.x.greaterThan(a.y).discard(),a.assign(M(ue(a.x,0),a.y));const u=T(n.add(a.x.mul(i))).toVar(),c=T(i.abs().reciprocal()).toVar(),l=g(Re(c.x,Re(c.y,c.z))).toVar("delta");l.divAssign(dt("steps","float"));const d=P(dt("base","color"),0).toVar();return te({type:"float",start:a.x,end:a.y,update:"+= delta"},()=>{const h=Fa("float","d").assign(t.sample(u.add(.5)).r);this.testNode!==null?this.testNode({map:t,mapValue:h,probe:u,finalColor:d}).append():(d.a.assign(1),pu()),u.addAssign(i.mul(l))}),d.a.equal(0).discard(),P(d)})(),super.setup(e)}}class g_{constructor(e,t){this.nodes=e,this.info=t,this._context=self,this._animationLoop=null,this._requestId=null}start(){const e=(t,s)=>{this._requestId=this._context.requestAnimationFrame(e),this.info.autoReset===!0&&this.info.reset(),this.nodes.nodeFrame.update(),this.info.frame=this.nodes.nodeFrame.frameId,this._animationLoop!==null&&this._animationLoop(t,s)};e()}stop(){this._context.cancelAnimationFrame(this._requestId),this._requestId=null}setAnimationLoop(e){this._animationLoop=e}setContext(e){this._context=e}dispose(){this.stop()}}class Ft{constructor(){this.weakMap=new WeakMap}get(e){let t=this.weakMap;for(let s=0;s{this.dispose()},this.material.addEventListener("dispose",this.onMaterialDispose)}updateClipping(e){this.clippingContext=e}get clippingNeedsUpdate(){return this.clippingContext===null||this.clippingContext.cacheKey===this.clippingContextCacheKey?!1:(this.clippingContextCacheKey=this.clippingContext.cacheKey,!0)}get hardwareClippingPlanes(){return this.material.hardwareClipping===!0?this.clippingContext.unionClippingCount:0}getNodeBuilderState(){return this._nodeBuilderState||(this._nodeBuilderState=this._nodes.getForRender(this))}getMonitor(){return this._monitor||(this._monitor=this.getNodeBuilderState().monitor)}getBindings(){return this._bindings||(this._bindings=this.getNodeBuilderState().createBindings())}getIndex(){return this._geometries.getIndex(this)}getIndirect(){return this._geometries.getIndirect(this)}getChainArray(){return[this.object,this.material,this.context,this.lightsNode]}setGeometry(e){this.geometry=e,this.attributes=null}getAttributes(){if(this.attributes!==null)return this.attributes;const e=this.getNodeBuilderState().nodeAttributes,t=this.geometry,s=[],n=new Set;for(const r of e){const i=r.node&&r.node.attribute?r.node.attribute:t.getAttribute(r.name);if(i===void 0)continue;s.push(i);const a=i.isInterleavedBufferAttribute?i.data:i;n.add(a)}return this.attributes=s,this.vertexBuffers=Array.from(n.values()),s}getVertexBuffers(){return this.vertexBuffers===null&&this.getAttributes(),this.vertexBuffers}getDrawParameters(){const{object:e,material:t,geometry:s,group:n,drawRange:r}=this,i=this.drawParams||(this.drawParams={vertexCount:0,firstVertex:0,instanceCount:0,firstInstance:0}),a=this.getIndex(),u=a!==null,c=s.isInstancedBufferGeometry?s.instanceCount:e.count>1?e.count:1;if(c===0)return null;if(i.instanceCount=c,e.isBatchedMesh===!0)return i;let l=1;t.wireframe===!0&&!e.isPoints&&!e.isLineSegments&&!e.isLine&&!e.isLineLoop&&(l=2);let d=r.start*l,h=(r.start+r.count)*l;n!==null&&(d=Math.max(d,n.start*l),h=Math.min(h,(n.start+n.count)*l));const p=s.attributes.position;let f=1/0;u?f=a.count:p!=null&&(f=p.count),d=Math.max(d,0),h=Math.min(h,f);const m=h-d;return m<0||m===1/0?null:(i.vertexCount=m,i.firstVertex=d,i)}getGeometryCacheKey(){const{geometry:e}=this;let t="";for(const s of Object.keys(e.attributes).sort()){const n=e.attributes[s];t+=s+",",n.data&&(t+=n.data.stride+","),n.offset&&(t+=n.offset+","),n.itemSize&&(t+=n.itemSize+","),n.normalized&&(t+="n,")}return e.index&&(t+="index,"),t}getMaterialCacheKey(){const{object:e,material:t}=this;let s=t.customProgramCacheKey();for(const n of y_(t)){if(/^(is[A-Z]|_)|^(visible|version|uuid|name|opacity|userData)$/.test(n))continue;const r=t[n];let i;if(r!==null){const a=typeof r;a==="number"?i=r!==0?"1":"0":a==="object"?(i="{",r.isTexture&&(i+=r.mapping),i+="}"):i=String(r)}else i=String(r);s+=i+","}return s+=this.clippingContextCacheKey+",",e.geometry&&(s+=this.getGeometryCacheKey()),e.skeleton&&(s+=e.skeleton.bones.length+","),e.morphTargetInfluences&&(s+=e.morphTargetInfluences.length+","),e.isBatchedMesh&&(s+=e._matricesTexture.uuid+",",e._colorsTexture!==null&&(s+=e._colorsTexture.uuid+",")),e.count>1&&(s+=e.uuid+","),s+=e.receiveShadow+",",ga(s)}get needsGeometryUpdate(){return this.geometry.id!==this.object.geometry.id}get needsUpdate(){return this.initialNodesCacheKey!==this.getDynamicCacheKey()||this.clippingNeedsUpdate}getDynamicCacheKey(){let e=this._nodes.getCacheKey(this.scene,this.lightsNode);return this.object.receiveShadow&&(e+=1),e}getCacheKey(){return this.getMaterialCacheKey()+this.getDynamicCacheKey()}dispose(){this.material.removeEventListener("dispose",this.onMaterialDispose),this.onDispose()}}const Bs=[];class T_{constructor(e,t,s,n,r,i){this.renderer=e,this.nodes=t,this.geometries=s,this.pipelines=n,this.bindings=r,this.info=i,this.chainMaps={}}get(e,t,s,n,r,i,a,u){const c=this.getChainMap(u);Bs[0]=e,Bs[1]=t,Bs[2]=i,Bs[3]=r;let l=c.get(Bs);return l===void 0?(l=this.createRenderObject(this.nodes,this.geometries,this.renderer,e,t,s,n,r,i,a,u),c.set(Bs,l)):(l.updateClipping(a),l.needsGeometryUpdate&&l.setGeometry(e.geometry),(l.version!==t.version||l.needsUpdate)&&(l.initialCacheKey!==l.getCacheKey()?(l.dispose(),l=this.get(e,t,s,n,r,i,a,u)):l.version=t.version)),l}getChainMap(e="default"){return this.chainMaps[e]||(this.chainMaps[e]=new Ft)}dispose(){this.chainMaps={}}createRenderObject(e,t,s,n,r,i,a,u,c,l,d){const h=this.getChainMap(d),p=new x_(e,t,s,n,r,i,a,u,c,l);return p.onDispose=()=>{this.pipelines.delete(p),this.bindings.delete(p),this.nodes.delete(p),h.delete(p.getChainArray())},p}}class os{constructor(){this.data=new WeakMap}get(e){let t=this.data.get(e);return t===void 0&&(t={},this.data.set(e,t)),t}delete(e){let t=null;return this.data.has(e)&&(t=this.data.get(e),this.data.delete(e)),t}has(e){return this.data.has(e)}dispose(){this.data=new WeakMap}}const St={VERTEX:1,INDEX:2,STORAGE:3,INDIRECT:4},ts=16,__=211,b_=212;class N_ extends os{constructor(e){super(),this.backend=e}delete(e){const t=super.delete(e);return t!==void 0&&this.backend.destroyAttribute(e),t}update(e,t){const s=this.get(e);if(s.version===void 0)t===St.VERTEX?this.backend.createAttribute(e):t===St.INDEX?this.backend.createIndexAttribute(e):t===St.STORAGE?this.backend.createStorageAttribute(e):t===St.INDIRECT&&this.backend.createIndirectStorageAttribute(e),s.version=this._getBufferAttribute(e).version;else{const n=this._getBufferAttribute(e);(s.version=0;--e)if(o[e]>=65535)return!0;return!1}function uf(o){return o.index!==null?o.index.version:o.attributes.position.version}function Bc(o){const e=[],t=o.index,s=o.attributes.position;if(t!==null){const r=t.array;for(let i=0,a=r.length;i{this.info.memory.geometries--;const r=t.index,i=e.getAttributes();r!==null&&this.attributes.delete(r);for(const u of i)this.attributes.delete(u);const a=this.wireframes.get(t);a!==void 0&&this.attributes.delete(a),t.removeEventListener("dispose",n)};t.addEventListener("dispose",n)}updateAttributes(e){const t=e.getAttributes();for(const r of t)r.isStorageBufferAttribute||r.isStorageInstancedBufferAttribute?this.updateAttribute(r,St.STORAGE):this.updateAttribute(r,St.VERTEX);const s=this.getIndex(e);s!==null&&this.updateAttribute(s,St.INDEX);const n=e.geometry.indirect;n!==null&&this.updateAttribute(n,St.INDIRECT)}updateAttribute(e,t){const s=this.info.render.calls;e.isInterleavedBufferAttribute?this.attributeCall.get(e)===void 0?(this.attributes.update(e,t),this.attributeCall.set(e,s)):this.attributeCall.get(e.data)!==s&&(this.attributes.update(e,t),this.attributeCall.set(e.data,s),this.attributeCall.set(e,s)):this.attributeCall.get(e)!==s&&(this.attributes.update(e,t),this.attributeCall.set(e,s))}getIndirect(e){return e.geometry.indirect}getIndex(e){const{geometry:t,material:s}=e;let n=t.index;if(s.wireframe===!0){const r=this.wireframes;let i=r.get(t);i===void 0?(i=Bc(t),r.set(t,i)):i.version!==uf(t)&&(this.attributes.delete(i),i=Bc(t),r.set(t,i)),n=i}return n}}class A_{constructor(){this.autoReset=!0,this.frame=0,this.calls=0,this.render={calls:0,frameCalls:0,drawCalls:0,triangles:0,points:0,lines:0,timestamp:0,previousFrameCalls:0,timestampCalls:0},this.compute={calls:0,frameCalls:0,timestamp:0,previousFrameCalls:0,timestampCalls:0},this.memory={geometries:0,textures:0}}update(e,t,s){this.render.drawCalls++,e.isMesh||e.isSprite?this.render.triangles+=s*(t/3):e.isPoints?this.render.points+=s*t:e.isLineSegments?this.render.lines+=s*(t/2):e.isLine?this.render.lines+=s*(t-1):console.error("THREE.WebGPUInfo: Unknown object type.")}updateTimestamp(e,t){this[e].timestampCalls===0&&(this[e].timestamp=0),this[e].timestamp+=t,this[e].timestampCalls++,this[e].timestampCalls>=this[e].previousFrameCalls&&(this[e].timestampCalls=0)}reset(){const e=this.render.frameCalls;this.render.previousFrameCalls=e;const t=this.compute.frameCalls;this.compute.previousFrameCalls=t,this.render.drawCalls=0,this.render.frameCalls=0,this.compute.frameCalls=0,this.render.triangles=0,this.render.points=0,this.render.lines=0}dispose(){this.reset(),this.calls=0,this.render.calls=0,this.compute.calls=0,this.render.timestamp=0,this.compute.timestamp=0,this.memory.geometries=0,this.memory.textures=0}}class cf{constructor(e){this.cacheKey=e,this.usedTimes=0}}class R_ extends cf{constructor(e,t,s){super(e),this.vertexProgram=t,this.fragmentProgram=s}}class C_ extends cf{constructor(e,t){super(e),this.computeProgram=t,this.isComputePipeline=!0}}let E_=0;class Xi{constructor(e,t,s,n=null,r=null){this.id=E_++,this.code=e,this.stage=t,this.name=s,this.transforms=n,this.attributes=r,this.usedTimes=0}}class w_ extends os{constructor(e,t){super(),this.backend=e,this.nodes=t,this.bindings=null,this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}getForCompute(e,t){const{backend:s}=this,n=this.get(e);if(this._needsComputeUpdate(e)){const r=n.pipeline;r&&(r.usedTimes--,r.computeProgram.usedTimes--);const i=this.nodes.getForCompute(e);let a=this.programs.compute.get(i.computeShader);a===void 0&&(r&&r.computeProgram.usedTimes===0&&this._releaseProgram(r.computeProgram),a=new Xi(i.computeShader,"compute",e.name,i.transforms,i.nodeAttributes),this.programs.compute.set(i.computeShader,a),s.createProgram(a));const u=this._getComputeCacheKey(e,a);let c=this.caches.get(u);c===void 0&&(r&&r.usedTimes===0&&this._releasePipeline(r),c=this._getComputePipeline(e,a,u,t)),c.usedTimes++,a.usedTimes++,n.version=e.version,n.pipeline=c}return n.pipeline}getForRender(e,t=null){const{backend:s}=this,n=this.get(e);if(this._needsRenderUpdate(e)){const r=n.pipeline;r&&(r.usedTimes--,r.vertexProgram.usedTimes--,r.fragmentProgram.usedTimes--);const i=e.getNodeBuilderState(),a=e.material?e.material.name:"";let u=this.programs.vertex.get(i.vertexShader);u===void 0&&(r&&r.vertexProgram.usedTimes===0&&this._releaseProgram(r.vertexProgram),u=new Xi(i.vertexShader,"vertex",a),this.programs.vertex.set(i.vertexShader,u),s.createProgram(u));let c=this.programs.fragment.get(i.fragmentShader);c===void 0&&(r&&r.fragmentProgram.usedTimes===0&&this._releaseProgram(r.fragmentProgram),c=new Xi(i.fragmentShader,"fragment",a),this.programs.fragment.set(i.fragmentShader,c),s.createProgram(c));const l=this._getRenderCacheKey(e,u,c);let d=this.caches.get(l);d===void 0?(r&&r.usedTimes===0&&this._releasePipeline(r),d=this._getRenderPipeline(e,u,c,l,t)):e.pipeline=d,d.usedTimes++,u.usedTimes++,c.usedTimes++,n.pipeline=d}return n.pipeline}delete(e){const t=this.get(e).pipeline;return t&&(t.usedTimes--,t.usedTimes===0&&this._releasePipeline(t),t.isComputePipeline?(t.computeProgram.usedTimes--,t.computeProgram.usedTimes===0&&this._releaseProgram(t.computeProgram)):(t.fragmentProgram.usedTimes--,t.vertexProgram.usedTimes--,t.vertexProgram.usedTimes===0&&this._releaseProgram(t.vertexProgram),t.fragmentProgram.usedTimes===0&&this._releaseProgram(t.fragmentProgram))),super.delete(e)}dispose(){super.dispose(),this.caches=new Map,this.programs={vertex:new Map,fragment:new Map,compute:new Map}}updateForRender(e){this.getForRender(e)}_getComputePipeline(e,t,s,n){s=s||this._getComputeCacheKey(e,t);let r=this.caches.get(s);return r===void 0&&(r=new C_(s,t),this.caches.set(s,r),this.backend.createComputePipeline(r,n)),r}_getRenderPipeline(e,t,s,n,r){n=n||this._getRenderCacheKey(e,t,s);let i=this.caches.get(n);return i===void 0&&(i=new R_(n,t,s),this.caches.set(n,i),e.pipeline=i,this.backend.createRenderPipeline(e,r)),i}_getComputeCacheKey(e,t){return e.id+","+t.id}_getRenderCacheKey(e,t,s){return t.id+","+s.id+","+this.backend.getRenderCacheKey(e)}_releasePipeline(e){this.caches.delete(e.cacheKey)}_releaseProgram(e){const t=e.code,s=e.stage;this.programs[s].delete(t)}_needsComputeUpdate(e){const t=this.get(e);return t.pipeline===void 0||t.version!==e.version}_needsRenderUpdate(e){return this.get(e).pipeline===void 0||this.backend.needsRenderUpdate(e)}}class M_ extends os{constructor(e,t,s,n,r,i){super(),this.backend=e,this.textures=s,this.pipelines=r,this.attributes=n,this.nodes=t,this.info=i,this.pipelines.bindings=this}getForRender(e){const t=e.getBindings();for(const s of t){const n=this.get(s);n.bindGroup===void 0&&(this._init(s),this.backend.createBindings(s,t,0),n.bindGroup=s)}return t}getForCompute(e){const t=this.nodes.getForCompute(e).bindings;for(const s of t){const n=this.get(s);n.bindGroup===void 0&&(this._init(s),this.backend.createBindings(s,t,0),n.bindGroup=s)}return t}updateForCompute(e){this._updateBindings(this.getForCompute(e))}updateForRender(e){this._updateBindings(this.getForRender(e))}_updateBindings(e){for(const t of e)this._update(t,e)}_init(e){for(const t of e.bindings)if(t.isSampledTexture)this.textures.updateTexture(t.texture);else if(t.isStorageBuffer){const s=t.attribute,n=s.isIndirectStorageBufferAttribute?St.INDIRECT:St.STORAGE;this.attributes.update(s,n)}}_update(e,t){const{backend:s}=this;let n=!1,r=!0,i=0,a=0;for(const u of e.bindings)if(!(u.isNodeUniformsGroup&&this.nodes.updateGroup(u)===!1)){if(u.isUniformBuffer)u.update()&&s.updateBinding(u);else if(u.isSampler)u.update();else if(u.isSampledTexture){const c=this.textures.get(u.texture);u.needsBindingsUpdate(c.generation)&&(n=!0);const l=u.update(),d=u.texture;l&&this.textures.updateTexture(d);const h=s.get(d);if(h.externalTexture!==void 0||c.isDefaultTexture?r=!1:(i=i*10+d.id,a+=d.version),s.isWebGPUBackend===!0&&h.texture===void 0&&h.externalTexture===void 0&&(console.error("Bindings._update: binding should be available:",u,l,d,u.textureNode.value,n),this.textures.updateTexture(d),n=!0),d.isStorageTexture===!0){const p=this.get(d);u.store===!0?p.needsMipmap=!0:this.textures.needsMipmaps(d)&&p.needsMipmap===!0&&(this.backend.generateMipmaps(d),p.needsMipmap=!1)}}}n===!0&&this.backend.updateBindings(e,t,r?i:0,a)}}function B_(o,e){return o.groupOrder!==e.groupOrder?o.groupOrder-e.groupOrder:o.renderOrder!==e.renderOrder?o.renderOrder-e.renderOrder:o.material.id!==e.material.id?o.material.id-e.material.id:o.z!==e.z?o.z-e.z:o.id-e.id}function Fc(o,e){return o.groupOrder!==e.groupOrder?o.groupOrder-e.groupOrder:o.renderOrder!==e.renderOrder?o.renderOrder-e.renderOrder:o.z!==e.z?e.z-o.z:o.id-e.id}function Uc(o){return(o.transmission>0||o.transmissionNode)&&o.side===js&&o.forceSinglePass===!1}class F_{constructor(e,t,s){this.renderItems=[],this.renderItemsIndex=0,this.opaque=[],this.transparentDoublePass=[],this.transparent=[],this.bundles=[],this.lightsNode=e.getNode(t,s),this.lightsArray=[],this.scene=t,this.camera=s,this.occlusionQueryCount=0}begin(){return this.renderItemsIndex=0,this.opaque.length=0,this.transparentDoublePass.length=0,this.transparent.length=0,this.bundles.length=0,this.lightsArray.length=0,this.occlusionQueryCount=0,this}getNextRenderItem(e,t,s,n,r,i,a){let u=this.renderItems[this.renderItemsIndex];return u===void 0?(u={id:e.id,object:e,geometry:t,material:s,groupOrder:n,renderOrder:e.renderOrder,z:r,group:i,clippingContext:a},this.renderItems[this.renderItemsIndex]=u):(u.id=e.id,u.object=e,u.geometry=t,u.material=s,u.groupOrder=n,u.renderOrder=e.renderOrder,u.z=r,u.group=i,u.clippingContext=a),this.renderItemsIndex++,u}push(e,t,s,n,r,i,a){const u=this.getNextRenderItem(e,t,s,n,r,i,a);e.occlusionTest===!0&&this.occlusionQueryCount++,s.transparent===!0||s.transmission>0?(Uc(s)&&this.transparentDoublePass.push(u),this.transparent.push(u)):this.opaque.push(u)}unshift(e,t,s,n,r,i,a){const u=this.getNextRenderItem(e,t,s,n,r,i,a);s.transparent===!0||s.transmission>0?(Uc(s)&&this.transparentDoublePass.unshift(u),this.transparent.unshift(u)):this.opaque.unshift(u)}pushBundle(e){this.bundles.push(e)}pushLight(e){this.lightsArray.push(e)}sort(e,t){this.opaque.length>1&&this.opaque.sort(e||B_),this.transparentDoublePass.length>1&&this.transparentDoublePass.sort(t||Fc),this.transparent.length>1&&this.transparent.sort(t||Fc)}finish(){this.lightsNode.setLights(this.lightsArray);for(let e=this.renderItemsIndex,t=this.renderItems.length;e>t,c=a.height>>t;let l=e.depthTexture||r[t];const d=e.depthBuffer===!0||e.stencilBuffer===!0;let h=!1;l===void 0&&d&&(l=new vs,l.format=e.stencilBuffer?oi:ai,l.type=e.stencilBuffer?ui:Le,l.image.width=u,l.image.height=c,r[t]=l),(s.width!==a.width||a.height!==s.height)&&(h=!0,l&&(l.needsUpdate=!0,l.image.width=u,l.image.height=c)),s.width=a.width,s.height=a.height,s.textures=i,s.depthTexture=l||null,s.depth=e.depthBuffer,s.stencil=e.stencilBuffer,s.renderTarget=e,s.sampleCount!==n&&(h=!0,l&&(l.needsUpdate=!0),s.sampleCount=n);const p={sampleCount:n};for(let f=0;f{e.removeEventListener("dispose",f);for(let m=0;m0){const l=e.image;if(l===void 0)console.warn("THREE.Renderer: Texture marked for update but image is undefined.");else if(l.complete===!1)console.warn("THREE.Renderer: Texture marked for update but image is incomplete.");else{if(e.images){const d=[];for(const h of e.images)d.push(h);t.images=d}else t.image=l;(s.isDefaultTexture===void 0||s.isDefaultTexture===!0)&&(r.createTexture(e,t),s.isDefaultTexture=!1,s.generation=e.version),e.source.dataReady===!0&&r.updateTexture(e,t),t.needsMipmaps&&e.mipmaps.length===0&&r.generateMipmaps(e)}}else r.createDefaultTexture(e),s.isDefaultTexture=!0,s.generation=e.version;if(s.initialized!==!0){s.initialized=!0,s.generation=e.version,this.info.memory.textures++;const c=()=>{e.removeEventListener("dispose",c),this._destroyTexture(e),this.info.memory.textures--};e.addEventListener("dispose",c)}s.version=e.version}getSize(e,t=I_){let s=e.images?e.images[0]:e.image;return s?(s.image!==void 0&&(s=s.image),t.width=s.width||1,t.height=s.height||1,t.depth=e.isCubeTexture?6:s.depth||1):t.width=t.height=t.depth=1,t}getMipLevels(e,t,s){let n;return e.isCompressedTexture?e.mipmaps?n=e.mipmaps.length:n=1:n=Math.floor(Math.log2(Math.max(t,s)))+1,n}needsMipmaps(e){return this.isEnvironmentTexture(e)||e.isCompressedTexture===!0||e.generateMipmaps}isEnvironmentTexture(e){const t=e.mapping;return t===jn||t===Qn||t===Zs||t===Js}_destroyTexture(e){this.backend.destroySampler(e),this.backend.destroyTexture(e),this.delete(e)}}class Ru extends mt{constructor(e,t,s,n=1){super(e,t,s),this.a=n}set(e,t,s,n=1){return this.a=n,super.set(e,t,s)}copy(e){return e.a!==void 0&&(this.a=e.a),super.copy(e)}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}}class df extends se{static get type(){return"ParameterNode"}constructor(e,t=null){super(e,t),this.isParameterNode=!0}getHash(){return this.uuid}generate(){return this.name}}const G_=(o,e)=>E(new df(o,e));class O_ extends O{static get type(){return"StackNode"}constructor(e=null){super(),this.nodes=[],this.outputNode=null,this.parent=e,this._currentCond=null,this.isStackNode=!0}getNodeType(e){return this.outputNode?this.outputNode.getNodeType(e):"void"}add(e){return this.nodes.push(e),this}If(e,t){const s=new Cn(t);return this._currentCond=Ue(e,s),this.add(this._currentCond)}ElseIf(e,t){const s=new Cn(t),n=Ue(e,s);return this._currentCond.elseNode=n,this._currentCond=n,this}Else(e){return this._currentCond.elseNode=new Cn(e),this}build(e,...t){const s=Ea();On(this);for(const n of this.nodes)n.build(e,"void");return On(s),this.outputNode?this.outputNode.build(e,...t):super.build(e,...t)}else(...e){return console.warn("TSL.StackNode: .else() has been renamed to .Else()."),this.Else(...e)}elseif(...e){return console.warn("TSL.StackNode: .elseif() has been renamed to .ElseIf()."),this.ElseIf(...e)}}const kr=C(O_);class hf extends O{static get type(){return"OutputStructNode"}constructor(...e){super(),this.members=e,this.isOutputStructNode=!0}setup(e){super.setup(e);const t=this.members,s=[];for(let n=0;n{const e=o.toUint().mul(747796405).add(2891336453),t=e.shiftRight(e.shiftRight(28).add(4)).bitXor(e).mul(277803737);return t.shiftRight(22).bitXor(t).toFloat().mul(1/2**32)}),ta=(o,e)=>ht($(4,o.mul(Y(1,o))),e),$_=(o,e)=>o.lessThan(.5)?ta(o.mul(2),e).div(2):Y(1,ta($(Y(1,o),2),e).div(2)),H_=(o,e,t)=>ht(gt(ht(o,e),_e(ht(o,e),ht(Y(1,o),t))),1/e),q_=(o,e)=>st(Qr.mul(e.mul(o).sub(1))).div(Qr.mul(e.mul(o).sub(1))),Vt=b(([o])=>o.fract().sub(.5).abs()).setLayout({name:"tri",type:"float",inputs:[{name:"x",type:"float"}]}),K_=b(([o])=>T(Vt(o.z.add(Vt(o.y.mul(1)))),Vt(o.z.add(Vt(o.x.mul(1)))),Vt(o.y.add(Vt(o.x.mul(1)))))).setLayout({name:"tri3",type:"vec3",inputs:[{name:"p",type:"vec3"}]}),X_=b(([o,e,t])=>{const s=T(o).toVar(),n=g(1.4).toVar(),r=g(0).toVar(),i=T(s).toVar();return te({start:g(0),end:g(3),type:"float",condition:"<="},()=>{const a=T(K_(i.mul(2))).toVar();s.addAssign(a.add(t.mul(g(.1).mul(e)))),i.mulAssign(1.8),n.mulAssign(1.5),s.mulAssign(1.2);const u=g(Vt(s.z.add(Vt(s.x.add(Vt(s.y)))))).toVar();r.addAssign(u.div(n)),i.addAssign(.14)}),r}).setLayout({name:"triNoise3D",type:"float",inputs:[{name:"position",type:"vec3"},{name:"speed",type:"float"},{name:"time",type:"float"}]});class Y_ extends O{static get type(){return"FunctionOverloadingNode"}constructor(e=[],...t){super(),this.functionNodes=e,this.parametersNodes=t,this._candidateFnCall=null,this.global=!0}getNodeType(){return this.functionNodes[0].shaderNode.layout.type}setup(e){const t=this.parametersNodes;let s=this._candidateFnCall;if(s===null){let n=null,r=-1;for(const i of this.functionNodes){const u=i.shaderNode.layout;if(u===null)throw new Error("FunctionOverloadingNode: FunctionNode must be a layout.");const c=u.inputs;if(t.length===c.length){let l=0;for(let d=0;dr&&(n=i,r=l)}}this._candidateFnCall=s=n(...t)}return s}}const j_=C(Y_),Pe=o=>(...e)=>j_(o,...e),Cs=V(0).setGroup(k).onRenderUpdate(o=>o.time),gf=V(0).setGroup(k).onRenderUpdate(o=>o.deltaTime),Q_=V(0,"uint").setGroup(k).onRenderUpdate(o=>o.frameId),Z_=(o=1)=>(console.warn('TSL: timerLocal() is deprecated. Use "time" instead.'),Cs.mul(o)),J_=(o=1)=>(console.warn('TSL: timerGlobal() is deprecated. Use "time" instead.'),Cs.mul(o)),eb=(o=1)=>(console.warn('TSL: timerDelta() is deprecated. Use "deltaTime" instead.'),gf.mul(o)),tb=(o=Cs)=>o.add(.75).mul(Math.PI*2).sin().mul(.5).add(.5),sb=(o=Cs)=>o.fract().round(),nb=(o=Cs)=>o.add(.5).fract().mul(2).sub(1).abs(),rb=(o=Cs)=>o.fract(),ib=b(([o,e,t=M(.5)])=>Au(o.sub(t),e).add(t)),ob=b(([o,e,t=M(.5)])=>{const s=o.sub(t),n=s.dot(s),i=n.mul(n).mul(e);return o.add(s.mul(i))}),ab=b(({position:o=null,horizontal:e=!0,vertical:t=!1})=>{let s;o!==null?(s=at.toVar(),s[3][0]=o.x,s[3][1]=o.y,s[3][2]=o.z):s=at;const n=je.mul(s);return Gn(e)&&(n[0][0]=at[0].length(),n[0][1]=0,n[0][2]=0),Gn(t)&&(n[1][0]=0,n[1][1]=at[1].length(),n[1][2]=0),n[2][0]=0,n[2][1]=0,n[2][2]=1,He.mul(n).mul(me)}),ub=b(([o=null])=>{const e=ei();return ei(gu(o)).sub(e).lessThan(0).select(Bt,o)});class cb extends O{static get type(){return"SpriteSheetUVNode"}constructor(e,t=le(),s=g(0)){super("vec2"),this.countNode=e,this.uvNode=t,this.frameNode=s}setup(){const{frameNode:e,uvNode:t,countNode:s}=this,{width:n,height:r}=s,i=e.mod(n.mul(r)).floor(),a=i.mod(n),u=r.sub(i.add(1).div(n).ceil()),c=s.reciprocal(),l=M(a,u);return t.add(l).mul(c)}}const lb=C(cb);class db extends O{static get type(){return"TriplanarTexturesNode"}constructor(e,t=null,s=null,n=g(1),r=me,i=Xe){super("vec4"),this.textureXNode=e,this.textureYNode=t,this.textureZNode=s,this.scaleNode=n,this.positionNode=r,this.normalNode=i}setup(){const{textureXNode:e,textureYNode:t,textureZNode:s,scaleNode:n,positionNode:r,normalNode:i}=this;let a=i.abs().normalize();a=a.div(a.dot(T(1)));const u=r.yz.mul(n),c=r.zx.mul(n),l=r.xy.mul(n),d=e.value,h=t!==null?t.value:d,p=s!==null?s.value:d,f=K(d,u).mul(a.x),m=K(h,c).mul(a.y),x=K(p,l).mul(a.z);return _e(f,m,x)}}const mf=C(db),hb=(...o)=>mf(...o),Fs=new vl,as=new j,Us=new j,Yi=new j,yn=new Ie,Tr=new j(0,0,-1),xt=new Me,xn=new j,_r=new j,Tn=new Me,br=new Ye,si=new Ss,pb=Bt.flipX();si.depthTexture=new vs(1,1);let ji=!1;class Cu extends wt{static get type(){return"ReflectorNode"}constructor(e={}){super(e.defaultTexture||si.texture,pb),this._reflectorBaseNode=e.reflector||new fb(this,e),this._depthNode=null,this.setUpdateMatrix(!1)}get reflector(){return this._reflectorBaseNode}get target(){return this._reflectorBaseNode.target}getDepthNode(){if(this._depthNode===null){if(this._reflectorBaseNode.depth!==!0)throw new Error("THREE.ReflectorNode: Depth node can only be requested when the reflector is created with { depth: true }. ");this._depthNode=E(new Cu({defaultTexture:si.depthTexture,reflector:this._reflectorBaseNode}))}return this._depthNode}setup(e){return e.object.isQuadMesh||this._reflectorBaseNode.build(e),super.setup(e)}clone(){const e=new this.constructor(this.reflectorNode);return e._reflectorBaseNode=this._reflectorBaseNode,e}}class fb extends O{static get type(){return"ReflectorBaseNode"}constructor(e,t={}){super();const{target:s=new Zg,resolution:n=1,generateMipmaps:r=!1,bounces:i=!0,depth:a=!1}=t;this.textureNode=e,this.target=s,this.resolution=n,this.generateMipmaps=r,this.bounces=i,this.depth=a,this.updateBeforeType=i?W.RENDER:W.FRAME,this.virtualCameras=new WeakMap,this.renderTargets=new WeakMap}_updateResolution(e,t){const s=this.resolution;t.getDrawingBufferSize(br),e.setSize(Math.round(br.width*s),Math.round(br.height*s))}setup(e){return this._updateResolution(si,e.renderer),super.setup(e)}getVirtualCamera(e){let t=this.virtualCameras.get(e);return t===void 0&&(t=e.clone(),this.virtualCameras.set(e,t)),t}getRenderTarget(e){let t=this.renderTargets.get(e);return t===void 0&&(t=new Ss(0,0,{type:pt}),this.generateMipmaps===!0&&(t.texture.minFilter=Jg,t.texture.generateMipmaps=!0),this.depth===!0&&(t.depthTexture=new vs),this.renderTargets.set(e,t)),t}updateBefore(e){if(this.bounces===!1&&ji)return!1;ji=!0;const{scene:t,camera:s,renderer:n,material:r}=e,{target:i}=this,a=this.getVirtualCamera(s),u=this.getRenderTarget(a);if(n.getDrawingBufferSize(br),this._updateResolution(u,n),Us.setFromMatrixPosition(i.matrixWorld),Yi.setFromMatrixPosition(s.matrixWorld),yn.extractRotation(i.matrixWorld),as.set(0,0,1),as.applyMatrix4(yn),xn.subVectors(Us,Yi),xn.dot(as)>0)return;xn.reflect(as).negate(),xn.add(Us),yn.extractRotation(s.matrixWorld),Tr.set(0,0,-1),Tr.applyMatrix4(yn),Tr.add(Yi),_r.subVectors(Us,Tr),_r.reflect(as).negate(),_r.add(Us),a.coordinateSystem=s.coordinateSystem,a.position.copy(xn),a.up.set(0,1,0),a.up.applyMatrix4(yn),a.up.reflect(as),a.lookAt(_r),a.near=s.near,a.far=s.far,a.updateMatrixWorld(),a.projectionMatrix.copy(s.projectionMatrix),Fs.setFromNormalAndCoplanarPoint(as,Us),Fs.applyMatrix4(a.matrixWorldInverse),xt.set(Fs.normal.x,Fs.normal.y,Fs.normal.z,Fs.constant);const c=a.projectionMatrix;Tn.x=(Math.sign(xt.x)+c.elements[8])/c.elements[0],Tn.y=(Math.sign(xt.y)+c.elements[9])/c.elements[5],Tn.z=-1,Tn.w=(1+c.elements[10])/c.elements[14],xt.multiplyScalar(1/xt.dot(Tn));const l=0;c.elements[2]=xt.x,c.elements[6]=xt.y,c.elements[10]=n.coordinateSystem===ln?xt.z-l:xt.z+1-l,c.elements[14]=xt.w,this.textureNode.value=u.texture,this.depth===!0&&(this.textureNode.getDepthNode().value=u.depthTexture),r.visible=!1;const d=n.getRenderTarget(),h=n.getMRT(),p=n.autoClear;n.setMRT(null),n.setRenderTarget(u),n.autoClear=!0,n.render(t,a),n.setMRT(h),n.setRenderTarget(d),n.autoClear=p,r.visible=!0,ji=!1}}const gb=o=>E(new Cu(o)),Qi=new Tl(-1,1,1,-1,0,1);class mb extends Sl{constructor(e=!1){super();const t=e===!1?[0,-1,0,1,2,1]:[0,2,0,0,2,0];this.setAttribute("position",new ju([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new ju(t,2))}}const yb=new mb;class Mi extends tn{constructor(e=null){super(yb,e),this.camera=Qi,this.isQuadMesh=!0}async renderAsync(e){return e.renderAsync(this,Qi)}render(e){e.render(this,Qi)}}const xb=new Ye;class Tb extends wt{static get type(){return"RTTNode"}constructor(e,t=null,s=null,n={type:pt}){const r=new Ss(t,s,n);super(r.texture,le()),this.node=e,this.width=t,this.height=s,this.pixelRatio=1,this.renderTarget=r,this.textureNeedsUpdate=!0,this.autoUpdate=!0,this._rttNode=null,this._quadMesh=new Mi(new ce),this.updateBeforeType=W.RENDER}get autoSize(){return this.width===null}setup(e){return this._rttNode=this.node.context(e.getSharedContext()),this._quadMesh.material.name="RTT",this._quadMesh.material.needsUpdate=!0,super.setup(e)}setSize(e,t){this.width=e,this.height=t;const s=e*this.pixelRatio,n=t*this.pixelRatio;this.renderTarget.setSize(s,n),this.textureNeedsUpdate=!0}setPixelRatio(e){this.pixelRatio=e,this.setSize(this.width,this.height)}updateBefore({renderer:e}){if(this.textureNeedsUpdate===!1&&this.autoUpdate===!1)return;if(this.textureNeedsUpdate=!1,this.autoSize===!0){this.pixelRatio=e.getPixelRatio();const s=e.getSize(xb);this.setSize(s.width,s.height)}this._quadMesh.material.fragmentNode=this._rttNode;const t=e.getRenderTarget();e.setRenderTarget(this.renderTarget),this._quadMesh.render(e),e.setRenderTarget(t)}clone(){const e=new wt(this.value,this.uvNode,this.levelNode);return e.sampler=this.sampler,e.referenceNode=this,e}}const yf=(o,...e)=>E(new Tb(E(o),...e)),_b=(o,...e)=>o.isTextureNode?o:o.isPassNode?o.getTextureNode():yf(o,...e),ks=b(([o,e,t],s)=>{let n;s.renderer.coordinateSystem===ln?(o=M(o.x,o.y.oneMinus()).mul(2).sub(1),n=P(T(o,e),1)):n=P(T(o.x,o.y.oneMinus(),e).mul(2).sub(1),1);const r=P(t.mul(n));return r.xyz.div(r.w)}),bb=b(([o,e])=>{const t=e.mul(P(o,1)),s=t.xy.div(t.w).mul(.5).add(.5).toVar();return M(s.x,s.y.oneMinus())}),Nb=b(([o,e,t])=>{const s=ns(ge(e)),n=Ae(o.mul(s)).toVar(),r=ge(e,n).toVar(),i=ge(e,n.sub(Ae(2,0))).toVar(),a=ge(e,n.sub(Ae(1,0))).toVar(),u=ge(e,n.add(Ae(1,0))).toVar(),c=ge(e,n.add(Ae(2,0))).toVar(),l=ge(e,n.add(Ae(0,2))).toVar(),d=ge(e,n.add(Ae(0,1))).toVar(),h=ge(e,n.sub(Ae(0,1))).toVar(),p=ge(e,n.sub(Ae(0,2))).toVar(),f=oe(Y(g(2).mul(a).sub(i),r)).toVar(),m=oe(Y(g(2).mul(u).sub(c),r)).toVar(),x=oe(Y(g(2).mul(d).sub(l),r)).toVar(),N=oe(Y(g(2).mul(h).sub(p),r)).toVar(),v=ks(o,r,t).toVar(),w=f.lessThan(m).select(v.sub(ks(o.sub(M(g(1).div(s.x),0)),a,t)),v.negate().add(ks(o.add(M(g(1).div(s.x),0)),u,t))),B=x.lessThan(N).select(v.sub(ks(o.add(M(0,g(1).div(s.y))),d,t)),v.negate().add(ks(o.sub(M(0,g(1).div(s.y))),h,t)));return qt(_i(w,B))});class Sb extends oa{constructor(e,t,s=Float32Array){const n=ArrayBuffer.isView(e)?e:new s(e*t);super(n,t),this.isStorageInstancedBufferAttribute=!0}}class xf extends Ur{constructor(e,t,s=Float32Array){const n=ArrayBuffer.isView(e)?e:new s(e*t);super(n,t),this.isStorageBufferAttribute=!0}}class vb extends Rs{static get type(){return"StorageArrayElementNode"}constructor(e,t){super(e,t),this.isStorageArrayElementNode=!0}set storageBufferNode(e){this.node=e}get storageBufferNode(){return this.node}setup(e){return e.isAvailable("storageBuffer")===!1&&this.node.isPBO===!0&&e.setupPBO(this.node),super.setup(e)}generate(e,t){let s;const n=e.context.assign;if(e.isAvailable("storageBuffer")===!1?this.node.isPBO===!0&&n!==!0&&(this.node.value.isInstancedBufferAttribute||e.shaderStage!=="compute")?s=e.generatePBO(this):s=this.node.build(e):s=super.generate(e),n!==!0){const r=this.getNodeType(e);s=e.format(s,r,t)}return s}}const Ab=C(vb);class Rb extends iu{static get type(){return"StorageBufferNode"}constructor(e,t=null,s=0){t===null&&(e.isStorageBufferAttribute||e.isStorageInstancedBufferAttribute)&&(t=ya(e.itemSize),s=e.count),super(e,t,s),this.isStorageBufferNode=!0,this.access=Ve.READ_WRITE,this.isAtomic=!1,this.isPBO=!1,this._attribute=null,this._varying=null,this.global=!0,e.isStorageBufferAttribute!==!0&&e.isStorageInstancedBufferAttribute!==!0&&(e.isInstancedBufferAttribute?e.isStorageInstancedBufferAttribute=!0:e.isStorageBufferAttribute=!0)}getHash(e){if(this.bufferCount===0){let t=e.globalCache.getData(this.value);return t===void 0&&(t={node:this},e.globalCache.setData(this.value,t)),t.node.uuid}return this.uuid}getInputType(){return this.value.isIndirectStorageBufferAttribute?"indirectStorageBuffer":"storageBuffer"}element(e){return Ab(this,e)}setPBO(e){return this.isPBO=e,this}getPBO(){return this.isPBO}setAccess(e){return this.access=e,this}toReadOnly(){return this.setAccess(Ve.READ_ONLY)}setAtomic(e){return this.isAtomic=e,this}toAtomic(){return this.setAtomic(!0)}getAttributeData(){return this._attribute===null&&(this._attribute=nr(this.value),this._varying=ke(this._attribute)),{attribute:this._attribute,varying:this._varying}}getNodeType(e){if(e.isAvailable("storageBuffer")||e.isAvailable("indirectStorageBuffer"))return super.getNodeType(e);const{attribute:t}=this.getAttributeData();return t.getNodeType(e)}generate(e){if(e.isAvailable("storageBuffer")||e.isAvailable("indirectStorageBuffer"))return super.generate(e);const{attribute:t,varying:s}=this.getAttributeData(),n=s.build(e);return e.registerTransform(n,t),n}}const Bi=(o,e=null,t=0)=>E(new Rb(o,e,t)),Cb=(o,e,t)=>(console.warn('THREE.TSL: "storageObject()" is deprecated. Use "storage().setPBO( true )" instead.'),Bi(o,e,t).setPBO(!0)),Eb=(o,e="float")=>{const t=Ta(e),s=xa(e),n=new xf(o,t,s);return Bi(n,e,o)},wb=(o,e="float")=>{const t=Ta(e),s=xa(e),n=new Sb(o,t,s);return Bi(n,e,o)};class Mb extends Uh{static get type(){return"VertexColorNode"}constructor(e=0){super(null,"vec4"),this.isVertexColorNode=!0,this.index=e}getAttributeName(){const e=this.index;return"color"+(e>0?e:"")}generate(e){const t=this.getAttributeName(e),s=e.hasGeometryAttribute(t);let n;return s===!0?n=super.generate(e):n=e.generateConst(this.nodeType,new Me(1,1,1,1)),n}serialize(e){super.serialize(e),e.index=this.index}deserialize(e){super.deserialize(e),this.index=e.index}}const Bb=o=>E(new Mb(o));class Fb extends O{static get type(){return"PointUVNode"}constructor(){super("vec2"),this.isPointUVNode=!0}generate(){return"vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y )"}}const Ub=U(Fb),_n=new Wg,Zi=new Ie;class Ke extends O{static get type(){return"SceneNode"}constructor(e=Ke.BACKGROUND_BLURRINESS,t=null){super(),this.scope=e,this.scene=t}setup(e){const t=this.scope,s=this.scene!==null?this.scene:e.scene;let n;return t===Ke.BACKGROUND_BLURRINESS?n=ne("backgroundBlurriness","float",s):t===Ke.BACKGROUND_INTENSITY?n=ne("backgroundIntensity","float",s):t===Ke.BACKGROUND_ROTATION?n=V("mat4").label("backgroundRotation").setGroup(k).onRenderUpdate(()=>{const r=s.background;return r!==null&&r.isTexture&&r.mapping!==zg?(_n.copy(s.backgroundRotation),_n.x*=-1,_n.y*=-1,_n.z*=-1,Zi.makeRotationFromEuler(_n)):Zi.identity(),Zi}):console.error("THREE.SceneNode: Unknown scope:",t),n}}Ke.BACKGROUND_BLURRINESS="backgroundBlurriness";Ke.BACKGROUND_INTENSITY="backgroundIntensity";Ke.BACKGROUND_ROTATION="backgroundRotation";const Tf=U(Ke,Ke.BACKGROUND_BLURRINESS),sa=U(Ke,Ke.BACKGROUND_INTENSITY),_f=U(Ke,Ke.BACKGROUND_ROTATION);class Pb extends wt{static get type(){return"StorageTextureNode"}constructor(e,t,s=null){super(e,t),this.storeNode=s,this.isStorageTextureNode=!0,this.access=Ve.WRITE_ONLY}getInputType(){return"storageTexture"}setup(e){super.setup(e);const t=e.getNodeProperties(this);t.storeNode=this.storeNode}setAccess(e){return this.access=e,this}generate(e,t){let s;return this.storeNode!==null?s=this.generateStore(e):s=super.generate(e,t),s}toReadWrite(){return this.setAccess(Ve.READ_WRITE)}toReadOnly(){return this.setAccess(Ve.READ_ONLY)}toWriteOnly(){return this.setAccess(Ve.WRITE_ONLY)}generateStore(e){const t=e.getNodeProperties(this),{uvNode:s,storeNode:n}=t,r=super.generate(e,"property"),i=s.build(e,"uvec2"),a=n.build(e,"vec4"),u=e.generateTextureStore(e,r,i,a);e.addLineFlowCode(u,this)}}const bf=C(Pb),Db=(o,e,t)=>{const s=bf(o,e,t);return t!==null&&s.append(),s};class Lb extends Ai{static get type(){return"UserDataNode"}constructor(e,t,s=null){super(e,t,s),this.userData=s}updateReference(e){return this.reference=this.userData!==null?this.userData:e.object.userData,this.reference}}const Ib=(o,e,t)=>E(new Lb(o,e,t)),Pc=new WeakMap;class Vb extends be{static get type(){return"VelocityNode"}constructor(){super("vec2"),this.projectionMatrix=null,this.updateType=W.OBJECT,this.updateAfterType=W.OBJECT,this.previousModelWorldMatrix=V(new Ie),this.previousProjectionMatrix=V(new Ie).setGroup(k),this.previousCameraViewMatrix=V(new Ie)}setProjectionMatrix(e){this.projectionMatrix=e}update({frameId:e,camera:t,object:s}){const n=Dc(s);this.previousModelWorldMatrix.value.copy(n);const r=Nf(t);r.frameId!==e&&(r.frameId=e,r.previousProjectionMatrix===void 0?(r.previousProjectionMatrix=new Ie,r.previousCameraViewMatrix=new Ie,r.currentProjectionMatrix=new Ie,r.currentCameraViewMatrix=new Ie,r.previousProjectionMatrix.copy(this.projectionMatrix||t.projectionMatrix),r.previousCameraViewMatrix.copy(t.matrixWorldInverse)):(r.previousProjectionMatrix.copy(r.currentProjectionMatrix),r.previousCameraViewMatrix.copy(r.currentCameraViewMatrix)),r.currentProjectionMatrix.copy(this.projectionMatrix||t.projectionMatrix),r.currentCameraViewMatrix.copy(t.matrixWorldInverse),this.previousProjectionMatrix.value.copy(r.previousProjectionMatrix),this.previousCameraViewMatrix.value.copy(r.previousCameraViewMatrix))}updateAfter({object:e}){Dc(e).copy(e.matrixWorld)}setup(){const e=this.projectionMatrix===null?He:V(this.projectionMatrix),t=this.previousCameraViewMatrix.mul(this.previousModelWorldMatrix),s=e.mul(Kt).mul(me),n=this.previousProjectionMatrix.mul(t).mul(Jr),r=s.xy.div(s.w),i=n.xy.div(n.w);return Y(r,i)}}function Nf(o){let e=Pc.get(o);return e===void 0&&(e={},Pc.set(o,e)),e}function Dc(o,e=0){const t=Nf(o);let s=t[e];return s===void 0&&(t[e]=s=new Ie),s}const Gb=U(Vb),Sf=b(([o,e])=>Re(1,o.oneMinus().div(e)).oneMinus()).setLayout({name:"blendBurn",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),vf=b(([o,e])=>Re(o.div(e.oneMinus()),1)).setLayout({name:"blendDodge",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),Af=b(([o,e])=>o.oneMinus().mul(e.oneMinus()).oneMinus()).setLayout({name:"blendScreen",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),Rf=b(([o,e])=>Q(o.mul(2).mul(e),o.oneMinus().mul(2).mul(e.oneMinus()).oneMinus(),Ti(.5,o))).setLayout({name:"blendOverlay",type:"vec3",inputs:[{name:"base",type:"vec3"},{name:"blend",type:"vec3"}]}),Ob=b(([o,e])=>{const t=e.a.add(o.a.mul(e.a.oneMinus()));return P(e.rgb.mul(e.a).add(o.rgb.mul(o.a).mul(e.a.oneMinus())).div(t),t)}).setLayout({name:"blendColor",type:"vec4",inputs:[{name:"base",type:"vec4"},{name:"blend",type:"vec4"}]}),kb=(...o)=>(console.warn('THREE.TSL: "burn" has been renamed. Use "blendBurn" instead.'),Sf(o)),zb=(...o)=>(console.warn('THREE.TSL: "dodge" has been renamed. Use "blendDodge" instead.'),vf(o)),Wb=(...o)=>(console.warn('THREE.TSL: "screen" has been renamed. Use "blendScreen" instead.'),Af(o)),$b=(...o)=>(console.warn('THREE.TSL: "overlay" has been renamed. Use "blendOverlay" instead.'),Rf(o)),Hb=b(([o])=>Eu(o.rgb)),qb=b(([o,e=g(1)])=>e.mix(Eu(o.rgb),o.rgb)),Kb=b(([o,e=g(1)])=>{const t=_e(o.r,o.g,o.b).div(3),s=o.r.max(o.g.max(o.b)),n=s.sub(t).mul(e).mul(-3);return Q(o.rgb,s,n)}),Xb=b(([o,e=g(1)])=>{const t=T(.57735,.57735,.57735),s=e.cos();return T(o.rgb.mul(s).add(t.cross(o.rgb).mul(e.sin()).add(t.mul(is(t,o.rgb).mul(s.oneMinus())))))}),Eu=(o,e=T(_t.getLuminanceCoefficients(new j)))=>is(o,e),Yb=b(([o,e=T(1),t=T(0),s=T(1),n=g(1),r=T(_t.getLuminanceCoefficients(new j,kt))])=>{const i=o.rgb.dot(T(r)),a=ue(o.rgb.mul(e).add(t),0).toVar(),u=a.pow(s).toVar();return z(a.r.greaterThan(0),()=>{a.r.assign(u.r)}),z(a.g.greaterThan(0),()=>{a.g.assign(u.g)}),z(a.b.greaterThan(0),()=>{a.b.assign(u.b)}),a.assign(i.add(a.sub(i).mul(n))),P(a.rgb,o.a)});class jb extends be{static get type(){return"PosterizeNode"}constructor(e,t){super(),this.sourceNode=e,this.stepsNode=t}setup(){const{sourceNode:e,stepsNode:t}=this;return e.mul(t).floor().div(t)}}const Qb=C(jb),Zb=new Ye;class Cf extends wt{static get type(){return"PassTextureNode"}constructor(e,t){super(t),this.passNode=e,this.setUpdateMatrix(!1)}setup(e){return e.object.isQuadMesh&&this.passNode.build(e),super.setup(e)}clone(){return new this.constructor(this.passNode,this.value)}}class Lc extends Cf{static get type(){return"PassMultipleTextureNode"}constructor(e,t,s=!1){super(e,null),this.textureName=t,this.previousTexture=s}updateTexture(){this.value=this.previousTexture?this.passNode.getPreviousTexture(this.textureName):this.passNode.getTexture(this.textureName)}setup(e){return this.updateTexture(),super.setup(e)}clone(){return new this.constructor(this.passNode,this.textureName,this.previousTexture)}}class Ut extends be{static get type(){return"PassNode"}constructor(e,t,s,n={}){super("vec4"),this.scope=e,this.scene=t,this.camera=s,this.options=n,this._pixelRatio=1,this._width=1,this._height=1;const r=new vs;r.isRenderTargetTexture=!0,r.name="depth";const i=new Ss(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:pt,...n});i.texture.name="output",i.depthTexture=r,this.renderTarget=i,this._textures={output:i.texture,depth:r},this._textureNodes={},this._linearDepthNodes={},this._viewZNodes={},this._previousTextures={},this._previousTextureNodes={},this._cameraNear=V(0),this._cameraFar=V(0),this._mrt=null,this.isPassNode=!0,this.updateBeforeType=W.FRAME}setMRT(e){return this._mrt=e,this}getMRT(){return this._mrt}isGlobal(){return!0}getTexture(e){let t=this._textures[e];return t===void 0&&(t=this.renderTarget.texture.clone(),t.name=e,this._textures[e]=t,this.renderTarget.textures.push(t)),t}getPreviousTexture(e){let t=this._previousTextures[e];return t===void 0&&(t=this.getTexture(e).clone(),this._previousTextures[e]=t),t}toggleTexture(e){const t=this._previousTextures[e];if(t!==void 0){const s=this._textures[e],n=this.renderTarget.textures.indexOf(s);this.renderTarget.textures[n]=t,this._textures[e]=t,this._previousTextures[e]=s,this._textureNodes[e].updateTexture(),this._previousTextureNodes[e].updateTexture()}}getTextureNode(e="output"){let t=this._textureNodes[e];return t===void 0&&(t=E(new Lc(this,e)),t.updateTexture(),this._textureNodes[e]=t),t}getPreviousTextureNode(e="output"){let t=this._previousTextureNodes[e];return t===void 0&&(this._textureNodes[e]===void 0&&this.getTextureNode(e),t=E(new Lc(this,e,!0)),t.updateTexture(),this._previousTextureNodes[e]=t),t}getViewZNode(e="depth"){let t=this._viewZNodes[e];if(t===void 0){const s=this._cameraNear,n=this._cameraFar;this._viewZNodes[e]=t=mu(this.getTextureNode(e),s,n)}return t}getLinearDepthNode(e="depth"){let t=this._linearDepthNodes[e];if(t===void 0){const s=this._cameraNear,n=this._cameraFar,r=this.getViewZNode(e);this._linearDepthNodes[e]=t=Qs(r,s,n)}return t}setup({renderer:e}){return this.renderTarget.samples=this.options.samples===void 0?e.samples:this.options.samples,e.backend.isWebGLBackend===!0&&(this.renderTarget.samples=0),this.scope===Ut.COLOR?this.getTextureNode():this.getLinearDepthNode()}updateBefore(e){const{renderer:t}=e,{scene:s,camera:n}=this;this._pixelRatio=t.getPixelRatio();const r=t.getSize(Zb);this.setSize(r.width,r.height);const i=t.getRenderTarget(),a=t.getMRT();this._cameraNear.value=n.near,this._cameraFar.value=n.far;for(const u in this._previousTextures)this.toggleTexture(u);t.setRenderTarget(this.renderTarget),t.setMRT(this._mrt),t.render(s,n),t.setRenderTarget(i),t.setMRT(a)}setSize(e,t){this._width=e,this._height=t;const s=this._width*this._pixelRatio,n=this._height*this._pixelRatio;this.renderTarget.setSize(s,n)}setPixelRatio(e){this._pixelRatio=e,this.setSize(this._width,this._height)}dispose(){this.renderTarget.dispose()}}Ut.COLOR="color";Ut.DEPTH="depth";const Jb=(o,e,t)=>E(new Ut(Ut.COLOR,o,e,t)),eN=(o,e)=>E(new Cf(o,e)),tN=(o,e,t)=>E(new Ut(Ut.DEPTH,o,e,t));class sN extends Ut{static get type(){return"ToonOutlinePassNode"}constructor(e,t,s,n,r){super(Ut.COLOR,e,t),this.colorNode=s,this.thicknessNode=n,this.alphaNode=r,this._materialCache=new WeakMap}updateBefore(e){const{renderer:t}=e,s=t.getRenderObjectFunction();t.setRenderObjectFunction((n,r,i,a,u,c,l,d)=>{if((u.isMeshToonMaterial||u.isMeshToonNodeMaterial)&&u.wireframe===!1){const h=this._getOutlineMaterial(u);t.renderObject(n,r,i,a,h,c,l,d)}t.renderObject(n,r,i,a,u,c,l,d)}),super.updateBefore(e),t.setRenderObjectFunction(s)}_createMaterial(){const e=new ce;e.isMeshToonOutlineMaterial=!0,e.name="Toon_Outline",e.side=Ct;const t=Xe.negate(),s=He.mul(Kt),n=g(1),r=s.mul(P(me,1)),i=s.mul(P(me.add(t),1)),a=qt(r.sub(i));return e.vertexNode=r.add(a.mul(this.thicknessNode).mul(r.w).mul(n)),e.colorNode=P(this.colorNode,this.alphaNode),e}_getOutlineMaterial(e){let t=this._materialCache.get(e);return t===void 0&&(t=this._createMaterial(),this._materialCache.set(e,t)),t}}const nN=(o,e,t=new mt(0,0,0),s=.003,n=1)=>E(new sN(o,e,E(t),E(s),E(n))),Ef=b(([o,e])=>o.mul(e).clamp()).setLayout({name:"linearToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),wf=b(([o,e])=>(o=o.mul(e),o.div(o.add(1)).clamp())).setLayout({name:"reinhardToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Mf=b(([o,e])=>{o=o.mul(e),o=o.sub(.004).max(0);const t=o.mul(o.mul(6.2).add(.5)),s=o.mul(o.mul(6.2).add(1.7)).add(.06);return t.div(s).pow(2.2)}).setLayout({name:"cineonToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),rN=b(([o])=>{const e=o.mul(o.add(.0245786)).sub(90537e-9),t=o.mul(o.add(.432951).mul(.983729)).add(.238081);return e.div(t)}),Bf=b(([o,e])=>{const t=Oe(.59719,.35458,.04823,.076,.90834,.01566,.0284,.13383,.83777),s=Oe(1.60475,-.53108,-.07367,-.10208,1.10813,-.00605,-.00327,-.07276,1.07602);return o=o.mul(e).div(.6),o=t.mul(o),o=rN(o),o=s.mul(o),o.clamp()}).setLayout({name:"acesFilmicToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),iN=Oe(T(1.6605,-.1246,-.0182),T(-.5876,1.1329,-.1006),T(-.0728,-.0083,1.1187)),oN=Oe(T(.6274,.0691,.0164),T(.3293,.9195,.088),T(.0433,.0113,.8956)),aN=b(([o])=>{const e=T(o).toVar(),t=T(e.mul(e)).toVar(),s=T(t.mul(t)).toVar();return g(15.5).mul(s.mul(t)).sub($(40.14,s.mul(e))).add($(31.96,s).sub($(6.868,t.mul(e))).add($(.4298,t).add($(.1191,e).sub(.00232))))}),Ff=b(([o,e])=>{const t=T(o).toVar(),s=Oe(T(.856627153315983,.137318972929847,.11189821299995),T(.0951212405381588,.761241990602591,.0767994186031903),T(.0482516061458583,.101439036467562,.811302368396859)),n=Oe(T(1.1271005818144368,-.1413297634984383,-.14132976349843826),T(-.11060664309660323,1.157823702216272,-.11060664309660294),T(-.016493938717834573,-.016493938717834257,1.2519364065950405)),r=g(-12.47393),i=g(4.026069);return t.mulAssign(e),t.assign(oN.mul(t)),t.assign(s.mul(t)),t.assign(ue(t,1e-10)),t.assign(vt(t)),t.assign(t.sub(r).div(i.sub(r))),t.assign(Et(t,0,1)),t.assign(aN(t)),t.assign(n.mul(t)),t.assign(ht(ue(T(0),t),T(2.2))),t.assign(iN.mul(t)),t.assign(Et(t,0,1)),t}).setLayout({name:"agxToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]}),Uf=b(([o,e])=>{const t=g(.76),s=g(.15);o=o.mul(e);const n=Re(o.r,Re(o.g,o.b)),r=Ue(n.lessThan(.08),n.sub($(6.25,n.mul(n))),.04);o.subAssign(r);const i=ue(o.r,ue(o.g,o.b));z(i.lessThan(t),()=>o);const a=Y(1,t),u=Y(1,a.mul(a).div(i.add(a.sub(t))));o.mulAssign(u.div(i));const c=Y(1,gt(1,s.mul(i.sub(u)).add(1)));return Q(o,T(u),c)}).setLayout({name:"neutralToneMapping",type:"vec3",inputs:[{name:"color",type:"vec3"},{name:"exposure",type:"float"}]});class Ne extends O{static get type(){return"CodeNode"}constructor(e="",t=[],s=""){super("code"),this.isCodeNode=!0,this.code=e,this.includes=t,this.language=s}isGlobal(){return!0}setIncludes(e){return this.includes=e,this}getIncludes(){return this.includes}generate(e){const t=this.getIncludes(e);for(const n of t)n.build(e);const s=e.getCodeFromNode(this,this.getNodeType(e));return s.code=this.code,s.code}serialize(e){super.serialize(e),e.code=this.code,e.language=this.language}deserialize(e){super.deserialize(e),this.code=e.code,this.language=e.language}}const Fi=C(Ne),uN=(o,e)=>Fi(o,e,"js"),cN=(o,e)=>Fi(o,e,"wgsl"),lN=(o,e)=>Fi(o,e,"glsl");class Pf extends Ne{static get type(){return"FunctionNode"}constructor(e="",t=[],s=""){super(e,t,s)}getNodeType(e){return this.getNodeFunction(e).type}getInputs(e){return this.getNodeFunction(e).inputs}getNodeFunction(e){const t=e.getDataFromNode(this);let s=t.nodeFunction;return s===void 0&&(s=e.parser.parseFunction(this.code),t.nodeFunction=s),s}generate(e,t){super.generate(e);const s=this.getNodeFunction(e),n=s.name,r=s.type,i=e.getCodeFromNode(this,r);n!==""&&(i.name=n);const a=e.getPropertyName(i),u=this.getNodeFunction(e).getCode(a);return i.code=u+` +`,t==="property"?a:e.format(`${a}()`,r,t)}}const Df=(o,e=[],t="")=>{for(let r=0;rs.call(...r);return n.functionNode=s,n},dN=(o,e)=>Df(o,e,"glsl"),hN=(o,e)=>Df(o,e,"wgsl");class pN extends O{static get type(){return"ScriptableValueNode"}constructor(e=null){super(),this._value=e,this._cache=null,this.inputType=null,this.outputType=null,this.events=new gl,this.isScriptableValueNode=!0}get isScriptableOutputNode(){return this.outputType!==null}set value(e){this._value!==e&&(this._cache&&this.inputType==="URL"&&this.value.value instanceof ArrayBuffer&&(URL.revokeObjectURL(this._cache),this._cache=null),this._value=e,this.events.dispatchEvent({type:"change"}),this.refresh())}get value(){return this._value}refresh(){this.events.dispatchEvent({type:"refresh"})}getValue(){const e=this.value;if(e&&this._cache===null&&this.inputType==="URL"&&e.value instanceof ArrayBuffer)this._cache=URL.createObjectURL(new Blob([e.value]));else if(e&&e.value!==null&&e.value!==void 0&&((this.inputType==="URL"||this.inputType==="String")&&typeof e.value=="string"||this.inputType==="Number"&&typeof e.value=="number"||this.inputType==="Vector2"&&e.value.isVector2||this.inputType==="Vector3"&&e.value.isVector3||this.inputType==="Vector4"&&e.value.isVector4||this.inputType==="Color"&&e.value.isColor||this.inputType==="Matrix3"&&e.value.isMatrix3||this.inputType==="Matrix4"&&e.value.isMatrix4))return e.value;return this._cache||e}getNodeType(e){return this.value&&this.value.isNode?this.value.getNodeType(e):"float"}setup(){return this.value&&this.value.isNode?this.value:g()}serialize(e){super.serialize(e),this.value!==null?this.inputType==="ArrayBuffer"?e.value=Na(this.value):e.value=this.value?this.value.toJSON(e.meta).uuid:null:e.value=null,e.inputType=this.inputType,e.outputType=this.outputType}deserialize(e){super.deserialize(e);let t=null;e.value!==null&&(e.inputType==="ArrayBuffer"?t=Sa(e.value):e.inputType==="Texture"?t=e.meta.textures[e.value]:t=e.meta.nodes[e.value]||null),this.value=t,this.inputType=e.inputType,this.outputType=e.outputType}}const zr=C(pN);class Lf extends Map{get(e,t=null,...s){if(this.has(e))return super.get(e);if(t!==null){const n=t(...s);return this.set(e,n),n}}}class fN{constructor(e){this.scriptableNode=e}get parameters(){return this.scriptableNode.parameters}get layout(){return this.scriptableNode.getLayout()}getInputLayout(e){return this.scriptableNode.getInputLayout(e)}get(e){const t=this.parameters[e];return t?t.getValue():null}}const Wr=new Lf;class gN extends O{static get type(){return"ScriptableNode"}constructor(e=null,t={}){super(),this.codeNode=e,this.parameters=t,this._local=new Lf,this._output=zr(),this._outputs={},this._source=this.source,this._method=null,this._object=null,this._value=null,this._needsOutputUpdate=!0,this.onRefresh=this.onRefresh.bind(this),this.isScriptableNode=!0}get source(){return this.codeNode?this.codeNode.code:""}setLocal(e,t){return this._local.set(e,t)}getLocal(e){return this._local.get(e)}onRefresh(){this._refresh()}getInputLayout(e){for(const t of this.getLayout())if(t.inputType&&(t.id===e||t.name===e))return t}getOutputLayout(e){for(const t of this.getLayout())if(t.outputType&&(t.id===e||t.name===e))return t}setOutput(e,t){const s=this._outputs;return s[e]===void 0?s[e]=zr(t):s[e].value=t,this}getOutput(e){return this._outputs[e]}getParameter(e){return this.parameters[e]}setParameter(e,t){const s=this.parameters;return t&&t.isScriptableNode?(this.deleteParameter(e),s[e]=t,s[e].getDefaultOutput().events.addEventListener("refresh",this.onRefresh)):t&&t.isScriptableValueNode?(this.deleteParameter(e),s[e]=t,s[e].events.addEventListener("refresh",this.onRefresh)):s[e]===void 0?(s[e]=zr(t),s[e].events.addEventListener("refresh",this.onRefresh)):s[e].value=t,this}getValue(){return this.getDefaultOutput().getValue()}deleteParameter(e){let t=this.parameters[e];return t&&(t.isScriptableNode&&(t=t.getDefaultOutput()),t.events.removeEventListener("refresh",this.onRefresh)),this}clearParameters(){for(const e of Object.keys(this.parameters))this.deleteParameter(e);return this.needsUpdate=!0,this}call(e,...t){const n=this.getObject()[e];if(typeof n=="function")return n(...t)}async callAsync(e,...t){const n=this.getObject()[e];if(typeof n=="function")return n.constructor.name==="AsyncFunction"?await n(...t):n(...t)}getNodeType(e){return this.getDefaultOutputNode().getNodeType(e)}refresh(e=null){e!==null?this.getOutput(e).refresh():this._refresh()}getObject(){if(this.needsUpdate&&this.dispose(),this._object!==null)return this._object;const e=()=>this.refresh(),t=(c,l)=>this.setOutput(c,l),s=new fN(this),n=Wr.get("THREE"),r=Wr.get("TSL"),i=this.getMethod(),a=[s,this._local,Wr,e,t,n,r];this._object=i(...a);const u=this._object.layout;if(u&&(u.cache===!1&&this._local.clear(),this._output.outputType=u.outputType||null,Array.isArray(u.elements)))for(const c of u.elements){const l=c.id||c.name;c.inputType&&(this.getParameter(l)===void 0&&this.setParameter(l,null),this.getParameter(l).inputType=c.inputType),c.outputType&&(this.getOutput(l)===void 0&&this.setOutput(l,null),this.getOutput(l).outputType=c.outputType)}return this._object}deserialize(e){super.deserialize(e);for(const t in this.parameters){let s=this.parameters[t];s.isScriptableNode&&(s=s.getDefaultOutput()),s.events.addEventListener("refresh",this.onRefresh)}}getLayout(){return this.getObject().layout}getDefaultOutputNode(){const e=this.getDefaultOutput().value;return e&&e.isNode?e:g()}getDefaultOutput(){return this._exec()._output}getMethod(){if(this.needsUpdate&&this.dispose(),this._method!==null)return this._method;const e=["parameters","local","global","refresh","setOutput","THREE","TSL"],s=["layout","init","main","dispose"].join(", "),n="var "+s+`; var output = {}; +`,r=` +return { ...output, `+s+" };",i=n+this.codeNode.code+r;return this._method=new Function(...e,i),this._method}dispose(){this._method!==null&&(this._object&&typeof this._object.dispose=="function"&&this._object.dispose(),this._method=null,this._object=null,this._source=null,this._value=null,this._needsOutputUpdate=!0,this._output.value=null,this._outputs={})}setup(){return this.getDefaultOutputNode()}getCacheKey(e){const t=[ga(this.source),this.getDefaultOutputNode().getCacheKey(e)];for(const s in this.parameters)t.push(this.parameters[s].getCacheKey(e));return Zn(t)}set needsUpdate(e){e===!0&&this.dispose()}get needsUpdate(){return this.source!==this._source}_exec(){return this.codeNode===null?this:(this._needsOutputUpdate===!0&&(this._value=this.call("main"),this._needsOutputUpdate=!1),this._output.value=this._value,this)}_refresh(){this.needsUpdate=!0,this._exec(),this._output.refresh()}}const mN=C(gN);function If(o){let e;const t=o.context.getViewZ;return t!==void 0&&(e=t(this)),(e||xe.z).negate()}const wu=b(([o,e],t)=>{const s=If(t);return ct(o,e,s)}),Mu=b(([o],e)=>{const t=If(e);return o.mul(o,t,t).negate().exp().oneMinus()}),Xn=b(([o,e])=>P(e.toFloat().mix($n.rgb,o.toVec3()),$n.a));function yN(o,e,t){return console.warn('THREE.TSL: "rangeFog( color, near, far )" is deprecated. Use "fog( color, rangeFogFactor( near, far ) )" instead.'),Xn(o,wu(e,t))}function xN(o,e){return console.warn('THREE.TSL: "densityFog( color, density )" is deprecated. Use "fog( color, densityFogFactor( density ) )" instead.'),Xn(o,Mu(e))}let us=null,cs=null;class TN extends O{static get type(){return"RangeNode"}constructor(e=g(),t=g()){super(),this.minNode=e,this.maxNode=t}getVectorLength(e){const t=e.getTypeLength(Ot(this.minNode.value)),s=e.getTypeLength(Ot(this.maxNode.value));return t>s?t:s}getNodeType(e){return e.object.count>1?e.getTypeFromLength(this.getVectorLength(e)):"float"}setup(e){const t=e.object;let s=null;if(t.count>1){const n=this.minNode.value,r=this.maxNode.value,i=e.getTypeLength(Ot(n)),a=e.getTypeLength(Ot(r));us=us||new Me,cs=cs||new Me,us.setScalar(0),cs.setScalar(0),i===1?us.setScalar(n):n.isColor?us.set(n.r,n.g,n.b,1):us.set(n.x,n.y,n.z||0,n.w||0),a===1?cs.setScalar(r):r.isColor?cs.set(r.r,r.g,r.b,1):cs.set(r.x,r.y,r.z||0,r.w||0);const u=4,c=u*t.count,l=new Float32Array(c);for(let h=0;hE(new bN(o,e)),NN=Ui("numWorkgroups","uvec3"),SN=Ui("workgroupId","uvec3"),vN=Ui("localId","uvec3"),AN=Ui("subgroupSize","uint");class RN extends O{constructor(e){super(),this.scope=e}generate(e){const{scope:t}=this,{renderer:s}=e;s.backend.isWebGLBackend===!0?e.addFlowCode(` // ${t}Barrier +`):e.addLineFlowCode(`${t}Barrier()`,this)}}const Bu=C(RN),CN=()=>Bu("workgroup").append(),EN=()=>Bu("storage").append(),wN=()=>Bu("texture").append();class MN extends Rs{constructor(e,t){super(e,t),this.isWorkgroupInfoElementNode=!0}generate(e,t){let s;const n=e.context.assign;if(s=super.generate(e),n!==!0){const r=this.getNodeType(e);s=e.format(s,r,t)}return s}}class BN extends O{constructor(e,t,s=0){super(t),this.bufferType=t,this.bufferCount=s,this.isWorkgroupInfoNode=!0,this.elementType=t,this.scope=e}label(e){return this.name=e,this}setScope(e){return this.scope=e,this}getElementType(){return this.elementType}getInputType(){return`${this.scope}Array`}element(e){return E(new MN(this,e))}generate(e){return e.getScopedArray(this.name||`${this.scope}Array_${this.id}`,this.scope.toLowerCase(),this.bufferType,this.bufferCount)}}const FN=(o,e)=>E(new BN("Workgroup",o,e));class Be extends be{static get type(){return"AtomicFunctionNode"}constructor(e,t,s,n=null){super("uint"),this.method=e,this.pointerNode=t,this.valueNode=s,this.storeNode=n}getInputType(e){return this.pointerNode.getNodeType(e)}getNodeType(e){return this.getInputType(e)}generate(e){const t=this.method,s=this.getNodeType(e),n=this.getInputType(e),r=this.pointerNode,i=this.valueNode,a=[];a.push(`&${r.build(e,n)}`),a.push(i.build(e,n));const u=`${e.getMethod(t,s)}( ${a.join(", ")} )`;if(this.storeNode!==null){const c=this.storeNode.build(e,n);e.addLineFlowCode(`${c} = ${u}`,this)}else e.addLineFlowCode(u,this)}}Be.ATOMIC_LOAD="atomicLoad";Be.ATOMIC_STORE="atomicStore";Be.ATOMIC_ADD="atomicAdd";Be.ATOMIC_SUB="atomicSub";Be.ATOMIC_MAX="atomicMax";Be.ATOMIC_MIN="atomicMin";Be.ATOMIC_AND="atomicAnd";Be.ATOMIC_OR="atomicOr";Be.ATOMIC_XOR="atomicXor";const UN=C(Be),Yt=(o,e,t,s=null)=>{const n=UN(o,e,t,s);return n.append(),n},PN=(o,e,t=null)=>Yt(Be.ATOMIC_STORE,o,e,t),DN=(o,e,t=null)=>Yt(Be.ATOMIC_ADD,o,e,t),LN=(o,e,t=null)=>Yt(Be.ATOMIC_SUB,o,e,t),IN=(o,e,t=null)=>Yt(Be.ATOMIC_MAX,o,e,t),VN=(o,e,t=null)=>Yt(Be.ATOMIC_MIN,o,e,t),GN=(o,e,t=null)=>Yt(Be.ATOMIC_AND,o,e,t),ON=(o,e,t=null)=>Yt(Be.ATOMIC_OR,o,e,t),kN=(o,e,t=null)=>Yt(Be.ATOMIC_XOR,o,e,t);let Nr;function hr(o){Nr=Nr||new WeakMap;let e=Nr.get(o);return e===void 0&&Nr.set(o,e={}),e}function Fu(o){const e=hr(o);return e.shadowMatrix||(e.shadowMatrix=V("mat4").setGroup(k).onRenderUpdate(()=>(o.castShadow!==!0&&o.shadow.updateMatrices(o),o.shadow.matrix)))}function Vf(o){const e=hr(o);if(e.projectionUV===void 0){const t=Fu(o).mul(Wt);e.projectionUV=t.xyz.div(t.w)}return e.projectionUV}function Uu(o){const e=hr(o);return e.position||(e.position=V(new j).setGroup(k).onRenderUpdate((t,s)=>s.value.setFromMatrixPosition(o.matrixWorld)))}function Gf(o){const e=hr(o);return e.targetPosition||(e.targetPosition=V(new j).setGroup(k).onRenderUpdate((t,s)=>s.value.setFromMatrixPosition(o.target.matrixWorld)))}function Pi(o){const e=hr(o);return e.viewPosition||(e.viewPosition=V(new j).setGroup(k).onRenderUpdate(({camera:t},s)=>{s.value=s.value||new j,s.value.setFromMatrixPosition(o.matrixWorld),s.value.applyMatrix4(t.matrixWorldInverse)}))}const Pu=o=>je.transformDirection(Uu(o).sub(Gf(o))),zN=o=>o.sort((e,t)=>e.id-t.id),WN=(o,e)=>{for(const t of e)if(t.isAnalyticLightNode&&t.light.id===o)return t;return null},Ji=new WeakMap;class Du extends O{static get type(){return"LightsNode"}constructor(){super("vec3"),this.totalDiffuseNode=T().toVar("totalDiffuse"),this.totalSpecularNode=T().toVar("totalSpecular"),this.outgoingLightNode=T().toVar("outgoingLight"),this._lights=[],this._lightNodes=null,this._lightNodesHash=null,this.global=!0}customCacheKey(){const e=[],t=this._lights;for(let s=0;s0}}const $N=(o=[])=>E(new Du).setLights(o);class HN extends O{static get type(){return"ShadowBaseNode"}constructor(e){super(),this.light=e,this.updateBeforeType=W.RENDER,this.isShadowBaseNode=!0}setupShadowPosition({material:e}){Lu.assign(e.shadowPositionNode||Wt)}dispose(){this.updateBeforeType=W.NONE}}const Lu=T().toVar("shadowPositionWorld");function Iu(o,e={}){return e.toneMapping=o.toneMapping,e.toneMappingExposure=o.toneMappingExposure,e.outputColorSpace=o.outputColorSpace,e.renderTarget=o.getRenderTarget(),e.activeCubeFace=o.getActiveCubeFace(),e.activeMipmapLevel=o.getActiveMipmapLevel(),e.renderObjectFunction=o.getRenderObjectFunction(),e.pixelRatio=o.getPixelRatio(),e.mrt=o.getMRT(),e.clearColor=o.getClearColor(e.clearColor||new mt),e.clearAlpha=o.getClearAlpha(),e.autoClear=o.autoClear,e.scissorTest=o.getScissorTest(),e}function Of(o,e){return e=Iu(o,e),o.setMRT(null),o.setRenderObjectFunction(null),o.setClearColor(0,1),o.autoClear=!0,e}function kf(o,e){o.toneMapping=e.toneMapping,o.toneMappingExposure=e.toneMappingExposure,o.outputColorSpace=e.outputColorSpace,o.setRenderTarget(e.renderTarget,e.activeCubeFace,e.activeMipmapLevel),o.setRenderObjectFunction(e.renderObjectFunction),o.setPixelRatio(e.pixelRatio),o.setMRT(e.mrt),o.setClearColor(e.clearColor,e.clearAlpha),o.autoClear=e.autoClear,o.setScissorTest(e.scissorTest)}function Vu(o,e={}){return e.background=o.background,e.backgroundNode=o.backgroundNode,e.overrideMaterial=o.overrideMaterial,e}function zf(o,e){return e=Vu(o,e),o.background=null,o.backgroundNode=null,o.overrideMaterial=null,e}function Wf(o,e){o.background=e.background,o.backgroundNode=e.backgroundNode,o.overrideMaterial=e.overrideMaterial}function qN(o,e,t={}){return t=Iu(o,t),t=Vu(e,t),t}function $f(o,e,t){return t=Of(o,t),t=zf(e,t),t}function Hf(o,e,t){kf(o,t),Wf(e,t)}var gR=Object.freeze({__proto__:null,resetRendererAndSceneState:$f,resetRendererState:Of,resetSceneState:zf,restoreRendererAndSceneState:Hf,restoreRendererState:kf,restoreSceneState:Wf,saveRendererAndSceneState:qN,saveRendererState:Iu,saveSceneState:Vu});const Ic=new WeakMap,KN=b(([o,e,t])=>{let s=Wt.sub(o).length();return s=s.sub(e).div(t.sub(e)),s=s.saturate(),s}),XN=o=>{const e=o.shadow.camera,t=ne("near","float",e).setGroup(k),s=ne("far","float",e).setGroup(k),n=Dh(o);return KN(n,t,s)},YN=o=>{let e=Ic.get(o);if(e===void 0){const t=o.isPointLight?XN(o):null;e=new ce,e.colorNode=P(0,0,0,1),e.depthNode=t,e.isShadowNodeMaterial=!0,e.name="ShadowMaterial",e.fog=!1,Ic.set(o,e)}return e},qf=b(({depthTexture:o,shadowCoord:e})=>K(o,e.xy).compare(e.z)),Kf=b(({depthTexture:o,shadowCoord:e,shadow:t})=>{const s=(m,x)=>K(o,m).compare(x),n=ne("mapSize","vec2",t).setGroup(k),r=ne("radius","float",t).setGroup(k),i=M(1).div(n),a=i.x.negate().mul(r),u=i.y.negate().mul(r),c=i.x.mul(r),l=i.y.mul(r),d=a.div(2),h=u.div(2),p=c.div(2),f=l.div(2);return _e(s(e.xy.add(M(a,u)),e.z),s(e.xy.add(M(0,u)),e.z),s(e.xy.add(M(c,u)),e.z),s(e.xy.add(M(d,h)),e.z),s(e.xy.add(M(0,h)),e.z),s(e.xy.add(M(p,h)),e.z),s(e.xy.add(M(a,0)),e.z),s(e.xy.add(M(d,0)),e.z),s(e.xy,e.z),s(e.xy.add(M(p,0)),e.z),s(e.xy.add(M(c,0)),e.z),s(e.xy.add(M(d,f)),e.z),s(e.xy.add(M(0,f)),e.z),s(e.xy.add(M(p,f)),e.z),s(e.xy.add(M(a,l)),e.z),s(e.xy.add(M(0,l)),e.z),s(e.xy.add(M(c,l)),e.z)).mul(1/17)}),Xf=b(({depthTexture:o,shadowCoord:e,shadow:t})=>{const s=(l,d)=>K(o,l).compare(d),n=ne("mapSize","vec2",t).setGroup(k),r=M(1).div(n),i=r.x,a=r.y,u=e.xy,c=Xt(u.mul(n).add(.5));return u.subAssign(c.mul(r)),_e(s(u,e.z),s(u.add(M(i,0)),e.z),s(u.add(M(0,a)),e.z),s(u.add(r),e.z),Q(s(u.add(M(i.negate(),0)),e.z),s(u.add(M(i.mul(2),0)),e.z),c.x),Q(s(u.add(M(i.negate(),a)),e.z),s(u.add(M(i.mul(2),a)),e.z),c.x),Q(s(u.add(M(0,a.negate())),e.z),s(u.add(M(0,a.mul(2))),e.z),c.y),Q(s(u.add(M(i,a.negate())),e.z),s(u.add(M(i,a.mul(2))),e.z),c.y),Q(Q(s(u.add(M(i.negate(),a.negate())),e.z),s(u.add(M(i.mul(2),a.negate())),e.z),c.x),Q(s(u.add(M(i.negate(),a.mul(2))),e.z),s(u.add(M(i.mul(2),a.mul(2))),e.z),c.x),c.y)).mul(1/9)}),Yf=b(({depthTexture:o,shadowCoord:e})=>{const t=g(1).toVar(),s=K(o).sample(e.xy).rg,n=Ti(e.z,s.x);return z(n.notEqual(g(1)),()=>{const r=e.z.sub(s.x),i=ue(0,s.y.mul(s.y));let a=i.div(i.add(r.mul(r)));a=Et(Y(a,.3).div(.95-.3)),t.assign(Et(ue(n,a)))}),t}),jN=b(({samples:o,radius:e,size:t,shadowPass:s})=>{const n=g(0).toVar(),r=g(0).toVar(),i=o.lessThanEqual(g(1)).select(g(0),g(2).div(o.sub(1))),a=o.lessThanEqual(g(1)).select(g(0),g(-1));te({start:y(0),end:y(o),type:"int",condition:"<"},({i:c})=>{const l=a.add(g(c).mul(i)),d=s.sample(_e(dr.xy,M(0,l).mul(e)).div(t)).x;n.addAssign(d),r.addAssign(d.mul(d))}),n.divAssign(o),r.divAssign(o);const u=Pt(r.sub(n.mul(n)));return M(n,u)}),QN=b(({samples:o,radius:e,size:t,shadowPass:s})=>{const n=g(0).toVar(),r=g(0).toVar(),i=o.lessThanEqual(g(1)).select(g(0),g(2).div(o.sub(1))),a=o.lessThanEqual(g(1)).select(g(0),g(-1));te({start:y(0),end:y(o),type:"int",condition:"<"},({i:c})=>{const l=a.add(g(c).mul(i)),d=s.sample(_e(dr.xy,M(l,0).mul(e)).div(t));n.addAssign(d.x),r.addAssign(_e(d.y.mul(d.y),d.x.mul(d.x)))}),n.divAssign(o),r.divAssign(o);const u=Pt(r.sub(n.mul(n)));return M(n,u)}),ZN=[qf,Kf,Xf,Yf];let eo;const Sr=new Mi;class jf extends HN{static get type(){return"ShadowNode"}constructor(e,t=null){super(e),this.shadow=t||e.shadow,this.shadowMap=null,this.vsmShadowMapVertical=null,this.vsmShadowMapHorizontal=null,this.vsmMaterialVertical=null,this.vsmMaterialHorizontal=null,this._node=null,this.isShadowNode=!0}setupShadowFilter(e,{filterFn:t,depthTexture:s,shadowCoord:n,shadow:r}){const i=n.x.greaterThanEqual(0).and(n.x.lessThanEqual(1)).and(n.y.greaterThanEqual(0)).and(n.y.lessThanEqual(1)).and(n.z.lessThanEqual(1)),a=t({depthTexture:s,shadowCoord:n,shadow:r});return i.select(a,g(1))}setupShadowCoord(e,t){const{shadow:s}=this,{renderer:n}=e,r=ne("bias","float",s).setGroup(k);let i=t,a;if(s.camera.isOrthographicCamera||n.logarithmicDepthBuffer!==!0)i=i.xyz.div(i.w),a=i.z,n.coordinateSystem===ln&&(a=a.mul(2).sub(1));else{const u=i.w;i=i.xy.div(u);const c=ne("near","float",s.camera).setGroup(k),l=ne("far","float",s.camera).setGroup(k);a=yu(u.negate(),c,l)}return i=T(i.x,i.y.oneMinus(),a.add(r)),i}getShadowFilterFn(e){return ZN[e]}setupShadow(e){const{renderer:t}=e,{light:s,shadow:n}=this,r=t.shadowMap.type,i=new vs(n.mapSize.width,n.mapSize.height);i.compareFunction=ua;const a=e.createRenderTarget(n.mapSize.width,n.mapSize.height);if(a.depthTexture=i,n.camera.updateProjectionMatrix(),r===fr){i.compareFunction=null,this.vsmShadowMapVertical=e.createRenderTarget(n.mapSize.width,n.mapSize.height,{format:Ln,type:pt}),this.vsmShadowMapHorizontal=e.createRenderTarget(n.mapSize.width,n.mapSize.height,{format:Ln,type:pt});const N=K(i),v=K(this.vsmShadowMapVertical.texture),w=ne("blurSamples","float",n).setGroup(k),B=ne("radius","float",n).setGroup(k),F=ne("mapSize","vec2",n).setGroup(k);let L=this.vsmMaterialVertical||(this.vsmMaterialVertical=new ce);L.fragmentNode=jN({samples:w,radius:B,size:F,shadowPass:N}).context(e.getSharedContext()),L.name="VSMVertical",L=this.vsmMaterialHorizontal||(this.vsmMaterialHorizontal=new ce),L.fragmentNode=QN({samples:w,radius:B,size:F,shadowPass:v}).context(e.getSharedContext()),L.name="VSMHorizontal"}const u=ne("intensity","float",n).setGroup(k),c=ne("normalBias","float",n).setGroup(k),l=Fu(s).mul(Lu.add(vi.mul(c))),d=this.setupShadowCoord(e,l),h=n.filterNode||this.getShadowFilterFn(t.shadowMap.type)||null;if(h===null)throw new Error("THREE.WebGPURenderer: Shadow map type not supported yet.");const p=r===fr?this.vsmShadowMapHorizontal.texture:i,f=this.setupShadowFilter(e,{filterFn:h,shadowTexture:a.texture,depthTexture:p,shadowCoord:d,shadow:n}),m=K(a.texture,d),x=Q(1,f.rgb.mix(m,1),u.mul(m.a)).toVar();return this.shadowMap=a,this.shadow.map=a,x}setup(e){if(e.renderer.shadowMap.enabled!==!1)return b(()=>{let t=this._node;return this.setupShadowPosition(e),t===null&&(this._node=t=this.setupShadow(e)),e.material.shadowNode&&console.warn('THREE.NodeMaterial: ".shadowNode" is deprecated. Use ".castShadowNode" instead.'),e.material.receivedShadowNode&&(t=e.material.receivedShadowNode(t)),t})()}renderShadow(e){const{shadow:t,shadowMap:s,light:n}=this,{renderer:r,scene:i}=e;t.updateMatrices(n),s.setSize(t.mapSize.width,t.mapSize.height),r.render(i,t.camera)}updateShadow(e){const{shadowMap:t,light:s,shadow:n}=this,{renderer:r,scene:i,camera:a}=e,u=r.shadowMap.type,c=t.depthTexture.version;this._depthVersionCached=c,n.camera.layers.mask=a.layers.mask;const l=r.getRenderObjectFunction(),d=r.getMRT(),h=d?d.has("velocity"):!1;eo=$f(r,i,eo),i.overrideMaterial=YN(s),r.setRenderObjectFunction((p,f,m,x,N,v,...w)=>{(p.castShadow===!0||p.receiveShadow&&u===fr)&&(h&&(ba(p).useVelocity=!0),p.onBeforeShadow(r,p,a,n.camera,x,f.overrideMaterial,v),r.renderObject(p,f,m,x,N,v,...w),p.onAfterShadow(r,p,a,n.camera,x,f.overrideMaterial,v))}),r.setRenderTarget(t),this.renderShadow(e),r.setRenderObjectFunction(l),s.isPointLight!==!0&&u===fr&&this.vsmPass(r),Hf(r,i,eo)}vsmPass(e){const{shadow:t}=this;this.vsmShadowMapVertical.setSize(t.mapSize.width,t.mapSize.height),this.vsmShadowMapHorizontal.setSize(t.mapSize.width,t.mapSize.height),e.setRenderTarget(this.vsmShadowMapVertical),Sr.material=this.vsmMaterialVertical,Sr.render(e),e.setRenderTarget(this.vsmShadowMapHorizontal),Sr.material=this.vsmMaterialHorizontal,Sr.render(e)}dispose(){this.shadowMap.dispose(),this.shadowMap=null,this.vsmShadowMapVertical!==null&&(this.vsmShadowMapVertical.dispose(),this.vsmShadowMapVertical=null,this.vsmMaterialVertical.dispose(),this.vsmMaterialVertical=null),this.vsmShadowMapHorizontal!==null&&(this.vsmShadowMapHorizontal.dispose(),this.vsmShadowMapHorizontal=null,this.vsmMaterialHorizontal.dispose(),this.vsmMaterialHorizontal=null),super.dispose()}updateBefore(e){const{shadow:t}=this;(t.needsUpdate||t.autoUpdate)&&(this.updateShadow(e),this.shadowMap.depthTexture.version===this._depthVersionCached&&(t.needsUpdate=!1))}}const Qf=(o,e)=>E(new jf(o,e));class Es extends hn{static get type(){return"AnalyticLightNode"}constructor(e=null){super(),this.light=e,this.color=new mt,this.colorNode=e&&e.colorNode||V(this.color).setGroup(k),this.baseColorNode=null,this.shadowNode=null,this.shadowColorNode=null,this.isAnalyticLightNode=!0,this.updateType=W.FRAME}customCacheKey(){return di(this.light.id,this.light.castShadow?1:0)}getHash(){return this.light.uuid}setupShadowNode(){return Qf(this.light)}setupShadow(e){const{renderer:t}=e;if(t.shadowMap.enabled===!1)return;let s=this.shadowColorNode;if(s===null){const n=this.light.shadow.shadowNode;let r;n!==void 0?r=E(n):r=this.setupShadowNode(e),this.shadowNode=r,this.shadowColorNode=s=this.colorNode.mul(r),this.baseColorNode=this.colorNode}this.colorNode=s}setup(e){this.colorNode=this.baseColorNode||this.colorNode,this.light.castShadow?e.object.receiveShadow&&this.setupShadow(e):this.shadowNode!==null&&(this.shadowNode.dispose(),this.shadowNode=null,this.shadowColorNode=null)}update(){const{light:e}=this;this.color.copy(e.color).multiplyScalar(e.intensity)}}const Gu=b(o=>{const{lightDistance:e,cutoffDistance:t,decayExponent:s}=o,n=e.pow(s).max(.01).reciprocal();return t.greaterThan(0).select(n.mul(e.div(t).pow4().oneMinus().clamp().pow2()),n)}),JN=new mt,Tt=b(([o,e])=>{const t=o.toVar(),s=oe(t),n=gt(1,ue(s.x,ue(s.y,s.z)));s.mulAssign(n),t.mulAssign(n.mul(e.mul(2).oneMinus()));const r=M(t.xy).toVar(),a=e.mul(1.5).oneMinus();return z(s.z.greaterThanEqual(a),()=>{z(t.z.greaterThan(0),()=>{r.x.assign(Y(4,t.x))})}).ElseIf(s.x.greaterThanEqual(a),()=>{const u=qn(t.x);r.x.assign(t.z.mul(u).add(u.mul(2)))}).ElseIf(s.y.greaterThanEqual(a),()=>{const u=qn(t.y);r.x.assign(t.x.add(u.mul(2)).add(2)),r.y.assign(t.z.mul(u).sub(2))}),M(.125,.25).mul(r).add(M(.375,.75)).flipY()}).setLayout({name:"cubeToUV",type:"vec2",inputs:[{name:"pos",type:"vec3"},{name:"texelSizeY",type:"float"}]}),eS=b(({depthTexture:o,bd3D:e,dp:t,texelSize:s})=>K(o,Tt(e,s.y)).compare(t)),tS=b(({depthTexture:o,bd3D:e,dp:t,texelSize:s,shadow:n})=>{const r=ne("radius","float",n).setGroup(k),i=M(-1,1).mul(r).mul(s.y);return K(o,Tt(e.add(i.xyy),s.y)).compare(t).add(K(o,Tt(e.add(i.yyy),s.y)).compare(t)).add(K(o,Tt(e.add(i.xyx),s.y)).compare(t)).add(K(o,Tt(e.add(i.yyx),s.y)).compare(t)).add(K(o,Tt(e,s.y)).compare(t)).add(K(o,Tt(e.add(i.xxy),s.y)).compare(t)).add(K(o,Tt(e.add(i.yxy),s.y)).compare(t)).add(K(o,Tt(e.add(i.xxx),s.y)).compare(t)).add(K(o,Tt(e.add(i.yxx),s.y)).compare(t)).mul(1/9)}),sS=b(({filterFn:o,depthTexture:e,shadowCoord:t,shadow:s})=>{const n=t.xyz.toVar(),r=n.length(),i=V("float").setGroup(k).onRenderUpdate(()=>s.camera.near),a=V("float").setGroup(k).onRenderUpdate(()=>s.camera.far),u=ne("bias","float",s).setGroup(k),c=V(s.mapSize).setGroup(k),l=g(1).toVar();return z(r.sub(a).lessThanEqual(0).and(r.sub(i).greaterThanEqual(0)),()=>{const d=r.sub(i).div(a.sub(i)).toVar();d.addAssign(u);const h=n.normalize(),p=M(1).div(c.mul(M(4,2)));l.assign(o({depthTexture:e,bd3D:h,dp:d,texelSize:p,shadow:s}))}),l}),Vc=new Me,Ps=new Ye,bn=new Ye;class nS extends jf{static get type(){return"PointShadowNode"}constructor(e,t=null){super(e,t)}getShadowFilterFn(e){return e===gm?eS:tS}setupShadowCoord(e,t){return t}setupShadowFilter(e,{filterFn:t,shadowTexture:s,depthTexture:n,shadowCoord:r,shadow:i}){return sS({filterFn:t,shadowTexture:s,depthTexture:n,shadowCoord:r,shadow:i})}renderShadow(e){const{shadow:t,shadowMap:s,light:n}=this,{renderer:r,scene:i}=e,a=t.getFrameExtents();bn.copy(t.mapSize),bn.multiply(a),s.setSize(bn.width,bn.height),Ps.copy(t.mapSize);const u=r.autoClear,c=r.getClearColor(JN),l=r.getClearAlpha();r.autoClear=!1,r.setClearColor(t.clearColor,t.clearAlpha),r.clear();const d=t.getViewportCount();for(let h=0;hE(new nS(o,e)),Zf=b(({color:o,lightViewPosition:e,cutoffDistance:t,decayExponent:s},n)=>{const r=n.context.lightingModel,i=e.sub(xe),a=i.normalize(),u=i.length(),c=Gu({lightDistance:u,cutoffDistance:t,decayExponent:s}),l=o.mul(c),d=n.context.reflectedLight;r.direct({lightDirection:a,lightColor:l,reflectedLight:d},n.stack,n)});class iS extends Es{static get type(){return"PointLightNode"}constructor(e=null){super(e),this.cutoffDistanceNode=V(0).setGroup(k),this.decayExponentNode=V(2).setGroup(k)}update(e){const{light:t}=this;super.update(e),this.cutoffDistanceNode.value=t.distance,this.decayExponentNode.value=t.decay}setupShadowNode(){return rS(this.light)}setup(e){super.setup(e),Zf({color:this.colorNode,lightViewPosition:Pi(this.light),cutoffDistance:this.cutoffDistanceNode,decayExponent:this.decayExponentNode}).append()}}const oS=b(([o=le()])=>{const e=o.mul(2),t=e.x.floor(),s=e.y.floor();return t.add(s).mod(2).sign()}),Un=b(([o,e,t])=>{const s=g(t).toVar(),n=g(e).toVar(),r=Ht(o).toVar();return Ue(r,n,s)}).setLayout({name:"mx_select",type:"float",inputs:[{name:"b",type:"bool"},{name:"t",type:"float"},{name:"f",type:"float"}]}),ni=b(([o,e])=>{const t=Ht(e).toVar(),s=g(o).toVar();return Ue(t,s.negate(),s)}).setLayout({name:"mx_negate_if",type:"float",inputs:[{name:"val",type:"float"},{name:"b",type:"bool"}]}),Te=b(([o])=>{const e=g(o).toVar();return y(At(e))}).setLayout({name:"mx_floor",type:"int",inputs:[{name:"x",type:"float"}]}),he=b(([o,e])=>{const t=g(o).toVar();return e.assign(Te(t)),t.sub(g(e))}),aS=b(([o,e,t,s,n,r])=>{const i=g(r).toVar(),a=g(n).toVar(),u=g(s).toVar(),c=g(t).toVar(),l=g(e).toVar(),d=g(o).toVar(),h=g(Y(1,a)).toVar();return Y(1,i).mul(d.mul(h).add(l.mul(a))).add(i.mul(c.mul(h).add(u.mul(a))))}).setLayout({name:"mx_bilerp_0",type:"float",inputs:[{name:"v0",type:"float"},{name:"v1",type:"float"},{name:"v2",type:"float"},{name:"v3",type:"float"},{name:"s",type:"float"},{name:"t",type:"float"}]}),uS=b(([o,e,t,s,n,r])=>{const i=g(r).toVar(),a=g(n).toVar(),u=T(s).toVar(),c=T(t).toVar(),l=T(e).toVar(),d=T(o).toVar(),h=g(Y(1,a)).toVar();return Y(1,i).mul(d.mul(h).add(l.mul(a))).add(i.mul(c.mul(h).add(u.mul(a))))}).setLayout({name:"mx_bilerp_1",type:"vec3",inputs:[{name:"v0",type:"vec3"},{name:"v1",type:"vec3"},{name:"v2",type:"vec3"},{name:"v3",type:"vec3"},{name:"s",type:"float"},{name:"t",type:"float"}]}),Jf=Pe([aS,uS]),cS=b(([o,e,t,s,n,r,i,a,u,c,l])=>{const d=g(l).toVar(),h=g(c).toVar(),p=g(u).toVar(),f=g(a).toVar(),m=g(i).toVar(),x=g(r).toVar(),N=g(n).toVar(),v=g(s).toVar(),w=g(t).toVar(),B=g(e).toVar(),F=g(o).toVar(),L=g(Y(1,p)).toVar(),I=g(Y(1,h)).toVar();return g(Y(1,d)).toVar().mul(I.mul(F.mul(L).add(B.mul(p))).add(h.mul(w.mul(L).add(v.mul(p))))).add(d.mul(I.mul(N.mul(L).add(x.mul(p))).add(h.mul(m.mul(L).add(f.mul(p))))))}).setLayout({name:"mx_trilerp_0",type:"float",inputs:[{name:"v0",type:"float"},{name:"v1",type:"float"},{name:"v2",type:"float"},{name:"v3",type:"float"},{name:"v4",type:"float"},{name:"v5",type:"float"},{name:"v6",type:"float"},{name:"v7",type:"float"},{name:"s",type:"float"},{name:"t",type:"float"},{name:"r",type:"float"}]}),lS=b(([o,e,t,s,n,r,i,a,u,c,l])=>{const d=g(l).toVar(),h=g(c).toVar(),p=g(u).toVar(),f=T(a).toVar(),m=T(i).toVar(),x=T(r).toVar(),N=T(n).toVar(),v=T(s).toVar(),w=T(t).toVar(),B=T(e).toVar(),F=T(o).toVar(),L=g(Y(1,p)).toVar(),I=g(Y(1,h)).toVar();return g(Y(1,d)).toVar().mul(I.mul(F.mul(L).add(B.mul(p))).add(h.mul(w.mul(L).add(v.mul(p))))).add(d.mul(I.mul(N.mul(L).add(x.mul(p))).add(h.mul(m.mul(L).add(f.mul(p))))))}).setLayout({name:"mx_trilerp_1",type:"vec3",inputs:[{name:"v0",type:"vec3"},{name:"v1",type:"vec3"},{name:"v2",type:"vec3"},{name:"v3",type:"vec3"},{name:"v4",type:"vec3"},{name:"v5",type:"vec3"},{name:"v6",type:"vec3"},{name:"v7",type:"vec3"},{name:"s",type:"float"},{name:"t",type:"float"},{name:"r",type:"float"}]}),eg=Pe([cS,lS]),dS=b(([o,e,t])=>{const s=g(t).toVar(),n=g(e).toVar(),r=D(o).toVar(),i=D(r.bitAnd(D(7))).toVar(),a=g(Un(i.lessThan(D(4)),n,s)).toVar(),u=g($(2,Un(i.lessThan(D(4)),s,n))).toVar();return ni(a,Ht(i.bitAnd(D(1)))).add(ni(u,Ht(i.bitAnd(D(2)))))}).setLayout({name:"mx_gradient_float_0",type:"float",inputs:[{name:"hash",type:"uint"},{name:"x",type:"float"},{name:"y",type:"float"}]}),hS=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=g(e).toVar(),a=D(o).toVar(),u=D(a.bitAnd(D(15))).toVar(),c=g(Un(u.lessThan(D(8)),i,r)).toVar(),l=g(Un(u.lessThan(D(4)),r,Un(u.equal(D(12)).or(u.equal(D(14))),i,n))).toVar();return ni(c,Ht(u.bitAnd(D(1)))).add(ni(l,Ht(u.bitAnd(D(2)))))}).setLayout({name:"mx_gradient_float_1",type:"float",inputs:[{name:"hash",type:"uint"},{name:"x",type:"float"},{name:"y",type:"float"},{name:"z",type:"float"}]}),Ee=Pe([dS,hS]),pS=b(([o,e,t])=>{const s=g(t).toVar(),n=g(e).toVar(),r=dn(o).toVar();return T(Ee(r.x,n,s),Ee(r.y,n,s),Ee(r.z,n,s))}).setLayout({name:"mx_gradient_vec3_0",type:"vec3",inputs:[{name:"hash",type:"uvec3"},{name:"x",type:"float"},{name:"y",type:"float"}]}),fS=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=g(e).toVar(),a=dn(o).toVar();return T(Ee(a.x,i,r,n),Ee(a.y,i,r,n),Ee(a.z,i,r,n))}).setLayout({name:"mx_gradient_vec3_1",type:"vec3",inputs:[{name:"hash",type:"uvec3"},{name:"x",type:"float"},{name:"y",type:"float"},{name:"z",type:"float"}]}),nt=Pe([pS,fS]),gS=b(([o])=>{const e=g(o).toVar();return $(.6616,e)}).setLayout({name:"mx_gradient_scale2d_0",type:"float",inputs:[{name:"v",type:"float"}]}),mS=b(([o])=>{const e=g(o).toVar();return $(.982,e)}).setLayout({name:"mx_gradient_scale3d_0",type:"float",inputs:[{name:"v",type:"float"}]}),yS=b(([o])=>{const e=T(o).toVar();return $(.6616,e)}).setLayout({name:"mx_gradient_scale2d_1",type:"vec3",inputs:[{name:"v",type:"vec3"}]}),tg=Pe([gS,yS]),xS=b(([o])=>{const e=T(o).toVar();return $(.982,e)}).setLayout({name:"mx_gradient_scale3d_1",type:"vec3",inputs:[{name:"v",type:"vec3"}]}),sg=Pe([mS,xS]),tt=b(([o,e])=>{const t=y(e).toVar(),s=D(o).toVar();return s.shiftLeft(t).bitOr(s.shiftRight(y(32).sub(t)))}).setLayout({name:"mx_rotl32",type:"uint",inputs:[{name:"x",type:"uint"},{name:"k",type:"int"}]}),ng=b(([o,e,t])=>{o.subAssign(t),o.bitXorAssign(tt(t,y(4))),t.addAssign(e),e.subAssign(o),e.bitXorAssign(tt(o,y(6))),o.addAssign(t),t.subAssign(e),t.bitXorAssign(tt(e,y(8))),e.addAssign(o),o.subAssign(t),o.bitXorAssign(tt(t,y(16))),t.addAssign(e),e.subAssign(o),e.bitXorAssign(tt(o,y(19))),o.addAssign(t),t.subAssign(e),t.bitXorAssign(tt(e,y(4))),e.addAssign(o)}),pr=b(([o,e,t])=>{const s=D(t).toVar(),n=D(e).toVar(),r=D(o).toVar();return s.bitXorAssign(n),s.subAssign(tt(n,y(14))),r.bitXorAssign(s),r.subAssign(tt(s,y(11))),n.bitXorAssign(r),n.subAssign(tt(r,y(25))),s.bitXorAssign(n),s.subAssign(tt(n,y(16))),r.bitXorAssign(s),r.subAssign(tt(s,y(4))),n.bitXorAssign(r),n.subAssign(tt(r,y(14))),s.bitXorAssign(n),s.subAssign(tt(n,y(24))),s}).setLayout({name:"mx_bjfinal",type:"uint",inputs:[{name:"a",type:"uint"},{name:"b",type:"uint"},{name:"c",type:"uint"}]}),Ge=b(([o])=>{const e=D(o).toVar();return g(e).div(g(D(y(4294967295))))}).setLayout({name:"mx_bits_to_01",type:"float",inputs:[{name:"bits",type:"uint"}]}),Rt=b(([o])=>{const e=g(o).toVar();return e.mul(e).mul(e).mul(e.mul(e.mul(6).sub(15)).add(10))}).setLayout({name:"mx_fade",type:"float",inputs:[{name:"t",type:"float"}]}),TS=b(([o])=>{const e=y(o).toVar(),t=D(D(1)).toVar(),s=D(D(y(3735928559)).add(t.shiftLeft(D(2))).add(D(13))).toVar();return pr(s.add(D(e)),s,s)}).setLayout({name:"mx_hash_int_0",type:"uint",inputs:[{name:"x",type:"int"}]}),_S=b(([o,e])=>{const t=y(e).toVar(),s=y(o).toVar(),n=D(D(2)).toVar(),r=D().toVar(),i=D().toVar(),a=D().toVar();return r.assign(i.assign(a.assign(D(y(3735928559)).add(n.shiftLeft(D(2))).add(D(13))))),r.addAssign(D(s)),i.addAssign(D(t)),pr(r,i,a)}).setLayout({name:"mx_hash_int_1",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"}]}),bS=b(([o,e,t])=>{const s=y(t).toVar(),n=y(e).toVar(),r=y(o).toVar(),i=D(D(3)).toVar(),a=D().toVar(),u=D().toVar(),c=D().toVar();return a.assign(u.assign(c.assign(D(y(3735928559)).add(i.shiftLeft(D(2))).add(D(13))))),a.addAssign(D(r)),u.addAssign(D(n)),c.addAssign(D(s)),pr(a,u,c)}).setLayout({name:"mx_hash_int_2",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"}]}),NS=b(([o,e,t,s])=>{const n=y(s).toVar(),r=y(t).toVar(),i=y(e).toVar(),a=y(o).toVar(),u=D(D(4)).toVar(),c=D().toVar(),l=D().toVar(),d=D().toVar();return c.assign(l.assign(d.assign(D(y(3735928559)).add(u.shiftLeft(D(2))).add(D(13))))),c.addAssign(D(a)),l.addAssign(D(i)),d.addAssign(D(r)),ng(c,l,d),c.addAssign(D(n)),pr(c,l,d)}).setLayout({name:"mx_hash_int_3",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xx",type:"int"}]}),SS=b(([o,e,t,s,n])=>{const r=y(n).toVar(),i=y(s).toVar(),a=y(t).toVar(),u=y(e).toVar(),c=y(o).toVar(),l=D(D(5)).toVar(),d=D().toVar(),h=D().toVar(),p=D().toVar();return d.assign(h.assign(p.assign(D(y(3735928559)).add(l.shiftLeft(D(2))).add(D(13))))),d.addAssign(D(c)),h.addAssign(D(u)),p.addAssign(D(a)),ng(d,h,p),d.addAssign(D(i)),h.addAssign(D(r)),pr(d,h,p)}).setLayout({name:"mx_hash_int_4",type:"uint",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xx",type:"int"},{name:"yy",type:"int"}]}),re=Pe([TS,_S,bS,NS,SS]),vS=b(([o,e])=>{const t=y(e).toVar(),s=y(o).toVar(),n=D(re(s,t)).toVar(),r=dn().toVar();return r.x.assign(n.bitAnd(y(255))),r.y.assign(n.shiftRight(y(8)).bitAnd(y(255))),r.z.assign(n.shiftRight(y(16)).bitAnd(y(255))),r}).setLayout({name:"mx_hash_vec3_0",type:"uvec3",inputs:[{name:"x",type:"int"},{name:"y",type:"int"}]}),AS=b(([o,e,t])=>{const s=y(t).toVar(),n=y(e).toVar(),r=y(o).toVar(),i=D(re(r,n,s)).toVar(),a=dn().toVar();return a.x.assign(i.bitAnd(y(255))),a.y.assign(i.shiftRight(y(8)).bitAnd(y(255))),a.z.assign(i.shiftRight(y(16)).bitAnd(y(255))),a}).setLayout({name:"mx_hash_vec3_1",type:"uvec3",inputs:[{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"}]}),rt=Pe([vS,AS]),RS=b(([o])=>{const e=M(o).toVar(),t=y().toVar(),s=y().toVar(),n=g(he(e.x,t)).toVar(),r=g(he(e.y,s)).toVar(),i=g(Rt(n)).toVar(),a=g(Rt(r)).toVar(),u=g(Jf(Ee(re(t,s),n,r),Ee(re(t.add(y(1)),s),n.sub(1),r),Ee(re(t,s.add(y(1))),n,r.sub(1)),Ee(re(t.add(y(1)),s.add(y(1))),n.sub(1),r.sub(1)),i,a)).toVar();return tg(u)}).setLayout({name:"mx_perlin_noise_float_0",type:"float",inputs:[{name:"p",type:"vec2"}]}),CS=b(([o])=>{const e=T(o).toVar(),t=y().toVar(),s=y().toVar(),n=y().toVar(),r=g(he(e.x,t)).toVar(),i=g(he(e.y,s)).toVar(),a=g(he(e.z,n)).toVar(),u=g(Rt(r)).toVar(),c=g(Rt(i)).toVar(),l=g(Rt(a)).toVar(),d=g(eg(Ee(re(t,s,n),r,i,a),Ee(re(t.add(y(1)),s,n),r.sub(1),i,a),Ee(re(t,s.add(y(1)),n),r,i.sub(1),a),Ee(re(t.add(y(1)),s.add(y(1)),n),r.sub(1),i.sub(1),a),Ee(re(t,s,n.add(y(1))),r,i,a.sub(1)),Ee(re(t.add(y(1)),s,n.add(y(1))),r.sub(1),i,a.sub(1)),Ee(re(t,s.add(y(1)),n.add(y(1))),r,i.sub(1),a.sub(1)),Ee(re(t.add(y(1)),s.add(y(1)),n.add(y(1))),r.sub(1),i.sub(1),a.sub(1)),u,c,l)).toVar();return sg(d)}).setLayout({name:"mx_perlin_noise_float_1",type:"float",inputs:[{name:"p",type:"vec3"}]}),Ou=Pe([RS,CS]),ES=b(([o])=>{const e=M(o).toVar(),t=y().toVar(),s=y().toVar(),n=g(he(e.x,t)).toVar(),r=g(he(e.y,s)).toVar(),i=g(Rt(n)).toVar(),a=g(Rt(r)).toVar(),u=T(Jf(nt(rt(t,s),n,r),nt(rt(t.add(y(1)),s),n.sub(1),r),nt(rt(t,s.add(y(1))),n,r.sub(1)),nt(rt(t.add(y(1)),s.add(y(1))),n.sub(1),r.sub(1)),i,a)).toVar();return tg(u)}).setLayout({name:"mx_perlin_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"vec2"}]}),wS=b(([o])=>{const e=T(o).toVar(),t=y().toVar(),s=y().toVar(),n=y().toVar(),r=g(he(e.x,t)).toVar(),i=g(he(e.y,s)).toVar(),a=g(he(e.z,n)).toVar(),u=g(Rt(r)).toVar(),c=g(Rt(i)).toVar(),l=g(Rt(a)).toVar(),d=T(eg(nt(rt(t,s,n),r,i,a),nt(rt(t.add(y(1)),s,n),r.sub(1),i,a),nt(rt(t,s.add(y(1)),n),r,i.sub(1),a),nt(rt(t.add(y(1)),s.add(y(1)),n),r.sub(1),i.sub(1),a),nt(rt(t,s,n.add(y(1))),r,i,a.sub(1)),nt(rt(t.add(y(1)),s,n.add(y(1))),r.sub(1),i,a.sub(1)),nt(rt(t,s.add(y(1)),n.add(y(1))),r,i.sub(1),a.sub(1)),nt(rt(t.add(y(1)),s.add(y(1)),n.add(y(1))),r.sub(1),i.sub(1),a.sub(1)),u,c,l)).toVar();return sg(d)}).setLayout({name:"mx_perlin_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec3"}]}),ku=Pe([ES,wS]),MS=b(([o])=>{const e=g(o).toVar(),t=y(Te(e)).toVar();return Ge(re(t))}).setLayout({name:"mx_cell_noise_float_0",type:"float",inputs:[{name:"p",type:"float"}]}),BS=b(([o])=>{const e=M(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar();return Ge(re(t,s))}).setLayout({name:"mx_cell_noise_float_1",type:"float",inputs:[{name:"p",type:"vec2"}]}),FS=b(([o])=>{const e=T(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar(),n=y(Te(e.z)).toVar();return Ge(re(t,s,n))}).setLayout({name:"mx_cell_noise_float_2",type:"float",inputs:[{name:"p",type:"vec3"}]}),US=b(([o])=>{const e=P(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar(),n=y(Te(e.z)).toVar(),r=y(Te(e.w)).toVar();return Ge(re(t,s,n,r))}).setLayout({name:"mx_cell_noise_float_3",type:"float",inputs:[{name:"p",type:"vec4"}]}),PS=Pe([MS,BS,FS,US]),DS=b(([o])=>{const e=g(o).toVar(),t=y(Te(e)).toVar();return T(Ge(re(t,y(0))),Ge(re(t,y(1))),Ge(re(t,y(2))))}).setLayout({name:"mx_cell_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"float"}]}),LS=b(([o])=>{const e=M(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar();return T(Ge(re(t,s,y(0))),Ge(re(t,s,y(1))),Ge(re(t,s,y(2))))}).setLayout({name:"mx_cell_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec2"}]}),IS=b(([o])=>{const e=T(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar(),n=y(Te(e.z)).toVar();return T(Ge(re(t,s,n,y(0))),Ge(re(t,s,n,y(1))),Ge(re(t,s,n,y(2))))}).setLayout({name:"mx_cell_noise_vec3_2",type:"vec3",inputs:[{name:"p",type:"vec3"}]}),VS=b(([o])=>{const e=P(o).toVar(),t=y(Te(e.x)).toVar(),s=y(Te(e.y)).toVar(),n=y(Te(e.z)).toVar(),r=y(Te(e.w)).toVar();return T(Ge(re(t,s,n,r,y(0))),Ge(re(t,s,n,r,y(1))),Ge(re(t,s,n,r,y(2))))}).setLayout({name:"mx_cell_noise_vec3_3",type:"vec3",inputs:[{name:"p",type:"vec4"}]}),rg=Pe([DS,LS,IS,VS]),ri=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=y(e).toVar(),a=T(o).toVar(),u=g(0).toVar(),c=g(1).toVar();return te(i,()=>{u.addAssign(c.mul(Ou(a))),c.mulAssign(n),a.mulAssign(r)}),u}).setLayout({name:"mx_fractal_noise_float",type:"float",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),ig=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=y(e).toVar(),a=T(o).toVar(),u=T(0).toVar(),c=g(1).toVar();return te(i,()=>{u.addAssign(c.mul(ku(a))),c.mulAssign(n),a.mulAssign(r)}),u}).setLayout({name:"mx_fractal_noise_vec3",type:"vec3",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),GS=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=y(e).toVar(),a=T(o).toVar();return M(ri(a,i,r,n),ri(a.add(T(y(19),y(193),y(17))),i,r,n))}).setLayout({name:"mx_fractal_noise_vec2",type:"vec2",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),OS=b(([o,e,t,s])=>{const n=g(s).toVar(),r=g(t).toVar(),i=y(e).toVar(),a=T(o).toVar(),u=T(ig(a,i,r,n)).toVar(),c=g(ri(a.add(T(y(19),y(193),y(17))),i,r,n)).toVar();return P(u,c)}).setLayout({name:"mx_fractal_noise_vec4",type:"vec4",inputs:[{name:"p",type:"vec3"},{name:"octaves",type:"int"},{name:"lacunarity",type:"float"},{name:"diminish",type:"float"}]}),kS=b(([o,e,t,s,n,r,i])=>{const a=y(i).toVar(),u=g(r).toVar(),c=y(n).toVar(),l=y(s).toVar(),d=y(t).toVar(),h=y(e).toVar(),p=M(o).toVar(),f=T(rg(M(h.add(l),d.add(c)))).toVar(),m=M(f.x,f.y).toVar();m.subAssign(.5),m.mulAssign(u),m.addAssign(.5);const x=M(M(g(h),g(d)).add(m)).toVar(),N=M(x.sub(p)).toVar();return z(a.equal(y(2)),()=>oe(N.x).add(oe(N.y))),z(a.equal(y(3)),()=>ue(oe(N.x),oe(N.y))),is(N,N)}).setLayout({name:"mx_worley_distance_0",type:"float",inputs:[{name:"p",type:"vec2"},{name:"x",type:"int"},{name:"y",type:"int"},{name:"xoff",type:"int"},{name:"yoff",type:"int"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),zS=b(([o,e,t,s,n,r,i,a,u])=>{const c=y(u).toVar(),l=g(a).toVar(),d=y(i).toVar(),h=y(r).toVar(),p=y(n).toVar(),f=y(s).toVar(),m=y(t).toVar(),x=y(e).toVar(),N=T(o).toVar(),v=T(rg(T(x.add(p),m.add(h),f.add(d)))).toVar();v.subAssign(.5),v.mulAssign(l),v.addAssign(.5);const w=T(T(g(x),g(m),g(f)).add(v)).toVar(),B=T(w.sub(N)).toVar();return z(c.equal(y(2)),()=>oe(B.x).add(oe(B.y)).add(oe(B.z))),z(c.equal(y(3)),()=>ue(ue(oe(B.x),oe(B.y)),oe(B.z))),is(B,B)}).setLayout({name:"mx_worley_distance_1",type:"float",inputs:[{name:"p",type:"vec3"},{name:"x",type:"int"},{name:"y",type:"int"},{name:"z",type:"int"},{name:"xoff",type:"int"},{name:"yoff",type:"int"},{name:"zoff",type:"int"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),pn=Pe([kS,zS]),WS=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=M(o).toVar(),i=y().toVar(),a=y().toVar(),u=M(he(r.x,i),he(r.y,a)).toVar(),c=g(1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:l})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:d})=>{const h=g(pn(u,l,d,i,a,n,s)).toVar();c.assign(Re(c,h))})}),z(s.equal(y(0)),()=>{c.assign(Pt(c))}),c}).setLayout({name:"mx_worley_noise_float_0",type:"float",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),$S=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=M(o).toVar(),i=y().toVar(),a=y().toVar(),u=M(he(r.x,i),he(r.y,a)).toVar(),c=M(1e6,1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:l})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:d})=>{const h=g(pn(u,l,d,i,a,n,s)).toVar();z(h.lessThan(c.x),()=>{c.y.assign(c.x),c.x.assign(h)}).ElseIf(h.lessThan(c.y),()=>{c.y.assign(h)})})}),z(s.equal(y(0)),()=>{c.assign(Pt(c))}),c}).setLayout({name:"mx_worley_noise_vec2_0",type:"vec2",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),HS=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=M(o).toVar(),i=y().toVar(),a=y().toVar(),u=M(he(r.x,i),he(r.y,a)).toVar(),c=T(1e6,1e6,1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:l})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:d})=>{const h=g(pn(u,l,d,i,a,n,s)).toVar();z(h.lessThan(c.x),()=>{c.z.assign(c.y),c.y.assign(c.x),c.x.assign(h)}).ElseIf(h.lessThan(c.y),()=>{c.z.assign(c.y),c.y.assign(h)}).ElseIf(h.lessThan(c.z),()=>{c.z.assign(h)})})}),z(s.equal(y(0)),()=>{c.assign(Pt(c))}),c}).setLayout({name:"mx_worley_noise_vec3_0",type:"vec3",inputs:[{name:"p",type:"vec2"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),qS=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=T(o).toVar(),i=y().toVar(),a=y().toVar(),u=y().toVar(),c=T(he(r.x,i),he(r.y,a),he(r.z,u)).toVar(),l=g(1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:d})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:h})=>{te({start:-1,end:y(1),name:"z",condition:"<="},({z:p})=>{const f=g(pn(c,d,h,p,i,a,u,n,s)).toVar();l.assign(Re(l,f))})})}),z(s.equal(y(0)),()=>{l.assign(Pt(l))}),l}).setLayout({name:"mx_worley_noise_float_1",type:"float",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),KS=Pe([WS,qS]),XS=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=T(o).toVar(),i=y().toVar(),a=y().toVar(),u=y().toVar(),c=T(he(r.x,i),he(r.y,a),he(r.z,u)).toVar(),l=M(1e6,1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:d})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:h})=>{te({start:-1,end:y(1),name:"z",condition:"<="},({z:p})=>{const f=g(pn(c,d,h,p,i,a,u,n,s)).toVar();z(f.lessThan(l.x),()=>{l.y.assign(l.x),l.x.assign(f)}).ElseIf(f.lessThan(l.y),()=>{l.y.assign(f)})})})}),z(s.equal(y(0)),()=>{l.assign(Pt(l))}),l}).setLayout({name:"mx_worley_noise_vec2_1",type:"vec2",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),YS=Pe([$S,XS]),jS=b(([o,e,t])=>{const s=y(t).toVar(),n=g(e).toVar(),r=T(o).toVar(),i=y().toVar(),a=y().toVar(),u=y().toVar(),c=T(he(r.x,i),he(r.y,a),he(r.z,u)).toVar(),l=T(1e6,1e6,1e6).toVar();return te({start:-1,end:y(1),name:"x",condition:"<="},({x:d})=>{te({start:-1,end:y(1),name:"y",condition:"<="},({y:h})=>{te({start:-1,end:y(1),name:"z",condition:"<="},({z:p})=>{const f=g(pn(c,d,h,p,i,a,u,n,s)).toVar();z(f.lessThan(l.x),()=>{l.z.assign(l.y),l.y.assign(l.x),l.x.assign(f)}).ElseIf(f.lessThan(l.y),()=>{l.z.assign(l.y),l.y.assign(f)}).ElseIf(f.lessThan(l.z),()=>{l.z.assign(f)})})})}),z(s.equal(y(0)),()=>{l.assign(Pt(l))}),l}).setLayout({name:"mx_worley_noise_vec3_1",type:"vec3",inputs:[{name:"p",type:"vec3"},{name:"jitter",type:"float"},{name:"metric",type:"int"}]}),QS=Pe([HS,jS]),ZS=b(([o])=>{const e=o.y,t=o.z,s=T().toVar();return z(e.lessThan(1e-4),()=>{s.assign(T(t,t,t))}).Else(()=>{let n=o.x;n=n.sub(At(n)).mul(6).toVar();const r=y(Ka(n)),i=n.sub(g(r)),a=t.mul(e.oneMinus()),u=t.mul(e.mul(i).oneMinus()),c=t.mul(e.mul(i.oneMinus()).oneMinus());z(r.equal(y(0)),()=>{s.assign(T(t,c,a))}).ElseIf(r.equal(y(1)),()=>{s.assign(T(u,t,a))}).ElseIf(r.equal(y(2)),()=>{s.assign(T(a,t,c))}).ElseIf(r.equal(y(3)),()=>{s.assign(T(a,u,t))}).ElseIf(r.equal(y(4)),()=>{s.assign(T(c,a,t))}).Else(()=>{s.assign(T(t,a,u))})}),s}).setLayout({name:"mx_hsvtorgb",type:"vec3",inputs:[{name:"hsv",type:"vec3"}]}),JS=b(([o])=>{const e=T(o).toVar(),t=g(e.x).toVar(),s=g(e.y).toVar(),n=g(e.z).toVar(),r=g(Re(t,Re(s,n))).toVar(),i=g(ue(t,ue(s,n))).toVar(),a=g(i.sub(r)).toVar(),u=g().toVar(),c=g().toVar(),l=g().toVar();return l.assign(i),z(i.greaterThan(0),()=>{c.assign(a.div(i))}).Else(()=>{c.assign(0)}),z(c.lessThanEqual(0),()=>{u.assign(0)}).Else(()=>{z(t.greaterThanEqual(i),()=>{u.assign(s.sub(n).div(a))}).ElseIf(s.greaterThanEqual(i),()=>{u.assign(_e(2,n.sub(t).div(a)))}).Else(()=>{u.assign(_e(4,t.sub(s).div(a)))}),u.mulAssign(1/6),z(u.lessThan(0),()=>{u.addAssign(1)})}),T(u,c,l)}).setLayout({name:"mx_rgbtohsv",type:"vec3",inputs:[{name:"c",type:"vec3"}]}),ev=b(([o])=>{const e=T(o).toVar(),t=wa(Oa(e,T(.04045))).toVar(),s=T(e.div(12.92)).toVar(),n=T(ht(ue(e.add(T(.055)),T(0)).div(1.055),T(2.4))).toVar();return Q(s,n,t)}).setLayout({name:"mx_srgb_texture_to_lin_rec709",type:"vec3",inputs:[{name:"color",type:"vec3"}]}),og=(o,e)=>{o=g(o),e=g(e);const t=M(e.dFdx(),e.dFdy()).length().mul(.7071067811865476);return ct(o.sub(t),o.add(t),e)},ag=(o,e,t,s)=>Q(o,e,t[s].clamp()),tv=(o,e,t=le())=>ag(o,e,t,"x"),sv=(o,e,t=le())=>ag(o,e,t,"y"),ug=(o,e,t,s,n)=>Q(o,e,og(t,s[n])),nv=(o,e,t,s=le())=>ug(o,e,t,s,"x"),rv=(o,e,t,s=le())=>ug(o,e,t,s,"y"),iv=(o=1,e=0,t=le())=>t.mul(o).add(e),ov=(o,e=1)=>(o=g(o),o.abs().pow(e).mul(o.sign())),av=(o,e=1,t=.5)=>g(o).sub(t).mul(e).add(t),uv=(o=le(),e=1,t=0)=>Ou(o.convert("vec2|vec3")).mul(e).add(t),cv=(o=le(),e=1,t=0)=>ku(o.convert("vec2|vec3")).mul(e).add(t),lv=(o=le(),e=1,t=0)=>(o=o.convert("vec2|vec3"),P(ku(o),Ou(o.add(M(19,73)))).mul(e).add(t)),dv=(o=le(),e=1)=>KS(o.convert("vec2|vec3"),e,y(1)),hv=(o=le(),e=1)=>YS(o.convert("vec2|vec3"),e,y(1)),pv=(o=le(),e=1)=>QS(o.convert("vec2|vec3"),e,y(1)),fv=(o=le())=>PS(o.convert("vec2|vec3")),gv=(o=le(),e=3,t=2,s=.5,n=1)=>ri(o,y(e),t,s).mul(n),mv=(o=le(),e=3,t=2,s=.5,n=1)=>GS(o,y(e),t,s).mul(n),yv=(o=le(),e=3,t=2,s=.5,n=1)=>ig(o,y(e),t,s).mul(n),xv=(o=le(),e=3,t=2,s=.5,n=1)=>OS(o,y(e),t,s).mul(n),Tv=b(([o,e,t])=>{const s=qt(o).toVar("nDir"),n=Y(g(.5).mul(e.sub(t)),Wt).div(s).toVar("rbmax"),r=Y(g(-.5).mul(e.sub(t)),Wt).div(s).toVar("rbmin"),i=T().toVar("rbminmax");i.x=s.x.greaterThan(g(0)).select(n.x,r.x),i.y=s.y.greaterThan(g(0)).select(n.y,r.y),i.z=s.z.greaterThan(g(0)).select(n.z,r.z);const a=Re(Re(i.x,i.y),i.z).toVar("correction");return Wt.add(s.mul(a)).toVar("boxIntersection").sub(t)}),cg=b(([o,e])=>{const t=o.x,s=o.y,n=o.z;let r=e.element(0).mul(.886227);return r=r.add(e.element(1).mul(2*.511664).mul(s)),r=r.add(e.element(2).mul(2*.511664).mul(n)),r=r.add(e.element(3).mul(2*.511664).mul(t)),r=r.add(e.element(4).mul(2*.429043).mul(t).mul(s)),r=r.add(e.element(5).mul(2*.429043).mul(s).mul(n)),r=r.add(e.element(6).mul(n.mul(n).mul(.743125).sub(.247708))),r=r.add(e.element(7).mul(2*.429043).mul(t).mul(n)),r=r.add(e.element(8).mul(.429043).mul($(t,t).sub($(s,s)))),r});var mR=Object.freeze({__proto__:null,BRDF_GGX:jo,BRDF_Lambert:Ns,BasicShadowFilter:qf,Break:pu,Continue:Ex,DFGApprox:Nu,D_GGX:Xp,Discard:Fh,EPSILON:Gd,F_Schlick:un,Fn:b,INFINITY:Ny,If:z,Loop:te,NodeAccess:Ve,NodeShaderStage:Oo,NodeType:Zm,NodeUpdateType:W,PCFShadowFilter:Kf,PCFSoftShadowFilter:Xf,PI:Qr,PI2:Sy,Return:Vy,Schlick_to_F0:jp,ScriptableNodeResources:Wr,ShaderNode:Cn,TBNViewMatrix:gs,VSMShadowFilter:Yf,V_GGX_SmithCorrelated:Kp,abs:oe,acesFilmicToneMapping:Bf,acos:Hd,add:_e,addMethodChaining:R,addNodeElement:Oy,agxToneMapping:Ff,all:ka,alphaT:Xr,and:Ed,anisotropy:Zt,anisotropyB:_s,anisotropyT:En,any:Od,append:ud,arrayBuffer:yy,asin:$d,assign:bd,atan:$a,atan2:lh,atomicAdd:DN,atomicAnd:GN,atomicFunc:Yt,atomicMax:IN,atomicMin:VN,atomicOr:ON,atomicStore:PN,atomicSub:LN,atomicXor:kN,attenuationColor:Ia,attenuationDistance:La,attribute:we,attributeArray:Eb,backgroundBlurriness:Tf,backgroundIntensity:sa,backgroundRotation:_f,batch:Mp,billboarding:ab,bitAnd:Fd,bitNot:Ud,bitOr:Pd,bitXor:Dd,bitangentGeometry:lx,bitangentLocal:dx,bitangentView:Yh,bitangentWorld:hx,bitcast:vy,blendBurn:Sf,blendColor:Ob,blendDodge:vf,blendOverlay:Rf,blendScreen:Af,blur:sf,bool:Ht,buffer:ir,bufferAttribute:nr,bumpMap:Jh,burn:kb,bvec2:dd,bvec3:wa,bvec4:gd,bypass:Eh,cache:Mn,call:Nd,cameraFar:es,cameraNear:Jt,cameraNormalMatrix:qy,cameraPosition:su,cameraProjectionMatrix:He,cameraProjectionMatrixInverse:$y,cameraViewMatrix:je,cameraWorldMatrix:Hy,cbrt:ih,cdl:Yb,ceil:xi,checker:oS,cineonToneMapping:Mf,clamp:Et,clearcoat:Kr,clearcoatRoughness:zn,code:Fi,color:cd,colorSpaceToWorking:eu,colorToDirection:rT,compute:Ch,cond:dh,context:bi,convert:yd,convertColorSpace:wy,convertToTexture:_b,cos:It,cross:_i,cubeTexture:on,dFdx:Ha,dFdy:qa,dashSize:bs,defaultBuildStages:ko,defaultShaderStages:sd,defined:Gn,degrees:zd,deltaTime:gf,densityFog:xN,densityFogFactor:Mu,depth:xu,depthPass:tN,difference:th,diffuseColor:ee,directPointLight:Zf,directionToColor:Op,dispersion:Va,distance:eh,div:gt,dodge:zb,dot:is,drawIndex:Cp,dynamicBufferAttribute:Rh,element:md,emissive:Ho,equal:Sd,equals:Zd,equirectUV:Tu,exp:za,exp2:rn,expression:rs,faceDirection:rr,faceForward:Za,faceforward:Ay,float:g,floor:At,fog:Xn,fract:Xt,frameGroup:_d,frameId:Q_,frontFacing:Gh,fwidth:jd,gain:$_,gapSize:Hn,getConstNodeType:ad,getCurrentStack:Ea,getDirection:ef,getDistanceAttenuation:Gu,getGeometryRoughness:qp,getNormalFromDepth:Nb,getParallaxCorrectNormal:Tv,getRoughness:bu,getScreenPosition:bb,getShIrradianceAt:cg,getTextureIndex:pf,getViewPosition:ks,glsl:lN,glslFn:dN,grayscale:Hb,greaterThan:Oa,greaterThanEqual:Cd,hash:W_,highpModelNormalViewMatrix:sx,highpModelViewMatrix:tx,hue:Xb,instance:Sx,instanceIndex:lr,instancedArray:wb,instancedBufferAttribute:Zr,instancedDynamicBufferAttribute:qo,instancedMesh:wp,int:y,inverseSqrt:Wa,inversesqrt:Ry,invocationLocalIndex:Nx,invocationSubgroupIndex:bx,ior:wn,iridescence:mi,iridescenceIOR:Ua,iridescenceThickness:Pa,ivec2:Ae,ivec3:hd,ivec4:pd,js:uN,label:ph,length:zt,lengthSq:ja,lessThan:Ad,lessThanEqual:Rd,lightPosition:Uu,lightProjectionUV:Vf,lightShadowMatrix:Fu,lightTargetDirection:Pu,lightTargetPosition:Gf,lightViewPosition:Pi,lightingContext:Pp,lights:$N,linearDepth:ei,linearToneMapping:Ef,localId:vN,log:yi,log2:vt,logarithmicDepthToViewZ:zx,loop:wx,luminance:Eu,mat2:fi,mat3:Oe,mat4:Ts,matcapUV:of,materialAO:Ap,materialAlphaTest:ep,materialAnisotropy:fp,materialAnisotropyVector:Os,materialAttenuationColor:Np,materialAttenuationDistance:bp,materialClearcoat:up,materialClearcoatNormal:lp,materialClearcoatRoughness:cp,materialColor:an,materialDispersion:vp,materialEmissive:sp,materialIOR:_p,materialIridescence:gp,materialIridescenceIOR:mp,materialIridescenceThickness:yp,materialLightMap:du,materialLineDashOffset:lu,materialLineDashSize:uu,materialLineGapSize:cu,materialLineScale:au,materialLineWidth:Or,materialMetalness:op,materialNormal:ap,materialOpacity:cr,materialPointWidth:Sp,materialReference:dt,materialReflectivity:Gr,materialRefractionRatio:zh,materialRotation:dp,materialRoughness:ip,materialSheen:hp,materialSheenRoughness:pp,materialShininess:tp,materialSpecular:np,materialSpecularColor:rp,materialSpecularIntensity:Yo,materialSpecularStrength:Bn,materialThickness:Tp,materialTransmission:xp,max:ue,maxMipLevel:Ph,mediumpModelViewMatrix:Vh,metalness:kn,min:Re,mix:Q,mixElement:uh,mod:Xa,modInt:Ga,modelDirection:Qy,modelNormalMatrix:Lh,modelPosition:Zy,modelScale:Jy,modelViewMatrix:Kt,modelViewPosition:ex,modelViewProjection:hu,modelWorldMatrix:at,modelWorldMatrixInverse:Ih,morphReference:Up,mrt:ff,mul:$,mx_aastep:og,mx_cell_noise_float:fv,mx_contrast:av,mx_fractal_noise_float:gv,mx_fractal_noise_vec2:mv,mx_fractal_noise_vec3:yv,mx_fractal_noise_vec4:xv,mx_hsvtorgb:ZS,mx_noise_float:uv,mx_noise_vec3:cv,mx_noise_vec4:lv,mx_ramplr:tv,mx_ramptb:sv,mx_rgbtohsv:JS,mx_safepower:ov,mx_splitlr:nv,mx_splittb:rv,mx_srgb_texture_to_lin_rec709:ev,mx_transform_uv:iv,mx_worley_noise_float:dv,mx_worley_noise_vec2:hv,mx_worley_noise_vec3:pv,negate:qd,neutralToneMapping:Uf,nodeArray:xs,nodeImmutable:U,nodeObject:E,nodeObjects:Jn,nodeProxy:C,normalFlat:Oh,normalGeometry:Ni,normalLocal:Xe,normalMap:Xo,normalView:lt,normalWorld:Si,normalize:qt,not:Md,notEqual:vd,numWorkgroups:NN,objectDirection:Ky,objectGroup:Ba,objectPosition:Dh,objectScale:Yy,objectViewPosition:jy,objectWorldMatrix:Xy,oneMinus:Kd,or:wd,orthographicDepthToViewZ:kx,oscSawtooth:rb,oscSine:tb,oscSquare:sb,oscTriangle:nb,output:$n,outputStruct:k_,overlay:$b,overloadingFn:Pe,parabola:ta,parallaxDirection:Qh,parallaxUV:fx,parameter:G_,pass:Jb,passTexture:eN,pcurve:H_,perspectiveDepthToViewZ:mu,pmremTexture:vu,pointUV:Ub,pointWidth:Ty,positionGeometry:Ce,positionLocal:me,positionPrevious:Jr,positionView:xe,positionViewDirection:ae,positionWorld:Wt,positionWorldDirection:nu,posterize:Qb,pow:ht,pow2:Ya,pow3:sh,pow4:nh,property:Fa,radians:kd,rand:ah,range:_N,rangeFog:yN,rangeFogFactor:wu,reciprocal:Yd,reference:ne,referenceBuffer:Ko,reflect:Jd,reflectVector:Hh,reflectView:Wh,reflector:gb,refract:Qa,refractVector:qh,refractView:$h,reinhardToneMapping:wf,remainder:Vd,remap:Mh,remapClamp:Bh,renderGroup:k,renderOutput:tu,rendererReference:Sh,rotate:Au,rotateUV:ib,roughness:Nt,round:Xd,rtt:yf,sRGBTransferEOTF:yh,sRGBTransferOETF:xh,sampler:Wy,saturate:oh,saturation:qb,screen:Wb,screenCoordinate:dr,screenSize:Kn,screenUV:Bt,scriptable:mN,scriptableValue:zr,select:Ue,setCurrentStack:On,shaderStages:zo,shadow:Qf,shadowPositionWorld:Lu,sharedUniformGroup:Ma,sheen:fs,sheenRoughness:gi,shiftLeft:Ld,shiftRight:Id,shininess:Yr,sign:qn,sin:st,sinc:q_,skinning:Rx,skinningReference:Fp,smoothstep:ct,smoothstepElement:ch,specularColor:We,specularF90:Wn,spherizeUV:ob,split:xy,spritesheetUV:lb,sqrt:Pt,stack:kr,step:Ti,storage:Bi,storageBarrier:EN,storageObject:Cb,storageTexture:bf,string:my,sub:Y,subgroupIndex:_x,subgroupSize:AN,tan:Wd,tangentGeometry:Ri,tangentLocal:or,tangentView:ar,tangentWorld:Xh,temp:gh,texture:K,texture3D:af,textureBarrier:wN,textureBicubic:Jp,textureCubeUV:tf,textureLoad:ge,textureSize:ns,textureStore:Db,thickness:Da,time:Cs,timerDelta:eb,timerGlobal:J_,timerLocal:Z_,toOutputColorSpace:Th,toWorkingColorSpace:_h,toneMapping:vh,toneMappingExposure:Ah,toonOutlinePass:nN,transformDirection:rh,transformNormal:kh,transformNormalToView:ru,transformedBentNormalView:Zh,transformedBitangentView:jh,transformedBitangentWorld:px,transformedClearcoatNormalView:Hs,transformedNormalView:fe,transformedNormalWorld:vi,transformedTangentView:ou,transformedTangentWorld:cx,transmission:jr,transpose:Qd,triNoise3D:X_,triplanarTexture:hb,triplanarTextures:mf,trunc:Ka,tslFn:gy,uint:D,uniform:V,uniformArray:Gt,uniformGroup:Td,uniforms:ox,userData:Ib,uv:le,uvec2:ld,uvec3:dn,uvec4:fd,varying:ke,varyingProperty:et,vec2:M,vec3:T,vec4:P,vectorComponents:As,velocity:Gb,vertexColor:Bb,vertexIndex:Rp,vertexStage:mh,vibrance:Kb,viewZToLogarithmicDepth:yu,viewZToOrthographicDepth:Qs,viewZToPerspectiveDepth:Ip,viewport:$t,viewportBottomLeft:Vx,viewportCoordinate:Lp,viewportDepthTexture:gu,viewportLinearDepth:Wx,viewportMipTexture:fu,viewportResolution:Lx,viewportSafeUV:ub,viewportSharedTexture:Gp,viewportSize:Dp,viewportTexture:Gx,viewportTopLeft:Ix,viewportUV:Dx,wgsl:cN,wgslFn:hN,workgroupArray:FN,workgroupBarrier:CN,workgroupId:SN,workingToColorSpace:bh,xor:Bd});const Lt=new Ru;class _v extends os{constructor(e,t){super(),this.renderer=e,this.nodes=t}update(e,t,s){const n=this.renderer,r=this.nodes.getBackgroundNode(e)||e.background;let i=!1;if(r===null)n._clearColor.getRGB(Lt,kt),Lt.a=n._clearColor.a;else if(r.isColor===!0)r.getRGB(Lt,kt),Lt.a=1,i=!0;else if(r.isNode===!0){const a=this.get(e),u=r;Lt.copy(n._clearColor);let c=a.backgroundMesh;if(c===void 0){const d=bi(P(u).mul(sa),{getUV:()=>_f.mul(Si),getTextureLevel:()=>Tf});let h=hu;h=h.setZ(h.w);const p=new ce;p.name="Background.material",p.side=Ct,p.depthTest=!1,p.depthWrite=!1,p.fog=!1,p.lights=!1,p.vertexNode=h,p.colorNode=d,a.backgroundMeshNode=d,a.backgroundMesh=c=new tn(new mm(1,32,32),p),c.frustumCulled=!1,c.name="Background.mesh",c.onBeforeRender=function(f,m,x){this.matrixWorld.copyPosition(x.matrixWorld)}}const l=u.getCacheKey();a.backgroundCacheKey!==l&&(a.backgroundMeshNode.node=P(u).mul(sa),a.backgroundMeshNode.needsUpdate=!0,c.material.needsUpdate=!0,a.backgroundCacheKey=l),t.unshift(c,c.geometry,c.material,0,0,null,null)}else console.error("THREE.Renderer: Unsupported background configuration.",r);if(n.autoClear===!0||i===!0){const a=s.clearColorValue;a.r=Lt.r,a.g=Lt.g,a.b=Lt.b,a.a=Lt.a,(n.backend.isWebGLBackend===!0||n.alpha===!0)&&(a.r*=a.a,a.g*=a.a,a.b*=a.a),s.depthClearValue=n._clearDepth,s.stencilClearValue=n._clearStencil,s.clearColor=n.autoClearColor===!0,s.clearDepth=n.autoClearDepth===!0,s.clearStencil=n.autoClearStencil===!0}else s.clearColor=!1,s.clearDepth=!1,s.clearStencil=!1}}let bv=0;class na{constructor(e="",t=[],s=0,n=[]){this.name=e,this.bindings=t,this.index=s,this.bindingsReference=n,this.id=bv++}}class Nv{constructor(e,t,s,n,r,i,a,u,c,l=[]){this.vertexShader=e,this.fragmentShader=t,this.computeShader=s,this.transforms=l,this.nodeAttributes=n,this.bindings=r,this.updateNodes=i,this.updateBeforeNodes=a,this.updateAfterNodes=u,this.monitor=c,this.usedTimes=0}createBindings(){const e=[];for(const t of this.bindings)if(t.bindings[0].groupNode.shared!==!0){const n=new na(t.name,[],t.index,t);e.push(n);for(const r of t.bindings)n.bindings.push(r.clone())}else e.push(t);return e}}class Gc{constructor(e,t,s=null){this.isNodeAttribute=!0,this.name=e,this.type=t,this.node=s}}class Sv{constructor(e,t,s){this.isNodeUniform=!0,this.name=e,this.type=t,this.node=s.getSelf()}get value(){return this.node.value}set value(e){this.node.value=e}get id(){return this.node.id}get groupNode(){return this.node.groupNode}}class lg{constructor(e,t){this.isNodeVar=!0,this.name=e,this.type=t}}class vv extends lg{constructor(e,t){super(e,t),this.needsInterpolation=!1,this.isNodeVarying=!0}}class Av{constructor(e,t,s=""){this.name=e,this.type=t,this.code=s,Object.defineProperty(this,"isNodeCode",{value:!0})}}let Rv=0;class to{constructor(e=null){this.id=Rv++,this.nodesData=new WeakMap,this.parent=e}getData(e){let t=this.nodesData.get(e);return t===void 0&&this.parent!==null&&(t=this.parent.getData(e)),t}setData(e,t){this.nodesData.set(e,t)}}class Cv extends O{static get type(){return"StructTypeNode"}constructor(e,t){super(),this.name=e,this.types=t,this.isStructTypeNode=!0}getMemberTypes(){return this.types}}class ws{constructor(e,t){this.name=e,this.value=t,this.boundary=0,this.itemSize=0,this.offset=0}setValue(e){this.value=e}getValue(){return this.value}}class Ev extends ws{constructor(e,t=0){super(e,t),this.isNumberUniform=!0,this.boundary=4,this.itemSize=1}}class wv extends ws{constructor(e,t=new Ye){super(e,t),this.isVector2Uniform=!0,this.boundary=8,this.itemSize=2}}class Mv extends ws{constructor(e,t=new j){super(e,t),this.isVector3Uniform=!0,this.boundary=16,this.itemSize=3}}class Bv extends ws{constructor(e,t=new Me){super(e,t),this.isVector4Uniform=!0,this.boundary=16,this.itemSize=4}}class Fv extends ws{constructor(e,t=new mt){super(e,t),this.isColorUniform=!0,this.boundary=16,this.itemSize=3}}class Uv extends ws{constructor(e,t=new Yn){super(e,t),this.isMatrix3Uniform=!0,this.boundary=48,this.itemSize=12}}class Pv extends ws{constructor(e,t=new Ie){super(e,t),this.isMatrix4Uniform=!0,this.boundary=64,this.itemSize=16}}class Dv extends Ev{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Lv extends wv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Iv extends Mv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Vv extends Bv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Gv extends Fv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class Ov extends Uv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}class kv extends Pv{constructor(e){super(e.name,e.value),this.nodeUniform=e}getValue(){return this.nodeUniform.value}getType(){return this.nodeUniform.type}}const qs=4,Oc=[.125,.215,.35,.446,.526,.582],hs=20,so=new Tl(-1,1,1,-1,0,1),zv=new kg(90,1),kc=new mt;let no=null,ro=0,io=0;const ds=(1+Math.sqrt(5))/2,Ds=1/ds,zc=[new j(-ds,Ds,0),new j(ds,Ds,0),new j(-Ds,0,ds),new j(Ds,0,ds),new j(0,ds,-Ds),new j(0,ds,Ds),new j(-1,1,-1),new j(1,1,-1),new j(-1,1,1),new j(1,1,1)],Wv=[3,1,5,0,4,2],oo=ef(le(),we("faceIndex")).normalize(),zu=T(oo.x,oo.y,oo.z);class $v{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._lodMeshes=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._backgroundBox=null}get _hasInitialized(){return this._renderer.hasInitialized()}fromScene(e,t=0,s=.1,n=100,r=null){if(this._setSize(256),this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromScene() called before the backend is initialized. Try using .fromSceneAsync() instead.");const a=r||this._allocateTargets();return this.fromSceneAsync(e,t,s,n,a),a}no=this._renderer.getRenderTarget(),ro=this._renderer.getActiveCubeFace(),io=this._renderer.getActiveMipmapLevel();const i=r||this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(e,s,n,i),t>0&&this._blur(i,0,0,t),this._applyPMREM(i),this._cleanup(i),i}async fromSceneAsync(e,t=0,s=.1,n=100,r=null){return this._hasInitialized===!1&&await this._renderer.init(),this.fromScene(e,t,s,n,r)}fromEquirectangular(e,t=null){if(this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromEquirectangular() called before the backend is initialized. Try using .fromEquirectangularAsync() instead."),this._setSizeFromTexture(e);const s=t||this._allocateTargets();return this.fromEquirectangularAsync(e,s),s}return this._fromTexture(e,t)}async fromEquirectangularAsync(e,t=null){return this._hasInitialized===!1&&await this._renderer.init(),this._fromTexture(e,t)}fromCubemap(e,t=null){if(this._hasInitialized===!1){console.warn("THREE.PMREMGenerator: .fromCubemap() called before the backend is initialized. Try using .fromCubemapAsync() instead."),this._setSizeFromTexture(e);const s=t||this._allocateTargets();return this.fromCubemapAsync(e,t),s}return this._fromTexture(e,t)}async fromCubemapAsync(e,t=null){return this._hasInitialized===!1&&await this._renderer.init(),this._fromTexture(e,t)}async compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=$c(),await this._compileMaterial(this._cubemapMaterial))}async compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Hc(),await this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSizeFromTexture(e){e.mapping===Zs||e.mapping===Js?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4)}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?m:0,m,m),u.render(e,r)}u.autoClear=c,e.background=h}_textureToCubeUV(e,t){const s=this._renderer,n=e.mapping===Zs||e.mapping===Js;n?this._cubemapMaterial===null&&(this._cubemapMaterial=$c(e)):this._equirectMaterial===null&&(this._equirectMaterial=Hc(e));const r=n?this._cubemapMaterial:this._equirectMaterial;r.fragmentNode.value=e;const i=this._lodMeshes[0];i.material=r;const a=this._cubeSize;vr(t,0,0,3*a,2*a),s.setRenderTarget(t),s.render(i,so)}_applyPMREM(e){const t=this._renderer,s=t.autoClear;t.autoClear=!1;const n=this._lodPlanes.length;for(let r=1;rhs&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${x} samples when the maximum is set to ${hs}`);const N=[];let v=0;for(let I=0;Iw-qs?n-w+qs:0),L=4*(this._cubeSize-B);vr(t,F,L,3*B,2*B),u.setRenderTarget(t),u.render(d,so)}}function Hv(o){const e=[],t=[],s=[],n=[];let r=o;const i=o-qs+1+Oc.length;for(let a=0;ao-qs?c=Oc[a-o+qs-1]:a===0&&(c=0),s.push(c);const l=1/(u-2),d=-l,h=1+l,p=[d,d,h,d,h,h,d,d,h,h,d,h],f=6,m=6,x=3,N=2,v=1,w=new Float32Array(x*m*f),B=new Float32Array(N*m*f),F=new Float32Array(v*m*f);for(let I=0;I2?0:-1,ie=[G,X,0,G+2/3,X,0,G+2/3,X+1,0,G,X,0,G+2/3,X+1,0,G,X+1,0],Z=Wv[I];w.set(ie,x*m*Z),B.set(p,N*m*Z);const Qe=[Z,Z,Z,Z,Z,Z];F.set(Qe,v*m*Z)}const L=new Sl;L.setAttribute("position",new Ur(w,x)),L.setAttribute("uv",new Ur(B,N)),L.setAttribute("faceIndex",new Ur(F,v)),e.push(L),n.push(new tn(L,null)),r>qs&&r--}return{lodPlanes:e,sizeLods:t,sigmas:s,lodMeshes:n}}function Wc(o,e,t){const s=new Ss(o,e,t);return s.texture.mapping=bo,s.texture.name="PMREM.cubeUv",s.texture.isPMREMTexture=!0,s.scissorTest=!0,s}function vr(o,e,t,s,n){o.viewport.set(e,t,s,n),o.scissor.set(e,t,s,n)}function Wu(o){const e=new ce;return e.depthTest=!1,e.depthWrite=!1,e.blending=en,e.name=`PMREM_${o}`,e}function qv(o,e,t){const s=Gt(new Array(hs).fill(0)),n=V(new j(0,1,0)),r=V(0),i=g(hs),a=V(0),u=V(1),c=K(null),l=V(0),d=g(1/e),h=g(1/t),p=g(o),f={n:i,latitudinal:a,weights:s,poleAxis:n,outputDirection:zu,dTheta:r,samples:u,envMap:c,mipInt:l,CUBEUV_TEXEL_WIDTH:d,CUBEUV_TEXEL_HEIGHT:h,CUBEUV_MAX_MIP:p},m=Wu("blur");return m.uniforms=f,m.fragmentNode=sf({...f,latitudinal:a.equal(1)}),m}function $c(o){const e=Wu("cubemap");return e.fragmentNode=on(o,zu),e}function Hc(o){const e=Wu("equirect");return e.fragmentNode=K(o,Tu(zu),0),e}const qc=new WeakMap,Kv=new Map([[Int8Array,"int"],[Int16Array,"int"],[Int32Array,"int"],[Uint8Array,"uint"],[Uint16Array,"uint"],[Uint32Array,"uint"],[Float32Array,"float"]]),Ar=o=>/e/g.test(o)?String(o).replace(/\+/g,""):(o=Number(o),o+(o%1?"":".0"));class dg{constructor(e,t,s){this.object=e,this.material=e&&e.material||null,this.geometry=e&&e.geometry||null,this.renderer=t,this.parser=s,this.scene=null,this.camera=null,this.nodes=[],this.sequentialNodes=[],this.updateNodes=[],this.updateBeforeNodes=[],this.updateAfterNodes=[],this.hashNodes={},this.monitor=null,this.lightsNode=null,this.environmentNode=null,this.fogNode=null,this.clippingContext=null,this.vertexShader=null,this.fragmentShader=null,this.computeShader=null,this.flowNodes={vertex:[],fragment:[],compute:[]},this.flowCode={vertex:"",fragment:"",compute:""},this.uniforms={vertex:[],fragment:[],compute:[],index:0},this.structs={vertex:[],fragment:[],compute:[],index:0},this.bindings={vertex:{},fragment:{},compute:{}},this.bindingsIndexes={},this.bindGroups=null,this.attributes=[],this.bufferAttributes=[],this.varyings=[],this.codes={},this.vars={},this.flow={code:""},this.chaining=[],this.stack=kr(),this.stacks=[],this.tab=" ",this.currentFunctionNode=null,this.context={material:this.material},this.cache=new to,this.globalCache=this.cache,this.flowsData=new WeakMap,this.shaderStage=null,this.buildStage=null,this.useComparisonMethod=!1}getBindGroupsCache(){let e=qc.get(this.renderer);return e===void 0&&(e=new Ft,qc.set(this.renderer,e)),e}createRenderTarget(e,t,s){return new Ss(e,t,s)}createCubeRenderTarget(e,t){return new kp(e,t)}createPMREMGenerator(){return new $v(this.renderer)}includes(e){return this.nodes.includes(e)}_getBindGroup(e,t){const s=this.getBindGroupsCache(),n=[];let r=!0;for(const a of t)n.push(a),r=r&&a.groupNode.shared!==!0;let i;return r?(i=s.get(n),i===void 0&&(i=new na(e,n,this.bindingsIndexes[e].group,n),s.set(n,i))):i=new na(e,n,this.bindingsIndexes[e].group,n),i}getBindGroupArray(e,t){const s=this.bindings[t];let n=s[e];return n===void 0&&(this.bindingsIndexes[e]===void 0&&(this.bindingsIndexes[e]={binding:0,group:Object.keys(this.bindingsIndexes).length}),s[e]=n=[]),n}getBindings(){let e=this.bindGroups;if(e===null){const t={},s=this.bindings;for(const n of zo)for(const r in s[n]){const i=s[n][r];(t[r]||(t[r]=[])).push(...i)}e=[];for(const n in t){const r=t[n],i=this._getBindGroup(n,r);e.push(i)}this.bindGroups=e}return e}sortBindingGroups(){const e=this.getBindings();e.sort((t,s)=>t.bindings[0].groupNode.order-s.bindings[0].groupNode.order);for(let t=0;t=0?`${Math.round(t)}u`:"0u";if(e==="bool")return t?"true":"false";if(e==="color")return`${this.getType("vec3")}( ${Ar(t.r)}, ${Ar(t.g)}, ${Ar(t.b)} )`;const s=this.getTypeLength(e),n=this.getComponentType(e),r=i=>this.generateConst(n,i);if(s===2)return`${this.getType(e)}( ${r(t.x)}, ${r(t.y)} )`;if(s===3)return`${this.getType(e)}( ${r(t.x)}, ${r(t.y)}, ${r(t.z)} )`;if(s===4)return`${this.getType(e)}( ${r(t.x)}, ${r(t.y)}, ${r(t.z)}, ${r(t.w)} )`;if(s>4&&t&&(t.isMatrix3||t.isMatrix4))return`${this.getType(e)}( ${t.elements.map(r).join(", ")} )`;if(s>4)return`${this.getType(e)}()`;throw new Error(`NodeBuilder: Type '${e}' not found in generate constant attempt.`)}getType(e){return e==="color"?"vec3":e}hasGeometryAttribute(e){return this.geometry&&this.geometry.getAttribute(e)!==void 0}getAttribute(e,t){const s=this.attributes;for(const r of s)if(r.name===e)return r;const n=new Gc(e,t);return s.push(n),n}getPropertyName(e){return e.name}isVector(e){return/vec\d/.test(e)}isMatrix(e){return/mat\d/.test(e)}isReference(e){return e==="void"||e==="property"||e==="sampler"||e==="texture"||e==="cubeTexture"||e==="storageTexture"||e==="depthTexture"||e==="texture3D"}needsToWorkingColorSpace(){return!1}getComponentTypeFromTexture(e){const t=e.type;if(e.isDataTexture){if(t===ze)return"int";if(t===Le)return"uint"}return"float"}getElementType(e){return e==="mat2"?"vec2":e==="mat3"?"vec3":e==="mat4"?"vec4":this.getComponentType(e)}getComponentType(e){if(e=this.getVectorType(e),e==="float"||e==="bool"||e==="int"||e==="uint")return e;const t=/(b|i|u|)(vec|mat)([2-4])/.exec(e);return t===null?null:t[1]==="b"?"bool":t[1]==="i"?"int":t[1]==="u"?"uint":"float"}getVectorType(e){return e==="color"?"vec3":e==="texture"||e==="cubeTexture"||e==="storageTexture"||e==="texture3D"?"vec4":e}getTypeFromLength(e,t="float"){if(e===1)return t;const s=ya(e);return(t==="float"?"":t[0])+s}getTypeFromArray(e){return Kv.get(e.constructor)}getTypeFromAttribute(e){let t=e;e.isInterleavedBufferAttribute&&(t=e.data);const s=t.array,n=e.itemSize,r=e.normalized;let i;return!(e instanceof yl)&&r!==!0&&(i=this.getTypeFromArray(s)),this.getTypeFromLength(n,i)}getTypeLength(e){const t=this.getVectorType(e),s=/vec([2-4])/.exec(t);return s!==null?Number(s[1]):t==="float"||t==="bool"||t==="int"||t==="uint"?1:/mat2/.test(e)===!0?4:/mat3/.test(e)===!0?9:/mat4/.test(e)===!0?16:0}getVectorFromMatrix(e){return e.replace("mat","vec")}changeComponentType(e,t){return this.getTypeFromLength(this.getTypeLength(e),t)}getIntegerType(e){const t=this.getComponentType(e);return t==="int"||t==="uint"?e:this.changeComponentType(e,"int")}addStack(){return this.stack=kr(this.stack),this.stacks.push(Ea()||this.stack),On(this.stack),this.stack}removeStack(){const e=this.stack;return this.stack=e.parent,On(this.stacks.pop()),e}getDataFromNode(e,t=this.shaderStage,s=null){s=s===null?e.isGlobal(this)?this.globalCache:this.cache:s;let n=s.getData(e);return n===void 0&&(n={},s.setData(e,n)),n[t]===void 0&&(n[t]={}),n[t]}getNodeProperties(e,t="any"){const s=this.getDataFromNode(e,t);return s.properties||(s.properties={outputNode:null})}getBufferAttributeFromNode(e,t){const s=this.getDataFromNode(e);let n=s.bufferAttribute;if(n===void 0){const r=this.uniforms.index++;n=new Gc("nodeAttribute"+r,t,e),this.bufferAttributes.push(n),s.bufferAttribute=n}return n}getStructTypeFromNode(e,t,s=this.shaderStage){const n=this.getDataFromNode(e,s);let r=n.structType;if(r===void 0){const i=this.structs.index++;r=new Cv("StructType"+i,t),this.structs[s].push(r),n.structType=r}return r}getUniformFromNode(e,t,s=this.shaderStage,n=null){const r=this.getDataFromNode(e,s,this.globalCache);let i=r.uniform;if(i===void 0){const a=this.uniforms.index++;i=new Sv(n||"nodeUniform"+a,t,e),this.uniforms[s].push(i),r.uniform=i}return i}getVarFromNode(e,t=null,s=e.getNodeType(this),n=this.shaderStage){const r=this.getDataFromNode(e,n);let i=r.variable;if(i===void 0){const a=this.vars[n]||(this.vars[n]=[]);t===null&&(t="nodeVar"+a.length),i=new lg(t,s),a.push(i),r.variable=i}return i}getVaryingFromNode(e,t=null,s=e.getNodeType(this)){const n=this.getDataFromNode(e,"any");let r=n.varying;if(r===void 0){const i=this.varyings,a=i.length;t===null&&(t="nodeVarying"+a),r=new vv(t,s),i.push(r),n.varying=r}return r}getCodeFromNode(e,t,s=this.shaderStage){const n=this.getDataFromNode(e);let r=n.code;if(r===void 0){const i=this.codes[s]||(this.codes[s]=[]),a=i.length;r=new Av("nodeCode"+a,t),i.push(r),n.code=r}return r}addFlowCodeHierarchy(e,t){const{flowCodes:s,flowCodeBlock:n}=this.getDataFromNode(e);let r=!0,i=t;for(;i;){if(n.get(i)===!0){r=!1;break}i=this.getDataFromNode(i).parentNodeBlock}if(r)for(const a of s)this.addLineFlowCode(a)}addLineFlowCodeBlock(e,t,s){const n=this.getDataFromNode(e),r=n.flowCodes||(n.flowCodes=[]),i=n.flowCodeBlock||(n.flowCodeBlock=new WeakMap);r.push(t),i.set(s,!0)}addLineFlowCode(e,t=null){return e===""?this:(t!==null&&this.context.nodeBlock&&this.addLineFlowCodeBlock(t,e,this.context.nodeBlock),e=this.tab+e,/;\s*$/.test(e)||(e=e+`; +`),this.flow.code+=e,this)}addFlowCode(e){return this.flow.code+=e,this}addFlowTab(){return this.tab+=" ",this}removeFlowTab(){return this.tab=this.tab.slice(0,-1),this}getFlowData(e){return this.flowsData.get(e)}flowNode(e){const t=e.getNodeType(this),s=this.flowChildNode(e,t);return this.flowsData.set(e,s),s}buildFunctionNode(e){const t=new Pf,s=this.currentFunctionNode;return this.currentFunctionNode=t,t.code=this.buildFunctionCode(e),this.currentFunctionNode=s,t}flowShaderNode(e){const t=e.layout,s={[Symbol.iterator](){let i=0;const a=Object.values(this);return{next:()=>({value:a[i],done:i++>=a.length})}}};for(const i of t.inputs)s[i.name]=new df(i.type,i.name);e.layout=null;const n=e.call(s),r=this.flowStagesNode(n,t.type);return e.layout=t,r}flowStagesNode(e,t=null){const s=this.flow,n=this.vars,r=this.cache,i=this.buildStage,a=this.stack,u={code:""};this.flow=u,this.vars={},this.cache=new to,this.stack=kr();for(const c of ko)this.setBuildStage(c),u.result=e.build(this,t);return u.vars=this.getVars(this.shaderStage),this.flow=s,this.vars=n,this.cache=r,this.stack=a,this.setBuildStage(i),u}getFunctionOperator(){return null}flowChildNode(e,t=null){const s=this.flow,n={code:""};return this.flow=n,n.result=e.build(this,t),this.flow=s,n}flowNodeFromShaderStage(e,t,s=null,n=null){const r=this.shaderStage;this.setShaderStage(e);const i=this.flowChildNode(t,s);return n!==null&&(i.code+=`${this.tab+n} = ${i.result}; +`),this.flowCode[e]=this.flowCode[e]+i.code,this.setShaderStage(r),i}getAttributesArray(){return this.attributes.concat(this.bufferAttributes)}getAttributes(){console.warn("Abstract function.")}getVaryings(){console.warn("Abstract function.")}getVar(e,t){return`${this.getType(e)} ${t}`}getVars(e){let t="";const s=this.vars[e];if(s!==void 0)for(const n of s)t+=`${this.getVar(n.type,n.name)}; `;return t}getUniforms(){console.warn("Abstract function.")}getCodes(e){const t=this.codes[e];let s="";if(t!==void 0)for(const n of t)s+=n.code+` +`;return s}getHash(){return this.vertexShader+this.fragmentShader+this.computeShader}setShaderStage(e){this.shaderStage=e}getShaderStage(){return this.shaderStage}setBuildStage(e){this.buildStage=e}getBuildStage(){return this.buildStage}buildCode(){console.warn("Abstract function.")}build(){const{object:e,material:t,renderer:s}=this;if(t!==null){let n=s.library.fromMaterial(t);n===null&&(console.error(`NodeMaterial: Material "${t.type}" is not compatible.`),n=new ce),n.build(this)}else this.addFlow("compute",e);for(const n of ko){this.setBuildStage(n),this.context.vertex&&this.context.vertex.isNode&&this.flowNodeFromShaderStage("vertex",this.context.vertex);for(const r of zo){this.setShaderStage(r);const i=this.flowNodes[r];for(const a of i)n==="generate"?this.flowNode(a):a.build(this)}}return this.setBuildStage(null),this.setShaderStage(null),this.buildCode(),this.buildUpdateNodes(),this}getNodeUniform(e,t){if(t==="float"||t==="int"||t==="uint")return new Dv(e);if(t==="vec2"||t==="ivec2"||t==="uvec2")return new Lv(e);if(t==="vec3"||t==="ivec3"||t==="uvec3")return new Iv(e);if(t==="vec4"||t==="ivec4"||t==="uvec4")return new Vv(e);if(t==="color")return new Gv(e);if(t==="mat3")return new Ov(e);if(t==="mat4")return new kv(e);throw new Error(`Uniform "${t}" not declared.`)}format(e,t,s){if(t=this.getVectorType(t),s=this.getVectorType(s),t===s||s===null||this.isReference(s))return e;const n=this.getTypeLength(t),r=this.getTypeLength(s);return n===16&&r===9?`${this.getType(s)}(${e}[0].xyz, ${e}[1].xyz, ${e}[2].xyz)`:n===9&&r===4?`${this.getType(s)}(${e}[0].xy, ${e}[1].xy)`:n>4||r>4||r===0?e:n===r?`${this.getType(s)}( ${e} )`:n>r?this.format(`${e}.${"xyz".slice(0,r)}`,this.getTypeFromLength(r,this.getComponentType(t)),s):r===4&&n>1?`${this.getType(s)}( ${this.format(e,t,"vec3")}, 1.0 )`:n===2?`${this.getType(s)}( ${this.format(e,t,"vec2")}, 0.0 )`:(n===1&&r>1&&t!==this.getComponentType(s)&&(e=`${this.getType(this.getComponentType(s))}( ${e} )`),`${this.getType(s)}( ${e} )`)}getSignature(){return`// Three.js r${xl} - Node System +`}createNodeMaterial(e="NodeMaterial"){throw new Error(`THREE.NodeBuilder: createNodeMaterial() was deprecated. Use new ${e}() instead.`)}}class Kc{constructor(){this.time=0,this.deltaTime=0,this.frameId=0,this.renderId=0,this.updateMap=new WeakMap,this.updateBeforeMap=new WeakMap,this.updateAfterMap=new WeakMap,this.renderer=null,this.material=null,this.camera=null,this.object=null,this.scene=null}_getMaps(e,t){let s=e.get(t);return s===void 0&&(s={renderMap:new WeakMap,frameMap:new WeakMap},e.set(t,s)),s}updateBeforeNode(e){const t=e.getUpdateBeforeType(),s=e.updateReference(this);if(t===W.FRAME){const{frameMap:n}=this._getMaps(this.updateBeforeMap,s);n.get(s)!==this.frameId&&e.updateBefore(this)!==!1&&n.set(s,this.frameId)}else if(t===W.RENDER){const{renderMap:n}=this._getMaps(this.updateBeforeMap,s);n.get(s)!==this.renderId&&e.updateBefore(this)!==!1&&n.set(s,this.renderId)}else t===W.OBJECT&&e.updateBefore(this)}updateAfterNode(e){const t=e.getUpdateAfterType(),s=e.updateReference(this);if(t===W.FRAME){const{frameMap:n}=this._getMaps(this.updateAfterMap,s);n.get(s)!==this.frameId&&e.updateAfter(this)!==!1&&n.set(s,this.frameId)}else if(t===W.RENDER){const{renderMap:n}=this._getMaps(this.updateAfterMap,s);n.get(s)!==this.renderId&&e.updateAfter(this)!==!1&&n.set(s,this.renderId)}else t===W.OBJECT&&e.updateAfter(this)}updateNode(e){const t=e.getUpdateType(),s=e.updateReference(this);if(t===W.FRAME){const{frameMap:n}=this._getMaps(this.updateMap,s);n.get(s)!==this.frameId&&e.update(this)!==!1&&n.set(s,this.frameId)}else if(t===W.RENDER){const{renderMap:n}=this._getMaps(this.updateMap,s);n.get(s)!==this.renderId&&e.update(this)!==!1&&n.set(s,this.renderId)}else t===W.OBJECT&&e.update(this)}update(){this.frameId++,this.lastTime===void 0&&(this.lastTime=performance.now()),this.deltaTime=(performance.now()-this.lastTime)/1e3,this.lastTime=performance.now(),this.time+=this.deltaTime}}class $u{constructor(e,t,s=null,n="",r=!1){this.type=e,this.name=t,this.count=s,this.qualifier=n,this.isConst=r}}$u.isNodeFunctionInput=!0;class Xv extends Es{static get type(){return"DirectionalLightNode"}constructor(e=null){super(e)}setup(e){super.setup(e);const t=e.context.lightingModel,s=this.colorNode,n=Pu(this.light),r=e.context.reflectedLight;t.direct({lightDirection:n,lightColor:s,reflectedLight:r},e.stack,e)}}const ao=new Ie,Rr=new Ie;let Nn=null;class Yv extends Es{static get type(){return"RectAreaLightNode"}constructor(e=null){super(e),this.halfHeight=V(new j).setGroup(k),this.halfWidth=V(new j).setGroup(k),this.updateType=W.RENDER}update(e){super.update(e);const{light:t}=this,s=e.camera.matrixWorldInverse;Rr.identity(),ao.copy(t.matrixWorld),ao.premultiply(s),Rr.extractRotation(ao),this.halfWidth.value.set(t.width*.5,0,0),this.halfHeight.value.set(0,t.height*.5,0),this.halfWidth.value.applyMatrix4(Rr),this.halfHeight.value.applyMatrix4(Rr)}setup(e){super.setup(e);let t,s;e.isAvailable("float32Filterable")?(t=K(Nn.LTC_FLOAT_1),s=K(Nn.LTC_FLOAT_2)):(t=K(Nn.LTC_HALF_1),s=K(Nn.LTC_HALF_2));const{colorNode:n,light:r}=this,i=e.context.lightingModel,a=Pi(r),u=e.context.reflectedLight;i.directRectArea({lightColor:n,lightPosition:a,halfWidth:this.halfWidth,halfHeight:this.halfHeight,reflectedLight:u,ltc_1:t,ltc_2:s},e.stack,e)}static setLTC(e){Nn=e}}class hg extends Es{static get type(){return"SpotLightNode"}constructor(e=null){super(e),this.coneCosNode=V(0).setGroup(k),this.penumbraCosNode=V(0).setGroup(k),this.cutoffDistanceNode=V(0).setGroup(k),this.decayExponentNode=V(0).setGroup(k)}update(e){super.update(e);const{light:t}=this;this.coneCosNode.value=Math.cos(t.angle),this.penumbraCosNode.value=Math.cos(t.angle*(1-t.penumbra)),this.cutoffDistanceNode.value=t.distance,this.decayExponentNode.value=t.decay}getSpotAttenuation(e){const{coneCosNode:t,penumbraCosNode:s}=this;return ct(t,s,e)}setup(e){super.setup(e);const t=e.context.lightingModel,{colorNode:s,cutoffDistanceNode:n,decayExponentNode:r,light:i}=this,a=Pi(i).sub(xe),u=a.normalize(),c=u.dot(Pu(i)),l=this.getSpotAttenuation(c),d=a.length(),h=Gu({lightDistance:d,cutoffDistance:n,decayExponent:r});let p=s.mul(l).mul(h);if(i.map){const m=Vf(i),x=K(i.map,m.xy).onRenderUpdate(()=>i.map);p=m.mul(2).sub(1).abs().lessThan(1).all().select(p.mul(x),p)}const f=e.context.reflectedLight;t.direct({lightDirection:u,lightColor:p,reflectedLight:f},e.stack,e)}}class jv extends hg{static get type(){return"IESSpotLightNode"}getSpotAttenuation(e){const t=this.light.iesMap;let s=null;if(t&&t.isTexture===!0){const n=e.acos().mul(1/Math.PI);s=K(t,M(n,0),0).r}else s=super.getSpotAttenuation(e);return s}}class Qv extends Es{static get type(){return"AmbientLightNode"}constructor(e=null){super(e)}setup({context:e}){e.irradiance.addAssign(this.colorNode)}}class Zv extends Es{static get type(){return"HemisphereLightNode"}constructor(e=null){super(e),this.lightPositionNode=Uu(e),this.lightDirectionNode=this.lightPositionNode.normalize(),this.groundColorNode=V(new mt).setGroup(k)}update(e){const{light:t}=this;super.update(e),this.lightPositionNode.object3d=t,this.groundColorNode.value.copy(t.groundColor).multiplyScalar(t.intensity)}setup(e){const{colorNode:t,groundColorNode:s,lightDirectionNode:n}=this,i=lt.dot(n).mul(.5).add(.5),a=Q(s,t,i);e.context.irradiance.addAssign(a)}}class Jv extends Es{static get type(){return"LightProbeNode"}constructor(e=null){super(e);const t=[];for(let s=0;s<9;s++)t.push(new j);this.lightProbe=Gt(t)}update(e){const{light:t}=this;super.update(e);for(let s=0;s<9;s++)this.lightProbe.array[s].copy(t.sh.coefficients[s]).multiplyScalar(t.intensity)}setup(e){const t=cg(Si,this.lightProbe);e.context.irradiance.addAssign(t)}}class pg{parseFunction(){console.warn("Abstract function.")}}class Hu{constructor(e,t,s="",n=""){this.type=e,this.inputs=t,this.name=s,this.precision=n}getCode(){console.warn("Abstract function.")}}Hu.isNodeFunction=!0;const eA=/^\s*(highp|mediump|lowp)?\s*([a-z_0-9]+)\s*([a-z_0-9]+)?\s*\(([\s\S]*?)\)/i,tA=/[a-z_0-9]+/ig,Xc="#pragma main",sA=o=>{o=o.trim();const e=o.indexOf(Xc),t=e!==-1?o.slice(e+Xc.length):o,s=t.match(eA);if(s!==null&&s.length===5){const n=s[4],r=[];let i=null;for(;(i=tA.exec(n))!==null;)r.push(i);const a=[];let u=0;for(;u0||e.backgroundBlurriness>0&&t.backgroundBlurriness===0;if(t.background!==s||n){const r=this.getCacheNode("background",s,()=>{if(s.isCubeTexture===!0||s.mapping===jn||s.mapping===Qn||s.mapping===bo){if(e.backgroundBlurriness>0||s.mapping===bo)return vu(s);{let i;return s.isCubeTexture===!0?i=on(s):i=K(s),Wp(i)}}else{if(s.isTexture===!0)return K(s,Bt.flipY()).setUpdateMatrix(!0);s.isColor!==!0&&console.error("WebGPUNodes: Unsupported background configuration.",s)}},n);t.backgroundNode=r,t.background=s,t.backgroundBlurriness=e.backgroundBlurriness}}else t.backgroundNode&&(delete t.backgroundNode,delete t.background)}getCacheNode(e,t,s,n=!1){const r=this.cacheLib[e]||(this.cacheLib[e]=new WeakMap);let i=r.get(t);return(i===void 0||n)&&(i=s(),r.set(t,i)),i}updateFog(e){const t=this.get(e),s=e.fog;if(s){if(t.fog!==s){const n=this.getCacheNode("fog",s,()=>{if(s.isFogExp2){const r=ne("color","color",s).setGroup(k),i=ne("density","float",s).setGroup(k);return Xn(r,Mu(i))}else if(s.isFog){const r=ne("color","color",s).setGroup(k),i=ne("near","float",s).setGroup(k),a=ne("far","float",s).setGroup(k);return Xn(r,wu(i,a))}else console.error("THREE.Renderer: Unsupported fog configuration.",s)});t.fogNode=n,t.fog=s}}else delete t.fogNode,delete t.fog}updateEnvironment(e){const t=this.get(e),s=e.environment;if(s){if(t.environment!==s){const n=this.getCacheNode("environment",s,()=>{if(s.isCubeTexture===!0)return on(s);if(s.isTexture===!0)return K(s);console.error("Nodes: Unsupported environment configuration.",s)});t.environmentNode=n,t.environment=s}}else t.environmentNode&&(delete t.environmentNode,delete t.environment)}getNodeFrame(e=this.renderer,t=null,s=null,n=null,r=null){const i=this.nodeFrame;return i.renderer=e,i.scene=t,i.object=s,i.camera=n,i.material=r,i}getNodeFrameForRender(e){return this.getNodeFrame(e.renderer,e.scene,e.object,e.camera,e.material)}getOutputCacheKey(){const e=this.renderer;return e.toneMapping+","+e.currentColorSpace}hasOutputChange(e){return Yc.get(e)!==this.getOutputCacheKey()}getOutputNode(e){const t=this.renderer,s=this.getOutputCacheKey(),n=K(e,Bt).renderOutput(t.toneMapping,t.currentColorSpace);return Yc.set(e,s),n}updateBefore(e){const t=e.getNodeBuilderState();for(const s of t.updateBeforeNodes)this.getNodeFrameForRender(e).updateBeforeNode(s)}updateAfter(e){const t=e.getNodeBuilderState();for(const s of t.updateAfterNodes)this.getNodeFrameForRender(e).updateAfterNode(s)}updateForCompute(e){const t=this.getNodeFrame(),s=this.getForCompute(e);for(const n of s.updateNodes)t.updateNode(n)}updateForRender(e){const t=this.getNodeFrameForRender(e),s=e.getNodeBuilderState();for(const n of s.updateNodes)t.updateNode(n)}needsRefresh(e){const t=this.getNodeFrameForRender(e);return e.getMonitor().needsRefresh(e,t)}dispose(){super.dispose(),this.nodeFrame=new Kc,this.nodeBuilderCache=new Map,this.cacheLib={}}}const uo=new vl;class ii{constructor(e=null){this.version=0,this.clipIntersection=null,this.cacheKey="",this.shadowPass=!1,this.viewNormalMatrix=new Yn,this.clippingGroupContexts=new WeakMap,this.intersectionPlanes=[],this.unionPlanes=[],this.parentVersion=null,e!==null&&(this.viewNormalMatrix=e.viewNormalMatrix,this.clippingGroupContexts=e.clippingGroupContexts,this.shadowPass=e.shadowPass,this.viewMatrix=e.viewMatrix)}projectPlanes(e,t,s){const n=e.length;for(let r=0;r{await this.compileAsync(d,h);const f=this._renderLists.get(d,h),m=this._renderContexts.get(d,h,this._renderTarget),x=d.overrideMaterial||p.material,N=this._objects.get(p,x,d,h,f.lightsNode,m,m.clippingContext),{fragmentShader:v,vertexShader:w}=N.getNodeBuilderState();return{fragmentShader:v,vertexShader:w}}}}async init(){if(this._initialized)throw new Error("Renderer: Backend has already been initialized.");return this._initPromise!==null?this._initPromise:(this._initPromise=new Promise(async(e,t)=>{let s=this.backend;try{await s.init(this)}catch(n){if(this._getFallback!==null)try{this.backend=s=this._getFallback(n),await s.init(this)}catch(r){t(r);return}else{t(n);return}}this._nodes=new iA(this,s),this._animation=new g_(this._nodes,this.info),this._attributes=new N_(s),this._background=new _v(this,this._nodes),this._geometries=new v_(this._attributes,this.info),this._textures=new V_(this,s,this.info),this._pipelines=new w_(s,this._nodes),this._bindings=new M_(s,this._nodes,this._textures,this._attributes,this._pipelines,this.info),this._objects=new T_(this,this._nodes,this._geometries,this._pipelines,this._bindings,this.info),this._renderLists=new U_(this.lighting),this._bundles=new aA,this._renderContexts=new L_,this._animation.start(),this._initialized=!0,e()}),this._initPromise)}get coordinateSystem(){return this.backend.coordinateSystem}async compileAsync(e,t,s=null){if(this._isDeviceLost===!0)return;this._initialized===!1&&await this.init();const n=this._nodes.nodeFrame,r=n.renderId,i=this._currentRenderContext,a=this._currentRenderObjectFunction,u=this._compilationPromises,c=e.isScene===!0?e:jc;s===null&&(s=e);const l=this._renderTarget,d=this._renderContexts.get(s,t,l),h=this._activeMipmapLevel,p=[];this._currentRenderContext=d,this._currentRenderObjectFunction=this.renderObject,this._handleObjectFunction=this._createObjectPipeline,this._compilationPromises=p,n.renderId++,n.update(),d.depth=this.depth,d.stencil=this.stencil,d.clippingContext||(d.clippingContext=new ii),d.clippingContext.updateGlobal(c,t),c.onBeforeRender(this,e,t,l);const f=this._renderLists.get(e,t);if(f.begin(),this._projectObject(e,t,0,f,d.clippingContext),s!==e&&s.traverseVisible(function(w){w.isLight&&w.layers.test(t.layers)&&f.pushLight(w)}),f.finish(),l!==null){this._textures.updateRenderTarget(l,h);const w=this._textures.get(l);d.textures=w.textures,d.depthTexture=w.depthTexture}else d.textures=null,d.depthTexture=null;this._background.update(c,f,d);const m=f.opaque,x=f.transparent,N=f.transparentDoublePass,v=f.lightsNode;this.opaque===!0&&m.length>0&&this._renderObjects(m,t,c,v),this.transparent===!0&&x.length>0&&this._renderTransparents(x,N,t,c,v),n.renderId=r,this._currentRenderContext=i,this._currentRenderObjectFunction=a,this._compilationPromises=u,this._handleObjectFunction=this._renderObjectDirect,await Promise.all(p)}async renderAsync(e,t){this._initialized===!1&&await this.init();const s=this._renderScene(e,t);await this.backend.resolveTimestampAsync(s,"render")}async waitForGPU(){await this.backend.waitForGPU()}setMRT(e){return this._mrt=e,this}getMRT(){return this._mrt}_onDeviceLost(e){let t=`THREE.WebGPURenderer: ${e.api} Device Lost: + +Message: ${e.message}`;e.reason&&(t+=` +Reason: ${e.reason}`),console.error(t),this._isDeviceLost=!0}_renderBundle(e,t,s){const{bundleGroup:n,camera:r,renderList:i}=e,a=this._currentRenderContext,u=this._bundles.get(n,r),c=this.backend.get(u);c.renderContexts===void 0&&(c.renderContexts=new Set);const l=n.version!==c.version,d=c.renderContexts.has(a)===!1||l;if(c.renderContexts.add(a),d){this.backend.beginBundle(a),(c.renderObjects===void 0||l)&&(c.renderObjects=[]),this._currentRenderBundle=u;const h=i.opaque;this.opaque===!0&&h.length>0&&this._renderObjects(h,r,t,s),this._currentRenderBundle=null,this.backend.finishBundle(a,u),c.version=n.version}else{const{renderObjects:h}=c;for(let p=0,f=h.length;p>=h,f.viewportValue.height>>=h,f.viewportValue.minDepth=w,f.viewportValue.maxDepth=B,f.viewport=f.viewportValue.equals(co)===!1,f.scissorValue.copy(N).multiplyScalar(v).floor(),f.scissor=this._scissorTest&&f.scissorValue.equals(co)===!1,f.scissorValue.width>>=h,f.scissorValue.height>>=h,f.clippingContext||(f.clippingContext=new ii),f.clippingContext.updateGlobal(c,t),c.onBeforeRender(this,e,t,p),Er.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),lo.setFromProjectionMatrix(Er,m);const F=this._renderLists.get(e,t);if(F.begin(),this._projectObject(e,t,0,F,f.clippingContext),F.finish(),this.sortObjects===!0&&F.sort(this._opaqueSort,this._transparentSort),p!==null){this._textures.updateRenderTarget(p,h);const Z=this._textures.get(p);f.textures=Z.textures,f.depthTexture=Z.depthTexture,f.width=Z.width,f.height=Z.height,f.renderTarget=p,f.depth=p.depthBuffer,f.stencil=p.stencilBuffer}else f.textures=null,f.depthTexture=null,f.width=this.domElement.width,f.height=this.domElement.height,f.depth=this.depth,f.stencil=this.stencil;f.width>>=h,f.height>>=h,f.activeCubeFace=d,f.activeMipmapLevel=h,f.occlusionQueryCount=F.occlusionQueryCount,this._background.update(c,F,f),this.backend.beginRender(f);const{bundles:L,lightsNode:I,transparentDoublePass:G,transparent:X,opaque:ie}=F;if(L.length>0&&this._renderBundles(L,c,I),this.opaque===!0&&ie.length>0&&this._renderObjects(ie,t,c,I),this.transparent===!0&&X.length>0&&this._renderTransparents(X,G,t,c,I),this.backend.finishRender(f),r.renderId=i,this._currentRenderContext=a,this._currentRenderObjectFunction=u,n!==null){this.setRenderTarget(l,d,h);const Z=this._quad;this._nodes.hasOutputChange(p.texture)&&(Z.material.fragmentNode=this._nodes.getOutputNode(p.texture),Z.material.needsUpdate=!0),this._renderScene(Z,Z.camera,!1)}return c.onAfterRender(this,e,t,p),f}getMaxAnisotropy(){return this.backend.getMaxAnisotropy()}getActiveCubeFace(){return this._activeCubeFace}getActiveMipmapLevel(){return this._activeMipmapLevel}async setAnimationLoop(e){this._initialized===!1&&await this.init(),this._animation.setAnimationLoop(e)}async getArrayBufferAsync(e){return await this.backend.getArrayBufferAsync(e)}getContext(){return this.backend.getContext()}getPixelRatio(){return this._pixelRatio}getDrawingBufferSize(e){return e.set(this._width*this._pixelRatio,this._height*this._pixelRatio).floor()}getSize(e){return e.set(this._width,this._height)}setPixelRatio(e=1){this._pixelRatio!==e&&(this._pixelRatio=e,this.setSize(this._width,this._height,!1))}setDrawingBufferSize(e,t,s){this._width=e,this._height=t,this._pixelRatio=s,this.domElement.width=Math.floor(e*s),this.domElement.height=Math.floor(t*s),this.setViewport(0,0,e,t),this._initialized&&this.backend.updateSize()}setSize(e,t,s=!0){this._width=e,this._height=t,this.domElement.width=Math.floor(e*this._pixelRatio),this.domElement.height=Math.floor(t*this._pixelRatio),s===!0&&(this.domElement.style.width=e+"px",this.domElement.style.height=t+"px"),this.setViewport(0,0,e,t),this._initialized&&this.backend.updateSize()}setOpaqueSort(e){this._opaqueSort=e}setTransparentSort(e){this._transparentSort=e}getScissor(e){const t=this._scissor;return e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height,e}setScissor(e,t,s,n){const r=this._scissor;e.isVector4?r.copy(e):r.set(e,t,s,n)}getScissorTest(){return this._scissorTest}setScissorTest(e){this._scissorTest=e,this.backend.setScissorTest(e)}getViewport(e){return e.copy(this._viewport)}setViewport(e,t,s,n,r=0,i=1){const a=this._viewport;e.isVector4?a.copy(e):a.set(e,t,s,n),a.minDepth=r,a.maxDepth=i}getClearColor(e){return e.copy(this._clearColor)}setClearColor(e,t=1){this._clearColor.set(e),this._clearColor.a=t}getClearAlpha(){return this._clearColor.a}setClearAlpha(e){this._clearColor.a=e}getClearDepth(){return this._clearDepth}setClearDepth(e){this._clearDepth=e}getClearStencil(){return this._clearStencil}setClearStencil(e){this._clearStencil=e}isOccluded(e){const t=this._currentRenderContext;return t&&this.backend.isOccluded(t,e)}clear(e=!0,t=!0,s=!0){if(this._initialized===!1)return console.warn("THREE.Renderer: .clear() called before the backend is initialized. Try using .clearAsync() instead."),this.clearAsync(e,t,s);const n=this._renderTarget||this._getFrameBufferTarget();let r=null;if(n!==null){this._textures.updateRenderTarget(n);const i=this._textures.get(n);r=this._renderContexts.get(null,null,n),r.textures=i.textures,r.depthTexture=i.depthTexture,r.width=i.width,r.height=i.height,r.renderTarget=n,r.depth=n.depthBuffer,r.stencil=n.stencilBuffer}if(this.backend.clear(e,t,s,r),n!==null&&this._renderTarget===null){const i=this._quad;this._nodes.hasOutputChange(n.texture)&&(i.material.fragmentNode=this._nodes.getOutputNode(n.texture),i.material.needsUpdate=!0),this._renderScene(i,i.camera,!1)}}clearColor(){return this.clear(!0,!1,!1)}clearDepth(){return this.clear(!1,!0,!1)}clearStencil(){return this.clear(!1,!1,!0)}async clearAsync(e=!0,t=!0,s=!0){this._initialized===!1&&await this.init(),this.clear(e,t,s)}async clearColorAsync(){this.clearAsync(!0,!1,!1)}async clearDepthAsync(){this.clearAsync(!1,!0,!1)}async clearStencilAsync(){this.clearAsync(!1,!1,!0)}get currentToneMapping(){return this._renderTarget!==null?ss:this.toneMapping}get currentColorSpace(){return this._renderTarget!==null?kt:this.outputColorSpace}dispose(){this.info.dispose(),this.backend.dispose(),this._animation.dispose(),this._objects.dispose(),this._pipelines.dispose(),this._nodes.dispose(),this._bindings.dispose(),this._renderLists.dispose(),this._renderContexts.dispose(),this._textures.dispose(),this.setRenderTarget(null),this.setAnimationLoop(null)}setRenderTarget(e,t=0,s=0){this._renderTarget=e,this._activeCubeFace=t,this._activeMipmapLevel=s}getRenderTarget(){return this._renderTarget}setRenderObjectFunction(e){this._renderObjectFunction=e}getRenderObjectFunction(){return this._renderObjectFunction}compute(e){if(this.isDeviceLost===!0)return;if(this._initialized===!1)return console.warn("THREE.Renderer: .compute() called before the backend is initialized. Try using .computeAsync() instead."),this.computeAsync(e);const t=this._nodes.nodeFrame,s=t.renderId;this.info.calls++,this.info.compute.calls++,this.info.compute.frameCalls++,t.renderId=this.info.calls;const n=this.backend,r=this._pipelines,i=this._bindings,a=this._nodes,u=Array.isArray(e)?e:[e];if(u[0]===void 0||u[0].isComputeNode!==!0)throw new Error("THREE.Renderer: .compute() expects a ComputeNode.");n.beginCompute(e);for(const c of u){if(r.has(c)===!1){const h=()=>{c.removeEventListener("dispose",h),r.delete(c),i.delete(c),a.delete(c)};c.addEventListener("dispose",h);const p=c.onInitFunction;p!==null&&p.call(c,{renderer:this})}a.updateForCompute(c),i.updateForCompute(c);const l=i.getForCompute(c),d=r.getForCompute(c,l);n.compute(e,c,l,d)}n.finishCompute(e),t.renderId=s}async computeAsync(e){this._initialized===!1&&await this.init(),this.compute(e),await this.backend.resolveTimestampAsync(e,"compute")}async hasFeatureAsync(e){return this._initialized===!1&&await this.init(),this.backend.hasFeature(e)}hasFeature(e){return this._initialized===!1?(console.warn("THREE.Renderer: .hasFeature() called before the backend is initialized. Try using .hasFeatureAsync() instead."),!1):this.backend.hasFeature(e)}hasInitialized(){return this._initialized}async initTextureAsync(e){this._initialized===!1&&await this.init(),this._textures.updateTexture(e)}initTexture(e){this._initialized===!1&&console.warn("THREE.Renderer: .initTexture() called before the backend is initialized. Try using .initTextureAsync() instead."),this._textures.updateTexture(e)}copyFramebufferToTexture(e,t=null){if(t!==null)if(t.isVector2)t=jt.set(t.x,t.y,e.image.width,e.image.height).floor();else if(t.isVector4)t=jt.copy(t).floor();else{console.error("THREE.Renderer.copyFramebufferToTexture: Invalid rectangle.");return}else t=jt.set(0,0,e.image.width,e.image.height);let s=this._currentRenderContext,n;s!==null?n=s.renderTarget:(n=this._renderTarget||this._getFrameBufferTarget(),n!==null&&(this._textures.updateRenderTarget(n),s=this._textures.get(n))),this._textures.updateTexture(e,{renderTarget:n}),this.backend.copyFramebufferToTexture(e,s,t)}copyTextureToTexture(e,t,s=null,n=null,r=0){this._textures.updateTexture(e),this._textures.updateTexture(t),this.backend.copyTextureToTexture(e,t,s,n,r)}async readRenderTargetPixelsAsync(e,t,s,n,r,i=0,a=0){return this.backend.copyTextureToBuffer(e.textures[i],t,s,n,r,a)}_projectObject(e,t,s,n,r){if(e.visible===!1)return;if(e.layers.test(t.layers)){if(e.isGroup)s=e.renderOrder,e.isClippingGroup&&e.enabled&&(r=r.getGroupContext(e));else if(e.isLOD)e.autoUpdate===!0&&e.update(t);else if(e.isLight)n.pushLight(e);else if(e.isSprite){if(!e.frustumCulled||lo.intersectsSprite(e)){this.sortObjects===!0&&jt.setFromMatrixPosition(e.matrixWorld).applyMatrix4(Er);const{geometry:u,material:c}=e;c.visible&&n.push(e,u,c,s,jt.z,null,r)}}else if(e.isLineLoop)console.error("THREE.Renderer: Objects of type THREE.LineLoop are not supported. Please use THREE.Line or THREE.LineSegments.");else if((e.isMesh||e.isLine||e.isPoints)&&(!e.frustumCulled||lo.intersectsObject(e))){const{geometry:u,material:c}=e;if(this.sortObjects===!0&&(u.boundingSphere===null&&u.computeBoundingSphere(),jt.copy(u.boundingSphere.center).applyMatrix4(e.matrixWorld).applyMatrix4(Er)),Array.isArray(c)){const l=u.groups;for(let d=0,h=l.length;d0){for(const{material:i}of t)i.side=Ct;this._renderObjects(t,s,n,r,"backSide");for(const{material:i}of t)i.side=No;this._renderObjects(e,s,n,r);for(const{material:i}of t)i.side=js}else this._renderObjects(e,s,n,r)}_renderObjects(e,t,s,n,r=null){for(let i=0,a=e.length;i0,p.isShadowNodeMaterial&&(p.side=r.shadowSide===null?r.side:r.shadowSide,r.depthNode&&r.depthNode.isNode&&(h=p.depthNode,p.depthNode=r.depthNode),r.castShadowNode&&r.castShadowNode.isNode&&(d=p.colorNode,p.colorNode=r.castShadowNode)),r=p}r.transparent===!0&&r.side===js&&r.forceSinglePass===!1?(r.side=Ct,this._handleObjectFunction(e,r,t,s,a,i,u,"backSide"),r.side=No,this._handleObjectFunction(e,r,t,s,a,i,u,c),r.side=js):this._handleObjectFunction(e,r,t,s,a,i,u,c),l!==void 0&&(t.overrideMaterial.positionNode=l),h!==void 0&&(t.overrideMaterial.depthNode=h),d!==void 0&&(t.overrideMaterial.colorNode=d),e.onAfterRender(this,t,s,n,r,i)}_renderObjectDirect(e,t,s,n,r,i,a,u){const c=this._objects.get(e,t,s,n,r,this._currentRenderContext,a,u);c.drawRange=e.geometry.drawRange,c.group=i;const l=this._nodes.needsRefresh(c);l&&(this._nodes.updateBefore(c),this._geometries.updateForRender(c),this._nodes.updateForRender(c),this._bindings.updateForRender(c)),this._pipelines.updateForRender(c),this._currentRenderBundle!==null&&(this.backend.get(this._currentRenderBundle).renderObjects.push(c),c.bundle=this._currentRenderBundle.bundleGroup),this.backend.draw(c,this.info),l&&this._nodes.updateAfter(c)}_createObjectPipeline(e,t,s,n,r,i,a,u){const c=this._objects.get(e,t,s,n,r,this._currentRenderContext,a,u);c.drawRange=e.geometry.drawRange,c.group=i,this._nodes.updateBefore(c),this._geometries.updateForRender(c),this._nodes.updateForRender(c),this._bindings.updateForRender(c),this._pipelines.getForRender(c,this._compilationPromises),this._nodes.updateAfter(c)}get compile(){return this.compileAsync}}class qu{constructor(e=""){this.name=e,this.visibility=0}setVisibility(e){this.visibility|=e}clone(){return Object.assign(new this.constructor,this)}}function dA(o){return o+(ts-o%ts)%ts}class gg extends qu{constructor(e,t=null){super(e),this.isBuffer=!0,this.bytesPerElement=Float32Array.BYTES_PER_ELEMENT,this._buffer=t}get byteLength(){return dA(this._buffer.byteLength)}get buffer(){return this._buffer}update(){return!0}}class mg extends gg{constructor(e,t=null){super(e,t),this.isUniformBuffer=!0}}let hA=0;class yg extends mg{constructor(e,t){super("UniformBuffer_"+hA++,e?e.value:null),this.nodeUniform=e,this.groupNode=t}get buffer(){return this.nodeUniform.value}}class pA extends mg{constructor(e){super(e),this.isUniformsGroup=!0,this._values=null,this.uniforms=[]}addUniform(e){return this.uniforms.push(e),this}removeUniform(e){const t=this.uniforms.indexOf(e);return t!==-1&&this.uniforms.splice(t,1),this}get values(){return this._values===null&&(this._values=Array.from(this.buffer)),this._values}get buffer(){let e=this._buffer;if(e===null){const t=this.byteLength;e=new Float32Array(new ArrayBuffer(t)),this._buffer=e}return e}get byteLength(){let e=0;for(let t=0,s=this.uniforms.length;t0?h:"";a=`${l.name} { + ${d} ${i.name}[${p}]; +}; +`}else a=`${this.getVectorType(i.type)} ${this.getPropertyName(i,e)};`,u=!0;const c=i.node.precision;if(c!==null&&(a=_A[c]+" "+a),u){a=" "+a;const l=i.groupNode.name;(n[l]||(n[l]=[])).push(a)}else a="uniform "+a,s.push(a)}let r="";for(const i in n){const a=n[i];r+=this._getGLSLUniformStruct(e+"_"+i,a.join(` +`))+` +`}return r+=s.join(` +`),r}getTypeFromAttribute(e){let t=super.getTypeFromAttribute(e);if(/^[iu]/.test(t)&&e.gpuType!==ze){let s=e;e.isInterleavedBufferAttribute&&(s=e.data);const n=s.array;n instanceof Uint32Array||n instanceof Int32Array||(t=t.slice(1))}return t}getAttributes(e){let t="";if(e==="vertex"||e==="compute"){const s=this.getAttributesArray();let n=0;for(const r of s)t+=`layout( location = ${n++} ) in ${r.type} ${r.name}; +`}return t}getStructMembers(e){const t=[],s=e.getMemberTypes();for(let n=0;ns*n,1)}u`}getDrawIndex(){return this.renderer.backend.extensions.has("WEBGL_multi_draw")?"uint( gl_DrawID )":null}getFrontFacing(){return"gl_FrontFacing"}getFragCoord(){return"gl_FragCoord.xy"}getFragDepth(){return"gl_FragDepth"}enableExtension(e,t,s=this.shaderStage){const n=this.extensions[s]||(this.extensions[s]=new Map);n.has(e)===!1&&n.set(e,{name:e,behavior:t})}getExtensions(e){const t=[];if(e==="vertex"){const n=this.renderer.backend.extensions;this.object.isBatchedMesh&&n.has("WEBGL_multi_draw")&&this.enableExtension("GL_ANGLE_multi_draw","require",e)}const s=this.extensions[e];if(s!==void 0)for(const{name:n,behavior:r}of s.values())t.push(`#extension ${n} : ${r}`);return t.join(` +`)}getClipDistance(){return"gl_ClipDistance"}isAvailable(e){let t=Qc[e];if(t===void 0){let s;switch(t=!1,e){case"float32Filterable":s="OES_texture_float_linear";break;case"clipDistance":s="WEBGL_clip_cull_distance";break}if(s!==void 0){const n=this.renderer.backend.extensions;n.has(s)&&(n.get(s),t=!0)}Qc[e]=t}return t}isFlipY(){return!0}enableHardwareClipping(e){this.enableExtension("GL_ANGLE_clip_cull_distance","require"),this.builtins.vertex.push(`out float gl_ClipDistance[ ${e} ]`)}registerTransform(e,t){this.transforms.push({varyingName:e,attributeNode:t})}getTransforms(){const e=this.transforms;let t="";for(let s=0;s0&&(s+=` +`),s+=` // flow -> ${c} + `),s+=`${u.code} + `,a===r&&t!=="compute"&&(s+=`// result + `,t==="vertex"?(s+="gl_Position = ",s+=`${u.result};`):t==="fragment"&&(a.outputNode.isOutputStructNode||(s+="fragColor = ",s+=`${u.result};`)))}const i=e[t];i.extensions=this.getExtensions(t),i.uniforms=this.getUniforms(t),i.attributes=this.getAttributes(t),i.varyings=this.getVaryings(t),i.vars=this.getVars(t),i.structs=this.getStructs(t),i.codes=this.getCodes(t),i.transforms=this.getTransforms(t),i.flow=s}this.material!==null?(this.vertexShader=this._getGLSLVertexCode(e.vertex),this.fragmentShader=this._getGLSLFragmentCode(e.fragment)):this.computeShader=this._getGLSLVertexCode(e.compute)}getUniformFromNode(e,t,s,n=null){const r=super.getUniformFromNode(e,t,s,n),i=this.getDataFromNode(e,s,this.globalCache);let a=i.uniformGPU;if(a===void 0){const u=e.groupNode,c=u.name,l=this.getBindGroupArray(c,s);if(t==="texture")a=new Di(r.name,r.node,u),l.push(a);else if(t==="cubeTexture")a=new Tg(r.name,r.node,u),l.push(a);else if(t==="texture3D")a=new _g(r.name,r.node,u),l.push(a);else if(t==="buffer"){e.name=`NodeBuffer_${e.id}`,r.name=`buffer${e.id}`;const d=new yg(e,u);d.name=e.name,l.push(d),a=d}else{const d=this.uniformGroups[s]||(this.uniformGroups[s]={});let h=d[c];h===void 0&&(h=new xg(s+"_"+c,u),d[c]=h,l.push(h)),a=this.getNodeUniform(r,t),h.addUniform(a)}i.uniformGPU=a}return r}}let ho=null,Ls=null;class bg{constructor(e={}){this.parameters=Object.assign({},e),this.data=new WeakMap,this.renderer=null,this.domElement=null}async init(e){this.renderer=e}get coordinateSystem(){}beginRender(){}finishRender(){}beginCompute(){}finishCompute(){}draw(){}compute(){}createProgram(){}destroyProgram(){}createBindings(){}updateBindings(){}updateBinding(){}createRenderPipeline(){}createComputePipeline(){}needsRenderUpdate(){}getRenderCacheKey(){}createNodeBuilder(){}createSampler(){}destroySampler(){}createDefaultTexture(){}createTexture(){}updateTexture(){}generateMipmaps(){}destroyTexture(){}copyTextureToBuffer(){}copyTextureToTexture(){}copyFramebufferToTexture(){}createAttribute(){}createIndexAttribute(){}createStorageAttribute(){}updateAttribute(){}destroyAttribute(){}getContext(){}updateSize(){}updateViewport(){}isOccluded(){}async resolveTimestampAsync(){}async waitForGPU(){}async hasFeatureAsync(){}hasFeature(){}getMaxAnisotropy(){}getDrawingBufferSize(){return ho=ho||new Ye,this.renderer.getDrawingBufferSize(ho)}setScissorTest(){}getClearColor(){const e=this.renderer;return Ls=Ls||new Ru,e.getClearColor(Ls),Ls.getRGB(Ls,this.renderer.currentColorSpace),Ls}getDomElement(){let e=this.domElement;return e===null&&(e=this.parameters.canvas!==void 0?this.parameters.canvas:ym(),"setAttribute"in e&&e.setAttribute("data-engine",`three.js r${xl} webgpu`),this.domElement=e),e}set(e,t){this.data.set(e,t)}get(e){let t=this.data.get(e);return t===void 0&&(t={},this.data.set(e,t)),t}has(e){return this.data.has(e)}delete(e){this.data.delete(e)}dispose(){}}let NA=0;class SA{constructor(e,t){this.buffers=[e.bufferGPU,t],this.type=e.type,this.bufferType=e.bufferType,this.pbo=e.pbo,this.byteLength=e.byteLength,this.bytesPerElement=e.BYTES_PER_ELEMENT,this.version=e.version,this.isInteger=e.isInteger,this.activeBufferIndex=0,this.baseId=e.id}get id(){return`${this.baseId}|${this.activeBufferIndex}`}get bufferGPU(){return this.buffers[this.activeBufferIndex]}get transformBuffer(){return this.buffers[this.activeBufferIndex^1]}switchBuffers(){this.activeBufferIndex^=1}}class vA{constructor(e){this.backend=e}createAttribute(e,t){const s=this.backend,{gl:n}=s,r=e.array,i=e.usage||n.STATIC_DRAW,a=e.isInterleavedBufferAttribute?e.data:e,u=s.get(a);let c=u.bufferGPU;c===void 0&&(c=this._createBuffer(n,t,r,i),u.bufferGPU=c,u.bufferType=t,u.version=a.version);let l;if(r instanceof Float32Array)l=n.FLOAT;else if(r instanceof Uint16Array)e.isFloat16BufferAttribute?l=n.HALF_FLOAT:l=n.UNSIGNED_SHORT;else if(r instanceof Int16Array)l=n.SHORT;else if(r instanceof Uint32Array)l=n.UNSIGNED_INT;else if(r instanceof Int32Array)l=n.INT;else if(r instanceof Int8Array)l=n.BYTE;else if(r instanceof Uint8Array)l=n.UNSIGNED_BYTE;else if(r instanceof Uint8ClampedArray)l=n.UNSIGNED_BYTE;else throw new Error("THREE.WebGLBackend: Unsupported buffer data format: "+r);let d={bufferGPU:c,bufferType:t,type:l,byteLength:r.byteLength,bytesPerElement:r.BYTES_PER_ELEMENT,version:e.version,pbo:e.pbo,isInteger:l===n.INT||l===n.UNSIGNED_INT||e.gpuType===ze,id:NA++};if(e.isStorageBufferAttribute||e.isStorageInstancedBufferAttribute){const h=this._createBuffer(n,t,r,i);d=new SA(d,h)}s.set(e,d)}updateAttribute(e){const t=this.backend,{gl:s}=t,n=e.array,r=e.isInterleavedBufferAttribute?e.data:e,i=t.get(r),a=i.bufferType,u=e.isInterleavedBufferAttribute?e.data.updateRanges:e.updateRanges;if(s.bindBuffer(a,i.bufferGPU),u.length===0)s.bufferSubData(a,0,n);else{for(let c=0,l=u.length;c1?this.enable(n.SAMPLE_ALPHA_TO_COVERAGE):this.disable(n.SAMPLE_ALPHA_TO_COVERAGE),s>0&&this.currentClippingPlanes!==s)for(let u=0;u<8;u++)u{function r(){const i=e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0);if(i===e.WAIT_FAILED){e.deleteSync(t),n();return}if(i===e.TIMEOUT_EXPIRED){requestAnimationFrame(r);return}e.deleteSync(t),s()}r()})}}let el=!1,wr,fo,tl;class CA{constructor(e){this.backend=e,this.gl=e.gl,this.extensions=e.extensions,this.defaultTextures={},el===!1&&(this._init(this.gl),el=!0)}_init(e){wr={[li]:e.REPEAT,[ca]:e.CLAMP_TO_EDGE,[ci]:e.MIRRORED_REPEAT},fo={[bt]:e.NEAREST,[So]:e.NEAREST_MIPMAP_NEAREST,[Xs]:e.NEAREST_MIPMAP_LINEAR,[ft]:e.LINEAR,[_o]:e.LINEAR_MIPMAP_NEAREST,[ms]:e.LINEAR_MIPMAP_LINEAR},tl={[Bl]:e.NEVER,[Ml]:e.ALWAYS,[ua]:e.LESS,[wl]:e.LEQUAL,[El]:e.EQUAL,[Cl]:e.GEQUAL,[Rl]:e.GREATER,[Al]:e.NOTEQUAL}}filterFallback(e){const{gl:t}=this;return e===bt||e===So||e===Xs?t.NEAREST:t.LINEAR}getGLTextureType(e){const{gl:t}=this;let s;return e.isCubeTexture===!0?s=t.TEXTURE_CUBE_MAP:e.isDataArrayTexture===!0||e.isCompressedArrayTexture===!0?s=t.TEXTURE_2D_ARRAY:e.isData3DTexture===!0?s=t.TEXTURE_3D:s=t.TEXTURE_2D,s}getInternalFormat(e,t,s,n,r=!1){const{gl:i,extensions:a}=this;if(e!==null){if(i[e]!==void 0)return i[e];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+e+"'")}let u=t;return t===i.RED&&(s===i.FLOAT&&(u=i.R32F),s===i.HALF_FLOAT&&(u=i.R16F),s===i.UNSIGNED_BYTE&&(u=i.R8),s===i.UNSIGNED_SHORT&&(u=i.R16),s===i.UNSIGNED_INT&&(u=i.R32UI),s===i.BYTE&&(u=i.R8I),s===i.SHORT&&(u=i.R16I),s===i.INT&&(u=i.R32I)),t===i.RED_INTEGER&&(s===i.UNSIGNED_BYTE&&(u=i.R8UI),s===i.UNSIGNED_SHORT&&(u=i.R16UI),s===i.UNSIGNED_INT&&(u=i.R32UI),s===i.BYTE&&(u=i.R8I),s===i.SHORT&&(u=i.R16I),s===i.INT&&(u=i.R32I)),t===i.RG&&(s===i.FLOAT&&(u=i.RG32F),s===i.HALF_FLOAT&&(u=i.RG16F),s===i.UNSIGNED_BYTE&&(u=i.RG8),s===i.UNSIGNED_SHORT&&(u=i.RG16),s===i.UNSIGNED_INT&&(u=i.RG32UI),s===i.BYTE&&(u=i.RG8I),s===i.SHORT&&(u=i.RG16I),s===i.INT&&(u=i.RG32I)),t===i.RG_INTEGER&&(s===i.UNSIGNED_BYTE&&(u=i.RG8UI),s===i.UNSIGNED_SHORT&&(u=i.RG16UI),s===i.UNSIGNED_INT&&(u=i.RG32UI),s===i.BYTE&&(u=i.RG8I),s===i.SHORT&&(u=i.RG16I),s===i.INT&&(u=i.RG32I)),t===i.RGB&&(s===i.FLOAT&&(u=i.RGB32F),s===i.HALF_FLOAT&&(u=i.RGB16F),s===i.UNSIGNED_BYTE&&(u=i.RGB8),s===i.UNSIGNED_SHORT&&(u=i.RGB16),s===i.UNSIGNED_INT&&(u=i.RGB32UI),s===i.BYTE&&(u=i.RGB8I),s===i.SHORT&&(u=i.RGB16I),s===i.INT&&(u=i.RGB32I),s===i.UNSIGNED_BYTE&&(u=n===q&&r===!1?i.SRGB8:i.RGB8),s===i.UNSIGNED_SHORT_5_6_5&&(u=i.RGB565),s===i.UNSIGNED_SHORT_5_5_5_1&&(u=i.RGB5_A1),s===i.UNSIGNED_SHORT_4_4_4_4&&(u=i.RGB4),s===i.UNSIGNED_INT_5_9_9_9_REV&&(u=i.RGB9_E5)),t===i.RGB_INTEGER&&(s===i.UNSIGNED_BYTE&&(u=i.RGB8UI),s===i.UNSIGNED_SHORT&&(u=i.RGB16UI),s===i.UNSIGNED_INT&&(u=i.RGB32UI),s===i.BYTE&&(u=i.RGB8I),s===i.SHORT&&(u=i.RGB16I),s===i.INT&&(u=i.RGB32I)),t===i.RGBA&&(s===i.FLOAT&&(u=i.RGBA32F),s===i.HALF_FLOAT&&(u=i.RGBA16F),s===i.UNSIGNED_BYTE&&(u=i.RGBA8),s===i.UNSIGNED_SHORT&&(u=i.RGBA16),s===i.UNSIGNED_INT&&(u=i.RGBA32UI),s===i.BYTE&&(u=i.RGBA8I),s===i.SHORT&&(u=i.RGBA16I),s===i.INT&&(u=i.RGBA32I),s===i.UNSIGNED_BYTE&&(u=n===q&&r===!1?i.SRGB8_ALPHA8:i.RGBA8),s===i.UNSIGNED_SHORT_4_4_4_4&&(u=i.RGBA4),s===i.UNSIGNED_SHORT_5_5_5_1&&(u=i.RGB5_A1)),t===i.RGBA_INTEGER&&(s===i.UNSIGNED_BYTE&&(u=i.RGBA8UI),s===i.UNSIGNED_SHORT&&(u=i.RGBA16UI),s===i.UNSIGNED_INT&&(u=i.RGBA32UI),s===i.BYTE&&(u=i.RGBA8I),s===i.SHORT&&(u=i.RGBA16I),s===i.INT&&(u=i.RGBA32I)),t===i.DEPTH_COMPONENT&&(s===i.UNSIGNED_INT&&(u=i.DEPTH24_STENCIL8),s===i.FLOAT&&(u=i.DEPTH_COMPONENT32F)),t===i.DEPTH_STENCIL&&s===i.UNSIGNED_INT_24_8&&(u=i.DEPTH24_STENCIL8),(u===i.R16F||u===i.R32F||u===i.RG16F||u===i.RG32F||u===i.RGBA16F||u===i.RGBA32F)&&a.get("EXT_color_buffer_float"),u}setTextureParameters(e,t){const{gl:s,extensions:n,backend:r}=this;s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,t.flipY),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.premultiplyAlpha),s.pixelStorei(s.UNPACK_ALIGNMENT,t.unpackAlignment),s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.NONE),s.texParameteri(e,s.TEXTURE_WRAP_S,wr[t.wrapS]),s.texParameteri(e,s.TEXTURE_WRAP_T,wr[t.wrapT]),(e===s.TEXTURE_3D||e===s.TEXTURE_2D_ARRAY)&&s.texParameteri(e,s.TEXTURE_WRAP_R,wr[t.wrapR]),s.texParameteri(e,s.TEXTURE_MAG_FILTER,fo[t.magFilter]);const i=t.mipmaps!==void 0&&t.mipmaps.length>0,a=t.minFilter===ft&&i?ms:t.minFilter;if(s.texParameteri(e,s.TEXTURE_MIN_FILTER,fo[a]),t.compareFunction&&(s.texParameteri(e,s.TEXTURE_COMPARE_MODE,s.COMPARE_REF_TO_TEXTURE),s.texParameteri(e,s.TEXTURE_COMPARE_FUNC,tl[t.compareFunction])),n.has("EXT_texture_filter_anisotropic")===!0){if(t.magFilter===bt||t.minFilter!==Xs&&t.minFilter!==ms||t.type===ot&&n.has("OES_texture_float_linear")===!1)return;if(t.anisotropy>1){const u=n.get("EXT_texture_filter_anisotropic");s.texParameterf(e,u.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(t.anisotropy,r.getMaxAnisotropy()))}}}createDefaultTexture(e){const{gl:t,backend:s,defaultTextures:n}=this,r=this.getGLTextureType(e);let i=n[r];i===void 0&&(i=t.createTexture(),s.state.bindTexture(r,i),t.texParameteri(r,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(r,t.TEXTURE_MAG_FILTER,t.NEAREST),n[r]=i),s.set(e,{textureGPU:i,glTextureType:r,isDefault:!0})}createTexture(e,t){const{gl:s,backend:n}=this,{levels:r,width:i,height:a,depth:u}=t,c=n.utils.convert(e.format,e.colorSpace),l=n.utils.convert(e.type),d=this.getInternalFormat(e.internalFormat,c,l,e.colorSpace,e.isVideoTexture),h=s.createTexture(),p=this.getGLTextureType(e);n.state.bindTexture(p,h),this.setTextureParameters(p,e),e.isDataArrayTexture||e.isCompressedArrayTexture?s.texStorage3D(s.TEXTURE_2D_ARRAY,r,d,i,a,u):e.isData3DTexture?s.texStorage3D(s.TEXTURE_3D,r,d,i,a,u):e.isVideoTexture||s.texStorage2D(p,r,d,i,a),n.set(e,{textureGPU:h,glTextureType:p,glFormat:c,glType:l,glInternalFormat:d})}copyBufferToTexture(e,t){const{gl:s,backend:n}=this,{textureGPU:r,glTextureType:i,glFormat:a,glType:u}=n.get(t),{width:c,height:l}=t.source.data;s.bindBuffer(s.PIXEL_UNPACK_BUFFER,e),n.state.bindTexture(i,r),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.texSubImage2D(i,0,0,0,c,l,a,u,0),s.bindBuffer(s.PIXEL_UNPACK_BUFFER,null),n.state.unbindTexture()}updateTexture(e,t){const{gl:s}=this,{width:n,height:r}=t,{textureGPU:i,glTextureType:a,glFormat:u,glType:c,glInternalFormat:l}=this.backend.get(e);if(e.isRenderTargetTexture||i===void 0)return;const d=h=>h.isDataTexture?h.image.data:typeof HTMLImageElement<"u"&&h instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&h instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&h instanceof ImageBitmap||h instanceof OffscreenCanvas?h:h.data;if(this.backend.state.bindTexture(a,i),this.setTextureParameters(a,e),e.isCompressedTexture){const h=e.mipmaps,p=t.image;for(let f=0;f0,h=t.renderTarget?t.renderTarget.height:this.backend.getDrawingBufferSize().y;if(d){const p=a!==0||u!==0;let f,m;if(e.isDepthTexture===!0?(f=n.DEPTH_BUFFER_BIT,m=n.DEPTH_ATTACHMENT,t.stencil&&(f|=n.STENCIL_BUFFER_BIT)):(f=n.COLOR_BUFFER_BIT,m=n.COLOR_ATTACHMENT0),p){const x=this.backend.get(t.renderTarget),N=x.framebuffers[t.getCacheKey()],v=x.msaaFrameBuffer;r.bindFramebuffer(n.DRAW_FRAMEBUFFER,N),r.bindFramebuffer(n.READ_FRAMEBUFFER,v);const w=h-u-l;n.blitFramebuffer(a,w,a+c,w+l,a,w,a+c,w+l,f,n.NEAREST),r.bindFramebuffer(n.READ_FRAMEBUFFER,N),r.bindTexture(n.TEXTURE_2D,i),n.copyTexSubImage2D(n.TEXTURE_2D,0,0,0,a,w,c,l),r.unbindTexture()}else{const x=n.createFramebuffer();r.bindFramebuffer(n.DRAW_FRAMEBUFFER,x),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,m,n.TEXTURE_2D,i,0),n.blitFramebuffer(0,0,c,l,0,0,c,l,f,n.NEAREST),n.deleteFramebuffer(x)}}else r.bindTexture(n.TEXTURE_2D,i),n.copyTexSubImage2D(n.TEXTURE_2D,0,0,0,a,h-l-u,c,l),r.unbindTexture();e.generateMipmaps&&this.generateMipmaps(e),this.backend._setFramebuffer(t)}setupRenderBufferStorage(e,t){const{gl:s}=this,n=t.renderTarget,{samples:r,depthTexture:i,depthBuffer:a,stencilBuffer:u,width:c,height:l}=n;if(s.bindRenderbuffer(s.RENDERBUFFER,e),a&&!u){let d=s.DEPTH_COMPONENT24;r>0?(i&&i.isDepthTexture&&i.type===s.FLOAT&&(d=s.DEPTH_COMPONENT32F),s.renderbufferStorageMultisample(s.RENDERBUFFER,r,d,c,l)):s.renderbufferStorage(s.RENDERBUFFER,d,c,l),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,e)}else a&&u&&(r>0?s.renderbufferStorageMultisample(s.RENDERBUFFER,r,s.DEPTH24_STENCIL8,c,l):s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_STENCIL,c,l),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_STENCIL_ATTACHMENT,s.RENDERBUFFER,e))}async copyTextureToBuffer(e,t,s,n,r,i){const{backend:a,gl:u}=this,{textureGPU:c,glFormat:l,glType:d}=this.backend.get(e),h=u.createFramebuffer();u.bindFramebuffer(u.READ_FRAMEBUFFER,h);const p=e.isCubeTexture?u.TEXTURE_CUBE_MAP_POSITIVE_X+i:u.TEXTURE_2D;u.framebufferTexture2D(u.READ_FRAMEBUFFER,u.COLOR_ATTACHMENT0,p,c,0);const f=this._getTypedArrayType(d),m=this._getBytesPerTexel(d,l),N=n*r*m,v=u.createBuffer();u.bindBuffer(u.PIXEL_PACK_BUFFER,v),u.bufferData(u.PIXEL_PACK_BUFFER,N,u.STREAM_READ),u.readPixels(t,s,n,r,l,d,0),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),await a.utils._clientWaitAsync();const w=new f(N/f.BYTES_PER_ELEMENT);return u.bindBuffer(u.PIXEL_PACK_BUFFER,v),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,w),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),u.deleteFramebuffer(h),w}_getTypedArrayType(e){const{gl:t}=this;if(e===t.UNSIGNED_BYTE)return Uint8Array;if(e===t.UNSIGNED_SHORT_4_4_4_4||e===t.UNSIGNED_SHORT_5_5_5_1||e===t.UNSIGNED_SHORT_5_6_5||e===t.UNSIGNED_SHORT)return Uint16Array;if(e===t.UNSIGNED_INT)return Uint32Array;if(e===t.HALF_FLOAT)return Uint16Array;if(e===t.FLOAT)return Float32Array;throw new Error(`Unsupported WebGL type: ${e}`)}_getBytesPerTexel(e,t){const{gl:s}=this;let n=0;if(e===s.UNSIGNED_BYTE&&(n=1),(e===s.UNSIGNED_SHORT_4_4_4_4||e===s.UNSIGNED_SHORT_5_5_5_1||e===s.UNSIGNED_SHORT_5_6_5||e===s.UNSIGNED_SHORT||e===s.HALF_FLOAT)&&(n=2),(e===s.UNSIGNED_INT||e===s.FLOAT)&&(n=4),t===s.RGBA)return n*4;if(t===s.RGB)return n*3;if(t===s.ALPHA)return n}}class EA{constructor(e){this.backend=e,this.gl=this.backend.gl,this.availableExtensions=this.gl.getSupportedExtensions(),this.extensions={}}get(e){let t=this.extensions[e];return t===void 0&&(t=this.gl.getExtension(e),this.extensions[e]=t),t}has(e){return this.availableExtensions.includes(e)}}class wA{constructor(e){this.backend=e,this.maxAnisotropy=null}getMaxAnisotropy(){if(this.maxAnisotropy!==null)return this.maxAnisotropy;const e=this.backend.gl,t=this.backend.extensions;if(t.has("EXT_texture_filter_anisotropic")===!0){const s=t.get("EXT_texture_filter_anisotropic");this.maxAnisotropy=e.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else this.maxAnisotropy=0;return this.maxAnisotropy}}const sl={WEBGL_multi_draw:"WEBGL_multi_draw",WEBGL_compressed_texture_astc:"texture-compression-astc",WEBGL_compressed_texture_etc:"texture-compression-etc2",WEBGL_compressed_texture_etc1:"texture-compression-etc1",WEBGL_compressed_texture_pvrtc:"texture-compression-pvrtc",WEBKIT_WEBGL_compressed_texture_pvrtc:"texture-compression-pvrtc",WEBGL_compressed_texture_s3tc:"texture-compression-bc",EXT_texture_compression_bptc:"texture-compression-bptc",EXT_disjoint_timer_query_webgl2:"timestamp-query"};class MA{constructor(e){this.gl=e.gl,this.extensions=e.extensions,this.info=e.renderer.info,this.mode=null,this.index=0,this.type=null,this.object=null}render(e,t){const{gl:s,mode:n,object:r,type:i,info:a,index:u}=this;u!==0?s.drawElements(n,t,i,e):s.drawArrays(n,e,t),a.update(r,t,n,1)}renderInstances(e,t,s){const{gl:n,mode:r,type:i,index:a,object:u,info:c}=this;s!==0&&(a!==0?n.drawElementsInstanced(r,t,i,e,s):n.drawArraysInstanced(r,e,t,s),c.update(u,t,r,s))}renderMultiDraw(e,t,s){const{extensions:n,mode:r,object:i,info:a}=this;if(s===0)return;const u=n.get("WEBGL_multi_draw");if(u===null)for(let c=0;c0)){const s=t.queryQueue.shift();this.initTimestampQuery(s)}}async resolveTimestampAsync(e,t="render"){if(!this.disjoint||!this.trackTimestamp)return;const s=this.get(e);s.gpuQueries||(s.gpuQueries=[]);for(let n=0;n0&&(s.currentOcclusionQueries=s.occlusionQueries,s.currentOcclusionQueryObjects=s.occlusionQueryObjects,s.lastOcclusionObject=null,s.occlusionQueries=new Array(n),s.occlusionQueryObjects=new Array(n),s.occlusionQueryIndex=0)}finishRender(e){const{gl:t,state:s}=this,n=this.get(e),r=n.previousContext,i=e.occlusionQueryCount;i>0&&(i>n.occlusionQueryIndex&&t.endQuery(t.ANY_SAMPLES_PASSED),this.resolveOccludedAsync(e));const a=e.textures;if(a!==null)for(let u=0;u0){const l=u.framebuffers[e.getCacheKey()],d=t.COLOR_BUFFER_BIT,h=u.msaaFrameBuffer,p=e.textures;s.bindFramebuffer(t.READ_FRAMEBUFFER,h),s.bindFramebuffer(t.DRAW_FRAMEBUFFER,l);for(let f=0;f{let u=0;for(let c=0;c0&&r.add(n[c]),s[c]=null,i.deleteQuery(l),u++)}u1?N.renderInstances(B,v,w):N.render(B,v),u.bindVertexArray(null)}needsRenderUpdate(){return!1}getRenderCacheKey(){return""}createDefaultTexture(e){this.textureUtils.createDefaultTexture(e)}createTexture(e,t){this.textureUtils.createTexture(e,t)}updateTexture(e,t){this.textureUtils.updateTexture(e,t)}generateMipmaps(e){this.textureUtils.generateMipmaps(e)}destroyTexture(e){this.textureUtils.destroyTexture(e)}copyTextureToBuffer(e,t,s,n,r,i){return this.textureUtils.copyTextureToBuffer(e,t,s,n,r,i)}createSampler(){}destroySampler(){}createNodeBuilder(e,t){return new bA(e,t)}createProgram(e){const t=this.gl,{stage:s,code:n}=e,r=s==="fragment"?t.createShader(t.FRAGMENT_SHADER):t.createShader(t.VERTEX_SHADER);t.shaderSource(r,n),t.compileShader(r),this.set(e,{shaderGPU:r})}destroyProgram(e){this.delete(e)}createRenderPipeline(e,t){const s=this.gl,n=e.pipeline,{fragmentProgram:r,vertexProgram:i}=n,a=s.createProgram(),u=this.get(r).shaderGPU,c=this.get(i).shaderGPU;if(s.attachShader(a,u),s.attachShader(a,c),s.linkProgram(a),this.set(n,{programGPU:a,fragmentShader:u,vertexShader:c}),t!==null&&this.parallel){const l=new Promise(d=>{const h=this.parallel,p=()=>{s.getProgramParameter(a,h.COMPLETION_STATUS_KHR)?(this._completeCompile(e,n),d()):requestAnimationFrame(p)};p()});t.push(l);return}this._completeCompile(e,n)}_handleSource(e,t){const s=e.split(` +`),n=[],r=Math.max(t-6,0),i=Math.min(t+6,s.length);for(let a=r;a":" "} ${u}: ${s[a]}`)}return n.join(` +`)}_getShaderErrors(e,t,s){const n=e.getShaderParameter(t,e.COMPILE_STATUS),r=e.getShaderInfoLog(t).trim();if(n&&r==="")return"";const i=/ERROR: 0:(\d+)/.exec(r);if(i){const a=parseInt(i[1]);return s.toUpperCase()+` + +`+r+` + +`+this._handleSource(e.getShaderSource(t),a)}else return r}_logProgramError(e,t,s){if(this.renderer.debug.checkShaderErrors){const n=this.gl,r=n.getProgramInfoLog(e).trim();if(n.getProgramParameter(e,n.LINK_STATUS)===!1)if(typeof this.renderer.debug.onShaderError=="function")this.renderer.debug.onShaderError(n,e,s,t);else{const i=this._getShaderErrors(n,s,"vertex"),a=this._getShaderErrors(n,t,"fragment");console.error("THREE.WebGLProgram: Shader Error "+n.getError()+" - VALIDATE_STATUS "+n.getProgramParameter(e,n.VALIDATE_STATUS)+` + +Program Info Log: `+r+` +`+i+` +`+a)}else r!==""&&console.warn("THREE.WebGLProgram: Program Info Log:",r)}}_completeCompile(e,t){const{state:s,gl:n}=this,r=this.get(t),{programGPU:i,fragmentShader:a,vertexShader:u}=r;n.getProgramParameter(i,n.LINK_STATUS)===!1&&this._logProgramError(i,a,u),s.useProgram(i);const c=e.getBindings();this._setupBindings(c,i),this.set(t,{programGPU:i})}createComputePipeline(e,t){const{state:s,gl:n}=this,r={stage:"fragment",code:`#version 300 es +precision highp float; +void main() {}`};this.createProgram(r);const{computeProgram:i}=e,a=n.createProgram(),u=this.get(r).shaderGPU,c=this.get(i).shaderGPU,l=i.transforms,d=[],h=[];for(let x=0;xsl[n]===e),s=this.extensions;for(let n=0;n0){if(p===void 0){const N=[];p=t.createFramebuffer(),s.bindFramebuffer(t.FRAMEBUFFER,p);const v=[],w=e.textures;for(let B=0;B, + @location( 0 ) vTex : vec2 +}; + +@vertex +fn main( @builtin( vertex_index ) vertexIndex : u32 ) -> VarysStruct { + + var Varys : VarysStruct; + + var pos = array< vec2, 4 >( + vec2( -1.0, 1.0 ), + vec2( 1.0, 1.0 ), + vec2( -1.0, -1.0 ), + vec2( 1.0, -1.0 ) + ); + + var tex = array< vec2, 4 >( + vec2( 0.0, 0.0 ), + vec2( 1.0, 0.0 ), + vec2( 0.0, 1.0 ), + vec2( 1.0, 1.0 ) + ); + + Varys.vTex = tex[ vertexIndex ]; + Varys.Position = vec4( pos[ vertexIndex ], 0.0, 1.0 ); + + return Varys; + +} +`,s=` +@group( 0 ) @binding( 0 ) +var imgSampler : sampler; + +@group( 0 ) @binding( 1 ) +var img : texture_2d; + +@fragment +fn main( @location( 0 ) vTex : vec2 ) -> @location( 0 ) vec4 { + + return textureSample( img, imgSampler, vTex ); + +} +`,n=` +@group( 0 ) @binding( 0 ) +var imgSampler : sampler; + +@group( 0 ) @binding( 1 ) +var img : texture_2d; + +@fragment +fn main( @location( 0 ) vTex : vec2 ) -> @location( 0 ) vec4 { + + return textureSample( img, imgSampler, vec2( vTex.x, 1.0 - vTex.y ) ); + +} +`;this.mipmapSampler=e.createSampler({minFilter:ps.Linear}),this.flipYSampler=e.createSampler({minFilter:ps.Nearest}),this.transferPipelines={},this.flipYPipelines={},this.mipmapVertexShaderModule=e.createShaderModule({label:"mipmapVertex",code:t}),this.mipmapFragmentShaderModule=e.createShaderModule({label:"mipmapFragment",code:s}),this.flipYFragmentShaderModule=e.createShaderModule({label:"flipYFragment",code:n})}getTransferPipeline(e){let t=this.transferPipelines[e];return t===void 0&&(t=this.device.createRenderPipeline({label:`mipmap-${e}`,vertex:{module:this.mipmapVertexShaderModule,entryPoint:"main"},fragment:{module:this.mipmapFragmentShaderModule,entryPoint:"main",targets:[{format:e}]},primitive:{topology:Ks.TriangleStrip,stripIndexFormat:cn.Uint32},layout:"auto"}),this.transferPipelines[e]=t),t}getFlipYPipeline(e){let t=this.flipYPipelines[e];return t===void 0&&(t=this.device.createRenderPipeline({label:`flipY-${e}`,vertex:{module:this.mipmapVertexShaderModule,entryPoint:"main"},fragment:{module:this.flipYFragmentShaderModule,entryPoint:"main",targets:[{format:e}]},primitive:{topology:Ks.TriangleStrip,stripIndexFormat:cn.Uint32},layout:"auto"}),this.flipYPipelines[e]=t),t}flipY(e,t,s=0){const n=t.format,{width:r,height:i}=t.size,a=this.getTransferPipeline(n),u=this.getFlipYPipeline(n),c=this.device.createTexture({size:{width:r,height:i,depthOrArrayLayers:1},format:n,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.TEXTURE_BINDING}),l=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:$e.TwoD,baseArrayLayer:s}),d=c.createView({baseMipLevel:0,mipLevelCount:1,dimension:$e.TwoD,baseArrayLayer:0}),h=this.device.createCommandEncoder({}),p=(f,m,x)=>{const N=f.getBindGroupLayout(0),v=this.device.createBindGroup({layout:N,entries:[{binding:0,resource:this.flipYSampler},{binding:1,resource:m}]}),w=h.beginRenderPass({colorAttachments:[{view:x,loadOp:ye.Clear,storeOp:De.Store,clearValue:[0,0,0,0]}]});w.setPipeline(f),w.setBindGroup(0,v),w.draw(4,1,0,0),w.end()};p(a,l,d),p(u,d,l),this.device.queue.submit([h.finish()]),c.destroy()}generateMipmaps(e,t,s=0){const n=this.get(e);n.useCount===void 0&&(n.useCount=0,n.layers=[]);const r=n.layers[s]||this._mipmapCreateBundles(e,t,s),i=this.device.createCommandEncoder({});this._mipmapRunBundles(i,r),this.device.queue.submit([i.finish()]),n.useCount!==0&&(n.layers[s]=r),n.useCount++}_mipmapCreateBundles(e,t,s){const n=this.getTransferPipeline(t.format),r=n.getBindGroupLayout(0);let i=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:$e.TwoD,baseArrayLayer:s});const a=[];for(let u=1;u1;for(let a=0;a]*\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/i,zA=/([a-z_0-9]+)\s*:\s*([a-z_0-9]+(?:<[\s\S]+?>)?)/ig,ol={f32:"float",i32:"int",u32:"uint",bool:"bool","vec2":"vec2","vec2":"ivec2","vec2":"uvec2","vec2":"bvec2",vec2f:"vec2",vec2i:"ivec2",vec2u:"uvec2",vec2b:"bvec2","vec3":"vec3","vec3":"ivec3","vec3":"uvec3","vec3":"bvec3",vec3f:"vec3",vec3i:"ivec3",vec3u:"uvec3",vec3b:"bvec3","vec4":"vec4","vec4":"ivec4","vec4":"uvec4","vec4":"bvec4",vec4f:"vec4",vec4i:"ivec4",vec4u:"uvec4",vec4b:"bvec4","mat2x2":"mat2",mat2x2f:"mat2","mat3x3":"mat3",mat3x3f:"mat3","mat4x4":"mat4",mat4x4f:"mat4",sampler:"sampler",texture_1d:"texture",texture_2d:"texture",texture_2d_array:"texture",texture_multisampled_2d:"cubeTexture",texture_depth_2d:"depthTexture",texture_depth_multisampled_2d:"depthTexture",texture_3d:"texture3D",texture_cube:"cubeTexture",texture_cube_array:"cubeTexture",texture_storage_1d:"storageTexture",texture_storage_2d:"storageTexture",texture_storage_2d_array:"storageTexture",texture_storage_3d:"storageTexture"},WA=o=>{o=o.trim();const e=o.match(kA);if(e!==null&&e.length===4){const t=e[2],s=[];let n=null;for(;(n=zA.exec(t))!==null;)s.push({name:n[1],type:n[2]});const r=[];for(let l=0;l "+this.outputType:"";return`fn ${e} ( ${this.inputsCode.trim()} ) ${t}`+this.blockCode}}class HA extends pg{parseFunction(e){return new $A(e)}}const Vs=typeof self<"u"?self.GPUShaderStage:{VERTEX:1,FRAGMENT:2,COMPUTE:4},qA={[Ve.READ_ONLY]:"read",[Ve.WRITE_ONLY]:"write",[Ve.READ_WRITE]:"read_write"},al={[li]:"repeat",[ca]:"clamp",[ci]:"mirror"},Br={vertex:Vs?Vs.VERTEX:1,fragment:Vs?Vs.FRAGMENT:2,compute:Vs?Vs.COMPUTE:4},ul={instance:!0,swizzleAssign:!1,storageBuffer:!0},KA={"^^":"tsl_xor"},XA={float:"f32",int:"i32",uint:"u32",bool:"bool",color:"vec3",vec2:"vec2",ivec2:"vec2",uvec2:"vec2",bvec2:"vec2",vec3:"vec3",ivec3:"vec3",uvec3:"vec3",bvec3:"vec3",vec4:"vec4",ivec4:"vec4",uvec4:"vec4",bvec4:"vec4",mat2:"mat2x2",mat3:"mat3x3",mat4:"mat4x4"},cl={},it={tsl_xor:new Ne("fn tsl_xor( a : bool, b : bool ) -> bool { return ( a || b ) && !( a && b ); }"),mod_float:new Ne("fn tsl_mod_float( x : f32, y : f32 ) -> f32 { return x - y * floor( x / y ); }"),mod_vec2:new Ne("fn tsl_mod_vec2( x : vec2f, y : vec2f ) -> vec2f { return x - y * floor( x / y ); }"),mod_vec3:new Ne("fn tsl_mod_vec3( x : vec3f, y : vec3f ) -> vec3f { return x - y * floor( x / y ); }"),mod_vec4:new Ne("fn tsl_mod_vec4( x : vec4f, y : vec4f ) -> vec4f { return x - y * floor( x / y ); }"),equals_bool:new Ne("fn tsl_equals_bool( a : bool, b : bool ) -> bool { return a == b; }"),equals_bvec2:new Ne("fn tsl_equals_bvec2( a : vec2f, b : vec2f ) -> vec2 { return vec2( a.x == b.x, a.y == b.y ); }"),equals_bvec3:new Ne("fn tsl_equals_bvec3( a : vec3f, b : vec3f ) -> vec3 { return vec3( a.x == b.x, a.y == b.y, a.z == b.z ); }"),equals_bvec4:new Ne("fn tsl_equals_bvec4( a : vec4f, b : vec4f ) -> vec4 { return vec4( a.x == b.x, a.y == b.y, a.z == b.z, a.w == b.w ); }"),repeatWrapping_float:new Ne("fn tsl_repeatWrapping_float( coord: f32 ) -> f32 { return fract( coord ); }"),mirrorWrapping_float:new Ne("fn tsl_mirrorWrapping_float( coord: f32 ) -> f32 { let mirrored = fract( coord * 0.5 ) * 2.0; return 1.0 - abs( 1.0 - mirrored ); }"),clampWrapping_float:new Ne("fn tsl_clampWrapping_float( coord: f32 ) -> f32 { return clamp( coord, 0.0, 1.0 ); }"),biquadraticTexture:new Ne(` +fn tsl_biquadraticTexture( map : texture_2d, coord : vec2f, iRes : vec2u, level : u32 ) -> vec4f { + + let res = vec2f( iRes ); + + let uvScaled = coord * res; + let uvWrapping = ( ( uvScaled % res ) + res ) % res; + + // https://www.shadertoy.com/view/WtyXRy + + let uv = uvWrapping - 0.5; + let iuv = floor( uv ); + let f = fract( uv ); + + let rg1 = textureLoad( map, vec2u( iuv + vec2( 0.5, 0.5 ) ) % iRes, level ); + let rg2 = textureLoad( map, vec2u( iuv + vec2( 1.5, 0.5 ) ) % iRes, level ); + let rg3 = textureLoad( map, vec2u( iuv + vec2( 0.5, 1.5 ) ) % iRes, level ); + let rg4 = textureLoad( map, vec2u( iuv + vec2( 1.5, 1.5 ) ) % iRes, level ); + + return mix( mix( rg1, rg2, f.x ), mix( rg3, rg4, f.x ), f.y ); + +} +`)},vn={dFdx:"dpdx",dFdy:"- dpdy",mod_float:"tsl_mod_float",mod_vec2:"tsl_mod_vec2",mod_vec3:"tsl_mod_vec3",mod_vec4:"tsl_mod_vec4",equals_bool:"tsl_equals_bool",equals_bvec2:"tsl_equals_bvec2",equals_bvec3:"tsl_equals_bvec3",equals_bvec4:"tsl_equals_bvec4",inversesqrt:"inverseSqrt",bitcast:"bitcast"};typeof navigator<"u"&&/Windows/g.test(navigator.userAgent)&&(it.pow_float=new Ne("fn tsl_pow_float( a : f32, b : f32 ) -> f32 { return select( -pow( -a, b ), pow( a, b ), a > 0.0 ); }"),it.pow_vec2=new Ne("fn tsl_pow_vec2( a : vec2f, b : vec2f ) -> vec2f { return vec2f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ) ); }",[it.pow_float]),it.pow_vec3=new Ne("fn tsl_pow_vec3( a : vec3f, b : vec3f ) -> vec3f { return vec3f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ), tsl_pow_float( a.z, b.z ) ); }",[it.pow_float]),it.pow_vec4=new Ne("fn tsl_pow_vec4( a : vec4f, b : vec4f ) -> vec4f { return vec4f( tsl_pow_float( a.x, b.x ), tsl_pow_float( a.y, b.y ), tsl_pow_float( a.z, b.z ), tsl_pow_float( a.w, b.w ) ); }",[it.pow_float]),vn.pow_float="tsl_pow_float",vn.pow_vec2="tsl_pow_vec2",vn.pow_vec3="tsl_pow_vec3",vn.pow_vec4="tsl_pow_vec4");let Ng="";(typeof navigator<"u"&&/Firefox|Deno/g.test(navigator.userAgent))!==!0&&(Ng+=`diagnostic( off, derivative_uniformity ); +`);class YA extends dg{constructor(e,t){super(e,t,new HA),this.uniformGroups={},this.builtins={},this.directives={},this.scopedArrays=new Map}needsToWorkingColorSpace(e){return e.isVideoTexture===!0&&e.colorSpace!==Dn}_generateTextureSample(e,t,s,n,r=this.shaderStage){return r==="fragment"?n?`textureSample( ${t}, ${t}_sampler, ${s}, ${n} )`:`textureSample( ${t}, ${t}_sampler, ${s} )`:this.isFilteredTexture(e)?this.generateFilteredTexture(e,t,s):this.generateTextureLod(e,t,s,n,"0")}_generateVideoSample(e,t,s=this.shaderStage){if(s==="fragment")return`textureSampleBaseClampToEdge( ${e}, ${e}_sampler, vec2( ${t}.x, 1.0 - ${t}.y ) )`;console.error(`WebGPURenderer: THREE.VideoTexture does not support ${s} shader.`)}_generateTextureSampleLevel(e,t,s,n,r,i=this.shaderStage){return(i==="fragment"||i==="compute")&&this.isUnfilterable(e)===!1?`textureSampleLevel( ${t}, ${t}_sampler, ${s}, ${n} )`:this.isFilteredTexture(e)?this.generateFilteredTexture(e,t,s,n):this.generateTextureLod(e,t,s,r,n)}generateWrapFunction(e){const t=`tsl_coord_${al[e.wrapS]}S_${al[e.wrapT]}_${e.isData3DTexture?"3d":"2d"}T`;let s=cl[t];if(s===void 0){const n=[],r=e.isData3DTexture?"vec3f":"vec2f";let i=`fn ${t}( coord : ${r} ) -> ${r} { + + return ${r}( +`;const a=(u,c)=>{u===li?(n.push(it.repeatWrapping_float),i+=` tsl_repeatWrapping_float( coord.${c} )`):u===ca?(n.push(it.clampWrapping_float),i+=` tsl_clampWrapping_float( coord.${c} )`):u===ci?(n.push(it.mirrorWrapping_float),i+=` tsl_mirrorWrapping_float( coord.${c} )`):(i+=` coord.${c}`,console.warn(`WebGPURenderer: Unsupported texture wrap type "${u}" for vertex shader.`))};a(e.wrapS,"x"),i+=`, +`,a(e.wrapT,"y"),e.isData3DTexture&&(i+=`, +`,a(e.wrapR,"z")),i+=` + ); + +} +`,cl[t]=s=new Ne(i,n)}return s.build(this),t}generateTextureDimension(e,t,s){const n=this.getDataFromNode(e,this.shaderStage,this.globalCache);n.dimensionsSnippet===void 0&&(n.dimensionsSnippet={});let r=n.dimensionsSnippet[s];if(n.dimensionsSnippet[s]===void 0){let i,a;const{primarySamples:u}=this.renderer.backend.utils.getTextureSampleData(e),c=u>1;e.isData3DTexture?a="vec3":a="vec2",c||e.isVideoTexture||e.isStorageTexture?i=t:i=`${t}${s?`, u32( ${s} )`:""}`,r=new Ir(new Vr(`textureDimensions( ${i} )`,a)),n.dimensionsSnippet[s]=r,(e.isDataArrayTexture||e.isData3DTexture)&&(n.arrayLayerCount=new Ir(new Vr(`textureNumLayers(${t})`,"u32"))),e.isTextureCube&&(n.cubeFaceCount=new Ir(new Vr("6u","u32")))}return r.build(this)}generateFilteredTexture(e,t,s,n="0u"){this._include("biquadraticTexture");const r=this.generateWrapFunction(e),i=this.generateTextureDimension(e,t,n);return`tsl_biquadraticTexture( ${t}, ${r}( ${s} ), ${i}, u32( ${n} ) )`}generateTextureLod(e,t,s,n,r="0u"){const i=this.generateWrapFunction(e),a=this.generateTextureDimension(e,t,r),u=e.isData3DTexture?"vec3":"vec2",c=`${u}(${i}(${s}) * ${u}(${a}))`;return this.generateTextureLoad(e,t,c,n,r)}generateTextureLoad(e,t,s,n,r="0u"){return e.isVideoTexture===!0||e.isStorageTexture===!0?`textureLoad( ${t}, ${s} )`:n?`textureLoad( ${t}, ${s}, ${n}, u32( ${r} ) )`:`textureLoad( ${t}, ${s}, u32( ${r} ) )`}generateTextureStore(e,t,s,n){return`textureStore( ${t}, ${s}, ${n} )`}isSampleCompare(e){return e.isDepthTexture===!0&&e.compareFunction!==null}isUnfilterable(e){return this.getComponentTypeFromTexture(e)!=="float"||!this.isAvailable("float32Filterable")&&e.isDataTexture===!0&&e.type===ot||this.isSampleCompare(e)===!1&&e.minFilter===bt&&e.magFilter===bt||this.renderer.backend.utils.getTextureSampleData(e).primarySamples>1}generateTexture(e,t,s,n,r=this.shaderStage){let i=null;return e.isVideoTexture===!0?i=this._generateVideoSample(t,s,r):this.isUnfilterable(e)?i=this.generateTextureLod(e,t,s,n,"0",r):i=this._generateTextureSample(e,t,s,n,r),i}generateTextureGrad(e,t,s,n,r,i=this.shaderStage){if(i==="fragment")return`textureSampleGrad( ${t}, ${t}_sampler, ${s}, ${n[0]}, ${n[1]} )`;console.error(`WebGPURenderer: THREE.TextureNode.gradient() does not support ${i} shader.`)}generateTextureCompare(e,t,s,n,r,i=this.shaderStage){if(i==="fragment")return`textureSampleCompare( ${t}, ${t}_sampler, ${s}, ${n} )`;console.error(`WebGPURenderer: THREE.DepthTexture.compareFunction() does not support ${i} shader.`)}generateTextureLevel(e,t,s,n,r,i=this.shaderStage){let a=null;return e.isVideoTexture===!0?a=this._generateVideoSample(t,s,i):a=this._generateTextureSampleLevel(e,t,s,n,r,i),a}generateTextureBias(e,t,s,n,r,i=this.shaderStage){if(i==="fragment")return`textureSampleBias( ${t}, ${t}_sampler, ${s}, ${n} )`;console.error(`WebGPURenderer: THREE.TextureNode.biasNode does not support ${i} shader.`)}getPropertyName(e,t=this.shaderStage){if(e.isNodeVarying===!0&&e.needsInterpolation===!0){if(t==="vertex")return`varyings.${e.name}`}else if(e.isNodeUniform===!0){const s=e.name,n=e.type;return n==="texture"||n==="cubeTexture"||n==="storageTexture"||n==="texture3D"?s:n==="buffer"||n==="storageBuffer"||n==="indirectStorageBuffer"?`NodeBuffer_${e.id}.${s}`:e.groupNode.name+"."+s}return super.getPropertyName(e)}getOutputStructName(){return"output"}_getUniformGroupCount(e){return Object.keys(this.uniforms[e]).length}getFunctionOperator(e){const t=KA[e];return t!==void 0?(this._include(t),t):null}getNodeAccess(e,t){return t!=="compute"?Ve.READ_ONLY:e.access}getStorageAccess(e,t){return qA[this.getNodeAccess(e,t)]}getUniformFromNode(e,t,s,n=null){const r=super.getUniformFromNode(e,t,s,n),i=this.getDataFromNode(e,s,this.globalCache);if(i.uniformGPU===void 0){let a;const u=e.groupNode,c=u.name,l=this.getBindGroupArray(c,s);if(t==="texture"||t==="cubeTexture"||t==="storageTexture"||t==="texture3D"){let d=null;const h=this.getNodeAccess(e,s);if(t==="texture"||t==="storageTexture"?d=new Di(r.name,r.node,u,h):t==="cubeTexture"?d=new Tg(r.name,r.node,u,h):t==="texture3D"&&(d=new _g(r.name,r.node,u,h)),d.store=e.isStorageTextureNode===!0,d.setVisibility(Br[s]),(s==="fragment"||s==="compute")&&this.isUnfilterable(e.value)===!1&&d.store===!1){const p=new UA(`${r.name}_sampler`,r.node,u);p.setVisibility(Br[s]),l.push(p,d),a=[p,d]}else l.push(d),a=[d]}else if(t==="buffer"||t==="storageBuffer"||t==="indirectStorageBuffer"){const d=t==="buffer"?yg:LA,h=new d(e,u);h.setVisibility(Br[s]),l.push(h),a=h}else{const d=this.uniformGroups[s]||(this.uniformGroups[s]={});let h=d[c];h===void 0&&(h=new xg(c,u),h.setVisibility(Br[s]),d[c]=h,l.push(h)),a=this.getNodeUniform(r,t),h.addUniform(a)}i.uniformGPU=a}return r}getBuiltin(e,t,s,n=this.shaderStage){const r=this.builtins[n]||(this.builtins[n]=new Map);return r.has(e)===!1&&r.set(e,{name:e,property:t,type:s}),t}hasBuiltin(e,t=this.shaderStage){return this.builtins[t]!==void 0&&this.builtins[t].has(e)}getVertexIndex(){return this.shaderStage==="vertex"?this.getBuiltin("vertex_index","vertexIndex","u32","attribute"):"vertexIndex"}buildFunctionCode(e){const t=e.layout,s=this.flowShaderNode(e),n=[];for(const i of t.inputs)n.push(i.name+" : "+this.getType(i.type));let r=`fn ${t.name}( ${n.join(", ")} ) -> ${this.getType(t.type)} { +${s.vars} +${s.code} +`;return s.result&&(r+=` return ${s.result}; +`),r+=` +} +`,r}getInstanceIndex(){return this.shaderStage==="vertex"?this.getBuiltin("instance_index","instanceIndex","u32","attribute"):"instanceIndex"}getInvocationLocalIndex(){return this.getBuiltin("local_invocation_index","invocationLocalIndex","u32","attribute")}getSubgroupSize(){return this.enableSubGroups(),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute")}getInvocationSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_invocation_id","invocationSubgroupIndex","u32","attribute")}getSubgroupIndex(){return this.enableSubGroups(),this.getBuiltin("subgroup_id","subgroupIndex","u32","attribute")}getDrawIndex(){return null}getFrontFacing(){return this.getBuiltin("front_facing","isFront","bool")}getFragCoord(){return this.getBuiltin("position","fragCoord","vec4")+".xy"}getFragDepth(){return"output."+this.getBuiltin("frag_depth","depth","f32","output")}getClipDistance(){return"varyings.hw_clip_distances"}isFlipY(){return!1}enableDirective(e,t=this.shaderStage){(this.directives[t]||(this.directives[t]=new Set)).add(e)}getDirectives(e){const t=[],s=this.directives[e];if(s!==void 0)for(const n of s)t.push(`enable ${n};`);return t.join(` +`)}enableSubGroups(){this.enableDirective("subgroups")}enableSubgroupsF16(){this.enableDirective("subgroups-f16")}enableClipDistances(){this.enableDirective("clip_distances")}enableShaderF16(){this.enableDirective("f16")}enableDualSourceBlending(){this.enableDirective("dual_source_blending")}enableHardwareClipping(e){this.enableClipDistances(),this.getBuiltin("clip_distances","hw_clip_distances",`array`,"vertex")}getBuiltins(e){const t=[],s=this.builtins[e];if(s!==void 0)for(const{name:n,property:r,type:i}of s.values())t.push(`@builtin( ${n} ) ${r} : ${i}`);return t.join(`, + `)}getScopedArray(e,t,s,n){return this.scopedArrays.has(e)===!1&&this.scopedArrays.set(e,{name:e,scope:t,bufferType:s,bufferCount:n}),e}getScopedArrays(e){if(e!=="compute")return;const t=[];for(const{name:s,scope:n,bufferType:r,bufferCount:i}of this.scopedArrays.values()){const a=this.getType(r);t.push(`var<${n}> ${s}: array< ${a}, ${i} >;`)}return t.join(` +`)}getAttributes(e){const t=[];if(e==="compute"&&(this.getBuiltin("global_invocation_id","id","vec3","attribute"),this.getBuiltin("workgroup_id","workgroupId","vec3","attribute"),this.getBuiltin("local_invocation_id","localId","vec3","attribute"),this.getBuiltin("num_workgroups","numWorkgroups","vec3","attribute"),this.renderer.hasFeature("subgroups")&&(this.enableDirective("subgroups",e),this.getBuiltin("subgroup_size","subgroupSize","u32","attribute"))),e==="vertex"||e==="compute"){const s=this.getBuiltins("attribute");s&&t.push(s);const n=this.getAttributesArray();for(let r=0,i=n.length;r`)}const n=this.getBuiltins("output");return n&&t.push(" "+n),t.join(`, +`)}getStructs(e){const t=[],s=this.structs[e];for(let n=0,r=s.length;n output : ${a}; + +`)}return t.join(` + +`)}getVar(e,t){return`var ${t} : ${this.getType(e)}`}getVars(e){const t=[],s=this.vars[e];if(s!==void 0)for(const n of s)t.push(` ${this.getVar(n.type,n.name)};`);return` +${t.join(` +`)} +`}getVaryings(e){const t=[];if(e==="vertex"&&this.getBuiltin("position","Vertex","vec4","vertex"),e==="vertex"||e==="fragment"){const r=this.varyings,i=this.vars[e];for(let a=0;a1&&(p="_multisampled"),d.isCubeTexture===!0)h="texture_cube";else if(d.isDataArrayTexture===!0||d.isCompressedArrayTexture===!0)h="texture_2d_array";else if(d.isDepthTexture===!0)h=`texture_depth${p}_2d`;else if(d.isVideoTexture===!0)h="texture_external";else if(d.isData3DTexture===!0)h="texture_3d";else if(u.node.isStorageTextureNode===!0){const m=ia(d),x=this.getStorageAccess(u.node,e);h=`texture_storage_2d<${m}, ${x}>`}else{const m=this.getComponentTypeFromTexture(d).charAt(0);h=`texture${p}_2d<${m}32>`}s.push(`@binding( ${l.binding++} ) @group( ${l.group} ) var ${u.name} : ${h};`)}else if(u.type==="buffer"||u.type==="storageBuffer"||u.type==="indirectStorageBuffer"){const d=u.node,h=this.getType(d.bufferType),p=d.bufferCount,f=p>0&&u.type==="buffer"?", "+p:"",m=d.isAtomic?`atomic<${h}>`:`${h}`,x=` ${u.name} : array< ${m}${f} > +`,N=d.isStorageBufferNode?`storage, ${this.getStorageAccess(d,e)}`:"uniform";n.push(this._getWGSLStructBinding("NodeBuffer_"+d.id,x,N,l.binding++,l.group))}else{const d=this.getType(this.getVectorType(u.type)),h=u.groupNode.name;(i[h]||(i[h]={index:l.binding++,id:l.group,snippets:[]})).snippets.push(` ${u.name} : ${d}`)}}for(const u in i){const c=i[u];r.push(this._getWGSLStructBinding(u,c.snippets.join(`, +`),"uniform",c.index,c.id))}let a=s.join(` +`);return a+=n.join(` +`),a+=r.join(` +`),a}buildCode(){const e=this.material!==null?{fragment:{},vertex:{}}:{compute:{}};this.sortBindingGroups();for(const t in e){const s=e[t];s.uniforms=this.getUniforms(t),s.attributes=this.getAttributes(t),s.varyings=this.getVaryings(t),s.structs=this.getStructs(t),s.vars=this.getVars(t),s.codes=this.getCodes(t),s.directives=this.getDirectives(t),s.scopedArrays=this.getScopedArrays(t);let n=`// code + +`;n+=this.flowCode[t];const r=this.flowNodes[t],i=r[r.length-1],a=i.outputNode,u=a!==void 0&&a.isOutputStructNode===!0;for(const c of r){const l=this.getFlowData(c),d=c.name;if(d&&(n.length>0&&(n+=` +`),n+=` // flow -> ${d} + `),n+=`${l.code} + `,c===i&&t!=="compute"){if(n+=`// result + + `,t==="vertex")n+=`varyings.Vertex = ${l.result};`;else if(t==="fragment")if(u)s.returnType=a.nodeType,n+=`return ${l.result};`;else{let h=" @location(0) color: vec4";const p=this.getBuiltins("output");p&&(h+=`, + `+p),s.returnType="OutputStruct",s.structs+=this._getWGSLStruct("OutputStruct",h),s.structs+=` +var output : OutputStruct; + +`,n+=`output.color = ${l.result}; + + return output;`}}}s.flow=n}this.material!==null?(this.vertexShader=this._getWGSLVertexCode(e.vertex),this.fragmentShader=this._getWGSLFragmentCode(e.fragment)):this.computeShader=this._getWGSLComputeCode(e.compute,(this.object.workgroupSize||[64]).join(", "))}getMethod(e,t=null){let s;return t!==null&&(s=this._getWGSLMethod(e+"_"+t)),s===void 0&&(s=this._getWGSLMethod(e)),s||e}getType(e){return XA[e]||e}isAvailable(e){let t=ul[e];return t===void 0&&(e==="float32Filterable"?t=this.renderer.hasFeature("float32-filterable"):e==="clipDistance"&&(t=this.renderer.hasFeature("clip-distances")),ul[e]=t),t}_getWGSLMethod(e){return it[e]!==void 0&&this._include(e),vn[e]}_include(e){const t=it[e];return t.build(this),this.currentFunctionNode!==null&&this.currentFunctionNode.includes.push(t),t}_getWGSLVertexCode(e){return`${this.getSignature()} +// directives +${e.directives} + +// uniforms +${e.uniforms} + +// varyings +${e.varyings} +var varyings : VaryingsStruct; + +// codes +${e.codes} + +@vertex +fn main( ${e.attributes} ) -> VaryingsStruct { + + // vars + ${e.vars} + + // flow + ${e.flow} + + return varyings; + +} +`}_getWGSLFragmentCode(e){return`${this.getSignature()} +// global +${Ng} + +// uniforms +${e.uniforms} + +// structs +${e.structs} + +// codes +${e.codes} + +@fragment +fn main( ${e.varyings} ) -> ${e.returnType} { + + // vars + ${e.vars} + + // flow + ${e.flow} + +} +`}_getWGSLComputeCode(e,t){return`${this.getSignature()} +// directives +${e.directives} + +// system +var instanceIndex : u32; + +// locals +${e.scopedArrays} + +// uniforms +${e.uniforms} + +// codes +${e.codes} + +@compute @workgroup_size( ${t} ) +fn main( ${e.attributes} ) { + + // system + instanceIndex = id.x + id.y * numWorkgroups.x * u32(${t}) + id.z * numWorkgroups.x * numWorkgroups.y * u32(${t}); + + // vars + ${e.vars} + + // flow + ${e.flow} + +} +`}_getWGSLStruct(e,t){return` +struct ${e} { +${t} +};`}_getWGSLStructBinding(e,t,s,n=0,r=0){const i=e+"Struct";return`${this._getWGSLStruct(i,t)} +@binding( ${n} ) @group( ${r} ) +var<${s}> ${e} : ${i};`}}class jA{constructor(e){this.backend=e}getCurrentDepthStencilFormat(e){let t;return e.depthTexture!==null?t=this.getTextureFormatGPU(e.depthTexture):e.depth&&e.stencil?t=_.Depth24PlusStencil8:e.depth&&(t=_.Depth24Plus),t}getTextureFormatGPU(e){return this.backend.get(e).format}getTextureSampleData(e){let t;if(e.isFramebufferTexture)t=1;else if(e.isDepthTexture&&!e.renderTarget){const r=this.backend.renderer,i=r.getRenderTarget();t=i?i.samples:r.samples}else e.renderTarget&&(t=e.renderTarget.samples);t=t||1;const s=t>1&&e.renderTarget!==null&&e.isDepthTexture!==!0&&e.isFramebufferTexture!==!0;return{samples:t,primarySamples:s?1:t,isMSAA:s}}getCurrentColorFormat(e){let t;return e.textures!==null?t=this.getTextureFormatGPU(e.textures[0]):t=this.getPreferredCanvasFormat(),t}getCurrentColorSpace(e){return e.textures!==null?e.textures[0].colorSpace:this.backend.renderer.outputColorSpace}getPrimitiveTopology(e,t){if(e.isPoints)return Ks.PointList;if(e.isLineSegments||e.isMesh&&t.wireframe===!0)return Ks.LineList;if(e.isLine)return Ks.LineStrip;if(e.isMesh)return Ks.TriangleList}getSampleCount(e){let t=1;return e>1&&(t=Math.pow(2,Math.floor(Math.log2(e))),t===2&&(t=4)),t}getSampleCountRenderContext(e){return e.textures!==null?this.getSampleCount(e.sampleCount):this.getSampleCount(this.backend.renderer.samples)}getPreferredCanvasFormat(){return navigator.userAgent.includes("Quest")?_.BGRA8Unorm:navigator.gpu.getPreferredCanvasFormat()}}const QA=new Map([[Int8Array,["sint8","snorm8"]],[Uint8Array,["uint8","unorm8"]],[Int16Array,["sint16","snorm16"]],[Uint16Array,["uint16","unorm16"]],[Int32Array,["sint32","snorm32"]],[Uint32Array,["uint32","unorm32"]],[Float32Array,["float32"]]]),ZA=new Map([[yl,["float16"]]]),JA=new Map([[Int32Array,"sint32"],[Int16Array,"sint32"],[Uint32Array,"uint32"],[Uint16Array,"uint32"],[Float32Array,"float32"]]);class eR{constructor(e){this.backend=e}createAttribute(e,t){const s=this._getBufferAttribute(e),n=this.backend,r=n.get(s);let i=r.buffer;if(i===void 0){const a=n.device;let u=s.array;if(e.normalized===!1&&(u.constructor===Int16Array||u.constructor===Uint16Array)){const l=new Uint32Array(u.length);for(let d=0;d1&&(u.multisampled=!0,i.texture.isDepthTexture||(u.sampleType=Is.UnfilterableFloat)),i.texture.isDepthTexture)u.sampleType=Is.Depth;else if(i.texture.isDataTexture||i.texture.isDataArrayTexture||i.texture.isData3DTexture){const l=i.texture.type;l===ze?u.sampleType=Is.SInt:l===Le?u.sampleType=Is.UInt:l===ot&&(this.backend.hasFeature("float32-filterable")?u.sampleType=Is.Float:u.sampleType=Is.UnfilterableFloat)}i.isSampledCubeTexture?u.viewDimension=$e.Cube:i.texture.isDataArrayTexture||i.texture.isCompressedArrayTexture?u.viewDimension=$e.TwoDArray:i.isSampledTexture3D&&(u.viewDimension=$e.ThreeD),a.texture=u}else console.error(`WebGPUBindingUtils: Unsupported binding "${i}".`);n.push(a)}return s.createBindGroupLayout({entries:n})}createBindings(e,t,s,n=0){const{backend:r,bindGroupLayoutCache:i}=this,a=r.get(e);let u=i.get(e.bindingsReference);u===void 0&&(u=this.createBindingsLayout(e),i.set(e.bindingsReference,u));let c;s>0&&(a.groups===void 0&&(a.groups=[],a.versions=[]),a.versions[s]===n&&(c=a.groups[s])),c===void 0&&(c=this.createBindGroup(e,u),s>0&&(a.groups[s]=c,a.versions[s]=n)),a.group=c,a.layout=u}updateBinding(e){const t=this.backend,s=t.device,n=e.buffer,r=t.get(e).buffer;s.queue.writeBuffer(r,0,n,0)}createBindGroup(e,t){const s=this.backend,n=s.device;let r=0;const i=[];for(const a of e.bindings){if(a.isUniformBuffer){const u=s.get(a);if(u.buffer===void 0){const c=a.byteLength,l=GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,d=n.createBuffer({label:"bindingBuffer_"+a.name,size:c,usage:l});u.buffer=d}i.push({binding:r,resource:{buffer:u.buffer}})}else if(a.isStorageBuffer){const u=s.get(a);if(u.buffer===void 0){const c=a.attribute;u.buffer=s.get(c).buffer}i.push({binding:r,resource:{buffer:u.buffer}})}else if(a.isSampler){const u=s.get(a.texture);i.push({binding:r,resource:u.sampler})}else if(a.isSampledTexture){const u=s.get(a.texture);let c;if(u.externalTexture!==void 0)c=n.importExternalTexture({source:u.externalTexture});else{const l=a.store?1:u.texture.mipLevelCount,d=`view-${u.texture.width}-${u.texture.height}-${l}`;if(c=u[d],c===void 0){const h=BA.All;let p;a.isSampledCubeTexture?p=$e.Cube:a.isSampledTexture3D?p=$e.ThreeD:a.texture.isDataArrayTexture||a.texture.isCompressedArrayTexture?p=$e.TwoDArray:p=$e.TwoD,c=u[d]=u.texture.createView({aspect:h,dimension:p,mipLevelCount:l})}}i.push({binding:r,resource:c})}r++}return n.createBindGroup({label:"bindGroup_"+e.name,layout:t,entries:i})}}class sR{constructor(e){this.backend=e}_getSampleCount(e){return this.backend.utils.getSampleCountRenderContext(e)}createRenderPipeline(e,t){const{object:s,material:n,geometry:r,pipeline:i}=e,{vertexProgram:a,fragmentProgram:u}=i,c=this.backend,l=c.device,d=c.utils,h=c.get(i),p=[];for(const Ze of e.getBindings()){const Dt=c.get(Ze);p.push(Dt.layout)}const f=c.attributeUtils.createShaderVertexBuffers(e);let m;n.transparent===!0&&n.blending!==en&&(m=this._getBlending(n));let x={};n.stencilWrite===!0&&(x={compare:this._getStencilCompare(n),failOp:this._getStencilOperation(n.stencilFail),depthFailOp:this._getStencilOperation(n.stencilZFail),passOp:this._getStencilOperation(n.stencilZPass)});const N=this._getColorWriteMask(n),v=[];if(e.context.textures!==null){const Ze=e.context.textures;for(let Dt=0;Dt1},layout:l.createPipelineLayout({bindGroupLayouts:p})},ie={},Z=e.context.depth,Qe=e.context.stencil;if((Z===!0||Qe===!0)&&(Z===!0&&(ie.format=I,ie.depthWriteEnabled=n.depthWrite,ie.depthCompare=L),Qe===!0&&(ie.stencilFront=x,ie.stencilBack={},ie.stencilReadMask=n.stencilFuncMask,ie.stencilWriteMask=n.stencilWriteMask),X.depthStencil=ie),t===null)h.pipeline=l.createRenderPipeline(X);else{const Ze=new Promise(Dt=>{l.createRenderPipelineAsync(X).then(Ms=>{h.pipeline=Ms,Dt()})});t.push(Ze)}}createBundleEncoder(e){const t=this.backend,{utils:s,device:n}=t,r=s.getCurrentDepthStencilFormat(e),i=s.getCurrentColorFormat(e),a=this._getSampleCount(e),u={label:"renderBundleEncoder",colorFormats:[i],depthStencilFormat:r,sampleCount:a};return n.createRenderBundleEncoder(u)}createComputePipeline(e,t){const s=this.backend,n=s.device,r=s.get(e.computeProgram).module,i=s.get(e),a=[];for(const u of t){const c=s.get(u);a.push(c.layout)}i.pipeline=n.createComputePipeline({compute:r,layout:n.createPipelineLayout({bindGroupLayouts:a})})}_getBlending(e){let t,s;const n=e.blending,r=e.blendSrc,i=e.blendDst,a=e.blendEquation;if(n===Hl){const u=e.blendSrcAlpha!==null?e.blendSrcAlpha:r,c=e.blendDstAlpha!==null?e.blendDstAlpha:i,l=e.blendEquationAlpha!==null?e.blendEquationAlpha:a;t={srcFactor:this._getBlendFactor(r),dstFactor:this._getBlendFactor(i),operation:this._getBlendOperation(a)},s={srcFactor:this._getBlendFactor(u),dstFactor:this._getBlendFactor(c),operation:this._getBlendOperation(l)}}else{const u=e.premultipliedAlpha,c=(l,d,h,p)=>{t={srcFactor:l,dstFactor:d,operation:ls.Add},s={srcFactor:h,dstFactor:p,operation:ls.Add}};if(u)switch(n){case Ys:c(H.One,H.OneMinusSrcAlpha,H.One,H.OneMinusSrcAlpha);break;case qr:c(H.One,H.One,H.One,H.One);break;case Hr:c(H.Zero,H.OneMinusSrc,H.Zero,H.One);break;case $r:c(H.Zero,H.Src,H.Zero,H.SrcAlpha);break}else switch(n){case Ys:c(H.SrcAlpha,H.OneMinusSrcAlpha,H.One,H.OneMinusSrcAlpha);break;case qr:c(H.SrcAlpha,H.One,H.SrcAlpha,H.One);break;case Hr:c(H.Zero,H.OneMinusSrc,H.Zero,H.One);break;case $r:c(H.Zero,H.Src,H.Zero,H.Src);break}}if(t!==void 0&&s!==void 0)return{color:t,alpha:s};console.error("THREE.WebGPURenderer: Invalid blending: ",n)}_getBlendFactor(e){let t;switch(e){case $l:t=H.Zero;break;case Wl:t=H.One;break;case zl:t=H.Src;break;case Il:t=H.OneMinusSrc;break;case kl:t=H.SrcAlpha;break;case Ll:t=H.OneMinusSrcAlpha;break;case Gl:t=H.Dst;break;case Dl:t=H.OneMinusDstColor;break;case Vl:t=H.DstAlpha;break;case Pl:t=H.OneMinusDstAlpha;break;case Ol:t=H.SrcAlphaSaturated;break;case __:t=H.Constant;break;case b_:t=H.OneMinusConstant;break;default:console.error("THREE.WebGPURenderer: Blend factor not supported.",e)}return t}_getStencilCompare(e){let t;const s=e.stencilFunc;switch(s){case Im:t=Fe.Never;break;case Lm:t=Fe.Always;break;case Dm:t=Fe.Less;break;case Pm:t=Fe.LessEqual;break;case Um:t=Fe.Equal;break;case Fm:t=Fe.GreaterEqual;break;case Bm:t=Fe.Greater;break;case Mm:t=Fe.NotEqual;break;default:console.error("THREE.WebGPURenderer: Invalid stencil function.",s)}return t}_getStencilOperation(e){let t;switch(e){case Hm:t=Qt.Keep;break;case $m:t=Qt.Zero;break;case Wm:t=Qt.Replace;break;case zm:t=Qt.Invert;break;case km:t=Qt.IncrementClamp;break;case Om:t=Qt.DecrementClamp;break;case Gm:t=Qt.IncrementWrap;break;case Vm:t=Qt.DecrementWrap;break;default:console.error("THREE.WebGPURenderer: Invalid stencil operation.",t)}return t}_getBlendOperation(e){let t;switch(e){case Gs:t=ls.Add;break;case Ul:t=ls.Subtract;break;case Fl:t=ls.ReverseSubtract;break;case Km:t=ls.Min;break;case qm:t=ls.Max;break;default:console.error("THREE.WebGPUPipelineUtils: Blend equation not supported.",e)}return t}_getPrimitiveState(e,t,s){const n={},r=this.backend.utils;switch(n.topology=r.getPrimitiveTopology(e,s),t.index!==null&&e.isLine===!0&&e.isLineSegments!==!0&&(n.stripIndexFormat=t.index.array instanceof Uint16Array?cn.Uint16:cn.Uint32),s.side){case No:n.frontFace=go.CCW,n.cullMode=mo.Back;break;case Ct:n.frontFace=go.CCW,n.cullMode=mo.Front;break;case js:n.frontFace=go.CCW,n.cullMode=mo.None;break;default:console.error("THREE.WebGPUPipelineUtils: Unknown material.side value.",s.side);break}return n}_getColorWriteMask(e){return e.colorWrite===!0?rl.All:rl.None}_getDepthCompare(e){let t;if(e.depthTest===!1)t=Fe.Always;else{const s=e.depthFunc;switch(s){case Jl:t=Fe.Never;break;case Zl:t=Fe.Always;break;case Ql:t=Fe.Less;break;case jl:t=Fe.LessEqual;break;case Yl:t=Fe.Equal;break;case Xl:t=Fe.GreaterEqual;break;case Kl:t=Fe.Greater;break;case ql:t=Fe.NotEqual;break;default:console.error("THREE.WebGPUPipelineUtils: Invalid depth function.",s)}}return t}}class nR extends bg{constructor(e={}){super(e),this.isWebGPUBackend=!0,this.parameters.alpha=e.alpha===void 0?!0:e.alpha,this.parameters.requiredLimits=e.requiredLimits===void 0?{}:e.requiredLimits,this.trackTimestamp=e.trackTimestamp===!0,this.device=null,this.context=null,this.colorBuffer=null,this.defaultRenderPassdescriptor=null,this.utils=new jA(this),this.attributeUtils=new eR(this),this.bindingUtils=new tR(this),this.pipelineUtils=new sR(this),this.textureUtils=new OA(this),this.occludedResolveCache=new Map}async init(e){await super.init(e);const t=this.parameters;let s;if(t.device===void 0){const i={powerPreference:t.powerPreference},a=typeof navigator<"u"?await navigator.gpu.requestAdapter(i):null;if(a===null)throw new Error("WebGPUBackend: Unable to create WebGPU adapter.");const u=Object.values(ra),c=[];for(const d of u)a.features.has(d)&&c.push(d);const l={requiredFeatures:c,requiredLimits:t.requiredLimits};s=await a.requestDevice(l)}else s=t.device;s.lost.then(i=>{const a={api:"WebGPU",message:i.message||"Unknown reason",reason:i.reason||null,originalEvent:i};e.onDeviceLost(a)});const n=t.context!==void 0?t.context:e.domElement.getContext("webgpu");this.device=s,this.context=n;const r=t.alpha?"premultiplied":"opaque";this.trackTimestamp=this.trackTimestamp&&this.hasFeature(ra.TimestampQuery),this.context.configure({device:this.device,format:this.utils.getPreferredCanvasFormat(),usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,alphaMode:r}),this.updateSize()}get coordinateSystem(){return ln}async getArrayBufferAsync(e){return await this.attributeUtils.getArrayBufferAsync(e)}getContext(){return this.context}_getDefaultRenderPassDescriptor(){let e=this.defaultRenderPassdescriptor;if(e===null){const s=this.renderer;e={colorAttachments:[{view:null}]},(this.renderer.depth===!0||this.renderer.stencil===!0)&&(e.depthStencilAttachment={view:this.textureUtils.getDepthBuffer(s.depth,s.stencil).createView()});const n=e.colorAttachments[0];this.renderer.samples>0?n.view=this.colorBuffer.createView():n.resolveTarget=void 0,this.defaultRenderPassdescriptor=e}const t=e.colorAttachments[0];return this.renderer.samples>0?t.resolveTarget=this.context.getCurrentTexture().createView():t.view=this.context.getCurrentTexture().createView(),e}_getRenderPassDescriptor(e,t={}){const s=e.renderTarget,n=this.get(s);let r=n.descriptors;if(r===void 0||n.width!==s.width||n.height!==s.height||n.dimensions!==s.dimensions||n.activeMipmapLevel!==s.activeMipmapLevel||n.activeCubeFace!==e.activeCubeFace||n.samples!==s.samples||n.loadOp!==t.loadOp){r={},n.descriptors=r;const u=()=>{s.removeEventListener("dispose",u),this.delete(s)};s.addEventListener("dispose",u)}const i=e.getCacheKey();let a=r[i];if(a===void 0){const u=e.textures,c=[];let l;for(let d=0;d0&&(t.currentOcclusionQuerySet&&t.currentOcclusionQuerySet.destroy(),t.currentOcclusionQueryBuffer&&t.currentOcclusionQueryBuffer.destroy(),t.currentOcclusionQuerySet=t.occlusionQuerySet,t.currentOcclusionQueryBuffer=t.occlusionQueryBuffer,t.currentOcclusionQueryObjects=t.occlusionQueryObjects,r=s.createQuerySet({type:"occlusion",count:n,label:`occlusionQuerySet_${e.id}`}),t.occlusionQuerySet=r,t.occlusionQueryIndex=0,t.occlusionQueryObjects=new Array(n),t.lastOcclusionObject=null);let i;e.textures===null?i=this._getDefaultRenderPassDescriptor():i=this._getRenderPassDescriptor(e,{loadOp:ye.Load}),this.initTimestampQuery(e,i),i.occlusionQuerySet=r;const a=i.depthStencilAttachment;if(e.textures!==null){const l=i.colorAttachments;for(let d=0;d0&&t.currentPass.executeBundles(t.renderBundles),s>t.occlusionQueryIndex&&t.currentPass.endOcclusionQuery(),t.currentPass.end(),s>0){const n=s*8;let r=this.occludedResolveCache.get(n);r===void 0&&(r=this.device.createBuffer({size:n,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),this.occludedResolveCache.set(n,r));const i=this.device.createBuffer({size:n,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});t.encoder.resolveQuerySet(t.occlusionQuerySet,0,s,r,0),t.encoder.copyBufferToBuffer(r,0,i,0,n),t.occlusionQueryBuffer=i,this.resolveOccludedAsync(e)}if(this.prepareTimestampBuffer(e,t.encoder),this.device.queue.submit([t.encoder.finish()]),e.textures!==null){const n=e.textures;for(let r=0;ra?(c.x=Math.min(t.dispatchCount,a),c.y=Math.ceil(t.dispatchCount/a)):c.x=t.dispatchCount,r.dispatchWorkgroups(c.x,c.y,c.z)}finishCompute(e){const t=this.get(e);t.passEncoderGPU.end(),this.prepareTimestampBuffer(e,t.cmdEncoderGPU),this.device.queue.submit([t.cmdEncoderGPU.finish()])}async waitForGPU(){await this.device.queue.onSubmittedWorkDone()}draw(e,t){const{object:s,context:n,pipeline:r}=e,i=e.getBindings(),a=this.get(n),u=this.get(r).pipeline,c=a.currentSets,l=a.currentPass,d=e.getDrawParameters();if(d===null)return;c.pipeline!==u&&(l.setPipeline(u),c.pipeline=u);const h=c.bindingGroups;for(let x=0,N=i.length;x1?0:B;f===!0?l.drawIndexed(N[B],F,x[B]/p.array.BYTES_PER_ELEMENT,0,L):l.draw(N[B],F,x[B],L)}}else if(f===!0){const{vertexCount:x,instanceCount:N,firstVertex:v}=d,w=e.getIndirect();if(w!==null){const B=this.get(w).buffer;l.drawIndexedIndirect(B,0)}else l.drawIndexed(x,N,v,0,0);t.update(s,x,N)}else{const{vertexCount:x,instanceCount:N,firstVertex:v}=d,w=e.getIndirect();if(w!==null){const B=this.get(w).buffer;l.drawIndirect(B,0)}else l.draw(x,N,v,0);t.update(s,x,N)}}needsRenderUpdate(e){const t=this.get(e),{object:s,material:n}=e,r=this.utils,i=r.getSampleCountRenderContext(e.context),a=r.getCurrentColorSpace(e.context),u=r.getCurrentColorFormat(e.context),c=r.getCurrentDepthStencilFormat(e.context),l=r.getPrimitiveTopology(s,n);let d=!1;return(t.material!==n||t.materialVersion!==n.version||t.transparent!==n.transparent||t.blending!==n.blending||t.premultipliedAlpha!==n.premultipliedAlpha||t.blendSrc!==n.blendSrc||t.blendDst!==n.blendDst||t.blendEquation!==n.blendEquation||t.blendSrcAlpha!==n.blendSrcAlpha||t.blendDstAlpha!==n.blendDstAlpha||t.blendEquationAlpha!==n.blendEquationAlpha||t.colorWrite!==n.colorWrite||t.depthWrite!==n.depthWrite||t.depthTest!==n.depthTest||t.depthFunc!==n.depthFunc||t.stencilWrite!==n.stencilWrite||t.stencilFunc!==n.stencilFunc||t.stencilFail!==n.stencilFail||t.stencilZFail!==n.stencilZFail||t.stencilZPass!==n.stencilZPass||t.stencilFuncMask!==n.stencilFuncMask||t.stencilWriteMask!==n.stencilWriteMask||t.side!==n.side||t.alphaToCoverage!==n.alphaToCoverage||t.sampleCount!==i||t.colorSpace!==a||t.colorFormat!==u||t.depthStencilFormat!==c||t.primitiveTopology!==l||t.clippingContextCacheKey!==e.clippingContextCacheKey)&&(t.material=n,t.materialVersion=n.version,t.transparent=n.transparent,t.blending=n.blending,t.premultipliedAlpha=n.premultipliedAlpha,t.blendSrc=n.blendSrc,t.blendDst=n.blendDst,t.blendEquation=n.blendEquation,t.blendSrcAlpha=n.blendSrcAlpha,t.blendDstAlpha=n.blendDstAlpha,t.blendEquationAlpha=n.blendEquationAlpha,t.colorWrite=n.colorWrite,t.depthWrite=n.depthWrite,t.depthTest=n.depthTest,t.depthFunc=n.depthFunc,t.stencilWrite=n.stencilWrite,t.stencilFunc=n.stencilFunc,t.stencilFail=n.stencilFail,t.stencilZFail=n.stencilZFail,t.stencilZPass=n.stencilZPass,t.stencilFuncMask=n.stencilFuncMask,t.stencilWriteMask=n.stencilWriteMask,t.side=n.side,t.alphaToCoverage=n.alphaToCoverage,t.sampleCount=i,t.colorSpace=a,t.colorFormat=u,t.depthStencilFormat=c,t.primitiveTopology=l,t.clippingContextCacheKey=e.clippingContextCacheKey,d=!0),d}getRenderCacheKey(e){const{object:t,material:s}=e,n=this.utils,r=e.context;return[s.transparent,s.blending,s.premultipliedAlpha,s.blendSrc,s.blendDst,s.blendEquation,s.blendSrcAlpha,s.blendDstAlpha,s.blendEquationAlpha,s.colorWrite,s.depthWrite,s.depthTest,s.depthFunc,s.stencilWrite,s.stencilFunc,s.stencilFail,s.stencilZFail,s.stencilZPass,s.stencilFuncMask,s.stencilWriteMask,s.side,n.getSampleCountRenderContext(r),n.getCurrentColorSpace(r),n.getCurrentColorFormat(r),n.getCurrentDepthStencilFormat(r),n.getPrimitiveTopology(t,s),e.getGeometryCacheKey(),e.clippingContextCacheKey].join()}createSampler(e){this.textureUtils.createSampler(e)}destroySampler(e){this.textureUtils.destroySampler(e)}createDefaultTexture(e){this.textureUtils.createDefaultTexture(e)}createTexture(e,t){this.textureUtils.createTexture(e,t)}updateTexture(e,t){this.textureUtils.updateTexture(e,t)}generateMipmaps(e){this.textureUtils.generateMipmaps(e)}destroyTexture(e){this.textureUtils.destroyTexture(e)}copyTextureToBuffer(e,t,s,n,r,i){return this.textureUtils.copyTextureToBuffer(e,t,s,n,r,i)}initTimestampQuery(e,t){if(!this.trackTimestamp)return;const s=this.get(e);if(!s.timeStampQuerySet){const n=e.isComputeNode?"compute":"render",r=this.device.createQuerySet({type:"timestamp",count:2,label:`timestamp_${n}_${e.id}`});Object.assign(t,{timestampWrites:{querySet:r,beginningOfPassWriteIndex:0,endOfPassWriteIndex:1}}),s.timeStampQuerySet=r}}prepareTimestampBuffer(e,t){if(!this.trackTimestamp)return;const s=this.get(e),n=2*BigInt64Array.BYTES_PER_ELEMENT;s.currentTimestampQueryBuffers===void 0&&(s.currentTimestampQueryBuffers={resolveBuffer:this.device.createBuffer({label:"timestamp resolve buffer",size:n,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),resultBuffer:this.device.createBuffer({label:"timestamp result buffer",size:n,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ})});const{resolveBuffer:r,resultBuffer:i}=s.currentTimestampQueryBuffers;t.resolveQuerySet(s.timeStampQuerySet,0,2,r,0),i.mapState==="unmapped"&&t.copyBufferToBuffer(r,0,i,0,n)}async resolveTimestampAsync(e,t="render"){if(!this.trackTimestamp)return;const s=this.get(e);if(s.currentTimestampQueryBuffers===void 0)return;const{resultBuffer:n}=s.currentTimestampQueryBuffers;n.mapState==="unmapped"&&n.mapAsync(GPUMapMode.READ).then(()=>{const r=new BigUint64Array(n.getMappedRange()),i=Number(r[1]-r[0])/1e6;this.renderer.info.updateTimestamp(t,i),n.unmap()})}createNodeBuilder(e,t){return new YA(e,t)}createProgram(e){const t=this.get(e);t.module={module:this.device.createShaderModule({code:e.code,label:e.stage+(e.name!==""?`_${e.name}`:"")}),entryPoint:"main"}}destroyProgram(e){this.delete(e)}createRenderPipeline(e,t){this.pipelineUtils.createRenderPipeline(e,t)}createComputePipeline(e,t){this.pipelineUtils.createComputePipeline(e,t)}beginBundle(e){const t=this.get(e);t._currentPass=t.currentPass,t._currentSets=t.currentSets,t.currentSets={attributes:{},bindingGroups:[],pipeline:null,index:null},t.currentPass=this.pipelineUtils.createBundleEncoder(e)}finishBundle(e,t){const s=this.get(e),r=s.currentPass.finish();this.get(t).bundleGPU=r,s.currentSets=s._currentSets,s.currentPass=s._currentPass}addBundle(e,t){this.get(e).renderBundles.push(this.get(t).bundleGPU)}createBindings(e,t,s,n){this.bindingUtils.createBindings(e,t,s,n)}updateBindings(e,t,s,n){this.bindingUtils.createBindings(e,t,s,n)}updateBinding(e){this.bindingUtils.updateBinding(e)}createIndexAttribute(e){this.attributeUtils.createAttribute(e,GPUBufferUsage.INDEX|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}createAttribute(e){this.attributeUtils.createAttribute(e,GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}createStorageAttribute(e){this.attributeUtils.createAttribute(e,GPUBufferUsage.STORAGE|GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}createIndirectStorageAttribute(e){this.attributeUtils.createAttribute(e,GPUBufferUsage.STORAGE|GPUBufferUsage.INDIRECT|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST)}updateAttribute(e){this.attributeUtils.updateAttribute(e)}destroyAttribute(e){this.attributeUtils.destroyAttribute(e)}updateSize(){this.colorBuffer=this.textureUtils.getColorBuffer(),this.defaultRenderPassdescriptor=null}getMaxAnisotropy(){return 16}hasFeature(e){return this.device.features.has(e)}copyTextureToTexture(e,t,s=null,n=null,r=0){let i=0,a=0,u=0,c=0,l=0,d=0,h=e.image.width,p=e.image.height;s!==null&&(c=s.x,l=s.y,d=s.z||0,h=s.width,p=s.height),n!==null&&(i=n.x,a=n.y,u=n.z||0);const f=this.device.createCommandEncoder({label:"copyTextureToTexture_"+e.id+"_"+t.id}),m=this.get(e).texture,x=this.get(t).texture;f.copyTextureToTexture({texture:m,mipLevel:r,origin:{x:c,y:l,z:d}},{texture:x,mipLevel:r,origin:{x:i,y:a,z:u}},[h,p,1]),this.device.queue.submit([f.finish()])}copyFramebufferToTexture(e,t,s){const n=this.get(t);let r=null;t.renderTarget?e.isDepthTexture?r=this.get(t.depthTexture).texture:r=this.get(t.textures[0]).texture:e.isDepthTexture?r=this.textureUtils.getDepthBuffer(t.depth,t.stencil):r=this.context.getCurrentTexture();const i=this.get(e).texture;if(r.format!==i.format){console.error("WebGPUBackend: copyFramebufferToTexture: Source and destination formats do not match.",r.format,i.format);return}let a;if(n.currentPass?(n.currentPass.end(),a=n.encoder):a=this.device.createCommandEncoder({label:"copyFramebufferToTexture_"+e.id}),a.copyTextureToTexture({texture:r,origin:[s.x,s.y,0]},{texture:i},[s.z,s.w]),e.generateMipmaps&&this.textureUtils.generateMipmaps(e),n.currentPass){const{descriptor:u}=n;for(let c=0;c(console.warn("THREE.WebGPURenderer: WebGPU is not available, running under WebGL2 backend."),new nl(e)));const s=new t(e);super(s,e),this.library=new iR,this.isWebGPURenderer=!0}}class xR extends ll{constructor(){super(),this.isBundleGroup=!0,this.type="BundleGroup",this.static=!0,this.version=0}set needsUpdate(e){e===!0&&this.version++}}const Sg=new ce,Fr=new Mi(Sg);class TR{constructor(e,t=P(0,0,1,1)){this.renderer=e,this.outputNode=t,this.outputColorTransform=!0,this.needsUpdate=!0,Sg.name="PostProcessing"}render(){this._update();const e=this.renderer,t=e.toneMapping,s=e.outputColorSpace;e.toneMapping=ss,e.outputColorSpace=kt,Fr.render(e),e.toneMapping=t,e.outputColorSpace=s}_update(){if(this.needsUpdate===!0){const e=this.renderer,t=e.toneMapping,s=e.outputColorSpace;Fr.material.fragmentNode=this.outputColorTransform===!0?tu(this.outputNode,t,s):this.outputNode.context({toneMapping:t,outputColorSpace:s}),Fr.material.needsUpdate=!0,this.needsUpdate=!1}}async renderAsync(){this._update();const e=this.renderer,t=e.toneMapping,s=e.outputColorSpace;e.toneMapping=ss,e.outputColorSpace=kt,await Fr.renderAsync(e),e.toneMapping=t,e.outputColorSpace=s}}class _R extends aa{constructor(e=1,t=1){super(),this.image={width:e,height:t},this.magFilter=ft,this.minFilter=ft,this.isStorageTexture=!0}}class bR extends xf{constructor(e,t){super(e,t,Uint32Array),this.isIndirectStorageBufferAttribute=!0}}class oR extends Lg{constructor(e){super(e),this.textures={},this.nodes={}}load(e,t,s,n){const r=new Ig(this.manager);r.setPath(this.path),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials),r.load(e,i=>{try{t(this.parse(JSON.parse(i)))}catch(a){n?n(a):console.error(a),this.manager.itemError(e)}},s,n)}parseNodes(e){const t={};if(e!==void 0){for(const n of e){const{uuid:r,type:i}=n;t[r]=this.createNodeFromType(i),t[r].uuid=r}const s={nodes:t,textures:this.textures};for(const n of e)n.meta=s,t[n.uuid].deserialize(n),delete n.meta}return t}parse(e){const t=this.createNodeFromType(e.type);t.uuid=e.uuid;const n={nodes:this.parseNodes(e.nodes),textures:this.textures};return e.meta=n,t.deserialize(e),delete e.meta,t}setTextures(e){return this.textures=e,this}setNodes(e){return this.nodes=e,this}createNodeFromType(e){return this.nodes[e]===void 0?(console.error("THREE.NodeLoader: Node type not found:",e),g()):E(new this.nodes[e])}}class aR extends Vg{constructor(e){super(e),this.nodes={},this.nodeMaterials={}}parse(e){const t=super.parse(e),s=this.nodes,n=e.inputNodes;for(const r in n){const i=n[r];t[r]=s[i]}return t}setNodes(e){return this.nodes=e,this}setNodeMaterials(e){return this.nodeMaterials=e,this}createMaterialFromType(e){const t=this.nodeMaterials[e];return t!==void 0?new t:super.createMaterialFromType(e)}}class NR extends Gg{constructor(e){super(e),this.nodes={},this.nodeMaterials={},this._nodesJSON=null}setNodes(e){return this.nodes=e,this}setNodeMaterials(e){return this.nodeMaterials=e,this}parse(e,t){this._nodesJSON=e.nodes;const s=super.parse(e,t);return this._nodesJSON=null,s}parseNodes(e,t){if(e!==void 0){const s=new oR;return s.setNodes(this.nodes),s.setTextures(t),s.parseNodes(e)}return{}}parseMaterials(e,t){const s={};if(e!==void 0){const n=this.parseNodes(this._nodesJSON,t),r=new aR;r.setTextures(t),r.setNodes(n),r.setNodeMaterials(this.nodeMaterials);for(let i=0,a=e.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 literal 0 HcmV?d00001 diff --git a/apps/dashboard/build/_app/immutable/chunks/CkiUhdKe.js.gz b/apps/dashboard/build/_app/immutable/chunks/CkiUhdKe.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..204f82d5322a6af379ec3c697d11785d0d0f2a8f GIT binary patch literal 138730 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