tokentracker-cli 1.4.3 → 1.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.de.md +1 -0
  2. package/README.ja.md +1 -0
  3. package/README.ko.md +1 -0
  4. package/README.md +5 -0
  5. package/README.zh-CN.md +1 -0
  6. package/dashboard/dist/assets/{AchievementBadge-3IYidbrI.js → AchievementBadge-BmWRsZMx.js} +1 -1
  7. package/dashboard/dist/assets/{AchievementsPage-DmZ_ojyM.js → AchievementsPage-CyIP2nck.js} +2 -2
  8. package/dashboard/dist/assets/{AchievementsSection-DIYrrzhw.js → AchievementsSection-BeNyJ0LW.js} +1 -1
  9. package/dashboard/dist/assets/{BadgeDetailModal-DMMExCe4.js → BadgeDetailModal-DIFnFzkv.js} +1 -1
  10. package/dashboard/dist/assets/{BotAnimated-y6vZNRvC.js → BotAnimated-CKVeJHit.js} +1 -1
  11. package/dashboard/dist/assets/{Card-LJX3G3zo.js → Card-lQmyKbh4.js} +1 -1
  12. package/dashboard/dist/assets/{CloudCheckoutPage-BGBgSXNE.js → CloudCheckoutPage-B_8y6dyX.js} +1 -1
  13. package/dashboard/dist/assets/{CloudPage-Dij2GTXi.js → CloudPage-BOQjUGAt.js} +2 -2
  14. package/dashboard/dist/assets/{CommandPalette-BIky6Fk0.js → CommandPalette-BV9LqokI.js} +1 -1
  15. package/dashboard/dist/assets/{CommunityStatsModal-DbM99i0s.js → CommunityStatsModal-WELxKEFc.js} +1 -1
  16. package/dashboard/dist/assets/{ConfirmModal-C_NH8vgO.js → ConfirmModal-B8H5o8c_.js} +1 -1
  17. package/dashboard/dist/assets/{Controls-BEAj_kvr.js → Controls-9ynPx9rF.js} +1 -1
  18. package/dashboard/dist/assets/{DashboardPage-DO7h2dfu.js → DashboardPage-B8z-U63p.js} +1 -1
  19. package/dashboard/dist/assets/{DateRangePopover-PQXB8v0k.js → DateRangePopover-DEqWsV_8.js} +1 -1
  20. package/dashboard/dist/assets/{DevicePage-0JZ3OIWZ.js → DevicePage-CUOlUySM.js} +1 -1
  21. package/dashboard/dist/assets/{DialogClose-BpWoD5h9.js → DialogClose-Dlg52bL6.js} +1 -1
  22. package/dashboard/dist/assets/DialogDescription-vuQFBlM_.js +1 -0
  23. package/dashboard/dist/assets/{DialogTitle-DoQgdh5w.js → DialogTitle-CduwXjqH.js} +1 -1
  24. package/dashboard/dist/assets/{ElectricLogo-0O87VjKv.js → ElectricLogo-DFt7_F2f.js} +1 -1
  25. package/dashboard/dist/assets/{FadeIn-9ph1h_AG.js → FadeIn-DlyusE6n.js} +1 -1
  26. package/dashboard/dist/assets/{HeaderGithubStar-DCZ92xbH.js → HeaderGithubStar-tUtJoFHh.js} +1 -1
  27. package/dashboard/dist/assets/{HoverTooltip-CCKdmuOP.js → HoverTooltip-v-zkCqsX.js} +1 -1
  28. package/dashboard/dist/assets/{IpCheckPage-CpyhpmdS.js → IpCheckPage-C5Y1uVEr.js} +1 -1
  29. package/dashboard/dist/assets/{LandingPage-spvsPkYy.js → LandingPage-DzOJOAj7.js} +2 -2
  30. package/dashboard/dist/assets/{LeaderboardPage-2nJ08ohw.js → LeaderboardPage-BBZ_6tCw.js} +2 -2
  31. package/dashboard/dist/assets/{LeaderboardProBadge-D6FSL3Qy.js → LeaderboardProBadge-DakoXIQn.js} +1 -1
  32. package/dashboard/dist/assets/{LeaderboardProfileModal-DD1jX-rD.js → LeaderboardProfileModal-CINpES_x.js} +3 -3
  33. package/dashboard/dist/assets/{LeaderboardProfilePage-DYqRrntL.js → LeaderboardProfilePage-B6ISf-1l.js} +1 -1
  34. package/dashboard/dist/assets/{LimitsPage-DXHikunk.js → LimitsPage-UVX730CQ.js} +8 -8
  35. package/dashboard/dist/assets/{LocalOnlyNotice-BURiQAtP.js → LocalOnlyNotice-BJSsmXF1.js} +1 -1
  36. package/dashboard/dist/assets/{LoginCard-Cv2ijoJx.js → LoginCard-Dggv2aGv.js} +1 -1
  37. package/dashboard/dist/assets/{LoginModal-DyOideDA.js → LoginModal-B8qDd2kY.js} +1 -1
  38. package/dashboard/dist/assets/{LoginPage-BKNvqvYi.js → LoginPage-Dv66U8yJ.js} +1 -1
  39. package/dashboard/dist/assets/{PetPage-BBmozE0L.js → PetPage-CNwrQdKM.js} +2 -2
  40. package/dashboard/dist/assets/{PopoverPopup-DDnISLKM.js → PopoverPopup-CqmvpYOi.js} +1 -1
  41. package/dashboard/dist/assets/{ProviderIcon-Da90GDcM.js → ProviderIcon-BF2Ch7wi.js} +1 -1
  42. package/dashboard/dist/assets/{ResetPasswordPage-DsETr50j.js → ResetPasswordPage-B0R8VUU3.js} +1 -1
  43. package/dashboard/dist/assets/{Select-pZDawyxt.js → Select-idAiBnJG.js} +1 -1
  44. package/dashboard/dist/assets/{SelectItemText-D5wuuN7G.js → SelectItemText-DPmmPY_D.js} +1 -1
  45. package/dashboard/dist/assets/{SelfHostPage-sm-PARYj.js → SelfHostPage-oR9cPK02.js} +1 -1
  46. package/dashboard/dist/assets/{ServiceStatusPage-D4f8h0sL.js → ServiceStatusPage-CdV9gfGF.js} +1 -1
  47. package/dashboard/dist/assets/{SessionsPage-xVLsTN4m.js → SessionsPage-BkD34VlL.js} +1 -1
  48. package/dashboard/dist/assets/{SettingsPage-Dt9iFheY.js → SettingsPage-DsthWCyM.js} +3 -3
  49. package/dashboard/dist/assets/{SkillsPage-BdWalPpd.js → SkillsPage-CzMk9s3x.js} +1 -1
  50. package/dashboard/dist/assets/{TokenGalaxy-d2_ml0tE.js → TokenGalaxy-DQ6o8YBp.js} +1 -1
  51. package/dashboard/dist/assets/{TooltipPopup-B4masxDW.js → TooltipPopup-CMQjA-HE.js} +1 -1
  52. package/dashboard/dist/assets/{TrendMonitor-CceYpa2O.js → TrendMonitor-DrV1m8E7.js} +1 -1
  53. package/dashboard/dist/assets/{WidgetsPage-CSN0829H.js → WidgetsPage-Cc16WM0Y.js} +1 -1
  54. package/dashboard/dist/assets/{WrappedPage-gP4WfO_m.js → WrappedPage-pMwbM4R7.js} +1 -1
  55. package/dashboard/dist/assets/{__vite-browser-external-BtJVmciH.js → __vite-browser-external-DCy_YLfe.js} +3 -3
  56. package/dashboard/dist/assets/{agent-logos-wxccxfWz.js → agent-logos-Zw7LNkMO.js} +1 -1
  57. package/dashboard/dist/assets/{arrow-left-Bd5C77R2.js → arrow-left-DycYjE-k.js} +1 -1
  58. package/dashboard/dist/assets/{arrow-right-C1RqrK4A.js → arrow-right-uNxLHoJ0.js} +1 -1
  59. package/dashboard/dist/assets/{arrow-up-right-B_b2i8hn.js → arrow-up-right-CmdJ7gd7.js} +1 -1
  60. package/dashboard/dist/assets/{calendar-days-C8eYygme.js → calendar-days-CJ33_t5O.js} +1 -1
  61. package/dashboard/dist/assets/{check-BlBHefQ7.js → check-Dbubk4Il.js} +1 -1
  62. package/dashboard/dist/assets/{chevron-down-mjUspqZv.js → chevron-down-BwvBVAOs.js} +1 -1
  63. package/dashboard/dist/assets/{cloud-checkout-CEkMnWXf.js → cloud-checkout-IG-IOpeP.js} +1 -1
  64. package/dashboard/dist/assets/{composite-CzXFY9IC.js → composite-IIgJPPIw.js} +1 -1
  65. package/dashboard/dist/assets/{download-CQvg59w1.js → download-DxtH7w6a.js} +1 -1
  66. package/dashboard/dist/assets/{external-link-CDYfIZ3Z.js → external-link-evKf3mnD.js} +1 -1
  67. package/dashboard/dist/assets/{flame-C9NXQRil.js → flame-D2qOE_W4.js} +1 -1
  68. package/dashboard/dist/assets/{format-tokens-fKy_3qpW.js → format-tokens-CqDmm-sK.js} +1 -1
  69. package/dashboard/dist/assets/{gift-WmV4SBGR.js → gift-Ge11HK1x.js} +1 -1
  70. package/dashboard/dist/assets/{host-mode-C5MvZ7SV.js → host-mode-8_TNh7yE.js} +1 -1
  71. package/dashboard/dist/assets/{icons-B1EtsaZs.js → icons-OmfWvE5K.js} +1 -1
  72. package/dashboard/dist/assets/{index-9EZ3o2RV.js → index-BYuEzP9p.js} +1 -1
  73. package/dashboard/dist/assets/{index-BEecBW06.js → index-BsYtyo4U.js} +1 -1
  74. package/dashboard/dist/assets/{index-DXNwBFNi.js → index-tbe1aERA.js} +1 -1
  75. package/dashboard/dist/assets/{info-CWDhggIW.js → info-xhrso9aO.js} +1 -1
  76. package/dashboard/dist/assets/{link-2-DEWNkK7s.js → link-2-BgNpTaO4.js} +1 -1
  77. package/dashboard/dist/assets/{loader-circle-DotT5gVp.js → loader-circle-DRooZ0e5.js} +1 -1
  78. package/dashboard/dist/assets/{modifiers.esm-qZnGgJAz.js → modifiers.esm-D-QAEpOZ.js} +1 -1
  79. package/dashboard/dist/assets/{monitor-smartphone-DOP5eqBD.js → monitor-smartphone-Bwu7__2B.js} +1 -1
  80. package/dashboard/dist/assets/{play-BUsybi9m.js → play-CBPvTiWM.js} +1 -1
  81. package/dashboard/dist/assets/{plus-DAjojh_m.js → plus-B4lFIyP8.js} +1 -1
  82. package/dashboard/dist/assets/{provider-display-BCQQYPWD.js → provider-display-CQlWusXH.js} +1 -1
  83. package/dashboard/dist/assets/{react-BgpqhoCj.js → react-DDOtS4Bd.js} +1 -1
  84. package/dashboard/dist/assets/{safePolygon-C-PFpZSA.js → safePolygon-BGfBVKoy.js} +1 -1
  85. package/dashboard/dist/assets/{search-W1A-6ugo.js → search-DVyNq72J.js} +1 -1
  86. package/dashboard/dist/assets/{server-CE7pFjDr.js → server-EpUTEsOf.js} +1 -1
  87. package/dashboard/dist/assets/{shield-check-KL5xc2FR.js → shield-check-DRg8cPKV.js} +1 -1
  88. package/dashboard/dist/assets/{skills-api-DL_zLjKA.js → skills-api-y42dEF96.js} +1 -1
  89. package/dashboard/dist/assets/{sortable.esm-CehJQvFH.js → sortable.esm-D2S1gXCK.js} +1 -1
  90. package/dashboard/dist/assets/{store-BHAXkHPR.js → store-DfGPS2IR.js} +1 -1
  91. package/dashboard/dist/assets/{terminal-Br5vyD6Q.js → terminal-hXIrrL2b.js} +1 -1
  92. package/dashboard/dist/assets/{trash-CzaCJP6G.js → trash-cjaASRQl.js} +1 -1
  93. package/dashboard/dist/assets/{use-community-stats-DbJrecQw.js → use-community-stats-B-nipjWt.js} +1 -1
  94. package/dashboard/dist/assets/{use-latest-request-guard-DGhwmlX8.js → use-latest-request-guard-DIEYrSzn.js} +1 -1
  95. package/dashboard/dist/assets/{use-limits-display-prefs-T7KWAWZ6.js → use-limits-display-prefs-BdHDwBBC.js} +1 -1
  96. package/dashboard/dist/assets/{use-native-settings-MZJhS328.js → use-native-settings-7w71_h44.js} +1 -1
  97. package/dashboard/dist/assets/{use-ordered-list-BDN24weA.js → use-ordered-list-CSMpK4ar.js} +1 -1
  98. package/dashboard/dist/assets/use-reduced-motion-HUGf223R.js +1 -0
  99. package/dashboard/dist/assets/{use-session-efficiency-pref-DUu16y8Z.js → use-session-efficiency-pref-BagBVWW6.js} +1 -1
  100. package/dashboard/dist/assets/{use-transform-BczE46xm.js → use-transform-sjGGXCNn.js} +1 -1
  101. package/dashboard/dist/assets/use-usage-limits-Nml-wUB-.js +1 -0
  102. package/dashboard/dist/assets/{useCurrency-BgZmWbkx.js → useCurrency-DAKIY1nR.js} +1 -1
  103. package/dashboard/dist/assets/{usePositioner-dWENyY8z.js → usePositioner-B7vVQ7th.js} +1 -1
  104. package/dashboard/dist/assets/{useTokenFormat-D7s1-Zuk.js → useTokenFormat-gtgw8k2Z.js} +1 -1
  105. package/dashboard/dist/assets/{zap-Dr__bKlq.js → zap-DFWOiTJ1.js} +1 -1
  106. package/dashboard/dist/index.html +1 -1
  107. package/dashboard/dist/ip-check.html +1 -1
  108. package/dashboard/dist/leaderboard.html +1 -1
  109. package/dashboard/dist/share.html +1 -1
  110. package/package.json +1 -1
  111. package/src/commands/sync.js +571 -34
  112. package/src/lib/async-queue-reader.js +37 -16
  113. package/src/lib/codex-context-breakdown.js +8 -1
  114. package/src/lib/codex-rollout-parser.js +65 -5
  115. package/src/lib/grok-limits.js +56 -0
  116. package/src/lib/pricing/seed-snapshot.json +1 -1
  117. package/src/lib/rollout.js +690 -60
  118. package/src/lib/session-analytics.js +1 -1
  119. package/src/lib/usage-limits.js +33 -1
  120. package/dashboard/dist/assets/DialogDescription-ne_rYSD7.js +0 -1
  121. package/dashboard/dist/assets/use-reduced-motion-CfCY-K-a.js +0 -1
  122. package/dashboard/dist/assets/use-usage-limits-CjyDfH-M.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ElectricLogo-0O87VjKv.js","assets/__vite-browser-external-BtJVmciH.js","assets/__vite-browser-external-B0m8a6Te.css","assets/ElectricLogo-D0wiAojj.css"])))=>i.map(i=>d[i]);
2
- import{r as Dt,j as U,ao as Ui,_ as Vi,a0 as Ji,a1 as Qi,as as qi,d as tl,u as el,at as nl,a3 as rl,c as st,ad as sl,af as al,am as ol,B as Or,L as Gs,au as cl,aa as Ja,av as gc,a8 as il,a9 as Yn,aw as ll,ax as ul}from"./__vite-browser-external-BtJVmciH.js";import{S as fl}from"./Controls-BEAj_kvr.js";import{C as xc}from"./Card-LJX3G3zo.js";import{A as Qa}from"./arrow-right-C1RqrK4A.js";import{C as bc}from"./chevron-down-mjUspqZv.js";import{S as dl}from"./server-CE7pFjDr.js";import{S as hl}from"./shield-check-KL5xc2FR.js";import{C as pl}from"./check-BlBHefQ7.js";var qa={plate:"#ffffff",hi:"#232327",edge:"#a4a4ac",mid:"#c3c3c9",lo:"#e0e0e4"},to={plate:"#08090a",hi:"#d0d6e0",edge:"#5b5d64",mid:"#3e3e44",lo:"#29292d"},Ci=["plate","hi","edge","mid","lo"],Dr=t=>Ci.map(e=>`--hl-${e}:var(--hairline-${e},${t[e]});`).join(""),yc="cubic-bezier(0.5,0,0.1,1)",be=":where([data-hairline]>svg)";function vl(t){const e=Object.fromEntries(Ci.map(s=>[s,`light-dark(${qa[s]},${to[s]})`]));return[`:where([data-hairline]){display:block;position:relative;aspect-ratio:5/4;touch-action:pan-y;user-select:none;-webkit-user-select:none;--hl-sw:var(--hairline-stroke,0.9);${Dr(qa)}}`,t?`:where([data-hairline]){${Dr(e)}}`:"",`:where(.dark,[data-theme="dark"]) :where([data-hairline]){${Dr(to)}}`,`:where([data-hairline][data-hairline-theme="light"]){${Dr(qa)}}`,`:where([data-hairline][data-hairline-theme="dark"]){${Dr(to)}}`,":where([data-hairline]:focus-visible){outline:1.5px solid var(--hl-hi);outline-offset:2px}",`${be}{position:absolute;inset:0;width:100%;height:100%;display:block}`,":where([data-hairline]>[data-hairline-live]){position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}",`${be} :where(path,polygon,ellipse,line){fill:var(--hl-plate);stroke:var(--hl-mid);stroke-width:var(--hl-sw);vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;transition:stroke 260ms ${yc}}`,`${be} :where(.nf){fill:none}`,`${be} :where(.fo){stroke:none}`,`${be} :where(.sil){stroke:var(--hl-edge)}`,`${be} :where(.hi){stroke:var(--hl-hi)}`,`${be} :where(.lo){stroke:var(--hl-lo)}`,`${be} :where(.dash){stroke-dasharray:1 3}`,`${be} :where(.dot){stroke:none;fill:var(--hl-hi);transition:fill 260ms ${yc}}`,`${be} :where(.dot.m){fill:var(--hl-edge)}`,`${be} :where(.dot.off){fill:var(--hl-lo)}`,`${be} :where(.ghost path){fill:none;stroke:var(--hl-mid)}`].join("")}var Mc=new WeakSet;function ml(t){if(Mc.has(t))return;Mc.add(t);const e=t.nodeType===9?t:t.ownerDocument,s=e.defaultView,u=vl(!!s?.CSS?.supports?.("color","light-dark(#000,#fff)"));if(s&&"adoptedStyleSheets"in t)try{const c=new s.CSSStyleSheet;c.replaceSync(u),t.adoptedStyleSheets=[...t.adoptedStyleSheets,c];return}catch{}const o=e.createElement("style");o.setAttribute("data-hairline-style",""),o.textContent=u,(t.nodeType===9?e.head??e.documentElement:t).appendChild(o)}var lt=(t,e,s)=>Math.max(e,Math.min(s,t)),bt=(t,e,s)=>t+(e-t)*s,vt=t=>t*Math.PI/180,Ft=t=>Math.round(t*100)/100,tt=t=>"M"+t.map(e=>Ft(e[0])+" "+Ft(e[1])).join("L")+"Z",ft=(t,e)=>`M${Ft(t[0])} ${Ft(t[1])}L${Ft(e[0])} ${Ft(e[1])}`,jt=t=>t.length<2?"":"M"+t.map(e=>Ft(e[0])+" "+Ft(e[1])).join("L"),At=(t,e,s)=>({az:vt(t),k:e,S:s,ox:0,oy:0});function Mt(t){const e=Math.cos(t.az),s=Math.sin(t.az),u=Math.sqrt(1-t.k*t.k);return(o,c,r)=>{const i=o*e-c*s,h=o*s+c*e;return[t.ox+t.S*i,t.oy+t.S*(h*t.k-r*u)]}}function le(t,e,s,u){const o=Math.cos(t.az),c=Math.sin(t.az),r=Math.sqrt(1-t.k*t.k),i=(e-t.ox)/t.S,h=((s-t.oy)/t.S+u*r)/t.k;return[i*o+h*c,-i*c+h*o]}function Ct(t,e,s,u){t.ox=0,t.oy=0;const o=Mt(t);let c=1e9,r=-1e9,i=1e9,h=-1e9;for(const v of e){const x=o(v[0],v[1],v[2]);c=Math.min(c,x[0]),r=Math.max(r,x[0]),i=Math.min(i,x[1]),h=Math.max(h,x[1])}t.ox=s-(c+r)/2,t.oy=u-(i+h)/2}function rt(t,e,s,u,o,c=4){o=Math.max(0,Math.min(o,(s-t)/2,(u-e)/2));const r=[];for(const[i,h,v]of[[s-o,u-o,0],[t+o,u-o,90],[t+o,e+o,180],[s-o,e+o,270]])for(let x=0;x<=c;x++){const p=vt(v+90*x/c),m=Math.cos(p),N=Math.sin(p);r.push({u:i+o*m,v:h+o*N,nu:m,nv:N})}return r}function ht(t,e=96){const s=[];for(let u=0;u<e;u++){const o=u/e*Math.PI*2,c=Math.cos(o),r=Math.sin(o);s.push({u:t*c,v:t*r,nu:c,nv:r})}return s}function Pt(t){const e=t.slice().sort((c,r)=>c[0]-r[0]||c[1]-r[1]),s=(c,r,i)=>(r[0]-c[0])*(i[1]-c[1])-(r[1]-c[1])*(i[0]-c[0]),u=[],o=[];for(const c of e){for(;u.length>1&&s(u[u.length-2],u[u.length-1],c)<=0;)u.pop();u.push(c)}for(let c=e.length-1;c>=0;c--){const r=e[c];for(;o.length>1&&s(o[o.length-2],o[o.length-1],r)<=0;)o.pop();o.push(r)}return u.pop(),o.pop(),u.concat(o)}var pt=(t,e,s)=>e.map(u=>t(u.u,u.v,s)),Lt=t=>{const e=Math.sin(t.az),s=Math.cos(t.az);return u=>u.nu*e+u.nv*s>=-1e-6};function Ut(t,e){const s=t.length;let u=-1;for(let c=0;c<s;c++)if(e(t[c])&&!e(t[(c+s-1)%s])){u=c;break}if(u<0)return e(t[0])?t.slice():[];const o=[];for(let c=0;c<s&&e(t[(u+c)%s]);c++)o.push(t[(u+c)%s]);return o}function it(t,e,s,u,o,c){return{sil:tt(Pt(pt(t,s,c).concat(pt(t,s,o)))),crease:u?jt(pt(t,Ut(u,e),c)):""}}var mt=(t,e,s,u,o,c)=>[rt(t,e,s,u,o),rt(t+c,e+c,s-c,u-c,Math.max(.3,o-c))];function dc(t,e){const s=e.map(r=>t(r.u,r.v,0));let u=0,o=0,c=0;return s.forEach((r,i)=>{r[0]<s[u][0]&&(u=i),r[0]>s[o][0]&&(o=i),r[1]>s[c][1]&&(c=i)}),[e[u],e[o],e[c]]}function ge(t,e,s=4){const u=t.length,o=[];for(let c=0;c<u;c++){const r=t[(c+u-1)%u],i=t[c],h=t[(c+1)%u],v=Math.hypot(r[0]-i[0],r[1]-i[1]),x=Math.hypot(h[0]-i[0],h[1]-i[1]),p=Math.min(e[c],v/2,x/2),m=[i[0]+(r[0]-i[0])/v*p,i[1]+(r[1]-i[1])/v*p],N=[i[0]+(h[0]-i[0])/x*p,i[1]+(h[1]-i[1])/x*p];for(let B=0;B<=s;B++){const L=B/s,H=1-L;o.push([H*H*m[0]+2*H*L*i[0]+L*L*N[0],H*H*m[1]+2*H*L*i[1]+L*L*N[1]])}}return o}function gl(t,e,s,u,o){const c=Ut(s,e),r=pt(t,c,u-o);return{d:jt(r)+[c[0],c[c.length-1]].map(i=>ft(t(i.u,i.v,u),t(i.u,i.v,u-o))).join(""),y0:Math.min(...pt(t,c,u).map(i=>i[1])),y1:Math.max(...r.map(i=>i[1]))+2}}var Ws=!1,ji=t=>{Ws=t},_e=()=>Ws;function yt(t,e={}){return{x:t,v:0,t,k:e.k??100,c:e.c??18,m:e.m??1,eps:e.eps??.01}}function wt(t,e){if(Ws)return t.x=t.t,t.v=0,!1;const s=Math.max(1,Math.ceil(e*240)),u=e/s;for(let o=0;o<s;o++){const c=(-t.k*(t.x-t.t)-t.c*t.v)/t.m;t.v+=c*u,t.x+=t.v*u}return Math.abs(t.x-t.t)<t.eps&&Math.abs(t.v)<t.eps*10?(t.x=t.t,t.v=0,!1):!0}function xl(t,e,s,u){const o=3*t,c=3*(s-t)-o,r=1-o-c,i=3*e,h=3*(u-e)-i,v=1-i-h,x=N=>((r*N+c)*N+o)*N,p=N=>((v*N+h)*N+i)*N,m=N=>(3*r*N+2*c)*N+o;return N=>{if(N<=0)return 0;if(N>=1)return 1;let B=N;for(let L=0;L<8;L++){const H=x(B)-N;if(Math.abs(H)<1e-5)break;const W=m(B);if(Math.abs(W)<1e-6)break;B-=H/W}if(!(B>=0&&B<=1)||Math.abs(x(B)-N)>1e-4){let L=0,H=1;B=N;for(let W=0;W<24;W++)x(B)<N?L=B:H=B,B=(L+H)/2}return p(B)}}var hc=xl(.32,.72,0,1),Wt=(t,e=700)=>({from:t,to:t,t0:-1e9,dur:e}),Xt=(t,e)=>{const s=lt((e-t.t0)/t.dur,0,1);return t.from+(t.to-t.from)*(Ws?1:hc(s))},ce=(t,e,s,u)=>{t.to!==e&&(t.from=Xt(t,s),t.to=e,t.t0=s+u)},Qt=(t,e)=>Ws||e>=t.t0+t.dur,bl="http://www.w3.org/2000/svg";function I(t,e,s){const u=document.createElementNS(bl,t);if(e)for(const o in e)u.setAttribute(o,String(e[o]));return s&&s.appendChild(u),u}function q(t){const e=I("g",{},t);return{g:e,sil:I("path",{class:"sil"},e),cr:I("path",{class:"nf lo"},e)}}var Q=(t,e)=>{t.sil.setAttribute("d",e.sil),t.cr.setAttribute("d",e.crease)},en=(t,e,s,u)=>I("ellipse",{rx:Ft(s*e.S),ry:Ft(s*e.S*e.k),class:u},t),qt=(t,e)=>{t.setAttribute("cx",String(Ft(e[0]))),t.setAttribute("cy",String(Ft(e[1])))},yl=0;function Ml(t,e,s,u=.7){const o="hl-fd"+ ++yl,c=I("defs",{},t),r=I("linearGradient",{id:o+"g",gradientUnits:"userSpaceOnUse",x1:0,y1:Ft(e),x2:0,y2:Ft(s)},c);I("stop",{offset:0,"stop-color":"#fff","stop-opacity":u},r),I("stop",{offset:1,"stop-color":"#fff","stop-opacity":0},r);const i=I("mask",{id:o,maskUnits:"userSpaceOnUse",x:0,y:0,width:400,height:320},c);return I("rect",{x:0,y:0,width:400,height:320,fill:`url(#${o}g)`},i),`url(#${o})`}function Ri(t,e,s,u,o,c,r){const i=gl(s,u,o,c,r),h=I("g",{class:"ghost",mask:Ml(t,i.y0,i.y1)},e);I("path",{d:i.d},h)}var Er=[],ks=new Map,Cr=0,qo=0,Ir=null,jr=null;function Pi(t){const e=Math.min(.05,Math.max(0,(t-qo)/1e3));qo=t;let s=!1;for(const u of Er.slice())if(u.vis&&u.awake){try{u.awake=!!u.tick(e,t)}catch(o){u.awake=!1,setTimeout(()=>{throw o})}s=s||u.awake}Cr=s?requestAnimationFrame(Pi):0}function $a(t){t.awake=!0,Cr||(qo=performance.now(),Cr=requestAnimationFrame(Pi))}var Li=()=>{ji(!!jr?.matches),Er.forEach($a)};function wl(){Ir||(Ir=new IntersectionObserver(t=>{for(const e of t){const s=ks.get(e.target);if(s)for(const u of s)u.vis=e.isIntersecting,u.vis&&$a(u)}},{rootMargin:"80px"}),jr=matchMedia("(prefers-reduced-motion: reduce)"),ji(jr.matches),jr.addEventListener("change",Li))}function kl(){Cr&&cancelAnimationFrame(Cr),Cr=0,Ir?.disconnect(),Ir=null,jr?.removeEventListener("change",Li),jr=null}function kt(t,e){wl();const s={stage:t,tick:e,vis:!1,awake:!0};Er.push(s);const u=ks.get(t);if(u){for(const c of u)s.vis=c.vis;u.add(s),s.vis&&$a(s)}else ks.set(t,new Set([s])),Ir.observe(t);e(0,performance.now());let o=!1;return{wake:()=>{o||$a(s)},unregister:()=>{if(o)return;o=!0,Er=Er.filter(r=>r!==s);const c=ks.get(t);c&&(c.delete(s),c.size||(ks.delete(t),Ir?.unobserve(t))),Er.length||kl()}}}var Hs=new WeakMap,Rr=new WeakMap;function Et(t,e){Hs.set(t,e);let s=0;const u=i=>{const h=t.getBoundingClientRect();return[(i.clientX-h.left)/h.width*400,(i.clientY-h.top)/h.height*320]},o=i=>{clearTimeout(s),Rr.get(t)?.hold(),e.move(u(i),i)},c=i=>{clearTimeout(s),Rr.get(t)?.hold(),i.pointerType!=="mouse"&&t.releasePointerCapture?.(i.pointerId),e.down?e.down(u(i),i):e.move(u(i),i)},r=i=>{clearTimeout(s),s=window.setTimeout(()=>{e.leave(i),Rr.get(t)?.release()},i.pointerType==="mouse"?0:1400)};return t.addEventListener("pointermove",o),t.addEventListener("pointerdown",c),t.addEventListener("pointerleave",r),()=>{clearTimeout(s),Hs.get(t)===e&&Hs.delete(t),t.removeEventListener("pointermove",o),t.removeEventListener("pointerdown",c),t.removeEventListener("pointerleave",r)}}var wc=[[128,150],[200,118],[272,150],[200,206],null],eo=900,Al=1200,El=1800,kc=1200,Tl=450,Ac={pointerType:"ghost"},Sl=0;function Nl([t,e]){const s=t-200,u=e-160;if(!s&&!u)return[200,320];const o=Math.min(s?(s>0?200:-200)/s:1/0,u?(u>0?160:-160)/u:1/0);return[200+s*o,160+u*o]}function Ec(t,e,s){let u=0,o=kc+Tl*(Sl++%4),c=-1,r=null,i=[200,320],h=!1,v=t.contains(t.ownerDocument.activeElement),x=!1;const p=()=>{r=null,c=-1,Hs.get(t)?.leave(Ac)},m=j=>{if(h||v||!e.length)return!1;if(_e())return r&&p(),!1;if(o>0)return o-=j*1e3,!0;const F=e[u];if(F===null)return r&&p(),u=(u+1)%e.length,o=El,!0;const X=Hs.get(t);if(!X)return!0;c<0&&(i=r??Nl(F),c=0),c=Math.min(eo,c+j*1e3);const z=hc(c/eo);return r=[i[0]+(F[0]-i[0])*z,i[1]+(F[1]-i[1])*z],X.move(r,Ac),c<eo||(u=(u+1)%e.length,c=-1,o=Al),!0},N=()=>{r=null,c=-1},B=()=>{h||v||(u=0,c=-1,o=kc,P.wake())},L={hold:()=>{h=!0,N()},release:()=>{h&&(h=!1,B())}},H=()=>{v=!0,N()},W=j=>{v&&!t.contains(j.relatedTarget)&&(v=!1,B())};t.addEventListener("focusin",H),t.addEventListener("focusout",W),Rr.set(t,L);const P=kt(t,m);return{stop:()=>{x||(x=!0,P.unregister(),t.removeEventListener("focusin",H),t.removeEventListener("focusout",W),Rr.get(t)===L&&Rr.delete(t),r&&p())}}}function Tt(){let t=[];return{add:e=>{t.push(e)},on:(e,s,u,o)=>{const c=u;e.addEventListener(s,c,o),t.push(()=>e.removeEventListener(s,c,o))},dispose:()=>{const e=t;t=[];for(let s=e.length-1;s>=0;s--)e[s]()}}}var zr={riffle:[0,40,90],terrain:[1.5,3,5],exploded:[12,28,40],phosphor:[150,520,1500],slow:[.6,.2,.05],turntable:[200,650,1500],keyboard:[1,2,3.5],elevator:[40,100,220],phone:[16,28,40],laptop:[100,125,150],terminal:[1,2,3.5],cabinet:[1.5,3,5],branches:[1,3,6],vault:[250,600,1500],lockers:[55,90,120],padlock:[45,90,100],patch:[1,2.5,5],dish:[30,50,70],router:[.5,1.5,3],loupe:[1.3,1.8,2.6],sieve:[6,14,24],rail:[1,2,3.5],plug:[.35,.6,.9],query:[20,40,55],drawer:[12,22,34],basket:[8,16,28],plot:[3,6,12],hub:[10,16,24],relay:[40,120,220],settle:[90,120,150],format:[9,12,14],rebuild:[8,14,20],stack:[22,34,46]},Cl=.5;function jl(t){const e=typeof t=="string"&&t.trim()!==""?Number(t):t;return typeof e!="number"||!Number.isFinite(e)?Cl:Math.min(1,Math.max(0,e))}function Tc(t,e){const[s,u,o]=zr[t],c=jl(e),r=c<=.5?s+c/.5*(u-s):u+(c-.5)/.5*(o-u);return Math.round(r*1e3)/1e3}var Rl="http://www.w3.org/2000/svg",Ys=new WeakMap,Pl=t=>{typeof reportError=="function"?reportError(t):setTimeout(()=>{throw t})};function St(t,e,s){if(typeof document>"u")throw new Error(`hairline: ${t.id}() needs a DOM. Call it in the browser, once the element exists: in an effect, in onMount, or in a script after the element.`);if(!e||e.nodeType!==1)throw new TypeError(`hairline: ${t.id}() takes an element as its first argument, and got ${e===null?"null":typeof e}.`);Ys.get(e)?.();const u={...s},o=e.ownerDocument,c=e.getRootNode();ml(c.nodeType===9||"host"in c?c:o);const r=new Set,i=(P,j)=>{!r.has(P)&&e.hasAttribute(P)||(j===null?(e.removeAttribute(P),r.delete(P)):(e.setAttribute(P,j),r.add(P)))},h=()=>{i("data-hairline-theme",u.theme==="light"||u.theme==="dark"?u.theme:null),i("aria-label",e.hasAttribute("aria-labelledby")?null:typeof u.label=="string"?u.label:t.label)};i("data-hairline",t.id),i("role",t.focusable?"group":"img"),t.focusable&&i("tabindex","0"),h();const v=o.createElementNS(Rl,"svg");v.setAttribute("viewBox","0 0 400 320"),v.setAttribute("aria-hidden","true"),e.appendChild(v);let x=null;t.focusable&&(x=o.createElement("span"),x.setAttribute("data-hairline-live",""),x.setAttribute("aria-live","polite"),e.appendChild(x));let p=null,m=null;const N={get textContent(){return p},set textContent(P){const j=P??"";if(j===p)return;p=j,x&&x.textContent!==j&&(!m||j===t.rest||e.matches(":hover, :focus-within"))&&(x.textContent=j);const F=u.onRead;if(typeof F=="function")try{F(j)}catch(X){Pl(X)}}};let B=Tc(t.id,u.intensity);m=u.play===!0?Ec(e,t.tour??wc):null;let L;try{L=t.engine({stage:e,svg:v,read:N},B)}catch(P){throw m?.stop(),P}p===null&&(N.textContent=t.rest);let H=!1;const W=()=>{if(!H){H=!0,Ys.get(e)===W&&Ys.delete(e),m?.stop(),m=null,L.destroy(),v.remove(),x?.remove();for(const P of r)e.removeAttribute(P);r.clear()}};return Ys.set(e,W),{update(P){if(H||!P)return;const j=u,F=P;for(const O in F)F[O]===void 0?delete j[O]:j[O]=F[O];const X=Tc(t.id,u.intensity);X!==B&&(B=X,L.set(X));const z=u.play===!0;z!==!!m&&(m?.stop(),m=z?Ec(e,t.tour??wc):null),h()},destroy:W}}var Zs=40,Tn=25,Sc=8,Nc=1.5,Mr=30,ue=.8,$r=3,Fr=1.4,Ll=44,_l=[.45],Fa=30,fn=8,Bl=1.3,Cc=9,Il=2.6,Ks=-46,jc=.6,zl=70,Us=3;function Rc(t,e,s){const u=Math.min(0,(t+e)*Math.SQRT1_2)/2;return[s*(t-u*Math.SQRT1_2),s*(e-u*Math.SQRT1_2)]}function no(t,e){const s=Math.hypot(t,e),u=s?-e/s:0,o=s?t/s:0,c=Math.cos(vt(s)),r=Math.sin(vt(s));return(i,h,v)=>{const x=(u*i+o*h)*(1-c);return[i*c+o*v*r+u*x,h*c-u*v*r+o*x,v*c+(u*h-o*i)*r]}}function Hl(t,e){const s=[0];for(let u=1;u<=t.length;u++){const o=t[u-1],c=t[u%t.length];s.push(s[u-1]+Math.hypot(c.u-o.u,c.v-o.v))}return Array.from({length:e},(u,o)=>{const c=o/e*s[t.length];let r=0;for(;s[r+1]<c;)r++;const i=t[r],h=t[(r+1)%t.length],v=(c-s[r])/(s[r+1]-s[r]||1);return{u:i.u+(h.u-i.u)*v,v:i.v+(h.v-i.v)*v,nu:i.nu,nv:i.nv}})}function ro(t,e,s=!1){const u=t.length,o=[],c=[],r=[];for(let h=0;h<u;h++){const v=t[s?(h+u-1)%u:Math.max(h-1,0)],x=t[s?(h+1)%u:Math.min(h+1,u-1)],p=Math.hypot(x[0]-v[0],x[1]-v[1])||1,m=(x[0]-v[0])/p,N=(x[1]-v[1])/p;r.push([m,N]),o.push([t[h][0]-N*e,t[h][1]+m*e]),c.push([t[h][0]+N*e,t[h][1]-m*e])}if(s)return tt(o)+tt(c.reverse());const i=(h,v,x)=>Array.from({length:7},(p,m)=>{const N=Math.PI*(m+1)/8,B=Math.cos(N)*x,L=Math.sin(N)*x;return[h[0]+e*(-v[1]*B+v[0]*L),h[1]+e*(v[0]*B+v[1]*L)]});return tt([...o,...i(t[u-1],r[u-1],1),...c.reverse(),...i(t[0],r[0],-1)])}var Pc=[[-Tn,0],...Array.from({length:9},(t,e)=>{const s=Math.PI-Math.PI/2*(e/8);return[-Tn+fn+fn*Math.cos(s),Fa-fn+fn*Math.sin(s)]}),...Array.from({length:9},(t,e)=>{const s=Math.PI/2*(1-e/8);return[Tn-fn+fn*Math.cos(s),Fa-fn+fn*Math.sin(s)]}),[Tn,0]],Ol=[[-Cc,Fa],[Cc,Fa]],Lc=t=>{const e=Math.cos(vt(t)),s=Math.sin(vt(t));return u=>[u[1]*s,u[0],Mr+u[1]*e]},Dl=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,Us),r=zr.basket[2],i=Ks+jc*r,h=rt(-Zs,-Tn,Zs,Tn,Sc,14),v=Hl(h,Ll),x=h.map(E=>({...E,u:E.u*ue,v:E.v*ue})),p=rt(-Zs*ue+Fr,-Tn*ue+Fr,Zs*ue-Fr,Tn*ue-Fr,Sc*ue-Fr,14),m=[];for(let E=-1;E<8;E++){const $=no(...Rc(Math.cos(E*Math.PI/4),Math.sin(E*Math.PI/4),E<0?0:r));for(const G of h)m.push($(G.u,G.v,Mr+Nc),$(G.u*ue,G.v*ue,0));for(const G of[Ks,i])for(const J of Pc)m.push($(...Lc(G)(J)))}Ct(c,m,200,166);const N=Mt(c),B=Math.sqrt(1-c.k*c.k),L=[Math.sin(c.az)*B,Math.cos(c.az)*B,c.k],H=I("g",{},e),W=I("path",{class:"nf lo"},H),P=q(H),j=I("path",{class:"nf lo"},H),F=I("path",{class:"sil"},H),X=I("path",{class:"sil"},H),z=I("path",{class:"sil"},H),O=yt(0),k=yt(0),y=yt(Ks,{k:60,c:6,eps:.02});let T=NaN,n=NaN,a=NaN,l=no(0,0);const d=E=>N(...l(...E)),f=E=>{const $=l(E.nu,E.nv,0);return $[0]*L[0]+$[1]*L[1]+$[2]*L[2]>=0};function b(){const E=O.x!==T||k.x!==n;if(E){T=O.x,n=k.x,l=no(T,n),Q(P,{sil:tt(Pt(x.map(G=>d([G.u,G.v,0])).concat(x.map(G=>d([G.u,G.v,$r]))))),crease:jt(Ut(p,f).map(G=>d([G.u,G.v,$r])))});const $=["",""];for(const G of v)$[+f(G)]+=ft(d([G.u*ue-G.nu,G.v*ue-G.nv,$r]),d([G.u,G.v,Mr]));for(const G of _l){const J=$r+(Mr-$r)*G,_=ue+(1-ue)*G;h.forEach((R,Y)=>{const Z=h[(Y+1)%h.length];$[+f(R)]+=ft(d([R.u*_,R.v*_,J]),d([Z.u*_,Z.v*_,J]))})}W.setAttribute("d",$[0]),j.setAttribute("d",$[1]),F.setAttribute("d",ro(h.map(G=>d([G.u,G.v,Mr])),Nc*Us,!0))}if(E||y.x!==a){a=y.x;const $=Lc(a);X.setAttribute("d",ro(Pc.map(G=>d($(G))),Bl*Us)),z.setAttribute("d",ro(Ol.map(G=>d($(G))),Il*Us))}}const M=kt(t,E=>{const $=wt(O,E),G=wt(k,E);y.t=Math.min(Ks+jc*Math.hypot(O.x,k.x),i);const J=wt(y,E);return b(),$||G||J});o.add(M.unregister);let S=u,A=!1,g=0,C=0;function w(){const E=Math.hypot(g,C),$=A&&E?lt(S,0,r)*lt(E/zl,0,1):0;[O.t,k.t]=$?Rc(g/E,C/E,$):[0,0],s.textContent=A?`tilt ${Math.round(Math.hypot(O.t,k.t))}° · 0`:"rest",F.classList.toggle("hi",!A),P.sil.classList.toggle("hi",A),M.wake()}return w(),o.add(Et(t,{move:E=>{A=!0,[g,C]=le(c,E[0],E[1],Mr/2),w()},leave:()=>{A=!1,w()}})),o.add(()=>e.replaceChildren()),{set:E=>{S=E,w()},destroy:o.dispose}},As=30,ja=58,Vs=7,wr=2.6,_c=8,Ra=2.4,Bc=6.6,_i=6,so=36,$l=45,Wr=-15,Xr=7*As+15,Zn=-16,Js=ja+14,ao=wr+Ra+_i;function Fl(){const t=[],e=(r,i,h,v,x)=>(t.push({lane:r,n:i,x:h,y:v,parent:x}),t.length-1),s=[];for(let r=0;r<8;r++)s.push(e("main",r+1,r*As,0,r?s[r-1]:-1));const u=e("feature",1,2.5*As,ja,s[1]),o=e("feature",2,3.5*As,ja,u),c=e("feature",3,4.5*As,ja,o);return{cs:t,m:s,f:[u,o,c]}}var Ic=(t,e,s,u,o,c)=>{const r=[];for(let i=0;i<=c;i++){const h=i/c,v=1-h,x=[v*v*v,3*v*v*h,3*v*h*h,h*h*h],p=[t[0],t[0]+s,e[0]-o,e[0]],m=[t[1],t[1]+u,e[1],e[1]];r.push([x[0]*p[0]+x[1]*p[1]+x[2]*p[2]+x[3]*p[3],x[0]*m[0]+x[1]*m[1]+x[2]*m[2]+x[3]*m[3]])}return r};function Wl(t){const e=[],s=[];return t.forEach((u,o)=>{const c=t[Math.max(0,o-1)],r=t[Math.min(t.length-1,o+1)],i=r[0]-c[0],h=r[1]-c[1],v=Math.hypot(i,h),x=-h/v,p=i/v;e.push([u[0]+x*Vs/2,u[1]+p*Vs/2]),s.push([u[0]-x*Vs/2,u[1]-p*Vs/2])}),e.concat(s.reverse())}var Xl=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=At(45,.5,1.4);Ct(r,[[Wr,Zn,-6],[Xr,Js,-6],[Xr,Zn,-6],[Wr,Js,-6],[Wr,Zn,ao+so],[Xr,Zn,ao+so]],200,166);const i=Mt(r),h=Lt(r),{cs:v,m:x,f:p}=Fl(),m=w=>[v[w].x,v[w].y],N=I("g",{},e),[B,L]=mt(Wr,Zn,Xr,Js,12,2.2);Q(q(N),it(i,h,B,L,-6,0));const H=(w,E)=>Ic(w,E,(E[0]-w[0])*.3,(E[1]-w[1])*.5,(E[0]-w[0])*.45,14),W=(w,E)=>Ic(E,w,(w[0]-E[0])*.3,(w[1]-E[1])*.5,(w[0]-E[0])*.45,14).reverse(),P=[[m(x[0]),m(x[7])],[...H(m(x[1]),m(p[0])),...W(m(p[2]),m(x[6])).slice(1)]];for(const w of P){const E=Wl(w);I("path",{d:tt(E.map($=>i($[0],$[1],0))),class:"lo"},N),I("path",{d:tt(E.map($=>i($[0],$[1],wr))),class:""},N)}const[j,F]=[ht(_c,24),ht(_c-1.4,24)],[X,z]=[ht(Bc,24),ht(Bc-1.2,24)],O=(w,E,$)=>w.map(G=>({...G,u:G.u+E,v:G.v+$})),k=v.map((w,E)=>E).sort((w,E)=>v[w].x+v[w].y-(v[E].x+v[E].y)),y=[];for(const w of k){const E=v[w];Q(q(N),it(i,h,O(j,E.x,E.y),O(F,E.x,E.y),wr,Ra+wr));const $=I("path",{class:"dash nf"},N);y[w]={...E,drop:$,el:q(N),ring:O(X,E.x,E.y),inner:O(z,E.x,E.y),z:Wt(0),drawn:NaN}}const T=w=>{const E=[];for(let $=w,G=0;$>=0;$=y[$].parent,G++)E.push([$,G]);return E},n=p[2],a=2.2,l=.5;function d(w,E){if(E===w.drawn)return;w.drawn=E;const $=Ra+wr+E;Q(w.el,it(i,h,w.ring,w.inner,$,$+_i)),w.drop.setAttribute("d",ft(i(w.x,w.y,Ra+wr),i(w.x,w.y,$)))}const f=kt(t,(w,E)=>{let $=!1;for(const G of y)d(G,Xt(G.z,E)),Qt(G.z,E)||($=!0);return $});o.add(f.unregister);let b=null,M=null,S=new Map;function A(w,E,$,G){const J=performance.now(),_=new Map;for(const[R,Y]of T(w))Y<=E&&_.set(R,[so*$*lt(1-Y/(E+1),0,1),Y]);y.forEach((R,Y)=>{const[Z,V]=_.get(Y)||[0,(S.get(Y)||[0,0])[1]];G?R.z=Wt(Z):ce(R.z,Z,J,V*$l)}),S=_,M!==w&&(M!==null&&y[M].el.sil.classList.remove("hi"),M=w,y[w].el.sil.classList.add("hi")),f.wake()}A(n,a,l,!0);function g(w){w!==b&&(b=w,w===null?(A(n,a,l),s.textContent="rest"):(A(w,c,1),s.textContent=`${y[w].lane} · ${y[w].n}`))}function C(w){const E=le(r,w[0],w[1],ao);if(E[0]<Wr||E[0]>Xr||E[1]<Zn||E[1]>Js)return null;let $=null,G=1/0;return y.forEach((J,_)=>{const R=Math.hypot(J.x-E[0],J.y-E[1]);R<G&&(G=R,$=_)}),$}return o.add(Et(t,{move:w=>g(C(w)),leave:()=>g(null)})),o.add(()=>e.replaceChildren()),{set:w=>{c=w,b!==null&&A(b,c,1)},destroy:o.dispose}},Es=12,Ts=10.4,Ce=9.6,ve=84,rn=4,Qs=2,ee=44,Sn=26,Gr=-10,Nn=ve+10,oo=6,Mn=11,tc=Mn+(Es-1)*Ts+Ce,Kn=tc+6,co=[0,0,.2,0,0,.3,.58,.26,0,0,.13,0],zc=6,Gl=t=>t>=1?0:(1-t)*(1-t),Yl=t=>.375*t.nu+.307*t.nv>0;function Hc(t,e,s,u,o){const c=(r,i)=>r.map(h=>t(h.u,i,h.v));return{sil:tt(Pt(c(e,u).concat(c(e,o)))),crease:s?jt(c(Ut(s,Yl),o)):""}}var Zl=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.5),r=ee+Qs+Sn;Ct(c,[[Gr,0,0],[Nn,0,Kn],[Nn,ee,0],[Gr,0,Kn],[-rn,r,Mn],[-rn,r,tc],[ve+rn,r,Mn]],200,166);const i=Mt(c),h=Lt(c);let v=u,x=null,p=null;const m=I("g",{},e),[N,B]=mt(Gr+3,3,Nn-3,ee-3,3,1.2);Q(q(m),it(i,h,N,B,0,oo));const[L,H]=mt(Gr,0,Nn,ee,3.5,1.6);Q(q(m),it(i,h,L,H,oo,Kn));const W=l=>l.map(d=>i(d.u,ee,d.v)),P=l=>l.map(d=>i(Nn,d.u,d.v));I("path",{d:tt(W(rt(-7.6,Mn-2.2,ve+7.6,tc+2.2,2,4)))+tt(P(rt(5,oo+7,ee-5,Kn-7,3,4))),class:"lo nf"},m);for(let l=0;l<Es;l++)for(const d of[-5.8,ve+5.8])qt(I("circle",{r:.75,class:"dot off"},m),i(d,ee,Mn+l*Ts+Ce/2));const j=[];for(let l=0;l<Es;l++){const d=Mn+l*Ts,f=I("g",{},m);j.push({i:l,z:d,body:rt(0,d+.4,ve,d+Ce-.4,1.6,4),face:rt(-rn,d,ve+rn,d+Ce,2,4),faceIn:rt(-rn+.8,d+.8,ve+rn-.8,d+Ce-.8,1.2,4),chassis:q(f),plate:q(f),marks:I("path",{class:"lo nf"},f),lamp:I("circle",{r:1.1,class:"dot off"},f),sp:yt(Sn*co[l],{eps:.02}),drawn:NaN})}function F(l,d){const f=l.z,b=S=>tt(S.map(A=>i(A.u,d,A.v)));let M=b(rt(-3.4,f+2,-1.2,f+Ce-2,1,3))+b(rt(ve+1.2,f+2,ve+3.4,f+Ce-2,1,3));for(let S=0;S<4;S++)M+=b(rt(4+S*10.6,f+2,13.8+S*10.6,f+Ce-2,1,3));for(let S=0;S<8;S++)M+=ft(i(50+S*2.6,d,f+2.5),i(50+S*2.6,d,f+Ce-2.5));return M}function X(l){const d=l.sp.x;if(d===l.drawn)return;l.drawn=d;const f=ee+d+Qs,b=l.z+Ce/2,M=Hc(i,l.body,null,ee,ee+d+.5);Q(l.chassis,{sil:M.sil,crease:ft(i(ve,ee,b),i(ve,ee+d,b))}),Q(l.plate,Hc(i,l.face,l.faceIn,ee+d,f)),l.marks.setAttribute("d",F(l,f)),qt(l.lamp,i(ve-5,f,b))}function z(l){l!==p&&(p&&(p.plate.sil.classList.remove("hi"),p.lamp.setAttribute("class","dot off")),p=l,p.plate.sil.classList.add("hi"),p.lamp.setAttribute("class","dot"))}const O=kt(t,l=>{let d=!1;for(const f of j)wt(f.sp,l)&&(d=!0),X(f);return d});o.add(O.unregister);const k=i(0,0,0),y=[i(1,0,0),i(0,1,0),i(0,0,1)].map(l=>[l[0]-k[0],l[1]-k[1]]);function T(l,d,f){const[b,M]=[0,1,2].filter($=>$!==d),S=y[b],A=y[M],g=l[0]-k[0]-f*y[d][0],C=l[1]-k[1]-f*y[d][1],w=S[0]*A[1]-S[1]*A[0],E=[0,0,0];return E[d]=f,E[b]=(g*A[1]-C*A[0])/w,E[M]=(S[0]*C-S[1]*g)/w,E}function n(l){for(let M=Es-1;M>=0;M--){const S=T(l,1,ee+Qs+Sn*co[M]),A=(S[2]-Mn-Ce/2)/Ts;if(S[0]>=-rn&&S[0]<=ve+rn&&Math.abs(A-M)<=.5)return A}const d=T(l,1,ee+Qs),f=T(l,0,Nn);let b=null;return d[0]>=Gr-Sn-4&&d[0]<=Nn&&d[2]>=-Sn*.8&&d[2]<=Kn?b=d[2]:f[1]>=0&&f[1]<=ee&&f[2]>=0&&f[2]<=Kn+4&&(b=f[2]),b===null?null:lt((b-Mn-Ce/2)/Ts,0,Es-1)}function a(){if(x===null){for(const l of j)l.sp.t=Sn*co[l.i];z(j[zc]),s.textContent="rest"}else{for(const d of j)d.sp.t=Sn*Gl(Math.max(0,Math.abs(d.i-x)-.5)/v);const l=Math.round(x);z(j[l]),s.textContent="blade "+(l+1)}O.wake()}return z(j[zc]),o.add(Et(t,{move:l=>{x=n(l),a()},leave:()=>{x=null,a()}})),o.add(()=>e.replaceChildren()),{set:l=>{v=l,x!==null&&a()},destroy:o.dispose}},De=26,kr=17,Kl=1.4,Yr=De*De/(4*kr),Pa=46,Xe=31,Ge=5,io=10,Oc=16,Ul=45,Vl=40,Zr=[-20,30],Je=[0,0,Pa],Pe=(t,e,s)=>[t[0]+e[0]*s,t[1]+e[1]*s,t[2]+e[2]*s],Dc=(t,e)=>t[0]*e[0]+t[1]*e[1]+t[2]*e[2];function $c(t,e){const s=vt(t),u=vt(e),o=Math.cos(u),c=Math.sin(u),r=[Math.cos(s),Math.sin(s),0],i=[-Math.sin(s),Math.cos(s),0];return{th:t,h:r,e:i,a:[r[0]*o,r[1]*o,c],u:[-r[0]*c,-r[1]*c,o]}}var Un=(t,e,s,u)=>Pe(Pe(Pe(Je,t.a,e),t.e,s*Math.cos(u)),t.u,s*Math.sin(u)),dn=(t,e,s,u,o)=>Array.from({length:o},(c,r)=>Pe(Pe(t,e,u*Math.cos(2*Math.PI*r/o)),s,u*Math.sin(2*Math.PI*r/o))),Kr=(t,e)=>t.map(s=>({u:s.u*e.h[0]+s.v*e.e[0],v:s.u*e.h[1]+s.v*e.e[1],nu:s.nu*e.h[0]+s.nv*e.e[0],nv:s.nu*e.h[1]+s.nv*e.e[1]})),Jl=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null;const i=At(45,.5,2.5),h=[[-30,-30,0],[30,30,0],[30,-30,0],[-30,30,0]];for(const[Z,V]of[[-25,5],[-25,75],[115,5],[115,75],Zr]){const K=$c(Z,V);h.push(...dn(Je,K.e,K.u,De,16),Un(K,kr-Yr+3,0,0));for(const D of[-1,1])h.push(Pe(Pe(Je,K.e,D*(Xe+Ge/2)),[0,0,1],6))}Ct(i,h,200,166);const v=Mt(i),x=Lt(i),p=Z=>v(Z[0],Z[1],Z[2]),m=v(0,0,0),N=v(1,0,0),B=v(0,1,0),L=v(0,0,1),H=[N[0]-m[0],B[0]-m[0],L[0]-m[0]],W=[N[1]-m[1],B[1]-m[1],L[1]-m[1]],P=[H[1]*W[2]-H[2]*W[1],H[2]*W[0]-H[0]*W[2],H[0]*W[1]-H[1]*W[0]],j=Math.hypot(...P)*Math.sign(P[2]),F=P.map(Z=>Z/j),X=I("g",{},e),[z,O]=mt(-30,-30,30,30,9,2);Q(q(X),it(v,x,z,O,0,5));for(let Z=0;Z<36;Z++){const V=Z/36*2*Math.PI,K=Z%9===0?26.5:25.5;qt(en(X,i,Z%9===0?.75:.5,"dot off"),v(K*Math.cos(V),K*Math.sin(V),5))}Q(q(X),it(v,x,ht(20,48),ht(18.8,48),5,io));const k=en(X,i,.8,"dot m"),y=q(X),T=Xe+Ge/2+1,[n,a]=mt(-9,-T,9,T,4,1.4),l=I("g",{},X),d=[-1,1].map(Z=>{const V=I("g",{},X);return{s:Z,g:V,near:null,ring:I("path",{class:"nf"},V),arm:q(V),trun:I("path",{class:"sil"},V),foot:rt(-8,Z*Xe-Ge/2,8,Z*Xe+Ge/2,2.5,4),top:rt(-5.5,Z*Xe-Ge/2,5.5,Z*Xe+Ge/2,2.5,4),inner:rt(-4.5,Z*Xe-Ge/2+1,4.5,Z*Xe+Ge/2-1,1.5,4)}}),f=I("path",{class:"sil"},l),b=I("path",{class:"nf lo"},l),M=I("path",{class:"nf lo"},l),S=I("path",{class:"nf hi"},l),A=I("path",{class:"nf"},l),g=q(l),C=[0,.35,.6,.78,.9,.97,1];function w(Z,V,K){const D=V*V/(4*kr)-Yr,et=-D/Dc(Z.a,F),nt=[],ct=[];for(let Bt=0;Bt<K;Bt++){nt.push(Un(Z,D,V,2*Math.PI*Bt/K));const Gt=Pe(nt[Bt],F,et);ct.push(De-Math.hypot(Gt[0]-Je[0],Gt[1]-Je[1],Gt[2]-Je[2]))}if(ct.every(Bt=>Bt>0))return tt(nt.map(p));const It=ct.findIndex((Bt,Gt)=>Bt>0&&ct[(Gt+K-1)%K]<=0);if(It<0)return"";const ot=(Bt,Gt)=>p(Pe(nt[Bt],[nt[Gt][0]-nt[Bt][0],nt[Gt][1]-nt[Bt][1],nt[Gt][2]-nt[Bt][2]],ct[Bt]/(ct[Bt]-ct[Gt]))),zt=[ot((It+K-1)%K,It)];let _t=It;for(;ct[_t]>0;)zt.push(p(nt[_t])),_t=(_t+1)%K;return zt.push(ot((_t+K-1)%K,_t)),jt(zt)}let E="";function $(Z,V){const K=Z.toFixed(3)+","+V.toFixed(3);if(K===E)return;E=K;const D=$c(Z,V);qt(k,v(18*D.h[0],18*D.h[1],io)),Q(y,it(v,x,Kr(n,D),Kr(a,D),io,Oc));for(const ot of d){const zt=ot.s*Dc(D.e,F)>0;zt!==ot.near&&(ot.near=zt,zt?(ot.g.append(ot.trun,ot.arm.g,ot.ring),l.after(ot.g)):(ot.g.append(ot.ring,ot.arm.g,ot.trun),l.before(ot.g))),Q(ot.arm,{sil:tt(Pt(pt(v,Kr(ot.foot,D),Oc).concat(pt(v,Kr(ot.top,D),Pa+6)))),crease:jt(pt(v,Ut(Kr(ot.inner,D),x),Pa+6))});const _t=[0,0,1],Bt=Pe(Je,D.e,ot.s*(Xe+Ge/2));ot.ring.setAttribute("d",tt(dn(Bt,D.h,_t,3.4,24).map(p))),ot.trun.setAttribute("d",tt(Pt(dn(Pe(Je,D.e,ot.s*De),D.h,_t,2.2,16).concat(dn(Pe(Je,D.e,ot.s*(Xe-Ge/2)),D.h,_t,2.2,16)).map(p))))}const et=dn(Je,D.e,D.u,De,72),nt=[];for(const ot of C)for(let zt=0;zt<40;zt++)nt.push(Un(D,ot*ot*De*De/(4*kr)-Yr-Kl,ot*De,2*Math.PI*zt/40));f.setAttribute("d",tt(Pt(et.concat(nt).map(p)))),b.setAttribute("d",w(D,.62*De,48)),M.setAttribute("d",w(D,3.2,20)),S.setAttribute("d",tt(et.map(p)));const ct=Un(D,kr-Yr-3,0,0),It=Un(D,kr-Yr+3,0,0);A.setAttribute("d",[90,210,330].map(ot=>ft(p(Un(D,0,De,vt(ot))),p(ct))).join("")),Q(g,{sil:tt(Pt(dn(ct,D.e,D.u,3.6,16).concat(dn(It,D.e,D.u,2.4,16)).map(p))),crease:tt(dn(It,D.e,D.u,1.3,16).map(p))})}const G=yt(Zr[0],{eps:.01}),J=yt(Zr[1],{eps:.01}),_=kt(t,Z=>{const V=wt(G,Z),K=wt(J,Z);return $(G.x,J.x),V||K});o.add(_.unregister);const R=v(0,0,Pa);function Y(){r?(G.t=Ul-c*Math.tanh((r[0]-R[0])/120),J.t=Vl+c/2*Math.tanh((R[1]-r[1])/90),s.textContent=`az ${Math.round((G.t+360)%360)} · el ${Math.round(J.t)}`):(G.t=Zr[0],J.t=Zr[1],s.textContent="rest"),_.wake()}return o.add(Et(t,{move:Z=>{r=Z,Y()},leave:()=>{r=null,Y()}})),o.add(()=>e.replaceChildren()),{set:Z=>{c=Z,r&&Y()},destroy:o.dispose}},Ss=3,ye=54,ie=60,ec=5,$e=3,Ns=26,qs=1.6,ta=2.4,Vn=1.3,Fc=3.2,Wc=2.2,Xc=3.6,Ql=2.6,ql=2.1,Cs=ec+$e,Ur=Cs+Ss*Ns+$e,lo=.7,t1=t=>.375*t.nu+.307*t.nv>0;function e1(t,e,s,u,o){const c=(r,i)=>r.map(h=>t(h.u,i,h.v));return{sil:tt(Pt(c(e,u).concat(c(e,o)))),crease:jt(c(Ut(s,t1),o))}}var n1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=zr.drawer[2],r=At(45,.5,ql),i=ie+c+ta,h=[[0,0,0],[ye,0,0],[0,0,Ur],[ye,0,Ur],[ye,ie,0],[0,i,Cs],[0,i,Ur-$e],[ye,i,Cs]];Ct(r,h.concat(h.map(([A,g,C])=>[ye-A,ie-g,Ur-C])),200,166);const v=Mt(r),x=Lt(r),p=I("g",{},e),[m,N]=mt(3,3,ye-3,ie-3,2.4,1);Q(q(p),it(v,x,m,N,0,ec));const[B,L]=mt(0,0,ye,ie,3,1.4);Q(q(p),it(v,x,B,L,ec,Ur));const H=$e+Fc,W=ye-$e-Fc,P=[H+(W-H)/3,H+2*(W-H)/3],j=(A,g)=>tt(A.map(C=>v(C.u,g,C.v)));I("path",{class:"nf lo",d:Array.from({length:Ss},(A,g)=>{const C=Cs+g*Ns+qs/2;return j(rt(H-.8,C+Wc-.8,W+.8,C+Ns-qs-Xc+1.4,.8,2),ie)}).join("")},p);const F=Array.from({length:Ss},(A,g)=>{const C=Cs+g*Ns+qs/2,w=C+Ns-qs,E=I("g",{},p),$=[0,1,2,3].map(()=>I("path",{class:"lo"},E));return $.push(I("path",{class:"nf sil"},E)),{z0:C,z1:w,parts:$,front:q(E),pull:q(E),drawn:NaN}}),X=A=>rt($e,A.z0,ye-$e,A.z1,1.6,4),z=A=>rt($e+1,A.z0+1,ye-$e-1,A.z1-1,1,4),O=(A,g,C,w,E,$,G)=>w-C<.05?"":it(v,x,rt(A,C,g,w,G,3),null,E,$).sil;function k(A,g){if(g===A.drawn)return;A.drawn=g;const C=A.z0+Wc,w=A.z1-Xc,E=ie+g,$=E+ta,[G,J,_,R,Y]=A.parts;G.setAttribute("d",O(H,W,ie,E,C,C+Vn,.6)),J.setAttribute("d",O(H,H+Vn,ie,E,C+Vn,w,.5)),_.setAttribute("d",P.map(et=>O(et-.5,et+.5,ie,E,C+Vn,w-Ql,.4)).join("")),R.setAttribute("d",O(W-Vn,W,ie,E,C+Vn,w,.5)),Y.setAttribute("d",O(H,W,ie,E,C,w,.8)),Q(A.front,e1(v,X(A),z(A),E,$));const Z=(A.z0+A.z1)/2,V=ye/2,[K,D]=mt(V-9,$,V+9,$+2.6,1.3,.6);Q(A.pull,it(v,x,K,D,Z-1.3,Z+1.3))}const y=F.map(()=>Wt(0)),T=kt(t,(A,g)=>{let C=!1;return F.forEach((w,E)=>{k(w,Xt(y[E],g)),Qt(y[E],g)||(C=!0)}),C});o.add(T.unregister);let n=u,a=-2;function l(A,g){if(A===a)return;a=A;const C=A<0?1:A;y.forEach((w,E)=>ce(w,E===C?A<0?n*lo:n:0,g,0)),F.forEach((w,E)=>w.front.sil.classList.toggle("hi",E===C)),s.textContent=A<0?"rest":`drawer ${Ss-A} · 0`,T.wake()}y[1]=Wt(n*lo),l(-1,-1e9),F.forEach((A,g)=>k(A,Xt(y[g],0)));const d=Math.cos(r.az),f=Math.sin(r.az),b=Math.sqrt(1-r.k*r.k),M=(A,g)=>{const C=(A[0]-r.ox)/(r.S*d)+g*f/d;return[C,((C*f+g*d)*r.k-(A[1]-r.oy)/r.S)/b]};function S(A){for(let C=Ss-1;C>=0;C--){const[w,E]=M(A,ie+ta+(C===1?n*lo:0)),$=F[C];if(w>=$e&&w<=ye-$e&&E>=$.z0&&E<=$.z1)return C}const g=M(A,ie+ta)[1];return F.reduce((C,w,E)=>Math.abs(g-(w.z0+w.z1)/2)<Math.abs(g-(F[C].z0+F[C].z1)/2)?E:C,0)}return o.add(Et(t,{move:A=>l(S(A),performance.now()),leave:()=>l(-1,performance.now())})),o.add(()=>e.replaceChildren()),{set:A=>{n=A;const g=a;a=-2,l(g,performance.now())},destroy:o.dispose}},Gc=32,Kt=34,$n=36,In=25,Cn=2.5,uo=4,je=3*$n+In+7,Be=[5,7,28,27],Re=16.5,Fn=[-8,11,-2,23],Yc=17,Vr=2,r1=ge([[-16,-2],[33,-2],[33,-56],[76,-56],[76,38],[-16,38]],[3,2,4,6,6,6]),s1=ge([[33,-56],[72,-56],[72,-6],[43,-6],[43,34],[33,34]],[4,4,4,3,3,3]),Wn=(Fn[0]+Fn[2])/2,En=(Re-Wn)/2,Ye=[Wn+En,Kt/2,je+3+En+2],Zc=1.5*$n-4,a1=["ground","floor 1","floor 2","floor 3"],o1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.3);Ct(c,[[-16,-56,-8],[76,38,-8],[76,-56,-8],[-16,38,-8],[Ye[0],Ye[1],Ye[2]+En]],200,166);const r=Mt(c),i=Lt(c),h=I("g",{},e),v=(w,E,$,G,J)=>{const[_,R]=mt(...w,E,$);Q(q(h),it(r,i,_,R,G,J))},x=w=>I("path",{class:w},h),p=(w,E,$)=>{const G=w.length,J=w.map((K,D)=>{const et=w[(D+1)%G];return et[1]-K[1]-(et[0]-K[0])>0}),_=K=>{const D=J.findIndex((nt,ct)=>nt===K&&J[(ct+G-1)%G]!==K),et=[];for(let nt=D;J[nt%G]===K;nt++)et.push(w[nt%G]);return et.concat([w[(D+et.length)%G]])},R=(K,D)=>K.map(et=>r(et[0],et[1],D)),Y=_(!1),Z=_(!0),V=I("path",{class:"sil",d:tt(R(Y,$).concat(R(Z,E)))},h);return I("path",{class:"nf lo",d:jt(R(Z,$))},h),V};p(r1,-8,-Cn),v([-14-Vr,-Vr,-14,Kt],1,.5,-Cn,je),v([-14,-Vr,Gc,0],1,.5,-Cn,je),v([Re-1.3,3,Re+1.3,5.4],.8,.5,-Cn,je);const[m,N]=mt(...Fn,1.6,.8),B=q(h),L=x("nf lo"),H=x("nf"),[W,P]=mt(...Be,2.4,1.1),j=q(h),F=x("nf"),X=x("nf lo"),[z,O]=mt(Re-1.7,5.4,Re+1.7,28.6,.8,.5),k=q(h),y=x("nf");v([Re-1.3,28.6,Re+1.3,31],.8,.5,-Cn,je),v([-14-Vr,-Vr,Gc+1,Kt+1],4,1.4,je,je+3),v([Wn+2,4,Re-2,Kt/2-3],2,1,je+3,Ye[2]+4),I("path",{class:"nf",d:ft(r(Re,Kt/2,je+3),r(Re,Kt/2,Ye[2]))+ft(r(Wn,Kt/2,je+3),r(Wn,Kt/2,Ye[2]))},h);const T=(w,E)=>ht(E,28).map($=>r(Ye[0]+$.u,w,Ye[2]+$.v));Q(q(h),{sil:tt(Pt(T(Kt/2-1.8,En).concat(T(Kt/2+1.8,En)))),crease:tt(T(Kt/2+1.8,En-1.4))});const n=x("nf lo");I("path",{class:"nf lo",d:tt(T(Kt/2+1.8,2.6))},h);const a=[];for(let w=0;w<uo;w++){const E=w*$n,$=p(s1,E-Cn,E);if(w<uo-1)for(const J of[-53,-15])v([62,J,68,J+6],1.5,.8,E,E+$n-Cn);const G=[];for(let J=0;J<=w;J++){const _=en(h,c,.8,"dot off");qt(_,r(37,Be[1]-3-J*3,E)),G.push(_)}a.push({sil:$,dots:G})}const l=yt(Zc,{k:u,c:1.8*Math.sqrt(u)});let d=NaN,f=null;function b(w){const E=3*$n-w+6,$=(Be[1]+Be[3])/2;Q(B,it(r,i,m,N,E,E+Yc)),L.setAttribute("d",[5,9,13].map(R=>ft(r(Fn[0]+.6,Fn[3],E+R),r(Fn[2]-.6,Fn[3],E+R))).join("")),H.setAttribute("d",ft(r(Wn,Kt/2,E+Yc),r(Wn,Kt/2,je))),Q(j,it(r,i,W,P,w,w+In)),F.setAttribute("d",tt(rt(Be[1]+3.5,w+1.2,Be[3]-3.5,w+In-4,1.2,4).map(R=>r(Be[2],R.u,R.v)))),X.setAttribute("d",ft(r(Be[2],$,w+1.2),r(Be[2],$,w+In-4))),Q(k,it(r,i,z,O,w+In,w+In+2.4)),y.setAttribute("d",ft(r(Re,Kt/2,w+In+2.4),r(Re,Kt/2,je)));const G=w/En,J=Kt/2+1.8,_=(R,Y)=>r(Ye[0]+Math.cos(R)*Y,J,Ye[2]+Math.sin(R)*Y);n.setAttribute("d",[0,1,2,3,4,5].map(R=>ft(_(G+R*Math.PI/3,2.6),_(G+R*Math.PI/3,En-1.4))).join(""))}const M=kt(t,w=>{const E=wt(l,w);return l.x!==d&&(d=l.x,b(l.x)),E});o.add(M.unregister);const S=r(Be[2],Kt/2,0)[1],A=S-r(Be[2],Kt/2,1)[1],g=w=>lt(Math.floor(((S-w[1])/A+8)/$n),0,uo-1);function C(w){w!==f&&(f=w,l.t=w<0?Zc:w*$n,j.sil.classList.toggle("hi",w<0),a.forEach((E,$)=>{E.sil.classList.toggle("hi",$===w),E.dots.forEach(G=>G.setAttribute("class",$===w?"dot m":"dot off"))}),s.textContent=w<0?"rest":a1[w],M.wake())}return C(-1),o.add(Et(t,{move:w=>C(g(w)),leave:()=>C(-1)})),o.add(()=>e.replaceChildren()),{set:w=>{l.k=w,l.c=1.8*Math.sqrt(w),M.wake()},destroy:o.dispose}},Jr=[{name:"surface",r:[0,0,132,96],rad:7,segs:[[[1.5,12],[130.5,12]]],dots:[[7,6],[13,6],[19,6]]},{name:"sidebar",r:[5,17,38,91],rad:4,segs:[[[10,25],[28,25]],[[10,33],[32,33]],[[10,41],[24,41]],[[10,49],[30,49]],[[10,83],[22,83]]]},{name:"card",r:[48,22,120,62],rad:5,segs:[[[54,30],[92,30]],[[54,38],[112,38]],[[54,46],[104,46]],[[54,54],[80,54]]]},{name:"popover",r:[80,50,126,86],rad:4,segs:[[[86,58],[118,58]],[[86,74],[116,74]],[[86,80],[108,80]]],sel:[83,62,123,70]}],ea=.18,Qr=2.4;function c1(t,e){let s=!1;for(let u=0,o=e.length-1;u<e.length;o=u++){const[c,r]=e[u],[i,h]=e[o];r>t[1]!=h>t[1]&&t[0]<(i-c)*(t[1]-r)/(h-r)+c&&(s=!s)}return s}var i1=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=-1,i=null;const h=yt(ea,{eps:.002}),v=At(45,.5,1.42);Ct(v,[[0,0,0],[132,96,0],[132,0,0],[0,96,0],[0,0,102+Qr],[132,0,102+Qr]],180,166);const x=Mt(v),p=Lt(v),m=I("g",{},e),N=Jr.map((P,j)=>{const[F,X]=mt(...P.r,P.rad,1.3),z=dc(x,F),O=j>0?I("path",{class:"nf dash"},m):null,k=q(m),y=I("path",{class:"nf"},k.g),T=P.sel?rt(...P.sel,2):null,n=P.sel?I("path",{class:"nf sil"},k.g):null,a=P.dots?P.dots.map(()=>en(k.g,v,1.6,"nf")):null;return{ring:F,inner:X,ext:z,guide:O,el:k,marks:y,selRing:T,selEl:n,dotEls:a}}),B=([P,j,F,X],z)=>[x(P,j,z),x(F,j,z),x(F,X,z),x(P,X,z)];function L(P){if(!P)return-1;for(let j=Jr.length-1;j>=0;j--)if(c1(P,B(Jr[j].r,j*c*h.t+Qr)))return j;return-1}function H(P){P!==r&&(r=P,N.forEach((j,F)=>j.el.sil.classList.toggle("hi",F===P)),W.wake())}const W=kt(t,P=>{const j=wt(h,P),F=X=>X*c*h.x;return Jr.forEach((X,z)=>{const O=N[z],k=F(z),y=k+Qr;if(Q(O.el,it(x,p,O.ring,O.inner,k,y)),O.marks.setAttribute("d",X.segs.map(([T,n])=>ft(x(T[0],T[1],y),x(n[0],n[1],y))).join("")),O.selEl&&O.selRing&&O.selEl.setAttribute("d",tt(pt(x,O.selRing,y))),O.dotEls&&X.dots&&X.dots.forEach(([T,n],a)=>qt(O.dotEls[a],x(T,n,y))),O.guide){const T=F(z-1)+Qr;O.guide.setAttribute("d",O.ext.map(n=>ft(x(n.u,n.v,k),x(n.u,n.v,T))).join(""))}}),s.textContent=r>=0?`0${r+1} · ${Jr[r].name} · z ${F(r).toFixed(1)}`:`gap ${(c*h.x).toFixed(1)}`,j});return o.add(W.unregister),o.add(Et(t,{move:P=>{i=P,h.t=ea+(1-ea)*lt((P[0]-60)/280,0,1),H(L(P)),W.wake()},leave:()=>{i=null,h.t=ea,H(-1),W.wake()}})),o.add(()=>e.replaceChildren()),{set:P=>{c=P,i&&H(L(i)),W.wake()},destroy:o.dispose}};function We(t,e,s,u,o,c){return{sil:tt(Pt(pt(t,s,c).concat(pt(t,s,o))))+jt(pt(t,Ut(s,e),c)),crease:u?tt(pt(t,u,c)):""}}function Le(t,e,s,u=1){const o=Math.cos(t.az),c=Math.sin(t.az),r=t.k,i=s+u,h=[],v=(m,N,B,L)=>{const H=o*B+r*c*L,W=r*o*L-c*B,P=Math.hypot(H,W);h.push({u:m*o+N/r*c,v:N/r*o-m*c,nu:H/P,nv:W/P})},x=e.map(m=>{const N=m.nu*o-m.nv*c,B=(m.nu*c+m.nv*o)/r,L=Math.hypot(N,B);return[m.u*o-m.v*c,(m.u*c+m.v*o)*r,N/L,B/L]}),p=x.map(([m,N,B,L])=>[m-i*B,N-i*L,B,L]).filter(([m,N])=>x.every(([B,L,H,W])=>(m-B)*H+(N-L)*W<1e-6-i));return p.forEach(([m,N,B,L],H)=>{const[W,P,j,F]=p[(H+1)%p.length],X=Math.atan2(B*F-L*j,B*j+L*F);if(v(m+u*B,N+u*L,B,L),Math.abs(X)<.1)return;const z=m*B+N*L,O=W*j+P*F,k=B*F-L*j,y=(z*F-O*L)/k,T=(B*O-j*z)/k;for(let n=0,a=Math.ceil(Math.abs(X)/.2);n<=a;n++){const l=Math.atan2(L,B)+X*n/a,d=Math.cos(l),f=Math.sin(l);v(y+u*d,T+u*f,d,f)}}),h}var La=(t,e,s,u,o,c)=>[rt(t,e,s,u,o,8),rt(t+c,e+c,s-c,u-c,Math.max(.3,o-c),8)],nc=12,rc=5.5,l1=2.4,fo=8,u1=13,Kc=55,f1=80,ho=14,na=-9,qr=118,ts=-8,Jn=9*nc+rc+8,Bi=[[0,56,.3,-8,-2,0],[1,40,.75,8,-1.9,0],[1,58,.3,-8,-.8,0],[2,74,1,-8,-1.9,0],[2,48,1,8,1.3,0],[1,34,.3,8,2,0],[1,66,1,-8,-2,0],[2,52,1,-8,-.8,0],[1,30,.45,8,2,0],[0,22,1,-8,1.6,0]],Uc=Bi.length;function d1(t,e,s,u,o,c){const r=Math.sin(vt(u)),i=Math.cos(vt(u));return t.map(h=>({u:e+(h.u-e)*i-(h.v-s)*r+o,v:s+(h.u-e)*r+(h.v-s)*i+c,nu:h.nu*i-h.nv*r,nv:h.nu*r+h.nv*i}))}var h1=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u/ho;const r=At(45,.5,1.9);Ct(r,[[na,ts,-5],[qr,ts,-5],[na,Jn,-5],[qr,Jn,-5],[qr,Jn,9]],200,168);const i=Mt(r),h=Lt(r),v=I("g",{},e),[x,p]=La(na,ts,qr,Jn,8,2.2);Q(q(v),We(i,h,x,p,-5,0)),I("path",{d:`M${i(fo-4,ts+5,0).join(" ")}L${i(fo-4,Jn-5,0).join(" ")}`,class:"dash"},v);const m=Bi.map(([P,j,F,X,z,O],k)=>{const y=fo+P*u1,T=k*nc,n=q(v);return{r:k,yaw:F,dx:X,dy:z,dz:O,px:y,py:T+rc/2,drawn:NaN,ring:rt(y,T,y+j,T+rc,2.2,6),sp:yt(1,{k:100,c:14,eps:.003}),tgt:1,due:-1,el:n,lit:!1,wantLit:!1,litDue:-1}});function N(P){const j=P.sp.x;if(j!==P.drawn){P.drawn=j;const F=j*c,X=P.yaw*ho*F,z=Math.max(0,j)*P.dz*c;Q(P.el,We(i,h,d1(P.ring,P.px,P.py,X,P.dx*F,P.dy*F),null,z,z+l1))}}let B=-1;const L=kt(t,(P,j)=>{let F=!1;for(const X of m)X.due>=0&&(j>=X.due?(X.sp.t=X.tgt,X.due=-1):F=!0),wt(X.sp,P)&&(F=!0),X.litDue>=0&&(j>=X.litDue?(X.litDue=-1,X.lit!==X.wantLit&&(X.lit=X.wantLit,X.el.sil.classList.toggle("hi",X.lit))):F=!0),N(X);return F});o.add(L.unregister);function H(P){if(P===B)return;const j=performance.now(),F=B,X=_e();B=P;for(const z of m){const O=z.r<=P?0:1;if(O!==z.tgt){z.tgt=O;const y=O===1;z.sp.k=y?22:100,z.sp.c=y?9.4:14,z.due=j+(X?0:y?(Uc-1-z.r)*f1:(z.r-(F+1))*Kc)}const k=z.r===P?1:0;z.wantLit=!!k,z.litDue=j+(k&&!X?Math.max(0,z.r-(F+1))*Kc:0)}s.textContent=P<0?"rest":`ln ${P+1}`,L.wake()}const W=P=>{const[j,F]=le(r,P[0],P[1],0);return j<na||j>qr||F<ts||F>Jn?-1:lt(Math.floor(F/nc),-1,Uc-1)};return o.add(Et(t,{move:P=>H(W(P)),leave:()=>H(-1)})),o.add(()=>e.replaceChildren()),m.forEach(P=>N(P)),{set:P=>{c=P/ho,m.forEach(j=>{j.drawn=NaN}),L.wake()},destroy:o.dispose}},hn=52,sn=10,ra=3,fe=18,es=8,Vc=[1,.5,.2,.06,0],p1=70,Jc=40,Qc={k:70,c:14},v1={k:40,c:12.4},qc={k:120,c:21,eps:.002},m1={k:36,c:11.6,eps:.002},Qn=[[2,-2],[-2,1.5],[1.5,2.5],[-2.5,-1],[2,1.5],[-1.5,2],[2.5,-1.5],[-2,-2.5]],t0=[[-1,-1],[0,-1],[1,-1],[1,0],[1,1],[0,1],[-1,1],[-1,0]],g1=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=At(45,.5,1.76),i=3*hn/2-4,h=[[-i,-i,0],[i,-i,0],[i,i,0],[-i,i,0]];t0.forEach(([n,a],l)=>h.push([n*hn+Qn[l][0]-sn,a*hn+Qn[l][1]-sn,24*1.15+ra],[n*hn+Qn[l][0]+sn,a*hn+Qn[l][1]+sn,24*1.15+ra])),Ct(r,h,200,166);const v=Mt(r),x=Lt(r),p=I("g",{},e);let m="";for(let n=-i;n<=i+1;n+=hn/2)m+=ft(v(n,-i,0),v(n,i,0))+ft(v(-i,n,0),v(i,n,0));I("path",{d:m,class:"nf lo"},p);const N=t0.map(([n,a],l)=>{const d=n*hn+Qn[l][0],f=a*hn+Qn[l][1];return{k:l,x:d,y:f,sp:yt(0,{...Qc}),lk:yt(0,{...qc,eps:.002}),hw:Wt(0,220),drawn:NaN,due:0,tgt:0,pend:!1,on:!1}});N.slice().sort((n,a)=>Math.atan2(n.y,n.x)-Math.atan2(a.y,a.x)).forEach((n,a)=>{n.n=a}),N.forEach(n=>{const a=Math.max(Math.abs(n.x),Math.abs(n.y));n.a=fe/a,n.b=1-sn/a;const l=Pt([[-fe,-fe],[fe,-fe],[fe,fe],[-fe,fe]].flatMap(([A,g])=>[v(A,g,0),v(A,g,es)])),d=A=>{let g=0;for(let C=0;C<l.length;C++){const w=l[C],E=l[(C+1)%l.length],$=(E[0]-w[0])*(A[1]-w[1])-(E[1]-w[1])*(A[0]-w[0]);if($*g<0)return!1;$&&(g=$)}return!0};let f=n.a;for(;f<n.b-.05&&d(v(n.x*f,n.y*f,0));)f+=.005;n.a=Math.min(f+.01,n.b-.1);const b=Math.hypot(n.x,n.y)*(n.b-n.a),M=Math.max(2,Math.round(b/6));let S="";for(let A=0;A<M;A++){const g=n.a+(n.b-n.a)*(A+.15)/M,C=n.a+(n.b-n.a)*(A+.65)/M;S+=ft(v(n.x*g,n.y*g,0),v(n.x*C,n.y*C,0))}I("path",{d:S,class:"nf"},p)}),N.forEach(n=>{n.slot=I("path",{class:"nf lo"},p),n.line=I("path",{class:"nf hi"},p)});let L;const H=[...N,null].sort((n,a)=>(n?n.x+n.y:0)-(a?a.x+a.y:0));for(const n of H){if(!n){const a=rt(-fe,-fe,fe,fe,7,8),l=Le(r,a,1.3),d=Le(r,a,2.8),f=rt(-7,-7,7,7,2,8);Q(q(p),We(v,x,a,l,0,es)),I("path",{d:jt(pt(v,d.concat(d.slice(0,1)),es)),class:"nf lo"},p);const b=jt(pt(v,f.concat(f.slice(0,1)),es));L=I("path",{d:b,class:"nf hi"},p);continue}n.ring=rt(n.x-sn,n.y-sn,n.x+sn,n.y+sn,4,8),n.inner=Le(r,n.ring,1.1),n.el=q(p)}const W=Wt(1,240);let P=!0;function j(n,a){const l=Math.max(0,n.sp.x),d=lt(n.lk.x,0,1),f=Xt(n.hw,a);l!==n.drawn&&(n.drawn=l,Q(n.el,We(v,x,n.ring,n.inner,l,l+ra)),n.slot.setAttribute("d",l>.4?tt(pt(v,n.ring,0)):"")),f>.5!==n.on&&(n.on=f>.5,n.el.sil.classList.toggle("hi",n.on));const b=n.a+(n.b-n.a)*d;n.line.setAttribute("d",d>.002?ft(v(n.x*n.a,n.y*n.a,0),v(n.x*b,n.y*b,0)):"")}const F=kt(t,(n,a)=>{let l=!1;for(const f of N)f.pend&&(a>=f.due?(f.pend=!1,Object.assign(f.sp,f.tgt>f.sp.t?Qc:v1),f.sp.t=f.tgt):l=!0),wt(f.sp,n)&&(l=!0),wt(f.lk,n)&&(l=!0),Qt(f.hw,a)||(l=!0),j(f,a);const d=Xt(W,a)>.5;return d!==P&&(P=d,L.setAttribute("class",d?"nf hi":"nf lo")),Qt(W,a)||(l=!0),l});o.add(F.unregister);const X=N.map(n=>v(n.x,n.y,ra)),z=v(0,0,es);let O=-1;function k([n,a]){if(Math.hypot(n-z[0],a-z[1])<30)return-1;let l=-1,d=Jc;if(X.forEach((f,b)=>{const M=Math.hypot(n-f[0],a-f[1]);M<d&&(d=M,l=b)}),l!==O&&O>=0){const f=Math.hypot(n-X[O][0],a-X[O][1]);if(f<Jc&&d>.8*f)return O}return l}const y=(n,a)=>Math.min((n.n-a+8)%8,(a-n.n+8)%8);function T(n){if(n===O)return;const a=performance.now(),l=n>=0?N[n].n:N[O].n;O=n,N.forEach(d=>{const f=y(d,l),b=n<0?0:c*Vc[f],M=b>d.tgt,S=_e()?0:M?f*p1:n<0?(4-f)*25:f===0?60:0;d.tgt=b,d.due=a+S,d.pend=!0;const A=d.k===n;Object.assign(d.lk,A?qc:m1),d.lk.t=A?1:0,d.hw.dur=A?220:260,ce(d.hw,A?1:0,a,A?60:0)}),W.dur=n<0?280:200,ce(W,n<0?1:0,a,n<0?180:0),s.textContent=n<0?"rest":"tile "+(n+1),F.wake()}return o.add(Et(t,{move:n=>T(k(n)),leave:()=>T(-1)})),o.add(()=>e.replaceChildren()),{set:n=>{if(c=n,O>=0){const a=N[O].n;N.forEach(l=>{l.tgt=l.sp.t=c*Vc[y(l,a)],l.pend=!1}),F.wake()}},destroy:o.dispose}},Zt=14,qn=.8,e0=1.8,x1=1,b1=8,ne=6,tr=15,ns=[12.6,11.3,10.4,11,11.8],sa=t=>t.split(" ").map(e=>[1,"key "+e]),n0=[[[1,"esc"],...sa("1 2 3 4 5 6 7 8 9 0 - ="),[2,"bksp"]],[[1.5,"tab"],...sa("q w e r t y u i o p [ ]"),[1.5,"key \\"]],[[1.75,"caps"],...sa("a s d f g h j k l ; '"),[2.25,"enter"]],[[2.25,"shift l"],...sa("z x c v b n m , . /"),[2.75,"shift r"]],[[1.5,"ctrl l"],[1,"super"],[1.5,"alt l"],[7,"space"],[1.5,"alt r"],[1,"fn"],[1.5,"ctrl r"]]],y1=["key f","key j"],M1=t=>lt(1-t,0,1),w1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.42);Ct(c,[[-ne,-ne,-8],[tr*Zt+ne,5*Zt+ne,-8],[tr*Zt+ne,-ne,-8],[-ne,5*Zt+ne,-8],[0,0,ns[0]]],200,166);const r=Mt(c),i=Lt(c);let h=u,v=null,x=null;const p=I("g",{},e),[m,N]=mt(-ne,-ne,tr*Zt+ne,5*Zt+ne,9,2.2);Q(q(p),it(r,i,m,N,-8,0));const B=[];n0.forEach((k,y)=>{let T=0;for(const[n,a]of k){const l=T*Zt,d=(T+n)*Zt,f=y*Zt,b=(y+1)*Zt,M=qn+e0,S=q(p);B.push({r:y,name:a,x0:l,x1:d,y0:f,y1:b,h:ns[y],foot:rt(l+qn,f+qn,d-qn,b-qn,2.6,4),top:rt(l+M,f+M,d-M,b-M,2,4),inner:rt(l+M+.9,f+M+.9,d-M-.9,b-M-.9,1.2,4),el:S,sp:yt(ns[y],{eps:.02}),drawn:NaN,bump:y1.includes(a)?I("path",{class:"lo nf"},S.g):null}),T+=n}});const L=B.find(k=>k.name==="enter");function H(k,y,T,n){for(const a of B){const l=Math.max(a.x0-k[0],0,k[0]-a.x1),d=Math.max(a.y0-k[1],0,k[1]-a.y1),f=a===y?1:M1(Math.hypot(l,d)/(T*Zt));a.sp.t=a.h-b1*n*f}}const W=[(L.x0+L.x1)/2,(L.y0+L.y1)/2];H(W,L,1.6,.6);for(const k of B)k.sp.x=k.sp.t;function P(k){const y=k.sp.x;if(y!==k.drawn&&(k.drawn=y,Q(k.el,{sil:tt(Pt(pt(r,k.foot,x1).concat(pt(r,k.top,y)))),crease:jt(pt(r,Ut(k.inner,i),y))}),k.bump)){const T=(k.x0+k.x1)/2,n=k.y1-qn-e0-2.4;k.bump.setAttribute("d",ft(r(T-2.2,n,y),r(T+2.2,n,y)))}}function j(k){k!==x&&(x?.el.sil.classList.remove("hi"),x=k,k.el.sil.classList.add("hi"))}const F=kt(t,k=>{let y=!1;for(const T of B)wt(T.sp,k)&&(y=!0),P(T);return y});o.add(F.unregister);const X=(k,y)=>B.find(T=>T.r===k&&y>=T.x0&&y<T.x1);function z(k){for(let n=n0.length-1;n>=0;n--){const a=le(c,k[0],k[1],ns[n]);if(!(a[1]<n*Zt||a[1]>=(n+1)*Zt||a[0]<0||a[0]>=tr*Zt))return{at:a,key:X(n,a[0])}}const y=le(c,k[0],k[1],ns[2]);if(y[0]<-ne||y[0]>tr*Zt+ne||y[1]<-ne||y[1]>5*Zt+ne)return null;const T=[lt(y[0],0,tr*Zt-.01),lt(y[1],0,5*Zt-.01)];return{at:T,key:X(Math.floor(T[1]/Zt),T[0])}}function O(){v?(H(v.at,v.key,h,1),j(v.key),s.textContent=v.key.name):(H(W,L,1.6,.6),j(L),s.textContent="rest"),F.wake()}return j(L),o.add(Et(t,{move:k=>{v=z(k),O()},leave:()=>{v=null,O()}})),o.add(()=>e.replaceChildren()),{set:k=>{h=k,v&&O()},destroy:o.dispose}},re=150,Ie=106,sc=4,wn=2.4,Ii=sc+wn/2,r0=7,s0=1.1,po=15,aa=100,er=4.2,oa=7.5,$t=8.6,ac=6,a0=t=>{const e=Math.cos(vt(t)),s=Math.sin(vt(t));return(u,o,c)=>[u,o*e-c*s,Ii+o*s+c*e]};function k1(){const t=[],e=(re-14.5*$t)/2,s=(i,h,v)=>{let x=e;for(const p of v)t.push([x,i,x+p*$t,i+h]),x+=p*$t},u=i=>Array(i).fill(1);s(ac,$t*.6,Array(14).fill(14.5/14));let o=ac+$t*.6;for(const i of[[...u(13),1.5],[1.5,...u(13)],[1.75,...u(11),1.75],[2.25,...u(10),2.25]])s(o,$t,i),o+=$t;s(o,$t,[1,1,1,1.25,5,1.25,1]);const c=e+11.5*$t,r=$t/2;return t.push([c,o+r,c+$t,o+$t],[c+$t,o,c+2*$t,o+r],[c+$t,o+r,c+2*$t,o+$t],[c+2*$t,o+r,c+3*$t,o+$t]),{out:t,y1:o+$t,x0:e}}var A1=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null;const i=At(45,.5,1.3),h=[[0,0,0],[re,0,0],[0,Ie,0],[re,Ie,0]];for(const D of[po,90,aa,125])for(const et of[0,re])for(const nt of[0,Ie])for(const ct of[-wn/2,wn/2])h.push(a0(D)(et,nt,ct));Ct(i,h,200,166);const v=Mt(i),x=Lt(i),p=v(0,0,0),m=v(1,0,0),N=v(0,1,0),B=v(0,0,1),L=[m[0]-p[0],N[0]-p[0],B[0]-p[0]],H=[m[1]-p[1],N[1]-p[1],B[1]-p[1]];let W=[L[1]*H[2]-L[2]*H[1],L[2]*H[0]-L[0]*H[2],L[0]*H[1]-L[1]*H[0]];W[2]<0&&(W=W.map(D=>-D));const P=(D,et)=>D[0]*et[0]+D[1]*et[1]+D[2]*et[2],j=I("g",{},e),[F,X]=mt(0,0,re,Ie,r0,s0);Q(q(j),it(v,x,F,X,0,sc));const z=D=>tt(D.map(et=>v(et.u,et.v,sc))),O=k1();I("path",{class:"nf lo",d:O.out.map(([D,et,nt,ct])=>z(rt(D+.5,et+.5,nt-.5,ct-.5,1.1,2))).join("")},j),I("path",{class:"nf",d:z(rt(O.x0-1.6,ac-1.6,re-O.x0+1.6,O.y1+1.6,3,4))},j),I("path",{class:"nf",d:z(rt(re/2-35,Ie-45,re/2+35,Ie-5,3.2,4))},j);const k=I("g",{},j),y=q(k),T=I("g",{},k);y.sil.classList.add("hi");const[n,a]=mt(0,0,re,Ie,r0,s0),l=I("path",{class:"nf"},T),d=I("path",{class:"nf lo"},T),f=I("path",{class:"nf lo"},T),b=I("path",{},T),M=I("path",{class:"nf lo"},T),S=I("circle",{r:.8,class:"dot off"},T),A=[0,1,2].map(()=>I("circle",{r:.8,class:"dot off"},T)),g=Ie-er,C=30,w=104,E=oa+16,$=g-12;let G=null,J=NaN;function _(D){if(D===J)return;J=D;const et=a0(D),nt=Math.cos(vt(D)),ct=Math.sin(vt(D)),It=(dt,gt,Rt)=>v(...et(dt,gt,Rt)),ot=(dt,gt)=>It(dt,gt,-wn/2),zt=(dt,gt)=>dt.map(Rt=>It(Rt.u,Rt.v,gt)),_t=P([0,ct,-nt],W)>0,Bt=_t?-wn/2:wn/2,Gt=dt=>P([dt.nu,dt.nv*nt,dt.nv*ct],W)>0;Q(y,{sil:tt(Pt(zt(n,-wn/2).concat(zt(n,wn/2)))),crease:jt(zt(Ut(a,Gt),Bt))}),_t!==G&&(G=_t,_t?y.g.after(T):y.g.before(T));const at=dt=>tt(dt.map(gt=>ot(gt.u,gt.v)));l.setAttribute("d",at(rt(er,oa,re-er,g,3,4))),d.setAttribute("d",ft(ot(er+1.5,g-4),ot(re-er-1.5,g-4))),f.setAttribute("d",at(rt(re/2-28,oa+2.5,re/2+28,oa+8.5,2.2,4))),b.setAttribute("d",at(rt(C,E,w,$,2.6,4))),M.setAttribute("d",ft(ot(C,$-6),ot(w,$-6))+ft(ot(C+20,E),ot(C+20,$-6))),qt(S,ot(re/2,Ie-er/2)),A.forEach((dt,gt)=>qt(dt,ot(C+4+gt*3.4,$-3)))}const R=yt(aa,{eps:.05}),Y=kt(t,D=>{const et=wt(R,D);return _(R.x),et});o.add(Y.unregister),_(aa);const Z=v(re/2,0,Ii+Ie)[1]+12,V=v(re/2,Ie,0)[1]-12;function K(){r===null?(R.t=Math.min(aa,c),s.textContent="rest"):(R.t=bt(c,po,lt((r-Z)/(V-Z),0,1)),s.textContent=R.t<=po+.5?"shut":R.t>=c-.5?"open":`lid ${Math.round(R.t)}°`),Y.wake()}return o.add(Et(t,{move:D=>{r=D[1],K()},leave:()=>{r=null,K()}})),o.add(()=>e.replaceChildren()),{set:D=>{c=D,K()},destroy:o.dispose}},js=6,Rs=2,Wa=24,Xa=38,Ga=1.2,Qe=3,ze=6,Vt=26,jn=1.4,o0=23,nr=js*Wa+2*Qe,rs=Rs*Xa+2*Qe,Fe=Wa-2*Ga,nn=Xa-2*Ga,vo=5,c0=22,i0=120,ca=rt(0,0,Fe,nn,1.8,4),l0=[0,1,2].map(t=>rt(4,nn-6.6-t*3.2,Fe-4,nn-5.2-t*3.2,.7,2)),E1=rt(Fe/2-4.5,nn-19,Fe/2+4.5,nn-15,1,3),T1=rt(Fe-5.6,nn/2-7,Fe-2.8,nn/2+2,1.2,3),S1=rt(2.6,2.6,Fe-2.6,nn-2.6,1.4,3),u0=t=>t.reduce((e,s,u)=>{const o=t[(u+1)%t.length];return e+s[0]*o[1]-o[0]*s[1]},0),N1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.6),r=[Math.cos(vt(i0))*Fe,Math.sin(vt(i0))*Fe];Ct(c,[[-4,-4,0],[nr+4,Vt+4,0],[nr+4,-4,0],[-4,Vt+4,0],[0,0,ze+rs],[nr,0,ze+rs],[Qe+r[0],Vt+r[1],ze+Qe],[Qe+r[0],Vt+r[1],ze+rs-Qe]],200,166);const i=Mt(c),h=Lt(c);let v=u,x=-1;function p(k,y){const T=i(0,y,0),n=i(1,y,0),a=i(0,y,1),l=[n[0]-T[0],n[1]-T[1]],d=[a[0]-T[0],a[1]-T[1]],f=l[0]*d[1]-l[1]*d[0],b=k[0]-T[0],M=k[1]-T[1];return[(b*d[1]-M*d[0])/f,(l[0]*M-l[1]*b)/f]}function m(k,y,T){const n=i(...k),a=i(...y),l=p(n,Vt),d=p(a,Vt),f=.9;let b=0,M=1;const S=[[l[0]-d[0],l[0]-(T.x0+f)],[d[0]-l[0],T.x0+Fe-f-l[0]],[l[1]-d[1],l[1]-(T.z0+f)],[d[1]-l[1],T.z0+nn-f-l[1]]];for(const[g,C]of S){if(g===0){if(C<0)return"";continue}const w=C/g;g<0?b=Math.max(b,w):M=Math.min(M,w)}if(M-b<.01)return"";const A=g=>[n[0]+(a[0]-n[0])*g,n[1]+(a[1]-n[1])*g];return ft(A(b),A(M))}const N=I("g",{},e),[B,L]=mt(-4,-4,nr+4,Vt+4,5,1.6);Q(q(N),it(i,h,B,L,0,ze));const[H,W]=mt(0,0,nr,Vt,3,1.4);Q(q(N),it(i,h,H,W,ze,ze+rs));const P=[];for(let k=0;k<js;k++)for(let y=0;y<Rs;y++){const T=Qe+k*Wa+Ga,n=ze+Qe+y*Xa+Ga,a=I("g",{},N);I("path",{d:tt(ca.map(M=>i(T+M.u,Vt,n+M.v))),class:""},a);const l={c:k,r:y,n:(Rs-1-y)*js+k+1,x0:T,z0:n,drawn:NaN,sign0:0,tw:Wt(0)},d=l.z0+nn-9.5,f=l.x0+Fe,b=[m([l.x0,Vt,l.z0],[l.x0,Vt-o0,l.z0],l),m([l.x0,Vt-1.6,d],[f,Vt-1.6,d],l),m([l.x0,Vt-1.6,d],[l.x0,Vt-o0,d],l)].join("");I("path",{d:b,class:"nf lo"},a),l.plate=I("path",{class:"lo"},a),l.face=I("path",{class:"sil"},a),l.marks=I("path",{class:"nf lo"},a),l.cup=I("path",{class:"nf"},a),P.push(l)}const j=k=>P.find(y=>y.n===k);function F(k,y){if(y===k.drawn)return;k.drawn=y;const T=Math.cos(vt(y)),n=Math.sin(vt(y)),a=S=>A=>i(k.x0+A.u*T-S*n,Vt+jn/2+A.u*n+S*T,k.z0+A.v),l=ca.map(a(jn/2)),d=ca.map(a(-jn/2)),f=u0(l)*k.sign0>0,b=f?jn/2:-jn/2;k.plate.setAttribute("d",tt(Pt(l.concat(d)))),k.face.setAttribute("d",tt(f?l:d));const M=f?[...l0,E1]:[...l0,S1];k.marks.setAttribute("d",M.map(S=>tt(S.map(a(b)))).join("")),k.cup.setAttribute("d",f?tt(T1.map(a(b))):"")}for(const k of P)k.sign0=Math.sign(u0(ca.map(y=>i(k.x0+y.u,Vt+jn,k.z0+y.v))));const X=kt(t,(k,y)=>{let T=!1;for(const n of P)F(n,Xt(n.tw,y)),Qt(n.tw,y)||(T=!0);return T});o.add(X.unregister);function z(k){const[y,T]=p(k,Vt+jn);if(y<0||y>nr||T<ze||T>ze+rs)return-1;const n=lt(Math.floor((y-Qe)/Wa),0,js-1),a=lt(Math.floor((T-ze-Qe)/Xa),0,Rs-1);return(Rs-1-a)*js+n+1}function O(k,y){if(k===x&&!y)return;x=k;const T=performance.now(),n=k>0?k:vo;for(const a of P)ce(a.tw,a.n===k?v:k<=0&&a.n===vo?c0:0,T,0),a.face.classList.toggle("hi",a.n===n),a.cup.classList.toggle("hi",a.n===n);s.textContent=k>0?"locker "+String(k).padStart(2,"0"):"rest",X.wake()}return j(vo).tw=Wt(c0),O(0,!0),o.add(Et(t,{move:k=>O(Math.max(0,z(k))),leave:()=>O(0)})),o.add(()=>e.replaceChildren()),{set:k=>{v=k,x>0&&O(x,!0)},destroy:o.dispose}},Rn=124,ss=92,mo=7,ia=13,f0=11,Ps=26,d0=12,Ls=27,go=20,C1=1.2,xo=Ls-1.4,j1=[45,165,285],h0=35,R1=1.8,rr=[Ps+9,46],P1=2.1,L1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,P1),r=go+C1,i=j1.map(g=>[Math.cos(g*Math.PI/180),Math.sin(g*Math.PI/180)]),[h,v]=le(c,...Mt(c)(0,0,0),r),x=[[0,0,-2.4],[Rn,0,-2.4],[0,ss,-2.4],[Rn,ss,-2.4]];for(const g of ht(Ls,16))x.push([rr[0]+h+g.u,rr[1]+v+g.v,r]);Ct(c,x,200,166);const p=Mt(c),m=Lt(c),N=I("g",{},e),[B,L]=mt(0,0,Rn,ss,6,1.4);Q(q(N),it(p,m,B,L,-2.4,0));const H=g=>ia+g*f0,W=[[[Ps,ia-7],[Ps,H(mo-1)+7]],...Array.from({length:mo},(g,C)=>[[Ps,H(C)],[Rn-d0,H(C)]])];I("path",{class:"nf lo",d:W.map(([g,C])=>ft(p(g[0],g[1],0),p(C[0],C[1],0))).join("")},N);const P=I("path",{class:"nf"},N),j=q(N),F=I("path",{class:"nf lo"},N),X=I("path",{class:"nf sil"},N),z=ht(xo*.72,64).slice(26,36),O=ht(Ls,64),k=ht(xo,64),y=rt(0,0,Rn,ss,6,12),T=ht(R1,12),n=(g,C)=>g>=0&&g<=Rn&&C>=0&&C<=ss?0:-2.4,a=yt(rr[0]),l=yt(rr[1]),d=yt(u);let f=NaN,b=NaN,M=NaN;function S(){if(a.x===f&&l.x===b&&d.x===M)return;const g=a.x!==f||l.x!==b;f=a.x,b=l.x,M=d.x;const C=f+h,w=b+v;if(g){const J=(_,R)=>p(C+_.u,w+_.v,R);P.setAttribute("d",i.map(([_,R])=>{const Y=C+_*h0,Z=w+R*h0,V=n(Y,Z);return ft(p(Y,Z,V),p(C+_*(Ls-1),w+R*(Ls-1),go))+tt(T.map(K=>p(Y+K.u,Z+K.v,V)))}).join("")),Q(j,{sil:tt(Pt(O.map(_=>J(_,go)).concat(O.map(_=>J(_,r))))),crease:tt(k.map(_=>J(_,r)))}),F.setAttribute("d",jt(z.map(_=>J(_,r))))}const E=xo-1,$=(J,_)=>{const R=(J[0]-f)*M,Y=(J[1]-b)*M,Z=(_[0]-J[0])*M,V=(_[1]-J[1])*M,K=Z*Z+V*V,D=R*Z+Y*V,et=D*D-K*(R*R+Y*Y-E*E);if(et<=0)return"";const nt=Math.max(0,(-D-Math.sqrt(et))/K),ct=Math.min(1,(-D+Math.sqrt(et))/K);return ct>nt?ft(p(C+R+Z*nt,w+Y+V*nt,r),p(C+R+Z*ct,w+Y+V*ct,r)):""};let G=y.map((J,_)=>$([J.u,J.v],[y[(_+1)%y.length].u,y[(_+1)%y.length].v])).join("");for(const[J,_]of W)G+=$(J,_);X.setAttribute("d",G)}const A=kt(t,g=>{const C=wt(a,g),w=wt(l,g),E=wt(d,g);return S(),C||w||E});return o.add(A.unregister),j.sil.classList.add("hi"),s.textContent="rest",S(),o.add(Et(t,{move:g=>{const[C,w]=le(c,g[0],g[1],0);a.t=lt(C,Ps,Rn-d0),l.t=lt(w,ia,H(mo-1)),s.textContent=`row ${Math.round((l.t-ia)/f0)+1} · 0`,A.wake()},leave:()=>{a.t=rr[0],l.t=rr[1],s.textContent="rest",A.wake()}})),o.add(()=>e.replaceChildren()),{set:g=>{d.t=g,A.wake()},destroy:o.dispose}},pn=56,zn=20,Me=44,we=1.6,bo=4.2,la=30,yo=13,p0=zn/2,_1=13,v0=7,m0=11,as=.42,B1=26,I1=56,g0=200,x0=2.75,z1=100,H1=Math.SQRT1_2*Math.sqrt(3),b0=t=>t*t*(3-2*t);function O1(t){return t.map((e,s)=>{const u=t[(s+t.length-1)%t.length],o=t[(s+1)%t.length],c=o[0]-u[0],r=o[1]-u[1],i=Math.hypot(c,r)||1;return{u:e[0],v:e[1],nu:r/i,nv:-c/i}})}function D1(t,e,s,u){const o=e[0]-t[0],c=e[1]-t[1],r=u[0]-s[0],i=u[1]-s[1],h=s[0]-t[0],v=s[1]-t[1],x=o*i-c*r;if(!x)return null;const p=(h*i-v*r)/x,m=(h*c-v*o)/x;return p>0&&p<1&&m>0&&m<1?[t[0]+p*o,t[1]+p*c]:null}function y0(t){for(let e=0;e<t.length-3;e++)for(let s=t.length-2;s>e+1;s--){const u=D1(t[e],t[e+1],t[s],t[s+1]);if(u){t.splice(e+1,s-e,u);break}}return t}function $1(t,e){const s=t.length,u=[],o=[];for(let r=0;r<s;r++){const i=t[Math.max(r-1,0)],h=t[r],v=t[Math.min(r+1,s-1)],x=[h[0]-i[0],h[1]-i[1]],p=[v[0]-h[0],v[1]-h[1]],m=Math.hypot(x[0],x[1])||1,N=Math.hypot(p[0],p[1])||1;let B=x[0]/m+p[0]/N,L=x[1]/m+p[1]/N;const H=Math.hypot(B,L)||1;B/=H,L/=H,u.push([h[0]-L*e,h[1]+B*e]),o.push([h[0]+L*e,h[1]-B*e])}const c=r=>{const i=[];for(let h=7;h>=1;h--){const v=Math.PI*h/8;i.push([r[0]+e*Math.cos(v),r[1]+e*.5*Math.sin(v)])}return i};return tt([...y0(u),...c(t[s-1]),...y0(o).reverse(),...c(t[0])])}var F1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=yt(u);let r=!1;const i=(S,A,g)=>{const C=[Math.cos(vt(g)),-Math.sin(vt(g))],w=Me+_1+A,E=la/2,$=(J,_)=>S(yo+C[0]*J,p0+C[1]*J,_),G=[$(la,Math.max(Me-v0+A,Me)),$(la,w)];for(let J=1;J<28;J++){const _=Math.PI*J/28;G.push($(E+E*Math.cos(_),w+E*Math.sin(_)))}return G.push($(0,w),$(0,Me)),G},h=At(45,.5,x0),v=(S,A,g)=>[S,A,g],x=[[0,0,0],[pn,0,0],[0,zn,0],[pn,zn,0],[0,0,Me]];for(const S of[0,40,80,z1])for(const A of i(v,m0,S))x.push([A[0],A[1],A[2]+bo]);Ct(h,x,200,170);const p=Mt(h),m=bo*x0,N=ge([[0,0],[pn,0],[pn,Me],[0,Me]],[14,14,7,7],12),B=O1(ge([[we,we],[pn-we,we],[pn-we,Me-we],[we,Me-we]],[14-we,14-we,7-we,7-we],12)),L=I("g",{},e);Q(q(L),{sil:tt(Pt(N.map(S=>p(S[0],0,S[1])).concat(N.map(S=>p(S[0],zn,S[1]))))),crease:jt(Ut(B,S=>S.nu*H1+S.nv>0).map(S=>p(S.u,zn,S.v)))});const H=pn/2,W=Me*.56,P=4.4,j=1.8,F=W-12,X=Math.asin(j/P),z=[];for(let S=0;S<=20;S++){const A=-Math.PI/2+X+(2*Math.PI-2*X)*S/20;z.push([H+P*Math.cos(A),W+P*Math.sin(A)])}for(let S=0;S<=6;S++){const A=Math.PI+Math.PI*S/6;z.push([H+j*Math.cos(A),F+j*Math.sin(A)])}I("path",{d:tt(z.map(S=>p(S[0],zn,S[1]))),class:"nf"},L);const O=ht(bo+1.3,20);for(const S of[yo,yo+la])I("path",{d:tt(O.map(A=>p(S+A.u,p0+A.v,Me))),class:"nf lo"},L);const k=I("path",{class:"sil"},L),y=(S,A)=>[m0*b0(lt(S/as,0,1)),A*b0(lt((S-as)/(1-as),0,1))],T=()=>as+(1-as)*(.5-Math.sin(Math.asin(1-2*B1/c.t)/3)),n=yt(T(),{eps:.002});let a=NaN,l=NaN;function d(){if(n.x===a&&c.x===l)return;a=n.x,l=c.x;const[S,A]=y(n.x,c.x);k.setAttribute("d",$1(i(p,S,A),m))}const f=kt(t,S=>{const A=wt(n,S),g=wt(c,S);return d(),A||g});o.add(f.unregister);const b=p(pn/2,zn/2,Me/2);function M(){const[S,A]=y(n.t,c.t),g=r&&S<v0;s.textContent=r?g?"locked":A<1?"open":Math.round(A)+"°":"rest",k.classList.toggle("hi",!g),f.wake()}return M(),o.add(Et(t,{move:S=>{r=!0,n.t=lt((g0-Math.hypot(S[0]-b[0],S[1]-b[1]))/(g0-I1),0,1),M()},leave:()=>{r=!1,n.t=T(),M()}})),o.add(()=>e.replaceChildren()),{set:S=>{c.t=S,r||(n.t=T()),M()},destroy:o.dispose}},_a=12,Ba=15,zi=8,_s=15,W1=5,sr=44,Hn=_s+W1,vn=2*Hn+_a*Ba+zi,os=30,cs=12.5,Pn=5,se=4.2,ua=1.9,Mo=1.7,X1=2.4,fa=4.3,ar=3.5,G1=4,Y1=5,Z1=1.8,K1=6,wo=10,is=7,ko=9,U1=[2,10,18],da=7,Ao=2.5,V1=t=>[t*7%5-2,t*11%7-3],J1=(t,e)=>t===0?0:lt(1-(t-1)/e,0,1);function Q1(t,e){const s=t.length,u=[],o=[],c=[];for(let i=0;i<s;i++){const h=t[Math.max(0,i-1)],v=t[Math.min(s-1,i+1)],x=Math.hypot(v[0]-h[0],v[1]-h[1])||1,p=[(v[0]-h[0])/x,(v[1]-h[1])/x];c.push(p),u.push([t[i][0]-p[1]*e,t[i][1]+p[0]*e]),o.push([t[i][0]+p[1]*e,t[i][1]-p[0]*e])}const r=(i,h,v)=>{const x=[];for(let p=1;p<6;p++){const m=p/6*Math.PI,N=Math.cos(m),B=Math.sin(m);x.push([i[0]+v*e*(-h[1]*N+h[0]*B),i[1]+v*e*(h[0]*N+h[1]*B)])}return x};return tt([...u,...r(t[s-1],c[s-1],1),...o.reverse(),...r(t[0],c[0],-1)])}var q1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=1.5,r=At(45,.5,c),i=os+27+ko+is,h=cs-26-is;Ct(r,[[0,-18,sr],[vn,-18,sr],[0,0,0],[vn,0,0],[Hn,34,i],[vn-Hn,34,h],[Hn,34,h]],200,166);const v=Mt(r),x=Lt(r);let p=u,m=-1,N=null;const B=(_,R,Y,Z)=>_.map(V=>v(R+V.u,Y,Z+V.v)),L=_=>.612*_.nu+.5*_.nv>0,H=(_,R,Y,Z,V,K)=>({sil:tt(Pt(B(_,Y,V,Z).concat(B(_,Y,K,Z)))),crease:jt(B(Ut(R,L),Y,K,Z))}),W=I("g",{},e),[P,j]=mt(_s+2,-18,vn-_s-2,-2.6,3,1.6);Q(q(W),it(v,x,P,j,3,sr-3)),Q(q(W),H(rt(0,0,vn,sr,3,4),rt(.7,.7,vn-.7,sr-.7,2.3,4),0,0,-2.6,0));const F=_=>_.map(R=>[R.u,R.v]),X=(_,R)=>I("path",{d:tt(_.map(([Y,Z])=>v(Y,0,Z))),class:R},W);for(const _ of[_s/2+1,vn-_s/2-1])for(const R of[8,sr-8])X(F(rt(_-3.4,R-1.5,_+3.4,R+1.5,1.5,3)),"nf");const z=[];for(let _=0;_<2*_a;_++){const R=_<_a?0:1,Y=_%_a;z.push({p:_,r:R,c:Y,cx:Hn+(Y+.5)*Ba+(Y>=6?zi:0),cz:R?cs:os,full:!U1.includes(_)})}for(const _ of[0,6]){const R=z[_].cx-Ba/2+1,Y=z[_+5].cx+Ba/2-1;X(F(rt(R,cs-se-3,Y,os+se+Mo+2.6,2.4,4)),"lo nf")}const O=ge([[-Pn,-se],[Pn,-se],[Pn,se],[ua,se],[ua,se+Mo],[-ua,se+Mo],[-ua,se],[-Pn,se]],[1,1,1,.4,.5,.5,.4,1]);for(const _ of z){const{cx:R,cz:Y}=_,Z=X1;_.jack=X(O.map(([V,K])=>[R+V,Y+K]),"nf"),I("path",{d:jt([[-Pn+Z,se],[-Pn+Z,-se+.816*Z],[Pn,-se+.816*Z]].map(([V,K])=>v(R+V,0,Y+K))),class:"lo nf"},W)}const k=I("g",{},W),y=I("g",{},W),T=rt(-fa,-ar,fa,ar,1.2,3),n=rt(-fa+.7,-ar+.7,fa-.7,ar-.7,.6,3),a=rt(-3.7,-3,3.7,3,1.6,3),l=rt(-2.4,-2.4,2.4,2.4,2.3,3),d=z.slice().sort((_,R)=>_.c-R.c||_.r-R.r);for(const _ of d)_.pull=yt(0,{eps:.002}),_.lx=yt(0,{eps:.01}),_.lz=yt(0,{eps:.01}),_.full&&(_.plug=q(k),_.latch=I("path",{class:"lo nf"},_.plug.g),_.boot=q(k),_.cable=I("path",{class:"sil"},y),_.drawn="");function f(_){const R=_.pull.x,Y=_.lx.x,Z=_.lz.x,V=[R,Y,Z].map(te=>te.toFixed(3)).join();if(V===_.drawn)return;_.drawn=V;const{cx:K,cz:D,r:et,p:nt}=_,ct=G1+K1*R,It=ct+Y1,ot=et?-1:1,[zt,_t]=V1(nt);Q(_.plug,H(T,n,K,D,0,ct)),_.latch.setAttribute("d",ft(v(K,.6,D+ar),v(K,ct-.8,D+ar))),Q(_.boot,{sil:tt(Pt(B(a,K,ct,D).concat(B(l,K,It,D)))),crease:""});const Bt=et?6:2,Gt=et?2:3,at=[K,It-1.5,D],dt=et?[K+.5,It+Bt+4*R,D]:[K,It+1+2*R,D+6],gt=[K+Gt+zt+Y,It+Bt+1+ko*R,D+ot*(24+_t)+Z+ko*R],Rt=[gt[0]-.6,gt[1]-1,gt[2]-ot*12],Yt=[];for(let te=0;te<=16;te++){const xt=te/16,xe=(1-xt)**3,un=3*(1-xt)**2*xt,Hr=3*(1-xt)*xt*xt,Ki=xt**3;Yt.push(v(...[0,1,2].map(Xs=>xe*at[Xs]+un*dt[Xs]+Hr*Rt[Xs]+Ki*gt[Xs])))}_.cable.setAttribute("d",Q1(Yt,Z1*c))}function b(_,R,Y){const Z=z[_];for(const V of z){const K=V.c-Z.c,D=V.r-Z.r,et=Math.hypot(K,D),nt=J1(et,R)*Y;V.pull.t=V===Z?Y:0,V.lx.t=et?lt(K/et*nt*wo,-wo,wo):0,V.lz.t=et?lt(-D/et*nt*is,-is,is):0}}function M(_){if(_===N)return;const R=(Y,Z)=>(Y.full?[Y.plug.sil,Y.boot.sil,Y.cable]:[Y.jack]).forEach(V=>V.classList.toggle("hi",Z));N&&R(N,!1),N=_,R(_,!0)}b(da,1.6,.55);for(const _ of z)for(const R of[_.pull,_.lx,_.lz])R.x=R.t;M(z[da]),s.textContent="rest";const S=kt(t,_=>{let R=!1;for(const Y of z){for(const Z of[Y.pull,Y.lx,Y.lz])wt(Z,_)&&(R=!0);Y.full&&f(Y)}return R});o.add(S.unregister);const A=v(0,Ao,0),g=v(1,Ao,0),C=v(0,Ao,1),w=[g[0]-A[0],g[1]-A[1]],E=[C[0]-A[0],C[1]-A[1]],$=w[0]*E[1]-w[1]*E[0];function G([_,R]){const Y=_-A[0],Z=R-A[1],V=(Y*E[1]-Z*E[0])/$,K=(w[0]*Z-w[1]*Y)/$;if(V<Hn-2||V>vn-Hn+2||K<cs-se-6||K>os+se+8)return-1;let D=-1,et=1/0;for(const nt of z){const ct=Math.abs(nt.cx-V)+(Math.abs(nt.cz-K)>(os-cs)/2?1e3:0);ct<et&&(et=ct,D=nt.p)}return D}function J(){m>=0?(b(m,p,1),M(z[m]),s.textContent="port "+String(m+1).padStart(2,"0")):(b(da,1.6,.55),M(z[da]),s.textContent="rest"),S.wake()}return o.add(Et(t,{move:_=>{const R=G(_);R!==m&&(m=R,J())},leave:()=>{m=-1,J()}})),o.add(()=>e.replaceChildren()),{set:_=>{p=_,m>=0&&J()},destroy:o.dispose}},Ht=68,ut=140,Eo=11,tu=40,Pr=2,Lr=1.6,Hi=1.8,Va=7,Ds=6,pc=2.2,Ya=.9,eu=Pr+Lr+Hi+Va+Ds+pc+Ya,nu=["glass","board","battery","shell"],ru=[.36,.3,1.2],su=.08,M0=1,Oi=[[4,ut-44],[Ht-4,ut-44],[Ht-4,ut-5],[36,ut-5],[36,ut-30],[4,ut-30]],cn=[9,12,Ht-9,ut-48],au=[[10,ut-41,26,ut-34,1.4],[45,ut-40,54,ut-35,1.2],[57,ut-42,62,ut-36,1.2],[42,ut-27,56,ut-13,1.8]],w0=[[0,0],[Ht,0],[Ht,ut],[0,ut]],ou=[w0,Oi,[[cn[0],cn[1]],[cn[2],cn[1]],[cn[2],cn[3]],[cn[0],cn[3]]],w0],k0=[Pr,Lr,Va,Ds];function A0(t){const e=[0],s=[Pr,Lr+Hi,Va];for(let o=0;o<3;o++)e.push(e[o]+s[o]+t[o]);const u=(e[3]+Ds+pc+Ya)/2;return e.map(o=>o-u)}function cu(t,e){let s=!1;for(let u=0,o=e.length-1;u<e.length;o=u++){const[c,r]=e[u],[i,h]=e[o];r>t[1]!=h>t[1]&&t[0]<(i-c)*(t[1]-r)/(h-r)+c&&(s=!s)}return s}var ls=(t,e,s)=>t.map(u=>({...u,u:u.u+e,v:u.v+s})),iu=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null,i=M0,h=null;const v=At(45,.5,1.5),x=(eu+3*tu)/2;Ct(v,[[0,0,-x],[Ht+2.2,ut,-x],[Ht+2.2,0,-x],[0,ut,-x],[0,0,x],[Ht+2.2,0,x],[0,ut,x]],200,166);const p=Mt(v),m=Lt(v),N=(at,dt)=>tt(at.map(([gt,Rt])=>p(gt,Rt,dt))),B=I("g",{},e),L=rt(0,0,Ht,ut,Eo,8),H=dc(p,L).slice(0,2),W=I("path",{class:"nf dash"},B),P=I("g",{},B),j=q(P),F=rt(1.2,1.2,Ht-1.2,ut-1.2,Eo-1.2,8),X=ge([[4,4],[Ht-4,4],[Ht-4,ut-4],[Ht/2+12,ut-4],[Ht/2+12,ut-10],[Ht/2-12,ut-10],[Ht/2-12,ut-4],[4,ut-4]],[7.5,7.5,7.5,2,3.5,3.5,2,7.5]),z=I("path",{class:"nf"},P),O=I("path",{class:"nf"},P),k=I("path",{class:"nf lo"},P),y=ls(ht(1.5,16),Ht/2+6,ut-7),T=I("g",{},B),n=ge(Oi,[4,4,4,4,3,4]),a=I("path",{class:"lo"},T),l=I("path",{class:"sil"},T),d=au.map(([at,dt,gt,Rt,Yt])=>{const[te,xt]=mt(at,dt,gt,Rt,1.5,.7);return{ring:te,inner:xt,h:Yt,el:q(T)}}),f=I("g",{},B),b=q(f),[M,S]=mt(...cn,6,1.6),A=ge([[41,ut-48],[52,ut-48],[52,ut-31],[41,ut-31]],[.5,.5,2,2]),g=I("path",{class:"lo"},f),C=I("path",{},f),w=q(f),[E,$]=mt(42,ut-38,51,ut-32,1.5,.7),G=I("g",{},B),J=q(G),_=rt(1.8,1.8,Ht-1.8,ut-1.8,Eo-1.8,8),R=[[ut-68,ut-58],[ut-54,ut-44]].map(([at,dt])=>{const[gt,Rt]=mt(Ht-.5,at,Ht+2.2,dt,1.2,.5);return{ring:gt,inner:Rt,el:q(G)}}),Y=q(G),Z=rt(7,ut-33,33,ut-7,7,6),V=rt(8,ut-32,32,ut-8,6,6),K=[[14.5,ut-25.5],[25.5,ut-14.5]].map(([at,dt])=>{const gt=q(G);return{ring:ls(ht(4.6,24),at,dt),inner:ls(ht(3.6,24),at,dt),eye:ls(ht(1.9,16),at,dt),el:gt,glass:I("path",{class:"nf lo"},gt.g)}}),D=I("path",{class:"nf"},G),et=ls(ht(1.7,16),25.5,ut-25.5),nt=[at=>{Q(j,it(p,m,L,F,at,at+Pr));const dt=at+Pr;z.setAttribute("d",N(X,dt)),O.setAttribute("d",tt(pt(p,y,dt))),k.setAttribute("d",ft(p(Ht/2-6,ut-7,dt),p(Ht/2+1.5,ut-7,dt)))},at=>{a.setAttribute("d",N(n,at)),l.setAttribute("d",N(n,at+Lr));for(const dt of d)Q(dt.el,it(p,m,dt.ring,dt.inner,at+Lr,at+Lr+dt.h))},at=>{Q(b,it(p,m,M,S,at,at+Va)),g.setAttribute("d",N(A,at+.8)),C.setAttribute("d",N(A,at+1.4)),Q(w,it(p,m,E,$,at+1.4,at+2.6))},at=>{Q(J,it(p,m,L,_,at,at+Ds));for(const Rt of R)Q(Rt.el,it(p,m,Rt.ring,Rt.inner,at+1.6,at+4.4));const dt=at+Ds,gt=dt+pc;Q(Y,it(p,m,Z,V,dt,gt));for(const Rt of K)Q(Rt.el,it(p,m,Rt.ring,Rt.inner,gt,gt+Ya)),Rt.glass.setAttribute("d",tt(pt(p,Rt.eye,gt+Ya)));D.setAttribute("d",tt(pt(p,et,gt)))}],ct=[j.sil,l,b.sil,J.sil],It=()=>[0,1,2].map(at=>c*(r===null?ru[at]:r)),ot=It().map(at=>yt(at,{eps:.01})),zt=[NaN,NaN,NaN,NaN],_t=kt(t,at=>{const dt=It(),gt=[0,1,2].sort((xt,xe)=>Math.abs(xt+.5-i)-Math.abs(xe+.5-i));let Rt=!1;for(const xt of gt){const xe=xt+.5-i,un=xe>0?xt-1:xt+1;ot[xt].t=Math.abs(xe)<1?dt[xt]:dt[xt]+ot[un].x-dt[un],wt(ot[xt],at)&&(Rt=!0)}const Yt=A0(ot.map(xt=>xt.x));let te=!1;return Yt.forEach((xt,xe)=>{xt!==zt[xe]&&(zt[xe]=xt,nt[xe](xt),te=!0)}),te&&W.setAttribute("d",H.map(xt=>ft(p(xt.u,xt.v,Yt[3]),p(xt.u,xt.v,Yt[0]+Pr))).join("")),Rt});o.add(_t.unregister);function Bt(at){const dt=A0(It());for(let Yt=3;Yt>=0;Yt--){const te=ou[Yt],xt=te.map(([un,Hr])=>p(un,Hr,dt[Yt]+k0[Yt])),xe=Yt===1?xt:Pt(xt.concat(te.map(([un,Hr])=>p(un,Hr,dt[Yt]))));if(cu(at,xe))return Yt}let gt=0,Rt=1/0;return dt.forEach((Yt,te)=>{const xt=Math.abs(p(Ht/2,ut/2,Yt+k0[te])[1]-at[1]);xt<Rt&&(Rt=xt,gt=te)}),gt}function Gt(at){at>=0&&(i=at);const dt=at>=0?at:M0;ct.forEach((gt,Rt)=>gt.classList.toggle("hi",Rt===dt)),s.textContent=at>=0?nu[at]:"rest",_t.wake()}return Gt(-1),o.add(Et(t,{move:at=>{h=at,r=bt(su,1,lt((at[0]-60)/280,0,1)),Gt(Bt(at))},leave:()=>{h=null,r=null,Gt(-1)}})),o.add(()=>e.replaceChildren()),{set:at=>{c=at,h&&Gt(Bt(h)),_t.wake()},destroy:o.dispose}},Ot=7,Bs=10,Is=8,Ze=Is*2+Bs*(Ot-1),us=5,lu=2.5,uu=4,ke=7,oc=[[0,0,0,8,0,0,0],[0,0,8,20,8,0,0],[0,28,34,34,34,28,0],[28,34,65,65,65,34,28],[65,0,0,0,0,0,65],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[64,0,0,0,0,0,0],[32,64,0,0,0,0,0],[16,32,64,0,0,0,0],[8,16,32,64,0,0,0],[4,8,16,32,64,0,0],[2,4,8,16,32,64,0],[1,2,4,8,16,32,64],[0,1,2,4,8,16,32],[0,0,1,2,4,8,16],[0,0,0,1,2,4,8],[0,0,0,0,1,2,4],[0,0,0,0,0,1,2],[0,0,0,0,0,0,1],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]],fu=110,du=1200,hu=400,pu=[[0,0,1],[1,0,.45],[-1,0,.45],[0,1,.45],[0,-1,.45]],E0=(t,e,s)=>oc[t][e]>>Ot-1-s&1,vu=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=0,i=-1,h=-1e9,v=!1,x=null;const p=At(45,.5,2.12),m=-15-uu;Ct(p,[[-ke,-ke,m],[Ze+ke,Ze+ke,m-6],[Ze+ke,-ke,m],[-ke,Ze+ke,m],[0,0,us]],200,160);const N=Mt(p),B=Lt(p),L=I("g",{},e),[H,W]=mt(-ke,-ke,Ze+ke,Ze+ke,11,1.8);Ri(e,L,N,B,H,m,12),Q(q(L),it(N,B,H,W,m,-15));const[P,j]=mt(0,0,Ze,Ze,7,1.3);I("path",{d:dc(N,P).map(k=>ft(N(k.u,k.v,0),N(k.u,k.v,-15))).join(""),class:"nf dash"},L),Q(q(L),it(N,B,P,j,0,us)),I("path",{d:tt(pt(N,rt(3.5,3.5,Ze-3.5,Ze-3.5,4.5,5),us)),class:"nf lo"},L);const F=new Float32Array(Ot*Ot),X=[];for(let k=0;k<Ot;k++)for(let y=0;y<Ot;y++){const T=en(L,p,lu,"dot");qt(T,N(Is+y*Bs,Is+k*Bs,us)),X.push(T)}function z(k,y,T){const n=Math.round((k-Is)/Bs),a=Math.round((y-Is)/Bs);for(const[l,d,f]of pu){const b=a+l,M=n+d;b<0||b>=Ot||M<0||M>=Ot||(F[b*Ot+M]=Math.max(F[b*Ot+M],T*f))}}const O=kt(t,(k,y)=>{if(_e()&&!v)for(let T=0;T<Ot*Ot;T++)F[T]=Math.max(F[T]*Math.exp(-k*1e3/c),E0(3,Math.floor(T/Ot),T%Ot)*.8);else{const T=Math.exp(-k*1e3/c);for(let a=0;a<Ot*Ot;a++)F[a]*=T;const n=v?0:lt((y-h-du)/hu,0,1);if(n>0){r+=k*1e3;const a=Math.floor(r/fu)%oc.length;if(a!==i){i=a;for(let l=0;l<Ot;l++)for(let d=0;d<Ot;d++)E0(a,l,d)&&(F[l*Ot+d]=Math.max(F[l*Ot+d],n))}s.textContent=`loop · ${String(a+1).padStart(2,"0")}/${oc.length}`}else s.textContent=v?"paint":"afterglow"}for(let T=0;T<Ot*Ot;T++)X[T].setAttribute("opacity",(.14+.86*lt(F[T],0,1)).toFixed(3));return!0});return o.add(O.unregister),o.add(Et(t,{move:k=>{v=!0;const y=le(p,k[0],k[1],us);if(x){const T=Math.ceil(Math.hypot(y[0]-x[0],y[1]-x[1])/3);for(let n=1;n<=T;n++)z(bt(x[0],y[0],n/T),bt(x[1],y[1],n/T),1)}else z(y[0],y[1],1);x=y,O.wake()},leave:()=>{v=!1,x=null,h=performance.now(),r=0,i=-1,O.wake()}})),o.add(()=>e.replaceChildren()),{set:k=>{c=k},destroy:o.dispose}},Di=7,cc=13,ic=10,T0=5,S0=6,N0=11,mu=1,Xn=2*cc+(Di-1)*ic,To=16,or=2,So=2,Tr=34,C0=4,fs=7,gu=4,j0=2.2,No=4,xu=3.2,bu={k:40,c:11,eps:.02},yu=16.4,Mu=t=>1/(1+.5*t*t),lc=5,wu=ge([[Xn-2,0],[Xn-2,Tr],[2,Tr],[2,0]],[.6,4,4,.6],lc),ku=[lc,3*(lc+1)],Au=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=zr.plot[2],r=At(45,.5,xu);Ct(r,[[0,0,-3.6],[Xn,0,-3.6],[0,To,-3.6],[Xn,To,-3.6],[0,or,Tr],[Xn,or,Tr]],200,166);const i=Mt(r),h=Lt(r),v=I("g",{},e),[x,p]=mt(0,0,Xn,To,6,1.6);Q(q(v),it(i,h,x,p,-3.6,0));const m=y=>wu.map(([T,n])=>i(T,y,n));Q(q(v),{sil:tt(Pt(m(or).concat(m(or+So)))),crease:jt(m(or+So).slice(...ku))});const N=(y,T)=>i(y,or+So,T),B=Array.from({length:C0},(y,T)=>Tr*(T+1)/(C0+1));I("path",{class:"nf lo",d:B.map(y=>ft(N(fs,y),N(Xn-7,y))).join("")},v),I("path",{class:"nf",d:ft(N(fs,0),N(fs,Tr-4))+B.map(y=>ft(N(fs-gu,y),N(fs,y))).join("")},v);const L=Array.from({length:Di},(y,T)=>{const n=cc+T*ic;return{ring:mt(n-T0/2,S0,n+T0/2,N0,1.2,.4),el:q(v)}}),H=L.map((y,T)=>yt(T===No?j0:0,bu)),W=L.map(()=>NaN);function P(){L.forEach((y,T)=>{const n=lt(H[T].x,0,c);n!==W[T]&&(W[T]=n,Q(y.el,it(i,h,y.ring[0],y.ring[1],0,mu+n)))})}const j=kt(t,y=>{let T=!1;for(const n of H)T=wt(n,y)||T;return P(),T});o.add(j.unregister);const F=L.map((y,T)=>i(cc+T*ic,(S0+N0)/2,0)[0]);let X=u,z=-2;function O(y){H.forEach((T,n)=>{const a=X*Mu(Math.abs(n-y))-T.x;a>0&&(T.v=Math.max(T.v,yu*a))}),j.wake()}function k(y){y!==z&&(z=y,H.forEach((T,n)=>{T.t=y<0&&n===No?j0:0}),y>=0&&O(y),L.forEach((T,n)=>T.el.sil.classList.toggle("hi",n===(y<0?No:y))),s.textContent=y<0?"rest":`bar ${y+1} · 0`,j.wake())}return k(-1),P(),o.add(Et(t,{move:y=>k(F.reduce((T,n,a)=>Math.abs(y[0]-n)<Math.abs(y[0]-F[T])?a:T,0)),leave:()=>k(-1)})),o.add(()=>e.replaceChildren()),{set:y=>{X=y,z>=0&&O(z)},destroy:o.dispose}},Ae=21,Oe=30,R0=7,ds=1.4,Eu=2.6,ha=8,Tu=13,pa=11,zs=6.5,Su=4.5,P0=2,Ia=11,va=7,Nu=4.6,Cu=3,ma=1.8,Za=[48,8],ju=100,Ru=.7,L0=2.8,Pu=398,Lu=t=>t*t*(3-2*t);function _0(t){for(let e=0;e<t.length-3;e++)for(let s=t.length-2;s>e+1;s--){const u=t[e],o=t[e+1],c=t[s],r=t[s+1],i=o[0]-u[0],h=o[1]-u[1],v=r[0]-c[0],x=r[1]-c[1],p=c[0]-u[0],m=c[1]-u[1],N=i*x-h*v;if(!N)continue;const B=(p*x-m*v)/N,L=(p*h-m*i)/N;if(B>0&&B<1&&L>0&&L<1){t.splice(e+1,s-e,[u[0]+B*i,u[1]+B*h]);break}}return t}function B0(t,e){const s=t.findIndex(r=>r[0]>e);if(s<1)return s<0?t:[];const u=t[s-1],o=t[s],c=(e-u[0])/(o[0]-u[0]);return[...t.slice(0,s),[e,u[1]+(o[1]-u[1])*c]]}function _u(t,e,s){const u=t.length,o=[],c=[];for(let i=0;i<u;i++){const h=t[Math.max(i-1,0)],v=t[i],x=t[Math.min(i+1,u-1)];let p=x[0]-h[0],m=x[1]-h[1];const N=Math.hypot(p,m)||1;p/=N,m/=N,o.push([v[0]-m*e,v[1]+p*e]),c.push([v[0]+m*e,v[1]-p*e])}const r=i=>{const h=[];for(let v=7;v>=1;v--){const x=Math.PI*v/8;h.push([i[0]+e*Math.cos(x),i[1]+e*.5*Math.sin(x)])}return h};return jt([...B0(_0(c),s).reverse(),...r(t[0]),...B0(_0(o),s)])}function ga(t){const e=vt(bt(ju,180,Lu(lt(t/Ru,0,1))));return{c:[bt(Za[0],Ia,t),bt(Za[1],0,t),bt(zs,Oe,Math.sin(t*Math.PI/2))],w:[Math.cos(e),Math.sin(e),0],u:[-Math.sin(e),Math.cos(e),0]}}var Bu=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,L0),r=Math.sqrt(1-c.k*c.k),i=[Math.sin(c.az)*r,Math.cos(c.az)*r,c.k],h=(R,Y)=>R[0]*Y[0]+R[1]*Y[1]+R[2]*Y[2],v=(R,Y,Z,V)=>[R.c[0]+Y*R.u[0]+V*R.w[0],R.c[1]+Y*R.u[1]+V*R.w[1],R.c[2]+Z],x=[];for(const R of[0,-3])for(const Y of[-Ae,Ae])for(const Z of[Oe-Ae,Oe+Ae])x.push([R,Y,Z]);for(const R of[0,1]){const Y=ga(R);for(const Z of[-pa,pa])for(const V of[-zs,zs])for(const K of[Ia,-18-va])x.push(v(Y,Z,V,K))}Ct(c,x,200,166);const p=Mt(c),m=R=>p(R[0],R[1],R[2]),N=I("g",{},e),B=rt(-Ae,Oe-Ae,Ae,Oe+Ae,R0,6),L=rt(-Ae+ds,Oe-Ae+ds,Ae-ds,Oe+Ae-ds,R0-ds,6);Q(q(N),{sil:tt(Pt(B.map(R=>p(0,R.u,R.v)).concat(B.map(R=>p(-3,R.u,R.v))))),crease:jt(Ut(L,R=>R.nu*i[1]+R.nv*i[2]>0).map(R=>p(0,R.u,R.v)))}),I("path",{class:"nf lo",d:tt(ht(Tu,48).map(R=>p(0,R.u,Oe+R.v)))},N),I("path",{class:"nf",d:[-ha,ha].map(R=>tt(ht(Eu,16).map(Y=>p(0,R+Y.u,Oe+Y.v)))).join("")},N);const H=I("g",{},e),W=I("path",{class:"sil"},H),P=I("path",{class:"sil"},H),j=q(H),F=I("path",{class:"sil hi"},H),X=ht(Nu,16),z=ht(Cu,16),O=(R,Y,Z,V)=>[0,30,60,90].map(K=>[R(Y*(1-Math.sin(vt(K)))),Z+V*Y*(1-Math.cos(vt(K)))]),k=R=>rt(-pa+R,-zs+R,pa-R,zs-R,Su-R),y=R=>ht(P0-R,12),T=k(2),n=[...O(k,2,0,-1),...O(k,2,-18,1)],a=[[y(0),0],...O(y,P0*.8,Ia,-1)],l=(R,Y,Z=0)=>tt(Pt(Y.flatMap(([V,K])=>V.map(D=>m(v(R,Z+D.u,D.v,K)))))),d=[...le(c,440,150,ma),ma],f=[Za[0]+18,Za[1]-52,ma];let b=!0,M=NaN;const S=yt(0,{eps:.002});function A(){if(S.x===M)return;M=S.x;const R=ga(S.x),Y=h(R.w,i)>0,Z=h(R.u,i);Y!==b&&(b=Y,H.append(...b?[W,P,j.g,F]:[F,j.g,W,P]));const V=b?0:-18;Q(j,{sil:l(R,n),crease:jt(Ut(T,nt=>nt.nu*Z+nt.nv*i[2]>0).map(nt=>m(v(R,nt.u,nt.v,V))))}),F.setAttribute("d",[-ha,ha].map(nt=>l(R,a,nt)).join("")),P.setAttribute("d",l(R,[[X,-18],[z,-18-va]]));const K=v(R,0,0,-18-va+2),D=v(R,0,0,-18-va-26),et=[];for(let nt=0;nt<=40;nt++){const ct=nt/40,It=(1-ct)**3,ot=3*(1-ct)**2*ct,zt=3*(1-ct)*ct*ct,_t=ct**3;et.push(p(It*K[0]+ot*D[0]+zt*f[0]+_t*d[0],It*K[1]+ot*D[1]+zt*f[1]+_t*d[1],It*K[2]+ot*D[2]+zt*f[2]+_t*d[2]))}W.setAttribute("d",_u(et,ma*L0,Pu))}const g=kt(t,R=>{const Y=wt(S,R);return A(),Y});o.add(g.unregister);const C=m(ga(0).c),w=p(0,0,Oe),E=[w[0]-C[0],w[1]-C[1]],$=E[0]*E[0]+E[1]*E[1];let G=u,J=-1;function _(){S.t=J<0?0:Math.min(J,G);const R=ga(S.t),Y=v(R,0,0,Ia);s.textContent=J<0?"rest":`gap ${Math.round(Math.hypot(Y[0],Y[1],Y[2]-Oe))} · 0 V`,g.wake()}return _(),A(),o.add(Et(t,{move:R=>{J=lt(((R[0]-C[0])*E[0]+(R[1]-C[1])*E[1])/$,0,1),_()},leave:()=>{J=-1,_()}})),o.add(()=>e.replaceChildren()),{set:R=>{G=R,_()},destroy:o.dispose}},cr=27,I0=6,Iu=1.6,Co=4.3,z0=16,zu=66,H0=200,O0=-35,D0=38,Hu=29,jo=6,Ou=.2,$0=4,Du=-45,$u=36,Fu=150,xa=2.6,F0=[-Math.SQRT1_2,-Math.SQRT1_2],Wu=.4,W0=(()=>{const t=[];for(let r=0;r<=30;r++){const i=vt(H0+(O0-H0)*r/30);t.push([z0*Math.cos(i),zu+z0*Math.sin(i)])}const e=t[t.length-1],s=vt(O0),u=[Math.sin(s),-Math.cos(s)],o=[e[0]+u[0]*10,e[1]+u[1]*10],c=[0,D0+10];for(let r=1;r<=20;r++){const i=r/20,h=1-i;t.push([h*h*h*e[0]+3*h*h*i*o[0]+3*h*i*i*c[0],h*h*h*e[1]+3*h*h*i*o[1]+3*h*i*i*c[1]+i*i*i*D0])}return t.push([0,Hu]),t})(),Ro=[2,28];function Xu(t,e,s){const u=t[Math.max(e-1,0)],o=t[Math.min(e+1,t.length-1)],c=Math.hypot(o[0]-u[0],o[1]-u[1])||1,r=-(o[1]-u[1])/c,i=(o[0]-u[0])/c,h=s*(r*F0[0]+i*F0[1]);return[t[e][0]+r*h,t[e][1]+i*h]}function Gu(t,e,s,u){const o=e[0]-t[0],c=e[1]-t[1],r=u[0]-s[0],i=u[1]-s[1],h=s[0]-t[0],v=s[1]-t[1],x=o*i-c*r;if(!x)return null;const p=(h*i-v*r)/x,m=(h*c-v*o)/x;return p>0&&p<1&&m>0&&m<1?[t[0]+p*o,t[1]+p*c]:null}function X0(t){for(let e=0;e<t.length-3;e++)for(let s=t.length-2;s>e+1;s--){const u=Gu(t[e],t[e+1],t[s],t[s+1]);if(u){t.splice(e+1,s-e,u);break}}return t}function Yu(t,e){const s=t.length,u=[],o=[],c=[];for(let h=0;h<s;h++){const v=t[Math.max(h-1,0)],x=t[h],p=t[Math.min(h+1,s-1)],m=Math.hypot(x[0]-v[0],x[1]-v[1])||1,N=Math.hypot(p[0]-x[0],p[1]-x[1])||1;let B=(x[0]-v[0])/m+(p[0]-x[0])/N,L=(x[1]-v[1])/m+(p[1]-x[1])/N;const H=Math.hypot(B,L)||1;B/=H,L/=H,c.push([B,L]),u.push([x[0]-L*e,x[1]+B*e]),o.push([x[0]+L*e,x[1]-B*e])}const r=(h,v)=>Array.from({length:9},(x,p)=>{const m=Math.PI*(p+1)/10,N=-Math.cos(m),B=-Math.sin(m);return[h[0]+e*(-v[1]*N+v[0]*B),h[1]+e*(v[0]*N+v[1]*B)]}),i=h=>Array.from({length:7},(v,x)=>{const p=Math.PI*(7-x)/8;return[h[0]+e*Math.cos(p),h[1]+e*.5*Math.sin(p)]});return tt([...X0(u),...i(t[s-1]),...X0(o).reverse(),...r(t[0],c[0])])}var Zu=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=zr.query[2];let r=u,i=!1;const h=f=>{const b=vt(Du-f),M=Math.cos(b),S=Math.sin(b);return(A,g)=>[A*M,A*S,g]},v=(f,b)=>h(b)(lt(f*Ou,-$0,$0),I0+jo),x=At(45,.5,xa),p=[[-cr,0,0],[cr,0,0],[0,-cr,0],[0,cr,0]];for(const f of[-c,-c/2,0,c/2,c])for(const b of W0){const M=h(f)(b[0],b[1]);p.push([M[0],M[1],M[2]+Co],[M[0],M[1],M[2]-Co])}Ct(x,p,200,166),x.ox+=200-Mt(x)(0,0,0)[0];const m=Mt(x),N=Lt(x),B=Co*xa,L=I("g",{},e);Q(q(L),it(m,N,ht(cr,72),ht(cr-Iu,72),0,I0));const H=q(L),W=ht(jo*xa,40),P=ht(jo*xa*.62,40).slice(23,31),j=I("path",{class:"sil"},L),F=I("path",{class:"nf lo"},L),X=()=>-Math.min($u,.9*r),z=yt(X()),O=yt(X(),{k:36,c:7});let k=NaN,y=NaN;function T(){if(z.x!==k){k=z.x;const b=h(z.x),M=W0.map(S=>m(...b(S[0],S[1])));j.setAttribute("d",Yu(M,B)),F.setAttribute("d",jt(M.slice(Ro[0],Ro[1]).map((S,A)=>Xu(M,Ro[0]+A,Wu*B))))}const f=z.x-O.x;if(f!==y){y=f;const b=m(...v(f,O.x));Q(H,{sil:tt(W.map(M=>[b[0]+M.u,b[1]+M.v])),crease:jt(P.map(M=>[b[0]+M.u,b[1]+M.v]))})}}const n=kt(t,f=>{O.t=z.x;const b=wt(z,f),M=wt(O,f);return T(),b||M});o.add(n.unregister);const a=m(0,0,0)[0];let l=a;function d(){z.t=i?r*lt((l-a)/Fu,-1,1):X(),s.textContent=i?`turn ${Math.abs(Math.round(z.t))}° · 0`:"rest",H.sil.classList.toggle("hi",!i),j.classList.toggle("hi",i),n.wake()}return d(),o.add(Et(t,{move:f=>{i=!0,l=f[0],d()},leave:()=>{i=!1,d()}})),o.add(()=>e.replaceChildren()),{set:f=>{r=f,d()},destroy:o.dispose}},an=132,Ke=92,Ee=4.4,mn=34,hs=2,Ku=7,G0=21,Y0=15,Po=1.8,Uu=22,ba=[4,-7,2,13,-3,6,-9],Vu=3,Ju=1.9,Z0=ge([[0,9],[25,21],[25,25],[-25,25],[-25,21]],[4,2,2,2,2],5),Qu=ge([[0,14],[15,21.5],[-15,21.5]],[2,1.2,1.2],4),qu=[[0,9],[0,5],...Array.from({length:10},(t,e)=>{const s=vt(120-e*20);return[Math.sin(s)*3.4,-Math.cos(s)*3.4]})],tf=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,Ju),r=[[0,-mn/2,0],[an,-mn/2,0],[0,mn/2,0],[an,mn/2,0],[0,0,Ke+6],[an,0,Ke+6],[0,-30,Ke-30],[an,30,Ke-30]];Ct(c,r,200,166);const i=Mt(c),h=Lt(c),v=I("g",{},e),x=(z,O,k,y,T,n,a)=>{const[l,d]=mt(z,O,k,y,T,.7);Q(q(v),it(i,h,l,d,n,a))};x(-Ee/2-1,-mn/2,Ee/2+1,mn/2,2.2,0,3),x(-Ee/2,-Ee/2,Ee/2,Ee/2,1.4,3,Ke+4);const p=Array.from({length:Ku},()=>q(v));x(0,-hs,an,hs,hs,Ke-hs,Ke+hs);const m=p.map(()=>I("path",{class:"nf"},v));x(an-Ee/2-1,-mn/2,an+Ee/2+1,mn/2,2.2,0,3),x(an-Ee/2,-Ee/2,an+Ee/2,Ee/2,1.4,3,Ke+4);const N=ba.map(z=>yt(z,{k:60,c:6,eps:.02})),B=ba.map(()=>NaN);function L(){N.forEach((z,O)=>{if(z.x===B[O])return;B[O]=z.x;const k=Math.cos(vt(z.x)),y=Math.sin(vt(z.x)),T=G0+O*Y0,n=(a,l)=>i(T+l,a[0]*k+a[1]*y,Ke-(a[1]*k-a[0]*y));Q(p[O],{sil:tt(Pt(Z0.map(a=>n(a,0)).concat(Z0.map(a=>n(a,Po))))),crease:tt(Qu.map(a=>n(a,Po)))}),m[O].setAttribute("d",jt(qu.map(a=>n(a,Po/2))))})}const H=kt(t,z=>{let O=!1;for(const k of N)O=wt(k,z)||O;return L(),O});o.add(H.unregister);const W=ba.map((z,O)=>i(G0+O*Y0,0,Ke-17)[0]);let P=u,j=-2,F=1;function X(z){j=z,N.forEach((O,k)=>{const y=z<0?0:lt(1-Math.abs(k-z)/(P+.5),0,1);O.t=ba[k]-Uu*y*y*(k===z?F:Math.sign(k-z))}),p.forEach((O,k)=>O.sil.classList.toggle("hi",k===(z<0?Vu:z))),s.textContent=z<0?"rest":`hanger ${z+1} · 0`,H.wake()}return X(-1),L(),o.add(Et(t,{move:z=>{const O=W.reduce((k,y,T)=>Math.abs(z[0]-y)<Math.abs(z[0]-W[k])?T:k,0);F=z[0]<W[O]?1:-1,X(O)},leave:()=>X(-1)})),o.add(()=>e.replaceChildren()),{set:z=>{P=z,X(j<0?-1:j)},destroy:o.dispose}},ef=3,K0=5,U0=12,nf=18,rf=.7,sf=24,V0=125,af=90,J0=700,of=1350,cf=420,lf=70,Lo=.45,uf=400,vc=[{p:-1,l:0,d:0,s:-9},{p:0,l:1,d:60,s:-54},{p:0,l:1,d:60,s:36},{p:1,l:2,d:120,s:-72},{p:1,l:2,d:120,s:-36},{p:2,l:2,d:120,s:0},{p:2,l:2,d:120,s:36},{p:2,l:2,d:120,s:72}],ps=(t,e)=>{const s=r=>{const i=[];for(;r>=0;r=vc[r].p)i.push(r);return i},u=s(t),o=s(e),c=u.find(r=>o.includes(r));return u.indexOf(c)+o.indexOf(c)},Q0=(t,e)=>{for(let s=e;s>=0;s=vc[s].p)if(s===t)return!0;return!1},ff=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=-1,i=null;const h=vc.map(n=>({...n})),v=n=>n.l?U0:nf,x=n=>n.l?ef:K0,p=n=>n.l?4.6:7;h.forEach((n,a)=>{n.i=a,n.x=n.d+n.s,n.y=n.d-n.s,n.h=v(n),n.tw=Wt(0),n.drawn=NaN,n.want=!n.i,n.at=void 0});const m=At(45,.5,1.5),N=[];for(const n of h)N.push([n.x-n.h,n.y-n.h,0],[n.x+n.h,n.y+n.h,0],[n.x,n.y,20+K0]);Ct(m,N,200,166);const B=Mt(m),L=Lt(m),H=I("g",{},e),W=[];for(const n of h){if(n.p<0)continue;const a=h[n.p],l=n.x-a.x,d=n.y-a.y,f=Math.hypot(l,d),b=E=>E/Math.max(Math.abs(l),Math.abs(d))*f+2.5,M=b(a.h)/f,S=1-b(n.h)/f,A=B(a.x+l*M,a.y+d*M,0),g=B(a.x+l*S,a.y+d*S,0),C=Math.max(2,Math.round(Math.hypot(g[0]-A[0],g[1]-A[1])/9)),w={n,pt:Wt(0,cf),on:!1,dashes:[]};W.push(w);for(let E=0;E<C;E++)w.dashes.push({u:(E+.35)/C,d:ft([bt(A[0],g[0],(E+.1)/C),bt(A[1],g[1],(E+.1)/C)],[bt(A[0],g[0],(E+.6)/C),bt(A[1],g[1],(E+.6)/C)]),full:ft([bt(A[0],g[0],E/C),bt(A[1],g[1],E/C)],[bt(A[0],g[0],(E+1)/C),bt(A[1],g[1],(E+1)/C)]),lit:0})}for(const n of W)for(const a of n.dashes)a.el=I("path",{d:a.d,class:"nf"},H);for(const n of h){const a=rt(n.x-n.h,n.y-n.h,n.x+n.h,n.y+n.h,p(n),8);n.ring=a,I("path",{d:tt(pt(B,a,0)),class:"nf lo"},H)}const P=h.slice().sort((n,a)=>n.x+n.y-(a.x+a.y));for(const n of P){const a=rt(n.x-n.h,n.y-n.h,n.x+n.h,n.y+n.h,p(n),8);n.ring=a,n.inner=Le(m,a,n.l?1.1:1.3),n.el=q(H),n.l||(n.rec=Le(m,a,2.8),n.recEl=I("path",{class:"nf lo"},n.el.g))}const j=(n,a)=>{Q(n.el,We(B,L,n.ring,n.inner,a,a+x(n))),n.rec&&n.recEl.setAttribute("d",tt(pt(B,n.rec,a+x(n))))},F=kt(t,(n,a)=>{let l=!1;for(const d of h){const f=Xt(d.tw,a);Qt(d.tw,a)||(l=!0),f!==d.drawn&&(d.drawn=f,j(d,f))}i!==null&&(a>=i?(i=null,T(-1)):l=!0);for(const d of h)d.at!==void 0&&(a>=d.at?(d.el.sil.classList.toggle("hi",d.want),d.at=void 0):l=!0);for(const d of W){if(!d.on)continue;const f=Qt(d.pt,a);l=!0;const b=Xt(d.pt,a);let M=0,S=1;for(let g=0;g<14;g++){const C=(M+S)/2;hc(C)<b?M=C:S=C}const A=f?9:bt(M,b,.3)*(1+Lo);for(const g of d.dashes){const C=A-g.u,w=C<0||C>=Lo?0:C<Lo*.4?2:1;w!==g.lit&&(g.lit=w,g.el.classList.toggle("sil",w>0),g.el.setAttribute("d",w===2?g.full:g.d))}f&&(d.on=!1,d.pt.from=d.pt.to=0,d.pt.t0=-1e9)}return l});o.add(F.unregister);const X=(n,a)=>n>=0&&Q0(n,a.i)?c*rf**ps(n,a.i):0,z=(n,a)=>{const l=a.map((d,f)=>{const b=a[(f+1)%a.length];return(b[0]-d[0])*(n[1]-d[1])-(b[1]-d[1])*(n[0]-d[0])});return l.every(d=>d>=0)||l.every(d=>d<=0)};function O(n){for(let d=P.length-1;d>=0;d--){const f=P[d],b=X(r,f);if(z(n,Pt(pt(B,f.ring,0).concat(pt(B,f.ring,b+x(f))))))return f.i}const[a,l]=le(m,n[0],n[1],0);return h.some(d=>Math.hypot(a-d.x,l-d.y)<d.h+sf-U0)?r:-1}const k=n=>n<0?"rest":n===0?"root":`pkg ${h[n].l}·${h.filter(a=>a.l===h[n].l&&a.i<=n).length}`,y=(n,a,l,d)=>{if(n.tw.to===a)return;const f=a>n.tw.to;ce(n.tw,a,l,d),n.tw.dur=f?J0:of};function T(n){if(n===r)return;const a=performance.now(),l=r,d=h.map(b=>X(n,b));r=n;let f=0;h.forEach((b,M)=>{d[M]<b.tw.to&&l>=0&&(f=Math.max(f,ps(l,b.i)))}),h.forEach((b,M)=>y(b,d[M],a,d[M]<b.tw.to?(f-ps(l,b.i))*af:n>=0?ps(n,b.i)*V0:0));for(const b of W){b.pt.from=b.pt.to=0,b.pt.t0=-1e9,b.on=!1;for(const M of b.dashes)M.lit=0,M.el.classList.remove("sil"),M.el.setAttribute("d",M.d);n>=0&&Q0(n,b.n.i)&&b.n.i!==n&&(b.on=!0,ce(b.pt,1,a,ps(n,b.n.p)*V0+20))}for(const b of h){const M=b.i===(n<0?0:n);M!==b.want&&(b.want=M,b.at=M?a+lf:a)}s.textContent=k(n),F.wake()}h[0].el.sil.classList.add("hi"),s.textContent="rest";for(const n of h)j(n,0);return o.add(Et(t,{move:n=>{const a=O(n);if(a<0&&r>=0&&!_e()){i===null&&(i=performance.now()+uf,F.wake());return}i=null,T(a)},leave:()=>{i=null,T(-1)}})),o.add(()=>e.replaceChildren()),{set:n=>{c=n;const a=performance.now();for(const l of h)l.tw.to!==X(r,l)&&(ce(l.tw,X(r,l),a,0),l.tw.dur=J0);F.wake()},destroy:o.dispose}},_o=3,Bo=7,Io=9,ir=9,de=17,df=[{d:[-1,0],a:50,b:84,side:[-1,1]},{d:[0,-1],a:50,b:76,side:[1]},{d:[1,0],a:50,b:84,side:[-1,1]},{d:[0,1],a:50,b:76,side:[-1]}],hf=31;function pf(){const t=[];return df.forEach((e,s)=>{const u=(c,r)=>[e.d[0]*c-e.d[1]*r,e.d[1]*c+e.d[0]*r],o=t.length;t.push({c:u(e.a,0),par:-1,dep:1}),t.push({c:u(e.b,0),par:o,dep:2}),e.side.forEach((c,r)=>t.push({c:u(e.b,c*hf),par:o+1,dep:3,tag:"leaf "+(s+1)+"·"+(r+1)}))}),t}var vf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=pf(),i=r.filter(f=>f.tag),h=At(45,.5,1.9),v=[[-de,-de,0],[de,de,0],[-de,de,0],[de,-de,0]];for(const f of r)for(const[b,M]of[[-1,-1],[1,-1],[-1,1],[1,1]])v.push([f.c[0]+b*ir,f.c[1]+M*ir,_o+Io]);Ct(h,v,200,166);const x=Mt(h),p=Lt(h),m=I("g",{},e);for(const f of r){const b=f.par<0?[0,0]:r[f.par].c,M=f.c[0]-b[0],S=f.c[1]-b[1],A=Math.hypot(M,S),g=f.par<0?de:0,C=0;f.a=x(b[0]+M/A*g,b[1]+S/A*g,0),f.b=x(f.c[0]-M/A*C,f.c[1]-S/A*C,0);let w="";const E=Math.hypot(f.b[0]-f.a[0],f.b[1]-f.a[1]),$=Math.max(2,Math.round(E/9));for(let G=0;G<$;G++)w+=ft([bt(f.a[0],f.b[0],(G+.1)/$),bt(f.a[1],f.b[1],(G+.1)/$)],[bt(f.a[0],f.b[0],(G+.6)/$),bt(f.a[1],f.b[1],(G+.6)/$)]);I("path",{d:w,class:"nf"},m)}for(const f of r)f.link=I("path",{class:"nf sil"},m),f.l=Wt(0),f.z=Wt(0),f.h=Wt(0),f.ld=NaN,f.zd=NaN,f.hd=!1;const N=q(m),B=rt(-de,-de,de,de,7,8);Q(N,We(x,p,B,Le(h,B,1.3),0,Bo));const L=I("path",{d:tt(pt(x,Le(h,B,2.8),Bo)),class:"nf hi"},m),H=Wt(1);let W=!0;I("path",{d:tt(pt(x,Le(h,B,3.8),Bo)),class:"nf lo"},m);for(const f of r.slice().sort((b,M)=>b.c[0]+b.c[1]-M.c[0]-M.c[1]))f.ring=rt(f.c[0]-ir,f.c[1]-ir,f.c[0]+ir,f.c[1]+ir,3.6,8),f.inner=Le(h,f.ring,1),f.el=q(m);const P=kt(t,(f,b)=>{let M=!1;for(const A of r){const g=Xt(A.l,b),C=Xt(A.z,b);if(g!==A.ld&&(A.ld=g,A.link.setAttribute("d",g>.002?ft(A.a,[bt(A.a[0],A.b[0],g),bt(A.a[1],A.b[1],g)]):"")),C!==A.zd&&(A.zd=C,Q(A.el,We(x,p,A.ring,A.inner,C*Io,C*Io+_o))),A.tag){const w=Xt(A.h,b)>.5;w!==A.hd&&(A.hd=w,A.el.sil.classList.toggle("hi",w))}(!Qt(A.l,b)||!Qt(A.z,b)||!Qt(A.h,b))&&(M=!0)}const S=Xt(H,b)>.5;return S!==W&&(W=S,L.classList.toggle("hi",S)),Qt(H,b)||(M=!0),M});o.add(P.unregister);const j=i.map(f=>x(f.c[0],f.c[1],_o)),F=78,X=18,z=(f,[b,M])=>Math.hypot(j[f][0]-b,j[f][1]-M);function O(f){let b=-1,M=F;return j.forEach((S,A)=>{const g=z(A,f);g<M&&(M=g,b=A)}),l>=0&&b!==l&&z(l,f)<F&&z(l,f)-M<X?l:b}const k=700,y=1500,T=(f,b,M,S,A)=>{f.to!==b&&(ce(f,b,M,S),f.dur=A)},n=new Set,a=f=>f.par<0?null:r[f.par];let l=-1;function d(f){if(f===l)return;const b=performance.now(),M=new Set,S=c*1.5;for(let w=f<0?null:i[f];w;w=a(w))M.add(w);const A=[...n].filter(w=>!M.has(w)),g=A.reduce((w,E)=>Math.max(w,E.dep),0),C=A.length?(A.length-1)*S*.65+c*.5:0;for(const w of r){const E=M.has(w),$=n.has(w);E!==$&&(E?(T(w.l,1,b,C+(w.dep-1)*c,k),T(w.z,1,b,C+w.dep*c,k)):(T(w.z,0,b,(g-w.dep)*S,y),T(w.l,0,b,(g-w.dep)*S+S*.5,y)),w.tag&&(E?T(w.h,1,b,C+w.dep*c,40):T(w.h,0,b,f<0?0:Math.max(0,C+3*c-60),40)))}n.clear(),M.forEach(w=>n.add(w)),T(H,f<0?1:0,b,f<0?(A.length-1)*S*.5+120:0,40),l=f,s.textContent=f<0?"rest":i[f].tag,P.wake()}return o.add(Et(t,{move:f=>d(O(f)),leave:()=>d(-1)})),o.add(()=>e.replaceChildren()),{set:f=>{c=f},destroy:o.dispose}},tn=8,Gn=84,Jt=54,mc=13,uc=22,$s=7,mf=[6,31,56],q0=1.4,ya=-12,gf=-24,xf=20,$i=16,_r=-5,Br=Gn+5,Sr=-9,Fs=(tn-1)*mc+9,Ma=20,ti=6,vs=2.4;function bf(){const t=At(45,.5,1.62);return Ct(t,[[_r,Sr,0],[Br,Fs,-8],[Br,Sr,0],[_r,Fs,0],[_r,Sr,Jt+$s],[Br,Sr,Jt+$s+$i]],200,166),t}var yf=()=>({outer:rt(_r,Sr,Br,Fs,ti,6),inner:rt(_r+vs,Sr+vs,Br-vs,Fs-vs,ti-vs,6)}),zo=t=>t[0][0]<=t[t.length-1][0]?t:t.slice().reverse();function Mf(t,e,s,u){const o=[[tt(Pt(pt(t,s,0).concat(pt(t,s,Ma)))),"sil"],[tt(pt(t,u,Ma)),"nf"],[jt(pt(t,Ut(u,p=>!e(p)),2.5)),"nf lo"]],c=zo(pt(t,Ut(u,e),Ma)),r=zo(pt(t,Ut(s,e),Ma)),i=zo(pt(t,Ut(s,e),0)),h=(_r+Br)/2,v=p=>p.map(m=>t(m.u,Fs,m.v)),x=[[tt([...c,r[r.length-1],...i.slice().reverse(),r[0]]),"fo"],[jt(r),"nf lo"],[jt(c),"nf"],[jt([r[0],...i,r[r.length-1]]),"nf sil"],[tt(v(rt(h-11,6.5,h+11,12.5,3,5))),"nf"],[tt(v(rt(h-9.4,8,h+9.4,11,1.5,5))),"nf lo"]];return{far:o,near:x}}function wf(t){const e=tn-t,s=mf[(tn-1-t)%3],u=ge([[0,0],[Gn,0],[Gn,Jt],[s+uc,Jt],[s+uc,Jt+$s],[s,Jt+$s],[s,Jt],[0,Jt]],[1,1,3.2,1.8,2.4,2.4,1.8,3.2]);return{n:e,t0:s,shape:u}}function kf(t,e,s,u,o,c){const r=e*mc,i=Math.sin(vt(o)),h=Math.cos(vt(o)),v=(m,N)=>t(m,r+N*i,N*h+c),x=(m,N)=>t(m,r+N*i-q0*h,N*h+q0*i+c),p=[];for(let m=0;m<8;m++)p.push(v(s+uc/2+(m%4-1.5)*3.6,Jt+$s/2+(.5-Math.floor(m/4))*2.8));return{back:tt(u.map(m=>x(m[0],m[1]))),face:tt(u.map(m=>v(m[0],m[1]))),head:ft(v(6,Jt-11),v(Gn-6,Jt-11)),rules:[Jt-18,Jt-25,Jt-32,Jt-39].map(m=>ft(v(6,m),v(Gn-6,m))).join(""),punch:p}}function Af(){const t=bf();return{C:t,P:Mt(t),front:Lt(t),...yf()}}var Ef=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const{P:r,front:i,outer:h,inner:v}=Af(),x=Mf(r,i,h,v),p=I("g",{},e);Ri(e,p,r,i,h,0,14);for(const[a,l]of x.far)I("path",{d:a,class:l},p);const m=[];for(let a=0;a<tn;a++){const{n:l,t0:d,shape:f}=wf(a),b=I("g",{},p),M=I("path",{class:"lo"},b),S=I("path",{class:"sil"},b),A=I("path",{class:"nf"},b),g=I("path",{class:"nf lo"},b),C=[];for(let w=0;w<8;w++)C.push(I("circle",{r:1.05,class:"dot "+(w===l-1?"m":"off")},b));m.push({n:l,t0:d,shape:f,back:M,face:S,head:A,rules:g,punch:C,a:Wt(ya),z:Wt(0)})}for(const[a,l]of x.near)I("path",{d:a,class:l},p);const N=a=>r(Gn/2,a*mc+Jt*Math.sin(vt(ya)),Jt*Math.cos(vt(ya))),B=N(0),L=N(1),H=[L[0]-B[0],L[1]-B[1]],W=r(0,0,0),P=r(1,0,0),j=[P[0]-W[0],P[1]-W[1]],F=Gn/2+6,X=H[0]*j[1]-H[1]*j[0];function z([a,l]){const d=a-B[0],f=l-B[1],b=(d*j[1]-f*j[0])/X,M=(H[0]*f-H[1]*d)/X;return Math.abs(M)>F||b<-.5||b>tn+1?-1:lt(Math.round(b),0,tn-1)}function O(a,l,d){const f=m[a],b=kf(r,a,f.t0,f.shape,l,d);f.back.setAttribute("d",b.back),f.face.setAttribute("d",b.face),f.head.setAttribute("d",b.head),f.rules.setAttribute("d",b.rules),f.punch.forEach((M,S)=>qt(M,b.punch[S]))}const k=kt(t,(a,l)=>{let d=!1;return m.forEach((f,b)=>{O(b,Xt(f.a,l),Xt(f.z,l)),(!Qt(f.a,l)||!Qt(f.z,l))&&(d=!0)}),d});o.add(k.unregister);let y=-1;const T=a=>a<0?"rest":String(tn-a).padStart(2,"0");function n(a){if(a===y)return;const l=performance.now(),d=a>=0?a:y;y=a,m.forEach((f,b)=>{const M=Math.abs(b-d)*c,S=a<0?ya:b<a?gf:b>a?xf:0;ce(f.a,S,l,M),ce(f.z,a===b?$i:0,l,M),f.face.classList.toggle("hi",b===a),f.head.classList.toggle("hi",b===a),f.punch[f.n-1].classList.toggle("m",b!==a)}),s.textContent=T(a),k.wake()}return o.add(Et(t,{move:a=>n(z(a)),leave:()=>n(-1)})),o.on(t,"keydown",a=>{a.key==="ArrowLeft"||a.key==="ArrowDown"?(n(y<0?tn-1:Math.min(tn-1,y+1)),a.preventDefault()):a.key==="ArrowRight"||a.key==="ArrowUp"?(n(y<0?tn-1:Math.max(0,y-1)),a.preventDefault()):a.key==="Escape"&&y>=0&&(n(-1),a.preventDefault())}),o.on(t,"blur",()=>n(-1)),o.add(()=>e.replaceChildren()),{set:a=>{c=a},destroy:o.dispose}},ms=124,lr=58,kn=14,He=3,Ho=13,fc=[18,48,78,108],Fi=11,Wi=5,ei=4.6,gs=56,ni=3.3,za=2.1,ri=.21,Tf=za+1,wa=44,si=[-9,3,-4,32],ai=3,Ka=[Math.SQRT1_2,-Math.SQRT1_2],Sf=(t,e)=>lt(1-t/e,.1,1),xs=(t,e,s)=>{const u=Math.sin(vt(e)),o=Math.cos(vt(e));return[fc[t]+Ka[0]*u*s,Fi+Ka[1]*u*s,kn+Wi-1+o*s]},Nf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null,i=null;const h=At(45,.5,1.78),v=[[0,0,0],[ms,lr,0],[ms,0,0],[0,lr,0]];fc.forEach((l,d)=>{for(const f of[-wa,0,wa])v.push(xs(d,f,gs+za))}),Ct(h,v,200,166);const x=Mt(h),p=Lt(h),m=l=>x(l[0],l[1],l[2]),N=x(0,0,0),B=x(Ka[0],Ka[1],0),L=x(0,0,1),H=Math.hypot(B[0]-N[0],B[1]-N[1]),W=N[1]-L[1],P=I("g",{},e),j=rt(0,0,ms,lr,Ho,6),F=rt(He,He,ms-He,lr-He,Ho-He,6),X=rt(He+1.6,He+1.6,ms-He-1.6,lr-He-1.6,Ho-He-1.6,6);Q(q(P),{sil:tt(Pt(pt(x,j,0).concat(pt(x,F,kn)))),crease:jt(pt(x,Ut(X,p),kn))});for(let l=0;l<6;l++){const d=kn*.56,f=lr-He*(d/kn)+.1;qt(I("circle",{r:1.05,class:l===0?"dot m":"dot off"},P),x(34+l*9,f,d))}for(let l=0;l<3;l++)for(let d=0;d<13-l%2;d++)qt(en(P,h,.5,"dot off"),x(26+l%2*3+d*6,29+l*5.5,kn));const z=fc.map((l,d)=>{const f=q(P),b=M=>M.map(S=>({...S,u:S.u+l,v:S.v+Fi}));return Q(f,it(x,p,b(ht(ei,16)),b(ht(ei-1.1,16)),kn,kn+Wi)),{i:d,el:q(P),sp:yt(si[d],{eps:.05}),drawn:NaN,piv:m(xs(d,0,0))}}),O=Math.abs(z[1].piv[0]-z[0].piv[0])/H,k=(l,d)=>Array.from({length:20},(f,b)=>[l[0]+d*H*Math.cos(b*Math.PI/10),l[1]+d*H*Math.sin(b*Math.PI/10)]);function y(l){const d=l.sp.x;if(d===l.drawn)return;l.drawn=d;const f=m(xs(l.i,d,0)),b=m(xs(l.i,d,gs)),M=m(xs(l.i,d,gs*ri)),S=Math.hypot(b[0]-f[0],b[1]-f[1]),A=[-(b[1]-f[1])/S,(b[0]-f[0])/S],g=bt(ni,za,ri)*H-1.1;Q(l.el,{sil:tt(Pt(k(f,ni).concat(k(b,za)))),crease:ft([M[0]+A[0]*g,M[1]+A[1]*g],[M[0]-A[0]*g,M[1]-A[1]*g])})}function T(l){l!==i&&(i?.el.sil.classList.remove("hi"),i=l,l.el.sil.classList.add("hi"))}const n=kt(t,l=>{let d=!1;for(const f of z)wt(f.sp,l)&&(d=!0),y(f);return d});o.add(n.unregister);function a(){if(!r)z.forEach((l,d)=>{l.sp.t=si[d]}),T(z[ai]),s.textContent="rest";else{const l=r,d=z.map(M=>(l[0]-M.piv[0])/H),f=Math.min(...d.map(Math.abs)),b=z[d.findIndex(M=>Math.abs(M)===f)];z.forEach((M,S)=>{const A=Math.sign(d[S])*Math.max(Math.abs(d[S])-Tf,0),g=Math.max((M.piv[1]-l[1])/W,Math.sqrt(Math.max(gs*gs-A*A,0)),0),C=Math.atan2(A,g)*180/Math.PI;M.sp.t=lt(C,-wa,wa)*Sf((Math.abs(d[S])-f)/O,c)}),T(b),s.textContent=`antenna ${b.i+1} · ${Math.round(Math.abs(b.sp.t))}°`}n.wake()}return T(z[ai]),o.add(Et(t,{move:l=>{r=l,a()},leave:()=>{r=null,a()}})),o.add(()=>e.replaceChildren()),{set:l=>{c=l,r&&a()},destroy:o.dispose}},Cf=3.2,ka=9,bs=17,Oo=6.5,ys=22,oi=0,ur=86,fr=[[50,0,-1,51,-19,14,0],[88,0,0,93,23,-22,0],[50,34,0,58,50,26,0],[0,50,-1,-21,59,-16,0],[0,88,3,20,84,28,0],[-34,50,3,-59,64,-20,0],[-50,0,-1,-67,-20,-12,0],[-88,0,6,-91,26,20,0],[-50,-34,6,-47,-57,-28,0],[0,-50,-1,22,-46,18,0],[0,-88,9,-15,-95,-14,0],[34,-50,9,62,-60,22,0]];function jf(t,e,s,u,o){const c=Math.cos(vt(o)),r=Math.sin(vt(o));return rt(-s,-s,s,s,u,8).map(i=>({u:t+i.u*c-i.v*r,v:e+i.u*r+i.v*c,nu:i.nu*c-i.nv*r,nv:i.nu*r+i.nv*c}))}var Rf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=0;const i=At(45,.5,1.9),h=[[0,0,Oo],[ur,0,0],[-ur,0,0],[0,ur,0],[0,-ur,0]];for(const n of fr)for(const[a,l]of[[n[0],n[1]],[n[3],n[4]]])h.push([a-11,l-11,0],[a+11,l+11,0],[a+11,l-11,0],[a-11,l+11,0]);Ct(i,h,200,166);const v=Mt(i),x=Lt(i),p=I("g",{},e);let m="";for(let n=-oi;n<=oi;n++){const a=Math.sqrt(ur*ur-(n*ys)**2);m+=ft(v(n*ys,-a,0),v(n*ys,a,0))+ft(v(-a,n*ys,0),v(a,n*ys,0))}const N=fr.map((n,a)=>{const l=n[2]<0?[0,0]:[fr[n[2]][0],fr[n[2]][1]],d=[n[0],n[1]],f=Math.hypot(d[0]-l[0],d[1]-l[1]),b=[(d[0]-l[0])/f,(d[1]-l[1])/f],M=n[2]<0?bs:ka,S=[l[0]+b[0]*(M+2),l[1]+b[1]*(M+2)],A=[d[0]-b[0]*(ka+2),d[1]-b[1]*(ka+2)];return{i:a,from:S,to:A,tw:Wt(0),p:B(a),el:I("path",{class:"nf"},p),drawn:NaN}});function B(n){return fr[n][2]}const L=I("g",{},p),H=rt(-bs,-bs,bs,bs,7,8),W=q(L);Q(W,We(v,x,H,Le(i,H,1.3),0,Oo)),W.sil.classList.add("hi"),I("path",{d:tt(pt(v,Le(i,H,2.8),Oo)),class:"nf lo"},L);const P=fr.map((n,a)=>({i:a,t:n,el:q(I("g",{},p)),th:[.05,.3,.4][a%3],sp:yt(0,{k:a%3===0?120:90-a%3*8,c:a%3===0?14:12,eps:.002}),key:"",ord:0,k:0,rise:{k:a%3===0?120:90-a%3*8,c:a%3===0?14:12},fall:{k:[38,44,50][a%3],c:2*Math.sqrt([38,44,50][a%3])},lag:[.3,.2,.12][a%3]*1e3,want:0,wait:0,falling:!1}));function j(n){const a=n.sp.x,[l,d,,f,b,M,S]=n.t,A=lt(a,0,1),g=6.5*A*(1-A)*4/4,C=bt(f,l,a),w=bt(b,d,a),E=bt(M,0,a),$=Math.max(0,bt(S,0,A)+g);return{x:C,y:w,a:E,z:$}}function F(n){const a=j(n),l=[a.x,a.y,a.a,a.z].map(f=>f.toFixed(2)).join();if(n.k=a.x+a.y+6*a.z,l===n.key)return;n.key=l;const d=jf(a.x,a.y,ka,3.6,a.a);Q(n.el,We(v,x,d,Le(i,d,1),a.z,a.z+Cf))}let X="";function z(){const n=P.slice().sort((b,M)=>b.k-M.k),a=n.findIndex(b=>b.k>0),l=n.slice(),d=a<0?l.map(b=>b.el.g).concat(L):l.slice(0,a).map(b=>b.el.g).concat(L,l.slice(a).map(b=>b.el.g)),f=d.map(b=>b===L?"h":P.findIndex(M=>M.el.g===b)).join();if(f!==X){X=f;for(const b of d)p.appendChild(b)}}function O(n,a){const l=n.p<0?null:P[n.p],d=P[n.i],f=l?l.sp.x:1,b=d.sp.x,M=Math.min(f,b)>.96&&d.want>=1&&(!l||l.want>=1)?1:0;n.tw.to!==M&&(ce(n.tw,M,a,0),n.tw.dur=M?700:900);const S=Xt(n.tw,a);if(S===n.drawn)return;n.drawn=S;const A=v(n.from[0],n.from[1],0),g=v(n.to[0],n.to[1],0),C=Math.max(2,Math.round(Math.hypot(g[0]-A[0],g[1]-A[1])/9));let w="";for(let E=0;E<C;E++){const $=(E+.1)/C,G=Math.min((E+.6)/C,S);G>$&&(w+=ft([bt(A[0],g[0],$),bt(A[1],g[1],$)],[bt(A[0],g[0],G),bt(A[1],g[1],G)]))}n.el.setAttribute("d",w)}const k=kt(t,(n,a)=>{let l=!1;for(const d of P)d.wait>0&&(d.wait-=n*1e3,l=!0,d.wait<=0&&(d.sp.t=d.want)),wt(d.sp,n)&&(l=!0),F(d);for(const d of N)O(d,a),Qt(d.tw,a)||(l=!0);return z(),l});o.add(k.unregister);function y(){let n=0;for(const a of P){const l=lt((r-a.th)/.22,0,1);l>a.want?(a.falling=!1,a.wait=0,a.want=l,Object.assign(a.sp,a.rise),a.sp.t=l):l<a.want&&(a.falling||(a.falling=!0,a.wait=_e()?0:a.lag,Object.assign(a.sp,a.fall)),a.want=l,a.wait<=0&&(a.sp.t=l)),l>.5&&n++}s.textContent=r<=0?"rest":`map ${n}·${P.length}`,k.wake()}const T=n=>{const a=lt((c-n)/(c-18),0,1);return a*a*(3-2*a)};o.add(Et(t,{move:n=>{const[a,l]=le(i,n[0],n[1],0);r=T(Math.hypot(a,l)),y()},leave:()=>{r=0,y()}})),o.add(()=>e.replaceChildren());for(const n of P)F(n);return z(),s.textContent="rest",{set:n=>{c=n},destroy:o.dispose}},Ms=3,he=36,gn=11,dr=8,Aa=2.6,Ha=2,Pf=1.6,Lf=[-22,-11,0,11,22],_f=40,Bf=2.35,Xi=.8,Gi=.6,ci=(t,e,s)=>{const u=t<0?1:t;return e===u?t<0?s*Xi:s:t>=0&&e===u+1?s*Gi:Ha},If=({stage:t,svg:e,read:s},u)=>{const o=Tt(),[,c,r]=zr.sieve,i=At(45,.5,Bf),h=dr+Ms*gn+Ha+r*(1+Gi),v=dr+Ms*gn+2*Ha+c*Xi,x=[];for(const[g,C]of[[-he,0],[he,0],[0,-he],[0,he]])x.push([g,C,v-h],[g,C,h]);Ct(i,x,200,166);const p=Mt(i),m=p(0,0,0)[1],N=g=>p(0,0,g)[1]-m,B=ht(he,72),L=ht(he-Aa,72),H=I("g",{},e),W=(g,C)=>Pt(B.map(w=>p(w.u,w.v,g)).concat(B.map(w=>p(w.u,w.v,C))));Q(q(H),{sil:tt(W(0,dr)),crease:tt(L.map(g=>p(g.u,g.v,dr)))});const P=Array.from({length:Ms},()=>({s:q(H),mesh:I("path",{class:"nf lo"},H)})),j=(g,C,w)=>{const E=[[]];for(const[$,G]of g){const J=p($,G,C),_=le(i,J[0],J[1],w);Math.hypot($,G)<he-Aa&&Math.hypot(_[0],_[1])<he-Aa?E[E.length-1].push(J):E[E.length-1].length&&E.push([])}return E.filter($=>$.length>1)},F=(g,C)=>Array.from({length:29},(w,E)=>[g[0]+(C[0]-g[0])*E/28,g[1]+(C[1]-g[1])*E/28]),X=Lf.flatMap(g=>[F([g,-he],[g,he]),F([-he,g],[he,g])]);X.push(Array.from({length:73},(g,C)=>{const w=Math.PI/4+C/72*Math.PI*2,E=he-Aa-.05;return[E*Math.cos(w),E*Math.sin(w)]}));const z=W(0,gn),O=L.map(g=>p(g.u,g.v,gn)),k=X.flatMap(g=>j(g,Pf,gn)),y=(g,C)=>g.map(w=>[w[0],w[1]+C]),T=Array.from({length:Ms},()=>Wt(Ha)),n=T.map(()=>NaN);let a=-2,l=u;function d(g){let C=dr;T.forEach((w,E)=>{if(C+=Xt(w,g),C!==n[E]){n[E]=C;const $=N(C);Q(P[E].s,{sil:tt(y(z,$)),crease:tt(y(O,$))}),P[E].mesh.setAttribute("d",k.map(G=>jt(y(G,$))).join(""))}C+=gn})}const f=kt(t,(g,C)=>(d(C),T.some(w=>!Qt(w,C))));o.add(f.unregister);function b(g,C){if(g===a)return;a=g;const w=g<0?1:g;T.forEach((E,$)=>ce(E,ci(g,$,l),C,Math.abs($-w)*_f)),P.forEach((E,$)=>E.s.sil.classList.toggle("hi",$===w)),s.textContent=g<0?"rest":`sieve ${Ms-g} · 0`,f.wake()}b(-1,-1e9),d(0);const M=()=>{let g=dr;return T.map((C,w)=>{g+=ci(-1,w,l);const E=p(0,0,g+gn/2)[1];return g+=gn,E})};let S=M();const A=g=>S.reduce((C,w,E)=>Math.abs(g[1]-w)<Math.abs(g[1]-S[C])?E:C,0);return o.add(Et(t,{move:g=>b(A(g),performance.now()),leave:()=>b(-1,performance.now())})),o.add(()=>e.replaceChildren()),{set:g=>{l=g,S=M();const C=a;a=-2,b(C,performance.now())},destroy:o.dispose}},ln=210,pe=26,ws=5,zf=15,Ar=6,ii=1/9,On=ln*.62,hr=38,Hf=t=>{const e=lt(Math.min(t,1-t)/.08,0,1);return e*e*(3-2*e)},Yi=ln/Ar/2,Of=Yi/2,Df=t=>{const e=t-On,s=e<0?Yi:Of;return Math.abs(e)>=s?0:Math.cos(Math.PI/2*(Math.abs(e)/s))**2},$f=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null,i=2.4;const h=yt(1,{eps:.002}),v=At(45,.5,1.8);Ct(v,[[0,0,0],[ln,pe,0],[ln,0,0],[0,pe,0],[0,0,hr],[On,-8,hr]],200,168);const x=Mt(v),p=Lt(v),m=I("g",{},e),[N,B]=mt(0,0,ln,pe,5,1.3);Q(q(m),it(x,p,N,B,0,ws));const L=I("path",{class:"nf lo"},m),H=I("g",{},m),W=[];for(let k=0;k<Ar;k++){const y={...q(H),dots:[]};for(let T=0;T<9;T++)y.dots.push(en(y.g,v,1,"dot off"));W.push(y)}const P=[[-8,-3,0,hr-4,On-5.5],[pe+3,pe+8,0,hr-4,On+pe+5.5],[-8,pe+8,hr-4,hr,On+pe+8.5]].map(([k,y,T,n,a])=>{const l=q(H),[d,f]=mt(On-1.6,k,On+1.6,y,1.4,.6);return Q(l,it(x,p,d,f,T,n)),l.sil.style.transition="none",{el:l,key:a}}),j=Array.from({length:Ar},()=>yt(0,{eps:.03}));let F=-1,X="",z=0;const O=kt(t,k=>{let y=wt(h,k);const T=_e()?0:1;r||(h.t=T),i+=k*h.x;const n=[];for(let g=0;g<Ar;g++){const C=g/Ar+i*ii,w=C-Math.floor(C),E=Math.floor(C);n.push({j:g,x:w*ln,s:Hf(w),serial:141+E*Ar+g})}let a=-1;if(r){let g=34;for(const C of n)C.s>.6&&Math.abs(C.x-r[0])<g&&(g=Math.abs(C.x-r[0]),a=C.j)}F=a,j.forEach((g,C)=>{g.t=C===F?11:0,wt(g,k)&&(y=!0)}),n.sort((g,C)=>g.x-C.x);let l=0,d=0;const f=P.map((g,C)=>({id:"g"+C,key:g.key,g:g.el.g}));n.forEach((g,C)=>{const w=W[C],E=zf*g.s,$=g.x-E/2,G=g.x+E/2,J=pe/2-E/2,_=pe/2+E/2,R=ws+j[g.j].x,Y=R+E;if(f.push({id:C,key:g.x+pe/2,g:w.g}),E<.3){w.g.setAttribute("visibility","hidden");return}w.g.removeAttribute("visibility");const[Z,V]=mt($,J,G,_,2.6*g.s,.9*g.s);Q(w,it(x,p,Z,V,R,Y));const K=g.j===F;w.sil.classList.toggle("hi",K);const D=E*.2,et=Ft(.55*g.s*v.S);w.dots.forEach((nt,ct)=>{qt(nt,x(g.x+(ct%3-1)*D,pe/2+(Math.floor(ct/3)-1)*D,Y)),nt.setAttribute("rx",String(et)),nt.setAttribute("ry",String(Ft(et*v.k))),nt.setAttribute("class",g.serial>>ct&1?K?"dot":"dot m":"dot off")}),K&&(d=g.serial),l=Math.max(l,Df(g.x)*g.s)}),f.sort((g,C)=>g.key-C.key);const b=f.map(g=>g.id).join();b!==X&&(X=b,f.forEach(g=>H.appendChild(g.g)));const M=Math.round(l*100);if(M!==z){z=M;const g=M?`color-mix(in srgb, var(--hl-hi) ${M}%, var(--hl-edge))`:"";P.forEach(C=>{C.el.sil.style.stroke=g})}const S=(i*ii*ln%21+21)%21,A=[];for(let g=S;g<ln;g+=21)g>5&&g<ln-5&&A.push(ft(x(g,4,ws),x(g,pe-4,ws)));return L.setAttribute("d",A.join("")),s.textContent=`rate ${h.x.toFixed(2)}×`+(F>=0?` · #${String(d).padStart(4,"0")}`:""),_e()&&!r&&h.x===0?y:!0});return o.add(O.unregister),o.add(Et(t,{move:k=>{r=le(v,k[0],k[1],ws),h.t=c,O.wake()},leave:()=>{r=null,O.wake()}})),o.add(()=>e.replaceChildren()),{set:k=>{c=k,r&&(h.t=k),O.wake()},destroy:o.dispose}},on=5,Do=4,$o=9,Fo=7,pr=56,Ff=55,Te=[-8,-8,64,64],li=4,Wf=700,Xf=1250,Gf=45,ui=.42,Yf=230,fi=5,Ea=[[-1.5,1],[1.5,-1.2],[-.5,-1.8],[2,1.2],[0,0]],Zf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=(a,l)=>a<=l?0:c*(.4+.6*(a-l)/(on-1-l)),i=At(45,.5,2.2),h=Fo+(on-1)*$o+Do;Ct(i,[[Te[0],Te[1],0],[Te[2],Te[3],0],[Te[0],Te[1],h+46],[Te[2],Te[3],h+46]],200,166);const v=Mt(i),x=Lt(i),p=I("g",{},e),[m,N]=La(Te[0],Te[1],Te[2],Te[3],7,2);Q(q(p),We(v,x,m,N,0,li));const[B]=mt(4,4,52,52,4,1);I("path",{d:tt(pt(v,B,li)),class:"nf lo"},p);const L=[];for(let a=0;a<on;a++){const l=0+Ea[a][0],d=0+Ea[a][1],[f]=La(l,d,l+pr,d+pr,5,1.1),b=q(p),[M]=La(l+4,d+4,l+pr-4,d+pr-4,2.5,.6);L.push({j:a,ring:f,el:b,rim:M,tw:Wt(0),sp:yt(0,{k:90,c:10,eps:.005}),kick:1/0,drawn:NaN})}function H(a,l){const d=Fo+a.j*$o+l;Q(a.el,We(v,x,a.ring,a.rim,d,d+Do))}const W=kt(t,(a,l)=>{let d=!1;for(const f of L){l>=f.kick&&(f.kick=1/0,f.sp.v=ui*f.sp.v0);const b=f.sp.x!==0||f.sp.v!==0?(wt(f.sp,a),f.sp.x):0,M=Xt(f.tw,l)+b;(!Qt(f.tw,l)||f.kick!==1/0||f.sp.x!==0||f.sp.v!==0)&&(d=!0),M!==f.drawn&&(f.drawn=M,H(f,M))}return d});o.add(W.unregister);const P=L.map(a=>v(pr/2+Ea[a.j][0],pr-9+Ea[a.j][1],Fo+a.j*$o+Do)[1]),j=pt(v,m,0).map(a=>a[0]),F=Math.max(...pt(v,m,0).map(a=>a[1])),X=Math.min(...j)+4,z=Math.max(...j)-4,O=P[on-1]-150;function k([a,l]){if(a<X||a>z||l>F||l<O)return-1;if(y>=0){const f=y<on-1?(P[y]+P[y+1])/2:-1e9,b=y>0?(P[y-1]+P[y])/2:1e9;if(l>=f-fi&&l<=b+fi)return y}let d=0;for(;d<on-1&&l<(P[d]+P[d+1])/2;)d++;return d}let y=-1;function T(a,l){const d=performance.now(),f=a<0?on-1:a;L.forEach(b=>{const M=a<0?0:r(b.j,a),S=Xt(b.tw,d);if(M!==b.tw.to){const A=M<S;ce(b.tw,M,d,A?a<0?b.j*Gf:Math.abs(b.j-l)*30:Math.abs(b.j-l)*Ff),b.tw.dur=A?Xf:Wf,A||(b.kick=b.tw.t0+Yf,b.sp.v0=Math.max(6,M-S)*.5,b.sp.v0/=ui)}b.el.sil.classList.toggle("hi",b.j===f)}),W.wake()}T(-1,on-1),s.textContent="rest";function n(a){if(a===y)return;const l=a<0?y:a;y=a,s.textContent=a<0?"rest":"fr "+(a+1),T(a,l)}return o.add(Et(t,{move:a=>n(k(a)),leave:()=>n(-1)})),o.add(()=>e.replaceChildren()),{set:a=>{c=a,T(y,y<0?on-1:y)},destroy:o.dispose}},Oa=24,Nr=7,Da=11,Ue=2.1,di=1.8,Wo=3.9,hi=5.5,Ve=3.4,xn=150,Kf=17,Zi=17,vr=11,Se=2.5,Uf=37,Dn=Zi,qe=Zi+Nr*Da,bn=qe+Kf,pi=4,Vf=["0 5 12","2 7 3 9","2 14","4 6 10","4 18","2 3","0 2","0 2 6 8","0 26","0 20","0 11 4","2 9 12","2 5 3 7","4 16","4 8 8","2 4","0 3 14","0 24","0 30","0 17","2 6 11","2 13","0 9 5","0 4 7"],vi=Oa-Nr-2.6,Jf=18,Qf=2,qf=(t,e)=>lt(1-t/e,0,1),mi=t=>t*t*(3-2*t),mr=t=>.612*t.nu+.5*t.nv>0,gi=t=>t.map(e=>({...e,v:lt(e.v,Dn,qe)})),td=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.62),r=(M,S,A)=>[M,A,S];Ct(c,[r(0,0,-3),r(xn,0,-3),r(0,bn,-3),r(xn,bn,-3),r(xn,0,Ve+2.8),r(0,bn,Ve+1.3),r(vr,qe-4,hi+di)],200,166);const i=Mt(c),h=(M,S,A)=>i(M,A,S);let v=u,x=null,p=[];const m=I("g",{},e),[N,B]=mt(0,0,xn,bn,9,2);Q(q(m),it(h,mr,N,B,-3,0));const L=Vf.map((M,S)=>{const[A,...g]=M.split(" ").map(Number),C=[];let w=A;for(const E of g){const $=vr+w*Wo;C.push({x0:$,x1:$+E*Wo-1.4,el:q(m)}),w+=E+1}return{j:S,segs:C,sp:yt(0,{eps:.01}),drawn:""}}),[H,W]=mt(Se,Se,xn-Se,Dn,6,1.4);Q(q(m),it(h,mr,H,W,0,Ve));const P=(Se+Dn)/2,j=ge([[0,6.2],[8.5,0],[0,-6.2],[0,-3.1],[4.25,0],[0,3.1]],[.9,1.1,.9,.5,.6,.5]),F=I("path",{d:tt(j.map(([M,S])=>h(vr+M,P+S,Ve))),class:"nf"},m),[X,z]=mt(vr+13,P-5.2,vr+13+Wo*1.5,P+5.2,1.2,.8),O=q(m);Q(O,it(h,mr,X,z,Ve,Ve+2.8));const[k,y]=mt(Se,qe,xn-Se,bn-Se,6,1.4);Q(q(m),it(h,mr,k,y,0,Ve));for(let M=0;M<3;M++){const S=vr+M*8.5,A=(qe+bn-Se)/2,[g,C]=mt(S-2.8,A-2.8,S+2.8,A+2.8,2.8,.8);Q(q(m),it(h,mr,g,C,Ve,Ve+1.3))}function T(M,S){const A=S+"|"+M.sp.x;if(A===M.drawn)return;M.drawn=A;const g=qe-(M.j-S+.5)*Da,C=Math.max(g-Ue,Dn),w=Math.min(g+Ue,qe),E=mi(lt((qe-g-Ue)/pi,0,1))*mi(lt((g-Ue-Dn)/pi,0,1)),$=M.sp.x*E;for(const G of M.segs){if(w-C<.05){Q(G.el,{sil:"",crease:""});continue}const J=gi(rt(G.x0,g-Ue,G.x1,g+Ue,Ue,4)),_=gi(rt(G.x0+.7,g-Ue+.7,G.x1-.7,g+Ue-.7,Ue-.7,4));Q(G.el,it(h,mr,J,_,$,$+di))}}function n(M){for(const S of p)S.classList.remove("hi");p=M;for(const S of p)S.classList.add("hi")}const a=yt(vi,{eps:.002}),l=kt(t,M=>{let S=wt(a,M);for(const A of L)wt(A.sp,M)&&(S=!0),T(A,a.x);return S});o.add(l.unregister);function d([M,S],A){const g=h(0,0,A),C=h(1,0,A),w=h(0,1,A),E=C[0]-g[0],$=C[1]-g[1],G=w[0]-g[0],J=w[1]-g[1],_=E*J-$*G;return[((M-g[0])*J-(S-g[1])*G)/_,(E*(S-g[1])-$*(M-g[0]))/_]}function f(M){const S=d(M,Ve),A=C=>C[0]>Se&&C[0]<xn-Se;if(A(S)&&S[1]>Se&&S[1]<Dn)return"prompt";if(A(S)&&S[1]>qe&&S[1]<bn-Se)return 0;const g=d(M,0);return g[0]<0||g[0]>xn||g[1]<0||g[1]>bn?null:g[1]<=Dn?"prompt":lt((qe-Da/2-g[1])/((Nr-1)*Da),0,1)}function b(){let M,S,A=v;x===null?(M=vi,S=Jf,A=Qf,s.textContent="rest"):x==="prompt"?(M=Oa-Nr,S=-1,s.textContent="prompt"):(M=x*(Oa-Nr),S=lt(Math.round(x*(Oa-1)),Math.ceil(M),Math.floor(M+Nr-1)),s.textContent="line "+(Uf+S)),a.t=M;for(const g of L)g.sp.t=S<0?0:hi*qf(Math.abs(g.j-S),A);n(S<0?[O.sil,F]:L[S].segs.map(g=>g.el.sil)),l.wake()}b();for(const M of L)M.sp.x=M.sp.t;return o.add(Et(t,{move:M=>{x=f(M),b()},leave:()=>{x=null,b()}})),o.add(()=>e.replaceChildren()),{set:M=>{v=M,x!==null&&b()},destroy:o.dispose}},An=9,me=14,Ta=11,Xo=58,gr=An*me,ed=t=>t<=0?1:t<=.417?1-t/.417*.6875:t<=1?.3125-(t-.417)/.583*.2185:.094,nd=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.58);Ct(c,[[-6,-6,-5],[gr+6,gr+6,-5],[gr+6,-6,-5],[-6,gr+6,-5],[0,0,Xo*.75]],200,166);const r=Mt(c),i=Lt(c);let h=u*me,v=null;const x=I("g",{},e),p=[],[m,N]=mt(-6,-6,gr+6,gr+6,9,2.2);Q(q(x),it(r,i,m,N,-5,0));for(let k=0;k<=2*(An-1);k++)for(let y=0;y<An;y++){const T=k-y;if(T<0||T>=An)continue;const n=y/(An-1),a=T/(An-1),l=4+25*Math.exp(-((n-.22)**2+(a-.74)**2)/.07)+12*Math.exp(-((n-.8)**2+(a-.26)**2)/.035),d=y*me+(me-Ta)/2,f=T*me+(me-Ta)/2,[b,M]=mt(d,f,d+Ta,f+Ta,2.6,.9);p.push({i:y,j:T,h0:l,ring:b,inner:M,sp:yt(l,{eps:.04}),el:q(x),drawn:NaN})}const B=I("g",{},x),L=[];for(let k=0;k<9;k++)L.push(en(B,c,.55,k===4?"dot":"dot m"));const H=p.reduce((k,y)=>y.h0>k.h0?y:k),W=new Map;p.forEach(k=>W.set(k.i+","+k.j,k));let P=null,j=H;function F(){j!==P&&(P=j,P.el.g.after(B));const k=(P.i+.5)*me,y=(P.j+.5)*me,T=Math.max(.6,P.sp.x);L.forEach((n,a)=>qt(n,r(k+(a%3-1)*2.5,y+(Math.floor(a/3)-1)*2.5,T)))}function X(k){const y=Math.max(.6,k.sp.x);y!==k.drawn&&(k.drawn=y,Q(k.el,it(r,i,k.ring,k.inner,0,y)),k.el.sil.classList.toggle("hi",y>Xo*.5))}const z=kt(t,k=>{let y=!1;for(const T of p)wt(T.sp,k)&&(y=!0),X(T);return F(),y});o.add(z.unregister);function O(){for(const k of p){if(!v){k.sp.t=k.h0;continue}const y=(k.i+.5)*me-v[0],T=(k.j+.5)*me-v[1];k.sp.t=Xo*ed(Math.hypot(y,T)/h)}if(v){const k=lt(Math.floor(v[0]/me),0,An-1),y=lt(Math.floor(v[1]/me),0,An-1);j=W.get(k+","+y),s.textContent=`cell ${k}·${y}`}else j=H,s.textContent="rest";z.wake()}return o.add(Et(t,{move:k=>{v=le(c,k[0],k[1],0),O()},leave:()=>{v=null,O()}})),o.add(()=>e.replaceChildren()),{set:k=>{h=k*me,v&&O()},destroy:o.dispose}},Go=[[-42,-42,0,-12,-12,14,0],[-36,-36,14,-18,-18,34,0],[0,-46,0,16,-6,10,1],[24,-32,0,40,-16,44,2],[-44,4,0,-4,18,22,3],[8,6,0,40,38,8,4],[16,14,8,28,26,20,4],[-30,28,0,-16,42,12,5]],Os=45,xi=90,bi=t=>Os+xi*Math.round((t-Os)/xi),Ua=(t,e,s)=>(t[0]+t[3])*e+(t[1]+t[4])*s+(t[2]+t[5])*.01;function rd(t,e,s,u){return t[6]===e[6]?t[2]<e[2]:t[3]<=e[0]?s>0:e[3]<=t[0]?s<0:t[4]<=e[1]?u>0:e[4]<=t[1]?u<0:Ua(t,s,u)<Ua(e,s,u)}function sd(t,e,s,u){const o=Math.sqrt(1-u*u);let c=1e9,r=-1e9,i=1e9,h=-1e9;for(const v of[t[0],t[3]])for(const x of[t[1],t[4]])for(const p of[t[2],t[5]]){const m=v*s-x*e,N=(v*e+x*s)*u-p*o;c=Math.min(c,m),r=Math.max(r,m),i=Math.min(i,N),h=Math.max(h,N)}return[c,i,r,h]}function ad(t,e,s,u){const o=t.length,c=t.map(p=>sd(p,e,s,u)),r=t.map(()=>[]),i=t.map(()=>0);for(let p=0;p<o;p++)for(let m=0;m<o;m++){const N=c[p],B=c[m];p===m||N[2]<=B[0]||B[2]<=N[0]||N[3]<=B[1]||B[3]<=N[1]||rd(t[p],t[m],e,s)&&(r[p].push(m),i[m]++)}const h=[],v=t.map(()=>!1);let x=0;for(;h.length<o;){let p=-1,m=0;for(;m<2&&p<0;m++)for(let N=0;N<o;N++)!v[N]&&(m||!i[N])&&(p<0||Ua(t[N],e,s)<Ua(t[p],e,s))&&(p=N);m===2&&x++,v[p]=!0,h.push(p);for(const N of r[p])i[N]--}return{order:h,forced:x}}var od=(t,e,s,u)=>ad(t,e,s,u).order,Ln=70,yi=4,Mi=540,cd=14,id=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r={a:Os,w:0,mode:"rest",tgt:Os},i=yt(.5,{eps:5e-4});let h=null,v=0,x=-1e9;function p(d,f){if(r.mode==="rest")return!1;const b=Math.max(1,Math.ceil(d*240)),M=d/b;for(let S=0;S<b;S++)r.mode==="coast"?(r.w*=Math.exp(-M*1e3/c),r.a+=r.w*M,Math.abs(r.w)<45&&f-x>90&&(r.mode="settle",r.tgt=bi(r.a+r.w*.2))):(r.w+=(-90*(r.a-r.tgt)-16*r.w)*M,r.a+=r.w*M);return r.mode==="settle"&&Math.abs(r.a-r.tgt)<.02&&Math.abs(r.w)<.3&&(r.a=r.tgt,r.w=0,r.mode="rest"),r.mode!=="rest"}const m=At(Os,.5,1.85);m.ox=200,m.oy=184;const N=ht(Ln),B=ht(Ln-1.5),L=Go.map(d=>{const[f,b]=mt(d[0],d[1],d[3],d[4],3,1.1);return{b:d,ring:f,inner:b}}),H=L.find(d=>d.b[5]>=40),W={};L.forEach(d=>{(!W[d.b[6]]||d.b[5]>W[d.b[6]].b[5])&&(W[d.b[6]]=d)});const P={};L.forEach(d=>{d.b[2]===0&&(P[d.b[6]]=[(d.b[0]+d.b[3])/2,(d.b[1]+d.b[4])/2])});const j=I("g",{},e),F=q(j),X=I("path",{class:"nf lo"},j),z=I("path",{class:"nf"},j),O=en(j,m,1.7,"dot m"),k=I("path",{class:"nf"},j),y=Go.map(()=>q(j)),T=I("g",{},j),n=[];for(let d=0;d<16;d++){const f=Math.floor(d/4),b=d%4,M=f%3===0,S=b%3===0;M&&S||n.push({r:f,q:b,el:en(T,m,.6,M||S?"dot m":"dot")})}let a=null;const l=kt(t,(d,f)=>{let b=p(d,f);wt(i,d)&&(b=!0),m.az=vt(r.a),m.k=i.x;const M=Mt(m),S=Lt(m),A=Math.cos(m.az),g=Math.sin(m.az);Q(F,it(M,S,N,B,-yi,0));const C=[],w=[];for(let D=0;D<360;D+=15){const et=vt(D),nt=D%90===0,ct=nt?Ln-12:Ln-8;(nt?w:C).push(ft(M(Math.cos(et)*ct,Math.sin(et)*ct,0),M(Math.cos(et)*(Ln-4.5),Math.sin(et)*(Ln-4.5),0)))}X.setAttribute("d",C.join("")),z.setAttribute("d",w.join("")),qt(O,M(0,-53,0)),O.setAttribute("ry",String(Ft(1.7*m.S*m.k)));const E=m.oy+Ln*m.S*m.k+yi*m.S*Math.sqrt(1-m.k*m.k);k.setAttribute("d",`M${m.ox-4} ${Ft(E+10)}L${m.ox} ${Ft(E+4)}L${m.ox+4} ${Ft(E+10)}`);let $=-1,G=cd;if(h!==null||r.mode!=="rest")for(const D in P){const[et,nt]=P[D],ct=Math.abs(Math.atan2(et*A-nt*g,et*g+nt*A))*180/Math.PI;ct<G&&(G=ct,$=+D)}od(Go,g,A,m.k).forEach((D,et)=>{const nt=L[D];Q(y[et],it(M,S,nt.ring,nt.inner,nt.b[2],nt.b[5])),y[et].sil.classList.toggle("hi",nt===W[$]),nt===H&&a!==y[et]&&(a=y[et],a.g.after(T))});const[J,_,,R,Y,Z]=H.b,V=(J+R)/2,K=(_+Y)/2;return n.forEach(({r:D,q:et,el:nt})=>{qt(nt,M(V+(et-1.5)*2.6,K+(D-1.5)*2.6,Z)),nt.setAttribute("ry",String(Ft(.6*m.S*m.k)))}),s.textContent=`az ${String(Math.round((r.a%360+360)%360)).padStart(3,"0")}° · el ${Math.round(Math.asin(i.x)*180/Math.PI)}°`,b});return o.add(l.unregister),o.add(Et(t,{move:d=>{const f=performance.now();if(i.t=bt(Math.sin(vt(40)),Math.sin(vt(20)),lt(d[1]/320,0,1)),h!==null){const b=d[0]-h;if(_e())r.a-=b*.9;else{const M=b/Math.max(.008,(f-v)/1e3);r.w=lt(bt(r.w,-M*.9,.35),-Mi,Mi),r.mode="coast"}Math.abs(b)>.5&&(x=f)}h=d[0],v=f,l.wake()},leave:()=>{h=null,i.t=.5,_e()&&(r.a=bi(r.a)),l.wake()}})),o.add(()=>e.replaceChildren()),{set:d=>{c=d,l.wake()},destroy:o.dispose}},oe=40,ae=14,Ne=64,_n=17,Sa=4,wi=6,ld=6,Bn=10,Na=11,Ca=12,Yo=10,ki=3.6,Zo=-oe-8,Ai=4.6,xr=-70,br=70,yr=130,Ei=40,Ko=30,ud=50,Ti=150,Uo=[72,26,-20],fd=[Math.SQRT1_2*Math.sqrt(.75),Math.SQRT1_2*Math.sqrt(.75),.5],Vo=t=>[Math.cos(t*Math.PI/180),0,Math.sin(t*Math.PI/180)],Jo=t=>((t+50)%100+100)%100-50;function yn(t,e,s,u,o,c,r,i,h){const v=(p,m)=>t(e[0]+s[0]*m+u[0]*p.u+o[0]*p.v,e[1]+s[1]*m+u[1]*p.u+o[1]*p.v,e[2]+s[2]*m+u[2]*p.u+o[2]*p.v),x=p=>[0,1,2].reduce((m,N)=>m+(u[N]*p.nu+o[N]*p.nv)*fd[N],0)>0;return{sil:tt(Pt(c.map(p=>v(p,i)).concat(c.map(p=>v(p,h))))),crease:jt(Ut(r,x).map(p=>v(p,h)))}}var dd=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=[0,1,0],i=[1,0,0],h=[0,0,1],v=[0,0,Ne],x=At(45,.5,1.5);Ct(x,[[xr,-14,0],[br,-14,0],[xr,-14,yr],[br,-14,yr],[xr,Yo,0],[br,0,0],[xr,0,yr],[br,0,yr]],200,166);const p=Mt(x),m=I("g",{},e);Q(q(m),yn(p,[0,0,0],r,i,h,rt(xr,0,br,yr,9,6),rt(xr+2,2,br-2,yr-2,7,6),-14,0)),Q(q(m),yn(p,[Zo,ae*.55,0],h,i,r,ht(Ai,28),ht(Ai-1,28),Ne-26,Ne+26));for(const _ of[-15,15])Q(q(m),yn(p,[0,0,Ne+_],r,i,h,rt(Zo,-4,-oe+6,4,3,4),rt(Zo+1,-3,-oe+5,3,2,4),1,ae*.8));Q(q(m),yn(p,v,r,i,h,ht(oe,72),ht(oe-2.4,72),0,ae)),I("path",{class:"nf lo",d:tt(ht(oe-8,64).map(_=>p(_.u,ae,Ne+_.v)))},m),I("path",{class:"nf",d:ft(p(0,ae,Ne+_n+1.8),p(0,ae,Ne+_n+6.5))},m);const N=q(m);Q(N,yn(p,v,r,i,h,ht(_n,56),ht(_n-1.4,56),ae,ae+Sa));const B=I("path",{class:"nf lo"},m),L=I("path",{class:"nf"},m),H=I("path",{class:"nf"},m);Q(q(m),yn(p,v,r,i,h,ht(wi,32),ht(wi-1,32),ae+Sa,ae+Sa+ld));const W=Uo.map(_=>{const R=Vo(_),Y=Vo(_+90),Z=q(m),V=q(m);Q(V,yn(p,v,r,R,Y,rt(oe+Bn,-Ca/2,oe+Bn+Na,Ca/2,3,4),rt(oe+Bn+1.4,-Ca/2+1.4,oe+Bn+Na-1.4,Ca/2-1.4,1.8,4),0,Yo));for(const K of[-3.4,3.4]){const D=oe+Bn+Na/2+K;qt(I("circle",{r:.9,class:"dot off"},V.g),p(R[0]*D,Yo,Ne+R[2]*D))}return{th:_,e:R,t:Y,el:Z,tw:Wt(0),drawn:NaN}}),P=(_,R)=>{const Y=bt(oe+Bn+4.5,oe+1.2,R);Y!==_.drawn&&(_.drawn=Y,Q(_.el,yn(p,[0,ae/2,Ne],_.e,_.t,r,ht(ki,24),ht(ki-.9,24),oe-.2,Y)))},j={a:Ko,w:0,mode:"rest",tgt:Ko};let F=Ko,X="",z=null,O=0,k=-1e9,y=!1,T=!1,n=1,a=null,l=NaN;function d(){if(j.a===l)return;l=j.a;const _=[],R=[],Y=ae+Sa;for(let Z=0;Z<100;Z+=5){const V=90+(Z-j.a)*3.6,K=Vo(V),D=Z%10?_n-4:_n-6.5,et=_n-1.8,nt=ft(p(K[0]*D,Y,Ne+K[2]*D),p(K[0]*et,Y,Ne+K[2]*et));Z===Ei?H.setAttribute("d",nt):(Z%10?_:R).push(nt)}B.setAttribute("d",_.join("")),L.setAttribute("d",R.join(""))}function f(){const _=T?"bolts":y?"dial":"combo";_!==a&&(a=_,W.forEach(R=>R.el.sil.classList.toggle("hi",_==="bolts")),N.sil.classList.toggle("hi",_==="dial"),H.classList.toggle("hi",_==="combo"))}function b(_,R){T=_,W.forEach((Y,Z)=>ce(Y.tw,_?1:0,R,Math.abs(Z-n)*ud)),f()}function M(_,R){if(j.mode==="rest")return!1;const Y=Math.max(1,Math.ceil(_*240)),Z=_/Y;for(let V=0;V<Y;V++)j.mode==="coast"?(j.w=j.w*Math.exp(-Z*1e3/c)-40*Math.sin(j.a/10*2*Math.PI)*Z,j.a+=j.w*Z,Math.abs(j.w)<12&&R-k>90&&(j.mode="settle",j.tgt=Math.round((j.a+j.w*.15)/10)*10)):(j.w+=(-90*(j.a-j.tgt)-16*j.w)*Z,j.a+=j.w*Z);return j.mode==="settle"&&Math.abs(j.a-j.tgt)<.01&&Math.abs(j.w)<.2&&(j.a=j.tgt=(j.tgt%100+100)%100,j.w=0,j.mode="rest"),j.mode!=="rest"}const S=kt(t,(_,R)=>{let Y=M(_,R);const Z=Math.abs(Jo(j.a-Ei));!T&&Z<.8&&Math.abs(j.w)<6?b(!0,R):T&&Z>2.5&&b(!1,R),d(),W.forEach(D=>{P(D,Xt(D.tw,R)),Qt(D.tw,R)||(Y=!0)});const V=String((Math.round(j.a)%100+100)%100).padStart(2,"0"),K=y||j.mode!=="rest"?`dial ${V}`+(T?" · open":""):"rest";return K!==X&&(s.textContent=X=K),Y});o.add(S.unregister);const A=p(0,ae,0),g=p(1,ae,0),C=p(0,ae,1),w=[g[0]-A[0],g[1]-A[1]],E=[C[0]-A[0],C[1]-A[1]],$=w[0]*E[1]-w[1]*E[0];function G([_,R]){const Y=_-A[0],Z=R-A[1];return[(Y*E[1]-Z*E[0])/$,(w[0]*Z-w[1]*Y)/$-Ne]}function J(){y=!1,z=null,_e()&&(F=j.a=(Math.round(j.a/10)*10%100+100)%100,j.w=0,j.mode="rest"),f(),S.wake()}return o.add(Et(t,{move:_=>{const[R,Y]=G(_),Z=Math.hypot(R,Y);if(Z>oe+Bn+Na+10)return J();const V=performance.now(),K=Math.atan2(Y,R)*180/Math.PI;if(y=!0,n=Uo.reduce((D,et,nt)=>Math.abs(Jo((K-et)/3.6))<Math.abs(Jo((K-Uo[D])/3.6))?nt:D,0),z!==null){const D=-((K-z+540)%360-180)/3.6*lt(Z/22,0,1);_e()?(F+=D,j.a=Math.round(F/10)*10,j.mode="rest"):(j.w=lt(bt(j.w,D/Math.max(.008,(V-O)/1e3),.35),-Ti,Ti),j.mode="coast",F=j.a),Math.abs(D)>.05&&(k=V)}z=K,O=V,f(),S.wake()},leave:J})),f(),o.add(()=>e.replaceChildren()),{set:_=>{c=_,S.wake()},destroy:o.dispose}};function hd(t,e){return St({id:"riffle",label:"A tray of eight cards. Hover or use the arrow keys to pull a card.",rest:"rest",engine:Ef,focusable:!0},t,e)}function pd(t,e){return St({id:"terrain",label:"Eighty-one pillars on a plinth that rise around the pointer and rest as a dune with two rises.",rest:"rest",engine:nd},t,e)}function vd(t,e){return St({id:"exploded",label:"An app window taken apart into four layers. Moving across opens the gap; moving down picks a layer.",rest:"",engine:i1},t,e)}function md(t,e){return St({id:"phosphor",label:"A seven by seven dot matrix on a floating tile that plays a loop, and fades like phosphor where you paint it.",rest:"loop",engine:vu},t,e)}function gd(t,e){return St({id:"slow",label:"Crates riding a belt through a gate. Hovering slows the clock without stopping it.",rest:"rate 1.00×",engine:$f},t,e)}function xd(t,e){return St({id:"turntable",label:"Blocks on a turntable. Flick across it to spin it; it settles on the nearest quarter turn.",rest:"az 045° · el 30°",engine:id},t,e)}function bd(t,e){return St({id:"keyboard",label:"A sixty-key board. The key under the pointer sinks, and its neighbours follow it down, less the further away.",rest:"rest",engine:w1},t,e)}function yd(t,e){return St({id:"elevator",label:"Four floors beside an open shaft. The pointer's height picks a floor, and the car travels there through the ones between.",rest:"rest",engine:o1},t,e)}function Md(t,e){return St({id:"phone",label:"A phone in layers: glass, board, battery, shell. Moving across opens the gap; moving down picks a layer.",rest:"rest",engine:iu},t,e)}function wd(t,e){return St({id:"laptop",label:"A thin laptop: the pointer's height sets how far the lid stands open, and the lid follows it on a spring.",rest:"rest",engine:A1},t,e)}function kd(t,e){return St({id:"terminal",label:"A terminal window: the pointer's height scrolls back through its history, and the line under it lifts off the screen.",rest:"rest",engine:td},t,e)}function Ad(t,e){return St({id:"cabinet",label:"A rack of twelve blades: the pointer's height pulls the nearest ones out on their rails, the farther the less.",rest:"rest",engine:Zl},t,e)}function Ed(t,e){return St({id:"branches",label:"A commit graph on a board: the commit under the pointer rises, and its history rises after it, the farther back the less.",rest:"rest",engine:Xl},t,e)}function Td(t,e){return St({id:"vault",label:"A vault door: circling the pointer turns its dial, which coasts and catches every ten; on forty its three bolts draw back.",rest:"rest",engine:dd},t,e)}function Sd(t,e){return St({id:"lockers",label:"A bank of twelve lockers, one ajar at rest: the locker under the pointer opens, and the one open before it swings shut.",rest:"rest",engine:N1},t,e)}function Nd(t,e){return St({id:"loupe",label:"A stand loupe over a blank ruled sheet: the pointer drags it across, and the rules pass enlarged under the glass with nothing between them.",rest:"rest",engine:L1},t,e)}function Cd(t,e){return St({id:"padlock",label:"A padlock: as the pointer nears, the shackle springs up out of the body and swings open about its long leg.",rest:"rest",engine:F1},t,e)}function jd(t,e){return St({id:"patch",label:"A patch panel of twenty-four ports: the cable under the pointer lifts, and its neighbours lean away, less the further away.",rest:"rest",engine:q1},t,e)}function Rd(t,e){return St({id:"dish",label:"A parabolic dish on a two-axis gimbal: the pointer aims it, and it follows on a spring.",rest:"rest",engine:Jl},t,e)}function Pd(t,e){return St({id:"router",label:"A wifi router whose antennas lean toward the pointer, the nearest the most and the others less the further away.",rest:"rest",engine:Nf},t,e)}function Ld(t,e){return St({id:"sieve",label:"Three test sieves stacked over a pan: the pointer's height picks one, it rises clear of the stack, and every mesh is bare.",rest:"rest",engine:If},t,e)}function _d(t,e){return St({id:"rail",label:"A garment rail with seven bare hangers: the pointer brushes them, and each rocks away from it, the nearest most, and settles.",rest:"rest",engine:tf},t,e)}function Bd(t,e){return St({id:"plug",label:"A wall socket and a plug lying on the floor at the end of its cord: the pointer draws the plug up toward the socket, and it stops short of it.",rest:"rest",engine:Bu},t,e)}function Id(t,e){return St({id:"query",label:"A question mark built as a solid on a plinth, its dot a loose ball: the hook turns about its stem toward the pointer, and the ball rolls after it.",rest:"rest",engine:Zu},t,e)}function zd(t,e){return St({id:"drawer",label:"A filing cabinet of three drawers: the pointer's height picks one, it slides out, and inside are two dividers and nothing between them.",rest:"rest",engine:n1},t,e)}function Hd(t,e){return St({id:"basket",label:"An empty wire shopping basket under a bail handle: the pointer tilts it toward itself on a spring, so the bare floor shows, and the handle swings after it, late.",rest:"rest",engine:Dl},t,e)}function Od(t,e){return St({id:"plot",label:"A bar chart with no data: seven flat tabs on its base, before a plate of grid lines. The pointer brushes them, and each lifts a little, the nearest most, and drops back to zero.",rest:"rest",engine:Au},t,e)}function Dd(t,e){return St({id:"hub",label:"A hub and eight tiles on a grid: the tile under the pointer rises and its link turns solid; its neighbours rise less.",rest:"rest",engine:g1,tour:[[205,112],[260,144],[328,179],[263,207],[201,243],[131,209],[76,177],[136,141],null]},t,e)}function $d(t,e){return St({id:"relay",label:"A hub and four branches of tiles: the path to the leaf under the pointer lights hop by hop, each tile rising in turn.",rest:"rest",engine:vf,tour:[[45,145],[140,253],[271,258],[355,216],[344,151],null]},t,e)}function Fd(t,e){return St({id:"settle",label:"Twelve tiles lie crooked round a hub; as the pointer nears it they slide into a tree and the links draw in.",rest:"rest",engine:Rf,tour:[[360,40],[320,120],[203,155],null]},t,e)}function Wd(t,e){return St({id:"format",label:"A file of ten crooked lines: the pointer runs the formatter down it, and every line above snaps square to its indent.",rest:"rest",engine:h1,tour:[[290,162],[199,168],[135,200],null]},t,e)}function Xd(t,e){return St({id:"rebuild",label:"A tree of package tiles: the one touched rises, and every package that depends on it rises after it along the links.",rest:"rest",engine:ff,tour:[[47,236],[276,172],[181,106],null]},t,e)}function Gd(t,e){return St({id:"stack",label:"A call stack of five frames: the pointer's height picks one, and the frames above lift away to open it.",rest:"rest",engine:Zf,tour:[[200,250],[200,216],[200,199],null]},t,e)}var Qo=typeof window>"u"?Dt.useEffect:Dt.useLayoutEffect;function Nt(t,e){const s=Dt.forwardRef(function(o,c){const{intensity:r,theme:i,label:h,onRead:v,play:x,style:p,...m}=o,N=h??o["aria-label"],B=Dt.useRef(null),L=Dt.useRef(null),H=Dt.useRef(v),W=Dt.useCallback(P=>{B.current=P,typeof c=="function"?c(P):c&&(c.current=P)},[c]);return Qo(()=>{H.current=v}),Qo(()=>{const P=e(B.current,{intensity:r,theme:i,label:N,play:x,onRead:j=>H.current?.(j)});return L.current=P,()=>{P.destroy(),L.current=null}},[]),Qo(()=>{L.current?.update({intensity:r,theme:i,label:N,play:x})},[r,i,N,x]),U.jsx("div",{...m,ref:W,style:{aspectRatio:"5 / 4",...p}})});return s.displayName=t,s}Nt("Riffle",hd);Nt("Terrain",pd);Nt("Exploded",vd);Nt("Phosphor",md);Nt("Slow",gd);Nt("Turntable",xd);Nt("Keyboard",bd);Nt("Elevator",yd);Nt("Phone",Md);Nt("Laptop",wd);Nt("Terminal",kd);Nt("Cabinet",Ad);Nt("Branches",Ed);Nt("Vault",Td);Nt("Lockers",Sd);Nt("Loupe",Nd);Nt("Padlock",Cd);Nt("Patch",jd);Nt("Dish",Rd);Nt("Router",Pd);Nt("Sieve",Ld);Nt("Rail",_d);Nt("Plug",Bd);Nt("Query",Id);Nt("Drawer",zd);Nt("Basket",Hd);Nt("Plot",Od);var Yd=Nt("Hub",Dd);Nt("Relay",$d);Nt("Settle",Fd);Nt("Format",Wd);Nt("Rebuild",Xd);Nt("Stack",Gd);function Zd(){const t=Dt.useRef(null),{resolvedTheme:e}=Ui(),[s,u]=Dt.useState(!1),[o,c]=Dt.useState(()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches),[r,i]=Dt.useState(null),[h,v]=Dt.useState(null);Dt.useLayoutEffect(()=>{const p=getComputedStyle(t.current);v({color:p.getPropertyValue("--tt-electric-core").trim(),glowColor:p.getPropertyValue("--tt-electric-glow").trim()})},[e]),Dt.useEffect(()=>{const p=window.matchMedia("(prefers-reduced-motion: reduce)");let m=!1;const N=()=>{c(p.matches),u(m&&!document.hidden&&!p.matches&&e==="dark")},B=new IntersectionObserver(([L])=>{m=L.isIntersecting&&L.intersectionRect.width>0&&L.intersectionRect.height>0,N()});return B.observe(t.current),p.addEventListener("change",N),document.addEventListener("visibilitychange",N),()=>{B.disconnect(),p.removeEventListener("change",N),document.removeEventListener("visibilitychange",N)}},[e]),Dt.useEffect(()=>{if(!s||r||e!=="dark")return;let p=!0;return Vi(async()=>{const{default:m}=await import("./ElectricLogo-0O87VjKv.js");return{default:m}},__vite__mapDeps([0,1,2,3])).then(({default:m})=>{p&&i(()=>m)}).catch(()=>{}),()=>{p=!1}},[s,r,e]);let x=null;return e==="light"?x=U.jsx(Yd,{className:"tt-cloud-figure pointer-events-auto w-full translate-x-8",intensity:.4,play:!0,tabIndex:-1}):o?x=U.jsx("span",{className:"tt-cloud-electric-static"}):s&&r&&h&&(x=U.jsx(r,{src:"/token-tracker-bolt.svg",...h,theme:e,scale:.72,intensity:1.25,glow:1.4,thickness:1.6,strands:4,bend:.6,crackle:1.3,arcs:1.2,flicker:.28,fill:0,speed:2.1,interactive:!0,cursorIntensity:.85,cursorRadius:90})),U.jsx("div",{ref:t,className:`tt-cloud-electric is-${e}`,"aria-hidden":"true",children:x})}function Si(t){if(t.pointerType==="touch"||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;const e=t.currentTarget,s=e.getBoundingClientRect();e.style.setProperty("--tt-plan-pointer-x",`${t.clientX-s.left}px`),e.style.setProperty("--tt-plan-pointer-y",`${t.clientY-s.top}px`)}function Ni({items:t}){return U.jsx("ul",{className:"space-y-4 py-7 text-sm leading-6",children:t.map(e=>U.jsxs("li",{className:"flex items-start gap-3",children:[U.jsx(pl,{size:16,className:"mt-1 shrink-0 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0}),U.jsx("span",{children:e})]},e))})}function rh(){const t=Ji(),e=Qi(),{state:s}=qi();return U.jsx(Kd,{catalogState:t,accountState:e,initialSelection:s?.cloudPlanSelection,restoreFocus:s?.cloudPlanRestoreFocus})}function Kd({catalogState:t,accountState:e,initialSelection:s,selection:u,restoreFocus:o=!1}){const c=Dt.useRef(null),r=Dt.useRef(null),i=Dt.useRef(!1);Dt.useLayoutEffect(()=>{const D=c.current?.parentElement;D&&(D.scrollTop=0)},[]);const h=tl(),{openLoginModal:v}=el(),{catalog:x,loading:p,error:m,refresh:N}=t,{account:B,auth:L,loading:H,error:W,refresh:P}=e,[j,F]=Dt.useState(s?.billingMode==="fixed"?"fixed":"recurring"),[X,z]=Dt.useState(s?.termMonths===1?1:12),O=u?.billingMode||j,k=u?.termMonths||X,y=B?.membership,T=y?.has_gift===!0||y?.access_source==="gift"||B?.gifts?.some(D=>["active","pending"].includes(D.state)),n=B?.subscriptions?.some(D=>["active","trialing","past_due","paused"].includes(D.status)&&!D.cancel_at_period_end),a=y?.status==="active"&&!n&&!T,l=a?"fixed":O,d=x?.prices?.find(D=>D.billing_mode===l&&D.term_months===k),f=typeof d?.sku=="string"&&!!d.sku.trim(),b=x?.prices?.find(D=>D.billing_mode===l&&D.term_months===1),M=x?.prices?.find(D=>D.billing_mode===l&&D.term_months===12),S=d?.currency||"USD",A=nl(b,M),g=rl(x),C=x?.providers?.waffo,w=[...B?.conflict_orders||[],...B?.pending_orders||[]].some(D=>D.retry_payment_conflict_at),E=y&&["active","trial","transition","legacy_free"].includes(y.status),$=y?.trial_available===!1,G=!L?.signedIn||y?.trial_available===!0,J=!!(L?.loading||L?.signedIn&&(H||W||!y)),_=n||T,R=!E&&!n&&!T&&!$,Y=y?.status==="transition"?y.transition_ends_at:y?.status==="trial"?y.trial_ends_at:a?y.expires_at:null,Z=st(a?"cloud.action.renew":l==="fixed"?"cloud.action.buy_pro":"cloud.action.subscribe"),V=!f||!g||p||m||J||!C||w;Dt.useLayoutEffect(()=>{if(!o||i.current||p||J)return;const D=r.current?.querySelector("button:not([disabled]), a[href]");D&&(D.focus(),i.current=!0)},[o,p,J]);const K=(D=!1)=>{if(!f)return;const et=ul({trial:D,sku:d?.sku,userId:L?.signedIn?L.user?.id:null});if(!L?.signedIn){v({nextPath:et,subtitle:st(D?"cloud.login.trial_context":"cloud.login.purchase_context")});return}h(et)};return x?.policy?.hosting_mode==="self_hosted"||y?.status==="self_hosted"?U.jsx(sl,{}):U.jsx("div",{ref:c,className:"tt-cloud-theme flex flex-1 flex-col font-oai text-oai-black dark:text-oai-white",children:U.jsxs("main",{className:"tt-cloud-layout relative isolate mx-auto w-full max-w-5xl px-4 py-8 sm:px-6 sm:py-10",children:[U.jsx("div",{className:"tt-cloud-art","aria-hidden":"true",children:U.jsx(Zd,{})}),U.jsxs("header",{className:"relative z-10 mb-9 max-w-xl",children:[U.jsx("h1",{className:"text-balance text-3xl font-semibold tracking-tight sm:text-4xl",children:st("cloud.page.title")}),U.jsx("p",{className:"mt-3 text-base leading-7 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.page.subtitle")})]}),w?U.jsx("div",{className:"mb-6",children:U.jsx(al,{})}):null,U.jsxs("div",{className:"tt-plan-grid relative z-10",children:[U.jsxs(xc,{className:"tt-plan-card",bodyClassName:"tt-plan-body",onPointerMove:Si,children:[U.jsxs("div",{children:[U.jsxs("div",{className:"flex min-h-11 items-center gap-2.5",children:[U.jsx(ol,{size:19,className:"text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0}),U.jsx("h2",{className:"text-lg font-semibold",children:st("cloud.free.title")})]}),U.jsx("p",{className:"mt-2 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.free.subtitle")})]}),U.jsxs("div",{className:"border-b border-oai-gray-200 pb-6 pt-7 dark:border-oai-gray-800",children:[U.jsx("p",{className:"text-3xl font-semibold tracking-tight sm:text-4xl",children:st("cloud.free.price")}),U.jsx("p",{className:"mt-3 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.free.forever")})]}),U.jsx(Ni,{items:[st("cloud.free.device_scope"),st("cloud.free.tracking"),st("cloud.free.limits"),st("cloud.free.desktop"),st("cloud.free.exports"),st("cloud.plan.local_community")]}),U.jsx("div",{"aria-hidden":!0,className:"border-t border-oai-gray-200 pt-4 dark:border-oai-gray-800"}),U.jsx(Or,{as:Gs,to:L?.signedIn?"/dashboard":"/landing#download",variant:"secondary",className:"w-full no-underline",children:st(L?.signedIn?"cloud.action.open_dashboard":"cloud.free.cta")}),U.jsx("div",{"aria-hidden":!0})]}),U.jsxs(xc,{className:"tt-plan-card border-oai-gray-300 dark:border-oai-gray-600",bodyClassName:"tt-plan-body",onPointerMove:Si,children:[U.jsxs("div",{children:[U.jsxs("div",{className:"flex min-h-11 flex-wrap items-center justify-between gap-x-3 gap-y-1",children:[U.jsxs("h2",{className:"flex items-center gap-2.5 text-lg font-semibold",children:[U.jsx(cl,{size:19,className:"text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0}),st("cloud.plan.title")]}),U.jsx("div",{role:"group","aria-label":st("cloud.selector.term"),className:"tt-pro-period-control shrink-0",children:U.jsx(fl,{options:[{value:1,label:st("cloud.term.monthly")},{value:12,label:st("cloud.term.yearly")}],value:k,onChange:z})})]}),U.jsx("p",{className:"mt-2 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.plan.subtitle")})]}),U.jsxs("div",{className:"border-b border-oai-gray-200 pb-6 pt-7 dark:border-oai-gray-800","aria-live":"polite",children:[U.jsxs("p",{className:"flex flex-wrap items-baseline gap-2",children:[U.jsx("span",{className:"text-3xl font-semibold tracking-tight tabular-nums sm:text-4xl",children:d?Ja(d.amount_cents,S):st("cloud.price.pending")}),U.jsx("span",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400",children:st(k===12?"cloud.price.per_year":"cloud.price.per_month")})]}),U.jsxs("p",{className:"mt-3 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400",children:[U.jsx("span",{children:d?k===12?st("cloud.plan.monthly_equivalent",{equivalent:Ja(Math.round(d.amount_cents/12),S)}):st(l==="fixed"?"cloud.price.fixed_monthly_total":"cloud.price.monthly_total",{total:Ja(d.amount_cents,S)}):st("cloud.price.waiting")}),k===12&&d&&A!==0?U.jsxs("span",{children:[" · ",st("cloud.price.savings",{percent:A})]}):null]})]}),U.jsx(Ni,{items:[st("cloud.plan.device_sync"),st("cloud.plan.includes_local"),st("cloud.plan.anywhere"),st("cloud.plan.sync",{minutes:x?.limits?.sync_minutes||15}),st("cloud.plan.retained_history",{days:x?.limits?.hourly_history_days||90,months:x?.limits?.daily_history_months||24}),st("cloud.plan.identity")]}),U.jsxs("div",{className:`border-t border-oai-gray-200 dark:border-oai-gray-800 ${R?"pt-4":"py-4"}`,children:[!R&&a?U.jsxs("p",{className:"flex min-h-11 items-center text-sm font-medium",children:[st("cloud.billing_mode.fixed"),U.jsx("span",{className:"ml-2 text-xs font-normal text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.plan.renewal_off")})]}):null,_?U.jsx("p",{className:"flex min-h-11 items-center text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:gc(y?.status)}):null,!R&&!a&&!_?U.jsxs("div",{className:"flex items-center justify-between gap-3",children:[U.jsxs("label",{htmlFor:"pro-renewal-toggle",className:"cursor-pointer text-sm font-medium",children:[st("cloud.billing_mode.recurring"),U.jsx("span",{className:"ml-2 text-xs font-normal text-oai-gray-500 dark:text-oai-gray-400",children:st(O==="recurring"?"cloud.plan.renewal_hint":"cloud.plan.renewal_off")})]}),U.jsx("button",{id:"pro-renewal-toggle",type:"button",role:"switch","aria-checked":O==="recurring","aria-label":st("cloud.billing_mode.recurring"),onClick:()=>F(D=>D==="recurring"?"fixed":"recurring"),className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-md",children:U.jsx("span",{"aria-hidden":!0,className:`relative inline-flex h-5 w-9 items-center rounded-full transition-colors ${O==="recurring"?"bg-oai-gray-900 dark:bg-oai-gray-100":"bg-oai-gray-300 dark:bg-oai-gray-700"}`,children:U.jsx("span",{className:`h-3.5 w-3.5 rounded-full transition-transform motion-reduce:transition-none ${O==="recurring"?"translate-x-[19px] bg-white dark:bg-oai-gray-900":"translate-x-[3px] bg-white"}`})})})]}):null]}),U.jsxs("div",{ref:r,children:[_?U.jsx(Or,{as:Gs,to:"/settings?section=cloud",className:"w-full no-underline",children:st("cloud.action.manage_membership")}):null,!_&&R?U.jsxs(Or,{type:"button",onClick:()=>K(!0),disabled:!f||!g||p||m||J||!G||w,className:"w-full",children:[st("cloud.action.try",{days:x?.limits?.trial_days||7}),U.jsx(Qa,{size:16,className:"ml-2","aria-hidden":!0})]}):null,!_&&!R?U.jsxs(Or,{type:"button",onClick:()=>K(),disabled:V,className:"w-full",children:[Z,U.jsx(Qa,{size:16,className:"ml-2","aria-hidden":!0})]}):null]}),U.jsxs("div",{className:`text-center text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400 ${!_&&(E||$)||T?"pt-3":""}`,children:[!_&&!E&&$?U.jsx("p",{children:st("cloud.trial.used_hint")}):null,E&&!_?U.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-x-2 gap-y-1",children:[U.jsx("span",{children:gc(y?.status)}),Y?U.jsxs("span",{children:["· ",st("cloud.membership.expires",{date:il(Y)})]}):null,U.jsx(Gs,{to:"/settings?section=cloud",className:"inline-flex min-h-8 items-center underline underline-offset-4",children:st("cloud.action.manage_membership")})]}):null,T?U.jsx("p",{children:st("cloud.gift.error_active")}):null]})]})]}),U.jsxs("div",{className:"mt-5 space-y-3",children:[W?U.jsx(Yn,{error:W,context:"account",onRetry:P}):null,m?U.jsx(Yn,{error:m,onRetry:N}):null,!m&&p?U.jsx(Yn,{children:st("cloud.catalog.loading")}):null,!m&&!p&&!g?U.jsx(Yn,{children:st("cloud.catalog.preview")}):null,!m&&!p&&g&&!C?U.jsx(Yn,{children:st("cloud.catalog.provider_unavailable")}):null,!m&&!p&&g&&x?.environment==="sandbox"?U.jsx(Yn,{children:st("cloud.catalog.sandbox")}):null]}),U.jsxs("section",{className:"mt-8 rounded-xl border border-oai-gray-200 bg-white px-6 pt-6 pb-2 dark:border-oai-gray-800 dark:bg-oai-gray-900 md:px-7 md:pt-7",children:[U.jsx("h2",{className:"mb-3 text-lg font-semibold",children:st("cloud.plan.faq_title")}),U.jsxs("div",{className:"divide-y divide-oai-gray-200 dark:divide-oai-gray-800",children:[U.jsxs("details",{className:"group",children:[U.jsxs("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-4 py-4 text-sm font-medium [&::-webkit-details-marker]:hidden",children:[st("cloud.plan.details_title"),U.jsx(bc,{size:16,className:"shrink-0 text-oai-gray-500 transition-transform group-open:rotate-180 motion-reduce:transition-none","aria-hidden":!0})]}),U.jsxs("div",{className:"pb-5",children:[U.jsx(ll,{limits:x?.limits}),U.jsx("p",{className:"mt-4 text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.plan.device_fair_use")}),U.jsx("p",{className:"mt-3 text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.feature.pro_identity")})]})]}),[[st("cloud.faq.local_title"),st("cloud.faq.local_body")],[st("cloud.faq.cost_title"),st("cloud.faq.cost_body")],[st("cloud.faq.expiry_title"),st("cloud.faq.expiry_body")],[st("cloud.faq.platform_title"),st("cloud.faq.platform_body")],[st("cloud.faq.existing_title"),st("cloud.faq.existing_body")]].map(([D,et])=>U.jsxs("details",{className:"group",children:[U.jsxs("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-4 py-4 text-sm font-medium [&::-webkit-details-marker]:hidden",children:[D,U.jsx(bc,{size:16,className:"shrink-0 text-oai-gray-500 transition-transform group-open:rotate-180 motion-reduce:transition-none","aria-hidden":!0})]}),U.jsx("p",{className:"pb-5 text-sm leading-7 text-oai-gray-500 dark:text-oai-gray-400",children:et})]},D))]})]}),U.jsxs("section",{className:"mt-6 flex flex-col gap-4 rounded-xl border border-oai-gray-200 bg-oai-gray-50 p-6 dark:border-oai-gray-800 dark:bg-oai-gray-900 sm:flex-row sm:items-center sm:justify-between md:p-7",children:[U.jsxs("div",{className:"max-w-xl",children:[U.jsxs("h2",{className:"flex items-center gap-2 text-sm font-semibold",children:[U.jsx(dl,{size:16,"aria-hidden":!0}),st("cloud.self_host.title")]}),U.jsx("p",{className:"mt-2 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.plan.self_host_summary")})]}),U.jsxs(Or,{as:Gs,to:"/self-host",variant:"secondary",className:"shrink-0 self-start no-underline sm:self-auto",children:[st("cloud.self_host.cta"),U.jsx(Qa,{size:16,className:"ml-2","aria-hidden":!0})]})]}),U.jsxs("footer",{className:"mt-7 flex items-start justify-center gap-2 text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:[U.jsx(hl,{size:15,className:"mt-0.5 shrink-0","aria-hidden":!0}),st("cloud.feature.privacy_detail")]})]})})}export{rh as CloudPage,Kd as CloudPlanView};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ElectricLogo-DFt7_F2f.js","assets/__vite-browser-external-DCy_YLfe.js","assets/__vite-browser-external-B0m8a6Te.css","assets/ElectricLogo-D0wiAojj.css"])))=>i.map(i=>d[i]);
2
+ import{r as Dt,j as U,ao as Ui,_ as Vi,a0 as Ji,a1 as Qi,as as qi,d as tl,u as el,at as nl,a3 as rl,c as st,ad as sl,af as al,am as ol,B as Or,L as Gs,au as cl,aa as Ja,av as gc,a8 as il,a9 as Yn,aw as ll,ax as ul}from"./__vite-browser-external-DCy_YLfe.js";import{S as fl}from"./Controls-9ynPx9rF.js";import{C as xc}from"./Card-lQmyKbh4.js";import{A as Qa}from"./arrow-right-uNxLHoJ0.js";import{C as bc}from"./chevron-down-BwvBVAOs.js";import{S as dl}from"./server-EpUTEsOf.js";import{S as hl}from"./shield-check-DRg8cPKV.js";import{C as pl}from"./check-Dbubk4Il.js";var qa={plate:"#ffffff",hi:"#232327",edge:"#a4a4ac",mid:"#c3c3c9",lo:"#e0e0e4"},to={plate:"#08090a",hi:"#d0d6e0",edge:"#5b5d64",mid:"#3e3e44",lo:"#29292d"},Ci=["plate","hi","edge","mid","lo"],Dr=t=>Ci.map(e=>`--hl-${e}:var(--hairline-${e},${t[e]});`).join(""),yc="cubic-bezier(0.5,0,0.1,1)",be=":where([data-hairline]>svg)";function vl(t){const e=Object.fromEntries(Ci.map(s=>[s,`light-dark(${qa[s]},${to[s]})`]));return[`:where([data-hairline]){display:block;position:relative;aspect-ratio:5/4;touch-action:pan-y;user-select:none;-webkit-user-select:none;--hl-sw:var(--hairline-stroke,0.9);${Dr(qa)}}`,t?`:where([data-hairline]){${Dr(e)}}`:"",`:where(.dark,[data-theme="dark"]) :where([data-hairline]){${Dr(to)}}`,`:where([data-hairline][data-hairline-theme="light"]){${Dr(qa)}}`,`:where([data-hairline][data-hairline-theme="dark"]){${Dr(to)}}`,":where([data-hairline]:focus-visible){outline:1.5px solid var(--hl-hi);outline-offset:2px}",`${be}{position:absolute;inset:0;width:100%;height:100%;display:block}`,":where([data-hairline]>[data-hairline-live]){position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}",`${be} :where(path,polygon,ellipse,line){fill:var(--hl-plate);stroke:var(--hl-mid);stroke-width:var(--hl-sw);vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;transition:stroke 260ms ${yc}}`,`${be} :where(.nf){fill:none}`,`${be} :where(.fo){stroke:none}`,`${be} :where(.sil){stroke:var(--hl-edge)}`,`${be} :where(.hi){stroke:var(--hl-hi)}`,`${be} :where(.lo){stroke:var(--hl-lo)}`,`${be} :where(.dash){stroke-dasharray:1 3}`,`${be} :where(.dot){stroke:none;fill:var(--hl-hi);transition:fill 260ms ${yc}}`,`${be} :where(.dot.m){fill:var(--hl-edge)}`,`${be} :where(.dot.off){fill:var(--hl-lo)}`,`${be} :where(.ghost path){fill:none;stroke:var(--hl-mid)}`].join("")}var Mc=new WeakSet;function ml(t){if(Mc.has(t))return;Mc.add(t);const e=t.nodeType===9?t:t.ownerDocument,s=e.defaultView,u=vl(!!s?.CSS?.supports?.("color","light-dark(#000,#fff)"));if(s&&"adoptedStyleSheets"in t)try{const c=new s.CSSStyleSheet;c.replaceSync(u),t.adoptedStyleSheets=[...t.adoptedStyleSheets,c];return}catch{}const o=e.createElement("style");o.setAttribute("data-hairline-style",""),o.textContent=u,(t.nodeType===9?e.head??e.documentElement:t).appendChild(o)}var lt=(t,e,s)=>Math.max(e,Math.min(s,t)),bt=(t,e,s)=>t+(e-t)*s,vt=t=>t*Math.PI/180,Ft=t=>Math.round(t*100)/100,tt=t=>"M"+t.map(e=>Ft(e[0])+" "+Ft(e[1])).join("L")+"Z",ft=(t,e)=>`M${Ft(t[0])} ${Ft(t[1])}L${Ft(e[0])} ${Ft(e[1])}`,jt=t=>t.length<2?"":"M"+t.map(e=>Ft(e[0])+" "+Ft(e[1])).join("L"),At=(t,e,s)=>({az:vt(t),k:e,S:s,ox:0,oy:0});function Mt(t){const e=Math.cos(t.az),s=Math.sin(t.az),u=Math.sqrt(1-t.k*t.k);return(o,c,r)=>{const i=o*e-c*s,h=o*s+c*e;return[t.ox+t.S*i,t.oy+t.S*(h*t.k-r*u)]}}function le(t,e,s,u){const o=Math.cos(t.az),c=Math.sin(t.az),r=Math.sqrt(1-t.k*t.k),i=(e-t.ox)/t.S,h=((s-t.oy)/t.S+u*r)/t.k;return[i*o+h*c,-i*c+h*o]}function Ct(t,e,s,u){t.ox=0,t.oy=0;const o=Mt(t);let c=1e9,r=-1e9,i=1e9,h=-1e9;for(const v of e){const x=o(v[0],v[1],v[2]);c=Math.min(c,x[0]),r=Math.max(r,x[0]),i=Math.min(i,x[1]),h=Math.max(h,x[1])}t.ox=s-(c+r)/2,t.oy=u-(i+h)/2}function rt(t,e,s,u,o,c=4){o=Math.max(0,Math.min(o,(s-t)/2,(u-e)/2));const r=[];for(const[i,h,v]of[[s-o,u-o,0],[t+o,u-o,90],[t+o,e+o,180],[s-o,e+o,270]])for(let x=0;x<=c;x++){const p=vt(v+90*x/c),m=Math.cos(p),N=Math.sin(p);r.push({u:i+o*m,v:h+o*N,nu:m,nv:N})}return r}function ht(t,e=96){const s=[];for(let u=0;u<e;u++){const o=u/e*Math.PI*2,c=Math.cos(o),r=Math.sin(o);s.push({u:t*c,v:t*r,nu:c,nv:r})}return s}function Pt(t){const e=t.slice().sort((c,r)=>c[0]-r[0]||c[1]-r[1]),s=(c,r,i)=>(r[0]-c[0])*(i[1]-c[1])-(r[1]-c[1])*(i[0]-c[0]),u=[],o=[];for(const c of e){for(;u.length>1&&s(u[u.length-2],u[u.length-1],c)<=0;)u.pop();u.push(c)}for(let c=e.length-1;c>=0;c--){const r=e[c];for(;o.length>1&&s(o[o.length-2],o[o.length-1],r)<=0;)o.pop();o.push(r)}return u.pop(),o.pop(),u.concat(o)}var pt=(t,e,s)=>e.map(u=>t(u.u,u.v,s)),Lt=t=>{const e=Math.sin(t.az),s=Math.cos(t.az);return u=>u.nu*e+u.nv*s>=-1e-6};function Ut(t,e){const s=t.length;let u=-1;for(let c=0;c<s;c++)if(e(t[c])&&!e(t[(c+s-1)%s])){u=c;break}if(u<0)return e(t[0])?t.slice():[];const o=[];for(let c=0;c<s&&e(t[(u+c)%s]);c++)o.push(t[(u+c)%s]);return o}function it(t,e,s,u,o,c){return{sil:tt(Pt(pt(t,s,c).concat(pt(t,s,o)))),crease:u?jt(pt(t,Ut(u,e),c)):""}}var mt=(t,e,s,u,o,c)=>[rt(t,e,s,u,o),rt(t+c,e+c,s-c,u-c,Math.max(.3,o-c))];function dc(t,e){const s=e.map(r=>t(r.u,r.v,0));let u=0,o=0,c=0;return s.forEach((r,i)=>{r[0]<s[u][0]&&(u=i),r[0]>s[o][0]&&(o=i),r[1]>s[c][1]&&(c=i)}),[e[u],e[o],e[c]]}function ge(t,e,s=4){const u=t.length,o=[];for(let c=0;c<u;c++){const r=t[(c+u-1)%u],i=t[c],h=t[(c+1)%u],v=Math.hypot(r[0]-i[0],r[1]-i[1]),x=Math.hypot(h[0]-i[0],h[1]-i[1]),p=Math.min(e[c],v/2,x/2),m=[i[0]+(r[0]-i[0])/v*p,i[1]+(r[1]-i[1])/v*p],N=[i[0]+(h[0]-i[0])/x*p,i[1]+(h[1]-i[1])/x*p];for(let B=0;B<=s;B++){const L=B/s,H=1-L;o.push([H*H*m[0]+2*H*L*i[0]+L*L*N[0],H*H*m[1]+2*H*L*i[1]+L*L*N[1]])}}return o}function gl(t,e,s,u,o){const c=Ut(s,e),r=pt(t,c,u-o);return{d:jt(r)+[c[0],c[c.length-1]].map(i=>ft(t(i.u,i.v,u),t(i.u,i.v,u-o))).join(""),y0:Math.min(...pt(t,c,u).map(i=>i[1])),y1:Math.max(...r.map(i=>i[1]))+2}}var Ws=!1,ji=t=>{Ws=t},_e=()=>Ws;function yt(t,e={}){return{x:t,v:0,t,k:e.k??100,c:e.c??18,m:e.m??1,eps:e.eps??.01}}function wt(t,e){if(Ws)return t.x=t.t,t.v=0,!1;const s=Math.max(1,Math.ceil(e*240)),u=e/s;for(let o=0;o<s;o++){const c=(-t.k*(t.x-t.t)-t.c*t.v)/t.m;t.v+=c*u,t.x+=t.v*u}return Math.abs(t.x-t.t)<t.eps&&Math.abs(t.v)<t.eps*10?(t.x=t.t,t.v=0,!1):!0}function xl(t,e,s,u){const o=3*t,c=3*(s-t)-o,r=1-o-c,i=3*e,h=3*(u-e)-i,v=1-i-h,x=N=>((r*N+c)*N+o)*N,p=N=>((v*N+h)*N+i)*N,m=N=>(3*r*N+2*c)*N+o;return N=>{if(N<=0)return 0;if(N>=1)return 1;let B=N;for(let L=0;L<8;L++){const H=x(B)-N;if(Math.abs(H)<1e-5)break;const W=m(B);if(Math.abs(W)<1e-6)break;B-=H/W}if(!(B>=0&&B<=1)||Math.abs(x(B)-N)>1e-4){let L=0,H=1;B=N;for(let W=0;W<24;W++)x(B)<N?L=B:H=B,B=(L+H)/2}return p(B)}}var hc=xl(.32,.72,0,1),Wt=(t,e=700)=>({from:t,to:t,t0:-1e9,dur:e}),Xt=(t,e)=>{const s=lt((e-t.t0)/t.dur,0,1);return t.from+(t.to-t.from)*(Ws?1:hc(s))},ce=(t,e,s,u)=>{t.to!==e&&(t.from=Xt(t,s),t.to=e,t.t0=s+u)},Qt=(t,e)=>Ws||e>=t.t0+t.dur,bl="http://www.w3.org/2000/svg";function I(t,e,s){const u=document.createElementNS(bl,t);if(e)for(const o in e)u.setAttribute(o,String(e[o]));return s&&s.appendChild(u),u}function q(t){const e=I("g",{},t);return{g:e,sil:I("path",{class:"sil"},e),cr:I("path",{class:"nf lo"},e)}}var Q=(t,e)=>{t.sil.setAttribute("d",e.sil),t.cr.setAttribute("d",e.crease)},en=(t,e,s,u)=>I("ellipse",{rx:Ft(s*e.S),ry:Ft(s*e.S*e.k),class:u},t),qt=(t,e)=>{t.setAttribute("cx",String(Ft(e[0]))),t.setAttribute("cy",String(Ft(e[1])))},yl=0;function Ml(t,e,s,u=.7){const o="hl-fd"+ ++yl,c=I("defs",{},t),r=I("linearGradient",{id:o+"g",gradientUnits:"userSpaceOnUse",x1:0,y1:Ft(e),x2:0,y2:Ft(s)},c);I("stop",{offset:0,"stop-color":"#fff","stop-opacity":u},r),I("stop",{offset:1,"stop-color":"#fff","stop-opacity":0},r);const i=I("mask",{id:o,maskUnits:"userSpaceOnUse",x:0,y:0,width:400,height:320},c);return I("rect",{x:0,y:0,width:400,height:320,fill:`url(#${o}g)`},i),`url(#${o})`}function Ri(t,e,s,u,o,c,r){const i=gl(s,u,o,c,r),h=I("g",{class:"ghost",mask:Ml(t,i.y0,i.y1)},e);I("path",{d:i.d},h)}var Er=[],ks=new Map,Cr=0,qo=0,Ir=null,jr=null;function Pi(t){const e=Math.min(.05,Math.max(0,(t-qo)/1e3));qo=t;let s=!1;for(const u of Er.slice())if(u.vis&&u.awake){try{u.awake=!!u.tick(e,t)}catch(o){u.awake=!1,setTimeout(()=>{throw o})}s=s||u.awake}Cr=s?requestAnimationFrame(Pi):0}function $a(t){t.awake=!0,Cr||(qo=performance.now(),Cr=requestAnimationFrame(Pi))}var Li=()=>{ji(!!jr?.matches),Er.forEach($a)};function wl(){Ir||(Ir=new IntersectionObserver(t=>{for(const e of t){const s=ks.get(e.target);if(s)for(const u of s)u.vis=e.isIntersecting,u.vis&&$a(u)}},{rootMargin:"80px"}),jr=matchMedia("(prefers-reduced-motion: reduce)"),ji(jr.matches),jr.addEventListener("change",Li))}function kl(){Cr&&cancelAnimationFrame(Cr),Cr=0,Ir?.disconnect(),Ir=null,jr?.removeEventListener("change",Li),jr=null}function kt(t,e){wl();const s={stage:t,tick:e,vis:!1,awake:!0};Er.push(s);const u=ks.get(t);if(u){for(const c of u)s.vis=c.vis;u.add(s),s.vis&&$a(s)}else ks.set(t,new Set([s])),Ir.observe(t);e(0,performance.now());let o=!1;return{wake:()=>{o||$a(s)},unregister:()=>{if(o)return;o=!0,Er=Er.filter(r=>r!==s);const c=ks.get(t);c&&(c.delete(s),c.size||(ks.delete(t),Ir?.unobserve(t))),Er.length||kl()}}}var Hs=new WeakMap,Rr=new WeakMap;function Et(t,e){Hs.set(t,e);let s=0;const u=i=>{const h=t.getBoundingClientRect();return[(i.clientX-h.left)/h.width*400,(i.clientY-h.top)/h.height*320]},o=i=>{clearTimeout(s),Rr.get(t)?.hold(),e.move(u(i),i)},c=i=>{clearTimeout(s),Rr.get(t)?.hold(),i.pointerType!=="mouse"&&t.releasePointerCapture?.(i.pointerId),e.down?e.down(u(i),i):e.move(u(i),i)},r=i=>{clearTimeout(s),s=window.setTimeout(()=>{e.leave(i),Rr.get(t)?.release()},i.pointerType==="mouse"?0:1400)};return t.addEventListener("pointermove",o),t.addEventListener("pointerdown",c),t.addEventListener("pointerleave",r),()=>{clearTimeout(s),Hs.get(t)===e&&Hs.delete(t),t.removeEventListener("pointermove",o),t.removeEventListener("pointerdown",c),t.removeEventListener("pointerleave",r)}}var wc=[[128,150],[200,118],[272,150],[200,206],null],eo=900,Al=1200,El=1800,kc=1200,Tl=450,Ac={pointerType:"ghost"},Sl=0;function Nl([t,e]){const s=t-200,u=e-160;if(!s&&!u)return[200,320];const o=Math.min(s?(s>0?200:-200)/s:1/0,u?(u>0?160:-160)/u:1/0);return[200+s*o,160+u*o]}function Ec(t,e,s){let u=0,o=kc+Tl*(Sl++%4),c=-1,r=null,i=[200,320],h=!1,v=t.contains(t.ownerDocument.activeElement),x=!1;const p=()=>{r=null,c=-1,Hs.get(t)?.leave(Ac)},m=j=>{if(h||v||!e.length)return!1;if(_e())return r&&p(),!1;if(o>0)return o-=j*1e3,!0;const F=e[u];if(F===null)return r&&p(),u=(u+1)%e.length,o=El,!0;const X=Hs.get(t);if(!X)return!0;c<0&&(i=r??Nl(F),c=0),c=Math.min(eo,c+j*1e3);const z=hc(c/eo);return r=[i[0]+(F[0]-i[0])*z,i[1]+(F[1]-i[1])*z],X.move(r,Ac),c<eo||(u=(u+1)%e.length,c=-1,o=Al),!0},N=()=>{r=null,c=-1},B=()=>{h||v||(u=0,c=-1,o=kc,P.wake())},L={hold:()=>{h=!0,N()},release:()=>{h&&(h=!1,B())}},H=()=>{v=!0,N()},W=j=>{v&&!t.contains(j.relatedTarget)&&(v=!1,B())};t.addEventListener("focusin",H),t.addEventListener("focusout",W),Rr.set(t,L);const P=kt(t,m);return{stop:()=>{x||(x=!0,P.unregister(),t.removeEventListener("focusin",H),t.removeEventListener("focusout",W),Rr.get(t)===L&&Rr.delete(t),r&&p())}}}function Tt(){let t=[];return{add:e=>{t.push(e)},on:(e,s,u,o)=>{const c=u;e.addEventListener(s,c,o),t.push(()=>e.removeEventListener(s,c,o))},dispose:()=>{const e=t;t=[];for(let s=e.length-1;s>=0;s--)e[s]()}}}var zr={riffle:[0,40,90],terrain:[1.5,3,5],exploded:[12,28,40],phosphor:[150,520,1500],slow:[.6,.2,.05],turntable:[200,650,1500],keyboard:[1,2,3.5],elevator:[40,100,220],phone:[16,28,40],laptop:[100,125,150],terminal:[1,2,3.5],cabinet:[1.5,3,5],branches:[1,3,6],vault:[250,600,1500],lockers:[55,90,120],padlock:[45,90,100],patch:[1,2.5,5],dish:[30,50,70],router:[.5,1.5,3],loupe:[1.3,1.8,2.6],sieve:[6,14,24],rail:[1,2,3.5],plug:[.35,.6,.9],query:[20,40,55],drawer:[12,22,34],basket:[8,16,28],plot:[3,6,12],hub:[10,16,24],relay:[40,120,220],settle:[90,120,150],format:[9,12,14],rebuild:[8,14,20],stack:[22,34,46]},Cl=.5;function jl(t){const e=typeof t=="string"&&t.trim()!==""?Number(t):t;return typeof e!="number"||!Number.isFinite(e)?Cl:Math.min(1,Math.max(0,e))}function Tc(t,e){const[s,u,o]=zr[t],c=jl(e),r=c<=.5?s+c/.5*(u-s):u+(c-.5)/.5*(o-u);return Math.round(r*1e3)/1e3}var Rl="http://www.w3.org/2000/svg",Ys=new WeakMap,Pl=t=>{typeof reportError=="function"?reportError(t):setTimeout(()=>{throw t})};function St(t,e,s){if(typeof document>"u")throw new Error(`hairline: ${t.id}() needs a DOM. Call it in the browser, once the element exists: in an effect, in onMount, or in a script after the element.`);if(!e||e.nodeType!==1)throw new TypeError(`hairline: ${t.id}() takes an element as its first argument, and got ${e===null?"null":typeof e}.`);Ys.get(e)?.();const u={...s},o=e.ownerDocument,c=e.getRootNode();ml(c.nodeType===9||"host"in c?c:o);const r=new Set,i=(P,j)=>{!r.has(P)&&e.hasAttribute(P)||(j===null?(e.removeAttribute(P),r.delete(P)):(e.setAttribute(P,j),r.add(P)))},h=()=>{i("data-hairline-theme",u.theme==="light"||u.theme==="dark"?u.theme:null),i("aria-label",e.hasAttribute("aria-labelledby")?null:typeof u.label=="string"?u.label:t.label)};i("data-hairline",t.id),i("role",t.focusable?"group":"img"),t.focusable&&i("tabindex","0"),h();const v=o.createElementNS(Rl,"svg");v.setAttribute("viewBox","0 0 400 320"),v.setAttribute("aria-hidden","true"),e.appendChild(v);let x=null;t.focusable&&(x=o.createElement("span"),x.setAttribute("data-hairline-live",""),x.setAttribute("aria-live","polite"),e.appendChild(x));let p=null,m=null;const N={get textContent(){return p},set textContent(P){const j=P??"";if(j===p)return;p=j,x&&x.textContent!==j&&(!m||j===t.rest||e.matches(":hover, :focus-within"))&&(x.textContent=j);const F=u.onRead;if(typeof F=="function")try{F(j)}catch(X){Pl(X)}}};let B=Tc(t.id,u.intensity);m=u.play===!0?Ec(e,t.tour??wc):null;let L;try{L=t.engine({stage:e,svg:v,read:N},B)}catch(P){throw m?.stop(),P}p===null&&(N.textContent=t.rest);let H=!1;const W=()=>{if(!H){H=!0,Ys.get(e)===W&&Ys.delete(e),m?.stop(),m=null,L.destroy(),v.remove(),x?.remove();for(const P of r)e.removeAttribute(P);r.clear()}};return Ys.set(e,W),{update(P){if(H||!P)return;const j=u,F=P;for(const O in F)F[O]===void 0?delete j[O]:j[O]=F[O];const X=Tc(t.id,u.intensity);X!==B&&(B=X,L.set(X));const z=u.play===!0;z!==!!m&&(m?.stop(),m=z?Ec(e,t.tour??wc):null),h()},destroy:W}}var Zs=40,Tn=25,Sc=8,Nc=1.5,Mr=30,ue=.8,$r=3,Fr=1.4,Ll=44,_l=[.45],Fa=30,fn=8,Bl=1.3,Cc=9,Il=2.6,Ks=-46,jc=.6,zl=70,Us=3;function Rc(t,e,s){const u=Math.min(0,(t+e)*Math.SQRT1_2)/2;return[s*(t-u*Math.SQRT1_2),s*(e-u*Math.SQRT1_2)]}function no(t,e){const s=Math.hypot(t,e),u=s?-e/s:0,o=s?t/s:0,c=Math.cos(vt(s)),r=Math.sin(vt(s));return(i,h,v)=>{const x=(u*i+o*h)*(1-c);return[i*c+o*v*r+u*x,h*c-u*v*r+o*x,v*c+(u*h-o*i)*r]}}function Hl(t,e){const s=[0];for(let u=1;u<=t.length;u++){const o=t[u-1],c=t[u%t.length];s.push(s[u-1]+Math.hypot(c.u-o.u,c.v-o.v))}return Array.from({length:e},(u,o)=>{const c=o/e*s[t.length];let r=0;for(;s[r+1]<c;)r++;const i=t[r],h=t[(r+1)%t.length],v=(c-s[r])/(s[r+1]-s[r]||1);return{u:i.u+(h.u-i.u)*v,v:i.v+(h.v-i.v)*v,nu:i.nu,nv:i.nv}})}function ro(t,e,s=!1){const u=t.length,o=[],c=[],r=[];for(let h=0;h<u;h++){const v=t[s?(h+u-1)%u:Math.max(h-1,0)],x=t[s?(h+1)%u:Math.min(h+1,u-1)],p=Math.hypot(x[0]-v[0],x[1]-v[1])||1,m=(x[0]-v[0])/p,N=(x[1]-v[1])/p;r.push([m,N]),o.push([t[h][0]-N*e,t[h][1]+m*e]),c.push([t[h][0]+N*e,t[h][1]-m*e])}if(s)return tt(o)+tt(c.reverse());const i=(h,v,x)=>Array.from({length:7},(p,m)=>{const N=Math.PI*(m+1)/8,B=Math.cos(N)*x,L=Math.sin(N)*x;return[h[0]+e*(-v[1]*B+v[0]*L),h[1]+e*(v[0]*B+v[1]*L)]});return tt([...o,...i(t[u-1],r[u-1],1),...c.reverse(),...i(t[0],r[0],-1)])}var Pc=[[-Tn,0],...Array.from({length:9},(t,e)=>{const s=Math.PI-Math.PI/2*(e/8);return[-Tn+fn+fn*Math.cos(s),Fa-fn+fn*Math.sin(s)]}),...Array.from({length:9},(t,e)=>{const s=Math.PI/2*(1-e/8);return[Tn-fn+fn*Math.cos(s),Fa-fn+fn*Math.sin(s)]}),[Tn,0]],Ol=[[-Cc,Fa],[Cc,Fa]],Lc=t=>{const e=Math.cos(vt(t)),s=Math.sin(vt(t));return u=>[u[1]*s,u[0],Mr+u[1]*e]},Dl=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,Us),r=zr.basket[2],i=Ks+jc*r,h=rt(-Zs,-Tn,Zs,Tn,Sc,14),v=Hl(h,Ll),x=h.map(E=>({...E,u:E.u*ue,v:E.v*ue})),p=rt(-Zs*ue+Fr,-Tn*ue+Fr,Zs*ue-Fr,Tn*ue-Fr,Sc*ue-Fr,14),m=[];for(let E=-1;E<8;E++){const $=no(...Rc(Math.cos(E*Math.PI/4),Math.sin(E*Math.PI/4),E<0?0:r));for(const G of h)m.push($(G.u,G.v,Mr+Nc),$(G.u*ue,G.v*ue,0));for(const G of[Ks,i])for(const J of Pc)m.push($(...Lc(G)(J)))}Ct(c,m,200,166);const N=Mt(c),B=Math.sqrt(1-c.k*c.k),L=[Math.sin(c.az)*B,Math.cos(c.az)*B,c.k],H=I("g",{},e),W=I("path",{class:"nf lo"},H),P=q(H),j=I("path",{class:"nf lo"},H),F=I("path",{class:"sil"},H),X=I("path",{class:"sil"},H),z=I("path",{class:"sil"},H),O=yt(0),k=yt(0),y=yt(Ks,{k:60,c:6,eps:.02});let T=NaN,n=NaN,a=NaN,l=no(0,0);const d=E=>N(...l(...E)),f=E=>{const $=l(E.nu,E.nv,0);return $[0]*L[0]+$[1]*L[1]+$[2]*L[2]>=0};function b(){const E=O.x!==T||k.x!==n;if(E){T=O.x,n=k.x,l=no(T,n),Q(P,{sil:tt(Pt(x.map(G=>d([G.u,G.v,0])).concat(x.map(G=>d([G.u,G.v,$r]))))),crease:jt(Ut(p,f).map(G=>d([G.u,G.v,$r])))});const $=["",""];for(const G of v)$[+f(G)]+=ft(d([G.u*ue-G.nu,G.v*ue-G.nv,$r]),d([G.u,G.v,Mr]));for(const G of _l){const J=$r+(Mr-$r)*G,_=ue+(1-ue)*G;h.forEach((R,Y)=>{const Z=h[(Y+1)%h.length];$[+f(R)]+=ft(d([R.u*_,R.v*_,J]),d([Z.u*_,Z.v*_,J]))})}W.setAttribute("d",$[0]),j.setAttribute("d",$[1]),F.setAttribute("d",ro(h.map(G=>d([G.u,G.v,Mr])),Nc*Us,!0))}if(E||y.x!==a){a=y.x;const $=Lc(a);X.setAttribute("d",ro(Pc.map(G=>d($(G))),Bl*Us)),z.setAttribute("d",ro(Ol.map(G=>d($(G))),Il*Us))}}const M=kt(t,E=>{const $=wt(O,E),G=wt(k,E);y.t=Math.min(Ks+jc*Math.hypot(O.x,k.x),i);const J=wt(y,E);return b(),$||G||J});o.add(M.unregister);let S=u,A=!1,g=0,C=0;function w(){const E=Math.hypot(g,C),$=A&&E?lt(S,0,r)*lt(E/zl,0,1):0;[O.t,k.t]=$?Rc(g/E,C/E,$):[0,0],s.textContent=A?`tilt ${Math.round(Math.hypot(O.t,k.t))}° · 0`:"rest",F.classList.toggle("hi",!A),P.sil.classList.toggle("hi",A),M.wake()}return w(),o.add(Et(t,{move:E=>{A=!0,[g,C]=le(c,E[0],E[1],Mr/2),w()},leave:()=>{A=!1,w()}})),o.add(()=>e.replaceChildren()),{set:E=>{S=E,w()},destroy:o.dispose}},As=30,ja=58,Vs=7,wr=2.6,_c=8,Ra=2.4,Bc=6.6,_i=6,so=36,$l=45,Wr=-15,Xr=7*As+15,Zn=-16,Js=ja+14,ao=wr+Ra+_i;function Fl(){const t=[],e=(r,i,h,v,x)=>(t.push({lane:r,n:i,x:h,y:v,parent:x}),t.length-1),s=[];for(let r=0;r<8;r++)s.push(e("main",r+1,r*As,0,r?s[r-1]:-1));const u=e("feature",1,2.5*As,ja,s[1]),o=e("feature",2,3.5*As,ja,u),c=e("feature",3,4.5*As,ja,o);return{cs:t,m:s,f:[u,o,c]}}var Ic=(t,e,s,u,o,c)=>{const r=[];for(let i=0;i<=c;i++){const h=i/c,v=1-h,x=[v*v*v,3*v*v*h,3*v*h*h,h*h*h],p=[t[0],t[0]+s,e[0]-o,e[0]],m=[t[1],t[1]+u,e[1],e[1]];r.push([x[0]*p[0]+x[1]*p[1]+x[2]*p[2]+x[3]*p[3],x[0]*m[0]+x[1]*m[1]+x[2]*m[2]+x[3]*m[3]])}return r};function Wl(t){const e=[],s=[];return t.forEach((u,o)=>{const c=t[Math.max(0,o-1)],r=t[Math.min(t.length-1,o+1)],i=r[0]-c[0],h=r[1]-c[1],v=Math.hypot(i,h),x=-h/v,p=i/v;e.push([u[0]+x*Vs/2,u[1]+p*Vs/2]),s.push([u[0]-x*Vs/2,u[1]-p*Vs/2])}),e.concat(s.reverse())}var Xl=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=At(45,.5,1.4);Ct(r,[[Wr,Zn,-6],[Xr,Js,-6],[Xr,Zn,-6],[Wr,Js,-6],[Wr,Zn,ao+so],[Xr,Zn,ao+so]],200,166);const i=Mt(r),h=Lt(r),{cs:v,m:x,f:p}=Fl(),m=w=>[v[w].x,v[w].y],N=I("g",{},e),[B,L]=mt(Wr,Zn,Xr,Js,12,2.2);Q(q(N),it(i,h,B,L,-6,0));const H=(w,E)=>Ic(w,E,(E[0]-w[0])*.3,(E[1]-w[1])*.5,(E[0]-w[0])*.45,14),W=(w,E)=>Ic(E,w,(w[0]-E[0])*.3,(w[1]-E[1])*.5,(w[0]-E[0])*.45,14).reverse(),P=[[m(x[0]),m(x[7])],[...H(m(x[1]),m(p[0])),...W(m(p[2]),m(x[6])).slice(1)]];for(const w of P){const E=Wl(w);I("path",{d:tt(E.map($=>i($[0],$[1],0))),class:"lo"},N),I("path",{d:tt(E.map($=>i($[0],$[1],wr))),class:""},N)}const[j,F]=[ht(_c,24),ht(_c-1.4,24)],[X,z]=[ht(Bc,24),ht(Bc-1.2,24)],O=(w,E,$)=>w.map(G=>({...G,u:G.u+E,v:G.v+$})),k=v.map((w,E)=>E).sort((w,E)=>v[w].x+v[w].y-(v[E].x+v[E].y)),y=[];for(const w of k){const E=v[w];Q(q(N),it(i,h,O(j,E.x,E.y),O(F,E.x,E.y),wr,Ra+wr));const $=I("path",{class:"dash nf"},N);y[w]={...E,drop:$,el:q(N),ring:O(X,E.x,E.y),inner:O(z,E.x,E.y),z:Wt(0),drawn:NaN}}const T=w=>{const E=[];for(let $=w,G=0;$>=0;$=y[$].parent,G++)E.push([$,G]);return E},n=p[2],a=2.2,l=.5;function d(w,E){if(E===w.drawn)return;w.drawn=E;const $=Ra+wr+E;Q(w.el,it(i,h,w.ring,w.inner,$,$+_i)),w.drop.setAttribute("d",ft(i(w.x,w.y,Ra+wr),i(w.x,w.y,$)))}const f=kt(t,(w,E)=>{let $=!1;for(const G of y)d(G,Xt(G.z,E)),Qt(G.z,E)||($=!0);return $});o.add(f.unregister);let b=null,M=null,S=new Map;function A(w,E,$,G){const J=performance.now(),_=new Map;for(const[R,Y]of T(w))Y<=E&&_.set(R,[so*$*lt(1-Y/(E+1),0,1),Y]);y.forEach((R,Y)=>{const[Z,V]=_.get(Y)||[0,(S.get(Y)||[0,0])[1]];G?R.z=Wt(Z):ce(R.z,Z,J,V*$l)}),S=_,M!==w&&(M!==null&&y[M].el.sil.classList.remove("hi"),M=w,y[w].el.sil.classList.add("hi")),f.wake()}A(n,a,l,!0);function g(w){w!==b&&(b=w,w===null?(A(n,a,l),s.textContent="rest"):(A(w,c,1),s.textContent=`${y[w].lane} · ${y[w].n}`))}function C(w){const E=le(r,w[0],w[1],ao);if(E[0]<Wr||E[0]>Xr||E[1]<Zn||E[1]>Js)return null;let $=null,G=1/0;return y.forEach((J,_)=>{const R=Math.hypot(J.x-E[0],J.y-E[1]);R<G&&(G=R,$=_)}),$}return o.add(Et(t,{move:w=>g(C(w)),leave:()=>g(null)})),o.add(()=>e.replaceChildren()),{set:w=>{c=w,b!==null&&A(b,c,1)},destroy:o.dispose}},Es=12,Ts=10.4,Ce=9.6,ve=84,rn=4,Qs=2,ee=44,Sn=26,Gr=-10,Nn=ve+10,oo=6,Mn=11,tc=Mn+(Es-1)*Ts+Ce,Kn=tc+6,co=[0,0,.2,0,0,.3,.58,.26,0,0,.13,0],zc=6,Gl=t=>t>=1?0:(1-t)*(1-t),Yl=t=>.375*t.nu+.307*t.nv>0;function Hc(t,e,s,u,o){const c=(r,i)=>r.map(h=>t(h.u,i,h.v));return{sil:tt(Pt(c(e,u).concat(c(e,o)))),crease:s?jt(c(Ut(s,Yl),o)):""}}var Zl=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.5),r=ee+Qs+Sn;Ct(c,[[Gr,0,0],[Nn,0,Kn],[Nn,ee,0],[Gr,0,Kn],[-rn,r,Mn],[-rn,r,tc],[ve+rn,r,Mn]],200,166);const i=Mt(c),h=Lt(c);let v=u,x=null,p=null;const m=I("g",{},e),[N,B]=mt(Gr+3,3,Nn-3,ee-3,3,1.2);Q(q(m),it(i,h,N,B,0,oo));const[L,H]=mt(Gr,0,Nn,ee,3.5,1.6);Q(q(m),it(i,h,L,H,oo,Kn));const W=l=>l.map(d=>i(d.u,ee,d.v)),P=l=>l.map(d=>i(Nn,d.u,d.v));I("path",{d:tt(W(rt(-7.6,Mn-2.2,ve+7.6,tc+2.2,2,4)))+tt(P(rt(5,oo+7,ee-5,Kn-7,3,4))),class:"lo nf"},m);for(let l=0;l<Es;l++)for(const d of[-5.8,ve+5.8])qt(I("circle",{r:.75,class:"dot off"},m),i(d,ee,Mn+l*Ts+Ce/2));const j=[];for(let l=0;l<Es;l++){const d=Mn+l*Ts,f=I("g",{},m);j.push({i:l,z:d,body:rt(0,d+.4,ve,d+Ce-.4,1.6,4),face:rt(-rn,d,ve+rn,d+Ce,2,4),faceIn:rt(-rn+.8,d+.8,ve+rn-.8,d+Ce-.8,1.2,4),chassis:q(f),plate:q(f),marks:I("path",{class:"lo nf"},f),lamp:I("circle",{r:1.1,class:"dot off"},f),sp:yt(Sn*co[l],{eps:.02}),drawn:NaN})}function F(l,d){const f=l.z,b=S=>tt(S.map(A=>i(A.u,d,A.v)));let M=b(rt(-3.4,f+2,-1.2,f+Ce-2,1,3))+b(rt(ve+1.2,f+2,ve+3.4,f+Ce-2,1,3));for(let S=0;S<4;S++)M+=b(rt(4+S*10.6,f+2,13.8+S*10.6,f+Ce-2,1,3));for(let S=0;S<8;S++)M+=ft(i(50+S*2.6,d,f+2.5),i(50+S*2.6,d,f+Ce-2.5));return M}function X(l){const d=l.sp.x;if(d===l.drawn)return;l.drawn=d;const f=ee+d+Qs,b=l.z+Ce/2,M=Hc(i,l.body,null,ee,ee+d+.5);Q(l.chassis,{sil:M.sil,crease:ft(i(ve,ee,b),i(ve,ee+d,b))}),Q(l.plate,Hc(i,l.face,l.faceIn,ee+d,f)),l.marks.setAttribute("d",F(l,f)),qt(l.lamp,i(ve-5,f,b))}function z(l){l!==p&&(p&&(p.plate.sil.classList.remove("hi"),p.lamp.setAttribute("class","dot off")),p=l,p.plate.sil.classList.add("hi"),p.lamp.setAttribute("class","dot"))}const O=kt(t,l=>{let d=!1;for(const f of j)wt(f.sp,l)&&(d=!0),X(f);return d});o.add(O.unregister);const k=i(0,0,0),y=[i(1,0,0),i(0,1,0),i(0,0,1)].map(l=>[l[0]-k[0],l[1]-k[1]]);function T(l,d,f){const[b,M]=[0,1,2].filter($=>$!==d),S=y[b],A=y[M],g=l[0]-k[0]-f*y[d][0],C=l[1]-k[1]-f*y[d][1],w=S[0]*A[1]-S[1]*A[0],E=[0,0,0];return E[d]=f,E[b]=(g*A[1]-C*A[0])/w,E[M]=(S[0]*C-S[1]*g)/w,E}function n(l){for(let M=Es-1;M>=0;M--){const S=T(l,1,ee+Qs+Sn*co[M]),A=(S[2]-Mn-Ce/2)/Ts;if(S[0]>=-rn&&S[0]<=ve+rn&&Math.abs(A-M)<=.5)return A}const d=T(l,1,ee+Qs),f=T(l,0,Nn);let b=null;return d[0]>=Gr-Sn-4&&d[0]<=Nn&&d[2]>=-Sn*.8&&d[2]<=Kn?b=d[2]:f[1]>=0&&f[1]<=ee&&f[2]>=0&&f[2]<=Kn+4&&(b=f[2]),b===null?null:lt((b-Mn-Ce/2)/Ts,0,Es-1)}function a(){if(x===null){for(const l of j)l.sp.t=Sn*co[l.i];z(j[zc]),s.textContent="rest"}else{for(const d of j)d.sp.t=Sn*Gl(Math.max(0,Math.abs(d.i-x)-.5)/v);const l=Math.round(x);z(j[l]),s.textContent="blade "+(l+1)}O.wake()}return z(j[zc]),o.add(Et(t,{move:l=>{x=n(l),a()},leave:()=>{x=null,a()}})),o.add(()=>e.replaceChildren()),{set:l=>{v=l,x!==null&&a()},destroy:o.dispose}},De=26,kr=17,Kl=1.4,Yr=De*De/(4*kr),Pa=46,Xe=31,Ge=5,io=10,Oc=16,Ul=45,Vl=40,Zr=[-20,30],Je=[0,0,Pa],Pe=(t,e,s)=>[t[0]+e[0]*s,t[1]+e[1]*s,t[2]+e[2]*s],Dc=(t,e)=>t[0]*e[0]+t[1]*e[1]+t[2]*e[2];function $c(t,e){const s=vt(t),u=vt(e),o=Math.cos(u),c=Math.sin(u),r=[Math.cos(s),Math.sin(s),0],i=[-Math.sin(s),Math.cos(s),0];return{th:t,h:r,e:i,a:[r[0]*o,r[1]*o,c],u:[-r[0]*c,-r[1]*c,o]}}var Un=(t,e,s,u)=>Pe(Pe(Pe(Je,t.a,e),t.e,s*Math.cos(u)),t.u,s*Math.sin(u)),dn=(t,e,s,u,o)=>Array.from({length:o},(c,r)=>Pe(Pe(t,e,u*Math.cos(2*Math.PI*r/o)),s,u*Math.sin(2*Math.PI*r/o))),Kr=(t,e)=>t.map(s=>({u:s.u*e.h[0]+s.v*e.e[0],v:s.u*e.h[1]+s.v*e.e[1],nu:s.nu*e.h[0]+s.nv*e.e[0],nv:s.nu*e.h[1]+s.nv*e.e[1]})),Jl=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null;const i=At(45,.5,2.5),h=[[-30,-30,0],[30,30,0],[30,-30,0],[-30,30,0]];for(const[Z,V]of[[-25,5],[-25,75],[115,5],[115,75],Zr]){const K=$c(Z,V);h.push(...dn(Je,K.e,K.u,De,16),Un(K,kr-Yr+3,0,0));for(const D of[-1,1])h.push(Pe(Pe(Je,K.e,D*(Xe+Ge/2)),[0,0,1],6))}Ct(i,h,200,166);const v=Mt(i),x=Lt(i),p=Z=>v(Z[0],Z[1],Z[2]),m=v(0,0,0),N=v(1,0,0),B=v(0,1,0),L=v(0,0,1),H=[N[0]-m[0],B[0]-m[0],L[0]-m[0]],W=[N[1]-m[1],B[1]-m[1],L[1]-m[1]],P=[H[1]*W[2]-H[2]*W[1],H[2]*W[0]-H[0]*W[2],H[0]*W[1]-H[1]*W[0]],j=Math.hypot(...P)*Math.sign(P[2]),F=P.map(Z=>Z/j),X=I("g",{},e),[z,O]=mt(-30,-30,30,30,9,2);Q(q(X),it(v,x,z,O,0,5));for(let Z=0;Z<36;Z++){const V=Z/36*2*Math.PI,K=Z%9===0?26.5:25.5;qt(en(X,i,Z%9===0?.75:.5,"dot off"),v(K*Math.cos(V),K*Math.sin(V),5))}Q(q(X),it(v,x,ht(20,48),ht(18.8,48),5,io));const k=en(X,i,.8,"dot m"),y=q(X),T=Xe+Ge/2+1,[n,a]=mt(-9,-T,9,T,4,1.4),l=I("g",{},X),d=[-1,1].map(Z=>{const V=I("g",{},X);return{s:Z,g:V,near:null,ring:I("path",{class:"nf"},V),arm:q(V),trun:I("path",{class:"sil"},V),foot:rt(-8,Z*Xe-Ge/2,8,Z*Xe+Ge/2,2.5,4),top:rt(-5.5,Z*Xe-Ge/2,5.5,Z*Xe+Ge/2,2.5,4),inner:rt(-4.5,Z*Xe-Ge/2+1,4.5,Z*Xe+Ge/2-1,1.5,4)}}),f=I("path",{class:"sil"},l),b=I("path",{class:"nf lo"},l),M=I("path",{class:"nf lo"},l),S=I("path",{class:"nf hi"},l),A=I("path",{class:"nf"},l),g=q(l),C=[0,.35,.6,.78,.9,.97,1];function w(Z,V,K){const D=V*V/(4*kr)-Yr,et=-D/Dc(Z.a,F),nt=[],ct=[];for(let Bt=0;Bt<K;Bt++){nt.push(Un(Z,D,V,2*Math.PI*Bt/K));const Gt=Pe(nt[Bt],F,et);ct.push(De-Math.hypot(Gt[0]-Je[0],Gt[1]-Je[1],Gt[2]-Je[2]))}if(ct.every(Bt=>Bt>0))return tt(nt.map(p));const It=ct.findIndex((Bt,Gt)=>Bt>0&&ct[(Gt+K-1)%K]<=0);if(It<0)return"";const ot=(Bt,Gt)=>p(Pe(nt[Bt],[nt[Gt][0]-nt[Bt][0],nt[Gt][1]-nt[Bt][1],nt[Gt][2]-nt[Bt][2]],ct[Bt]/(ct[Bt]-ct[Gt]))),zt=[ot((It+K-1)%K,It)];let _t=It;for(;ct[_t]>0;)zt.push(p(nt[_t])),_t=(_t+1)%K;return zt.push(ot((_t+K-1)%K,_t)),jt(zt)}let E="";function $(Z,V){const K=Z.toFixed(3)+","+V.toFixed(3);if(K===E)return;E=K;const D=$c(Z,V);qt(k,v(18*D.h[0],18*D.h[1],io)),Q(y,it(v,x,Kr(n,D),Kr(a,D),io,Oc));for(const ot of d){const zt=ot.s*Dc(D.e,F)>0;zt!==ot.near&&(ot.near=zt,zt?(ot.g.append(ot.trun,ot.arm.g,ot.ring),l.after(ot.g)):(ot.g.append(ot.ring,ot.arm.g,ot.trun),l.before(ot.g))),Q(ot.arm,{sil:tt(Pt(pt(v,Kr(ot.foot,D),Oc).concat(pt(v,Kr(ot.top,D),Pa+6)))),crease:jt(pt(v,Ut(Kr(ot.inner,D),x),Pa+6))});const _t=[0,0,1],Bt=Pe(Je,D.e,ot.s*(Xe+Ge/2));ot.ring.setAttribute("d",tt(dn(Bt,D.h,_t,3.4,24).map(p))),ot.trun.setAttribute("d",tt(Pt(dn(Pe(Je,D.e,ot.s*De),D.h,_t,2.2,16).concat(dn(Pe(Je,D.e,ot.s*(Xe-Ge/2)),D.h,_t,2.2,16)).map(p))))}const et=dn(Je,D.e,D.u,De,72),nt=[];for(const ot of C)for(let zt=0;zt<40;zt++)nt.push(Un(D,ot*ot*De*De/(4*kr)-Yr-Kl,ot*De,2*Math.PI*zt/40));f.setAttribute("d",tt(Pt(et.concat(nt).map(p)))),b.setAttribute("d",w(D,.62*De,48)),M.setAttribute("d",w(D,3.2,20)),S.setAttribute("d",tt(et.map(p)));const ct=Un(D,kr-Yr-3,0,0),It=Un(D,kr-Yr+3,0,0);A.setAttribute("d",[90,210,330].map(ot=>ft(p(Un(D,0,De,vt(ot))),p(ct))).join("")),Q(g,{sil:tt(Pt(dn(ct,D.e,D.u,3.6,16).concat(dn(It,D.e,D.u,2.4,16)).map(p))),crease:tt(dn(It,D.e,D.u,1.3,16).map(p))})}const G=yt(Zr[0],{eps:.01}),J=yt(Zr[1],{eps:.01}),_=kt(t,Z=>{const V=wt(G,Z),K=wt(J,Z);return $(G.x,J.x),V||K});o.add(_.unregister);const R=v(0,0,Pa);function Y(){r?(G.t=Ul-c*Math.tanh((r[0]-R[0])/120),J.t=Vl+c/2*Math.tanh((R[1]-r[1])/90),s.textContent=`az ${Math.round((G.t+360)%360)} · el ${Math.round(J.t)}`):(G.t=Zr[0],J.t=Zr[1],s.textContent="rest"),_.wake()}return o.add(Et(t,{move:Z=>{r=Z,Y()},leave:()=>{r=null,Y()}})),o.add(()=>e.replaceChildren()),{set:Z=>{c=Z,r&&Y()},destroy:o.dispose}},Ss=3,ye=54,ie=60,ec=5,$e=3,Ns=26,qs=1.6,ta=2.4,Vn=1.3,Fc=3.2,Wc=2.2,Xc=3.6,Ql=2.6,ql=2.1,Cs=ec+$e,Ur=Cs+Ss*Ns+$e,lo=.7,t1=t=>.375*t.nu+.307*t.nv>0;function e1(t,e,s,u,o){const c=(r,i)=>r.map(h=>t(h.u,i,h.v));return{sil:tt(Pt(c(e,u).concat(c(e,o)))),crease:jt(c(Ut(s,t1),o))}}var n1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=zr.drawer[2],r=At(45,.5,ql),i=ie+c+ta,h=[[0,0,0],[ye,0,0],[0,0,Ur],[ye,0,Ur],[ye,ie,0],[0,i,Cs],[0,i,Ur-$e],[ye,i,Cs]];Ct(r,h.concat(h.map(([A,g,C])=>[ye-A,ie-g,Ur-C])),200,166);const v=Mt(r),x=Lt(r),p=I("g",{},e),[m,N]=mt(3,3,ye-3,ie-3,2.4,1);Q(q(p),it(v,x,m,N,0,ec));const[B,L]=mt(0,0,ye,ie,3,1.4);Q(q(p),it(v,x,B,L,ec,Ur));const H=$e+Fc,W=ye-$e-Fc,P=[H+(W-H)/3,H+2*(W-H)/3],j=(A,g)=>tt(A.map(C=>v(C.u,g,C.v)));I("path",{class:"nf lo",d:Array.from({length:Ss},(A,g)=>{const C=Cs+g*Ns+qs/2;return j(rt(H-.8,C+Wc-.8,W+.8,C+Ns-qs-Xc+1.4,.8,2),ie)}).join("")},p);const F=Array.from({length:Ss},(A,g)=>{const C=Cs+g*Ns+qs/2,w=C+Ns-qs,E=I("g",{},p),$=[0,1,2,3].map(()=>I("path",{class:"lo"},E));return $.push(I("path",{class:"nf sil"},E)),{z0:C,z1:w,parts:$,front:q(E),pull:q(E),drawn:NaN}}),X=A=>rt($e,A.z0,ye-$e,A.z1,1.6,4),z=A=>rt($e+1,A.z0+1,ye-$e-1,A.z1-1,1,4),O=(A,g,C,w,E,$,G)=>w-C<.05?"":it(v,x,rt(A,C,g,w,G,3),null,E,$).sil;function k(A,g){if(g===A.drawn)return;A.drawn=g;const C=A.z0+Wc,w=A.z1-Xc,E=ie+g,$=E+ta,[G,J,_,R,Y]=A.parts;G.setAttribute("d",O(H,W,ie,E,C,C+Vn,.6)),J.setAttribute("d",O(H,H+Vn,ie,E,C+Vn,w,.5)),_.setAttribute("d",P.map(et=>O(et-.5,et+.5,ie,E,C+Vn,w-Ql,.4)).join("")),R.setAttribute("d",O(W-Vn,W,ie,E,C+Vn,w,.5)),Y.setAttribute("d",O(H,W,ie,E,C,w,.8)),Q(A.front,e1(v,X(A),z(A),E,$));const Z=(A.z0+A.z1)/2,V=ye/2,[K,D]=mt(V-9,$,V+9,$+2.6,1.3,.6);Q(A.pull,it(v,x,K,D,Z-1.3,Z+1.3))}const y=F.map(()=>Wt(0)),T=kt(t,(A,g)=>{let C=!1;return F.forEach((w,E)=>{k(w,Xt(y[E],g)),Qt(y[E],g)||(C=!0)}),C});o.add(T.unregister);let n=u,a=-2;function l(A,g){if(A===a)return;a=A;const C=A<0?1:A;y.forEach((w,E)=>ce(w,E===C?A<0?n*lo:n:0,g,0)),F.forEach((w,E)=>w.front.sil.classList.toggle("hi",E===C)),s.textContent=A<0?"rest":`drawer ${Ss-A} · 0`,T.wake()}y[1]=Wt(n*lo),l(-1,-1e9),F.forEach((A,g)=>k(A,Xt(y[g],0)));const d=Math.cos(r.az),f=Math.sin(r.az),b=Math.sqrt(1-r.k*r.k),M=(A,g)=>{const C=(A[0]-r.ox)/(r.S*d)+g*f/d;return[C,((C*f+g*d)*r.k-(A[1]-r.oy)/r.S)/b]};function S(A){for(let C=Ss-1;C>=0;C--){const[w,E]=M(A,ie+ta+(C===1?n*lo:0)),$=F[C];if(w>=$e&&w<=ye-$e&&E>=$.z0&&E<=$.z1)return C}const g=M(A,ie+ta)[1];return F.reduce((C,w,E)=>Math.abs(g-(w.z0+w.z1)/2)<Math.abs(g-(F[C].z0+F[C].z1)/2)?E:C,0)}return o.add(Et(t,{move:A=>l(S(A),performance.now()),leave:()=>l(-1,performance.now())})),o.add(()=>e.replaceChildren()),{set:A=>{n=A;const g=a;a=-2,l(g,performance.now())},destroy:o.dispose}},Gc=32,Kt=34,$n=36,In=25,Cn=2.5,uo=4,je=3*$n+In+7,Be=[5,7,28,27],Re=16.5,Fn=[-8,11,-2,23],Yc=17,Vr=2,r1=ge([[-16,-2],[33,-2],[33,-56],[76,-56],[76,38],[-16,38]],[3,2,4,6,6,6]),s1=ge([[33,-56],[72,-56],[72,-6],[43,-6],[43,34],[33,34]],[4,4,4,3,3,3]),Wn=(Fn[0]+Fn[2])/2,En=(Re-Wn)/2,Ye=[Wn+En,Kt/2,je+3+En+2],Zc=1.5*$n-4,a1=["ground","floor 1","floor 2","floor 3"],o1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.3);Ct(c,[[-16,-56,-8],[76,38,-8],[76,-56,-8],[-16,38,-8],[Ye[0],Ye[1],Ye[2]+En]],200,166);const r=Mt(c),i=Lt(c),h=I("g",{},e),v=(w,E,$,G,J)=>{const[_,R]=mt(...w,E,$);Q(q(h),it(r,i,_,R,G,J))},x=w=>I("path",{class:w},h),p=(w,E,$)=>{const G=w.length,J=w.map((K,D)=>{const et=w[(D+1)%G];return et[1]-K[1]-(et[0]-K[0])>0}),_=K=>{const D=J.findIndex((nt,ct)=>nt===K&&J[(ct+G-1)%G]!==K),et=[];for(let nt=D;J[nt%G]===K;nt++)et.push(w[nt%G]);return et.concat([w[(D+et.length)%G]])},R=(K,D)=>K.map(et=>r(et[0],et[1],D)),Y=_(!1),Z=_(!0),V=I("path",{class:"sil",d:tt(R(Y,$).concat(R(Z,E)))},h);return I("path",{class:"nf lo",d:jt(R(Z,$))},h),V};p(r1,-8,-Cn),v([-14-Vr,-Vr,-14,Kt],1,.5,-Cn,je),v([-14,-Vr,Gc,0],1,.5,-Cn,je),v([Re-1.3,3,Re+1.3,5.4],.8,.5,-Cn,je);const[m,N]=mt(...Fn,1.6,.8),B=q(h),L=x("nf lo"),H=x("nf"),[W,P]=mt(...Be,2.4,1.1),j=q(h),F=x("nf"),X=x("nf lo"),[z,O]=mt(Re-1.7,5.4,Re+1.7,28.6,.8,.5),k=q(h),y=x("nf");v([Re-1.3,28.6,Re+1.3,31],.8,.5,-Cn,je),v([-14-Vr,-Vr,Gc+1,Kt+1],4,1.4,je,je+3),v([Wn+2,4,Re-2,Kt/2-3],2,1,je+3,Ye[2]+4),I("path",{class:"nf",d:ft(r(Re,Kt/2,je+3),r(Re,Kt/2,Ye[2]))+ft(r(Wn,Kt/2,je+3),r(Wn,Kt/2,Ye[2]))},h);const T=(w,E)=>ht(E,28).map($=>r(Ye[0]+$.u,w,Ye[2]+$.v));Q(q(h),{sil:tt(Pt(T(Kt/2-1.8,En).concat(T(Kt/2+1.8,En)))),crease:tt(T(Kt/2+1.8,En-1.4))});const n=x("nf lo");I("path",{class:"nf lo",d:tt(T(Kt/2+1.8,2.6))},h);const a=[];for(let w=0;w<uo;w++){const E=w*$n,$=p(s1,E-Cn,E);if(w<uo-1)for(const J of[-53,-15])v([62,J,68,J+6],1.5,.8,E,E+$n-Cn);const G=[];for(let J=0;J<=w;J++){const _=en(h,c,.8,"dot off");qt(_,r(37,Be[1]-3-J*3,E)),G.push(_)}a.push({sil:$,dots:G})}const l=yt(Zc,{k:u,c:1.8*Math.sqrt(u)});let d=NaN,f=null;function b(w){const E=3*$n-w+6,$=(Be[1]+Be[3])/2;Q(B,it(r,i,m,N,E,E+Yc)),L.setAttribute("d",[5,9,13].map(R=>ft(r(Fn[0]+.6,Fn[3],E+R),r(Fn[2]-.6,Fn[3],E+R))).join("")),H.setAttribute("d",ft(r(Wn,Kt/2,E+Yc),r(Wn,Kt/2,je))),Q(j,it(r,i,W,P,w,w+In)),F.setAttribute("d",tt(rt(Be[1]+3.5,w+1.2,Be[3]-3.5,w+In-4,1.2,4).map(R=>r(Be[2],R.u,R.v)))),X.setAttribute("d",ft(r(Be[2],$,w+1.2),r(Be[2],$,w+In-4))),Q(k,it(r,i,z,O,w+In,w+In+2.4)),y.setAttribute("d",ft(r(Re,Kt/2,w+In+2.4),r(Re,Kt/2,je)));const G=w/En,J=Kt/2+1.8,_=(R,Y)=>r(Ye[0]+Math.cos(R)*Y,J,Ye[2]+Math.sin(R)*Y);n.setAttribute("d",[0,1,2,3,4,5].map(R=>ft(_(G+R*Math.PI/3,2.6),_(G+R*Math.PI/3,En-1.4))).join(""))}const M=kt(t,w=>{const E=wt(l,w);return l.x!==d&&(d=l.x,b(l.x)),E});o.add(M.unregister);const S=r(Be[2],Kt/2,0)[1],A=S-r(Be[2],Kt/2,1)[1],g=w=>lt(Math.floor(((S-w[1])/A+8)/$n),0,uo-1);function C(w){w!==f&&(f=w,l.t=w<0?Zc:w*$n,j.sil.classList.toggle("hi",w<0),a.forEach((E,$)=>{E.sil.classList.toggle("hi",$===w),E.dots.forEach(G=>G.setAttribute("class",$===w?"dot m":"dot off"))}),s.textContent=w<0?"rest":a1[w],M.wake())}return C(-1),o.add(Et(t,{move:w=>C(g(w)),leave:()=>C(-1)})),o.add(()=>e.replaceChildren()),{set:w=>{l.k=w,l.c=1.8*Math.sqrt(w),M.wake()},destroy:o.dispose}},Jr=[{name:"surface",r:[0,0,132,96],rad:7,segs:[[[1.5,12],[130.5,12]]],dots:[[7,6],[13,6],[19,6]]},{name:"sidebar",r:[5,17,38,91],rad:4,segs:[[[10,25],[28,25]],[[10,33],[32,33]],[[10,41],[24,41]],[[10,49],[30,49]],[[10,83],[22,83]]]},{name:"card",r:[48,22,120,62],rad:5,segs:[[[54,30],[92,30]],[[54,38],[112,38]],[[54,46],[104,46]],[[54,54],[80,54]]]},{name:"popover",r:[80,50,126,86],rad:4,segs:[[[86,58],[118,58]],[[86,74],[116,74]],[[86,80],[108,80]]],sel:[83,62,123,70]}],ea=.18,Qr=2.4;function c1(t,e){let s=!1;for(let u=0,o=e.length-1;u<e.length;o=u++){const[c,r]=e[u],[i,h]=e[o];r>t[1]!=h>t[1]&&t[0]<(i-c)*(t[1]-r)/(h-r)+c&&(s=!s)}return s}var i1=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=-1,i=null;const h=yt(ea,{eps:.002}),v=At(45,.5,1.42);Ct(v,[[0,0,0],[132,96,0],[132,0,0],[0,96,0],[0,0,102+Qr],[132,0,102+Qr]],180,166);const x=Mt(v),p=Lt(v),m=I("g",{},e),N=Jr.map((P,j)=>{const[F,X]=mt(...P.r,P.rad,1.3),z=dc(x,F),O=j>0?I("path",{class:"nf dash"},m):null,k=q(m),y=I("path",{class:"nf"},k.g),T=P.sel?rt(...P.sel,2):null,n=P.sel?I("path",{class:"nf sil"},k.g):null,a=P.dots?P.dots.map(()=>en(k.g,v,1.6,"nf")):null;return{ring:F,inner:X,ext:z,guide:O,el:k,marks:y,selRing:T,selEl:n,dotEls:a}}),B=([P,j,F,X],z)=>[x(P,j,z),x(F,j,z),x(F,X,z),x(P,X,z)];function L(P){if(!P)return-1;for(let j=Jr.length-1;j>=0;j--)if(c1(P,B(Jr[j].r,j*c*h.t+Qr)))return j;return-1}function H(P){P!==r&&(r=P,N.forEach((j,F)=>j.el.sil.classList.toggle("hi",F===P)),W.wake())}const W=kt(t,P=>{const j=wt(h,P),F=X=>X*c*h.x;return Jr.forEach((X,z)=>{const O=N[z],k=F(z),y=k+Qr;if(Q(O.el,it(x,p,O.ring,O.inner,k,y)),O.marks.setAttribute("d",X.segs.map(([T,n])=>ft(x(T[0],T[1],y),x(n[0],n[1],y))).join("")),O.selEl&&O.selRing&&O.selEl.setAttribute("d",tt(pt(x,O.selRing,y))),O.dotEls&&X.dots&&X.dots.forEach(([T,n],a)=>qt(O.dotEls[a],x(T,n,y))),O.guide){const T=F(z-1)+Qr;O.guide.setAttribute("d",O.ext.map(n=>ft(x(n.u,n.v,k),x(n.u,n.v,T))).join(""))}}),s.textContent=r>=0?`0${r+1} · ${Jr[r].name} · z ${F(r).toFixed(1)}`:`gap ${(c*h.x).toFixed(1)}`,j});return o.add(W.unregister),o.add(Et(t,{move:P=>{i=P,h.t=ea+(1-ea)*lt((P[0]-60)/280,0,1),H(L(P)),W.wake()},leave:()=>{i=null,h.t=ea,H(-1),W.wake()}})),o.add(()=>e.replaceChildren()),{set:P=>{c=P,i&&H(L(i)),W.wake()},destroy:o.dispose}};function We(t,e,s,u,o,c){return{sil:tt(Pt(pt(t,s,c).concat(pt(t,s,o))))+jt(pt(t,Ut(s,e),c)),crease:u?tt(pt(t,u,c)):""}}function Le(t,e,s,u=1){const o=Math.cos(t.az),c=Math.sin(t.az),r=t.k,i=s+u,h=[],v=(m,N,B,L)=>{const H=o*B+r*c*L,W=r*o*L-c*B,P=Math.hypot(H,W);h.push({u:m*o+N/r*c,v:N/r*o-m*c,nu:H/P,nv:W/P})},x=e.map(m=>{const N=m.nu*o-m.nv*c,B=(m.nu*c+m.nv*o)/r,L=Math.hypot(N,B);return[m.u*o-m.v*c,(m.u*c+m.v*o)*r,N/L,B/L]}),p=x.map(([m,N,B,L])=>[m-i*B,N-i*L,B,L]).filter(([m,N])=>x.every(([B,L,H,W])=>(m-B)*H+(N-L)*W<1e-6-i));return p.forEach(([m,N,B,L],H)=>{const[W,P,j,F]=p[(H+1)%p.length],X=Math.atan2(B*F-L*j,B*j+L*F);if(v(m+u*B,N+u*L,B,L),Math.abs(X)<.1)return;const z=m*B+N*L,O=W*j+P*F,k=B*F-L*j,y=(z*F-O*L)/k,T=(B*O-j*z)/k;for(let n=0,a=Math.ceil(Math.abs(X)/.2);n<=a;n++){const l=Math.atan2(L,B)+X*n/a,d=Math.cos(l),f=Math.sin(l);v(y+u*d,T+u*f,d,f)}}),h}var La=(t,e,s,u,o,c)=>[rt(t,e,s,u,o,8),rt(t+c,e+c,s-c,u-c,Math.max(.3,o-c),8)],nc=12,rc=5.5,l1=2.4,fo=8,u1=13,Kc=55,f1=80,ho=14,na=-9,qr=118,ts=-8,Jn=9*nc+rc+8,Bi=[[0,56,.3,-8,-2,0],[1,40,.75,8,-1.9,0],[1,58,.3,-8,-.8,0],[2,74,1,-8,-1.9,0],[2,48,1,8,1.3,0],[1,34,.3,8,2,0],[1,66,1,-8,-2,0],[2,52,1,-8,-.8,0],[1,30,.45,8,2,0],[0,22,1,-8,1.6,0]],Uc=Bi.length;function d1(t,e,s,u,o,c){const r=Math.sin(vt(u)),i=Math.cos(vt(u));return t.map(h=>({u:e+(h.u-e)*i-(h.v-s)*r+o,v:s+(h.u-e)*r+(h.v-s)*i+c,nu:h.nu*i-h.nv*r,nv:h.nu*r+h.nv*i}))}var h1=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u/ho;const r=At(45,.5,1.9);Ct(r,[[na,ts,-5],[qr,ts,-5],[na,Jn,-5],[qr,Jn,-5],[qr,Jn,9]],200,168);const i=Mt(r),h=Lt(r),v=I("g",{},e),[x,p]=La(na,ts,qr,Jn,8,2.2);Q(q(v),We(i,h,x,p,-5,0)),I("path",{d:`M${i(fo-4,ts+5,0).join(" ")}L${i(fo-4,Jn-5,0).join(" ")}`,class:"dash"},v);const m=Bi.map(([P,j,F,X,z,O],k)=>{const y=fo+P*u1,T=k*nc,n=q(v);return{r:k,yaw:F,dx:X,dy:z,dz:O,px:y,py:T+rc/2,drawn:NaN,ring:rt(y,T,y+j,T+rc,2.2,6),sp:yt(1,{k:100,c:14,eps:.003}),tgt:1,due:-1,el:n,lit:!1,wantLit:!1,litDue:-1}});function N(P){const j=P.sp.x;if(j!==P.drawn){P.drawn=j;const F=j*c,X=P.yaw*ho*F,z=Math.max(0,j)*P.dz*c;Q(P.el,We(i,h,d1(P.ring,P.px,P.py,X,P.dx*F,P.dy*F),null,z,z+l1))}}let B=-1;const L=kt(t,(P,j)=>{let F=!1;for(const X of m)X.due>=0&&(j>=X.due?(X.sp.t=X.tgt,X.due=-1):F=!0),wt(X.sp,P)&&(F=!0),X.litDue>=0&&(j>=X.litDue?(X.litDue=-1,X.lit!==X.wantLit&&(X.lit=X.wantLit,X.el.sil.classList.toggle("hi",X.lit))):F=!0),N(X);return F});o.add(L.unregister);function H(P){if(P===B)return;const j=performance.now(),F=B,X=_e();B=P;for(const z of m){const O=z.r<=P?0:1;if(O!==z.tgt){z.tgt=O;const y=O===1;z.sp.k=y?22:100,z.sp.c=y?9.4:14,z.due=j+(X?0:y?(Uc-1-z.r)*f1:(z.r-(F+1))*Kc)}const k=z.r===P?1:0;z.wantLit=!!k,z.litDue=j+(k&&!X?Math.max(0,z.r-(F+1))*Kc:0)}s.textContent=P<0?"rest":`ln ${P+1}`,L.wake()}const W=P=>{const[j,F]=le(r,P[0],P[1],0);return j<na||j>qr||F<ts||F>Jn?-1:lt(Math.floor(F/nc),-1,Uc-1)};return o.add(Et(t,{move:P=>H(W(P)),leave:()=>H(-1)})),o.add(()=>e.replaceChildren()),m.forEach(P=>N(P)),{set:P=>{c=P/ho,m.forEach(j=>{j.drawn=NaN}),L.wake()},destroy:o.dispose}},hn=52,sn=10,ra=3,fe=18,es=8,Vc=[1,.5,.2,.06,0],p1=70,Jc=40,Qc={k:70,c:14},v1={k:40,c:12.4},qc={k:120,c:21,eps:.002},m1={k:36,c:11.6,eps:.002},Qn=[[2,-2],[-2,1.5],[1.5,2.5],[-2.5,-1],[2,1.5],[-1.5,2],[2.5,-1.5],[-2,-2.5]],t0=[[-1,-1],[0,-1],[1,-1],[1,0],[1,1],[0,1],[-1,1],[-1,0]],g1=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=At(45,.5,1.76),i=3*hn/2-4,h=[[-i,-i,0],[i,-i,0],[i,i,0],[-i,i,0]];t0.forEach(([n,a],l)=>h.push([n*hn+Qn[l][0]-sn,a*hn+Qn[l][1]-sn,24*1.15+ra],[n*hn+Qn[l][0]+sn,a*hn+Qn[l][1]+sn,24*1.15+ra])),Ct(r,h,200,166);const v=Mt(r),x=Lt(r),p=I("g",{},e);let m="";for(let n=-i;n<=i+1;n+=hn/2)m+=ft(v(n,-i,0),v(n,i,0))+ft(v(-i,n,0),v(i,n,0));I("path",{d:m,class:"nf lo"},p);const N=t0.map(([n,a],l)=>{const d=n*hn+Qn[l][0],f=a*hn+Qn[l][1];return{k:l,x:d,y:f,sp:yt(0,{...Qc}),lk:yt(0,{...qc,eps:.002}),hw:Wt(0,220),drawn:NaN,due:0,tgt:0,pend:!1,on:!1}});N.slice().sort((n,a)=>Math.atan2(n.y,n.x)-Math.atan2(a.y,a.x)).forEach((n,a)=>{n.n=a}),N.forEach(n=>{const a=Math.max(Math.abs(n.x),Math.abs(n.y));n.a=fe/a,n.b=1-sn/a;const l=Pt([[-fe,-fe],[fe,-fe],[fe,fe],[-fe,fe]].flatMap(([A,g])=>[v(A,g,0),v(A,g,es)])),d=A=>{let g=0;for(let C=0;C<l.length;C++){const w=l[C],E=l[(C+1)%l.length],$=(E[0]-w[0])*(A[1]-w[1])-(E[1]-w[1])*(A[0]-w[0]);if($*g<0)return!1;$&&(g=$)}return!0};let f=n.a;for(;f<n.b-.05&&d(v(n.x*f,n.y*f,0));)f+=.005;n.a=Math.min(f+.01,n.b-.1);const b=Math.hypot(n.x,n.y)*(n.b-n.a),M=Math.max(2,Math.round(b/6));let S="";for(let A=0;A<M;A++){const g=n.a+(n.b-n.a)*(A+.15)/M,C=n.a+(n.b-n.a)*(A+.65)/M;S+=ft(v(n.x*g,n.y*g,0),v(n.x*C,n.y*C,0))}I("path",{d:S,class:"nf"},p)}),N.forEach(n=>{n.slot=I("path",{class:"nf lo"},p),n.line=I("path",{class:"nf hi"},p)});let L;const H=[...N,null].sort((n,a)=>(n?n.x+n.y:0)-(a?a.x+a.y:0));for(const n of H){if(!n){const a=rt(-fe,-fe,fe,fe,7,8),l=Le(r,a,1.3),d=Le(r,a,2.8),f=rt(-7,-7,7,7,2,8);Q(q(p),We(v,x,a,l,0,es)),I("path",{d:jt(pt(v,d.concat(d.slice(0,1)),es)),class:"nf lo"},p);const b=jt(pt(v,f.concat(f.slice(0,1)),es));L=I("path",{d:b,class:"nf hi"},p);continue}n.ring=rt(n.x-sn,n.y-sn,n.x+sn,n.y+sn,4,8),n.inner=Le(r,n.ring,1.1),n.el=q(p)}const W=Wt(1,240);let P=!0;function j(n,a){const l=Math.max(0,n.sp.x),d=lt(n.lk.x,0,1),f=Xt(n.hw,a);l!==n.drawn&&(n.drawn=l,Q(n.el,We(v,x,n.ring,n.inner,l,l+ra)),n.slot.setAttribute("d",l>.4?tt(pt(v,n.ring,0)):"")),f>.5!==n.on&&(n.on=f>.5,n.el.sil.classList.toggle("hi",n.on));const b=n.a+(n.b-n.a)*d;n.line.setAttribute("d",d>.002?ft(v(n.x*n.a,n.y*n.a,0),v(n.x*b,n.y*b,0)):"")}const F=kt(t,(n,a)=>{let l=!1;for(const f of N)f.pend&&(a>=f.due?(f.pend=!1,Object.assign(f.sp,f.tgt>f.sp.t?Qc:v1),f.sp.t=f.tgt):l=!0),wt(f.sp,n)&&(l=!0),wt(f.lk,n)&&(l=!0),Qt(f.hw,a)||(l=!0),j(f,a);const d=Xt(W,a)>.5;return d!==P&&(P=d,L.setAttribute("class",d?"nf hi":"nf lo")),Qt(W,a)||(l=!0),l});o.add(F.unregister);const X=N.map(n=>v(n.x,n.y,ra)),z=v(0,0,es);let O=-1;function k([n,a]){if(Math.hypot(n-z[0],a-z[1])<30)return-1;let l=-1,d=Jc;if(X.forEach((f,b)=>{const M=Math.hypot(n-f[0],a-f[1]);M<d&&(d=M,l=b)}),l!==O&&O>=0){const f=Math.hypot(n-X[O][0],a-X[O][1]);if(f<Jc&&d>.8*f)return O}return l}const y=(n,a)=>Math.min((n.n-a+8)%8,(a-n.n+8)%8);function T(n){if(n===O)return;const a=performance.now(),l=n>=0?N[n].n:N[O].n;O=n,N.forEach(d=>{const f=y(d,l),b=n<0?0:c*Vc[f],M=b>d.tgt,S=_e()?0:M?f*p1:n<0?(4-f)*25:f===0?60:0;d.tgt=b,d.due=a+S,d.pend=!0;const A=d.k===n;Object.assign(d.lk,A?qc:m1),d.lk.t=A?1:0,d.hw.dur=A?220:260,ce(d.hw,A?1:0,a,A?60:0)}),W.dur=n<0?280:200,ce(W,n<0?1:0,a,n<0?180:0),s.textContent=n<0?"rest":"tile "+(n+1),F.wake()}return o.add(Et(t,{move:n=>T(k(n)),leave:()=>T(-1)})),o.add(()=>e.replaceChildren()),{set:n=>{if(c=n,O>=0){const a=N[O].n;N.forEach(l=>{l.tgt=l.sp.t=c*Vc[y(l,a)],l.pend=!1}),F.wake()}},destroy:o.dispose}},Zt=14,qn=.8,e0=1.8,x1=1,b1=8,ne=6,tr=15,ns=[12.6,11.3,10.4,11,11.8],sa=t=>t.split(" ").map(e=>[1,"key "+e]),n0=[[[1,"esc"],...sa("1 2 3 4 5 6 7 8 9 0 - ="),[2,"bksp"]],[[1.5,"tab"],...sa("q w e r t y u i o p [ ]"),[1.5,"key \\"]],[[1.75,"caps"],...sa("a s d f g h j k l ; '"),[2.25,"enter"]],[[2.25,"shift l"],...sa("z x c v b n m , . /"),[2.75,"shift r"]],[[1.5,"ctrl l"],[1,"super"],[1.5,"alt l"],[7,"space"],[1.5,"alt r"],[1,"fn"],[1.5,"ctrl r"]]],y1=["key f","key j"],M1=t=>lt(1-t,0,1),w1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.42);Ct(c,[[-ne,-ne,-8],[tr*Zt+ne,5*Zt+ne,-8],[tr*Zt+ne,-ne,-8],[-ne,5*Zt+ne,-8],[0,0,ns[0]]],200,166);const r=Mt(c),i=Lt(c);let h=u,v=null,x=null;const p=I("g",{},e),[m,N]=mt(-ne,-ne,tr*Zt+ne,5*Zt+ne,9,2.2);Q(q(p),it(r,i,m,N,-8,0));const B=[];n0.forEach((k,y)=>{let T=0;for(const[n,a]of k){const l=T*Zt,d=(T+n)*Zt,f=y*Zt,b=(y+1)*Zt,M=qn+e0,S=q(p);B.push({r:y,name:a,x0:l,x1:d,y0:f,y1:b,h:ns[y],foot:rt(l+qn,f+qn,d-qn,b-qn,2.6,4),top:rt(l+M,f+M,d-M,b-M,2,4),inner:rt(l+M+.9,f+M+.9,d-M-.9,b-M-.9,1.2,4),el:S,sp:yt(ns[y],{eps:.02}),drawn:NaN,bump:y1.includes(a)?I("path",{class:"lo nf"},S.g):null}),T+=n}});const L=B.find(k=>k.name==="enter");function H(k,y,T,n){for(const a of B){const l=Math.max(a.x0-k[0],0,k[0]-a.x1),d=Math.max(a.y0-k[1],0,k[1]-a.y1),f=a===y?1:M1(Math.hypot(l,d)/(T*Zt));a.sp.t=a.h-b1*n*f}}const W=[(L.x0+L.x1)/2,(L.y0+L.y1)/2];H(W,L,1.6,.6);for(const k of B)k.sp.x=k.sp.t;function P(k){const y=k.sp.x;if(y!==k.drawn&&(k.drawn=y,Q(k.el,{sil:tt(Pt(pt(r,k.foot,x1).concat(pt(r,k.top,y)))),crease:jt(pt(r,Ut(k.inner,i),y))}),k.bump)){const T=(k.x0+k.x1)/2,n=k.y1-qn-e0-2.4;k.bump.setAttribute("d",ft(r(T-2.2,n,y),r(T+2.2,n,y)))}}function j(k){k!==x&&(x?.el.sil.classList.remove("hi"),x=k,k.el.sil.classList.add("hi"))}const F=kt(t,k=>{let y=!1;for(const T of B)wt(T.sp,k)&&(y=!0),P(T);return y});o.add(F.unregister);const X=(k,y)=>B.find(T=>T.r===k&&y>=T.x0&&y<T.x1);function z(k){for(let n=n0.length-1;n>=0;n--){const a=le(c,k[0],k[1],ns[n]);if(!(a[1]<n*Zt||a[1]>=(n+1)*Zt||a[0]<0||a[0]>=tr*Zt))return{at:a,key:X(n,a[0])}}const y=le(c,k[0],k[1],ns[2]);if(y[0]<-ne||y[0]>tr*Zt+ne||y[1]<-ne||y[1]>5*Zt+ne)return null;const T=[lt(y[0],0,tr*Zt-.01),lt(y[1],0,5*Zt-.01)];return{at:T,key:X(Math.floor(T[1]/Zt),T[0])}}function O(){v?(H(v.at,v.key,h,1),j(v.key),s.textContent=v.key.name):(H(W,L,1.6,.6),j(L),s.textContent="rest"),F.wake()}return j(L),o.add(Et(t,{move:k=>{v=z(k),O()},leave:()=>{v=null,O()}})),o.add(()=>e.replaceChildren()),{set:k=>{h=k,v&&O()},destroy:o.dispose}},re=150,Ie=106,sc=4,wn=2.4,Ii=sc+wn/2,r0=7,s0=1.1,po=15,aa=100,er=4.2,oa=7.5,$t=8.6,ac=6,a0=t=>{const e=Math.cos(vt(t)),s=Math.sin(vt(t));return(u,o,c)=>[u,o*e-c*s,Ii+o*s+c*e]};function k1(){const t=[],e=(re-14.5*$t)/2,s=(i,h,v)=>{let x=e;for(const p of v)t.push([x,i,x+p*$t,i+h]),x+=p*$t},u=i=>Array(i).fill(1);s(ac,$t*.6,Array(14).fill(14.5/14));let o=ac+$t*.6;for(const i of[[...u(13),1.5],[1.5,...u(13)],[1.75,...u(11),1.75],[2.25,...u(10),2.25]])s(o,$t,i),o+=$t;s(o,$t,[1,1,1,1.25,5,1.25,1]);const c=e+11.5*$t,r=$t/2;return t.push([c,o+r,c+$t,o+$t],[c+$t,o,c+2*$t,o+r],[c+$t,o+r,c+2*$t,o+$t],[c+2*$t,o+r,c+3*$t,o+$t]),{out:t,y1:o+$t,x0:e}}var A1=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null;const i=At(45,.5,1.3),h=[[0,0,0],[re,0,0],[0,Ie,0],[re,Ie,0]];for(const D of[po,90,aa,125])for(const et of[0,re])for(const nt of[0,Ie])for(const ct of[-wn/2,wn/2])h.push(a0(D)(et,nt,ct));Ct(i,h,200,166);const v=Mt(i),x=Lt(i),p=v(0,0,0),m=v(1,0,0),N=v(0,1,0),B=v(0,0,1),L=[m[0]-p[0],N[0]-p[0],B[0]-p[0]],H=[m[1]-p[1],N[1]-p[1],B[1]-p[1]];let W=[L[1]*H[2]-L[2]*H[1],L[2]*H[0]-L[0]*H[2],L[0]*H[1]-L[1]*H[0]];W[2]<0&&(W=W.map(D=>-D));const P=(D,et)=>D[0]*et[0]+D[1]*et[1]+D[2]*et[2],j=I("g",{},e),[F,X]=mt(0,0,re,Ie,r0,s0);Q(q(j),it(v,x,F,X,0,sc));const z=D=>tt(D.map(et=>v(et.u,et.v,sc))),O=k1();I("path",{class:"nf lo",d:O.out.map(([D,et,nt,ct])=>z(rt(D+.5,et+.5,nt-.5,ct-.5,1.1,2))).join("")},j),I("path",{class:"nf",d:z(rt(O.x0-1.6,ac-1.6,re-O.x0+1.6,O.y1+1.6,3,4))},j),I("path",{class:"nf",d:z(rt(re/2-35,Ie-45,re/2+35,Ie-5,3.2,4))},j);const k=I("g",{},j),y=q(k),T=I("g",{},k);y.sil.classList.add("hi");const[n,a]=mt(0,0,re,Ie,r0,s0),l=I("path",{class:"nf"},T),d=I("path",{class:"nf lo"},T),f=I("path",{class:"nf lo"},T),b=I("path",{},T),M=I("path",{class:"nf lo"},T),S=I("circle",{r:.8,class:"dot off"},T),A=[0,1,2].map(()=>I("circle",{r:.8,class:"dot off"},T)),g=Ie-er,C=30,w=104,E=oa+16,$=g-12;let G=null,J=NaN;function _(D){if(D===J)return;J=D;const et=a0(D),nt=Math.cos(vt(D)),ct=Math.sin(vt(D)),It=(dt,gt,Rt)=>v(...et(dt,gt,Rt)),ot=(dt,gt)=>It(dt,gt,-wn/2),zt=(dt,gt)=>dt.map(Rt=>It(Rt.u,Rt.v,gt)),_t=P([0,ct,-nt],W)>0,Bt=_t?-wn/2:wn/2,Gt=dt=>P([dt.nu,dt.nv*nt,dt.nv*ct],W)>0;Q(y,{sil:tt(Pt(zt(n,-wn/2).concat(zt(n,wn/2)))),crease:jt(zt(Ut(a,Gt),Bt))}),_t!==G&&(G=_t,_t?y.g.after(T):y.g.before(T));const at=dt=>tt(dt.map(gt=>ot(gt.u,gt.v)));l.setAttribute("d",at(rt(er,oa,re-er,g,3,4))),d.setAttribute("d",ft(ot(er+1.5,g-4),ot(re-er-1.5,g-4))),f.setAttribute("d",at(rt(re/2-28,oa+2.5,re/2+28,oa+8.5,2.2,4))),b.setAttribute("d",at(rt(C,E,w,$,2.6,4))),M.setAttribute("d",ft(ot(C,$-6),ot(w,$-6))+ft(ot(C+20,E),ot(C+20,$-6))),qt(S,ot(re/2,Ie-er/2)),A.forEach((dt,gt)=>qt(dt,ot(C+4+gt*3.4,$-3)))}const R=yt(aa,{eps:.05}),Y=kt(t,D=>{const et=wt(R,D);return _(R.x),et});o.add(Y.unregister),_(aa);const Z=v(re/2,0,Ii+Ie)[1]+12,V=v(re/2,Ie,0)[1]-12;function K(){r===null?(R.t=Math.min(aa,c),s.textContent="rest"):(R.t=bt(c,po,lt((r-Z)/(V-Z),0,1)),s.textContent=R.t<=po+.5?"shut":R.t>=c-.5?"open":`lid ${Math.round(R.t)}°`),Y.wake()}return o.add(Et(t,{move:D=>{r=D[1],K()},leave:()=>{r=null,K()}})),o.add(()=>e.replaceChildren()),{set:D=>{c=D,K()},destroy:o.dispose}},js=6,Rs=2,Wa=24,Xa=38,Ga=1.2,Qe=3,ze=6,Vt=26,jn=1.4,o0=23,nr=js*Wa+2*Qe,rs=Rs*Xa+2*Qe,Fe=Wa-2*Ga,nn=Xa-2*Ga,vo=5,c0=22,i0=120,ca=rt(0,0,Fe,nn,1.8,4),l0=[0,1,2].map(t=>rt(4,nn-6.6-t*3.2,Fe-4,nn-5.2-t*3.2,.7,2)),E1=rt(Fe/2-4.5,nn-19,Fe/2+4.5,nn-15,1,3),T1=rt(Fe-5.6,nn/2-7,Fe-2.8,nn/2+2,1.2,3),S1=rt(2.6,2.6,Fe-2.6,nn-2.6,1.4,3),u0=t=>t.reduce((e,s,u)=>{const o=t[(u+1)%t.length];return e+s[0]*o[1]-o[0]*s[1]},0),N1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.6),r=[Math.cos(vt(i0))*Fe,Math.sin(vt(i0))*Fe];Ct(c,[[-4,-4,0],[nr+4,Vt+4,0],[nr+4,-4,0],[-4,Vt+4,0],[0,0,ze+rs],[nr,0,ze+rs],[Qe+r[0],Vt+r[1],ze+Qe],[Qe+r[0],Vt+r[1],ze+rs-Qe]],200,166);const i=Mt(c),h=Lt(c);let v=u,x=-1;function p(k,y){const T=i(0,y,0),n=i(1,y,0),a=i(0,y,1),l=[n[0]-T[0],n[1]-T[1]],d=[a[0]-T[0],a[1]-T[1]],f=l[0]*d[1]-l[1]*d[0],b=k[0]-T[0],M=k[1]-T[1];return[(b*d[1]-M*d[0])/f,(l[0]*M-l[1]*b)/f]}function m(k,y,T){const n=i(...k),a=i(...y),l=p(n,Vt),d=p(a,Vt),f=.9;let b=0,M=1;const S=[[l[0]-d[0],l[0]-(T.x0+f)],[d[0]-l[0],T.x0+Fe-f-l[0]],[l[1]-d[1],l[1]-(T.z0+f)],[d[1]-l[1],T.z0+nn-f-l[1]]];for(const[g,C]of S){if(g===0){if(C<0)return"";continue}const w=C/g;g<0?b=Math.max(b,w):M=Math.min(M,w)}if(M-b<.01)return"";const A=g=>[n[0]+(a[0]-n[0])*g,n[1]+(a[1]-n[1])*g];return ft(A(b),A(M))}const N=I("g",{},e),[B,L]=mt(-4,-4,nr+4,Vt+4,5,1.6);Q(q(N),it(i,h,B,L,0,ze));const[H,W]=mt(0,0,nr,Vt,3,1.4);Q(q(N),it(i,h,H,W,ze,ze+rs));const P=[];for(let k=0;k<js;k++)for(let y=0;y<Rs;y++){const T=Qe+k*Wa+Ga,n=ze+Qe+y*Xa+Ga,a=I("g",{},N);I("path",{d:tt(ca.map(M=>i(T+M.u,Vt,n+M.v))),class:""},a);const l={c:k,r:y,n:(Rs-1-y)*js+k+1,x0:T,z0:n,drawn:NaN,sign0:0,tw:Wt(0)},d=l.z0+nn-9.5,f=l.x0+Fe,b=[m([l.x0,Vt,l.z0],[l.x0,Vt-o0,l.z0],l),m([l.x0,Vt-1.6,d],[f,Vt-1.6,d],l),m([l.x0,Vt-1.6,d],[l.x0,Vt-o0,d],l)].join("");I("path",{d:b,class:"nf lo"},a),l.plate=I("path",{class:"lo"},a),l.face=I("path",{class:"sil"},a),l.marks=I("path",{class:"nf lo"},a),l.cup=I("path",{class:"nf"},a),P.push(l)}const j=k=>P.find(y=>y.n===k);function F(k,y){if(y===k.drawn)return;k.drawn=y;const T=Math.cos(vt(y)),n=Math.sin(vt(y)),a=S=>A=>i(k.x0+A.u*T-S*n,Vt+jn/2+A.u*n+S*T,k.z0+A.v),l=ca.map(a(jn/2)),d=ca.map(a(-jn/2)),f=u0(l)*k.sign0>0,b=f?jn/2:-jn/2;k.plate.setAttribute("d",tt(Pt(l.concat(d)))),k.face.setAttribute("d",tt(f?l:d));const M=f?[...l0,E1]:[...l0,S1];k.marks.setAttribute("d",M.map(S=>tt(S.map(a(b)))).join("")),k.cup.setAttribute("d",f?tt(T1.map(a(b))):"")}for(const k of P)k.sign0=Math.sign(u0(ca.map(y=>i(k.x0+y.u,Vt+jn,k.z0+y.v))));const X=kt(t,(k,y)=>{let T=!1;for(const n of P)F(n,Xt(n.tw,y)),Qt(n.tw,y)||(T=!0);return T});o.add(X.unregister);function z(k){const[y,T]=p(k,Vt+jn);if(y<0||y>nr||T<ze||T>ze+rs)return-1;const n=lt(Math.floor((y-Qe)/Wa),0,js-1),a=lt(Math.floor((T-ze-Qe)/Xa),0,Rs-1);return(Rs-1-a)*js+n+1}function O(k,y){if(k===x&&!y)return;x=k;const T=performance.now(),n=k>0?k:vo;for(const a of P)ce(a.tw,a.n===k?v:k<=0&&a.n===vo?c0:0,T,0),a.face.classList.toggle("hi",a.n===n),a.cup.classList.toggle("hi",a.n===n);s.textContent=k>0?"locker "+String(k).padStart(2,"0"):"rest",X.wake()}return j(vo).tw=Wt(c0),O(0,!0),o.add(Et(t,{move:k=>O(Math.max(0,z(k))),leave:()=>O(0)})),o.add(()=>e.replaceChildren()),{set:k=>{v=k,x>0&&O(x,!0)},destroy:o.dispose}},Rn=124,ss=92,mo=7,ia=13,f0=11,Ps=26,d0=12,Ls=27,go=20,C1=1.2,xo=Ls-1.4,j1=[45,165,285],h0=35,R1=1.8,rr=[Ps+9,46],P1=2.1,L1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,P1),r=go+C1,i=j1.map(g=>[Math.cos(g*Math.PI/180),Math.sin(g*Math.PI/180)]),[h,v]=le(c,...Mt(c)(0,0,0),r),x=[[0,0,-2.4],[Rn,0,-2.4],[0,ss,-2.4],[Rn,ss,-2.4]];for(const g of ht(Ls,16))x.push([rr[0]+h+g.u,rr[1]+v+g.v,r]);Ct(c,x,200,166);const p=Mt(c),m=Lt(c),N=I("g",{},e),[B,L]=mt(0,0,Rn,ss,6,1.4);Q(q(N),it(p,m,B,L,-2.4,0));const H=g=>ia+g*f0,W=[[[Ps,ia-7],[Ps,H(mo-1)+7]],...Array.from({length:mo},(g,C)=>[[Ps,H(C)],[Rn-d0,H(C)]])];I("path",{class:"nf lo",d:W.map(([g,C])=>ft(p(g[0],g[1],0),p(C[0],C[1],0))).join("")},N);const P=I("path",{class:"nf"},N),j=q(N),F=I("path",{class:"nf lo"},N),X=I("path",{class:"nf sil"},N),z=ht(xo*.72,64).slice(26,36),O=ht(Ls,64),k=ht(xo,64),y=rt(0,0,Rn,ss,6,12),T=ht(R1,12),n=(g,C)=>g>=0&&g<=Rn&&C>=0&&C<=ss?0:-2.4,a=yt(rr[0]),l=yt(rr[1]),d=yt(u);let f=NaN,b=NaN,M=NaN;function S(){if(a.x===f&&l.x===b&&d.x===M)return;const g=a.x!==f||l.x!==b;f=a.x,b=l.x,M=d.x;const C=f+h,w=b+v;if(g){const J=(_,R)=>p(C+_.u,w+_.v,R);P.setAttribute("d",i.map(([_,R])=>{const Y=C+_*h0,Z=w+R*h0,V=n(Y,Z);return ft(p(Y,Z,V),p(C+_*(Ls-1),w+R*(Ls-1),go))+tt(T.map(K=>p(Y+K.u,Z+K.v,V)))}).join("")),Q(j,{sil:tt(Pt(O.map(_=>J(_,go)).concat(O.map(_=>J(_,r))))),crease:tt(k.map(_=>J(_,r)))}),F.setAttribute("d",jt(z.map(_=>J(_,r))))}const E=xo-1,$=(J,_)=>{const R=(J[0]-f)*M,Y=(J[1]-b)*M,Z=(_[0]-J[0])*M,V=(_[1]-J[1])*M,K=Z*Z+V*V,D=R*Z+Y*V,et=D*D-K*(R*R+Y*Y-E*E);if(et<=0)return"";const nt=Math.max(0,(-D-Math.sqrt(et))/K),ct=Math.min(1,(-D+Math.sqrt(et))/K);return ct>nt?ft(p(C+R+Z*nt,w+Y+V*nt,r),p(C+R+Z*ct,w+Y+V*ct,r)):""};let G=y.map((J,_)=>$([J.u,J.v],[y[(_+1)%y.length].u,y[(_+1)%y.length].v])).join("");for(const[J,_]of W)G+=$(J,_);X.setAttribute("d",G)}const A=kt(t,g=>{const C=wt(a,g),w=wt(l,g),E=wt(d,g);return S(),C||w||E});return o.add(A.unregister),j.sil.classList.add("hi"),s.textContent="rest",S(),o.add(Et(t,{move:g=>{const[C,w]=le(c,g[0],g[1],0);a.t=lt(C,Ps,Rn-d0),l.t=lt(w,ia,H(mo-1)),s.textContent=`row ${Math.round((l.t-ia)/f0)+1} · 0`,A.wake()},leave:()=>{a.t=rr[0],l.t=rr[1],s.textContent="rest",A.wake()}})),o.add(()=>e.replaceChildren()),{set:g=>{d.t=g,A.wake()},destroy:o.dispose}},pn=56,zn=20,Me=44,we=1.6,bo=4.2,la=30,yo=13,p0=zn/2,_1=13,v0=7,m0=11,as=.42,B1=26,I1=56,g0=200,x0=2.75,z1=100,H1=Math.SQRT1_2*Math.sqrt(3),b0=t=>t*t*(3-2*t);function O1(t){return t.map((e,s)=>{const u=t[(s+t.length-1)%t.length],o=t[(s+1)%t.length],c=o[0]-u[0],r=o[1]-u[1],i=Math.hypot(c,r)||1;return{u:e[0],v:e[1],nu:r/i,nv:-c/i}})}function D1(t,e,s,u){const o=e[0]-t[0],c=e[1]-t[1],r=u[0]-s[0],i=u[1]-s[1],h=s[0]-t[0],v=s[1]-t[1],x=o*i-c*r;if(!x)return null;const p=(h*i-v*r)/x,m=(h*c-v*o)/x;return p>0&&p<1&&m>0&&m<1?[t[0]+p*o,t[1]+p*c]:null}function y0(t){for(let e=0;e<t.length-3;e++)for(let s=t.length-2;s>e+1;s--){const u=D1(t[e],t[e+1],t[s],t[s+1]);if(u){t.splice(e+1,s-e,u);break}}return t}function $1(t,e){const s=t.length,u=[],o=[];for(let r=0;r<s;r++){const i=t[Math.max(r-1,0)],h=t[r],v=t[Math.min(r+1,s-1)],x=[h[0]-i[0],h[1]-i[1]],p=[v[0]-h[0],v[1]-h[1]],m=Math.hypot(x[0],x[1])||1,N=Math.hypot(p[0],p[1])||1;let B=x[0]/m+p[0]/N,L=x[1]/m+p[1]/N;const H=Math.hypot(B,L)||1;B/=H,L/=H,u.push([h[0]-L*e,h[1]+B*e]),o.push([h[0]+L*e,h[1]-B*e])}const c=r=>{const i=[];for(let h=7;h>=1;h--){const v=Math.PI*h/8;i.push([r[0]+e*Math.cos(v),r[1]+e*.5*Math.sin(v)])}return i};return tt([...y0(u),...c(t[s-1]),...y0(o).reverse(),...c(t[0])])}var F1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=yt(u);let r=!1;const i=(S,A,g)=>{const C=[Math.cos(vt(g)),-Math.sin(vt(g))],w=Me+_1+A,E=la/2,$=(J,_)=>S(yo+C[0]*J,p0+C[1]*J,_),G=[$(la,Math.max(Me-v0+A,Me)),$(la,w)];for(let J=1;J<28;J++){const _=Math.PI*J/28;G.push($(E+E*Math.cos(_),w+E*Math.sin(_)))}return G.push($(0,w),$(0,Me)),G},h=At(45,.5,x0),v=(S,A,g)=>[S,A,g],x=[[0,0,0],[pn,0,0],[0,zn,0],[pn,zn,0],[0,0,Me]];for(const S of[0,40,80,z1])for(const A of i(v,m0,S))x.push([A[0],A[1],A[2]+bo]);Ct(h,x,200,170);const p=Mt(h),m=bo*x0,N=ge([[0,0],[pn,0],[pn,Me],[0,Me]],[14,14,7,7],12),B=O1(ge([[we,we],[pn-we,we],[pn-we,Me-we],[we,Me-we]],[14-we,14-we,7-we,7-we],12)),L=I("g",{},e);Q(q(L),{sil:tt(Pt(N.map(S=>p(S[0],0,S[1])).concat(N.map(S=>p(S[0],zn,S[1]))))),crease:jt(Ut(B,S=>S.nu*H1+S.nv>0).map(S=>p(S.u,zn,S.v)))});const H=pn/2,W=Me*.56,P=4.4,j=1.8,F=W-12,X=Math.asin(j/P),z=[];for(let S=0;S<=20;S++){const A=-Math.PI/2+X+(2*Math.PI-2*X)*S/20;z.push([H+P*Math.cos(A),W+P*Math.sin(A)])}for(let S=0;S<=6;S++){const A=Math.PI+Math.PI*S/6;z.push([H+j*Math.cos(A),F+j*Math.sin(A)])}I("path",{d:tt(z.map(S=>p(S[0],zn,S[1]))),class:"nf"},L);const O=ht(bo+1.3,20);for(const S of[yo,yo+la])I("path",{d:tt(O.map(A=>p(S+A.u,p0+A.v,Me))),class:"nf lo"},L);const k=I("path",{class:"sil"},L),y=(S,A)=>[m0*b0(lt(S/as,0,1)),A*b0(lt((S-as)/(1-as),0,1))],T=()=>as+(1-as)*(.5-Math.sin(Math.asin(1-2*B1/c.t)/3)),n=yt(T(),{eps:.002});let a=NaN,l=NaN;function d(){if(n.x===a&&c.x===l)return;a=n.x,l=c.x;const[S,A]=y(n.x,c.x);k.setAttribute("d",$1(i(p,S,A),m))}const f=kt(t,S=>{const A=wt(n,S),g=wt(c,S);return d(),A||g});o.add(f.unregister);const b=p(pn/2,zn/2,Me/2);function M(){const[S,A]=y(n.t,c.t),g=r&&S<v0;s.textContent=r?g?"locked":A<1?"open":Math.round(A)+"°":"rest",k.classList.toggle("hi",!g),f.wake()}return M(),o.add(Et(t,{move:S=>{r=!0,n.t=lt((g0-Math.hypot(S[0]-b[0],S[1]-b[1]))/(g0-I1),0,1),M()},leave:()=>{r=!1,n.t=T(),M()}})),o.add(()=>e.replaceChildren()),{set:S=>{c.t=S,r||(n.t=T()),M()},destroy:o.dispose}},_a=12,Ba=15,zi=8,_s=15,W1=5,sr=44,Hn=_s+W1,vn=2*Hn+_a*Ba+zi,os=30,cs=12.5,Pn=5,se=4.2,ua=1.9,Mo=1.7,X1=2.4,fa=4.3,ar=3.5,G1=4,Y1=5,Z1=1.8,K1=6,wo=10,is=7,ko=9,U1=[2,10,18],da=7,Ao=2.5,V1=t=>[t*7%5-2,t*11%7-3],J1=(t,e)=>t===0?0:lt(1-(t-1)/e,0,1);function Q1(t,e){const s=t.length,u=[],o=[],c=[];for(let i=0;i<s;i++){const h=t[Math.max(0,i-1)],v=t[Math.min(s-1,i+1)],x=Math.hypot(v[0]-h[0],v[1]-h[1])||1,p=[(v[0]-h[0])/x,(v[1]-h[1])/x];c.push(p),u.push([t[i][0]-p[1]*e,t[i][1]+p[0]*e]),o.push([t[i][0]+p[1]*e,t[i][1]-p[0]*e])}const r=(i,h,v)=>{const x=[];for(let p=1;p<6;p++){const m=p/6*Math.PI,N=Math.cos(m),B=Math.sin(m);x.push([i[0]+v*e*(-h[1]*N+h[0]*B),i[1]+v*e*(h[0]*N+h[1]*B)])}return x};return tt([...u,...r(t[s-1],c[s-1],1),...o.reverse(),...r(t[0],c[0],-1)])}var q1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=1.5,r=At(45,.5,c),i=os+27+ko+is,h=cs-26-is;Ct(r,[[0,-18,sr],[vn,-18,sr],[0,0,0],[vn,0,0],[Hn,34,i],[vn-Hn,34,h],[Hn,34,h]],200,166);const v=Mt(r),x=Lt(r);let p=u,m=-1,N=null;const B=(_,R,Y,Z)=>_.map(V=>v(R+V.u,Y,Z+V.v)),L=_=>.612*_.nu+.5*_.nv>0,H=(_,R,Y,Z,V,K)=>({sil:tt(Pt(B(_,Y,V,Z).concat(B(_,Y,K,Z)))),crease:jt(B(Ut(R,L),Y,K,Z))}),W=I("g",{},e),[P,j]=mt(_s+2,-18,vn-_s-2,-2.6,3,1.6);Q(q(W),it(v,x,P,j,3,sr-3)),Q(q(W),H(rt(0,0,vn,sr,3,4),rt(.7,.7,vn-.7,sr-.7,2.3,4),0,0,-2.6,0));const F=_=>_.map(R=>[R.u,R.v]),X=(_,R)=>I("path",{d:tt(_.map(([Y,Z])=>v(Y,0,Z))),class:R},W);for(const _ of[_s/2+1,vn-_s/2-1])for(const R of[8,sr-8])X(F(rt(_-3.4,R-1.5,_+3.4,R+1.5,1.5,3)),"nf");const z=[];for(let _=0;_<2*_a;_++){const R=_<_a?0:1,Y=_%_a;z.push({p:_,r:R,c:Y,cx:Hn+(Y+.5)*Ba+(Y>=6?zi:0),cz:R?cs:os,full:!U1.includes(_)})}for(const _ of[0,6]){const R=z[_].cx-Ba/2+1,Y=z[_+5].cx+Ba/2-1;X(F(rt(R,cs-se-3,Y,os+se+Mo+2.6,2.4,4)),"lo nf")}const O=ge([[-Pn,-se],[Pn,-se],[Pn,se],[ua,se],[ua,se+Mo],[-ua,se+Mo],[-ua,se],[-Pn,se]],[1,1,1,.4,.5,.5,.4,1]);for(const _ of z){const{cx:R,cz:Y}=_,Z=X1;_.jack=X(O.map(([V,K])=>[R+V,Y+K]),"nf"),I("path",{d:jt([[-Pn+Z,se],[-Pn+Z,-se+.816*Z],[Pn,-se+.816*Z]].map(([V,K])=>v(R+V,0,Y+K))),class:"lo nf"},W)}const k=I("g",{},W),y=I("g",{},W),T=rt(-fa,-ar,fa,ar,1.2,3),n=rt(-fa+.7,-ar+.7,fa-.7,ar-.7,.6,3),a=rt(-3.7,-3,3.7,3,1.6,3),l=rt(-2.4,-2.4,2.4,2.4,2.3,3),d=z.slice().sort((_,R)=>_.c-R.c||_.r-R.r);for(const _ of d)_.pull=yt(0,{eps:.002}),_.lx=yt(0,{eps:.01}),_.lz=yt(0,{eps:.01}),_.full&&(_.plug=q(k),_.latch=I("path",{class:"lo nf"},_.plug.g),_.boot=q(k),_.cable=I("path",{class:"sil"},y),_.drawn="");function f(_){const R=_.pull.x,Y=_.lx.x,Z=_.lz.x,V=[R,Y,Z].map(te=>te.toFixed(3)).join();if(V===_.drawn)return;_.drawn=V;const{cx:K,cz:D,r:et,p:nt}=_,ct=G1+K1*R,It=ct+Y1,ot=et?-1:1,[zt,_t]=V1(nt);Q(_.plug,H(T,n,K,D,0,ct)),_.latch.setAttribute("d",ft(v(K,.6,D+ar),v(K,ct-.8,D+ar))),Q(_.boot,{sil:tt(Pt(B(a,K,ct,D).concat(B(l,K,It,D)))),crease:""});const Bt=et?6:2,Gt=et?2:3,at=[K,It-1.5,D],dt=et?[K+.5,It+Bt+4*R,D]:[K,It+1+2*R,D+6],gt=[K+Gt+zt+Y,It+Bt+1+ko*R,D+ot*(24+_t)+Z+ko*R],Rt=[gt[0]-.6,gt[1]-1,gt[2]-ot*12],Yt=[];for(let te=0;te<=16;te++){const xt=te/16,xe=(1-xt)**3,un=3*(1-xt)**2*xt,Hr=3*(1-xt)*xt*xt,Ki=xt**3;Yt.push(v(...[0,1,2].map(Xs=>xe*at[Xs]+un*dt[Xs]+Hr*Rt[Xs]+Ki*gt[Xs])))}_.cable.setAttribute("d",Q1(Yt,Z1*c))}function b(_,R,Y){const Z=z[_];for(const V of z){const K=V.c-Z.c,D=V.r-Z.r,et=Math.hypot(K,D),nt=J1(et,R)*Y;V.pull.t=V===Z?Y:0,V.lx.t=et?lt(K/et*nt*wo,-wo,wo):0,V.lz.t=et?lt(-D/et*nt*is,-is,is):0}}function M(_){if(_===N)return;const R=(Y,Z)=>(Y.full?[Y.plug.sil,Y.boot.sil,Y.cable]:[Y.jack]).forEach(V=>V.classList.toggle("hi",Z));N&&R(N,!1),N=_,R(_,!0)}b(da,1.6,.55);for(const _ of z)for(const R of[_.pull,_.lx,_.lz])R.x=R.t;M(z[da]),s.textContent="rest";const S=kt(t,_=>{let R=!1;for(const Y of z){for(const Z of[Y.pull,Y.lx,Y.lz])wt(Z,_)&&(R=!0);Y.full&&f(Y)}return R});o.add(S.unregister);const A=v(0,Ao,0),g=v(1,Ao,0),C=v(0,Ao,1),w=[g[0]-A[0],g[1]-A[1]],E=[C[0]-A[0],C[1]-A[1]],$=w[0]*E[1]-w[1]*E[0];function G([_,R]){const Y=_-A[0],Z=R-A[1],V=(Y*E[1]-Z*E[0])/$,K=(w[0]*Z-w[1]*Y)/$;if(V<Hn-2||V>vn-Hn+2||K<cs-se-6||K>os+se+8)return-1;let D=-1,et=1/0;for(const nt of z){const ct=Math.abs(nt.cx-V)+(Math.abs(nt.cz-K)>(os-cs)/2?1e3:0);ct<et&&(et=ct,D=nt.p)}return D}function J(){m>=0?(b(m,p,1),M(z[m]),s.textContent="port "+String(m+1).padStart(2,"0")):(b(da,1.6,.55),M(z[da]),s.textContent="rest"),S.wake()}return o.add(Et(t,{move:_=>{const R=G(_);R!==m&&(m=R,J())},leave:()=>{m=-1,J()}})),o.add(()=>e.replaceChildren()),{set:_=>{p=_,m>=0&&J()},destroy:o.dispose}},Ht=68,ut=140,Eo=11,tu=40,Pr=2,Lr=1.6,Hi=1.8,Va=7,Ds=6,pc=2.2,Ya=.9,eu=Pr+Lr+Hi+Va+Ds+pc+Ya,nu=["glass","board","battery","shell"],ru=[.36,.3,1.2],su=.08,M0=1,Oi=[[4,ut-44],[Ht-4,ut-44],[Ht-4,ut-5],[36,ut-5],[36,ut-30],[4,ut-30]],cn=[9,12,Ht-9,ut-48],au=[[10,ut-41,26,ut-34,1.4],[45,ut-40,54,ut-35,1.2],[57,ut-42,62,ut-36,1.2],[42,ut-27,56,ut-13,1.8]],w0=[[0,0],[Ht,0],[Ht,ut],[0,ut]],ou=[w0,Oi,[[cn[0],cn[1]],[cn[2],cn[1]],[cn[2],cn[3]],[cn[0],cn[3]]],w0],k0=[Pr,Lr,Va,Ds];function A0(t){const e=[0],s=[Pr,Lr+Hi,Va];for(let o=0;o<3;o++)e.push(e[o]+s[o]+t[o]);const u=(e[3]+Ds+pc+Ya)/2;return e.map(o=>o-u)}function cu(t,e){let s=!1;for(let u=0,o=e.length-1;u<e.length;o=u++){const[c,r]=e[u],[i,h]=e[o];r>t[1]!=h>t[1]&&t[0]<(i-c)*(t[1]-r)/(h-r)+c&&(s=!s)}return s}var ls=(t,e,s)=>t.map(u=>({...u,u:u.u+e,v:u.v+s})),iu=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null,i=M0,h=null;const v=At(45,.5,1.5),x=(eu+3*tu)/2;Ct(v,[[0,0,-x],[Ht+2.2,ut,-x],[Ht+2.2,0,-x],[0,ut,-x],[0,0,x],[Ht+2.2,0,x],[0,ut,x]],200,166);const p=Mt(v),m=Lt(v),N=(at,dt)=>tt(at.map(([gt,Rt])=>p(gt,Rt,dt))),B=I("g",{},e),L=rt(0,0,Ht,ut,Eo,8),H=dc(p,L).slice(0,2),W=I("path",{class:"nf dash"},B),P=I("g",{},B),j=q(P),F=rt(1.2,1.2,Ht-1.2,ut-1.2,Eo-1.2,8),X=ge([[4,4],[Ht-4,4],[Ht-4,ut-4],[Ht/2+12,ut-4],[Ht/2+12,ut-10],[Ht/2-12,ut-10],[Ht/2-12,ut-4],[4,ut-4]],[7.5,7.5,7.5,2,3.5,3.5,2,7.5]),z=I("path",{class:"nf"},P),O=I("path",{class:"nf"},P),k=I("path",{class:"nf lo"},P),y=ls(ht(1.5,16),Ht/2+6,ut-7),T=I("g",{},B),n=ge(Oi,[4,4,4,4,3,4]),a=I("path",{class:"lo"},T),l=I("path",{class:"sil"},T),d=au.map(([at,dt,gt,Rt,Yt])=>{const[te,xt]=mt(at,dt,gt,Rt,1.5,.7);return{ring:te,inner:xt,h:Yt,el:q(T)}}),f=I("g",{},B),b=q(f),[M,S]=mt(...cn,6,1.6),A=ge([[41,ut-48],[52,ut-48],[52,ut-31],[41,ut-31]],[.5,.5,2,2]),g=I("path",{class:"lo"},f),C=I("path",{},f),w=q(f),[E,$]=mt(42,ut-38,51,ut-32,1.5,.7),G=I("g",{},B),J=q(G),_=rt(1.8,1.8,Ht-1.8,ut-1.8,Eo-1.8,8),R=[[ut-68,ut-58],[ut-54,ut-44]].map(([at,dt])=>{const[gt,Rt]=mt(Ht-.5,at,Ht+2.2,dt,1.2,.5);return{ring:gt,inner:Rt,el:q(G)}}),Y=q(G),Z=rt(7,ut-33,33,ut-7,7,6),V=rt(8,ut-32,32,ut-8,6,6),K=[[14.5,ut-25.5],[25.5,ut-14.5]].map(([at,dt])=>{const gt=q(G);return{ring:ls(ht(4.6,24),at,dt),inner:ls(ht(3.6,24),at,dt),eye:ls(ht(1.9,16),at,dt),el:gt,glass:I("path",{class:"nf lo"},gt.g)}}),D=I("path",{class:"nf"},G),et=ls(ht(1.7,16),25.5,ut-25.5),nt=[at=>{Q(j,it(p,m,L,F,at,at+Pr));const dt=at+Pr;z.setAttribute("d",N(X,dt)),O.setAttribute("d",tt(pt(p,y,dt))),k.setAttribute("d",ft(p(Ht/2-6,ut-7,dt),p(Ht/2+1.5,ut-7,dt)))},at=>{a.setAttribute("d",N(n,at)),l.setAttribute("d",N(n,at+Lr));for(const dt of d)Q(dt.el,it(p,m,dt.ring,dt.inner,at+Lr,at+Lr+dt.h))},at=>{Q(b,it(p,m,M,S,at,at+Va)),g.setAttribute("d",N(A,at+.8)),C.setAttribute("d",N(A,at+1.4)),Q(w,it(p,m,E,$,at+1.4,at+2.6))},at=>{Q(J,it(p,m,L,_,at,at+Ds));for(const Rt of R)Q(Rt.el,it(p,m,Rt.ring,Rt.inner,at+1.6,at+4.4));const dt=at+Ds,gt=dt+pc;Q(Y,it(p,m,Z,V,dt,gt));for(const Rt of K)Q(Rt.el,it(p,m,Rt.ring,Rt.inner,gt,gt+Ya)),Rt.glass.setAttribute("d",tt(pt(p,Rt.eye,gt+Ya)));D.setAttribute("d",tt(pt(p,et,gt)))}],ct=[j.sil,l,b.sil,J.sil],It=()=>[0,1,2].map(at=>c*(r===null?ru[at]:r)),ot=It().map(at=>yt(at,{eps:.01})),zt=[NaN,NaN,NaN,NaN],_t=kt(t,at=>{const dt=It(),gt=[0,1,2].sort((xt,xe)=>Math.abs(xt+.5-i)-Math.abs(xe+.5-i));let Rt=!1;for(const xt of gt){const xe=xt+.5-i,un=xe>0?xt-1:xt+1;ot[xt].t=Math.abs(xe)<1?dt[xt]:dt[xt]+ot[un].x-dt[un],wt(ot[xt],at)&&(Rt=!0)}const Yt=A0(ot.map(xt=>xt.x));let te=!1;return Yt.forEach((xt,xe)=>{xt!==zt[xe]&&(zt[xe]=xt,nt[xe](xt),te=!0)}),te&&W.setAttribute("d",H.map(xt=>ft(p(xt.u,xt.v,Yt[3]),p(xt.u,xt.v,Yt[0]+Pr))).join("")),Rt});o.add(_t.unregister);function Bt(at){const dt=A0(It());for(let Yt=3;Yt>=0;Yt--){const te=ou[Yt],xt=te.map(([un,Hr])=>p(un,Hr,dt[Yt]+k0[Yt])),xe=Yt===1?xt:Pt(xt.concat(te.map(([un,Hr])=>p(un,Hr,dt[Yt]))));if(cu(at,xe))return Yt}let gt=0,Rt=1/0;return dt.forEach((Yt,te)=>{const xt=Math.abs(p(Ht/2,ut/2,Yt+k0[te])[1]-at[1]);xt<Rt&&(Rt=xt,gt=te)}),gt}function Gt(at){at>=0&&(i=at);const dt=at>=0?at:M0;ct.forEach((gt,Rt)=>gt.classList.toggle("hi",Rt===dt)),s.textContent=at>=0?nu[at]:"rest",_t.wake()}return Gt(-1),o.add(Et(t,{move:at=>{h=at,r=bt(su,1,lt((at[0]-60)/280,0,1)),Gt(Bt(at))},leave:()=>{h=null,r=null,Gt(-1)}})),o.add(()=>e.replaceChildren()),{set:at=>{c=at,h&&Gt(Bt(h)),_t.wake()},destroy:o.dispose}},Ot=7,Bs=10,Is=8,Ze=Is*2+Bs*(Ot-1),us=5,lu=2.5,uu=4,ke=7,oc=[[0,0,0,8,0,0,0],[0,0,8,20,8,0,0],[0,28,34,34,34,28,0],[28,34,65,65,65,34,28],[65,0,0,0,0,0,65],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[64,0,0,0,0,0,0],[32,64,0,0,0,0,0],[16,32,64,0,0,0,0],[8,16,32,64,0,0,0],[4,8,16,32,64,0,0],[2,4,8,16,32,64,0],[1,2,4,8,16,32,64],[0,1,2,4,8,16,32],[0,0,1,2,4,8,16],[0,0,0,1,2,4,8],[0,0,0,0,1,2,4],[0,0,0,0,0,1,2],[0,0,0,0,0,0,1],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]],fu=110,du=1200,hu=400,pu=[[0,0,1],[1,0,.45],[-1,0,.45],[0,1,.45],[0,-1,.45]],E0=(t,e,s)=>oc[t][e]>>Ot-1-s&1,vu=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=0,i=-1,h=-1e9,v=!1,x=null;const p=At(45,.5,2.12),m=-15-uu;Ct(p,[[-ke,-ke,m],[Ze+ke,Ze+ke,m-6],[Ze+ke,-ke,m],[-ke,Ze+ke,m],[0,0,us]],200,160);const N=Mt(p),B=Lt(p),L=I("g",{},e),[H,W]=mt(-ke,-ke,Ze+ke,Ze+ke,11,1.8);Ri(e,L,N,B,H,m,12),Q(q(L),it(N,B,H,W,m,-15));const[P,j]=mt(0,0,Ze,Ze,7,1.3);I("path",{d:dc(N,P).map(k=>ft(N(k.u,k.v,0),N(k.u,k.v,-15))).join(""),class:"nf dash"},L),Q(q(L),it(N,B,P,j,0,us)),I("path",{d:tt(pt(N,rt(3.5,3.5,Ze-3.5,Ze-3.5,4.5,5),us)),class:"nf lo"},L);const F=new Float32Array(Ot*Ot),X=[];for(let k=0;k<Ot;k++)for(let y=0;y<Ot;y++){const T=en(L,p,lu,"dot");qt(T,N(Is+y*Bs,Is+k*Bs,us)),X.push(T)}function z(k,y,T){const n=Math.round((k-Is)/Bs),a=Math.round((y-Is)/Bs);for(const[l,d,f]of pu){const b=a+l,M=n+d;b<0||b>=Ot||M<0||M>=Ot||(F[b*Ot+M]=Math.max(F[b*Ot+M],T*f))}}const O=kt(t,(k,y)=>{if(_e()&&!v)for(let T=0;T<Ot*Ot;T++)F[T]=Math.max(F[T]*Math.exp(-k*1e3/c),E0(3,Math.floor(T/Ot),T%Ot)*.8);else{const T=Math.exp(-k*1e3/c);for(let a=0;a<Ot*Ot;a++)F[a]*=T;const n=v?0:lt((y-h-du)/hu,0,1);if(n>0){r+=k*1e3;const a=Math.floor(r/fu)%oc.length;if(a!==i){i=a;for(let l=0;l<Ot;l++)for(let d=0;d<Ot;d++)E0(a,l,d)&&(F[l*Ot+d]=Math.max(F[l*Ot+d],n))}s.textContent=`loop · ${String(a+1).padStart(2,"0")}/${oc.length}`}else s.textContent=v?"paint":"afterglow"}for(let T=0;T<Ot*Ot;T++)X[T].setAttribute("opacity",(.14+.86*lt(F[T],0,1)).toFixed(3));return!0});return o.add(O.unregister),o.add(Et(t,{move:k=>{v=!0;const y=le(p,k[0],k[1],us);if(x){const T=Math.ceil(Math.hypot(y[0]-x[0],y[1]-x[1])/3);for(let n=1;n<=T;n++)z(bt(x[0],y[0],n/T),bt(x[1],y[1],n/T),1)}else z(y[0],y[1],1);x=y,O.wake()},leave:()=>{v=!1,x=null,h=performance.now(),r=0,i=-1,O.wake()}})),o.add(()=>e.replaceChildren()),{set:k=>{c=k},destroy:o.dispose}},Di=7,cc=13,ic=10,T0=5,S0=6,N0=11,mu=1,Xn=2*cc+(Di-1)*ic,To=16,or=2,So=2,Tr=34,C0=4,fs=7,gu=4,j0=2.2,No=4,xu=3.2,bu={k:40,c:11,eps:.02},yu=16.4,Mu=t=>1/(1+.5*t*t),lc=5,wu=ge([[Xn-2,0],[Xn-2,Tr],[2,Tr],[2,0]],[.6,4,4,.6],lc),ku=[lc,3*(lc+1)],Au=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=zr.plot[2],r=At(45,.5,xu);Ct(r,[[0,0,-3.6],[Xn,0,-3.6],[0,To,-3.6],[Xn,To,-3.6],[0,or,Tr],[Xn,or,Tr]],200,166);const i=Mt(r),h=Lt(r),v=I("g",{},e),[x,p]=mt(0,0,Xn,To,6,1.6);Q(q(v),it(i,h,x,p,-3.6,0));const m=y=>wu.map(([T,n])=>i(T,y,n));Q(q(v),{sil:tt(Pt(m(or).concat(m(or+So)))),crease:jt(m(or+So).slice(...ku))});const N=(y,T)=>i(y,or+So,T),B=Array.from({length:C0},(y,T)=>Tr*(T+1)/(C0+1));I("path",{class:"nf lo",d:B.map(y=>ft(N(fs,y),N(Xn-7,y))).join("")},v),I("path",{class:"nf",d:ft(N(fs,0),N(fs,Tr-4))+B.map(y=>ft(N(fs-gu,y),N(fs,y))).join("")},v);const L=Array.from({length:Di},(y,T)=>{const n=cc+T*ic;return{ring:mt(n-T0/2,S0,n+T0/2,N0,1.2,.4),el:q(v)}}),H=L.map((y,T)=>yt(T===No?j0:0,bu)),W=L.map(()=>NaN);function P(){L.forEach((y,T)=>{const n=lt(H[T].x,0,c);n!==W[T]&&(W[T]=n,Q(y.el,it(i,h,y.ring[0],y.ring[1],0,mu+n)))})}const j=kt(t,y=>{let T=!1;for(const n of H)T=wt(n,y)||T;return P(),T});o.add(j.unregister);const F=L.map((y,T)=>i(cc+T*ic,(S0+N0)/2,0)[0]);let X=u,z=-2;function O(y){H.forEach((T,n)=>{const a=X*Mu(Math.abs(n-y))-T.x;a>0&&(T.v=Math.max(T.v,yu*a))}),j.wake()}function k(y){y!==z&&(z=y,H.forEach((T,n)=>{T.t=y<0&&n===No?j0:0}),y>=0&&O(y),L.forEach((T,n)=>T.el.sil.classList.toggle("hi",n===(y<0?No:y))),s.textContent=y<0?"rest":`bar ${y+1} · 0`,j.wake())}return k(-1),P(),o.add(Et(t,{move:y=>k(F.reduce((T,n,a)=>Math.abs(y[0]-n)<Math.abs(y[0]-F[T])?a:T,0)),leave:()=>k(-1)})),o.add(()=>e.replaceChildren()),{set:y=>{X=y,z>=0&&O(z)},destroy:o.dispose}},Ae=21,Oe=30,R0=7,ds=1.4,Eu=2.6,ha=8,Tu=13,pa=11,zs=6.5,Su=4.5,P0=2,Ia=11,va=7,Nu=4.6,Cu=3,ma=1.8,Za=[48,8],ju=100,Ru=.7,L0=2.8,Pu=398,Lu=t=>t*t*(3-2*t);function _0(t){for(let e=0;e<t.length-3;e++)for(let s=t.length-2;s>e+1;s--){const u=t[e],o=t[e+1],c=t[s],r=t[s+1],i=o[0]-u[0],h=o[1]-u[1],v=r[0]-c[0],x=r[1]-c[1],p=c[0]-u[0],m=c[1]-u[1],N=i*x-h*v;if(!N)continue;const B=(p*x-m*v)/N,L=(p*h-m*i)/N;if(B>0&&B<1&&L>0&&L<1){t.splice(e+1,s-e,[u[0]+B*i,u[1]+B*h]);break}}return t}function B0(t,e){const s=t.findIndex(r=>r[0]>e);if(s<1)return s<0?t:[];const u=t[s-1],o=t[s],c=(e-u[0])/(o[0]-u[0]);return[...t.slice(0,s),[e,u[1]+(o[1]-u[1])*c]]}function _u(t,e,s){const u=t.length,o=[],c=[];for(let i=0;i<u;i++){const h=t[Math.max(i-1,0)],v=t[i],x=t[Math.min(i+1,u-1)];let p=x[0]-h[0],m=x[1]-h[1];const N=Math.hypot(p,m)||1;p/=N,m/=N,o.push([v[0]-m*e,v[1]+p*e]),c.push([v[0]+m*e,v[1]-p*e])}const r=i=>{const h=[];for(let v=7;v>=1;v--){const x=Math.PI*v/8;h.push([i[0]+e*Math.cos(x),i[1]+e*.5*Math.sin(x)])}return h};return jt([...B0(_0(c),s).reverse(),...r(t[0]),...B0(_0(o),s)])}function ga(t){const e=vt(bt(ju,180,Lu(lt(t/Ru,0,1))));return{c:[bt(Za[0],Ia,t),bt(Za[1],0,t),bt(zs,Oe,Math.sin(t*Math.PI/2))],w:[Math.cos(e),Math.sin(e),0],u:[-Math.sin(e),Math.cos(e),0]}}var Bu=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,L0),r=Math.sqrt(1-c.k*c.k),i=[Math.sin(c.az)*r,Math.cos(c.az)*r,c.k],h=(R,Y)=>R[0]*Y[0]+R[1]*Y[1]+R[2]*Y[2],v=(R,Y,Z,V)=>[R.c[0]+Y*R.u[0]+V*R.w[0],R.c[1]+Y*R.u[1]+V*R.w[1],R.c[2]+Z],x=[];for(const R of[0,-3])for(const Y of[-Ae,Ae])for(const Z of[Oe-Ae,Oe+Ae])x.push([R,Y,Z]);for(const R of[0,1]){const Y=ga(R);for(const Z of[-pa,pa])for(const V of[-zs,zs])for(const K of[Ia,-18-va])x.push(v(Y,Z,V,K))}Ct(c,x,200,166);const p=Mt(c),m=R=>p(R[0],R[1],R[2]),N=I("g",{},e),B=rt(-Ae,Oe-Ae,Ae,Oe+Ae,R0,6),L=rt(-Ae+ds,Oe-Ae+ds,Ae-ds,Oe+Ae-ds,R0-ds,6);Q(q(N),{sil:tt(Pt(B.map(R=>p(0,R.u,R.v)).concat(B.map(R=>p(-3,R.u,R.v))))),crease:jt(Ut(L,R=>R.nu*i[1]+R.nv*i[2]>0).map(R=>p(0,R.u,R.v)))}),I("path",{class:"nf lo",d:tt(ht(Tu,48).map(R=>p(0,R.u,Oe+R.v)))},N),I("path",{class:"nf",d:[-ha,ha].map(R=>tt(ht(Eu,16).map(Y=>p(0,R+Y.u,Oe+Y.v)))).join("")},N);const H=I("g",{},e),W=I("path",{class:"sil"},H),P=I("path",{class:"sil"},H),j=q(H),F=I("path",{class:"sil hi"},H),X=ht(Nu,16),z=ht(Cu,16),O=(R,Y,Z,V)=>[0,30,60,90].map(K=>[R(Y*(1-Math.sin(vt(K)))),Z+V*Y*(1-Math.cos(vt(K)))]),k=R=>rt(-pa+R,-zs+R,pa-R,zs-R,Su-R),y=R=>ht(P0-R,12),T=k(2),n=[...O(k,2,0,-1),...O(k,2,-18,1)],a=[[y(0),0],...O(y,P0*.8,Ia,-1)],l=(R,Y,Z=0)=>tt(Pt(Y.flatMap(([V,K])=>V.map(D=>m(v(R,Z+D.u,D.v,K)))))),d=[...le(c,440,150,ma),ma],f=[Za[0]+18,Za[1]-52,ma];let b=!0,M=NaN;const S=yt(0,{eps:.002});function A(){if(S.x===M)return;M=S.x;const R=ga(S.x),Y=h(R.w,i)>0,Z=h(R.u,i);Y!==b&&(b=Y,H.append(...b?[W,P,j.g,F]:[F,j.g,W,P]));const V=b?0:-18;Q(j,{sil:l(R,n),crease:jt(Ut(T,nt=>nt.nu*Z+nt.nv*i[2]>0).map(nt=>m(v(R,nt.u,nt.v,V))))}),F.setAttribute("d",[-ha,ha].map(nt=>l(R,a,nt)).join("")),P.setAttribute("d",l(R,[[X,-18],[z,-18-va]]));const K=v(R,0,0,-18-va+2),D=v(R,0,0,-18-va-26),et=[];for(let nt=0;nt<=40;nt++){const ct=nt/40,It=(1-ct)**3,ot=3*(1-ct)**2*ct,zt=3*(1-ct)*ct*ct,_t=ct**3;et.push(p(It*K[0]+ot*D[0]+zt*f[0]+_t*d[0],It*K[1]+ot*D[1]+zt*f[1]+_t*d[1],It*K[2]+ot*D[2]+zt*f[2]+_t*d[2]))}W.setAttribute("d",_u(et,ma*L0,Pu))}const g=kt(t,R=>{const Y=wt(S,R);return A(),Y});o.add(g.unregister);const C=m(ga(0).c),w=p(0,0,Oe),E=[w[0]-C[0],w[1]-C[1]],$=E[0]*E[0]+E[1]*E[1];let G=u,J=-1;function _(){S.t=J<0?0:Math.min(J,G);const R=ga(S.t),Y=v(R,0,0,Ia);s.textContent=J<0?"rest":`gap ${Math.round(Math.hypot(Y[0],Y[1],Y[2]-Oe))} · 0 V`,g.wake()}return _(),A(),o.add(Et(t,{move:R=>{J=lt(((R[0]-C[0])*E[0]+(R[1]-C[1])*E[1])/$,0,1),_()},leave:()=>{J=-1,_()}})),o.add(()=>e.replaceChildren()),{set:R=>{G=R,_()},destroy:o.dispose}},cr=27,I0=6,Iu=1.6,Co=4.3,z0=16,zu=66,H0=200,O0=-35,D0=38,Hu=29,jo=6,Ou=.2,$0=4,Du=-45,$u=36,Fu=150,xa=2.6,F0=[-Math.SQRT1_2,-Math.SQRT1_2],Wu=.4,W0=(()=>{const t=[];for(let r=0;r<=30;r++){const i=vt(H0+(O0-H0)*r/30);t.push([z0*Math.cos(i),zu+z0*Math.sin(i)])}const e=t[t.length-1],s=vt(O0),u=[Math.sin(s),-Math.cos(s)],o=[e[0]+u[0]*10,e[1]+u[1]*10],c=[0,D0+10];for(let r=1;r<=20;r++){const i=r/20,h=1-i;t.push([h*h*h*e[0]+3*h*h*i*o[0]+3*h*i*i*c[0],h*h*h*e[1]+3*h*h*i*o[1]+3*h*i*i*c[1]+i*i*i*D0])}return t.push([0,Hu]),t})(),Ro=[2,28];function Xu(t,e,s){const u=t[Math.max(e-1,0)],o=t[Math.min(e+1,t.length-1)],c=Math.hypot(o[0]-u[0],o[1]-u[1])||1,r=-(o[1]-u[1])/c,i=(o[0]-u[0])/c,h=s*(r*F0[0]+i*F0[1]);return[t[e][0]+r*h,t[e][1]+i*h]}function Gu(t,e,s,u){const o=e[0]-t[0],c=e[1]-t[1],r=u[0]-s[0],i=u[1]-s[1],h=s[0]-t[0],v=s[1]-t[1],x=o*i-c*r;if(!x)return null;const p=(h*i-v*r)/x,m=(h*c-v*o)/x;return p>0&&p<1&&m>0&&m<1?[t[0]+p*o,t[1]+p*c]:null}function X0(t){for(let e=0;e<t.length-3;e++)for(let s=t.length-2;s>e+1;s--){const u=Gu(t[e],t[e+1],t[s],t[s+1]);if(u){t.splice(e+1,s-e,u);break}}return t}function Yu(t,e){const s=t.length,u=[],o=[],c=[];for(let h=0;h<s;h++){const v=t[Math.max(h-1,0)],x=t[h],p=t[Math.min(h+1,s-1)],m=Math.hypot(x[0]-v[0],x[1]-v[1])||1,N=Math.hypot(p[0]-x[0],p[1]-x[1])||1;let B=(x[0]-v[0])/m+(p[0]-x[0])/N,L=(x[1]-v[1])/m+(p[1]-x[1])/N;const H=Math.hypot(B,L)||1;B/=H,L/=H,c.push([B,L]),u.push([x[0]-L*e,x[1]+B*e]),o.push([x[0]+L*e,x[1]-B*e])}const r=(h,v)=>Array.from({length:9},(x,p)=>{const m=Math.PI*(p+1)/10,N=-Math.cos(m),B=-Math.sin(m);return[h[0]+e*(-v[1]*N+v[0]*B),h[1]+e*(v[0]*N+v[1]*B)]}),i=h=>Array.from({length:7},(v,x)=>{const p=Math.PI*(7-x)/8;return[h[0]+e*Math.cos(p),h[1]+e*.5*Math.sin(p)]});return tt([...X0(u),...i(t[s-1]),...X0(o).reverse(),...r(t[0],c[0])])}var Zu=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=zr.query[2];let r=u,i=!1;const h=f=>{const b=vt(Du-f),M=Math.cos(b),S=Math.sin(b);return(A,g)=>[A*M,A*S,g]},v=(f,b)=>h(b)(lt(f*Ou,-$0,$0),I0+jo),x=At(45,.5,xa),p=[[-cr,0,0],[cr,0,0],[0,-cr,0],[0,cr,0]];for(const f of[-c,-c/2,0,c/2,c])for(const b of W0){const M=h(f)(b[0],b[1]);p.push([M[0],M[1],M[2]+Co],[M[0],M[1],M[2]-Co])}Ct(x,p,200,166),x.ox+=200-Mt(x)(0,0,0)[0];const m=Mt(x),N=Lt(x),B=Co*xa,L=I("g",{},e);Q(q(L),it(m,N,ht(cr,72),ht(cr-Iu,72),0,I0));const H=q(L),W=ht(jo*xa,40),P=ht(jo*xa*.62,40).slice(23,31),j=I("path",{class:"sil"},L),F=I("path",{class:"nf lo"},L),X=()=>-Math.min($u,.9*r),z=yt(X()),O=yt(X(),{k:36,c:7});let k=NaN,y=NaN;function T(){if(z.x!==k){k=z.x;const b=h(z.x),M=W0.map(S=>m(...b(S[0],S[1])));j.setAttribute("d",Yu(M,B)),F.setAttribute("d",jt(M.slice(Ro[0],Ro[1]).map((S,A)=>Xu(M,Ro[0]+A,Wu*B))))}const f=z.x-O.x;if(f!==y){y=f;const b=m(...v(f,O.x));Q(H,{sil:tt(W.map(M=>[b[0]+M.u,b[1]+M.v])),crease:jt(P.map(M=>[b[0]+M.u,b[1]+M.v]))})}}const n=kt(t,f=>{O.t=z.x;const b=wt(z,f),M=wt(O,f);return T(),b||M});o.add(n.unregister);const a=m(0,0,0)[0];let l=a;function d(){z.t=i?r*lt((l-a)/Fu,-1,1):X(),s.textContent=i?`turn ${Math.abs(Math.round(z.t))}° · 0`:"rest",H.sil.classList.toggle("hi",!i),j.classList.toggle("hi",i),n.wake()}return d(),o.add(Et(t,{move:f=>{i=!0,l=f[0],d()},leave:()=>{i=!1,d()}})),o.add(()=>e.replaceChildren()),{set:f=>{r=f,d()},destroy:o.dispose}},an=132,Ke=92,Ee=4.4,mn=34,hs=2,Ku=7,G0=21,Y0=15,Po=1.8,Uu=22,ba=[4,-7,2,13,-3,6,-9],Vu=3,Ju=1.9,Z0=ge([[0,9],[25,21],[25,25],[-25,25],[-25,21]],[4,2,2,2,2],5),Qu=ge([[0,14],[15,21.5],[-15,21.5]],[2,1.2,1.2],4),qu=[[0,9],[0,5],...Array.from({length:10},(t,e)=>{const s=vt(120-e*20);return[Math.sin(s)*3.4,-Math.cos(s)*3.4]})],tf=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,Ju),r=[[0,-mn/2,0],[an,-mn/2,0],[0,mn/2,0],[an,mn/2,0],[0,0,Ke+6],[an,0,Ke+6],[0,-30,Ke-30],[an,30,Ke-30]];Ct(c,r,200,166);const i=Mt(c),h=Lt(c),v=I("g",{},e),x=(z,O,k,y,T,n,a)=>{const[l,d]=mt(z,O,k,y,T,.7);Q(q(v),it(i,h,l,d,n,a))};x(-Ee/2-1,-mn/2,Ee/2+1,mn/2,2.2,0,3),x(-Ee/2,-Ee/2,Ee/2,Ee/2,1.4,3,Ke+4);const p=Array.from({length:Ku},()=>q(v));x(0,-hs,an,hs,hs,Ke-hs,Ke+hs);const m=p.map(()=>I("path",{class:"nf"},v));x(an-Ee/2-1,-mn/2,an+Ee/2+1,mn/2,2.2,0,3),x(an-Ee/2,-Ee/2,an+Ee/2,Ee/2,1.4,3,Ke+4);const N=ba.map(z=>yt(z,{k:60,c:6,eps:.02})),B=ba.map(()=>NaN);function L(){N.forEach((z,O)=>{if(z.x===B[O])return;B[O]=z.x;const k=Math.cos(vt(z.x)),y=Math.sin(vt(z.x)),T=G0+O*Y0,n=(a,l)=>i(T+l,a[0]*k+a[1]*y,Ke-(a[1]*k-a[0]*y));Q(p[O],{sil:tt(Pt(Z0.map(a=>n(a,0)).concat(Z0.map(a=>n(a,Po))))),crease:tt(Qu.map(a=>n(a,Po)))}),m[O].setAttribute("d",jt(qu.map(a=>n(a,Po/2))))})}const H=kt(t,z=>{let O=!1;for(const k of N)O=wt(k,z)||O;return L(),O});o.add(H.unregister);const W=ba.map((z,O)=>i(G0+O*Y0,0,Ke-17)[0]);let P=u,j=-2,F=1;function X(z){j=z,N.forEach((O,k)=>{const y=z<0?0:lt(1-Math.abs(k-z)/(P+.5),0,1);O.t=ba[k]-Uu*y*y*(k===z?F:Math.sign(k-z))}),p.forEach((O,k)=>O.sil.classList.toggle("hi",k===(z<0?Vu:z))),s.textContent=z<0?"rest":`hanger ${z+1} · 0`,H.wake()}return X(-1),L(),o.add(Et(t,{move:z=>{const O=W.reduce((k,y,T)=>Math.abs(z[0]-y)<Math.abs(z[0]-W[k])?T:k,0);F=z[0]<W[O]?1:-1,X(O)},leave:()=>X(-1)})),o.add(()=>e.replaceChildren()),{set:z=>{P=z,X(j<0?-1:j)},destroy:o.dispose}},ef=3,K0=5,U0=12,nf=18,rf=.7,sf=24,V0=125,af=90,J0=700,of=1350,cf=420,lf=70,Lo=.45,uf=400,vc=[{p:-1,l:0,d:0,s:-9},{p:0,l:1,d:60,s:-54},{p:0,l:1,d:60,s:36},{p:1,l:2,d:120,s:-72},{p:1,l:2,d:120,s:-36},{p:2,l:2,d:120,s:0},{p:2,l:2,d:120,s:36},{p:2,l:2,d:120,s:72}],ps=(t,e)=>{const s=r=>{const i=[];for(;r>=0;r=vc[r].p)i.push(r);return i},u=s(t),o=s(e),c=u.find(r=>o.includes(r));return u.indexOf(c)+o.indexOf(c)},Q0=(t,e)=>{for(let s=e;s>=0;s=vc[s].p)if(s===t)return!0;return!1},ff=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=-1,i=null;const h=vc.map(n=>({...n})),v=n=>n.l?U0:nf,x=n=>n.l?ef:K0,p=n=>n.l?4.6:7;h.forEach((n,a)=>{n.i=a,n.x=n.d+n.s,n.y=n.d-n.s,n.h=v(n),n.tw=Wt(0),n.drawn=NaN,n.want=!n.i,n.at=void 0});const m=At(45,.5,1.5),N=[];for(const n of h)N.push([n.x-n.h,n.y-n.h,0],[n.x+n.h,n.y+n.h,0],[n.x,n.y,20+K0]);Ct(m,N,200,166);const B=Mt(m),L=Lt(m),H=I("g",{},e),W=[];for(const n of h){if(n.p<0)continue;const a=h[n.p],l=n.x-a.x,d=n.y-a.y,f=Math.hypot(l,d),b=E=>E/Math.max(Math.abs(l),Math.abs(d))*f+2.5,M=b(a.h)/f,S=1-b(n.h)/f,A=B(a.x+l*M,a.y+d*M,0),g=B(a.x+l*S,a.y+d*S,0),C=Math.max(2,Math.round(Math.hypot(g[0]-A[0],g[1]-A[1])/9)),w={n,pt:Wt(0,cf),on:!1,dashes:[]};W.push(w);for(let E=0;E<C;E++)w.dashes.push({u:(E+.35)/C,d:ft([bt(A[0],g[0],(E+.1)/C),bt(A[1],g[1],(E+.1)/C)],[bt(A[0],g[0],(E+.6)/C),bt(A[1],g[1],(E+.6)/C)]),full:ft([bt(A[0],g[0],E/C),bt(A[1],g[1],E/C)],[bt(A[0],g[0],(E+1)/C),bt(A[1],g[1],(E+1)/C)]),lit:0})}for(const n of W)for(const a of n.dashes)a.el=I("path",{d:a.d,class:"nf"},H);for(const n of h){const a=rt(n.x-n.h,n.y-n.h,n.x+n.h,n.y+n.h,p(n),8);n.ring=a,I("path",{d:tt(pt(B,a,0)),class:"nf lo"},H)}const P=h.slice().sort((n,a)=>n.x+n.y-(a.x+a.y));for(const n of P){const a=rt(n.x-n.h,n.y-n.h,n.x+n.h,n.y+n.h,p(n),8);n.ring=a,n.inner=Le(m,a,n.l?1.1:1.3),n.el=q(H),n.l||(n.rec=Le(m,a,2.8),n.recEl=I("path",{class:"nf lo"},n.el.g))}const j=(n,a)=>{Q(n.el,We(B,L,n.ring,n.inner,a,a+x(n))),n.rec&&n.recEl.setAttribute("d",tt(pt(B,n.rec,a+x(n))))},F=kt(t,(n,a)=>{let l=!1;for(const d of h){const f=Xt(d.tw,a);Qt(d.tw,a)||(l=!0),f!==d.drawn&&(d.drawn=f,j(d,f))}i!==null&&(a>=i?(i=null,T(-1)):l=!0);for(const d of h)d.at!==void 0&&(a>=d.at?(d.el.sil.classList.toggle("hi",d.want),d.at=void 0):l=!0);for(const d of W){if(!d.on)continue;const f=Qt(d.pt,a);l=!0;const b=Xt(d.pt,a);let M=0,S=1;for(let g=0;g<14;g++){const C=(M+S)/2;hc(C)<b?M=C:S=C}const A=f?9:bt(M,b,.3)*(1+Lo);for(const g of d.dashes){const C=A-g.u,w=C<0||C>=Lo?0:C<Lo*.4?2:1;w!==g.lit&&(g.lit=w,g.el.classList.toggle("sil",w>0),g.el.setAttribute("d",w===2?g.full:g.d))}f&&(d.on=!1,d.pt.from=d.pt.to=0,d.pt.t0=-1e9)}return l});o.add(F.unregister);const X=(n,a)=>n>=0&&Q0(n,a.i)?c*rf**ps(n,a.i):0,z=(n,a)=>{const l=a.map((d,f)=>{const b=a[(f+1)%a.length];return(b[0]-d[0])*(n[1]-d[1])-(b[1]-d[1])*(n[0]-d[0])});return l.every(d=>d>=0)||l.every(d=>d<=0)};function O(n){for(let d=P.length-1;d>=0;d--){const f=P[d],b=X(r,f);if(z(n,Pt(pt(B,f.ring,0).concat(pt(B,f.ring,b+x(f))))))return f.i}const[a,l]=le(m,n[0],n[1],0);return h.some(d=>Math.hypot(a-d.x,l-d.y)<d.h+sf-U0)?r:-1}const k=n=>n<0?"rest":n===0?"root":`pkg ${h[n].l}·${h.filter(a=>a.l===h[n].l&&a.i<=n).length}`,y=(n,a,l,d)=>{if(n.tw.to===a)return;const f=a>n.tw.to;ce(n.tw,a,l,d),n.tw.dur=f?J0:of};function T(n){if(n===r)return;const a=performance.now(),l=r,d=h.map(b=>X(n,b));r=n;let f=0;h.forEach((b,M)=>{d[M]<b.tw.to&&l>=0&&(f=Math.max(f,ps(l,b.i)))}),h.forEach((b,M)=>y(b,d[M],a,d[M]<b.tw.to?(f-ps(l,b.i))*af:n>=0?ps(n,b.i)*V0:0));for(const b of W){b.pt.from=b.pt.to=0,b.pt.t0=-1e9,b.on=!1;for(const M of b.dashes)M.lit=0,M.el.classList.remove("sil"),M.el.setAttribute("d",M.d);n>=0&&Q0(n,b.n.i)&&b.n.i!==n&&(b.on=!0,ce(b.pt,1,a,ps(n,b.n.p)*V0+20))}for(const b of h){const M=b.i===(n<0?0:n);M!==b.want&&(b.want=M,b.at=M?a+lf:a)}s.textContent=k(n),F.wake()}h[0].el.sil.classList.add("hi"),s.textContent="rest";for(const n of h)j(n,0);return o.add(Et(t,{move:n=>{const a=O(n);if(a<0&&r>=0&&!_e()){i===null&&(i=performance.now()+uf,F.wake());return}i=null,T(a)},leave:()=>{i=null,T(-1)}})),o.add(()=>e.replaceChildren()),{set:n=>{c=n;const a=performance.now();for(const l of h)l.tw.to!==X(r,l)&&(ce(l.tw,X(r,l),a,0),l.tw.dur=J0);F.wake()},destroy:o.dispose}},_o=3,Bo=7,Io=9,ir=9,de=17,df=[{d:[-1,0],a:50,b:84,side:[-1,1]},{d:[0,-1],a:50,b:76,side:[1]},{d:[1,0],a:50,b:84,side:[-1,1]},{d:[0,1],a:50,b:76,side:[-1]}],hf=31;function pf(){const t=[];return df.forEach((e,s)=>{const u=(c,r)=>[e.d[0]*c-e.d[1]*r,e.d[1]*c+e.d[0]*r],o=t.length;t.push({c:u(e.a,0),par:-1,dep:1}),t.push({c:u(e.b,0),par:o,dep:2}),e.side.forEach((c,r)=>t.push({c:u(e.b,c*hf),par:o+1,dep:3,tag:"leaf "+(s+1)+"·"+(r+1)}))}),t}var vf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=pf(),i=r.filter(f=>f.tag),h=At(45,.5,1.9),v=[[-de,-de,0],[de,de,0],[-de,de,0],[de,-de,0]];for(const f of r)for(const[b,M]of[[-1,-1],[1,-1],[-1,1],[1,1]])v.push([f.c[0]+b*ir,f.c[1]+M*ir,_o+Io]);Ct(h,v,200,166);const x=Mt(h),p=Lt(h),m=I("g",{},e);for(const f of r){const b=f.par<0?[0,0]:r[f.par].c,M=f.c[0]-b[0],S=f.c[1]-b[1],A=Math.hypot(M,S),g=f.par<0?de:0,C=0;f.a=x(b[0]+M/A*g,b[1]+S/A*g,0),f.b=x(f.c[0]-M/A*C,f.c[1]-S/A*C,0);let w="";const E=Math.hypot(f.b[0]-f.a[0],f.b[1]-f.a[1]),$=Math.max(2,Math.round(E/9));for(let G=0;G<$;G++)w+=ft([bt(f.a[0],f.b[0],(G+.1)/$),bt(f.a[1],f.b[1],(G+.1)/$)],[bt(f.a[0],f.b[0],(G+.6)/$),bt(f.a[1],f.b[1],(G+.6)/$)]);I("path",{d:w,class:"nf"},m)}for(const f of r)f.link=I("path",{class:"nf sil"},m),f.l=Wt(0),f.z=Wt(0),f.h=Wt(0),f.ld=NaN,f.zd=NaN,f.hd=!1;const N=q(m),B=rt(-de,-de,de,de,7,8);Q(N,We(x,p,B,Le(h,B,1.3),0,Bo));const L=I("path",{d:tt(pt(x,Le(h,B,2.8),Bo)),class:"nf hi"},m),H=Wt(1);let W=!0;I("path",{d:tt(pt(x,Le(h,B,3.8),Bo)),class:"nf lo"},m);for(const f of r.slice().sort((b,M)=>b.c[0]+b.c[1]-M.c[0]-M.c[1]))f.ring=rt(f.c[0]-ir,f.c[1]-ir,f.c[0]+ir,f.c[1]+ir,3.6,8),f.inner=Le(h,f.ring,1),f.el=q(m);const P=kt(t,(f,b)=>{let M=!1;for(const A of r){const g=Xt(A.l,b),C=Xt(A.z,b);if(g!==A.ld&&(A.ld=g,A.link.setAttribute("d",g>.002?ft(A.a,[bt(A.a[0],A.b[0],g),bt(A.a[1],A.b[1],g)]):"")),C!==A.zd&&(A.zd=C,Q(A.el,We(x,p,A.ring,A.inner,C*Io,C*Io+_o))),A.tag){const w=Xt(A.h,b)>.5;w!==A.hd&&(A.hd=w,A.el.sil.classList.toggle("hi",w))}(!Qt(A.l,b)||!Qt(A.z,b)||!Qt(A.h,b))&&(M=!0)}const S=Xt(H,b)>.5;return S!==W&&(W=S,L.classList.toggle("hi",S)),Qt(H,b)||(M=!0),M});o.add(P.unregister);const j=i.map(f=>x(f.c[0],f.c[1],_o)),F=78,X=18,z=(f,[b,M])=>Math.hypot(j[f][0]-b,j[f][1]-M);function O(f){let b=-1,M=F;return j.forEach((S,A)=>{const g=z(A,f);g<M&&(M=g,b=A)}),l>=0&&b!==l&&z(l,f)<F&&z(l,f)-M<X?l:b}const k=700,y=1500,T=(f,b,M,S,A)=>{f.to!==b&&(ce(f,b,M,S),f.dur=A)},n=new Set,a=f=>f.par<0?null:r[f.par];let l=-1;function d(f){if(f===l)return;const b=performance.now(),M=new Set,S=c*1.5;for(let w=f<0?null:i[f];w;w=a(w))M.add(w);const A=[...n].filter(w=>!M.has(w)),g=A.reduce((w,E)=>Math.max(w,E.dep),0),C=A.length?(A.length-1)*S*.65+c*.5:0;for(const w of r){const E=M.has(w),$=n.has(w);E!==$&&(E?(T(w.l,1,b,C+(w.dep-1)*c,k),T(w.z,1,b,C+w.dep*c,k)):(T(w.z,0,b,(g-w.dep)*S,y),T(w.l,0,b,(g-w.dep)*S+S*.5,y)),w.tag&&(E?T(w.h,1,b,C+w.dep*c,40):T(w.h,0,b,f<0?0:Math.max(0,C+3*c-60),40)))}n.clear(),M.forEach(w=>n.add(w)),T(H,f<0?1:0,b,f<0?(A.length-1)*S*.5+120:0,40),l=f,s.textContent=f<0?"rest":i[f].tag,P.wake()}return o.add(Et(t,{move:f=>d(O(f)),leave:()=>d(-1)})),o.add(()=>e.replaceChildren()),{set:f=>{c=f},destroy:o.dispose}},tn=8,Gn=84,Jt=54,mc=13,uc=22,$s=7,mf=[6,31,56],q0=1.4,ya=-12,gf=-24,xf=20,$i=16,_r=-5,Br=Gn+5,Sr=-9,Fs=(tn-1)*mc+9,Ma=20,ti=6,vs=2.4;function bf(){const t=At(45,.5,1.62);return Ct(t,[[_r,Sr,0],[Br,Fs,-8],[Br,Sr,0],[_r,Fs,0],[_r,Sr,Jt+$s],[Br,Sr,Jt+$s+$i]],200,166),t}var yf=()=>({outer:rt(_r,Sr,Br,Fs,ti,6),inner:rt(_r+vs,Sr+vs,Br-vs,Fs-vs,ti-vs,6)}),zo=t=>t[0][0]<=t[t.length-1][0]?t:t.slice().reverse();function Mf(t,e,s,u){const o=[[tt(Pt(pt(t,s,0).concat(pt(t,s,Ma)))),"sil"],[tt(pt(t,u,Ma)),"nf"],[jt(pt(t,Ut(u,p=>!e(p)),2.5)),"nf lo"]],c=zo(pt(t,Ut(u,e),Ma)),r=zo(pt(t,Ut(s,e),Ma)),i=zo(pt(t,Ut(s,e),0)),h=(_r+Br)/2,v=p=>p.map(m=>t(m.u,Fs,m.v)),x=[[tt([...c,r[r.length-1],...i.slice().reverse(),r[0]]),"fo"],[jt(r),"nf lo"],[jt(c),"nf"],[jt([r[0],...i,r[r.length-1]]),"nf sil"],[tt(v(rt(h-11,6.5,h+11,12.5,3,5))),"nf"],[tt(v(rt(h-9.4,8,h+9.4,11,1.5,5))),"nf lo"]];return{far:o,near:x}}function wf(t){const e=tn-t,s=mf[(tn-1-t)%3],u=ge([[0,0],[Gn,0],[Gn,Jt],[s+uc,Jt],[s+uc,Jt+$s],[s,Jt+$s],[s,Jt],[0,Jt]],[1,1,3.2,1.8,2.4,2.4,1.8,3.2]);return{n:e,t0:s,shape:u}}function kf(t,e,s,u,o,c){const r=e*mc,i=Math.sin(vt(o)),h=Math.cos(vt(o)),v=(m,N)=>t(m,r+N*i,N*h+c),x=(m,N)=>t(m,r+N*i-q0*h,N*h+q0*i+c),p=[];for(let m=0;m<8;m++)p.push(v(s+uc/2+(m%4-1.5)*3.6,Jt+$s/2+(.5-Math.floor(m/4))*2.8));return{back:tt(u.map(m=>x(m[0],m[1]))),face:tt(u.map(m=>v(m[0],m[1]))),head:ft(v(6,Jt-11),v(Gn-6,Jt-11)),rules:[Jt-18,Jt-25,Jt-32,Jt-39].map(m=>ft(v(6,m),v(Gn-6,m))).join(""),punch:p}}function Af(){const t=bf();return{C:t,P:Mt(t),front:Lt(t),...yf()}}var Ef=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const{P:r,front:i,outer:h,inner:v}=Af(),x=Mf(r,i,h,v),p=I("g",{},e);Ri(e,p,r,i,h,0,14);for(const[a,l]of x.far)I("path",{d:a,class:l},p);const m=[];for(let a=0;a<tn;a++){const{n:l,t0:d,shape:f}=wf(a),b=I("g",{},p),M=I("path",{class:"lo"},b),S=I("path",{class:"sil"},b),A=I("path",{class:"nf"},b),g=I("path",{class:"nf lo"},b),C=[];for(let w=0;w<8;w++)C.push(I("circle",{r:1.05,class:"dot "+(w===l-1?"m":"off")},b));m.push({n:l,t0:d,shape:f,back:M,face:S,head:A,rules:g,punch:C,a:Wt(ya),z:Wt(0)})}for(const[a,l]of x.near)I("path",{d:a,class:l},p);const N=a=>r(Gn/2,a*mc+Jt*Math.sin(vt(ya)),Jt*Math.cos(vt(ya))),B=N(0),L=N(1),H=[L[0]-B[0],L[1]-B[1]],W=r(0,0,0),P=r(1,0,0),j=[P[0]-W[0],P[1]-W[1]],F=Gn/2+6,X=H[0]*j[1]-H[1]*j[0];function z([a,l]){const d=a-B[0],f=l-B[1],b=(d*j[1]-f*j[0])/X,M=(H[0]*f-H[1]*d)/X;return Math.abs(M)>F||b<-.5||b>tn+1?-1:lt(Math.round(b),0,tn-1)}function O(a,l,d){const f=m[a],b=kf(r,a,f.t0,f.shape,l,d);f.back.setAttribute("d",b.back),f.face.setAttribute("d",b.face),f.head.setAttribute("d",b.head),f.rules.setAttribute("d",b.rules),f.punch.forEach((M,S)=>qt(M,b.punch[S]))}const k=kt(t,(a,l)=>{let d=!1;return m.forEach((f,b)=>{O(b,Xt(f.a,l),Xt(f.z,l)),(!Qt(f.a,l)||!Qt(f.z,l))&&(d=!0)}),d});o.add(k.unregister);let y=-1;const T=a=>a<0?"rest":String(tn-a).padStart(2,"0");function n(a){if(a===y)return;const l=performance.now(),d=a>=0?a:y;y=a,m.forEach((f,b)=>{const M=Math.abs(b-d)*c,S=a<0?ya:b<a?gf:b>a?xf:0;ce(f.a,S,l,M),ce(f.z,a===b?$i:0,l,M),f.face.classList.toggle("hi",b===a),f.head.classList.toggle("hi",b===a),f.punch[f.n-1].classList.toggle("m",b!==a)}),s.textContent=T(a),k.wake()}return o.add(Et(t,{move:a=>n(z(a)),leave:()=>n(-1)})),o.on(t,"keydown",a=>{a.key==="ArrowLeft"||a.key==="ArrowDown"?(n(y<0?tn-1:Math.min(tn-1,y+1)),a.preventDefault()):a.key==="ArrowRight"||a.key==="ArrowUp"?(n(y<0?tn-1:Math.max(0,y-1)),a.preventDefault()):a.key==="Escape"&&y>=0&&(n(-1),a.preventDefault())}),o.on(t,"blur",()=>n(-1)),o.add(()=>e.replaceChildren()),{set:a=>{c=a},destroy:o.dispose}},ms=124,lr=58,kn=14,He=3,Ho=13,fc=[18,48,78,108],Fi=11,Wi=5,ei=4.6,gs=56,ni=3.3,za=2.1,ri=.21,Tf=za+1,wa=44,si=[-9,3,-4,32],ai=3,Ka=[Math.SQRT1_2,-Math.SQRT1_2],Sf=(t,e)=>lt(1-t/e,.1,1),xs=(t,e,s)=>{const u=Math.sin(vt(e)),o=Math.cos(vt(e));return[fc[t]+Ka[0]*u*s,Fi+Ka[1]*u*s,kn+Wi-1+o*s]},Nf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null,i=null;const h=At(45,.5,1.78),v=[[0,0,0],[ms,lr,0],[ms,0,0],[0,lr,0]];fc.forEach((l,d)=>{for(const f of[-wa,0,wa])v.push(xs(d,f,gs+za))}),Ct(h,v,200,166);const x=Mt(h),p=Lt(h),m=l=>x(l[0],l[1],l[2]),N=x(0,0,0),B=x(Ka[0],Ka[1],0),L=x(0,0,1),H=Math.hypot(B[0]-N[0],B[1]-N[1]),W=N[1]-L[1],P=I("g",{},e),j=rt(0,0,ms,lr,Ho,6),F=rt(He,He,ms-He,lr-He,Ho-He,6),X=rt(He+1.6,He+1.6,ms-He-1.6,lr-He-1.6,Ho-He-1.6,6);Q(q(P),{sil:tt(Pt(pt(x,j,0).concat(pt(x,F,kn)))),crease:jt(pt(x,Ut(X,p),kn))});for(let l=0;l<6;l++){const d=kn*.56,f=lr-He*(d/kn)+.1;qt(I("circle",{r:1.05,class:l===0?"dot m":"dot off"},P),x(34+l*9,f,d))}for(let l=0;l<3;l++)for(let d=0;d<13-l%2;d++)qt(en(P,h,.5,"dot off"),x(26+l%2*3+d*6,29+l*5.5,kn));const z=fc.map((l,d)=>{const f=q(P),b=M=>M.map(S=>({...S,u:S.u+l,v:S.v+Fi}));return Q(f,it(x,p,b(ht(ei,16)),b(ht(ei-1.1,16)),kn,kn+Wi)),{i:d,el:q(P),sp:yt(si[d],{eps:.05}),drawn:NaN,piv:m(xs(d,0,0))}}),O=Math.abs(z[1].piv[0]-z[0].piv[0])/H,k=(l,d)=>Array.from({length:20},(f,b)=>[l[0]+d*H*Math.cos(b*Math.PI/10),l[1]+d*H*Math.sin(b*Math.PI/10)]);function y(l){const d=l.sp.x;if(d===l.drawn)return;l.drawn=d;const f=m(xs(l.i,d,0)),b=m(xs(l.i,d,gs)),M=m(xs(l.i,d,gs*ri)),S=Math.hypot(b[0]-f[0],b[1]-f[1]),A=[-(b[1]-f[1])/S,(b[0]-f[0])/S],g=bt(ni,za,ri)*H-1.1;Q(l.el,{sil:tt(Pt(k(f,ni).concat(k(b,za)))),crease:ft([M[0]+A[0]*g,M[1]+A[1]*g],[M[0]-A[0]*g,M[1]-A[1]*g])})}function T(l){l!==i&&(i?.el.sil.classList.remove("hi"),i=l,l.el.sil.classList.add("hi"))}const n=kt(t,l=>{let d=!1;for(const f of z)wt(f.sp,l)&&(d=!0),y(f);return d});o.add(n.unregister);function a(){if(!r)z.forEach((l,d)=>{l.sp.t=si[d]}),T(z[ai]),s.textContent="rest";else{const l=r,d=z.map(M=>(l[0]-M.piv[0])/H),f=Math.min(...d.map(Math.abs)),b=z[d.findIndex(M=>Math.abs(M)===f)];z.forEach((M,S)=>{const A=Math.sign(d[S])*Math.max(Math.abs(d[S])-Tf,0),g=Math.max((M.piv[1]-l[1])/W,Math.sqrt(Math.max(gs*gs-A*A,0)),0),C=Math.atan2(A,g)*180/Math.PI;M.sp.t=lt(C,-wa,wa)*Sf((Math.abs(d[S])-f)/O,c)}),T(b),s.textContent=`antenna ${b.i+1} · ${Math.round(Math.abs(b.sp.t))}°`}n.wake()}return T(z[ai]),o.add(Et(t,{move:l=>{r=l,a()},leave:()=>{r=null,a()}})),o.add(()=>e.replaceChildren()),{set:l=>{c=l,r&&a()},destroy:o.dispose}},Cf=3.2,ka=9,bs=17,Oo=6.5,ys=22,oi=0,ur=86,fr=[[50,0,-1,51,-19,14,0],[88,0,0,93,23,-22,0],[50,34,0,58,50,26,0],[0,50,-1,-21,59,-16,0],[0,88,3,20,84,28,0],[-34,50,3,-59,64,-20,0],[-50,0,-1,-67,-20,-12,0],[-88,0,6,-91,26,20,0],[-50,-34,6,-47,-57,-28,0],[0,-50,-1,22,-46,18,0],[0,-88,9,-15,-95,-14,0],[34,-50,9,62,-60,22,0]];function jf(t,e,s,u,o){const c=Math.cos(vt(o)),r=Math.sin(vt(o));return rt(-s,-s,s,s,u,8).map(i=>({u:t+i.u*c-i.v*r,v:e+i.u*r+i.v*c,nu:i.nu*c-i.nv*r,nv:i.nu*r+i.nv*c}))}var Rf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=0;const i=At(45,.5,1.9),h=[[0,0,Oo],[ur,0,0],[-ur,0,0],[0,ur,0],[0,-ur,0]];for(const n of fr)for(const[a,l]of[[n[0],n[1]],[n[3],n[4]]])h.push([a-11,l-11,0],[a+11,l+11,0],[a+11,l-11,0],[a-11,l+11,0]);Ct(i,h,200,166);const v=Mt(i),x=Lt(i),p=I("g",{},e);let m="";for(let n=-oi;n<=oi;n++){const a=Math.sqrt(ur*ur-(n*ys)**2);m+=ft(v(n*ys,-a,0),v(n*ys,a,0))+ft(v(-a,n*ys,0),v(a,n*ys,0))}const N=fr.map((n,a)=>{const l=n[2]<0?[0,0]:[fr[n[2]][0],fr[n[2]][1]],d=[n[0],n[1]],f=Math.hypot(d[0]-l[0],d[1]-l[1]),b=[(d[0]-l[0])/f,(d[1]-l[1])/f],M=n[2]<0?bs:ka,S=[l[0]+b[0]*(M+2),l[1]+b[1]*(M+2)],A=[d[0]-b[0]*(ka+2),d[1]-b[1]*(ka+2)];return{i:a,from:S,to:A,tw:Wt(0),p:B(a),el:I("path",{class:"nf"},p),drawn:NaN}});function B(n){return fr[n][2]}const L=I("g",{},p),H=rt(-bs,-bs,bs,bs,7,8),W=q(L);Q(W,We(v,x,H,Le(i,H,1.3),0,Oo)),W.sil.classList.add("hi"),I("path",{d:tt(pt(v,Le(i,H,2.8),Oo)),class:"nf lo"},L);const P=fr.map((n,a)=>({i:a,t:n,el:q(I("g",{},p)),th:[.05,.3,.4][a%3],sp:yt(0,{k:a%3===0?120:90-a%3*8,c:a%3===0?14:12,eps:.002}),key:"",ord:0,k:0,rise:{k:a%3===0?120:90-a%3*8,c:a%3===0?14:12},fall:{k:[38,44,50][a%3],c:2*Math.sqrt([38,44,50][a%3])},lag:[.3,.2,.12][a%3]*1e3,want:0,wait:0,falling:!1}));function j(n){const a=n.sp.x,[l,d,,f,b,M,S]=n.t,A=lt(a,0,1),g=6.5*A*(1-A)*4/4,C=bt(f,l,a),w=bt(b,d,a),E=bt(M,0,a),$=Math.max(0,bt(S,0,A)+g);return{x:C,y:w,a:E,z:$}}function F(n){const a=j(n),l=[a.x,a.y,a.a,a.z].map(f=>f.toFixed(2)).join();if(n.k=a.x+a.y+6*a.z,l===n.key)return;n.key=l;const d=jf(a.x,a.y,ka,3.6,a.a);Q(n.el,We(v,x,d,Le(i,d,1),a.z,a.z+Cf))}let X="";function z(){const n=P.slice().sort((b,M)=>b.k-M.k),a=n.findIndex(b=>b.k>0),l=n.slice(),d=a<0?l.map(b=>b.el.g).concat(L):l.slice(0,a).map(b=>b.el.g).concat(L,l.slice(a).map(b=>b.el.g)),f=d.map(b=>b===L?"h":P.findIndex(M=>M.el.g===b)).join();if(f!==X){X=f;for(const b of d)p.appendChild(b)}}function O(n,a){const l=n.p<0?null:P[n.p],d=P[n.i],f=l?l.sp.x:1,b=d.sp.x,M=Math.min(f,b)>.96&&d.want>=1&&(!l||l.want>=1)?1:0;n.tw.to!==M&&(ce(n.tw,M,a,0),n.tw.dur=M?700:900);const S=Xt(n.tw,a);if(S===n.drawn)return;n.drawn=S;const A=v(n.from[0],n.from[1],0),g=v(n.to[0],n.to[1],0),C=Math.max(2,Math.round(Math.hypot(g[0]-A[0],g[1]-A[1])/9));let w="";for(let E=0;E<C;E++){const $=(E+.1)/C,G=Math.min((E+.6)/C,S);G>$&&(w+=ft([bt(A[0],g[0],$),bt(A[1],g[1],$)],[bt(A[0],g[0],G),bt(A[1],g[1],G)]))}n.el.setAttribute("d",w)}const k=kt(t,(n,a)=>{let l=!1;for(const d of P)d.wait>0&&(d.wait-=n*1e3,l=!0,d.wait<=0&&(d.sp.t=d.want)),wt(d.sp,n)&&(l=!0),F(d);for(const d of N)O(d,a),Qt(d.tw,a)||(l=!0);return z(),l});o.add(k.unregister);function y(){let n=0;for(const a of P){const l=lt((r-a.th)/.22,0,1);l>a.want?(a.falling=!1,a.wait=0,a.want=l,Object.assign(a.sp,a.rise),a.sp.t=l):l<a.want&&(a.falling||(a.falling=!0,a.wait=_e()?0:a.lag,Object.assign(a.sp,a.fall)),a.want=l,a.wait<=0&&(a.sp.t=l)),l>.5&&n++}s.textContent=r<=0?"rest":`map ${n}·${P.length}`,k.wake()}const T=n=>{const a=lt((c-n)/(c-18),0,1);return a*a*(3-2*a)};o.add(Et(t,{move:n=>{const[a,l]=le(i,n[0],n[1],0);r=T(Math.hypot(a,l)),y()},leave:()=>{r=0,y()}})),o.add(()=>e.replaceChildren());for(const n of P)F(n);return z(),s.textContent="rest",{set:n=>{c=n},destroy:o.dispose}},Ms=3,he=36,gn=11,dr=8,Aa=2.6,Ha=2,Pf=1.6,Lf=[-22,-11,0,11,22],_f=40,Bf=2.35,Xi=.8,Gi=.6,ci=(t,e,s)=>{const u=t<0?1:t;return e===u?t<0?s*Xi:s:t>=0&&e===u+1?s*Gi:Ha},If=({stage:t,svg:e,read:s},u)=>{const o=Tt(),[,c,r]=zr.sieve,i=At(45,.5,Bf),h=dr+Ms*gn+Ha+r*(1+Gi),v=dr+Ms*gn+2*Ha+c*Xi,x=[];for(const[g,C]of[[-he,0],[he,0],[0,-he],[0,he]])x.push([g,C,v-h],[g,C,h]);Ct(i,x,200,166);const p=Mt(i),m=p(0,0,0)[1],N=g=>p(0,0,g)[1]-m,B=ht(he,72),L=ht(he-Aa,72),H=I("g",{},e),W=(g,C)=>Pt(B.map(w=>p(w.u,w.v,g)).concat(B.map(w=>p(w.u,w.v,C))));Q(q(H),{sil:tt(W(0,dr)),crease:tt(L.map(g=>p(g.u,g.v,dr)))});const P=Array.from({length:Ms},()=>({s:q(H),mesh:I("path",{class:"nf lo"},H)})),j=(g,C,w)=>{const E=[[]];for(const[$,G]of g){const J=p($,G,C),_=le(i,J[0],J[1],w);Math.hypot($,G)<he-Aa&&Math.hypot(_[0],_[1])<he-Aa?E[E.length-1].push(J):E[E.length-1].length&&E.push([])}return E.filter($=>$.length>1)},F=(g,C)=>Array.from({length:29},(w,E)=>[g[0]+(C[0]-g[0])*E/28,g[1]+(C[1]-g[1])*E/28]),X=Lf.flatMap(g=>[F([g,-he],[g,he]),F([-he,g],[he,g])]);X.push(Array.from({length:73},(g,C)=>{const w=Math.PI/4+C/72*Math.PI*2,E=he-Aa-.05;return[E*Math.cos(w),E*Math.sin(w)]}));const z=W(0,gn),O=L.map(g=>p(g.u,g.v,gn)),k=X.flatMap(g=>j(g,Pf,gn)),y=(g,C)=>g.map(w=>[w[0],w[1]+C]),T=Array.from({length:Ms},()=>Wt(Ha)),n=T.map(()=>NaN);let a=-2,l=u;function d(g){let C=dr;T.forEach((w,E)=>{if(C+=Xt(w,g),C!==n[E]){n[E]=C;const $=N(C);Q(P[E].s,{sil:tt(y(z,$)),crease:tt(y(O,$))}),P[E].mesh.setAttribute("d",k.map(G=>jt(y(G,$))).join(""))}C+=gn})}const f=kt(t,(g,C)=>(d(C),T.some(w=>!Qt(w,C))));o.add(f.unregister);function b(g,C){if(g===a)return;a=g;const w=g<0?1:g;T.forEach((E,$)=>ce(E,ci(g,$,l),C,Math.abs($-w)*_f)),P.forEach((E,$)=>E.s.sil.classList.toggle("hi",$===w)),s.textContent=g<0?"rest":`sieve ${Ms-g} · 0`,f.wake()}b(-1,-1e9),d(0);const M=()=>{let g=dr;return T.map((C,w)=>{g+=ci(-1,w,l);const E=p(0,0,g+gn/2)[1];return g+=gn,E})};let S=M();const A=g=>S.reduce((C,w,E)=>Math.abs(g[1]-w)<Math.abs(g[1]-S[C])?E:C,0);return o.add(Et(t,{move:g=>b(A(g),performance.now()),leave:()=>b(-1,performance.now())})),o.add(()=>e.replaceChildren()),{set:g=>{l=g,S=M();const C=a;a=-2,b(C,performance.now())},destroy:o.dispose}},ln=210,pe=26,ws=5,zf=15,Ar=6,ii=1/9,On=ln*.62,hr=38,Hf=t=>{const e=lt(Math.min(t,1-t)/.08,0,1);return e*e*(3-2*e)},Yi=ln/Ar/2,Of=Yi/2,Df=t=>{const e=t-On,s=e<0?Yi:Of;return Math.abs(e)>=s?0:Math.cos(Math.PI/2*(Math.abs(e)/s))**2},$f=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null,i=2.4;const h=yt(1,{eps:.002}),v=At(45,.5,1.8);Ct(v,[[0,0,0],[ln,pe,0],[ln,0,0],[0,pe,0],[0,0,hr],[On,-8,hr]],200,168);const x=Mt(v),p=Lt(v),m=I("g",{},e),[N,B]=mt(0,0,ln,pe,5,1.3);Q(q(m),it(x,p,N,B,0,ws));const L=I("path",{class:"nf lo"},m),H=I("g",{},m),W=[];for(let k=0;k<Ar;k++){const y={...q(H),dots:[]};for(let T=0;T<9;T++)y.dots.push(en(y.g,v,1,"dot off"));W.push(y)}const P=[[-8,-3,0,hr-4,On-5.5],[pe+3,pe+8,0,hr-4,On+pe+5.5],[-8,pe+8,hr-4,hr,On+pe+8.5]].map(([k,y,T,n,a])=>{const l=q(H),[d,f]=mt(On-1.6,k,On+1.6,y,1.4,.6);return Q(l,it(x,p,d,f,T,n)),l.sil.style.transition="none",{el:l,key:a}}),j=Array.from({length:Ar},()=>yt(0,{eps:.03}));let F=-1,X="",z=0;const O=kt(t,k=>{let y=wt(h,k);const T=_e()?0:1;r||(h.t=T),i+=k*h.x;const n=[];for(let g=0;g<Ar;g++){const C=g/Ar+i*ii,w=C-Math.floor(C),E=Math.floor(C);n.push({j:g,x:w*ln,s:Hf(w),serial:141+E*Ar+g})}let a=-1;if(r){let g=34;for(const C of n)C.s>.6&&Math.abs(C.x-r[0])<g&&(g=Math.abs(C.x-r[0]),a=C.j)}F=a,j.forEach((g,C)=>{g.t=C===F?11:0,wt(g,k)&&(y=!0)}),n.sort((g,C)=>g.x-C.x);let l=0,d=0;const f=P.map((g,C)=>({id:"g"+C,key:g.key,g:g.el.g}));n.forEach((g,C)=>{const w=W[C],E=zf*g.s,$=g.x-E/2,G=g.x+E/2,J=pe/2-E/2,_=pe/2+E/2,R=ws+j[g.j].x,Y=R+E;if(f.push({id:C,key:g.x+pe/2,g:w.g}),E<.3){w.g.setAttribute("visibility","hidden");return}w.g.removeAttribute("visibility");const[Z,V]=mt($,J,G,_,2.6*g.s,.9*g.s);Q(w,it(x,p,Z,V,R,Y));const K=g.j===F;w.sil.classList.toggle("hi",K);const D=E*.2,et=Ft(.55*g.s*v.S);w.dots.forEach((nt,ct)=>{qt(nt,x(g.x+(ct%3-1)*D,pe/2+(Math.floor(ct/3)-1)*D,Y)),nt.setAttribute("rx",String(et)),nt.setAttribute("ry",String(Ft(et*v.k))),nt.setAttribute("class",g.serial>>ct&1?K?"dot":"dot m":"dot off")}),K&&(d=g.serial),l=Math.max(l,Df(g.x)*g.s)}),f.sort((g,C)=>g.key-C.key);const b=f.map(g=>g.id).join();b!==X&&(X=b,f.forEach(g=>H.appendChild(g.g)));const M=Math.round(l*100);if(M!==z){z=M;const g=M?`color-mix(in srgb, var(--hl-hi) ${M}%, var(--hl-edge))`:"";P.forEach(C=>{C.el.sil.style.stroke=g})}const S=(i*ii*ln%21+21)%21,A=[];for(let g=S;g<ln;g+=21)g>5&&g<ln-5&&A.push(ft(x(g,4,ws),x(g,pe-4,ws)));return L.setAttribute("d",A.join("")),s.textContent=`rate ${h.x.toFixed(2)}×`+(F>=0?` · #${String(d).padStart(4,"0")}`:""),_e()&&!r&&h.x===0?y:!0});return o.add(O.unregister),o.add(Et(t,{move:k=>{r=le(v,k[0],k[1],ws),h.t=c,O.wake()},leave:()=>{r=null,O.wake()}})),o.add(()=>e.replaceChildren()),{set:k=>{c=k,r&&(h.t=k),O.wake()},destroy:o.dispose}},on=5,Do=4,$o=9,Fo=7,pr=56,Ff=55,Te=[-8,-8,64,64],li=4,Wf=700,Xf=1250,Gf=45,ui=.42,Yf=230,fi=5,Ea=[[-1.5,1],[1.5,-1.2],[-.5,-1.8],[2,1.2],[0,0]],Zf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=(a,l)=>a<=l?0:c*(.4+.6*(a-l)/(on-1-l)),i=At(45,.5,2.2),h=Fo+(on-1)*$o+Do;Ct(i,[[Te[0],Te[1],0],[Te[2],Te[3],0],[Te[0],Te[1],h+46],[Te[2],Te[3],h+46]],200,166);const v=Mt(i),x=Lt(i),p=I("g",{},e),[m,N]=La(Te[0],Te[1],Te[2],Te[3],7,2);Q(q(p),We(v,x,m,N,0,li));const[B]=mt(4,4,52,52,4,1);I("path",{d:tt(pt(v,B,li)),class:"nf lo"},p);const L=[];for(let a=0;a<on;a++){const l=0+Ea[a][0],d=0+Ea[a][1],[f]=La(l,d,l+pr,d+pr,5,1.1),b=q(p),[M]=La(l+4,d+4,l+pr-4,d+pr-4,2.5,.6);L.push({j:a,ring:f,el:b,rim:M,tw:Wt(0),sp:yt(0,{k:90,c:10,eps:.005}),kick:1/0,drawn:NaN})}function H(a,l){const d=Fo+a.j*$o+l;Q(a.el,We(v,x,a.ring,a.rim,d,d+Do))}const W=kt(t,(a,l)=>{let d=!1;for(const f of L){l>=f.kick&&(f.kick=1/0,f.sp.v=ui*f.sp.v0);const b=f.sp.x!==0||f.sp.v!==0?(wt(f.sp,a),f.sp.x):0,M=Xt(f.tw,l)+b;(!Qt(f.tw,l)||f.kick!==1/0||f.sp.x!==0||f.sp.v!==0)&&(d=!0),M!==f.drawn&&(f.drawn=M,H(f,M))}return d});o.add(W.unregister);const P=L.map(a=>v(pr/2+Ea[a.j][0],pr-9+Ea[a.j][1],Fo+a.j*$o+Do)[1]),j=pt(v,m,0).map(a=>a[0]),F=Math.max(...pt(v,m,0).map(a=>a[1])),X=Math.min(...j)+4,z=Math.max(...j)-4,O=P[on-1]-150;function k([a,l]){if(a<X||a>z||l>F||l<O)return-1;if(y>=0){const f=y<on-1?(P[y]+P[y+1])/2:-1e9,b=y>0?(P[y-1]+P[y])/2:1e9;if(l>=f-fi&&l<=b+fi)return y}let d=0;for(;d<on-1&&l<(P[d]+P[d+1])/2;)d++;return d}let y=-1;function T(a,l){const d=performance.now(),f=a<0?on-1:a;L.forEach(b=>{const M=a<0?0:r(b.j,a),S=Xt(b.tw,d);if(M!==b.tw.to){const A=M<S;ce(b.tw,M,d,A?a<0?b.j*Gf:Math.abs(b.j-l)*30:Math.abs(b.j-l)*Ff),b.tw.dur=A?Xf:Wf,A||(b.kick=b.tw.t0+Yf,b.sp.v0=Math.max(6,M-S)*.5,b.sp.v0/=ui)}b.el.sil.classList.toggle("hi",b.j===f)}),W.wake()}T(-1,on-1),s.textContent="rest";function n(a){if(a===y)return;const l=a<0?y:a;y=a,s.textContent=a<0?"rest":"fr "+(a+1),T(a,l)}return o.add(Et(t,{move:a=>n(k(a)),leave:()=>n(-1)})),o.add(()=>e.replaceChildren()),{set:a=>{c=a,T(y,y<0?on-1:y)},destroy:o.dispose}},Oa=24,Nr=7,Da=11,Ue=2.1,di=1.8,Wo=3.9,hi=5.5,Ve=3.4,xn=150,Kf=17,Zi=17,vr=11,Se=2.5,Uf=37,Dn=Zi,qe=Zi+Nr*Da,bn=qe+Kf,pi=4,Vf=["0 5 12","2 7 3 9","2 14","4 6 10","4 18","2 3","0 2","0 2 6 8","0 26","0 20","0 11 4","2 9 12","2 5 3 7","4 16","4 8 8","2 4","0 3 14","0 24","0 30","0 17","2 6 11","2 13","0 9 5","0 4 7"],vi=Oa-Nr-2.6,Jf=18,Qf=2,qf=(t,e)=>lt(1-t/e,0,1),mi=t=>t*t*(3-2*t),mr=t=>.612*t.nu+.5*t.nv>0,gi=t=>t.map(e=>({...e,v:lt(e.v,Dn,qe)})),td=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.62),r=(M,S,A)=>[M,A,S];Ct(c,[r(0,0,-3),r(xn,0,-3),r(0,bn,-3),r(xn,bn,-3),r(xn,0,Ve+2.8),r(0,bn,Ve+1.3),r(vr,qe-4,hi+di)],200,166);const i=Mt(c),h=(M,S,A)=>i(M,A,S);let v=u,x=null,p=[];const m=I("g",{},e),[N,B]=mt(0,0,xn,bn,9,2);Q(q(m),it(h,mr,N,B,-3,0));const L=Vf.map((M,S)=>{const[A,...g]=M.split(" ").map(Number),C=[];let w=A;for(const E of g){const $=vr+w*Wo;C.push({x0:$,x1:$+E*Wo-1.4,el:q(m)}),w+=E+1}return{j:S,segs:C,sp:yt(0,{eps:.01}),drawn:""}}),[H,W]=mt(Se,Se,xn-Se,Dn,6,1.4);Q(q(m),it(h,mr,H,W,0,Ve));const P=(Se+Dn)/2,j=ge([[0,6.2],[8.5,0],[0,-6.2],[0,-3.1],[4.25,0],[0,3.1]],[.9,1.1,.9,.5,.6,.5]),F=I("path",{d:tt(j.map(([M,S])=>h(vr+M,P+S,Ve))),class:"nf"},m),[X,z]=mt(vr+13,P-5.2,vr+13+Wo*1.5,P+5.2,1.2,.8),O=q(m);Q(O,it(h,mr,X,z,Ve,Ve+2.8));const[k,y]=mt(Se,qe,xn-Se,bn-Se,6,1.4);Q(q(m),it(h,mr,k,y,0,Ve));for(let M=0;M<3;M++){const S=vr+M*8.5,A=(qe+bn-Se)/2,[g,C]=mt(S-2.8,A-2.8,S+2.8,A+2.8,2.8,.8);Q(q(m),it(h,mr,g,C,Ve,Ve+1.3))}function T(M,S){const A=S+"|"+M.sp.x;if(A===M.drawn)return;M.drawn=A;const g=qe-(M.j-S+.5)*Da,C=Math.max(g-Ue,Dn),w=Math.min(g+Ue,qe),E=mi(lt((qe-g-Ue)/pi,0,1))*mi(lt((g-Ue-Dn)/pi,0,1)),$=M.sp.x*E;for(const G of M.segs){if(w-C<.05){Q(G.el,{sil:"",crease:""});continue}const J=gi(rt(G.x0,g-Ue,G.x1,g+Ue,Ue,4)),_=gi(rt(G.x0+.7,g-Ue+.7,G.x1-.7,g+Ue-.7,Ue-.7,4));Q(G.el,it(h,mr,J,_,$,$+di))}}function n(M){for(const S of p)S.classList.remove("hi");p=M;for(const S of p)S.classList.add("hi")}const a=yt(vi,{eps:.002}),l=kt(t,M=>{let S=wt(a,M);for(const A of L)wt(A.sp,M)&&(S=!0),T(A,a.x);return S});o.add(l.unregister);function d([M,S],A){const g=h(0,0,A),C=h(1,0,A),w=h(0,1,A),E=C[0]-g[0],$=C[1]-g[1],G=w[0]-g[0],J=w[1]-g[1],_=E*J-$*G;return[((M-g[0])*J-(S-g[1])*G)/_,(E*(S-g[1])-$*(M-g[0]))/_]}function f(M){const S=d(M,Ve),A=C=>C[0]>Se&&C[0]<xn-Se;if(A(S)&&S[1]>Se&&S[1]<Dn)return"prompt";if(A(S)&&S[1]>qe&&S[1]<bn-Se)return 0;const g=d(M,0);return g[0]<0||g[0]>xn||g[1]<0||g[1]>bn?null:g[1]<=Dn?"prompt":lt((qe-Da/2-g[1])/((Nr-1)*Da),0,1)}function b(){let M,S,A=v;x===null?(M=vi,S=Jf,A=Qf,s.textContent="rest"):x==="prompt"?(M=Oa-Nr,S=-1,s.textContent="prompt"):(M=x*(Oa-Nr),S=lt(Math.round(x*(Oa-1)),Math.ceil(M),Math.floor(M+Nr-1)),s.textContent="line "+(Uf+S)),a.t=M;for(const g of L)g.sp.t=S<0?0:hi*qf(Math.abs(g.j-S),A);n(S<0?[O.sil,F]:L[S].segs.map(g=>g.el.sil)),l.wake()}b();for(const M of L)M.sp.x=M.sp.t;return o.add(Et(t,{move:M=>{x=f(M),b()},leave:()=>{x=null,b()}})),o.add(()=>e.replaceChildren()),{set:M=>{v=M,x!==null&&b()},destroy:o.dispose}},An=9,me=14,Ta=11,Xo=58,gr=An*me,ed=t=>t<=0?1:t<=.417?1-t/.417*.6875:t<=1?.3125-(t-.417)/.583*.2185:.094,nd=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.58);Ct(c,[[-6,-6,-5],[gr+6,gr+6,-5],[gr+6,-6,-5],[-6,gr+6,-5],[0,0,Xo*.75]],200,166);const r=Mt(c),i=Lt(c);let h=u*me,v=null;const x=I("g",{},e),p=[],[m,N]=mt(-6,-6,gr+6,gr+6,9,2.2);Q(q(x),it(r,i,m,N,-5,0));for(let k=0;k<=2*(An-1);k++)for(let y=0;y<An;y++){const T=k-y;if(T<0||T>=An)continue;const n=y/(An-1),a=T/(An-1),l=4+25*Math.exp(-((n-.22)**2+(a-.74)**2)/.07)+12*Math.exp(-((n-.8)**2+(a-.26)**2)/.035),d=y*me+(me-Ta)/2,f=T*me+(me-Ta)/2,[b,M]=mt(d,f,d+Ta,f+Ta,2.6,.9);p.push({i:y,j:T,h0:l,ring:b,inner:M,sp:yt(l,{eps:.04}),el:q(x),drawn:NaN})}const B=I("g",{},x),L=[];for(let k=0;k<9;k++)L.push(en(B,c,.55,k===4?"dot":"dot m"));const H=p.reduce((k,y)=>y.h0>k.h0?y:k),W=new Map;p.forEach(k=>W.set(k.i+","+k.j,k));let P=null,j=H;function F(){j!==P&&(P=j,P.el.g.after(B));const k=(P.i+.5)*me,y=(P.j+.5)*me,T=Math.max(.6,P.sp.x);L.forEach((n,a)=>qt(n,r(k+(a%3-1)*2.5,y+(Math.floor(a/3)-1)*2.5,T)))}function X(k){const y=Math.max(.6,k.sp.x);y!==k.drawn&&(k.drawn=y,Q(k.el,it(r,i,k.ring,k.inner,0,y)),k.el.sil.classList.toggle("hi",y>Xo*.5))}const z=kt(t,k=>{let y=!1;for(const T of p)wt(T.sp,k)&&(y=!0),X(T);return F(),y});o.add(z.unregister);function O(){for(const k of p){if(!v){k.sp.t=k.h0;continue}const y=(k.i+.5)*me-v[0],T=(k.j+.5)*me-v[1];k.sp.t=Xo*ed(Math.hypot(y,T)/h)}if(v){const k=lt(Math.floor(v[0]/me),0,An-1),y=lt(Math.floor(v[1]/me),0,An-1);j=W.get(k+","+y),s.textContent=`cell ${k}·${y}`}else j=H,s.textContent="rest";z.wake()}return o.add(Et(t,{move:k=>{v=le(c,k[0],k[1],0),O()},leave:()=>{v=null,O()}})),o.add(()=>e.replaceChildren()),{set:k=>{h=k*me,v&&O()},destroy:o.dispose}},Go=[[-42,-42,0,-12,-12,14,0],[-36,-36,14,-18,-18,34,0],[0,-46,0,16,-6,10,1],[24,-32,0,40,-16,44,2],[-44,4,0,-4,18,22,3],[8,6,0,40,38,8,4],[16,14,8,28,26,20,4],[-30,28,0,-16,42,12,5]],Os=45,xi=90,bi=t=>Os+xi*Math.round((t-Os)/xi),Ua=(t,e,s)=>(t[0]+t[3])*e+(t[1]+t[4])*s+(t[2]+t[5])*.01;function rd(t,e,s,u){return t[6]===e[6]?t[2]<e[2]:t[3]<=e[0]?s>0:e[3]<=t[0]?s<0:t[4]<=e[1]?u>0:e[4]<=t[1]?u<0:Ua(t,s,u)<Ua(e,s,u)}function sd(t,e,s,u){const o=Math.sqrt(1-u*u);let c=1e9,r=-1e9,i=1e9,h=-1e9;for(const v of[t[0],t[3]])for(const x of[t[1],t[4]])for(const p of[t[2],t[5]]){const m=v*s-x*e,N=(v*e+x*s)*u-p*o;c=Math.min(c,m),r=Math.max(r,m),i=Math.min(i,N),h=Math.max(h,N)}return[c,i,r,h]}function ad(t,e,s,u){const o=t.length,c=t.map(p=>sd(p,e,s,u)),r=t.map(()=>[]),i=t.map(()=>0);for(let p=0;p<o;p++)for(let m=0;m<o;m++){const N=c[p],B=c[m];p===m||N[2]<=B[0]||B[2]<=N[0]||N[3]<=B[1]||B[3]<=N[1]||rd(t[p],t[m],e,s)&&(r[p].push(m),i[m]++)}const h=[],v=t.map(()=>!1);let x=0;for(;h.length<o;){let p=-1,m=0;for(;m<2&&p<0;m++)for(let N=0;N<o;N++)!v[N]&&(m||!i[N])&&(p<0||Ua(t[N],e,s)<Ua(t[p],e,s))&&(p=N);m===2&&x++,v[p]=!0,h.push(p);for(const N of r[p])i[N]--}return{order:h,forced:x}}var od=(t,e,s,u)=>ad(t,e,s,u).order,Ln=70,yi=4,Mi=540,cd=14,id=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r={a:Os,w:0,mode:"rest",tgt:Os},i=yt(.5,{eps:5e-4});let h=null,v=0,x=-1e9;function p(d,f){if(r.mode==="rest")return!1;const b=Math.max(1,Math.ceil(d*240)),M=d/b;for(let S=0;S<b;S++)r.mode==="coast"?(r.w*=Math.exp(-M*1e3/c),r.a+=r.w*M,Math.abs(r.w)<45&&f-x>90&&(r.mode="settle",r.tgt=bi(r.a+r.w*.2))):(r.w+=(-90*(r.a-r.tgt)-16*r.w)*M,r.a+=r.w*M);return r.mode==="settle"&&Math.abs(r.a-r.tgt)<.02&&Math.abs(r.w)<.3&&(r.a=r.tgt,r.w=0,r.mode="rest"),r.mode!=="rest"}const m=At(Os,.5,1.85);m.ox=200,m.oy=184;const N=ht(Ln),B=ht(Ln-1.5),L=Go.map(d=>{const[f,b]=mt(d[0],d[1],d[3],d[4],3,1.1);return{b:d,ring:f,inner:b}}),H=L.find(d=>d.b[5]>=40),W={};L.forEach(d=>{(!W[d.b[6]]||d.b[5]>W[d.b[6]].b[5])&&(W[d.b[6]]=d)});const P={};L.forEach(d=>{d.b[2]===0&&(P[d.b[6]]=[(d.b[0]+d.b[3])/2,(d.b[1]+d.b[4])/2])});const j=I("g",{},e),F=q(j),X=I("path",{class:"nf lo"},j),z=I("path",{class:"nf"},j),O=en(j,m,1.7,"dot m"),k=I("path",{class:"nf"},j),y=Go.map(()=>q(j)),T=I("g",{},j),n=[];for(let d=0;d<16;d++){const f=Math.floor(d/4),b=d%4,M=f%3===0,S=b%3===0;M&&S||n.push({r:f,q:b,el:en(T,m,.6,M||S?"dot m":"dot")})}let a=null;const l=kt(t,(d,f)=>{let b=p(d,f);wt(i,d)&&(b=!0),m.az=vt(r.a),m.k=i.x;const M=Mt(m),S=Lt(m),A=Math.cos(m.az),g=Math.sin(m.az);Q(F,it(M,S,N,B,-yi,0));const C=[],w=[];for(let D=0;D<360;D+=15){const et=vt(D),nt=D%90===0,ct=nt?Ln-12:Ln-8;(nt?w:C).push(ft(M(Math.cos(et)*ct,Math.sin(et)*ct,0),M(Math.cos(et)*(Ln-4.5),Math.sin(et)*(Ln-4.5),0)))}X.setAttribute("d",C.join("")),z.setAttribute("d",w.join("")),qt(O,M(0,-53,0)),O.setAttribute("ry",String(Ft(1.7*m.S*m.k)));const E=m.oy+Ln*m.S*m.k+yi*m.S*Math.sqrt(1-m.k*m.k);k.setAttribute("d",`M${m.ox-4} ${Ft(E+10)}L${m.ox} ${Ft(E+4)}L${m.ox+4} ${Ft(E+10)}`);let $=-1,G=cd;if(h!==null||r.mode!=="rest")for(const D in P){const[et,nt]=P[D],ct=Math.abs(Math.atan2(et*A-nt*g,et*g+nt*A))*180/Math.PI;ct<G&&(G=ct,$=+D)}od(Go,g,A,m.k).forEach((D,et)=>{const nt=L[D];Q(y[et],it(M,S,nt.ring,nt.inner,nt.b[2],nt.b[5])),y[et].sil.classList.toggle("hi",nt===W[$]),nt===H&&a!==y[et]&&(a=y[et],a.g.after(T))});const[J,_,,R,Y,Z]=H.b,V=(J+R)/2,K=(_+Y)/2;return n.forEach(({r:D,q:et,el:nt})=>{qt(nt,M(V+(et-1.5)*2.6,K+(D-1.5)*2.6,Z)),nt.setAttribute("ry",String(Ft(.6*m.S*m.k)))}),s.textContent=`az ${String(Math.round((r.a%360+360)%360)).padStart(3,"0")}° · el ${Math.round(Math.asin(i.x)*180/Math.PI)}°`,b});return o.add(l.unregister),o.add(Et(t,{move:d=>{const f=performance.now();if(i.t=bt(Math.sin(vt(40)),Math.sin(vt(20)),lt(d[1]/320,0,1)),h!==null){const b=d[0]-h;if(_e())r.a-=b*.9;else{const M=b/Math.max(.008,(f-v)/1e3);r.w=lt(bt(r.w,-M*.9,.35),-Mi,Mi),r.mode="coast"}Math.abs(b)>.5&&(x=f)}h=d[0],v=f,l.wake()},leave:()=>{h=null,i.t=.5,_e()&&(r.a=bi(r.a)),l.wake()}})),o.add(()=>e.replaceChildren()),{set:d=>{c=d,l.wake()},destroy:o.dispose}},oe=40,ae=14,Ne=64,_n=17,Sa=4,wi=6,ld=6,Bn=10,Na=11,Ca=12,Yo=10,ki=3.6,Zo=-oe-8,Ai=4.6,xr=-70,br=70,yr=130,Ei=40,Ko=30,ud=50,Ti=150,Uo=[72,26,-20],fd=[Math.SQRT1_2*Math.sqrt(.75),Math.SQRT1_2*Math.sqrt(.75),.5],Vo=t=>[Math.cos(t*Math.PI/180),0,Math.sin(t*Math.PI/180)],Jo=t=>((t+50)%100+100)%100-50;function yn(t,e,s,u,o,c,r,i,h){const v=(p,m)=>t(e[0]+s[0]*m+u[0]*p.u+o[0]*p.v,e[1]+s[1]*m+u[1]*p.u+o[1]*p.v,e[2]+s[2]*m+u[2]*p.u+o[2]*p.v),x=p=>[0,1,2].reduce((m,N)=>m+(u[N]*p.nu+o[N]*p.nv)*fd[N],0)>0;return{sil:tt(Pt(c.map(p=>v(p,i)).concat(c.map(p=>v(p,h))))),crease:jt(Ut(r,x).map(p=>v(p,h)))}}var dd=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=[0,1,0],i=[1,0,0],h=[0,0,1],v=[0,0,Ne],x=At(45,.5,1.5);Ct(x,[[xr,-14,0],[br,-14,0],[xr,-14,yr],[br,-14,yr],[xr,Yo,0],[br,0,0],[xr,0,yr],[br,0,yr]],200,166);const p=Mt(x),m=I("g",{},e);Q(q(m),yn(p,[0,0,0],r,i,h,rt(xr,0,br,yr,9,6),rt(xr+2,2,br-2,yr-2,7,6),-14,0)),Q(q(m),yn(p,[Zo,ae*.55,0],h,i,r,ht(Ai,28),ht(Ai-1,28),Ne-26,Ne+26));for(const _ of[-15,15])Q(q(m),yn(p,[0,0,Ne+_],r,i,h,rt(Zo,-4,-oe+6,4,3,4),rt(Zo+1,-3,-oe+5,3,2,4),1,ae*.8));Q(q(m),yn(p,v,r,i,h,ht(oe,72),ht(oe-2.4,72),0,ae)),I("path",{class:"nf lo",d:tt(ht(oe-8,64).map(_=>p(_.u,ae,Ne+_.v)))},m),I("path",{class:"nf",d:ft(p(0,ae,Ne+_n+1.8),p(0,ae,Ne+_n+6.5))},m);const N=q(m);Q(N,yn(p,v,r,i,h,ht(_n,56),ht(_n-1.4,56),ae,ae+Sa));const B=I("path",{class:"nf lo"},m),L=I("path",{class:"nf"},m),H=I("path",{class:"nf"},m);Q(q(m),yn(p,v,r,i,h,ht(wi,32),ht(wi-1,32),ae+Sa,ae+Sa+ld));const W=Uo.map(_=>{const R=Vo(_),Y=Vo(_+90),Z=q(m),V=q(m);Q(V,yn(p,v,r,R,Y,rt(oe+Bn,-Ca/2,oe+Bn+Na,Ca/2,3,4),rt(oe+Bn+1.4,-Ca/2+1.4,oe+Bn+Na-1.4,Ca/2-1.4,1.8,4),0,Yo));for(const K of[-3.4,3.4]){const D=oe+Bn+Na/2+K;qt(I("circle",{r:.9,class:"dot off"},V.g),p(R[0]*D,Yo,Ne+R[2]*D))}return{th:_,e:R,t:Y,el:Z,tw:Wt(0),drawn:NaN}}),P=(_,R)=>{const Y=bt(oe+Bn+4.5,oe+1.2,R);Y!==_.drawn&&(_.drawn=Y,Q(_.el,yn(p,[0,ae/2,Ne],_.e,_.t,r,ht(ki,24),ht(ki-.9,24),oe-.2,Y)))},j={a:Ko,w:0,mode:"rest",tgt:Ko};let F=Ko,X="",z=null,O=0,k=-1e9,y=!1,T=!1,n=1,a=null,l=NaN;function d(){if(j.a===l)return;l=j.a;const _=[],R=[],Y=ae+Sa;for(let Z=0;Z<100;Z+=5){const V=90+(Z-j.a)*3.6,K=Vo(V),D=Z%10?_n-4:_n-6.5,et=_n-1.8,nt=ft(p(K[0]*D,Y,Ne+K[2]*D),p(K[0]*et,Y,Ne+K[2]*et));Z===Ei?H.setAttribute("d",nt):(Z%10?_:R).push(nt)}B.setAttribute("d",_.join("")),L.setAttribute("d",R.join(""))}function f(){const _=T?"bolts":y?"dial":"combo";_!==a&&(a=_,W.forEach(R=>R.el.sil.classList.toggle("hi",_==="bolts")),N.sil.classList.toggle("hi",_==="dial"),H.classList.toggle("hi",_==="combo"))}function b(_,R){T=_,W.forEach((Y,Z)=>ce(Y.tw,_?1:0,R,Math.abs(Z-n)*ud)),f()}function M(_,R){if(j.mode==="rest")return!1;const Y=Math.max(1,Math.ceil(_*240)),Z=_/Y;for(let V=0;V<Y;V++)j.mode==="coast"?(j.w=j.w*Math.exp(-Z*1e3/c)-40*Math.sin(j.a/10*2*Math.PI)*Z,j.a+=j.w*Z,Math.abs(j.w)<12&&R-k>90&&(j.mode="settle",j.tgt=Math.round((j.a+j.w*.15)/10)*10)):(j.w+=(-90*(j.a-j.tgt)-16*j.w)*Z,j.a+=j.w*Z);return j.mode==="settle"&&Math.abs(j.a-j.tgt)<.01&&Math.abs(j.w)<.2&&(j.a=j.tgt=(j.tgt%100+100)%100,j.w=0,j.mode="rest"),j.mode!=="rest"}const S=kt(t,(_,R)=>{let Y=M(_,R);const Z=Math.abs(Jo(j.a-Ei));!T&&Z<.8&&Math.abs(j.w)<6?b(!0,R):T&&Z>2.5&&b(!1,R),d(),W.forEach(D=>{P(D,Xt(D.tw,R)),Qt(D.tw,R)||(Y=!0)});const V=String((Math.round(j.a)%100+100)%100).padStart(2,"0"),K=y||j.mode!=="rest"?`dial ${V}`+(T?" · open":""):"rest";return K!==X&&(s.textContent=X=K),Y});o.add(S.unregister);const A=p(0,ae,0),g=p(1,ae,0),C=p(0,ae,1),w=[g[0]-A[0],g[1]-A[1]],E=[C[0]-A[0],C[1]-A[1]],$=w[0]*E[1]-w[1]*E[0];function G([_,R]){const Y=_-A[0],Z=R-A[1];return[(Y*E[1]-Z*E[0])/$,(w[0]*Z-w[1]*Y)/$-Ne]}function J(){y=!1,z=null,_e()&&(F=j.a=(Math.round(j.a/10)*10%100+100)%100,j.w=0,j.mode="rest"),f(),S.wake()}return o.add(Et(t,{move:_=>{const[R,Y]=G(_),Z=Math.hypot(R,Y);if(Z>oe+Bn+Na+10)return J();const V=performance.now(),K=Math.atan2(Y,R)*180/Math.PI;if(y=!0,n=Uo.reduce((D,et,nt)=>Math.abs(Jo((K-et)/3.6))<Math.abs(Jo((K-Uo[D])/3.6))?nt:D,0),z!==null){const D=-((K-z+540)%360-180)/3.6*lt(Z/22,0,1);_e()?(F+=D,j.a=Math.round(F/10)*10,j.mode="rest"):(j.w=lt(bt(j.w,D/Math.max(.008,(V-O)/1e3),.35),-Ti,Ti),j.mode="coast",F=j.a),Math.abs(D)>.05&&(k=V)}z=K,O=V,f(),S.wake()},leave:J})),f(),o.add(()=>e.replaceChildren()),{set:_=>{c=_,S.wake()},destroy:o.dispose}};function hd(t,e){return St({id:"riffle",label:"A tray of eight cards. Hover or use the arrow keys to pull a card.",rest:"rest",engine:Ef,focusable:!0},t,e)}function pd(t,e){return St({id:"terrain",label:"Eighty-one pillars on a plinth that rise around the pointer and rest as a dune with two rises.",rest:"rest",engine:nd},t,e)}function vd(t,e){return St({id:"exploded",label:"An app window taken apart into four layers. Moving across opens the gap; moving down picks a layer.",rest:"",engine:i1},t,e)}function md(t,e){return St({id:"phosphor",label:"A seven by seven dot matrix on a floating tile that plays a loop, and fades like phosphor where you paint it.",rest:"loop",engine:vu},t,e)}function gd(t,e){return St({id:"slow",label:"Crates riding a belt through a gate. Hovering slows the clock without stopping it.",rest:"rate 1.00×",engine:$f},t,e)}function xd(t,e){return St({id:"turntable",label:"Blocks on a turntable. Flick across it to spin it; it settles on the nearest quarter turn.",rest:"az 045° · el 30°",engine:id},t,e)}function bd(t,e){return St({id:"keyboard",label:"A sixty-key board. The key under the pointer sinks, and its neighbours follow it down, less the further away.",rest:"rest",engine:w1},t,e)}function yd(t,e){return St({id:"elevator",label:"Four floors beside an open shaft. The pointer's height picks a floor, and the car travels there through the ones between.",rest:"rest",engine:o1},t,e)}function Md(t,e){return St({id:"phone",label:"A phone in layers: glass, board, battery, shell. Moving across opens the gap; moving down picks a layer.",rest:"rest",engine:iu},t,e)}function wd(t,e){return St({id:"laptop",label:"A thin laptop: the pointer's height sets how far the lid stands open, and the lid follows it on a spring.",rest:"rest",engine:A1},t,e)}function kd(t,e){return St({id:"terminal",label:"A terminal window: the pointer's height scrolls back through its history, and the line under it lifts off the screen.",rest:"rest",engine:td},t,e)}function Ad(t,e){return St({id:"cabinet",label:"A rack of twelve blades: the pointer's height pulls the nearest ones out on their rails, the farther the less.",rest:"rest",engine:Zl},t,e)}function Ed(t,e){return St({id:"branches",label:"A commit graph on a board: the commit under the pointer rises, and its history rises after it, the farther back the less.",rest:"rest",engine:Xl},t,e)}function Td(t,e){return St({id:"vault",label:"A vault door: circling the pointer turns its dial, which coasts and catches every ten; on forty its three bolts draw back.",rest:"rest",engine:dd},t,e)}function Sd(t,e){return St({id:"lockers",label:"A bank of twelve lockers, one ajar at rest: the locker under the pointer opens, and the one open before it swings shut.",rest:"rest",engine:N1},t,e)}function Nd(t,e){return St({id:"loupe",label:"A stand loupe over a blank ruled sheet: the pointer drags it across, and the rules pass enlarged under the glass with nothing between them.",rest:"rest",engine:L1},t,e)}function Cd(t,e){return St({id:"padlock",label:"A padlock: as the pointer nears, the shackle springs up out of the body and swings open about its long leg.",rest:"rest",engine:F1},t,e)}function jd(t,e){return St({id:"patch",label:"A patch panel of twenty-four ports: the cable under the pointer lifts, and its neighbours lean away, less the further away.",rest:"rest",engine:q1},t,e)}function Rd(t,e){return St({id:"dish",label:"A parabolic dish on a two-axis gimbal: the pointer aims it, and it follows on a spring.",rest:"rest",engine:Jl},t,e)}function Pd(t,e){return St({id:"router",label:"A wifi router whose antennas lean toward the pointer, the nearest the most and the others less the further away.",rest:"rest",engine:Nf},t,e)}function Ld(t,e){return St({id:"sieve",label:"Three test sieves stacked over a pan: the pointer's height picks one, it rises clear of the stack, and every mesh is bare.",rest:"rest",engine:If},t,e)}function _d(t,e){return St({id:"rail",label:"A garment rail with seven bare hangers: the pointer brushes them, and each rocks away from it, the nearest most, and settles.",rest:"rest",engine:tf},t,e)}function Bd(t,e){return St({id:"plug",label:"A wall socket and a plug lying on the floor at the end of its cord: the pointer draws the plug up toward the socket, and it stops short of it.",rest:"rest",engine:Bu},t,e)}function Id(t,e){return St({id:"query",label:"A question mark built as a solid on a plinth, its dot a loose ball: the hook turns about its stem toward the pointer, and the ball rolls after it.",rest:"rest",engine:Zu},t,e)}function zd(t,e){return St({id:"drawer",label:"A filing cabinet of three drawers: the pointer's height picks one, it slides out, and inside are two dividers and nothing between them.",rest:"rest",engine:n1},t,e)}function Hd(t,e){return St({id:"basket",label:"An empty wire shopping basket under a bail handle: the pointer tilts it toward itself on a spring, so the bare floor shows, and the handle swings after it, late.",rest:"rest",engine:Dl},t,e)}function Od(t,e){return St({id:"plot",label:"A bar chart with no data: seven flat tabs on its base, before a plate of grid lines. The pointer brushes them, and each lifts a little, the nearest most, and drops back to zero.",rest:"rest",engine:Au},t,e)}function Dd(t,e){return St({id:"hub",label:"A hub and eight tiles on a grid: the tile under the pointer rises and its link turns solid; its neighbours rise less.",rest:"rest",engine:g1,tour:[[205,112],[260,144],[328,179],[263,207],[201,243],[131,209],[76,177],[136,141],null]},t,e)}function $d(t,e){return St({id:"relay",label:"A hub and four branches of tiles: the path to the leaf under the pointer lights hop by hop, each tile rising in turn.",rest:"rest",engine:vf,tour:[[45,145],[140,253],[271,258],[355,216],[344,151],null]},t,e)}function Fd(t,e){return St({id:"settle",label:"Twelve tiles lie crooked round a hub; as the pointer nears it they slide into a tree and the links draw in.",rest:"rest",engine:Rf,tour:[[360,40],[320,120],[203,155],null]},t,e)}function Wd(t,e){return St({id:"format",label:"A file of ten crooked lines: the pointer runs the formatter down it, and every line above snaps square to its indent.",rest:"rest",engine:h1,tour:[[290,162],[199,168],[135,200],null]},t,e)}function Xd(t,e){return St({id:"rebuild",label:"A tree of package tiles: the one touched rises, and every package that depends on it rises after it along the links.",rest:"rest",engine:ff,tour:[[47,236],[276,172],[181,106],null]},t,e)}function Gd(t,e){return St({id:"stack",label:"A call stack of five frames: the pointer's height picks one, and the frames above lift away to open it.",rest:"rest",engine:Zf,tour:[[200,250],[200,216],[200,199],null]},t,e)}var Qo=typeof window>"u"?Dt.useEffect:Dt.useLayoutEffect;function Nt(t,e){const s=Dt.forwardRef(function(o,c){const{intensity:r,theme:i,label:h,onRead:v,play:x,style:p,...m}=o,N=h??o["aria-label"],B=Dt.useRef(null),L=Dt.useRef(null),H=Dt.useRef(v),W=Dt.useCallback(P=>{B.current=P,typeof c=="function"?c(P):c&&(c.current=P)},[c]);return Qo(()=>{H.current=v}),Qo(()=>{const P=e(B.current,{intensity:r,theme:i,label:N,play:x,onRead:j=>H.current?.(j)});return L.current=P,()=>{P.destroy(),L.current=null}},[]),Qo(()=>{L.current?.update({intensity:r,theme:i,label:N,play:x})},[r,i,N,x]),U.jsx("div",{...m,ref:W,style:{aspectRatio:"5 / 4",...p}})});return s.displayName=t,s}Nt("Riffle",hd);Nt("Terrain",pd);Nt("Exploded",vd);Nt("Phosphor",md);Nt("Slow",gd);Nt("Turntable",xd);Nt("Keyboard",bd);Nt("Elevator",yd);Nt("Phone",Md);Nt("Laptop",wd);Nt("Terminal",kd);Nt("Cabinet",Ad);Nt("Branches",Ed);Nt("Vault",Td);Nt("Lockers",Sd);Nt("Loupe",Nd);Nt("Padlock",Cd);Nt("Patch",jd);Nt("Dish",Rd);Nt("Router",Pd);Nt("Sieve",Ld);Nt("Rail",_d);Nt("Plug",Bd);Nt("Query",Id);Nt("Drawer",zd);Nt("Basket",Hd);Nt("Plot",Od);var Yd=Nt("Hub",Dd);Nt("Relay",$d);Nt("Settle",Fd);Nt("Format",Wd);Nt("Rebuild",Xd);Nt("Stack",Gd);function Zd(){const t=Dt.useRef(null),{resolvedTheme:e}=Ui(),[s,u]=Dt.useState(!1),[o,c]=Dt.useState(()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches),[r,i]=Dt.useState(null),[h,v]=Dt.useState(null);Dt.useLayoutEffect(()=>{const p=getComputedStyle(t.current);v({color:p.getPropertyValue("--tt-electric-core").trim(),glowColor:p.getPropertyValue("--tt-electric-glow").trim()})},[e]),Dt.useEffect(()=>{const p=window.matchMedia("(prefers-reduced-motion: reduce)");let m=!1;const N=()=>{c(p.matches),u(m&&!document.hidden&&!p.matches&&e==="dark")},B=new IntersectionObserver(([L])=>{m=L.isIntersecting&&L.intersectionRect.width>0&&L.intersectionRect.height>0,N()});return B.observe(t.current),p.addEventListener("change",N),document.addEventListener("visibilitychange",N),()=>{B.disconnect(),p.removeEventListener("change",N),document.removeEventListener("visibilitychange",N)}},[e]),Dt.useEffect(()=>{if(!s||r||e!=="dark")return;let p=!0;return Vi(async()=>{const{default:m}=await import("./ElectricLogo-DFt7_F2f.js");return{default:m}},__vite__mapDeps([0,1,2,3])).then(({default:m})=>{p&&i(()=>m)}).catch(()=>{}),()=>{p=!1}},[s,r,e]);let x=null;return e==="light"?x=U.jsx(Yd,{className:"tt-cloud-figure pointer-events-auto w-full translate-x-8",intensity:.4,play:!0,tabIndex:-1}):o?x=U.jsx("span",{className:"tt-cloud-electric-static"}):s&&r&&h&&(x=U.jsx(r,{src:"/token-tracker-bolt.svg",...h,theme:e,scale:.72,intensity:1.25,glow:1.4,thickness:1.6,strands:4,bend:.6,crackle:1.3,arcs:1.2,flicker:.28,fill:0,speed:2.1,interactive:!0,cursorIntensity:.85,cursorRadius:90})),U.jsx("div",{ref:t,className:`tt-cloud-electric is-${e}`,"aria-hidden":"true",children:x})}function Si(t){if(t.pointerType==="touch"||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;const e=t.currentTarget,s=e.getBoundingClientRect();e.style.setProperty("--tt-plan-pointer-x",`${t.clientX-s.left}px`),e.style.setProperty("--tt-plan-pointer-y",`${t.clientY-s.top}px`)}function Ni({items:t}){return U.jsx("ul",{className:"space-y-4 py-7 text-sm leading-6",children:t.map(e=>U.jsxs("li",{className:"flex items-start gap-3",children:[U.jsx(pl,{size:16,className:"mt-1 shrink-0 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0}),U.jsx("span",{children:e})]},e))})}function rh(){const t=Ji(),e=Qi(),{state:s}=qi();return U.jsx(Kd,{catalogState:t,accountState:e,initialSelection:s?.cloudPlanSelection,restoreFocus:s?.cloudPlanRestoreFocus})}function Kd({catalogState:t,accountState:e,initialSelection:s,selection:u,restoreFocus:o=!1}){const c=Dt.useRef(null),r=Dt.useRef(null),i=Dt.useRef(!1);Dt.useLayoutEffect(()=>{const D=c.current?.parentElement;D&&(D.scrollTop=0)},[]);const h=tl(),{openLoginModal:v}=el(),{catalog:x,loading:p,error:m,refresh:N}=t,{account:B,auth:L,loading:H,error:W,refresh:P}=e,[j,F]=Dt.useState(s?.billingMode==="fixed"?"fixed":"recurring"),[X,z]=Dt.useState(s?.termMonths===1?1:12),O=u?.billingMode||j,k=u?.termMonths||X,y=B?.membership,T=y?.has_gift===!0||y?.access_source==="gift"||B?.gifts?.some(D=>["active","pending"].includes(D.state)),n=B?.subscriptions?.some(D=>["active","trialing","past_due","paused"].includes(D.status)&&!D.cancel_at_period_end),a=y?.status==="active"&&!n&&!T,l=a?"fixed":O,d=x?.prices?.find(D=>D.billing_mode===l&&D.term_months===k),f=typeof d?.sku=="string"&&!!d.sku.trim(),b=x?.prices?.find(D=>D.billing_mode===l&&D.term_months===1),M=x?.prices?.find(D=>D.billing_mode===l&&D.term_months===12),S=d?.currency||"USD",A=nl(b,M),g=rl(x),C=x?.providers?.waffo,w=[...B?.conflict_orders||[],...B?.pending_orders||[]].some(D=>D.retry_payment_conflict_at),E=y&&["active","trial","transition","legacy_free"].includes(y.status),$=y?.trial_available===!1,G=!L?.signedIn||y?.trial_available===!0,J=!!(L?.loading||L?.signedIn&&(H||W||!y)),_=n||T,R=!E&&!n&&!T&&!$,Y=y?.status==="transition"?y.transition_ends_at:y?.status==="trial"?y.trial_ends_at:a?y.expires_at:null,Z=st(a?"cloud.action.renew":l==="fixed"?"cloud.action.buy_pro":"cloud.action.subscribe"),V=!f||!g||p||m||J||!C||w;Dt.useLayoutEffect(()=>{if(!o||i.current||p||J)return;const D=r.current?.querySelector("button:not([disabled]), a[href]");D&&(D.focus(),i.current=!0)},[o,p,J]);const K=(D=!1)=>{if(!f)return;const et=ul({trial:D,sku:d?.sku,userId:L?.signedIn?L.user?.id:null});if(!L?.signedIn){v({nextPath:et,subtitle:st(D?"cloud.login.trial_context":"cloud.login.purchase_context")});return}h(et)};return x?.policy?.hosting_mode==="self_hosted"||y?.status==="self_hosted"?U.jsx(sl,{}):U.jsx("div",{ref:c,className:"tt-cloud-theme flex flex-1 flex-col font-oai text-oai-black dark:text-oai-white",children:U.jsxs("main",{className:"tt-cloud-layout relative isolate mx-auto w-full max-w-5xl px-4 py-8 sm:px-6 sm:py-10",children:[U.jsx("div",{className:"tt-cloud-art","aria-hidden":"true",children:U.jsx(Zd,{})}),U.jsxs("header",{className:"relative z-10 mb-9 max-w-xl",children:[U.jsx("h1",{className:"text-balance text-3xl font-semibold tracking-tight sm:text-4xl",children:st("cloud.page.title")}),U.jsx("p",{className:"mt-3 text-base leading-7 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.page.subtitle")})]}),w?U.jsx("div",{className:"mb-6",children:U.jsx(al,{})}):null,U.jsxs("div",{className:"tt-plan-grid relative z-10",children:[U.jsxs(xc,{className:"tt-plan-card",bodyClassName:"tt-plan-body",onPointerMove:Si,children:[U.jsxs("div",{children:[U.jsxs("div",{className:"flex min-h-11 items-center gap-2.5",children:[U.jsx(ol,{size:19,className:"text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0}),U.jsx("h2",{className:"text-lg font-semibold",children:st("cloud.free.title")})]}),U.jsx("p",{className:"mt-2 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.free.subtitle")})]}),U.jsxs("div",{className:"border-b border-oai-gray-200 pb-6 pt-7 dark:border-oai-gray-800",children:[U.jsx("p",{className:"text-3xl font-semibold tracking-tight sm:text-4xl",children:st("cloud.free.price")}),U.jsx("p",{className:"mt-3 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.free.forever")})]}),U.jsx(Ni,{items:[st("cloud.free.device_scope"),st("cloud.free.tracking"),st("cloud.free.limits"),st("cloud.free.desktop"),st("cloud.free.exports"),st("cloud.plan.local_community")]}),U.jsx("div",{"aria-hidden":!0,className:"border-t border-oai-gray-200 pt-4 dark:border-oai-gray-800"}),U.jsx(Or,{as:Gs,to:L?.signedIn?"/dashboard":"/landing#download",variant:"secondary",className:"w-full no-underline",children:st(L?.signedIn?"cloud.action.open_dashboard":"cloud.free.cta")}),U.jsx("div",{"aria-hidden":!0})]}),U.jsxs(xc,{className:"tt-plan-card border-oai-gray-300 dark:border-oai-gray-600",bodyClassName:"tt-plan-body",onPointerMove:Si,children:[U.jsxs("div",{children:[U.jsxs("div",{className:"flex min-h-11 flex-wrap items-center justify-between gap-x-3 gap-y-1",children:[U.jsxs("h2",{className:"flex items-center gap-2.5 text-lg font-semibold",children:[U.jsx(cl,{size:19,className:"text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0}),st("cloud.plan.title")]}),U.jsx("div",{role:"group","aria-label":st("cloud.selector.term"),className:"tt-pro-period-control shrink-0",children:U.jsx(fl,{options:[{value:1,label:st("cloud.term.monthly")},{value:12,label:st("cloud.term.yearly")}],value:k,onChange:z})})]}),U.jsx("p",{className:"mt-2 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.plan.subtitle")})]}),U.jsxs("div",{className:"border-b border-oai-gray-200 pb-6 pt-7 dark:border-oai-gray-800","aria-live":"polite",children:[U.jsxs("p",{className:"flex flex-wrap items-baseline gap-2",children:[U.jsx("span",{className:"text-3xl font-semibold tracking-tight tabular-nums sm:text-4xl",children:d?Ja(d.amount_cents,S):st("cloud.price.pending")}),U.jsx("span",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400",children:st(k===12?"cloud.price.per_year":"cloud.price.per_month")})]}),U.jsxs("p",{className:"mt-3 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400",children:[U.jsx("span",{children:d?k===12?st("cloud.plan.monthly_equivalent",{equivalent:Ja(Math.round(d.amount_cents/12),S)}):st(l==="fixed"?"cloud.price.fixed_monthly_total":"cloud.price.monthly_total",{total:Ja(d.amount_cents,S)}):st("cloud.price.waiting")}),k===12&&d&&A!==0?U.jsxs("span",{children:[" · ",st("cloud.price.savings",{percent:A})]}):null]})]}),U.jsx(Ni,{items:[st("cloud.plan.device_sync"),st("cloud.plan.includes_local"),st("cloud.plan.anywhere"),st("cloud.plan.sync",{minutes:x?.limits?.sync_minutes||15}),st("cloud.plan.retained_history",{days:x?.limits?.hourly_history_days||90,months:x?.limits?.daily_history_months||24}),st("cloud.plan.identity")]}),U.jsxs("div",{className:`border-t border-oai-gray-200 dark:border-oai-gray-800 ${R?"pt-4":"py-4"}`,children:[!R&&a?U.jsxs("p",{className:"flex min-h-11 items-center text-sm font-medium",children:[st("cloud.billing_mode.fixed"),U.jsx("span",{className:"ml-2 text-xs font-normal text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.plan.renewal_off")})]}):null,_?U.jsx("p",{className:"flex min-h-11 items-center text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:gc(y?.status)}):null,!R&&!a&&!_?U.jsxs("div",{className:"flex items-center justify-between gap-3",children:[U.jsxs("label",{htmlFor:"pro-renewal-toggle",className:"cursor-pointer text-sm font-medium",children:[st("cloud.billing_mode.recurring"),U.jsx("span",{className:"ml-2 text-xs font-normal text-oai-gray-500 dark:text-oai-gray-400",children:st(O==="recurring"?"cloud.plan.renewal_hint":"cloud.plan.renewal_off")})]}),U.jsx("button",{id:"pro-renewal-toggle",type:"button",role:"switch","aria-checked":O==="recurring","aria-label":st("cloud.billing_mode.recurring"),onClick:()=>F(D=>D==="recurring"?"fixed":"recurring"),className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-md",children:U.jsx("span",{"aria-hidden":!0,className:`relative inline-flex h-5 w-9 items-center rounded-full transition-colors ${O==="recurring"?"bg-oai-gray-900 dark:bg-oai-gray-100":"bg-oai-gray-300 dark:bg-oai-gray-700"}`,children:U.jsx("span",{className:`h-3.5 w-3.5 rounded-full transition-transform motion-reduce:transition-none ${O==="recurring"?"translate-x-[19px] bg-white dark:bg-oai-gray-900":"translate-x-[3px] bg-white"}`})})})]}):null]}),U.jsxs("div",{ref:r,children:[_?U.jsx(Or,{as:Gs,to:"/settings?section=cloud",className:"w-full no-underline",children:st("cloud.action.manage_membership")}):null,!_&&R?U.jsxs(Or,{type:"button",onClick:()=>K(!0),disabled:!f||!g||p||m||J||!G||w,className:"w-full",children:[st("cloud.action.try",{days:x?.limits?.trial_days||7}),U.jsx(Qa,{size:16,className:"ml-2","aria-hidden":!0})]}):null,!_&&!R?U.jsxs(Or,{type:"button",onClick:()=>K(),disabled:V,className:"w-full",children:[Z,U.jsx(Qa,{size:16,className:"ml-2","aria-hidden":!0})]}):null]}),U.jsxs("div",{className:`text-center text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400 ${!_&&(E||$)||T?"pt-3":""}`,children:[!_&&!E&&$?U.jsx("p",{children:st("cloud.trial.used_hint")}):null,E&&!_?U.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-x-2 gap-y-1",children:[U.jsx("span",{children:gc(y?.status)}),Y?U.jsxs("span",{children:["· ",st("cloud.membership.expires",{date:il(Y)})]}):null,U.jsx(Gs,{to:"/settings?section=cloud",className:"inline-flex min-h-8 items-center underline underline-offset-4",children:st("cloud.action.manage_membership")})]}):null,T?U.jsx("p",{children:st("cloud.gift.error_active")}):null]})]})]}),U.jsxs("div",{className:"mt-5 space-y-3",children:[W?U.jsx(Yn,{error:W,context:"account",onRetry:P}):null,m?U.jsx(Yn,{error:m,onRetry:N}):null,!m&&p?U.jsx(Yn,{children:st("cloud.catalog.loading")}):null,!m&&!p&&!g?U.jsx(Yn,{children:st("cloud.catalog.preview")}):null,!m&&!p&&g&&!C?U.jsx(Yn,{children:st("cloud.catalog.provider_unavailable")}):null,!m&&!p&&g&&x?.environment==="sandbox"?U.jsx(Yn,{children:st("cloud.catalog.sandbox")}):null]}),U.jsxs("section",{className:"mt-8 rounded-xl border border-oai-gray-200 bg-white px-6 pt-6 pb-2 dark:border-oai-gray-800 dark:bg-oai-gray-900 md:px-7 md:pt-7",children:[U.jsx("h2",{className:"mb-3 text-lg font-semibold",children:st("cloud.plan.faq_title")}),U.jsxs("div",{className:"divide-y divide-oai-gray-200 dark:divide-oai-gray-800",children:[U.jsxs("details",{className:"group",children:[U.jsxs("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-4 py-4 text-sm font-medium [&::-webkit-details-marker]:hidden",children:[st("cloud.plan.details_title"),U.jsx(bc,{size:16,className:"shrink-0 text-oai-gray-500 transition-transform group-open:rotate-180 motion-reduce:transition-none","aria-hidden":!0})]}),U.jsxs("div",{className:"pb-5",children:[U.jsx(ll,{limits:x?.limits}),U.jsx("p",{className:"mt-4 text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.plan.device_fair_use")}),U.jsx("p",{className:"mt-3 text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.feature.pro_identity")})]})]}),[[st("cloud.faq.local_title"),st("cloud.faq.local_body")],[st("cloud.faq.cost_title"),st("cloud.faq.cost_body")],[st("cloud.faq.expiry_title"),st("cloud.faq.expiry_body")],[st("cloud.faq.platform_title"),st("cloud.faq.platform_body")],[st("cloud.faq.existing_title"),st("cloud.faq.existing_body")]].map(([D,et])=>U.jsxs("details",{className:"group",children:[U.jsxs("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-4 py-4 text-sm font-medium [&::-webkit-details-marker]:hidden",children:[D,U.jsx(bc,{size:16,className:"shrink-0 text-oai-gray-500 transition-transform group-open:rotate-180 motion-reduce:transition-none","aria-hidden":!0})]}),U.jsx("p",{className:"pb-5 text-sm leading-7 text-oai-gray-500 dark:text-oai-gray-400",children:et})]},D))]})]}),U.jsxs("section",{className:"mt-6 flex flex-col gap-4 rounded-xl border border-oai-gray-200 bg-oai-gray-50 p-6 dark:border-oai-gray-800 dark:bg-oai-gray-900 sm:flex-row sm:items-center sm:justify-between md:p-7",children:[U.jsxs("div",{className:"max-w-xl",children:[U.jsxs("h2",{className:"flex items-center gap-2 text-sm font-semibold",children:[U.jsx(dl,{size:16,"aria-hidden":!0}),st("cloud.self_host.title")]}),U.jsx("p",{className:"mt-2 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.plan.self_host_summary")})]}),U.jsxs(Or,{as:Gs,to:"/self-host",variant:"secondary",className:"shrink-0 self-start no-underline sm:self-auto",children:[st("cloud.self_host.cta"),U.jsx(Qa,{size:16,className:"ml-2","aria-hidden":!0})]})]}),U.jsxs("footer",{className:"mt-7 flex items-start justify-center gap-2 text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:[U.jsx(hl,{size:15,className:"mt-0.5 shrink-0","aria-hidden":!0}),st("cloud.feature.privacy_detail")]})]})})}export{rh as CloudPage,Kd as CloudPlanView};