tokentracker-cli 1.3.6 → 1.3.8

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 (126) hide show
  1. package/THIRD_PARTY_NOTICES.md +39 -0
  2. package/dashboard/dist/THIRD_PARTY_NOTICES.txt +39 -0
  3. package/dashboard/dist/assets/{AchievementBadge-CHDt55IP.js → AchievementBadge-BqLeP5y3.js} +1 -1
  4. package/dashboard/dist/assets/{AchievementsPage-DpbRHmb8.js → AchievementsPage-BwVkM45R.js} +2 -2
  5. package/dashboard/dist/assets/{AchievementsSection-Ck5CiX4P.js → AchievementsSection-CglgOcQ1.js} +1 -1
  6. package/dashboard/dist/assets/{BadgeDetailModal-BVPqlh0X.js → BadgeDetailModal-IurF0cmo.js} +1 -1
  7. package/dashboard/dist/assets/BotAnimated-C4_NxPuy.js +1 -0
  8. package/dashboard/dist/assets/{Card-C9FjyAwh.js → Card-C-UuIN42.js} +1 -1
  9. package/dashboard/dist/assets/{CloudCheckoutPage-ChkjId9l.js → CloudCheckoutPage-CrMDquLi.js} +1 -1
  10. package/dashboard/dist/assets/CloudPage-D6xTPnMs.js +2 -0
  11. package/dashboard/dist/assets/{CommandPalette-DFnEeZzc.js → CommandPalette-8LFLY-LQ.js} +1 -1
  12. package/dashboard/dist/assets/{CommunityStatsModal-CZDS8gPA.js → CommunityStatsModal-DYTjxABN.js} +1 -1
  13. package/dashboard/dist/assets/{ConfirmModal-DRhgBoGE.js → ConfirmModal-St89kP59.js} +1 -1
  14. package/dashboard/dist/assets/{Controls-BmT6-x_L.js → Controls-BJAwM2gB.js} +1 -1
  15. package/dashboard/dist/assets/DashboardPage-BvGqFvP7.js +1 -0
  16. package/dashboard/dist/assets/{DateRangePopover-DuqNLatr.js → DateRangePopover-Cbd1idiF.js} +1 -1
  17. package/dashboard/dist/assets/{DevicePage-BtI0bWyg.js → DevicePage-BcSU0xgf.js} +1 -1
  18. package/dashboard/dist/assets/{DialogClose-DjnC3P4V.js → DialogClose-Cb1-Hd8P.js} +1 -1
  19. package/dashboard/dist/assets/DialogDescription-DQvYzWMp.js +1 -0
  20. package/dashboard/dist/assets/{DialogTitle-B9NNSz5p.js → DialogTitle-VXrHY7H0.js} +1 -1
  21. package/dashboard/dist/assets/ElectricLogo-D0wiAojj.css +1 -0
  22. package/dashboard/dist/assets/ElectricLogo-DmQqYnSD.js +282 -0
  23. package/dashboard/dist/assets/{FadeIn-fsVQmJGa.js → FadeIn-BEieTXMD.js} +1 -1
  24. package/dashboard/dist/assets/{HeaderGithubStar-Cg-f1iZc.js → HeaderGithubStar-BlYC_PSb.js} +1 -1
  25. package/dashboard/dist/assets/{HoverTooltip-DRIRlzXH.js → HoverTooltip-C5Pe7iBz.js} +1 -1
  26. package/dashboard/dist/assets/{IpCheckPage-DaAubaJQ.js → IpCheckPage-Diln3EdG.js} +1 -1
  27. package/dashboard/dist/assets/{LandingPage-DjBGIjHk.js → LandingPage-BzGYuAO7.js} +2 -2
  28. package/dashboard/dist/assets/{LeaderboardPage-BkCXqhz7.js → LeaderboardPage-Bn-ehU5S.js} +2 -2
  29. package/dashboard/dist/assets/{LeaderboardProBadge-Ds-wiWcN.js → LeaderboardProBadge-SovdGwYs.js} +1 -1
  30. package/dashboard/dist/assets/{LeaderboardProfileModal-X_rfSQT5.js → LeaderboardProfileModal-BhxmTcHh.js} +3 -3
  31. package/dashboard/dist/assets/{LeaderboardProfilePage-rpl1Ozwj.js → LeaderboardProfilePage-3iAYvoTb.js} +1 -1
  32. package/dashboard/dist/assets/{LimitsPage-BUvDBmgD.js → LimitsPage-DHxFAdqK.js} +1 -1
  33. package/dashboard/dist/assets/{LocalOnlyNotice-LBH1DBrs.js → LocalOnlyNotice-HlGfiiI3.js} +1 -1
  34. package/dashboard/dist/assets/{LoginCard-B0vRJEcg.js → LoginCard-CamUYmiF.js} +1 -1
  35. package/dashboard/dist/assets/{LoginModal-DdzgP43f.js → LoginModal-CcmYUJ45.js} +1 -1
  36. package/dashboard/dist/assets/{LoginPage-B4VCQxzn.js → LoginPage-DMNNmZwr.js} +1 -1
  37. package/dashboard/dist/assets/PetPage-D6xFX8QA.js +2 -0
  38. package/dashboard/dist/assets/PopoverPopup-CKKgItAT.js +1 -0
  39. package/dashboard/dist/assets/{ProviderIcon-ClHXNkQ0.js → ProviderIcon-B-uS3pJ3.js} +1 -1
  40. package/dashboard/dist/assets/{ResetPasswordPage-BeUpNt_6.js → ResetPasswordPage-DX4RJjX0.js} +1 -1
  41. package/dashboard/dist/assets/{Select-BHEXdYHu.js → Select-Dcg7FYAt.js} +1 -1
  42. package/dashboard/dist/assets/{SelectItemText-aaQK_QIt.js → SelectItemText-4vuj6xMs.js} +1 -1
  43. package/dashboard/dist/assets/{SelfHostPage-ClNhKnlP.js → SelfHostPage-ButVBgE7.js} +1 -1
  44. package/dashboard/dist/assets/{ServiceStatusPage-Byd_s6FS.js → ServiceStatusPage-DJDDO6lV.js} +1 -1
  45. package/dashboard/dist/assets/{SessionsPage-u3_b4PO7.js → SessionsPage-CiUirFMD.js} +1 -1
  46. package/dashboard/dist/assets/SettingsPage-CB4CML8u.js +5 -0
  47. package/dashboard/dist/assets/{SkillsPage-Bb-PVfux.js → SkillsPage-D2tfFFY8.js} +1 -1
  48. package/dashboard/dist/assets/{TokenGalaxy-CubA3PXu.js → TokenGalaxy-TQ-eWK8P.js} +1 -1
  49. package/dashboard/dist/assets/TooltipPopup-BhSCJqFR.js +1 -0
  50. package/dashboard/dist/assets/{TrendMonitor-as8idaOy.js → TrendMonitor-CP6ZZ53c.js} +1 -1
  51. package/dashboard/dist/assets/{WidgetsPage-DDPR4v0R.js → WidgetsPage-BdeR7P8D.js} +1 -1
  52. package/dashboard/dist/assets/{WrappedPage-zZzgYz6s.js → WrappedPage-OqcqupRE.js} +1 -1
  53. package/dashboard/dist/assets/__vite-browser-external-BXwSXUpN.js +45 -0
  54. package/dashboard/dist/assets/__vite-browser-external-DvNSoTb8.css +1 -0
  55. package/dashboard/dist/assets/{agent-logos-CoNhCm9-.js → agent-logos-E6GfkcgD.js} +1 -1
  56. package/dashboard/dist/assets/{arrow-left-C5hDp7fc.js → arrow-left-D_ufthLH.js} +1 -1
  57. package/dashboard/dist/assets/{arrow-right-DEvMmSiA.js → arrow-right-CgV_OrFz.js} +1 -1
  58. package/dashboard/dist/assets/{arrow-up-right-DxY0neJ4.js → arrow-up-right-CzeEeXRz.js} +1 -1
  59. package/dashboard/dist/assets/{calendar-days-bzh7-lab.js → calendar-days-BQdTF7ec.js} +1 -1
  60. package/dashboard/dist/assets/{check-CSZvcC3X.js → check-C--D8Lze.js} +1 -1
  61. package/dashboard/dist/assets/{chevron-down-CsiGcG0G.js → chevron-down-BzkceD4z.js} +1 -1
  62. package/dashboard/dist/assets/{cloud-checkout-z_eDVwm6.js → cloud-checkout-m1Yllbij.js} +1 -1
  63. package/dashboard/dist/assets/{composite-Cq0CmNAv.js → composite-7DhFi6TA.js} +1 -1
  64. package/dashboard/dist/assets/{download-DqLpubIF.js → download-BSyGLtfW.js} +1 -1
  65. package/dashboard/dist/assets/{external-link-B8E8tbB3.js → external-link-KzFbueBT.js} +1 -1
  66. package/dashboard/dist/assets/{flame-CrJDlnro.js → flame-DlPM_oaj.js} +1 -1
  67. package/dashboard/dist/assets/{format-tokens-DPIGGOlt.js → format-tokens-BHBaWyA3.js} +1 -1
  68. package/dashboard/dist/assets/{gift-CCp4Hh50.js → gift-BhWBQnun.js} +1 -1
  69. package/dashboard/dist/assets/{host-mode-xzpMLcwP.js → host-mode--iIPGrkN.js} +1 -1
  70. package/dashboard/dist/assets/{icons-CbB9Y-eV.js → icons-COEaSBYi.js} +1 -1
  71. package/dashboard/dist/assets/{index-BiK5-tQp.js → index-Bo8CSxCq.js} +1 -1
  72. package/dashboard/dist/assets/{index-DX7nYrHb.js → index-CW6A_Ff_.js} +1 -1
  73. package/dashboard/dist/assets/{index-zuC7FU-t.js → index-Cf4HcmLp.js} +1 -1
  74. package/dashboard/dist/assets/{info-B3NKYwWG.js → info-D1gOdsM_.js} +1 -1
  75. package/dashboard/dist/assets/{link-2-BRc8d8M9.js → link-2-CXDnDOK4.js} +1 -1
  76. package/dashboard/dist/assets/{loader-circle-Cm5Nsgp-.js → loader-circle-DWeQPecG.js} +1 -1
  77. package/dashboard/dist/assets/{modifiers.esm-CYLYBECB.js → modifiers.esm-BljqMT7V.js} +1 -1
  78. package/dashboard/dist/assets/{monitor-smartphone--IZ4D84F.js → monitor-smartphone-DpkdtOjk.js} +1 -1
  79. package/dashboard/dist/assets/{play-CUrMOLtq.js → play-BlGNrekI.js} +1 -1
  80. package/dashboard/dist/assets/{plus-0hrCDl4r.js → plus-CpYVQ_t-.js} +1 -1
  81. package/dashboard/dist/assets/{provider-display-CNK0FN3Q.js → provider-display-D6Blvktj.js} +1 -1
  82. package/dashboard/dist/assets/{react-CCNSVHEA.js → react-BMJ2wuz1.js} +1 -1
  83. package/dashboard/dist/assets/{safePolygon-DsolkMUX.js → safePolygon-BFHXICk1.js} +1 -1
  84. package/dashboard/dist/assets/{search-DYmYb9xY.js → search-0NxXkytY.js} +1 -1
  85. package/dashboard/dist/assets/{server-CYcqzdSW.js → server-GHkrUKSI.js} +1 -1
  86. package/dashboard/dist/assets/{shield-check-5zABLIr6.js → shield-check-C16cbx1z.js} +1 -1
  87. package/dashboard/dist/assets/{skills-api-CD-ojBGj.js → skills-api-DAm1fFB4.js} +1 -1
  88. package/dashboard/dist/assets/{sortable.esm-BCn2Ms6R.js → sortable.esm-CkOax8h0.js} +1 -1
  89. package/dashboard/dist/assets/{store-B22kwLs0.js → store-DR444-5P.js} +1 -1
  90. package/dashboard/dist/assets/{terminal-CTv-oTU2.js → terminal-BpvNaIz9.js} +1 -1
  91. package/dashboard/dist/assets/{trash-C5MAh3GO.js → trash-DX8LwOmN.js} +1 -1
  92. package/dashboard/dist/assets/{use-community-stats-BrgrxUD2.js → use-community-stats-BFW4-DYG.js} +1 -1
  93. package/dashboard/dist/assets/{use-latest-request-guard-B1_rbvgH.js → use-latest-request-guard-Cpcl08EJ.js} +1 -1
  94. package/dashboard/dist/assets/{use-limits-display-prefs-BOk5f-HM.js → use-limits-display-prefs-BqixyeAa.js} +1 -1
  95. package/dashboard/dist/assets/{use-native-settings-B2gc_m9W.js → use-native-settings-BSx7lGEK.js} +1 -1
  96. package/dashboard/dist/assets/{use-ordered-list-N3sGpJ0u.js → use-ordered-list-UCjB0_zK.js} +1 -1
  97. package/dashboard/dist/assets/use-reduced-motion-C6zOHbfR.js +1 -0
  98. package/dashboard/dist/assets/use-session-efficiency-pref-BgOJaGEy.js +1 -0
  99. package/dashboard/dist/assets/{use-transform-BsaLmw46.js → use-transform-Y98QifnQ.js} +1 -1
  100. package/dashboard/dist/assets/{use-usage-limits-wL7v-S0r.js → use-usage-limits-DJGO-Kxv.js} +1 -1
  101. package/dashboard/dist/assets/{useCurrency-CbCnjf-N.js → useCurrency-DL458pqS.js} +1 -1
  102. package/dashboard/dist/assets/{usePositioner-MepYlL0A.js → usePositioner-DnCQwlVT.js} +1 -1
  103. package/dashboard/dist/assets/{useTokenFormat-Bq-rwuKa.js → useTokenFormat-CYLt9pgs.js} +1 -1
  104. package/dashboard/dist/assets/{zap-1ah5e11g.js → zap-BW6E_Jv3.js} +1 -1
  105. package/dashboard/dist/index.html +2 -2
  106. package/dashboard/dist/ip-check.html +2 -2
  107. package/dashboard/dist/leaderboard.html +2 -2
  108. package/dashboard/dist/share.html +2 -2
  109. package/dashboard/dist/token-tracker-bolt-outline.svg +3 -0
  110. package/dashboard/dist/token-tracker-bolt.svg +3 -0
  111. package/package.json +1 -1
  112. package/src/lib/pricing/seed-snapshot.json +1 -1
  113. package/dashboard/dist/assets/BotAnimated-CVsv6kxT.js +0 -1
  114. package/dashboard/dist/assets/CloudPage-D1nrt3MG.js +0 -1
  115. package/dashboard/dist/assets/CloudUsageExport-jXdoiD0e.js +0 -4
  116. package/dashboard/dist/assets/DashboardPage-DfwwXZBo.js +0 -1
  117. package/dashboard/dist/assets/DialogDescription-yy_QHg7O.js +0 -1
  118. package/dashboard/dist/assets/PetPage-Cmf6aXc9.js +0 -1
  119. package/dashboard/dist/assets/PopoverPopup-BzfELnIC.js +0 -1
  120. package/dashboard/dist/assets/SettingsPage-DweCAbsy.js +0 -2
  121. package/dashboard/dist/assets/TooltipPopup-DMliWhoK.js +0 -1
  122. package/dashboard/dist/assets/__vite-browser-external-DWN9Fb-H.js +0 -45
  123. package/dashboard/dist/assets/__vite-browser-external-LpFw4zXh.css +0 -1
  124. package/dashboard/dist/assets/skins-Mc0sI20C.js +0 -1
  125. package/dashboard/dist/assets/use-pet-settings-sWFXgR3m.js +0 -2
  126. package/dashboard/dist/assets/use-reduced-motion-C3MBYVqm.js +0 -1
@@ -1 +0,0 @@
1
- import{r as _,j as I}from"./__vite-browser-external-DWN9Fb-H.js";import{r as Wt,c as Zt,d as mt,e as Jt}from"./use-pet-settings-sWFXgR3m.js";import{T as j,r as $,c as u,a as et,l as H,b as y,d as U,s as rt,e as T,p as Yt,h as pt,f as te,S as ee,t as at,g as jt,i as se,j as ne,k as ie,C as oe,m as xt,n as re}from"./skins-Mc0sI20C.js";function nt(t,e=.55,s=.62){const n=(t%360+360)%360,i=(1-Math.abs(2*s-1))*e,r=i*(1-Math.abs(n/60%2-1)),o=s-i/2,[l,c,p]=n<60?[i,r,0]:n<120?[r,i,0]:n<180?[0,i,r]:n<240?[0,r,i]:n<300?[r,0,i]:[i,0,r],h=f=>Math.round((f+o)*255).toString(16).padStart(2,"0");return`#${h(l)}${h(c)}${h(p)}`}function ae(t,e,s,n,i=1){const r=t.phase+e*t.speed*j,o=Math.cos(t.tilt),l=Math.sin(t.tilt),c=Math.sqrt(Math.max(0,1-t.k*t.k)),p=64,h=t.sweep*j;let f="",M="",k=null;for(let P=0;P<=p;P++){const x=r+P/p*h,m=Math.cos(x),g=Math.sin(x),d=t.a*(m*o+g*-l*t.k)+t.cx,C=t.a*(m*l+g*o*t.k)+t.cy,R=t.a*g*c<0,a=$(d*s),O=$(C*s),E=R!==k?"M":"L";R?M+=`${E}${a} ${O}`:f+=`${E}${a} ${O}`,k=R}const A=Math.cos(t.tilt)*t.a*s,w=Math.sin(t.tilt)*t.a*s;return{id:n,front:f,back:M,width:t.width*s,opacity:i,grad:{x1:$(t.cx*s-A),y1:$(t.cy*s-w),x2:$(t.cx*s+A),y2:$(t.cy*s+w),stops:[nt(t.hue),nt(t.hue+t.hueSpan*.5),nt(t.hue+t.hueSpan)]}}}const D=et(659918),gt=Array.from({length:6},(t,e)=>({a:1.3+D()*.1,k:.05+D()*.4,tilt:e/6*Math.PI+D()*.5,speed:3+D()*.7,phase:D()*j,sweep:.6+D()*.25,hue:e*360/6+D()*30,hueSpan:60+D()*60,width:.05+D()*.012,cx:0,cy:.1})),ce=Array.from({length:4},(t,e)=>({a:.78+e*.2,k:.05+e*.02,tilt:-.62+e*.05,speed:.3,phase:.06*e,sweep:.4,hue:95+e*62,hueSpan:100,width:.05,cx:0,cy:-.12})),Mt=[-.557,-.013,.532],bt=.165,At=1.25,wt=et(48879),le=Array.from({length:5},(t,e)=>({birth:e*.2,angle:wt()*j,rho:.58+wt()*.18}));function he(t,e){const s=[];for(const n of le){const i=t-n.birth;if(i<0||i>.62)continue;const r=n.rho*Math.pow(.75,i*10),o=n.angle+i*100*Math.PI/180;s.push({x:Math.cos(o)*r*e,y:Math.sin(o)*r*e,r:(.04+.028*u(i/.55))*e,depth:u(1-r/.8),opacity:u(i/.06)*u((.62-i)/.08)})}return s}const kt=et(49383),pe=Array.from({length:4},(t,e)=>{const s=e-1.5;return{a:.85*(1+s*.03),k:.15/.85*(1+s*.16),tilt:34*Math.PI/180+s*.035,speed:210/360,phase:-e*.045+kt()*.012,sweep:.34,hue:e*85+kt()*20,hueSpan:80,width:.095,cx:0,cy:0}}),ue=.129,de="#2496e8",fe=-42,It=1.003,ye=.15,me=1.14,xe=.054,ut=15.46,ct=.186,lt=.412,st={yaw:28.49,pitch:28.62,roll:-13},J=t=>t*Math.PI/180;function tt(t,e,s){const n=Math.cos(s),i=Math.sin(s);return[[t[0]*n+e[0]*i,t[1]*n+e[1]*i,t[2]*n+e[2]*i],[e[0]*n-t[0]*i,e[1]*n-t[1]*i,e[2]*n-t[2]*i]]}function Ht(t,e,s=ut){let n=[0,0,1],i=[1,0,0],r=[0,1,0];[n,i]=tt(n,i,J(t.yaw)),[r,n]=tt(r,n,J(t.pitch)),[i,r]=tt(i,r,J(t.roll));const o=l=>{const[c,p]=tt(n,i,J(s*l));return{x:c[0]*e,y:c[1]*e,a:p[0],b:p[1],c:r[0],d:r[1],depth:c[2]}};return[o(-1),o(1)]}const Pt=et(24301),Et=(()=>{const t=[];let e=1.4;for(;e<900;)t.push(e),e+=1.9+Pt()*2.7,Pt()<.18&&(t.push(e),e+=.24);return t})(),ge=.18;function Me(t){for(let e=0;e<Et.length;e++){const s=Et[e];if(t<s)break;const n=(t-s)/ge;if(n>=0&&n<=1)return n<.45?1-n/.45:(n-.45)/.55}return 1}function be(t,e={}){const{wander:s=1,blink:n=!0,float:i=!0}=e;return{dYaw:(H(t,11.3,.4)*5.5+H(t,3.7,2.1)*1.6)*s,dPitch:(H(t,9.1,1.3)*4.2+H(t,4.3,.7)*1.3)*s,dRoll:H(t,13.7,3.2)*2.2*s,lid:n?Me(t):1,driftX:i?H(t,7.9,1.9)*.006:0,driftY:i?H(t,5.3,.3)*.007:0,breath:i?1+Math.sin(t/3.4*Math.PI*2)*.005:1}}function Ae(t){return .06+.94*u(t)}const L=(t,e,s=0,n=1)=>({w:t,h:e,tilt:s,open:n}),F=(t,e,s=0,n=1)=>[L(t,e,s,n),L(t,e,-s,n)],Xt=[{id:"neutre",gaze:{...st},split:ut,eyes:[L(ct,lt),L(ct,lt)]},{id:"attentif",gaze:{yaw:4,pitch:5,roll:-4},split:16,eyes:F(.21,.44)},{id:"surpris",gaze:{yaw:3,pitch:-3,roll:0},split:19,eyes:F(.45,.47)},{id:"excite",gaze:{yaw:6,pitch:-14,roll:0},split:19.5,eyes:F(.4,.56,-10)},{id:"heureux",gaze:{yaw:5,pitch:9,roll:0},split:17,eyes:F(.27,.17,14)},{id:"hilare",gaze:{yaw:4,pitch:14,roll:0},split:18,eyes:F(.34,.13,20)},{id:"colere",gaze:{yaw:3,pitch:7,roll:0},split:17,eyes:F(.34,.15,30)},{id:"triste",gaze:{yaw:3,pitch:-13,roll:0},split:16,eyes:F(.22,.4,-28)},{id:"effraye",gaze:{yaw:2,pitch:-20,roll:0},split:20.5,eyes:F(.4,.6)},{id:"mefiant",gaze:{yaw:12,pitch:6,roll:-6},split:16,eyes:[L(.21,.4),L(.22,.15)]},{id:"confus",gaze:{yaw:-14,pitch:3,roll:8},split:16.5,eyes:[L(.2,.44,-18),L(.28,.17,14)]},{id:"curieux",gaze:{yaw:16,pitch:-9,roll:-15},split:16.5,eyes:[L(.24,.46,-8),L(.2,.38,-8)]},{id:"fier",gaze:{yaw:5,pitch:17,roll:0},split:17,eyes:F(.3,.15,18)},{id:"timide",gaze:{yaw:-19,pitch:-14,roll:-7},split:14,eyes:F(.17,.3)},{id:"blase",gaze:{yaw:-22,pitch:2,roll:0},split:16,eyes:F(.3,.12)},{id:"somnolent",gaze:{yaw:6,pitch:-9,roll:-3},split:16,eyes:F(.2,.42,0,.42)}],Ot=new Map(Xt.map(t=>[t.id,t])),zt=(t,e,s)=>({w:y(t.w,e.w,s),h:y(t.h,e.h,s),tilt:y(t.tilt??0,e.tilt??0,s),open:y(t.open,e.open,s)});function we(t,e,s){return{id:e.id,gaze:{yaw:y(t.gaze.yaw,e.gaze.yaw,s),pitch:y(t.gaze.pitch,e.gaze.pitch,s),roll:y(t.gaze.roll,e.gaze.roll,s)},split:y(t.split,e.split,s),eyes:[zt(t.eyes[0],e.eyes[0],s),zt(t.eyes[1],e.eyes[1],s)]}}const X=(t,e)=>[{w:t,h:e,open:1},{w:t,h:e,open:1}];function S(t={}){return{sil:U(1),offX:0,offY:0,gaze:{...st},split:ut,eyes:X(ct,lt),eyeAlpha:1,bodyAlpha:1,dots:[],arcs:[],notif:null,dotsBehind:!1,...t}}const Gt=-.1875,ke=Yt(pt(0,-.505,.132,0,.13,.075),0,Gt),Ie=Yt(pt(0,-.2535,.1345,0,.2535,.1345),0,0),Pe=(t={})=>({radii:[...ke],rot:0,cx:0,cy:Gt,sx:1,sy:1,...t}),Ee=(t={})=>({radii:[...Ie],rot:0,cx:0,cy:0,sx:1,sy:1,...t}),Oe=te(pt(0,0,.118,0,.172,.012)),Rt=.213;function _t(t){return rt("triangle",{rot:t,cx:-Rt*Math.sin(t),cy:Rt*Math.cos(t)})}function St(t,e){const s=((t-e*.5)/1.5%1+1)%1,n=s<.5?.5-.5*Math.cos(s*j):0;return u(n*2)}const Ut=[{id:"idle",duration:2.4,morph:.45,blinkIn:!1,baseFace:!0,baseBody:!0,pose:()=>S()},{id:"thinking",duration:2.6,morph:.4,baseFace:!1,baseBody:!1,blinkIn:!0,pose:t=>{const e=St(t,1),s=.3+.7*T.easeOutCubic(u(t/.3));return S({sil:U(bt*(1+(At-1)*e),{cx:Mt[1]}),eyeAlpha:0,dots:[0,2].map(n=>{const i=St(t,n);return{x:Mt[n]*s,y:0,r:bt*(1+(At-1)*i),opacity:.55+.45*i}})})}},{id:"wink",duration:1.6,morph:.3,blinkIn:!0,baseFace:!1,baseBody:!0,pose:()=>S({gaze:{yaw:-5.37,pitch:4.55,roll:6.7},split:16.25,eyes:[{w:.236,h:.464,open:1},{w:.447,h:.089,open:1}]})},{id:"wide",duration:1.8,morph:.55,blinkIn:!0,baseFace:!1,baseBody:!0,pose:()=>S({gaze:{yaw:6.92,pitch:-21.96,roll:11.6},split:18.43,eyes:X(.356,.875)})},{id:"alert",duration:2.4,minDuration:2,morph:.45,baseFace:!1,baseBody:!1,blinkIn:!1,pose:t=>{const e=u(t/1.5),s=T.easeInOutCubic(e)*.82-.087,n=t>1.6?u((t-1.6)/.4):0,i=s*(1-n)+.1*n,r=Math.sin(t*2.5*j)*.005,o=17.7*Math.PI/180;return S({sil:Ee({rot:o,cx:i,cy:-.325-r}),eyeAlpha:0,dots:[{x:i-Math.sin(o)*.58,y:-.325+Math.cos(o)*.58+r*2.8,r:.118,d:Oe,rot:o*180/Math.PI,opacity:1}]})}},{id:"notify",duration:2.2,morph:.5,blinkIn:!0,baseFace:!1,baseBody:!0,pose:t=>{const e=u(t/.45),s=1+(me-1)*Math.sin(e*Math.PI)*(1-e*.35),n=ye*(e<1?s:1),i=fe*Math.PI/180;return S({gaze:{yaw:-21.94,pitch:-5.82,roll:-12.2},split:18.89,eyes:X(.505,.498),notif:{x:Math.cos(i)*It,y:Math.sin(i)*It,r:n,notch:n+xe}})}},{id:"exclaim",duration:2,morph:.45,baseFace:!1,baseBody:!1,blinkIn:!1,pose:()=>S({sil:Pe(),eyeAlpha:0,dots:[{x:-.012,y:.526,r:.113,opacity:1}]})},{id:"sleep",duration:2.4,morph:.5,baseFace:!1,baseBody:!1,blinkIn:!1,pose:t=>S({sil:U(.1585,{cy:.11+Math.sin(t*(j/.6))*.19}),eyeAlpha:0})},{id:"egg",duration:1.8,morph:.4,baseFace:!1,baseBody:!1,blinkIn:!0,pose:()=>S({sil:rt("egg"),gaze:{yaw:19.97,pitch:26.01,roll:-17.1},split:11.07,eyes:X(.164,.385)})},{id:"hexagon",duration:1.6,morph:.4,baseFace:!1,baseBody:!1,blinkIn:!0,pose:()=>S({sil:rt("hexagon"),gaze:{yaw:23.11,pitch:24.42,roll:-13.3},split:13.37,eyes:X(.177,.411)})},{id:"play",duration:2,morph:.5,baseFace:!1,baseBody:!1,blinkIn:!0,pose:t=>{const e=u(t/.35)*u((2.2-t)/.5);return S({sil:_t(0),gaze:{yaw:12,pitch:-8,roll:-6},split:15,eyes:X(.18,.34),arcs:ce.map((s,n)=>({id:`sw${n}`,seed:{...s,cx:.45-t*.42},t,opacity:e}))})}},{id:"orbit",duration:3.4,minDuration:2.5,morph:.6,baseFace:!1,baseBody:!1,blinkIn:!1,pose:t=>{const e=T.easeInOutCubic(u(t/.35)),s=-j*1.25*t*e,n=T.easeInOutCubic(u((t-1.6)/.9)),i=_t(s),r=U(1,{rot:s}),o={radii:i.radii.map((c,p)=>c+(r.radii[p]-c)*n),rot:s,cx:i.cx*(1-n),cy:i.cy*(1-n),sx:1,sy:1},l=u(t/.8)*u((3.6-t)/.9);return S({sil:o,gaze:{yaw:st.yaw+Math.sin(t*6.5)*65*(1-n),pitch:-4+n*32,roll:-13},eyes:X(.18,.34+n*.07),arcs:gt.map((c,p)=>({id:`rg${p}`,seed:c,t,opacity:l*u((t-p*.13)/.3)}))})}},{id:"swirl",duration:1.3,minDuration:1.3,morph:.3,baseFace:!0,baseBody:!0,blinkIn:!0,pose:t=>S({arcs:gt.slice(0,3).map((e,s)=>({id:`sw${s}`,seed:e,t,opacity:u((t-s*.06)/.14)*u((1.22-t)/.34)}))})},{id:"burst",duration:2.6,minDuration:2.4,morph:.4,baseFace:!1,baseBody:!1,blinkIn:!1,pose:t=>{const e=1-.834*T.easeOutQuint(u(t/.7)),s=T.easeOutQuint(u((t-1.7)/.7));return S({sil:U(e+(1-e)*s),eyeAlpha:u((t-1.85)/.4),dots:he(t,1),dotsBehind:!0})}},{id:"comet",duration:2.4,minDuration:2.4,morph:.45,baseFace:!1,baseBody:!1,blinkIn:!1,pose:t=>{const e=1-(1-ue)*T.easeOutQuint(u(t/.55)),s=T.easeOutQuint(u((t-1.85)/.6)),n=u((t-.15)/.25)*u((1.95-t)/.3);return S({sil:U(e+(1-e)*s,{cy:Math.sin(u(t/1.7)*Math.PI)*.035}),eyeAlpha:u((t-2)/.35),arcs:pe.map((i,r)=>({id:`cm${r}`,seed:i,t,opacity:n}))})}}],Q=new Map(Ut.map(t=>[t.id,t])),Y=100,Tt=5.5+1.6,vt=4.2+1.3,ze=.006,Re=.007;function Ft(t,e,s){const n=[],i=Ht(t.gaze,Y,t.split);for(let r=0;r<2;r++){const o=i[r];if(o.depth<=.02)continue;const l=t.eyes[r],c=(l.tilt??0)*Math.PI/180,p=Math.cos(c),h=Math.sin(c),f=o.a*p+o.c*h,M=o.b*p+o.d*h,k=-o.a*h+o.c*p,A=-o.b*h+o.d*p,w=Math.max(l.w*Y,.01)/2,P=Math.max(l.h*Y,.01)/2,x=Math.min(w,P),m=P>w,g=m?P-x:w-x,d=jt(s,Math.atan2(o.y,o.x)-e.rot);n.push({x:o.x*d,y:o.y*d,ax:(m?k:f)*g,ay:(m?A:M)*g,r:x,m:[f,M,k,A]})}return n}function _e(t,e,s,n,i){const r=n-e,o=i-s,l=r*r+o*o;let c=1/0,p=0,h=0;for(let M=0;M<t.length;M++){const k=t[M];let A=l>0?((k.x-e)*r+(k.y-s)*o)/l:0;A=A<0?0:A>1?1:A;const w=e+A*r-k.x,P=s+A*o-k.y,x=w*w+P*P;x<c&&(c=x,p=w,h=P)}const f=Math.sqrt(c);return{d:f,ux:f>1e-9?p/f:0,uy:f>1e-9?h/f:0}}const Se=Math.hypot(ze,Re)*Y;function Bt(t,e,s,n){let i=1/0,r=0,o=0;for(const l of e){const c=l.x+s,p=l.y+n,h=_e(t,c-l.ax,p-l.ay,c+l.ax,p+l.ay),[f,M,k,A]=l.m,w=l.r*Math.hypot(f*h.ux+M*h.uy,k*h.ux+A*h.uy)+Se;h.d-w<i&&(i=h.d-w,r=h.ux,o=h.uy)}return{marge:i,ux:r,uy:o}}const $t=12,Te=8;function ve(t){if(!t.length)return{x:0,y:0};const e=(x,m)=>{let g=1/0;for(const d of t)g=Math.min(g,Bt(d.contour,d.empreintes,x,m).marge);return g};let s=1/0;for(const x of t)s=Math.min(s,Bt(x.calContour,x.reference,0,0).marge);let n=0,i=0;const r=t[0].empreintes;for(const x of r)n-=x.x/r.length,i-=x.y/r.length;const o=Math.max(.35*Y,Math.hypot(n,i)*1.25);s=Math.min(s,e(n,i));const l=e(0,0);if(l>=s&&l>=0)return{x:0,y:0};const c=Math.max(s,0);let p=0,h=0,f=1/0,M=0,k=0,A=l;for(let x=0;x<$t;x++){const m=x/$t*Math.PI*2,g=Math.cos(m),d=Math.sin(m);if(e(g*o,d*o)<c){for(const R of[.3,.6,1]){const a=e(g*o*R,d*o*R);a>A&&(A=a,M=g*o*R,k=d*o*R)}continue}let C=0,v=o;for(let R=0;R<Te;R++){const a=(C+v)/2;e(g*a,d*a)>=c?v=a:C=a}v<f&&(f=v,p=g*v,h=d*v)}const w=f===1/0?M:p,P=f===1/0?k:h;return{x:+(w/Y).toFixed(6),y:+(P/Y).toFixed(6)}}function Fe(t,e,s){return t.baseFace&&s?{gaze:s.gaze,split:s.split,eyes:s.eyes}:{gaze:e.gaze,split:e.split,eyes:e.eyes}}function Be(t){const e=n=>JSON.stringify([n.gaze,n.split,n.eyes,n.sil.rot,n.sil.cx,n.sil.cy,n.sil.sx,n.sil.sy]);if(e(t.pose(0))===e(t.pose(t.duration)))return[0];const s=3;return Array.from({length:s},(n,i)=>i/(s-1)*t.duration)}function $e(t,e,s){const n=[];for(const i of Be(t)){const r=t.pose(i),o=at({...r.sil,radii:e},Y),l=at(r.sil,Y),c=Fe(t,r,s),p=[];for(const h of[-Tt,Tt])for(const f of[-vt,vt])p.push({...c,gaze:{yaw:c.gaze.yaw+h,pitch:c.gaze.pitch+f,roll:c.gaze.roll}});for(const h of p)n.push({empreintes:Ft(h,r.sil,e),reference:Ft(h,r.sil,r.sil.radii),contour:o,calContour:l})}return ve(n)}const it={x:0,y:0},ht=(t,e)=>`${t}|${e??""}`;function Ce(){return new Map(ee.map(t=>{const e=new Map;for(const s of Ut){if(!s.baseBody)continue;const n=s.baseFace?[null,...Xt]:[null];for(const i of n)e.set(ht(s.id,i?.id??null),$e(s,t.radii,i))}return[t.radii,e]}))}const Le=Ce();function Ct(t,e,s){if(!t)return it;const n=Le.get(t);return n?n.get(ht(e,s))??n.get(ht(e,null))??it:it}const ot={yaw:0,pitch:0,mix:0,spin:0,wander:1},Ne=(t,e,s)=>({yaw:y(t.yaw,e.yaw,s),pitch:y(t.pitch,e.pitch,s),mix:y(t.mix,e.mix,s),spin:y(t.spin,e.spin,s),wander:y(t.wander,e.wander,s)}),Lt=(t,e,s)=>({w:y(t.w,e.w,s),h:y(t.h,e.h,s),open:y(t.open,e.open,s),tilt:y(t.tilt??0,e.tilt??0,s)});function Nt(t,e,s){const n=1-s;return{sil:ie(t.sil,e.sil,s),offX:y(t.offX,e.offX,s),offY:y(t.offY,e.offY,s),gaze:{yaw:y(t.gaze.yaw,e.gaze.yaw,s),pitch:y(t.gaze.pitch,e.gaze.pitch,s),roll:y(t.gaze.roll,e.gaze.roll,s)},split:y(t.split,e.split,s),eyes:[Lt(t.eyes[0],e.eyes[0],s),Lt(t.eyes[1],e.eyes[1],s)],eyeAlpha:y(t.eyeAlpha,e.eyeAlpha,s),bodyAlpha:y(t.bodyAlpha,e.bodyAlpha,s),dots:[...t.dots.map(i=>({...i,opacity:i.opacity*n})),...e.dots.map(i=>({...i,opacity:i.opacity*s}))],arcs:[...t.arcs.map(i=>({...i,id:`a${i.id}`,opacity:i.opacity*n})),...e.arcs.map(i=>({...i,id:`b${i.id}`,opacity:i.opacity*s}))],notif:s<.5?t.notif:e.notif,dotsBehind:s<.5?t.dotsBehind:e.dotsBehind}}class G{scale;cur;prev=null;departFige=null;tCur=0;tPrev=0;blinkAt=-10;pts=[];shape=null;shapePrev=null;shapeAt=-10;expr=null;exprPrev=null;exprAt=-10;look=ot;lookPrev=ot;lookAt=-10;lookMorph=.24;static SHAPE_MORPH=.45;static LOOK_MORPH=.24;constructor(e=100,s="idle",n=null,i=null){this.scale=e,this.cur=s,this.shape=n,this.expr=i}setExpression(e,s=0){e!==this.expr&&(this.exprPrev=this.expr,this.expr=e,this.exprAt=s)}exprAtTime(e){const s=this.expr,n=this.exprPrev;if(!s||!n)return s;const i=(e-this.exprAt)/G.SHAPE_MORPH;return i>=1?s:we(n,s,T.easeOutQuint(u(i)))}setShape(e,s=0){e!==this.shape&&(this.shapePrev=this.shape,this.shape=e,this.shapeAt=s)}shapeAtTime(e){const s=this.shape,n=this.shapePrev;if(!s||!n)return s;const i=(e-this.shapeAt)/G.SHAPE_MORPH;if(i>=1)return s;const r=T.easeOutQuint(u(i));return s.map((o,l)=>y(n[l]??o,o,r))}setLook(e,s,n=G.LOOK_MORPH){e&&!Number.isFinite(e.yaw+e.pitch+e.mix+e.spin+e.wander)||(this.lookPrev=this.lookAtTime(s),this.look=e??ot,this.lookAt=s,this.lookMorph=n)}lookAtTime(e){const s=(e-this.lookAt)/this.lookMorph;return s>=1?this.look:Ne(this.lookPrev,this.look,T.easeOutQuint(u(s)))}posed(e,s,n,i){let r=e.pose(s);return e.baseBody&&n&&(r={...r,sil:{...r.sil,radii:n}}),e.baseFace&&i&&(r={...r,gaze:i.gaze,split:i.split,eyes:i.eyes}),r}decalageAtTime(e,s){const n=(r,o,l,c)=>{if(l===c)return c;const p=(e-r)/o;if(p>=1)return c;const h=T.easeOutQuint(u(p));return{x:y(l.x,c.x,h),y:y(l.y,c.y,h)}},i=r=>n(this.exprAt,G.SHAPE_MORPH,Ct(r,s,this.exprPrev?.id??null),Ct(r,s,this.expr?.id??null));return n(this.shapeAt,G.SHAPE_MORPH,i(this.shapePrev),i(this.shape))}get state(){return this.cur}reset(e,s){this.cur=e,this.prev=null,this.departFige=null,this.tCur=s,this.tPrev=s,this.blinkAt=-10}origine(e,s,n){if(this.departFige)return this.departFige;if(!this.prev)return null;const i=Q.get(this.prev);return this.posed(i,Math.max(0,e-this.tPrev),s,n)}poseComposee(e){const s=Q.get(this.cur),n=this.shapeAtTime(e),i=this.exprAtTime(e),r=this.posed(s,Math.max(0,e-this.tCur),n,i),o=e-this.tCur;if(o>=s.morph)return r;const l=this.origine(e,n,i);return l?Nt(l,r,T.easeOutQuint(u(o/s.morph))):r}setState(e,s){if(e===this.cur)return;const n=Q.get(this.cur).morph,i=this.prev!==null&&s-this.tCur<n;this.departFige=i?this.poseComposee(s):null,this.prev=this.cur,this.tPrev=this.tCur,this.cur=e,this.tCur=s,Q.get(e)?.blinkIn&&(this.blinkAt=s)}sample(e){const s=this.scale,n=Q.get(this.cur),i=this.shapeAtTime(e),r=this.exprAtTime(e);let o=this.posed(n,Math.max(0,e-this.tCur),i,r),l=this.decalageAtTime(e,this.cur);const c=e-this.tCur,p=c<n.morph?this.origine(e,i,r):null;if(p){const b=T.easeOutQuint(u(c/n.morph));o=Nt(p,o,b);const N=this.prev;if(N){const z=this.decalageAtTime(e,N);l={x:y(z.x,l.x,b),y:y(z.y,l.y,b)}}}const h=o.eyeAlpha>.01,f=this.lookAtTime(e),M=be(e,{wander:h?f.wander:0,blink:h}),k={yaw:y(o.gaze.yaw,f.yaw,f.mix)+M.dYaw-f.spin,pitch:y(o.gaze.pitch,f.pitch,f.mix)+M.dPitch,roll:o.gaze.roll+M.dRoll},A=u((e-this.blinkAt)/.2),w=A<1?Math.abs(A*2-1):1,P=Math.min(M.lid,w),x=o.offX+M.driftX,m=o.offY+M.driftY,g={...o.sil,cx:o.sil.cx+x,cy:o.sil.cy+m,sy:o.sil.sy*M.breath},d=se(at(g,s,this.pts)),C=(b,N)=>jt(o.sil.radii,Math.atan2(N,b)-o.sil.rot),v=[];if(o.eyeAlpha>.01){const b=Ht(k,s,o.split);for(let N=0;N<2;N++){const z=b[N];if(z.depth<=.02)continue;const q=o.eyes[N],dt=C(z.x,z.y),ft=(q.tilt??0)*Math.PI/180,W=Math.cos(ft),Z=Math.sin(ft),Qt=z.a*W+z.c*Z,Vt=z.b*W+z.d*Z,Kt=-z.a*Z+z.c*W,qt=-z.b*Z+z.d*W,yt=Ae(Math.min(P,q.open));v.push({d:ne(q.w*s,q.h*s),matrix:`matrix(${$(Qt)},${$(Vt*yt)},${$(Kt)},${$(qt*yt)},${$(z.x*dt+(x+l.x)*s)},${$(z.y*dt+(m+l.y)*s)})`,alpha:o.eyeAlpha*u(z.depth/.12)})}}const R=o.dots.filter(b=>b.opacity>.01&&b.r>5e-4).map(b=>({...b,x:(b.x+x)*s,y:(b.y+m)*s,r:b.r*s})),a=o.notif?C(o.notif.x,o.notif.y):1,O=o.notif?(o.notif.x*a+x)*s:0,E=o.notif?(o.notif.y*a+m)*s:0,V=o.notif?{x:O,y:E,r:o.notif.r*s}:null,K=o.notif?{x:O,y:E,r:o.notif.notch*s}:null;return{bodyPath:d,bodyAlpha:o.bodyAlpha,eyes:v,dots:R,dotsBehind:o.dotsBehind,arcs:o.arcs.filter(b=>b.opacity>.01).map(b=>ae(b.seed,b.t,s,b.id,b.opacity)),notif:V,notch:K}}}const Dt=100,De=158,B=De,Ye=1e3/30,je=34;function He(){const[t,e]=_.useState(()=>typeof document>"u"?!1:document.documentElement.classList.contains("dark"));return _.useEffect(()=>{if(typeof MutationObserver!="function")return;const s=document.documentElement,n=new MutationObserver(()=>e(s.classList.contains("dark")));return n.observe(s,{attributes:!0,attributeFilter:["class"]}),()=>n.disconnect()},[]),t}function Xe(){const[t,e]=_.useState(()=>typeof document>"u"?!0:document.visibilityState!=="hidden");return _.useEffect(()=>{if(typeof document>"u")return;const s=()=>e(document.visibilityState!=="hidden");return document.addEventListener("visibilitychange",s),()=>document.removeEventListener("visibilitychange",s)},[]),t}function Ge(){const[t,e]=_.useState(()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return _.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const s=window.matchMedia("(prefers-reduced-motion: reduce)"),n=i=>e(i.matches);return s.addEventListener("change",n),()=>s.removeEventListener("change",n)},[]),t}function Ke({state:t="idle-living",dragState:e=null,size:s=48,className:n="",leanX:i=0,shape:r=Zt,color:o="auto",paper:l=null}){const c=Jt(e==="running-left"||e==="running-right"?e:t),p=Ge(),h=Xe(),f=He(),M=l||(f?mt.dark:mt.light),k=oe.get(Wt(o,f)).hex,A=_.useId(),w=_.useMemo(()=>A.replace(/[^a-zA-Z0-9_-]/g,""),[A]),P=`bot-mask-${w}`,x=_.useRef(null);x.current===null&&(x.current=new G(Dt,c.state,xt.get(r)?.radii??null,Ot.get(c.expression)??null));const m=x.current,g=_.useRef(0),[d,C]=_.useState(()=>m.sample(0));_.useEffect(()=>{m.setShape(xt.get(r)?.radii??null,g.current)},[m,r]),_.useEffect(()=>{m.setExpression(Ot.get(c.expression)??null,g.current)},[m,c.expression]),_.useEffect(()=>{m.state!==c.state&&(m.setState(c.state,g.current),C(m.sample(g.current)))},[m,c.state]),_.useEffect(()=>{const a=Math.min(1,Math.abs(i));if(a<=0||!Q.get(c.state)?.baseFace){m.setLook(null,g.current);return}m.setLook({yaw:i*je,pitch:st.pitch,mix:a,spin:0,wander:1-a},g.current)},[m,i,c.state]),_.useEffect(()=>{if(p||!h)return;let a=0,O=0,E=0;const V=K=>{a=requestAnimationFrame(V);const b=O?Math.min((K-O)/1e3,.064):0;O=K,g.current+=b,E+=b*1e3,!(E<Ye)&&(E=0,C(m.sample(g.current)))};return a=requestAnimationFrame(V),()=>cancelAnimationFrame(a)},[m,p,h]);const v=a=>{const E={fill:a.color??(a.depth===void 0?k:re(M,k,a.depth)),opacity:a.opacity};return a.d?{...E,d:a.d,transform:`translate(${a.x} ${a.y}) rotate(${a.rot??0}) scale(${Dt})`}:{...E,cx:a.x,cy:a.y,r:a.r}},R=d.dots.map((a,O)=>{const E=v(a);return a.d?I.jsx("path",{...E},O):I.jsx("circle",{...E},O)});return I.jsxs("svg",{"aria-hidden":"true",className:`bot-animated ${n}`,width:s,height:s,viewBox:`${-B} ${-B} ${B*2} ${B*2}`,children:[I.jsxs("defs",{children:[I.jsxs("mask",{id:P,maskUnits:"userSpaceOnUse",x:-B,y:-B,width:B*2,height:B*2,children:[I.jsx("path",{d:d.bodyPath,fill:"#fff"}),d.eyes.map((a,O)=>I.jsx("path",{d:a.d,transform:a.matrix,opacity:a.alpha,fill:"#000"},O)),d.notch?I.jsx("circle",{cx:d.notch.x,cy:d.notch.y,r:d.notch.r,fill:"#000"}):null]}),d.arcs.map(a=>I.jsx("linearGradient",{id:`${w}-${a.id}`,gradientUnits:"userSpaceOnUse",x1:a.grad.x1,y1:a.grad.y1,x2:a.grad.x2,y2:a.grad.y2,children:a.grad.stops.map((O,E)=>I.jsx("stop",{offset:E/(a.grad.stops.length-1),stopColor:O},E))},a.id))]}),I.jsx("g",{fill:"none",strokeLinecap:"round",children:d.arcs.map(a=>I.jsx("path",{d:a.back,stroke:`url(#${w}-${a.id})`,strokeWidth:a.width,opacity:a.opacity},a.id))}),d.dotsBehind?I.jsx("g",{children:R}):null,I.jsxs("g",{opacity:d.bodyAlpha,children:[I.jsx("path",{d:d.bodyPath,fill:M}),I.jsx("g",{mask:`url(#${P})`,children:I.jsx("rect",{x:-B,y:-B,width:B*2,height:B*2,fill:k})})]}),d.dotsBehind?null:I.jsx("g",{children:R}),d.notif?I.jsx("circle",{cx:d.notif.x,cy:d.notif.y,r:d.notif.r,fill:de}):null,I.jsx("g",{fill:"none",strokeLinecap:"round",children:d.arcs.map(a=>I.jsx("path",{d:a.front,stroke:`url(#${w}-${a.id})`,strokeWidth:a.width,opacity:a.opacity},`f${a.id}`))})]})}export{Ke as BotAnimated};
@@ -1 +0,0 @@
1
- import{r as ie,j as U,a0 as Ui,a1 as Vi,ar as Ji,d as Qi,u as qi,as as tl,a3 as el,c as st,ad as nl,af as rl,am as sl,B as Dr,L as Gs,at as al,aa as Ja,au as g0,a8 as ol,a9 as Yn,av as cl,aw as il}from"./__vite-browser-external-DWN9Fb-H.js";import{S as ll}from"./Controls-BmT6-x_L.js";import{C as x0}from"./Card-C9FjyAwh.js";import{A as Qa}from"./arrow-right-DEvMmSiA.js";import{C as b0}from"./chevron-down-CsiGcG0G.js";import{S as ul}from"./server-CYcqzdSW.js";import{S as fl}from"./shield-check-5zABLIr6.js";import{C as dl}from"./check-CSZvcC3X.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"],Or=t=>Ci.map(e=>`--hl-${e}:var(--hairline-${e},${t[e]});`).join(""),y0="cubic-bezier(0.5,0,0.1,1)",be=":where([data-hairline]>svg)";function hl(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);${Or(qa)}}`,t?`:where([data-hairline]){${Or(e)}}`:"",`:where(.dark,[data-theme="dark"]) :where([data-hairline]){${Or(to)}}`,`:where([data-hairline][data-hairline-theme="light"]){${Or(qa)}}`,`:where([data-hairline][data-hairline-theme="dark"]){${Or(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 ${y0}}`,`${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 ${y0}}`,`${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 M0=new WeakSet;function pl(t){if(M0.has(t))return;M0.add(t);const e=t.nodeType===9?t:t.ownerDocument,s=e.defaultView,u=hl(!!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,$t=t=>Math.round(t*100)/100,tt=t=>"M"+t.map(e=>$t(e[0])+" "+$t(e[1])).join("L")+"Z",ft=(t,e)=>`M${$t(t[0])} ${$t(t[1])}L${$t(e[0])} ${$t(e[1])}`,jt=t=>t.length<2?"":"M"+t.map(e=>$t(e[0])+" "+$t(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 y=o(v[0],v[1],v[2]);c=Math.min(c,y[0]),r=Math.max(r,y[0]),i=Math.min(i,y[1]),h=Math.max(h,y[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 y=0;y<=c;y++){const p=vt(v+90*y/c),g=Math.cos(p),N=Math.sin(p);r.push({u:i+o*g,v:h+o*N,nu:g,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)),Bt=t=>{const e=Math.sin(t.az),s=Math.cos(t.az);return u=>u.nu*e+u.nv*s>=-1e-6};function Kt(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,Kt(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 d0(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]),y=Math.hypot(h[0]-i[0],h[1]-i[1]),p=Math.min(e[c],v/2,y/2),g=[i[0]+(r[0]-i[0])/v*p,i[1]+(r[1]-i[1])/v*p],N=[i[0]+(h[0]-i[0])/y*p,i[1]+(h[1]-i[1])/y*p];for(let I=0;I<=s;I++){const L=I/s,H=1-L;o.push([H*H*g[0]+2*H*L*i[0]+L*L*N[0],H*H*g[1]+2*H*L*i[1]+L*L*N[1]])}}return o}function vl(t,e,s,u,o){const c=Kt(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},Le=()=>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 ml(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,y=N=>((r*N+c)*N+o)*N,p=N=>((v*N+h)*N+i)*N,g=N=>(3*r*N+2*c)*N+o;return N=>{if(N<=0)return 0;if(N>=1)return 1;let I=N;for(let L=0;L<8;L++){const H=y(I)-N;if(Math.abs(H)<1e-5)break;const W=g(I);if(Math.abs(W)<1e-6)break;I-=H/W}if(!(I>=0&&I<=1)||Math.abs(y(I)-N)>1e-4){let L=0,H=1;I=N;for(let W=0;W<24;W++)y(I)<N?L=I:H=I,I=(L+H)/2}return p(I)}}var h0=ml(.32,.72,0,1),Ft=(t,e=700)=>({from:t,to:t,t0:-1e9,dur:e}),Wt=(t,e)=>{const s=lt((e-t.t0)/t.dur,0,1);return t.from+(t.to-t.from)*(Ws?1:h0(s))},oe=(t,e,s,u)=>{t.to!==e&&(t.from=Wt(t,s),t.to=e,t.t0=s+u)},Jt=(t,e)=>Ws||e>=t.t0+t.dur,gl="http://www.w3.org/2000/svg";function _(t,e,s){const u=document.createElementNS(gl,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=_("g",{},t);return{g:e,sil:_("path",{class:"sil"},e),cr:_("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)=>_("ellipse",{rx:$t(s*e.S),ry:$t(s*e.S*e.k),class:u},t),Qt=(t,e)=>{t.setAttribute("cx",String($t(e[0]))),t.setAttribute("cy",String($t(e[1])))},xl=0;function bl(t,e,s,u=.7){const o="hl-fd"+ ++xl,c=_("defs",{},t),r=_("linearGradient",{id:o+"g",gradientUnits:"userSpaceOnUse",x1:0,y1:$t(e),x2:0,y2:$t(s)},c);_("stop",{offset:0,"stop-color":"#fff","stop-opacity":u},r),_("stop",{offset:1,"stop-color":"#fff","stop-opacity":0},r);const i=_("mask",{id:o,maskUnits:"userSpaceOnUse",x:0,y:0,width:400,height:320},c);return _("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=vl(s,u,o,c,r),h=_("g",{class:"ghost",mask:bl(t,i.y0,i.y1)},e);_("path",{d:i.d},h)}var Er=[],ks=new Map,Cr=0,qo=0,_r=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 Bi=()=>{ji(!!jr?.matches),Er.forEach($a)};function yl(){_r||(_r=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",Bi))}function Ml(){Cr&&cancelAnimationFrame(Cr),Cr=0,_r?.disconnect(),_r=null,jr?.removeEventListener("change",Bi),jr=null}function kt(t,e){yl();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])),_r.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),_r?.unobserve(t))),Er.length||Ml()}}}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 w0=[[128,150],[200,118],[272,150],[200,206],null],eo=900,wl=1200,kl=1800,k0=1200,Al=450,A0={pointerType:"ghost"},El=0;function Tl([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 E0(t,e,s){let u=0,o=k0+Al*(El++%4),c=-1,r=null,i=[200,320],h=!1,v=t.contains(t.ownerDocument.activeElement),y=!1;const p=()=>{r=null,c=-1,Hs.get(t)?.leave(A0)},g=j=>{if(h||v||!e.length)return!1;if(Le())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=kl,!0;const X=Hs.get(t);if(!X)return!0;c<0&&(i=r??Tl(F),c=0),c=Math.min(eo,c+j*1e3);const z=h0(c/eo);return r=[i[0]+(F[0]-i[0])*z,i[1]+(F[1]-i[1])*z],X.move(r,A0),c<eo||(u=(u+1)%e.length,c=-1,o=wl),!0},N=()=>{r=null,c=-1},I=()=>{h||v||(u=0,c=-1,o=k0,P.wake())},L={hold:()=>{h=!0,N()},release:()=>{h&&(h=!1,I())}},H=()=>{v=!0,N()},W=j=>{v&&!t.contains(j.relatedTarget)&&(v=!1,I())};t.addEventListener("focusin",H),t.addEventListener("focusout",W),Rr.set(t,L);const P=kt(t,g);return{stop:()=>{y||(y=!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]},Sl=.5;function Nl(t){const e=typeof t=="string"&&t.trim()!==""?Number(t):t;return typeof e!="number"||!Number.isFinite(e)?Sl:Math.min(1,Math.max(0,e))}function T0(t,e){const[s,u,o]=zr[t],c=Nl(e),r=c<=.5?s+c/.5*(u-s):u+(c-.5)/.5*(o-u);return Math.round(r*1e3)/1e3}var Cl="http://www.w3.org/2000/svg",Ys=new WeakMap,jl=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();pl(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(Cl,"svg");v.setAttribute("viewBox","0 0 400 320"),v.setAttribute("aria-hidden","true"),e.appendChild(v);let y=null;t.focusable&&(y=o.createElement("span"),y.setAttribute("data-hairline-live",""),y.setAttribute("aria-live","polite"),e.appendChild(y));let p=null,g=null;const N={get textContent(){return p},set textContent(P){const j=P??"";if(j===p)return;p=j,y&&y.textContent!==j&&(!g||j===t.rest||e.matches(":hover, :focus-within"))&&(y.textContent=j);const F=u.onRead;if(typeof F=="function")try{F(j)}catch(X){jl(X)}}};let I=T0(t.id,u.intensity);g=u.play===!0?E0(e,t.tour??w0):null;let L;try{L=t.engine({stage:e,svg:v,read:N},I)}catch(P){throw g?.stop(),P}p===null&&(N.textContent=t.rest);let H=!1;const W=()=>{if(!H){H=!0,Ys.get(e)===W&&Ys.delete(e),g?.stop(),g=null,L.destroy(),v.remove(),y?.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 D in F)F[D]===void 0?delete j[D]:j[D]=F[D];const X=T0(t.id,u.intensity);X!==I&&(I=X,L.set(X));const z=u.play===!0;z!==!!g&&(g?.stop(),g=z?E0(e,t.tour??w0):null),h()},destroy:W}}var Zs=40,Tn=25,S0=8,N0=1.5,Mr=30,ue=.8,$r=3,Fr=1.4,Rl=44,Pl=[.45],Fa=30,fn=8,Bl=1.3,C0=9,Ll=2.6,Ks=-46,j0=.6,Il=70,Us=3;function R0(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 y=(u*i+o*h)*(1-c);return[i*c+o*v*r+u*y,h*c-u*v*r+o*y,v*c+(u*h-o*i)*r]}}function _l(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)],y=t[s?(h+1)%u:Math.min(h+1,u-1)],p=Math.hypot(y[0]-v[0],y[1]-v[1])||1,g=(y[0]-v[0])/p,N=(y[1]-v[1])/p;r.push([g,N]),o.push([t[h][0]-N*e,t[h][1]+g*e]),c.push([t[h][0]+N*e,t[h][1]-g*e])}if(s)return tt(o)+tt(c.reverse());const i=(h,v,y)=>Array.from({length:7},(p,g)=>{const N=Math.PI*(g+1)/8,I=Math.cos(N)*y,L=Math.sin(N)*y;return[h[0]+e*(-v[1]*I+v[0]*L),h[1]+e*(v[0]*I+v[1]*L)]});return tt([...o,...i(t[u-1],r[u-1],1),...c.reverse(),...i(t[0],r[0],-1)])}var P0=[[-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]],zl=[[-C0,Fa],[C0,Fa]],B0=t=>{const e=Math.cos(vt(t)),s=Math.sin(vt(t));return u=>[u[1]*s,u[0],Mr+u[1]*e]},Hl=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,Us),r=zr.basket[2],i=Ks+j0*r,h=rt(-Zs,-Tn,Zs,Tn,S0,14),v=_l(h,Rl),y=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,S0*ue-Fr,14),g=[];for(let E=-1;E<8;E++){const $=no(...R0(Math.cos(E*Math.PI/4),Math.sin(E*Math.PI/4),E<0?0:r));for(const G of h)g.push($(G.u,G.v,Mr+N0),$(G.u*ue,G.v*ue,0));for(const G of[Ks,i])for(const J of P0)g.push($(...B0(G)(J)))}Ct(c,g,200,166);const N=Mt(c),I=Math.sqrt(1-c.k*c.k),L=[Math.sin(c.az)*I,Math.cos(c.az)*I,c.k],H=_("g",{},e),W=_("path",{class:"nf lo"},H),P=q(H),j=_("path",{class:"nf lo"},H),F=_("path",{class:"sil"},H),X=_("path",{class:"sil"},H),z=_("path",{class:"sil"},H),D=yt(0),k=yt(0),b=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 x(){const E=D.x!==T||k.x!==n;if(E){T=D.x,n=k.x,l=no(T,n),Q(P,{sil:tt(Pt(y.map(G=>d([G.u,G.v,0])).concat(y.map(G=>d([G.u,G.v,$r]))))),crease:jt(Kt(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 Pl){const J=$r+(Mr-$r)*G,B=ue+(1-ue)*G;h.forEach((R,Y)=>{const Z=h[(Y+1)%h.length];$[+f(R)]+=ft(d([R.u*B,R.v*B,J]),d([Z.u*B,Z.v*B,J]))})}W.setAttribute("d",$[0]),j.setAttribute("d",$[1]),F.setAttribute("d",ro(h.map(G=>d([G.u,G.v,Mr])),N0*Us,!0))}if(E||b.x!==a){a=b.x;const $=B0(a);X.setAttribute("d",ro(P0.map(G=>d($(G))),Bl*Us)),z.setAttribute("d",ro(zl.map(G=>d($(G))),Ll*Us))}}const M=kt(t,E=>{const $=wt(D,E),G=wt(k,E);b.t=Math.min(Ks+j0*Math.hypot(D.x,k.x),i);const J=wt(b,E);return x(),$||G||J});o.add(M.unregister);let S=u,A=!1,m=0,C=0;function w(){const E=Math.hypot(m,C),$=A&&E?lt(S,0,r)*lt(E/Il,0,1):0;[D.t,k.t]=$?R0(m/E,C/E,$):[0,0],s.textContent=A?`tilt ${Math.round(Math.hypot(D.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,[m,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,L0=8,Ra=2.4,I0=6.6,Li=6,so=36,Dl=45,Wr=-15,Xr=7*As+15,Zn=-16,Js=ja+14,ao=wr+Ra+Li;function Ol(){const t=[],e=(r,i,h,v,y)=>(t.push({lane:r,n:i,x:h,y:v,parent:y}),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 _0=(t,e,s,u,o,c)=>{const r=[];for(let i=0;i<=c;i++){const h=i/c,v=1-h,y=[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]],g=[t[1],t[1]+u,e[1],e[1]];r.push([y[0]*p[0]+y[1]*p[1]+y[2]*p[2]+y[3]*p[3],y[0]*g[0]+y[1]*g[1]+y[2]*g[2]+y[3]*g[3]])}return r};function $l(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),y=-h/v,p=i/v;e.push([u[0]+y*Vs/2,u[1]+p*Vs/2]),s.push([u[0]-y*Vs/2,u[1]-p*Vs/2])}),e.concat(s.reverse())}var Fl=({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=Bt(r),{cs:v,m:y,f:p}=Ol(),g=w=>[v[w].x,v[w].y],N=_("g",{},e),[I,L]=mt(Wr,Zn,Xr,Js,12,2.2);Q(q(N),it(i,h,I,L,-6,0));const H=(w,E)=>_0(w,E,(E[0]-w[0])*.3,(E[1]-w[1])*.5,(E[0]-w[0])*.45,14),W=(w,E)=>_0(E,w,(w[0]-E[0])*.3,(w[1]-E[1])*.5,(w[0]-E[0])*.45,14).reverse(),P=[[g(y[0]),g(y[7])],[...H(g(y[1]),g(p[0])),...W(g(p[2]),g(y[6])).slice(1)]];for(const w of P){const E=$l(w);_("path",{d:tt(E.map($=>i($[0],$[1],0))),class:"lo"},N),_("path",{d:tt(E.map($=>i($[0],$[1],wr))),class:""},N)}const[j,F]=[ht(L0,24),ht(L0-1.4,24)],[X,z]=[ht(I0,24),ht(I0-1.2,24)],D=(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)),b=[];for(const w of k){const E=v[w];Q(q(N),it(i,h,D(j,E.x,E.y),D(F,E.x,E.y),wr,Ra+wr));const $=_("path",{class:"dash nf"},N);b[w]={...E,drop:$,el:q(N),ring:D(X,E.x,E.y),inner:D(z,E.x,E.y),z:Ft(0),drawn:NaN}}const T=w=>{const E=[];for(let $=w,G=0;$>=0;$=b[$].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,$,$+Li)),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 b)d(G,Wt(G.z,E)),Jt(G.z,E)||($=!0);return $});o.add(f.unregister);let x=null,M=null,S=new Map;function A(w,E,$,G){const J=performance.now(),B=new Map;for(const[R,Y]of T(w))Y<=E&&B.set(R,[so*$*lt(1-Y/(E+1),0,1),Y]);b.forEach((R,Y)=>{const[Z,V]=B.get(Y)||[0,(S.get(Y)||[0,0])[1]];G?R.z=Ft(Z):oe(R.z,Z,J,V*Dl)}),S=B,M!==w&&(M!==null&&b[M].el.sil.classList.remove("hi"),M=w,b[w].el.sil.classList.add("hi")),f.wake()}A(n,a,l,!0);function m(w){w!==x&&(x=w,w===null?(A(n,a,l),s.textContent="rest"):(A(w,c,1),s.textContent=`${b[w].lane} · ${b[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 b.forEach((J,B)=>{const R=Math.hypot(J.x-E[0],J.y-E[1]);R<G&&(G=R,$=B)}),$}return o.add(Et(t,{move:w=>m(C(w)),leave:()=>m(null)})),o.add(()=>e.replaceChildren()),{set:w=>{c=w,x!==null&&A(x,c,1)},destroy:o.dispose}},Es=12,Ts=10.4,Ce=9.6,ve=84,rn=4,Qs=2,te=44,Sn=26,Gr=-10,Nn=ve+10,oo=6,Mn=11,t0=Mn+(Es-1)*Ts+Ce,Kn=t0+6,co=[0,0,.2,0,0,.3,.58,.26,0,0,.13,0],z0=6,Wl=t=>t>=1?0:(1-t)*(1-t),Xl=t=>.375*t.nu+.307*t.nv>0;function H0(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(Kt(s,Xl),o)):""}}var Gl=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.5),r=te+Qs+Sn;Ct(c,[[Gr,0,0],[Nn,0,Kn],[Nn,te,0],[Gr,0,Kn],[-rn,r,Mn],[-rn,r,t0],[ve+rn,r,Mn]],200,166);const i=Mt(c),h=Bt(c);let v=u,y=null,p=null;const g=_("g",{},e),[N,I]=mt(Gr+3,3,Nn-3,te-3,3,1.2);Q(q(g),it(i,h,N,I,0,oo));const[L,H]=mt(Gr,0,Nn,te,3.5,1.6);Q(q(g),it(i,h,L,H,oo,Kn));const W=l=>l.map(d=>i(d.u,te,d.v)),P=l=>l.map(d=>i(Nn,d.u,d.v));_("path",{d:tt(W(rt(-7.6,Mn-2.2,ve+7.6,t0+2.2,2,4)))+tt(P(rt(5,oo+7,te-5,Kn-7,3,4))),class:"lo nf"},g);for(let l=0;l<Es;l++)for(const d of[-5.8,ve+5.8])Qt(_("circle",{r:.75,class:"dot off"},g),i(d,te,Mn+l*Ts+Ce/2));const j=[];for(let l=0;l<Es;l++){const d=Mn+l*Ts,f=_("g",{},g);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:_("path",{class:"lo nf"},f),lamp:_("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,x=S=>tt(S.map(A=>i(A.u,d,A.v)));let M=x(rt(-3.4,f+2,-1.2,f+Ce-2,1,3))+x(rt(ve+1.2,f+2,ve+3.4,f+Ce-2,1,3));for(let S=0;S<4;S++)M+=x(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=te+d+Qs,x=l.z+Ce/2,M=H0(i,l.body,null,te,te+d+.5);Q(l.chassis,{sil:M.sil,crease:ft(i(ve,te,x),i(ve,te+d,x))}),Q(l.plate,H0(i,l.face,l.faceIn,te+d,f)),l.marks.setAttribute("d",F(l,f)),Qt(l.lamp,i(ve-5,f,x))}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 D=kt(t,l=>{let d=!1;for(const f of j)wt(f.sp,l)&&(d=!0),X(f);return d});o.add(D.unregister);const k=i(0,0,0),b=[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[x,M]=[0,1,2].filter($=>$!==d),S=b[x],A=b[M],m=l[0]-k[0]-f*b[d][0],C=l[1]-k[1]-f*b[d][1],w=S[0]*A[1]-S[1]*A[0],E=[0,0,0];return E[d]=f,E[x]=(m*A[1]-C*A[0])/w,E[M]=(S[0]*C-S[1]*m)/w,E}function n(l){for(let M=Es-1;M>=0;M--){const S=T(l,1,te+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,te+Qs),f=T(l,0,Nn);let x=null;return d[0]>=Gr-Sn-4&&d[0]<=Nn&&d[2]>=-Sn*.8&&d[2]<=Kn?x=d[2]:f[1]>=0&&f[1]<=te&&f[2]>=0&&f[2]<=Kn+4&&(x=f[2]),x===null?null:lt((x-Mn-Ce/2)/Ts,0,Es-1)}function a(){if(y===null){for(const l of j)l.sp.t=Sn*co[l.i];z(j[z0]),s.textContent="rest"}else{for(const d of j)d.sp.t=Sn*Wl(Math.max(0,Math.abs(d.i-y)-.5)/v);const l=Math.round(y);z(j[l]),s.textContent="blade "+(l+1)}D.wake()}return z(j[z0]),o.add(Et(t,{move:l=>{y=n(l),a()},leave:()=>{y=null,a()}})),o.add(()=>e.replaceChildren()),{set:l=>{v=l,y!==null&&a()},destroy:o.dispose}},Oe=26,kr=17,Yl=1.4,Yr=Oe*Oe/(4*kr),Pa=46,Xe=31,Ge=5,io=10,D0=16,Zl=45,Kl=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],O0=(t,e)=>t[0]*e[0]+t[1]*e[1]+t[2]*e[2];function $0(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]})),Ul=({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=$0(Z,V);h.push(...dn(Je,K.e,K.u,Oe,16),Un(K,kr-Yr+3,0,0));for(const O of[-1,1])h.push(Pe(Pe(Je,K.e,O*(Xe+Ge/2)),[0,0,1],6))}Ct(i,h,200,166);const v=Mt(i),y=Bt(i),p=Z=>v(Z[0],Z[1],Z[2]),g=v(0,0,0),N=v(1,0,0),I=v(0,1,0),L=v(0,0,1),H=[N[0]-g[0],I[0]-g[0],L[0]-g[0]],W=[N[1]-g[1],I[1]-g[1],L[1]-g[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=_("g",{},e),[z,D]=mt(-30,-30,30,30,9,2);Q(q(X),it(v,y,z,D,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,y,ht(20,48),ht(18.8,48),5,io));const k=en(X,i,.8,"dot m"),b=q(X),T=Xe+Ge/2+1,[n,a]=mt(-9,-T,9,T,4,1.4),l=_("g",{},X),d=[-1,1].map(Z=>{const V=_("g",{},X);return{s:Z,g:V,near:null,ring:_("path",{class:"nf"},V),arm:q(V),trun:_("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=_("path",{class:"sil"},l),x=_("path",{class:"nf lo"},l),M=_("path",{class:"nf lo"},l),S=_("path",{class:"nf hi"},l),A=_("path",{class:"nf"},l),m=q(l),C=[0,.35,.6,.78,.9,.97,1];function w(Z,V,K){const O=V*V/(4*kr)-Yr,et=-O/O0(Z.a,F),nt=[],ct=[];for(let It=0;It<K;It++){nt.push(Un(Z,O,V,2*Math.PI*It/K));const Xt=Pe(nt[It],F,et);ct.push(Oe-Math.hypot(Xt[0]-Je[0],Xt[1]-Je[1],Xt[2]-Je[2]))}if(ct.every(It=>It>0))return tt(nt.map(p));const _t=ct.findIndex((It,Xt)=>It>0&&ct[(Xt+K-1)%K]<=0);if(_t<0)return"";const ot=(It,Xt)=>p(Pe(nt[It],[nt[Xt][0]-nt[It][0],nt[Xt][1]-nt[It][1],nt[Xt][2]-nt[It][2]],ct[It]/(ct[It]-ct[Xt]))),zt=[ot((_t+K-1)%K,_t)];let Lt=_t;for(;ct[Lt]>0;)zt.push(p(nt[Lt])),Lt=(Lt+1)%K;return zt.push(ot((Lt+K-1)%K,Lt)),jt(zt)}let E="";function $(Z,V){const K=Z.toFixed(3)+","+V.toFixed(3);if(K===E)return;E=K;const O=$0(Z,V);Qt(k,v(18*O.h[0],18*O.h[1],io)),Q(b,it(v,y,Kr(n,O),Kr(a,O),io,D0));for(const ot of d){const zt=ot.s*O0(O.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,O),D0).concat(pt(v,Kr(ot.top,O),Pa+6)))),crease:jt(pt(v,Kt(Kr(ot.inner,O),y),Pa+6))});const Lt=[0,0,1],It=Pe(Je,O.e,ot.s*(Xe+Ge/2));ot.ring.setAttribute("d",tt(dn(It,O.h,Lt,3.4,24).map(p))),ot.trun.setAttribute("d",tt(Pt(dn(Pe(Je,O.e,ot.s*Oe),O.h,Lt,2.2,16).concat(dn(Pe(Je,O.e,ot.s*(Xe-Ge/2)),O.h,Lt,2.2,16)).map(p))))}const et=dn(Je,O.e,O.u,Oe,72),nt=[];for(const ot of C)for(let zt=0;zt<40;zt++)nt.push(Un(O,ot*ot*Oe*Oe/(4*kr)-Yr-Yl,ot*Oe,2*Math.PI*zt/40));f.setAttribute("d",tt(Pt(et.concat(nt).map(p)))),x.setAttribute("d",w(O,.62*Oe,48)),M.setAttribute("d",w(O,3.2,20)),S.setAttribute("d",tt(et.map(p)));const ct=Un(O,kr-Yr-3,0,0),_t=Un(O,kr-Yr+3,0,0);A.setAttribute("d",[90,210,330].map(ot=>ft(p(Un(O,0,Oe,vt(ot))),p(ct))).join("")),Q(m,{sil:tt(Pt(dn(ct,O.e,O.u,3.6,16).concat(dn(_t,O.e,O.u,2.4,16)).map(p))),crease:tt(dn(_t,O.e,O.u,1.3,16).map(p))})}const G=yt(Zr[0],{eps:.01}),J=yt(Zr[1],{eps:.01}),B=kt(t,Z=>{const V=wt(G,Z),K=wt(J,Z);return $(G.x,J.x),V||K});o.add(B.unregister);const R=v(0,0,Pa);function Y(){r?(G.t=Zl-c*Math.tanh((r[0]-R[0])/120),J.t=Kl+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"),B.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,ce=60,e0=5,$e=3,Ns=26,qs=1.6,ta=2.4,Vn=1.3,F0=3.2,W0=2.2,X0=3.6,Vl=2.6,Jl=2.1,Cs=e0+$e,Ur=Cs+Ss*Ns+$e,lo=.7,Ql=t=>.375*t.nu+.307*t.nv>0;function ql(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(Kt(s,Ql),o))}}var t1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=zr.drawer[2],r=At(45,.5,Jl),i=ce+c+ta,h=[[0,0,0],[ye,0,0],[0,0,Ur],[ye,0,Ur],[ye,ce,0],[0,i,Cs],[0,i,Ur-$e],[ye,i,Cs]];Ct(r,h.concat(h.map(([A,m,C])=>[ye-A,ce-m,Ur-C])),200,166);const v=Mt(r),y=Bt(r),p=_("g",{},e),[g,N]=mt(3,3,ye-3,ce-3,2.4,1);Q(q(p),it(v,y,g,N,0,e0));const[I,L]=mt(0,0,ye,ce,3,1.4);Q(q(p),it(v,y,I,L,e0,Ur));const H=$e+F0,W=ye-$e-F0,P=[H+(W-H)/3,H+2*(W-H)/3],j=(A,m)=>tt(A.map(C=>v(C.u,m,C.v)));_("path",{class:"nf lo",d:Array.from({length:Ss},(A,m)=>{const C=Cs+m*Ns+qs/2;return j(rt(H-.8,C+W0-.8,W+.8,C+Ns-qs-X0+1.4,.8,2),ce)}).join("")},p);const F=Array.from({length:Ss},(A,m)=>{const C=Cs+m*Ns+qs/2,w=C+Ns-qs,E=_("g",{},p),$=[0,1,2,3].map(()=>_("path",{class:"lo"},E));return $.push(_("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),D=(A,m,C,w,E,$,G)=>w-C<.05?"":it(v,y,rt(A,C,m,w,G,3),null,E,$).sil;function k(A,m){if(m===A.drawn)return;A.drawn=m;const C=A.z0+W0,w=A.z1-X0,E=ce+m,$=E+ta,[G,J,B,R,Y]=A.parts;G.setAttribute("d",D(H,W,ce,E,C,C+Vn,.6)),J.setAttribute("d",D(H,H+Vn,ce,E,C+Vn,w,.5)),B.setAttribute("d",P.map(et=>D(et-.5,et+.5,ce,E,C+Vn,w-Vl,.4)).join("")),R.setAttribute("d",D(W-Vn,W,ce,E,C+Vn,w,.5)),Y.setAttribute("d",D(H,W,ce,E,C,w,.8)),Q(A.front,ql(v,X(A),z(A),E,$));const Z=(A.z0+A.z1)/2,V=ye/2,[K,O]=mt(V-9,$,V+9,$+2.6,1.3,.6);Q(A.pull,it(v,y,K,O,Z-1.3,Z+1.3))}const b=F.map(()=>Ft(0)),T=kt(t,(A,m)=>{let C=!1;return F.forEach((w,E)=>{k(w,Wt(b[E],m)),Jt(b[E],m)||(C=!0)}),C});o.add(T.unregister);let n=u,a=-2;function l(A,m){if(A===a)return;a=A;const C=A<0?1:A;b.forEach((w,E)=>oe(w,E===C?A<0?n*lo:n:0,m,0)),F.forEach((w,E)=>w.front.sil.classList.toggle("hi",E===C)),s.textContent=A<0?"rest":`drawer ${Ss-A} · 0`,T.wake()}b[1]=Ft(n*lo),l(-1,-1e9),F.forEach((A,m)=>k(A,Wt(b[m],0)));const d=Math.cos(r.az),f=Math.sin(r.az),x=Math.sqrt(1-r.k*r.k),M=(A,m)=>{const C=(A[0]-r.ox)/(r.S*d)+m*f/d;return[C,((C*f+m*d)*r.k-(A[1]-r.oy)/r.S)/x]};function S(A){for(let C=Ss-1;C>=0;C--){const[w,E]=M(A,ce+ta+(C===1?n*lo:0)),$=F[C];if(w>=$e&&w<=ye-$e&&E>=$.z0&&E<=$.z1)return C}const m=M(A,ce+ta)[1];return F.reduce((C,w,E)=>Math.abs(m-(w.z0+w.z1)/2)<Math.abs(m-(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 m=a;a=-2,l(m,performance.now())},destroy:o.dispose}},G0=32,Zt=34,$n=36,_n=25,Cn=2.5,uo=4,je=3*$n+_n+7,Ie=[5,7,28,27],Re=16.5,Fn=[-8,11,-2,23],Y0=17,Vr=2,e1=ge([[-16,-2],[33,-2],[33,-56],[76,-56],[76,38],[-16,38]],[3,2,4,6,6,6]),n1=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,Zt/2,je+3+En+2],Z0=1.5*$n-4,r1=["ground","floor 1","floor 2","floor 3"],s1=({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=Bt(c),h=_("g",{},e),v=(w,E,$,G,J)=>{const[B,R]=mt(...w,E,$);Q(q(h),it(r,i,B,R,G,J))},y=w=>_("path",{class:w},h),p=(w,E,$)=>{const G=w.length,J=w.map((K,O)=>{const et=w[(O+1)%G];return et[1]-K[1]-(et[0]-K[0])>0}),B=K=>{const O=J.findIndex((nt,ct)=>nt===K&&J[(ct+G-1)%G]!==K),et=[];for(let nt=O;J[nt%G]===K;nt++)et.push(w[nt%G]);return et.concat([w[(O+et.length)%G]])},R=(K,O)=>K.map(et=>r(et[0],et[1],O)),Y=B(!1),Z=B(!0),V=_("path",{class:"sil",d:tt(R(Y,$).concat(R(Z,E)))},h);return _("path",{class:"nf lo",d:jt(R(Z,$))},h),V};p(e1,-8,-Cn),v([-14-Vr,-Vr,-14,Zt],1,.5,-Cn,je),v([-14,-Vr,G0,0],1,.5,-Cn,je),v([Re-1.3,3,Re+1.3,5.4],.8,.5,-Cn,je);const[g,N]=mt(...Fn,1.6,.8),I=q(h),L=y("nf lo"),H=y("nf"),[W,P]=mt(...Ie,2.4,1.1),j=q(h),F=y("nf"),X=y("nf lo"),[z,D]=mt(Re-1.7,5.4,Re+1.7,28.6,.8,.5),k=q(h),b=y("nf");v([Re-1.3,28.6,Re+1.3,31],.8,.5,-Cn,je),v([-14-Vr,-Vr,G0+1,Zt+1],4,1.4,je,je+3),v([Wn+2,4,Re-2,Zt/2-3],2,1,je+3,Ye[2]+4),_("path",{class:"nf",d:ft(r(Re,Zt/2,je+3),r(Re,Zt/2,Ye[2]))+ft(r(Wn,Zt/2,je+3),r(Wn,Zt/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(Zt/2-1.8,En).concat(T(Zt/2+1.8,En)))),crease:tt(T(Zt/2+1.8,En-1.4))});const n=y("nf lo");_("path",{class:"nf lo",d:tt(T(Zt/2+1.8,2.6))},h);const a=[];for(let w=0;w<uo;w++){const E=w*$n,$=p(n1,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 B=en(h,c,.8,"dot off");Qt(B,r(37,Ie[1]-3-J*3,E)),G.push(B)}a.push({sil:$,dots:G})}const l=yt(Z0,{k:u,c:1.8*Math.sqrt(u)});let d=NaN,f=null;function x(w){const E=3*$n-w+6,$=(Ie[1]+Ie[3])/2;Q(I,it(r,i,g,N,E,E+Y0)),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,Zt/2,E+Y0),r(Wn,Zt/2,je))),Q(j,it(r,i,W,P,w,w+_n)),F.setAttribute("d",tt(rt(Ie[1]+3.5,w+1.2,Ie[3]-3.5,w+_n-4,1.2,4).map(R=>r(Ie[2],R.u,R.v)))),X.setAttribute("d",ft(r(Ie[2],$,w+1.2),r(Ie[2],$,w+_n-4))),Q(k,it(r,i,z,D,w+_n,w+_n+2.4)),b.setAttribute("d",ft(r(Re,Zt/2,w+_n+2.4),r(Re,Zt/2,je)));const G=w/En,J=Zt/2+1.8,B=(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(B(G+R*Math.PI/3,2.6),B(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,x(l.x)),E});o.add(M.unregister);const S=r(Ie[2],Zt/2,0)[1],A=S-r(Ie[2],Zt/2,1)[1],m=w=>lt(Math.floor(((S-w[1])/A+8)/$n),0,uo-1);function C(w){w!==f&&(f=w,l.t=w<0?Z0: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":r1[w],M.wake())}return C(-1),o.add(Et(t,{move:w=>C(m(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 a1(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 o1=({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 y=Mt(v),p=Bt(v),g=_("g",{},e),N=Jr.map((P,j)=>{const[F,X]=mt(...P.r,P.rad,1.3),z=d0(y,F),D=j>0?_("path",{class:"nf dash"},g):null,k=q(g),b=_("path",{class:"nf"},k.g),T=P.sel?rt(...P.sel,2):null,n=P.sel?_("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:D,el:k,marks:b,selRing:T,selEl:n,dotEls:a}}),I=([P,j,F,X],z)=>[y(P,j,z),y(F,j,z),y(F,X,z),y(P,X,z)];function L(P){if(!P)return-1;for(let j=Jr.length-1;j>=0;j--)if(a1(P,I(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 D=N[z],k=F(z),b=k+Qr;if(Q(D.el,it(y,p,D.ring,D.inner,k,b)),D.marks.setAttribute("d",X.segs.map(([T,n])=>ft(y(T[0],T[1],b),y(n[0],n[1],b))).join("")),D.selEl&&D.selRing&&D.selEl.setAttribute("d",tt(pt(y,D.selRing,b))),D.dotEls&&X.dots&&X.dots.forEach(([T,n],a)=>Qt(D.dotEls[a],y(T,n,b))),D.guide){const T=F(z-1)+Qr;D.guide.setAttribute("d",D.ext.map(n=>ft(y(n.u,n.v,k),y(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,Kt(s,e),c)),crease:u?tt(pt(t,u,c)):""}}function Be(t,e,s,u=1){const o=Math.cos(t.az),c=Math.sin(t.az),r=t.k,i=s+u,h=[],v=(g,N,I,L)=>{const H=o*I+r*c*L,W=r*o*L-c*I,P=Math.hypot(H,W);h.push({u:g*o+N/r*c,v:N/r*o-g*c,nu:H/P,nv:W/P})},y=e.map(g=>{const N=g.nu*o-g.nv*c,I=(g.nu*c+g.nv*o)/r,L=Math.hypot(N,I);return[g.u*o-g.v*c,(g.u*c+g.v*o)*r,N/L,I/L]}),p=y.map(([g,N,I,L])=>[g-i*I,N-i*L,I,L]).filter(([g,N])=>y.every(([I,L,H,W])=>(g-I)*H+(N-L)*W<1e-6-i));return p.forEach(([g,N,I,L],H)=>{const[W,P,j,F]=p[(H+1)%p.length],X=Math.atan2(I*F-L*j,I*j+L*F);if(v(g+u*I,N+u*L,I,L),Math.abs(X)<.1)return;const z=g*I+N*L,D=W*j+P*F,k=I*F-L*j,b=(z*F-D*L)/k,T=(I*D-j*z)/k;for(let n=0,a=Math.ceil(Math.abs(X)/.2);n<=a;n++){const l=Math.atan2(L,I)+X*n/a,d=Math.cos(l),f=Math.sin(l);v(b+u*d,T+u*f,d,f)}}),h}var Ba=(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)],n0=12,r0=5.5,c1=2.4,fo=8,i1=13,K0=55,l1=80,ho=14,na=-9,qr=118,ts=-8,Jn=9*n0+r0+8,Ii=[[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]],U0=Ii.length;function u1(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 f1=({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=Bt(r),v=_("g",{},e),[y,p]=Ba(na,ts,qr,Jn,8,2.2);Q(q(v),We(i,h,y,p,-5,0)),_("path",{d:`M${i(fo-4,ts+5,0).join(" ")}L${i(fo-4,Jn-5,0).join(" ")}`,class:"dash"},v);const g=Ii.map(([P,j,F,X,z,D],k)=>{const b=fo+P*i1,T=k*n0,n=q(v);return{r:k,yaw:F,dx:X,dy:z,dz:D,px:b,py:T+r0/2,drawn:NaN,ring:rt(b,T,b+j,T+r0,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,u1(P.ring,P.px,P.py,X,P.dx*F,P.dy*F),null,z,z+c1))}}let I=-1;const L=kt(t,(P,j)=>{let F=!1;for(const X of g)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===I)return;const j=performance.now(),F=I,X=Le();I=P;for(const z of g){const D=z.r<=P?0:1;if(D!==z.tgt){z.tgt=D;const b=D===1;z.sp.k=b?22:100,z.sp.c=b?9.4:14,z.due=j+(X?0:b?(U0-1-z.r)*l1:(z.r-(F+1))*K0)}const k=z.r===P?1:0;z.wantLit=!!k,z.litDue=j+(k&&!X?Math.max(0,z.r-(F+1))*K0: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/n0),-1,U0-1)};return o.add(Et(t,{move:P=>H(W(P)),leave:()=>H(-1)})),o.add(()=>e.replaceChildren()),g.forEach(P=>N(P)),{set:P=>{c=P/ho,g.forEach(j=>{j.drawn=NaN}),L.wake()},destroy:o.dispose}},hn=52,sn=10,ra=3,fe=18,es=8,V0=[1,.5,.2,.06,0],d1=70,J0=40,Q0={k:70,c:14},h1={k:40,c:12.4},q0={k:120,c:21,eps:.002},p1={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]],tc=[[-1,-1],[0,-1],[1,-1],[1,0],[1,1],[0,1],[-1,1],[-1,0]],v1=({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]];tc.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),y=Bt(r),p=_("g",{},e);let g="";for(let n=-i;n<=i+1;n+=hn/2)g+=ft(v(n,-i,0),v(n,i,0))+ft(v(-i,n,0),v(i,n,0));_("path",{d:g,class:"nf lo"},p);const N=tc.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,{...Q0}),lk:yt(0,{...q0,eps:.002}),hw:Ft(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,m])=>[v(A,m,0),v(A,m,es)])),d=A=>{let m=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($*m<0)return!1;$&&(m=$)}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 x=Math.hypot(n.x,n.y)*(n.b-n.a),M=Math.max(2,Math.round(x/6));let S="";for(let A=0;A<M;A++){const m=n.a+(n.b-n.a)*(A+.15)/M,C=n.a+(n.b-n.a)*(A+.65)/M;S+=ft(v(n.x*m,n.y*m,0),v(n.x*C,n.y*C,0))}_("path",{d:S,class:"nf"},p)}),N.forEach(n=>{n.slot=_("path",{class:"nf lo"},p),n.line=_("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=Be(r,a,1.3),d=Be(r,a,2.8),f=rt(-7,-7,7,7,2,8);Q(q(p),We(v,y,a,l,0,es)),_("path",{d:jt(pt(v,d.concat(d.slice(0,1)),es)),class:"nf lo"},p);const x=jt(pt(v,f.concat(f.slice(0,1)),es));L=_("path",{d:x,class:"nf hi"},p);continue}n.ring=rt(n.x-sn,n.y-sn,n.x+sn,n.y+sn,4,8),n.inner=Be(r,n.ring,1.1),n.el=q(p)}const W=Ft(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=Wt(n.hw,a);l!==n.drawn&&(n.drawn=l,Q(n.el,We(v,y,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 x=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*x,n.y*x,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?Q0:h1),f.sp.t=f.tgt):l=!0),wt(f.sp,n)&&(l=!0),wt(f.lk,n)&&(l=!0),Jt(f.hw,a)||(l=!0),j(f,a);const d=Wt(W,a)>.5;return d!==P&&(P=d,L.setAttribute("class",d?"nf hi":"nf lo")),Jt(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 D=-1;function k([n,a]){if(Math.hypot(n-z[0],a-z[1])<30)return-1;let l=-1,d=J0;if(X.forEach((f,x)=>{const M=Math.hypot(n-f[0],a-f[1]);M<d&&(d=M,l=x)}),l!==D&&D>=0){const f=Math.hypot(n-X[D][0],a-X[D][1]);if(f<J0&&d>.8*f)return D}return l}const b=(n,a)=>Math.min((n.n-a+8)%8,(a-n.n+8)%8);function T(n){if(n===D)return;const a=performance.now(),l=n>=0?N[n].n:N[D].n;D=n,N.forEach(d=>{const f=b(d,l),x=n<0?0:c*V0[f],M=x>d.tgt,S=Le()?0:M?f*d1:n<0?(4-f)*25:f===0?60:0;d.tgt=x,d.due=a+S,d.pend=!0;const A=d.k===n;Object.assign(d.lk,A?q0:p1),d.lk.t=A?1:0,d.hw.dur=A?220:260,oe(d.hw,A?1:0,a,A?60:0)}),W.dur=n<0?280:200,oe(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,D>=0){const a=N[D].n;N.forEach(l=>{l.tgt=l.sp.t=c*V0[b(l,a)],l.pend=!1}),F.wake()}},destroy:o.dispose}},Yt=14,qn=.8,ec=1.8,m1=1,g1=8,ee=6,tr=15,ns=[12.6,11.3,10.4,11,11.8],sa=t=>t.split(" ").map(e=>[1,"key "+e]),nc=[[[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"]]],x1=["key f","key j"],b1=t=>lt(1-t,0,1),y1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.42);Ct(c,[[-ee,-ee,-8],[tr*Yt+ee,5*Yt+ee,-8],[tr*Yt+ee,-ee,-8],[-ee,5*Yt+ee,-8],[0,0,ns[0]]],200,166);const r=Mt(c),i=Bt(c);let h=u,v=null,y=null;const p=_("g",{},e),[g,N]=mt(-ee,-ee,tr*Yt+ee,5*Yt+ee,9,2.2);Q(q(p),it(r,i,g,N,-8,0));const I=[];nc.forEach((k,b)=>{let T=0;for(const[n,a]of k){const l=T*Yt,d=(T+n)*Yt,f=b*Yt,x=(b+1)*Yt,M=qn+ec,S=q(p);I.push({r:b,name:a,x0:l,x1:d,y0:f,y1:x,h:ns[b],foot:rt(l+qn,f+qn,d-qn,x-qn,2.6,4),top:rt(l+M,f+M,d-M,x-M,2,4),inner:rt(l+M+.9,f+M+.9,d-M-.9,x-M-.9,1.2,4),el:S,sp:yt(ns[b],{eps:.02}),drawn:NaN,bump:x1.includes(a)?_("path",{class:"lo nf"},S.g):null}),T+=n}});const L=I.find(k=>k.name==="enter");function H(k,b,T,n){for(const a of I){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===b?1:b1(Math.hypot(l,d)/(T*Yt));a.sp.t=a.h-g1*n*f}}const W=[(L.x0+L.x1)/2,(L.y0+L.y1)/2];H(W,L,1.6,.6);for(const k of I)k.sp.x=k.sp.t;function P(k){const b=k.sp.x;if(b!==k.drawn&&(k.drawn=b,Q(k.el,{sil:tt(Pt(pt(r,k.foot,m1).concat(pt(r,k.top,b)))),crease:jt(pt(r,Kt(k.inner,i),b))}),k.bump)){const T=(k.x0+k.x1)/2,n=k.y1-qn-ec-2.4;k.bump.setAttribute("d",ft(r(T-2.2,n,b),r(T+2.2,n,b)))}}function j(k){k!==y&&(y?.el.sil.classList.remove("hi"),y=k,k.el.sil.classList.add("hi"))}const F=kt(t,k=>{let b=!1;for(const T of I)wt(T.sp,k)&&(b=!0),P(T);return b});o.add(F.unregister);const X=(k,b)=>I.find(T=>T.r===k&&b>=T.x0&&b<T.x1);function z(k){for(let n=nc.length-1;n>=0;n--){const a=le(c,k[0],k[1],ns[n]);if(!(a[1]<n*Yt||a[1]>=(n+1)*Yt||a[0]<0||a[0]>=tr*Yt))return{at:a,key:X(n,a[0])}}const b=le(c,k[0],k[1],ns[2]);if(b[0]<-ee||b[0]>tr*Yt+ee||b[1]<-ee||b[1]>5*Yt+ee)return null;const T=[lt(b[0],0,tr*Yt-.01),lt(b[1],0,5*Yt-.01)];return{at:T,key:X(Math.floor(T[1]/Yt),T[0])}}function D(){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),D()},leave:()=>{v=null,D()}})),o.add(()=>e.replaceChildren()),{set:k=>{h=k,v&&D()},destroy:o.dispose}},ne=150,_e=106,s0=4,wn=2.4,_i=s0+wn/2,rc=7,sc=1.1,po=15,aa=100,er=4.2,oa=7.5,Ot=8.6,a0=6,ac=t=>{const e=Math.cos(vt(t)),s=Math.sin(vt(t));return(u,o,c)=>[u,o*e-c*s,_i+o*s+c*e]};function M1(){const t=[],e=(ne-14.5*Ot)/2,s=(i,h,v)=>{let y=e;for(const p of v)t.push([y,i,y+p*Ot,i+h]),y+=p*Ot},u=i=>Array(i).fill(1);s(a0,Ot*.6,Array(14).fill(14.5/14));let o=a0+Ot*.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,Ot,i),o+=Ot;s(o,Ot,[1,1,1,1.25,5,1.25,1]);const c=e+11.5*Ot,r=Ot/2;return t.push([c,o+r,c+Ot,o+Ot],[c+Ot,o,c+2*Ot,o+r],[c+Ot,o+r,c+2*Ot,o+Ot],[c+2*Ot,o+r,c+3*Ot,o+Ot]),{out:t,y1:o+Ot,x0:e}}var w1=({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],[ne,0,0],[0,_e,0],[ne,_e,0]];for(const O of[po,90,aa,125])for(const et of[0,ne])for(const nt of[0,_e])for(const ct of[-wn/2,wn/2])h.push(ac(O)(et,nt,ct));Ct(i,h,200,166);const v=Mt(i),y=Bt(i),p=v(0,0,0),g=v(1,0,0),N=v(0,1,0),I=v(0,0,1),L=[g[0]-p[0],N[0]-p[0],I[0]-p[0]],H=[g[1]-p[1],N[1]-p[1],I[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(O=>-O));const P=(O,et)=>O[0]*et[0]+O[1]*et[1]+O[2]*et[2],j=_("g",{},e),[F,X]=mt(0,0,ne,_e,rc,sc);Q(q(j),it(v,y,F,X,0,s0));const z=O=>tt(O.map(et=>v(et.u,et.v,s0))),D=M1();_("path",{class:"nf lo",d:D.out.map(([O,et,nt,ct])=>z(rt(O+.5,et+.5,nt-.5,ct-.5,1.1,2))).join("")},j),_("path",{class:"nf",d:z(rt(D.x0-1.6,a0-1.6,ne-D.x0+1.6,D.y1+1.6,3,4))},j),_("path",{class:"nf",d:z(rt(ne/2-35,_e-45,ne/2+35,_e-5,3.2,4))},j);const k=_("g",{},j),b=q(k),T=_("g",{},k);b.sil.classList.add("hi");const[n,a]=mt(0,0,ne,_e,rc,sc),l=_("path",{class:"nf"},T),d=_("path",{class:"nf lo"},T),f=_("path",{class:"nf lo"},T),x=_("path",{},T),M=_("path",{class:"nf lo"},T),S=_("circle",{r:.8,class:"dot off"},T),A=[0,1,2].map(()=>_("circle",{r:.8,class:"dot off"},T)),m=_e-er,C=30,w=104,E=oa+16,$=m-12;let G=null,J=NaN;function B(O){if(O===J)return;J=O;const et=ac(O),nt=Math.cos(vt(O)),ct=Math.sin(vt(O)),_t=(dt,gt,Rt)=>v(...et(dt,gt,Rt)),ot=(dt,gt)=>_t(dt,gt,-wn/2),zt=(dt,gt)=>dt.map(Rt=>_t(Rt.u,Rt.v,gt)),Lt=P([0,ct,-nt],W)>0,It=Lt?-wn/2:wn/2,Xt=dt=>P([dt.nu,dt.nv*nt,dt.nv*ct],W)>0;Q(b,{sil:tt(Pt(zt(n,-wn/2).concat(zt(n,wn/2)))),crease:jt(zt(Kt(a,Xt),It))}),Lt!==G&&(G=Lt,Lt?b.g.after(T):b.g.before(T));const at=dt=>tt(dt.map(gt=>ot(gt.u,gt.v)));l.setAttribute("d",at(rt(er,oa,ne-er,m,3,4))),d.setAttribute("d",ft(ot(er+1.5,m-4),ot(ne-er-1.5,m-4))),f.setAttribute("d",at(rt(ne/2-28,oa+2.5,ne/2+28,oa+8.5,2.2,4))),x.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(ne/2,_e-er/2)),A.forEach((dt,gt)=>Qt(dt,ot(C+4+gt*3.4,$-3)))}const R=yt(aa,{eps:.05}),Y=kt(t,O=>{const et=wt(R,O);return B(R.x),et});o.add(Y.unregister),B(aa);const Z=v(ne/2,0,_i+_e)[1]+12,V=v(ne/2,_e,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:O=>{r=O[1],K()},leave:()=>{r=null,K()}})),o.add(()=>e.replaceChildren()),{set:O=>{c=O,K()},destroy:o.dispose}},js=6,Rs=2,Wa=24,Xa=38,Ga=1.2,Qe=3,ze=6,Ut=26,jn=1.4,oc=23,nr=js*Wa+2*Qe,rs=Rs*Xa+2*Qe,Fe=Wa-2*Ga,nn=Xa-2*Ga,vo=5,cc=22,ic=120,ca=rt(0,0,Fe,nn,1.8,4),lc=[0,1,2].map(t=>rt(4,nn-6.6-t*3.2,Fe-4,nn-5.2-t*3.2,.7,2)),k1=rt(Fe/2-4.5,nn-19,Fe/2+4.5,nn-15,1,3),A1=rt(Fe-5.6,nn/2-7,Fe-2.8,nn/2+2,1.2,3),E1=rt(2.6,2.6,Fe-2.6,nn-2.6,1.4,3),uc=t=>t.reduce((e,s,u)=>{const o=t[(u+1)%t.length];return e+s[0]*o[1]-o[0]*s[1]},0),T1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,1.6),r=[Math.cos(vt(ic))*Fe,Math.sin(vt(ic))*Fe];Ct(c,[[-4,-4,0],[nr+4,Ut+4,0],[nr+4,-4,0],[-4,Ut+4,0],[0,0,ze+rs],[nr,0,ze+rs],[Qe+r[0],Ut+r[1],ze+Qe],[Qe+r[0],Ut+r[1],ze+rs-Qe]],200,166);const i=Mt(c),h=Bt(c);let v=u,y=-1;function p(k,b){const T=i(0,b,0),n=i(1,b,0),a=i(0,b,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],x=k[0]-T[0],M=k[1]-T[1];return[(x*d[1]-M*d[0])/f,(l[0]*M-l[1]*x)/f]}function g(k,b,T){const n=i(...k),a=i(...b),l=p(n,Ut),d=p(a,Ut),f=.9;let x=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[m,C]of S){if(m===0){if(C<0)return"";continue}const w=C/m;m<0?x=Math.max(x,w):M=Math.min(M,w)}if(M-x<.01)return"";const A=m=>[n[0]+(a[0]-n[0])*m,n[1]+(a[1]-n[1])*m];return ft(A(x),A(M))}const N=_("g",{},e),[I,L]=mt(-4,-4,nr+4,Ut+4,5,1.6);Q(q(N),it(i,h,I,L,0,ze));const[H,W]=mt(0,0,nr,Ut,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 b=0;b<Rs;b++){const T=Qe+k*Wa+Ga,n=ze+Qe+b*Xa+Ga,a=_("g",{},N);_("path",{d:tt(ca.map(M=>i(T+M.u,Ut,n+M.v))),class:""},a);const l={c:k,r:b,n:(Rs-1-b)*js+k+1,x0:T,z0:n,drawn:NaN,sign0:0,tw:Ft(0)},d=l.z0+nn-9.5,f=l.x0+Fe,x=[g([l.x0,Ut,l.z0],[l.x0,Ut-oc,l.z0],l),g([l.x0,Ut-1.6,d],[f,Ut-1.6,d],l),g([l.x0,Ut-1.6,d],[l.x0,Ut-oc,d],l)].join("");_("path",{d:x,class:"nf lo"},a),l.plate=_("path",{class:"lo"},a),l.face=_("path",{class:"sil"},a),l.marks=_("path",{class:"nf lo"},a),l.cup=_("path",{class:"nf"},a),P.push(l)}const j=k=>P.find(b=>b.n===k);function F(k,b){if(b===k.drawn)return;k.drawn=b;const T=Math.cos(vt(b)),n=Math.sin(vt(b)),a=S=>A=>i(k.x0+A.u*T-S*n,Ut+jn/2+A.u*n+S*T,k.z0+A.v),l=ca.map(a(jn/2)),d=ca.map(a(-jn/2)),f=uc(l)*k.sign0>0,x=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?[...lc,k1]:[...lc,E1];k.marks.setAttribute("d",M.map(S=>tt(S.map(a(x)))).join("")),k.cup.setAttribute("d",f?tt(A1.map(a(x))):"")}for(const k of P)k.sign0=Math.sign(uc(ca.map(b=>i(k.x0+b.u,Ut+jn,k.z0+b.v))));const X=kt(t,(k,b)=>{let T=!1;for(const n of P)F(n,Wt(n.tw,b)),Jt(n.tw,b)||(T=!0);return T});o.add(X.unregister);function z(k){const[b,T]=p(k,Ut+jn);if(b<0||b>nr||T<ze||T>ze+rs)return-1;const n=lt(Math.floor((b-Qe)/Wa),0,js-1),a=lt(Math.floor((T-ze-Qe)/Xa),0,Rs-1);return(Rs-1-a)*js+n+1}function D(k,b){if(k===y&&!b)return;y=k;const T=performance.now(),n=k>0?k:vo;for(const a of P)oe(a.tw,a.n===k?v:k<=0&&a.n===vo?cc: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=Ft(cc),D(0,!0),o.add(Et(t,{move:k=>D(Math.max(0,z(k))),leave:()=>D(0)})),o.add(()=>e.replaceChildren()),{set:k=>{v=k,y>0&&D(y,!0)},destroy:o.dispose}},Rn=124,ss=92,mo=7,ia=13,fc=11,Ps=26,dc=12,Bs=27,go=20,S1=1.2,xo=Bs-1.4,N1=[45,165,285],hc=35,C1=1.8,rr=[Ps+9,46],j1=2.1,R1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,j1),r=go+S1,i=N1.map(m=>[Math.cos(m*Math.PI/180),Math.sin(m*Math.PI/180)]),[h,v]=le(c,...Mt(c)(0,0,0),r),y=[[0,0,-2.4],[Rn,0,-2.4],[0,ss,-2.4],[Rn,ss,-2.4]];for(const m of ht(Bs,16))y.push([rr[0]+h+m.u,rr[1]+v+m.v,r]);Ct(c,y,200,166);const p=Mt(c),g=Bt(c),N=_("g",{},e),[I,L]=mt(0,0,Rn,ss,6,1.4);Q(q(N),it(p,g,I,L,-2.4,0));const H=m=>ia+m*fc,W=[[[Ps,ia-7],[Ps,H(mo-1)+7]],...Array.from({length:mo},(m,C)=>[[Ps,H(C)],[Rn-dc,H(C)]])];_("path",{class:"nf lo",d:W.map(([m,C])=>ft(p(m[0],m[1],0),p(C[0],C[1],0))).join("")},N);const P=_("path",{class:"nf"},N),j=q(N),F=_("path",{class:"nf lo"},N),X=_("path",{class:"nf sil"},N),z=ht(xo*.72,64).slice(26,36),D=ht(Bs,64),k=ht(xo,64),b=rt(0,0,Rn,ss,6,12),T=ht(C1,12),n=(m,C)=>m>=0&&m<=Rn&&C>=0&&C<=ss?0:-2.4,a=yt(rr[0]),l=yt(rr[1]),d=yt(u);let f=NaN,x=NaN,M=NaN;function S(){if(a.x===f&&l.x===x&&d.x===M)return;const m=a.x!==f||l.x!==x;f=a.x,x=l.x,M=d.x;const C=f+h,w=x+v;if(m){const J=(B,R)=>p(C+B.u,w+B.v,R);P.setAttribute("d",i.map(([B,R])=>{const Y=C+B*hc,Z=w+R*hc,V=n(Y,Z);return ft(p(Y,Z,V),p(C+B*(Bs-1),w+R*(Bs-1),go))+tt(T.map(K=>p(Y+K.u,Z+K.v,V)))}).join("")),Q(j,{sil:tt(Pt(D.map(B=>J(B,go)).concat(D.map(B=>J(B,r))))),crease:tt(k.map(B=>J(B,r)))}),F.setAttribute("d",jt(z.map(B=>J(B,r))))}const E=xo-1,$=(J,B)=>{const R=(J[0]-f)*M,Y=(J[1]-x)*M,Z=(B[0]-J[0])*M,V=(B[1]-J[1])*M,K=Z*Z+V*V,O=R*Z+Y*V,et=O*O-K*(R*R+Y*Y-E*E);if(et<=0)return"";const nt=Math.max(0,(-O-Math.sqrt(et))/K),ct=Math.min(1,(-O+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=b.map((J,B)=>$([J.u,J.v],[b[(B+1)%b.length].u,b[(B+1)%b.length].v])).join("");for(const[J,B]of W)G+=$(J,B);X.setAttribute("d",G)}const A=kt(t,m=>{const C=wt(a,m),w=wt(l,m),E=wt(d,m);return S(),C||w||E});return o.add(A.unregister),j.sil.classList.add("hi"),s.textContent="rest",S(),o.add(Et(t,{move:m=>{const[C,w]=le(c,m[0],m[1],0);a.t=lt(C,Ps,Rn-dc),l.t=lt(w,ia,H(mo-1)),s.textContent=`row ${Math.round((l.t-ia)/fc)+1} · 0`,A.wake()},leave:()=>{a.t=rr[0],l.t=rr[1],s.textContent="rest",A.wake()}})),o.add(()=>e.replaceChildren()),{set:m=>{d.t=m,A.wake()},destroy:o.dispose}},pn=56,zn=20,Me=44,we=1.6,bo=4.2,la=30,yo=13,pc=zn/2,P1=13,vc=7,mc=11,as=.42,B1=26,L1=56,gc=200,xc=2.75,I1=100,_1=Math.SQRT1_2*Math.sqrt(3),bc=t=>t*t*(3-2*t);function z1(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 H1(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],y=o*i-c*r;if(!y)return null;const p=(h*i-v*r)/y,g=(h*c-v*o)/y;return p>0&&p<1&&g>0&&g<1?[t[0]+p*o,t[1]+p*c]:null}function yc(t){for(let e=0;e<t.length-3;e++)for(let s=t.length-2;s>e+1;s--){const u=H1(t[e],t[e+1],t[s],t[s+1]);if(u){t.splice(e+1,s-e,u);break}}return t}function D1(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)],y=[h[0]-i[0],h[1]-i[1]],p=[v[0]-h[0],v[1]-h[1]],g=Math.hypot(y[0],y[1])||1,N=Math.hypot(p[0],p[1])||1;let I=y[0]/g+p[0]/N,L=y[1]/g+p[1]/N;const H=Math.hypot(I,L)||1;I/=H,L/=H,u.push([h[0]-L*e,h[1]+I*e]),o.push([h[0]+L*e,h[1]-I*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([...yc(u),...c(t[s-1]),...yc(o).reverse(),...c(t[0])])}var O1=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=yt(u);let r=!1;const i=(S,A,m)=>{const C=[Math.cos(vt(m)),-Math.sin(vt(m))],w=Me+P1+A,E=la/2,$=(J,B)=>S(yo+C[0]*J,pc+C[1]*J,B),G=[$(la,Math.max(Me-vc+A,Me)),$(la,w)];for(let J=1;J<28;J++){const B=Math.PI*J/28;G.push($(E+E*Math.cos(B),w+E*Math.sin(B)))}return G.push($(0,w),$(0,Me)),G},h=At(45,.5,xc),v=(S,A,m)=>[S,A,m],y=[[0,0,0],[pn,0,0],[0,zn,0],[pn,zn,0],[0,0,Me]];for(const S of[0,40,80,I1])for(const A of i(v,mc,S))y.push([A[0],A[1],A[2]+bo]);Ct(h,y,200,170);const p=Mt(h),g=bo*xc,N=ge([[0,0],[pn,0],[pn,Me],[0,Me]],[14,14,7,7],12),I=z1(ge([[we,we],[pn-we,we],[pn-we,Me-we],[we,Me-we]],[14-we,14-we,7-we,7-we],12)),L=_("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(Kt(I,S=>S.nu*_1+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)])}_("path",{d:tt(z.map(S=>p(S[0],zn,S[1]))),class:"nf"},L);const D=ht(bo+1.3,20);for(const S of[yo,yo+la])_("path",{d:tt(D.map(A=>p(S+A.u,pc+A.v,Me))),class:"nf lo"},L);const k=_("path",{class:"sil"},L),b=(S,A)=>[mc*bc(lt(S/as,0,1)),A*bc(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]=b(n.x,c.x);k.setAttribute("d",D1(i(p,S,A),g))}const f=kt(t,S=>{const A=wt(n,S),m=wt(c,S);return d(),A||m});o.add(f.unregister);const x=p(pn/2,zn/2,Me/2);function M(){const[S,A]=b(n.t,c.t),m=r&&S<vc;s.textContent=r?m?"locked":A<1?"open":Math.round(A)+"°":"rest",k.classList.toggle("hi",!m),f.wake()}return M(),o.add(Et(t,{move:S=>{r=!0,n.t=lt((gc-Math.hypot(S[0]-x[0],S[1]-x[1]))/(gc-L1),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}},La=12,Ia=15,zi=8,Ls=15,$1=5,sr=44,Hn=Ls+$1,vn=2*Hn+La*Ia+zi,os=30,cs=12.5,Pn=5,re=4.2,ua=1.9,Mo=1.7,F1=2.4,fa=4.3,ar=3.5,W1=4,X1=5,G1=1.8,Y1=6,wo=10,is=7,ko=9,Z1=[2,10,18],da=7,Ao=2.5,K1=t=>[t*7%5-2,t*11%7-3],U1=(t,e)=>t===0?0:lt(1-(t-1)/e,0,1);function V1(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)],y=Math.hypot(v[0]-h[0],v[1]-h[1])||1,p=[(v[0]-h[0])/y,(v[1]-h[1])/y];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 y=[];for(let p=1;p<6;p++){const g=p/6*Math.PI,N=Math.cos(g),I=Math.sin(g);y.push([i[0]+v*e*(-h[1]*N+h[0]*I),i[1]+v*e*(h[0]*N+h[1]*I)])}return y};return tt([...u,...r(t[s-1],c[s-1],1),...o.reverse(),...r(t[0],c[0],-1)])}var J1=({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),y=Bt(r);let p=u,g=-1,N=null;const I=(B,R,Y,Z)=>B.map(V=>v(R+V.u,Y,Z+V.v)),L=B=>.612*B.nu+.5*B.nv>0,H=(B,R,Y,Z,V,K)=>({sil:tt(Pt(I(B,Y,V,Z).concat(I(B,Y,K,Z)))),crease:jt(I(Kt(R,L),Y,K,Z))}),W=_("g",{},e),[P,j]=mt(Ls+2,-18,vn-Ls-2,-2.6,3,1.6);Q(q(W),it(v,y,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=B=>B.map(R=>[R.u,R.v]),X=(B,R)=>_("path",{d:tt(B.map(([Y,Z])=>v(Y,0,Z))),class:R},W);for(const B of[Ls/2+1,vn-Ls/2-1])for(const R of[8,sr-8])X(F(rt(B-3.4,R-1.5,B+3.4,R+1.5,1.5,3)),"nf");const z=[];for(let B=0;B<2*La;B++){const R=B<La?0:1,Y=B%La;z.push({p:B,r:R,c:Y,cx:Hn+(Y+.5)*Ia+(Y>=6?zi:0),cz:R?cs:os,full:!Z1.includes(B)})}for(const B of[0,6]){const R=z[B].cx-Ia/2+1,Y=z[B+5].cx+Ia/2-1;X(F(rt(R,cs-re-3,Y,os+re+Mo+2.6,2.4,4)),"lo nf")}const D=ge([[-Pn,-re],[Pn,-re],[Pn,re],[ua,re],[ua,re+Mo],[-ua,re+Mo],[-ua,re],[-Pn,re]],[1,1,1,.4,.5,.5,.4,1]);for(const B of z){const{cx:R,cz:Y}=B,Z=F1;B.jack=X(D.map(([V,K])=>[R+V,Y+K]),"nf"),_("path",{d:jt([[-Pn+Z,re],[-Pn+Z,-re+.816*Z],[Pn,-re+.816*Z]].map(([V,K])=>v(R+V,0,Y+K))),class:"lo nf"},W)}const k=_("g",{},W),b=_("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((B,R)=>B.c-R.c||B.r-R.r);for(const B of d)B.pull=yt(0,{eps:.002}),B.lx=yt(0,{eps:.01}),B.lz=yt(0,{eps:.01}),B.full&&(B.plug=q(k),B.latch=_("path",{class:"lo nf"},B.plug.g),B.boot=q(k),B.cable=_("path",{class:"sil"},b),B.drawn="");function f(B){const R=B.pull.x,Y=B.lx.x,Z=B.lz.x,V=[R,Y,Z].map(qt=>qt.toFixed(3)).join();if(V===B.drawn)return;B.drawn=V;const{cx:K,cz:O,r:et,p:nt}=B,ct=W1+Y1*R,_t=ct+X1,ot=et?-1:1,[zt,Lt]=K1(nt);Q(B.plug,H(T,n,K,O,0,ct)),B.latch.setAttribute("d",ft(v(K,.6,O+ar),v(K,ct-.8,O+ar))),Q(B.boot,{sil:tt(Pt(I(a,K,ct,O).concat(I(l,K,_t,O)))),crease:""});const It=et?6:2,Xt=et?2:3,at=[K,_t-1.5,O],dt=et?[K+.5,_t+It+4*R,O]:[K,_t+1+2*R,O+6],gt=[K+Xt+zt+Y,_t+It+1+ko*R,O+ot*(24+Lt)+Z+ko*R],Rt=[gt[0]-.6,gt[1]-1,gt[2]-ot*12],Gt=[];for(let qt=0;qt<=16;qt++){const xt=qt/16,xe=(1-xt)**3,un=3*(1-xt)**2*xt,Hr=3*(1-xt)*xt*xt,Ki=xt**3;Gt.push(v(...[0,1,2].map(Xs=>xe*at[Xs]+un*dt[Xs]+Hr*Rt[Xs]+Ki*gt[Xs])))}B.cable.setAttribute("d",V1(Gt,G1*c))}function x(B,R,Y){const Z=z[B];for(const V of z){const K=V.c-Z.c,O=V.r-Z.r,et=Math.hypot(K,O),nt=U1(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(-O/et*nt*is,-is,is):0}}function M(B){if(B===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=B,R(B,!0)}x(da,1.6,.55);for(const B of z)for(const R of[B.pull,B.lx,B.lz])R.x=R.t;M(z[da]),s.textContent="rest";const S=kt(t,B=>{let R=!1;for(const Y of z){for(const Z of[Y.pull,Y.lx,Y.lz])wt(Z,B)&&(R=!0);Y.full&&f(Y)}return R});o.add(S.unregister);const A=v(0,Ao,0),m=v(1,Ao,0),C=v(0,Ao,1),w=[m[0]-A[0],m[1]-A[1]],E=[C[0]-A[0],C[1]-A[1]],$=w[0]*E[1]-w[1]*E[0];function G([B,R]){const Y=B-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-re-6||K>os+re+8)return-1;let O=-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,O=nt.p)}return O}function J(){g>=0?(x(g,p,1),M(z[g]),s.textContent="port "+String(g+1).padStart(2,"0")):(x(da,1.6,.55),M(z[da]),s.textContent="rest"),S.wake()}return o.add(Et(t,{move:B=>{const R=G(B);R!==g&&(g=R,J())},leave:()=>{g=-1,J()}})),o.add(()=>e.replaceChildren()),{set:B=>{p=B,g>=0&&J()},destroy:o.dispose}},Ht=68,ut=140,Eo=11,Q1=40,Pr=2,Br=1.6,Hi=1.8,Va=7,Os=6,p0=2.2,Ya=.9,q1=Pr+Br+Hi+Va+Os+p0+Ya,tu=["glass","board","battery","shell"],eu=[.36,.3,1.2],nu=.08,Mc=1,Di=[[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],ru=[[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]],wc=[[0,0],[Ht,0],[Ht,ut],[0,ut]],su=[wc,Di,[[cn[0],cn[1]],[cn[2],cn[1]],[cn[2],cn[3]],[cn[0],cn[3]]],wc],kc=[Pr,Br,Va,Os];function Ac(t){const e=[0],s=[Pr,Br+Hi,Va];for(let o=0;o<3;o++)e.push(e[o]+s[o]+t[o]);const u=(e[3]+Os+p0+Ya)/2;return e.map(o=>o-u)}function au(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})),ou=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=null,i=Mc,h=null;const v=At(45,.5,1.5),y=(q1+3*Q1)/2;Ct(v,[[0,0,-y],[Ht+2.2,ut,-y],[Ht+2.2,0,-y],[0,ut,-y],[0,0,y],[Ht+2.2,0,y],[0,ut,y]],200,166);const p=Mt(v),g=Bt(v),N=(at,dt)=>tt(at.map(([gt,Rt])=>p(gt,Rt,dt))),I=_("g",{},e),L=rt(0,0,Ht,ut,Eo,8),H=d0(p,L).slice(0,2),W=_("path",{class:"nf dash"},I),P=_("g",{},I),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=_("path",{class:"nf"},P),D=_("path",{class:"nf"},P),k=_("path",{class:"nf lo"},P),b=ls(ht(1.5,16),Ht/2+6,ut-7),T=_("g",{},I),n=ge(Di,[4,4,4,4,3,4]),a=_("path",{class:"lo"},T),l=_("path",{class:"sil"},T),d=ru.map(([at,dt,gt,Rt,Gt])=>{const[qt,xt]=mt(at,dt,gt,Rt,1.5,.7);return{ring:qt,inner:xt,h:Gt,el:q(T)}}),f=_("g",{},I),x=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]),m=_("path",{class:"lo"},f),C=_("path",{},f),w=q(f),[E,$]=mt(42,ut-38,51,ut-32,1.5,.7),G=_("g",{},I),J=q(G),B=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:_("path",{class:"nf lo"},gt.g)}}),O=_("path",{class:"nf"},G),et=ls(ht(1.7,16),25.5,ut-25.5),nt=[at=>{Q(j,it(p,g,L,F,at,at+Pr));const dt=at+Pr;z.setAttribute("d",N(X,dt)),D.setAttribute("d",tt(pt(p,b,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+Br));for(const dt of d)Q(dt.el,it(p,g,dt.ring,dt.inner,at+Br,at+Br+dt.h))},at=>{Q(x,it(p,g,M,S,at,at+Va)),m.setAttribute("d",N(A,at+.8)),C.setAttribute("d",N(A,at+1.4)),Q(w,it(p,g,E,$,at+1.4,at+2.6))},at=>{Q(J,it(p,g,L,B,at,at+Os));for(const Rt of R)Q(Rt.el,it(p,g,Rt.ring,Rt.inner,at+1.6,at+4.4));const dt=at+Os,gt=dt+p0;Q(Y,it(p,g,Z,V,dt,gt));for(const Rt of K)Q(Rt.el,it(p,g,Rt.ring,Rt.inner,gt,gt+Ya)),Rt.glass.setAttribute("d",tt(pt(p,Rt.eye,gt+Ya)));O.setAttribute("d",tt(pt(p,et,gt)))}],ct=[j.sil,l,x.sil,J.sil],_t=()=>[0,1,2].map(at=>c*(r===null?eu[at]:r)),ot=_t().map(at=>yt(at,{eps:.01})),zt=[NaN,NaN,NaN,NaN],Lt=kt(t,at=>{const dt=_t(),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 Gt=Ac(ot.map(xt=>xt.x));let qt=!1;return Gt.forEach((xt,xe)=>{xt!==zt[xe]&&(zt[xe]=xt,nt[xe](xt),qt=!0)}),qt&&W.setAttribute("d",H.map(xt=>ft(p(xt.u,xt.v,Gt[3]),p(xt.u,xt.v,Gt[0]+Pr))).join("")),Rt});o.add(Lt.unregister);function It(at){const dt=Ac(_t());for(let Gt=3;Gt>=0;Gt--){const qt=su[Gt],xt=qt.map(([un,Hr])=>p(un,Hr,dt[Gt]+kc[Gt])),xe=Gt===1?xt:Pt(xt.concat(qt.map(([un,Hr])=>p(un,Hr,dt[Gt]))));if(au(at,xe))return Gt}let gt=0,Rt=1/0;return dt.forEach((Gt,qt)=>{const xt=Math.abs(p(Ht/2,ut/2,Gt+kc[qt])[1]-at[1]);xt<Rt&&(Rt=xt,gt=qt)}),gt}function Xt(at){at>=0&&(i=at);const dt=at>=0?at:Mc;ct.forEach((gt,Rt)=>gt.classList.toggle("hi",Rt===dt)),s.textContent=at>=0?tu[at]:"rest",Lt.wake()}return Xt(-1),o.add(Et(t,{move:at=>{h=at,r=bt(nu,1,lt((at[0]-60)/280,0,1)),Xt(It(at))},leave:()=>{h=null,r=null,Xt(-1)}})),o.add(()=>e.replaceChildren()),{set:at=>{c=at,h&&Xt(It(h)),Lt.wake()},destroy:o.dispose}},Dt=7,Is=10,_s=8,Ze=_s*2+Is*(Dt-1),us=5,cu=2.5,iu=4,ke=7,o0=[[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]],lu=110,uu=1200,fu=400,du=[[0,0,1],[1,0,.45],[-1,0,.45],[0,1,.45],[0,-1,.45]],Ec=(t,e,s)=>o0[t][e]>>Dt-1-s&1,hu=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=0,i=-1,h=-1e9,v=!1,y=null;const p=At(45,.5,2.12),g=-15-iu;Ct(p,[[-ke,-ke,g],[Ze+ke,Ze+ke,g-6],[Ze+ke,-ke,g],[-ke,Ze+ke,g],[0,0,us]],200,160);const N=Mt(p),I=Bt(p),L=_("g",{},e),[H,W]=mt(-ke,-ke,Ze+ke,Ze+ke,11,1.8);Ri(e,L,N,I,H,g,12),Q(q(L),it(N,I,H,W,g,-15));const[P,j]=mt(0,0,Ze,Ze,7,1.3);_("path",{d:d0(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,I,P,j,0,us)),_("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(Dt*Dt),X=[];for(let k=0;k<Dt;k++)for(let b=0;b<Dt;b++){const T=en(L,p,cu,"dot");Qt(T,N(_s+b*Is,_s+k*Is,us)),X.push(T)}function z(k,b,T){const n=Math.round((k-_s)/Is),a=Math.round((b-_s)/Is);for(const[l,d,f]of du){const x=a+l,M=n+d;x<0||x>=Dt||M<0||M>=Dt||(F[x*Dt+M]=Math.max(F[x*Dt+M],T*f))}}const D=kt(t,(k,b)=>{if(Le()&&!v)for(let T=0;T<Dt*Dt;T++)F[T]=Math.max(F[T]*Math.exp(-k*1e3/c),Ec(3,Math.floor(T/Dt),T%Dt)*.8);else{const T=Math.exp(-k*1e3/c);for(let a=0;a<Dt*Dt;a++)F[a]*=T;const n=v?0:lt((b-h-uu)/fu,0,1);if(n>0){r+=k*1e3;const a=Math.floor(r/lu)%o0.length;if(a!==i){i=a;for(let l=0;l<Dt;l++)for(let d=0;d<Dt;d++)Ec(a,l,d)&&(F[l*Dt+d]=Math.max(F[l*Dt+d],n))}s.textContent=`loop · ${String(a+1).padStart(2,"0")}/${o0.length}`}else s.textContent=v?"paint":"afterglow"}for(let T=0;T<Dt*Dt;T++)X[T].setAttribute("opacity",(.14+.86*lt(F[T],0,1)).toFixed(3));return!0});return o.add(D.unregister),o.add(Et(t,{move:k=>{v=!0;const b=le(p,k[0],k[1],us);if(y){const T=Math.ceil(Math.hypot(b[0]-y[0],b[1]-y[1])/3);for(let n=1;n<=T;n++)z(bt(y[0],b[0],n/T),bt(y[1],b[1],n/T),1)}else z(b[0],b[1],1);y=b,D.wake()},leave:()=>{v=!1,y=null,h=performance.now(),r=0,i=-1,D.wake()}})),o.add(()=>e.replaceChildren()),{set:k=>{c=k},destroy:o.dispose}},Oi=7,c0=13,i0=10,Tc=5,Sc=6,Nc=11,pu=1,Xn=2*c0+(Oi-1)*i0,To=16,or=2,So=2,Tr=34,Cc=4,fs=7,vu=4,jc=2.2,No=4,mu=3.2,gu={k:40,c:11,eps:.02},xu=16.4,bu=t=>1/(1+.5*t*t),l0=5,yu=ge([[Xn-2,0],[Xn-2,Tr],[2,Tr],[2,0]],[.6,4,4,.6],l0),Mu=[l0,3*(l0+1)],wu=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=zr.plot[2],r=At(45,.5,mu);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=Bt(r),v=_("g",{},e),[y,p]=mt(0,0,Xn,To,6,1.6);Q(q(v),it(i,h,y,p,-3.6,0));const g=b=>yu.map(([T,n])=>i(T,b,n));Q(q(v),{sil:tt(Pt(g(or).concat(g(or+So)))),crease:jt(g(or+So).slice(...Mu))});const N=(b,T)=>i(b,or+So,T),I=Array.from({length:Cc},(b,T)=>Tr*(T+1)/(Cc+1));_("path",{class:"nf lo",d:I.map(b=>ft(N(fs,b),N(Xn-7,b))).join("")},v),_("path",{class:"nf",d:ft(N(fs,0),N(fs,Tr-4))+I.map(b=>ft(N(fs-vu,b),N(fs,b))).join("")},v);const L=Array.from({length:Oi},(b,T)=>{const n=c0+T*i0;return{ring:mt(n-Tc/2,Sc,n+Tc/2,Nc,1.2,.4),el:q(v)}}),H=L.map((b,T)=>yt(T===No?jc:0,gu)),W=L.map(()=>NaN);function P(){L.forEach((b,T)=>{const n=lt(H[T].x,0,c);n!==W[T]&&(W[T]=n,Q(b.el,it(i,h,b.ring[0],b.ring[1],0,pu+n)))})}const j=kt(t,b=>{let T=!1;for(const n of H)T=wt(n,b)||T;return P(),T});o.add(j.unregister);const F=L.map((b,T)=>i(c0+T*i0,(Sc+Nc)/2,0)[0]);let X=u,z=-2;function D(b){H.forEach((T,n)=>{const a=X*bu(Math.abs(n-b))-T.x;a>0&&(T.v=Math.max(T.v,xu*a))}),j.wake()}function k(b){b!==z&&(z=b,H.forEach((T,n)=>{T.t=b<0&&n===No?jc:0}),b>=0&&D(b),L.forEach((T,n)=>T.el.sil.classList.toggle("hi",n===(b<0?No:b))),s.textContent=b<0?"rest":`bar ${b+1} · 0`,j.wake())}return k(-1),P(),o.add(Et(t,{move:b=>k(F.reduce((T,n,a)=>Math.abs(b[0]-n)<Math.abs(b[0]-F[T])?a:T,0)),leave:()=>k(-1)})),o.add(()=>e.replaceChildren()),{set:b=>{X=b,z>=0&&D(z)},destroy:o.dispose}},Ae=21,De=30,Rc=7,ds=1.4,ku=2.6,ha=8,Au=13,pa=11,zs=6.5,Eu=4.5,Pc=2,_a=11,va=7,Tu=4.6,Su=3,ma=1.8,Za=[48,8],Nu=100,Cu=.7,Bc=2.8,ju=398,Ru=t=>t*t*(3-2*t);function Lc(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],y=r[1]-c[1],p=c[0]-u[0],g=c[1]-u[1],N=i*y-h*v;if(!N)continue;const I=(p*y-g*v)/N,L=(p*h-g*i)/N;if(I>0&&I<1&&L>0&&L<1){t.splice(e+1,s-e,[u[0]+I*i,u[1]+I*h]);break}}return t}function Ic(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 Pu(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],y=t[Math.min(i+1,u-1)];let p=y[0]-h[0],g=y[1]-h[1];const N=Math.hypot(p,g)||1;p/=N,g/=N,o.push([v[0]-g*e,v[1]+p*e]),c.push([v[0]+g*e,v[1]-p*e])}const r=i=>{const h=[];for(let v=7;v>=1;v--){const y=Math.PI*v/8;h.push([i[0]+e*Math.cos(y),i[1]+e*.5*Math.sin(y)])}return h};return jt([...Ic(Lc(c),s).reverse(),...r(t[0]),...Ic(Lc(o),s)])}function ga(t){const e=vt(bt(Nu,180,Ru(lt(t/Cu,0,1))));return{c:[bt(Za[0],_a,t),bt(Za[1],0,t),bt(zs,De,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,Bc),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],y=[];for(const R of[0,-3])for(const Y of[-Ae,Ae])for(const Z of[De-Ae,De+Ae])y.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[_a,-18-va])y.push(v(Y,Z,V,K))}Ct(c,y,200,166);const p=Mt(c),g=R=>p(R[0],R[1],R[2]),N=_("g",{},e),I=rt(-Ae,De-Ae,Ae,De+Ae,Rc,6),L=rt(-Ae+ds,De-Ae+ds,Ae-ds,De+Ae-ds,Rc-ds,6);Q(q(N),{sil:tt(Pt(I.map(R=>p(0,R.u,R.v)).concat(I.map(R=>p(-3,R.u,R.v))))),crease:jt(Kt(L,R=>R.nu*i[1]+R.nv*i[2]>0).map(R=>p(0,R.u,R.v)))}),_("path",{class:"nf lo",d:tt(ht(Au,48).map(R=>p(0,R.u,De+R.v)))},N),_("path",{class:"nf",d:[-ha,ha].map(R=>tt(ht(ku,16).map(Y=>p(0,R+Y.u,De+Y.v)))).join("")},N);const H=_("g",{},e),W=_("path",{class:"sil"},H),P=_("path",{class:"sil"},H),j=q(H),F=_("path",{class:"sil hi"},H),X=ht(Tu,16),z=ht(Su,16),D=(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,Eu-R),b=R=>ht(Pc-R,12),T=k(2),n=[...D(k,2,0,-1),...D(k,2,-18,1)],a=[[b(0),0],...D(b,Pc*.8,_a,-1)],l=(R,Y,Z=0)=>tt(Pt(Y.flatMap(([V,K])=>V.map(O=>g(v(R,Z+O.u,O.v,K)))))),d=[...le(c,440,150,ma),ma],f=[Za[0]+18,Za[1]-52,ma];let x=!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!==x&&(x=Y,H.append(...x?[W,P,j.g,F]:[F,j.g,W,P]));const V=x?0:-18;Q(j,{sil:l(R,n),crease:jt(Kt(T,nt=>nt.nu*Z+nt.nv*i[2]>0).map(nt=>g(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),O=v(R,0,0,-18-va-26),et=[];for(let nt=0;nt<=40;nt++){const ct=nt/40,_t=(1-ct)**3,ot=3*(1-ct)**2*ct,zt=3*(1-ct)*ct*ct,Lt=ct**3;et.push(p(_t*K[0]+ot*O[0]+zt*f[0]+Lt*d[0],_t*K[1]+ot*O[1]+zt*f[1]+Lt*d[1],_t*K[2]+ot*O[2]+zt*f[2]+Lt*d[2]))}W.setAttribute("d",Pu(et,ma*Bc,ju))}const m=kt(t,R=>{const Y=wt(S,R);return A(),Y});o.add(m.unregister);const C=g(ga(0).c),w=p(0,0,De),E=[w[0]-C[0],w[1]-C[1]],$=E[0]*E[0]+E[1]*E[1];let G=u,J=-1;function B(){S.t=J<0?0:Math.min(J,G);const R=ga(S.t),Y=v(R,0,0,_a);s.textContent=J<0?"rest":`gap ${Math.round(Math.hypot(Y[0],Y[1],Y[2]-De))} · 0 V`,m.wake()}return B(),A(),o.add(Et(t,{move:R=>{J=lt(((R[0]-C[0])*E[0]+(R[1]-C[1])*E[1])/$,0,1),B()},leave:()=>{J=-1,B()}})),o.add(()=>e.replaceChildren()),{set:R=>{G=R,B()},destroy:o.dispose}},cr=27,_c=6,Lu=1.6,Co=4.3,zc=16,Iu=66,Hc=200,Dc=-35,Oc=38,_u=29,jo=6,zu=.2,$c=4,Hu=-45,Du=36,Ou=150,xa=2.6,Fc=[-Math.SQRT1_2,-Math.SQRT1_2],$u=.4,Wc=(()=>{const t=[];for(let r=0;r<=30;r++){const i=vt(Hc+(Dc-Hc)*r/30);t.push([zc*Math.cos(i),Iu+zc*Math.sin(i)])}const e=t[t.length-1],s=vt(Dc),u=[Math.sin(s),-Math.cos(s)],o=[e[0]+u[0]*10,e[1]+u[1]*10],c=[0,Oc+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*Oc])}return t.push([0,_u]),t})(),Ro=[2,28];function Fu(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*Fc[0]+i*Fc[1]);return[t[e][0]+r*h,t[e][1]+i*h]}function Wu(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],y=o*i-c*r;if(!y)return null;const p=(h*i-v*r)/y,g=(h*c-v*o)/y;return p>0&&p<1&&g>0&&g<1?[t[0]+p*o,t[1]+p*c]:null}function Xc(t){for(let e=0;e<t.length-3;e++)for(let s=t.length-2;s>e+1;s--){const u=Wu(t[e],t[e+1],t[s],t[s+1]);if(u){t.splice(e+1,s-e,u);break}}return t}function Xu(t,e){const s=t.length,u=[],o=[],c=[];for(let h=0;h<s;h++){const v=t[Math.max(h-1,0)],y=t[h],p=t[Math.min(h+1,s-1)],g=Math.hypot(y[0]-v[0],y[1]-v[1])||1,N=Math.hypot(p[0]-y[0],p[1]-y[1])||1;let I=(y[0]-v[0])/g+(p[0]-y[0])/N,L=(y[1]-v[1])/g+(p[1]-y[1])/N;const H=Math.hypot(I,L)||1;I/=H,L/=H,c.push([I,L]),u.push([y[0]-L*e,y[1]+I*e]),o.push([y[0]+L*e,y[1]-I*e])}const r=(h,v)=>Array.from({length:9},(y,p)=>{const g=Math.PI*(p+1)/10,N=-Math.cos(g),I=-Math.sin(g);return[h[0]+e*(-v[1]*N+v[0]*I),h[1]+e*(v[0]*N+v[1]*I)]}),i=h=>Array.from({length:7},(v,y)=>{const p=Math.PI*(7-y)/8;return[h[0]+e*Math.cos(p),h[1]+e*.5*Math.sin(p)]});return tt([...Xc(u),...i(t[s-1]),...Xc(o).reverse(),...r(t[0],c[0])])}var Gu=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=zr.query[2];let r=u,i=!1;const h=f=>{const x=vt(Hu-f),M=Math.cos(x),S=Math.sin(x);return(A,m)=>[A*M,A*S,m]},v=(f,x)=>h(x)(lt(f*zu,-$c,$c),_c+jo),y=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 x of Wc){const M=h(f)(x[0],x[1]);p.push([M[0],M[1],M[2]+Co],[M[0],M[1],M[2]-Co])}Ct(y,p,200,166),y.ox+=200-Mt(y)(0,0,0)[0];const g=Mt(y),N=Bt(y),I=Co*xa,L=_("g",{},e);Q(q(L),it(g,N,ht(cr,72),ht(cr-Lu,72),0,_c));const H=q(L),W=ht(jo*xa,40),P=ht(jo*xa*.62,40).slice(23,31),j=_("path",{class:"sil"},L),F=_("path",{class:"nf lo"},L),X=()=>-Math.min(Du,.9*r),z=yt(X()),D=yt(X(),{k:36,c:7});let k=NaN,b=NaN;function T(){if(z.x!==k){k=z.x;const x=h(z.x),M=Wc.map(S=>g(...x(S[0],S[1])));j.setAttribute("d",Xu(M,I)),F.setAttribute("d",jt(M.slice(Ro[0],Ro[1]).map((S,A)=>Fu(M,Ro[0]+A,$u*I))))}const f=z.x-D.x;if(f!==b){b=f;const x=g(...v(f,D.x));Q(H,{sil:tt(W.map(M=>[x[0]+M.u,x[1]+M.v])),crease:jt(P.map(M=>[x[0]+M.u,x[1]+M.v]))})}}const n=kt(t,f=>{D.t=z.x;const x=wt(z,f),M=wt(D,f);return T(),x||M});o.add(n.unregister);const a=g(0,0,0)[0];let l=a;function d(){z.t=i?r*lt((l-a)/Ou,-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,Yu=7,Gc=21,Yc=15,Po=1.8,Zu=22,ba=[4,-7,2,13,-3,6,-9],Ku=3,Uu=1.9,Zc=ge([[0,9],[25,21],[25,25],[-25,25],[-25,21]],[4,2,2,2,2],5),Vu=ge([[0,14],[15,21.5],[-15,21.5]],[2,1.2,1.2],4),Ju=[[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]})],Qu=({stage:t,svg:e,read:s},u)=>{const o=Tt(),c=At(45,.5,Uu),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=Bt(c),v=_("g",{},e),y=(z,D,k,b,T,n,a)=>{const[l,d]=mt(z,D,k,b,T,.7);Q(q(v),it(i,h,l,d,n,a))};y(-Ee/2-1,-mn/2,Ee/2+1,mn/2,2.2,0,3),y(-Ee/2,-Ee/2,Ee/2,Ee/2,1.4,3,Ke+4);const p=Array.from({length:Yu},()=>q(v));y(0,-hs,an,hs,hs,Ke-hs,Ke+hs);const g=p.map(()=>_("path",{class:"nf"},v));y(an-Ee/2-1,-mn/2,an+Ee/2+1,mn/2,2.2,0,3),y(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})),I=ba.map(()=>NaN);function L(){N.forEach((z,D)=>{if(z.x===I[D])return;I[D]=z.x;const k=Math.cos(vt(z.x)),b=Math.sin(vt(z.x)),T=Gc+D*Yc,n=(a,l)=>i(T+l,a[0]*k+a[1]*b,Ke-(a[1]*k-a[0]*b));Q(p[D],{sil:tt(Pt(Zc.map(a=>n(a,0)).concat(Zc.map(a=>n(a,Po))))),crease:tt(Vu.map(a=>n(a,Po)))}),g[D].setAttribute("d",jt(Ju.map(a=>n(a,Po/2))))})}const H=kt(t,z=>{let D=!1;for(const k of N)D=wt(k,z)||D;return L(),D});o.add(H.unregister);const W=ba.map((z,D)=>i(Gc+D*Yc,0,Ke-17)[0]);let P=u,j=-2,F=1;function X(z){j=z,N.forEach((D,k)=>{const b=z<0?0:lt(1-Math.abs(k-z)/(P+.5),0,1);D.t=ba[k]-Zu*b*b*(k===z?F:Math.sign(k-z))}),p.forEach((D,k)=>D.sil.classList.toggle("hi",k===(z<0?Ku:z))),s.textContent=z<0?"rest":`hanger ${z+1} · 0`,H.wake()}return X(-1),L(),o.add(Et(t,{move:z=>{const D=W.reduce((k,b,T)=>Math.abs(z[0]-b)<Math.abs(z[0]-W[k])?T:k,0);F=z[0]<W[D]?1:-1,X(D)},leave:()=>X(-1)})),o.add(()=>e.replaceChildren()),{set:z=>{P=z,X(j<0?-1:j)},destroy:o.dispose}},qu=3,Kc=5,Uc=12,tf=18,ef=.7,nf=24,Vc=125,rf=90,Jc=700,sf=1350,af=420,of=70,Bo=.45,cf=400,v0=[{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=v0[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)},Qc=(t,e)=>{for(let s=e;s>=0;s=v0[s].p)if(s===t)return!0;return!1},lf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u,r=-1,i=null;const h=v0.map(n=>({...n})),v=n=>n.l?Uc:tf,y=n=>n.l?qu:Kc,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=Ft(0),n.drawn=NaN,n.want=!n.i,n.at=void 0});const g=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+Kc]);Ct(g,N,200,166);const I=Mt(g),L=Bt(g),H=_("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),x=E=>E/Math.max(Math.abs(l),Math.abs(d))*f+2.5,M=x(a.h)/f,S=1-x(n.h)/f,A=I(a.x+l*M,a.y+d*M,0),m=I(a.x+l*S,a.y+d*S,0),C=Math.max(2,Math.round(Math.hypot(m[0]-A[0],m[1]-A[1])/9)),w={n,pt:Ft(0,af),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],m[0],(E+.1)/C),bt(A[1],m[1],(E+.1)/C)],[bt(A[0],m[0],(E+.6)/C),bt(A[1],m[1],(E+.6)/C)]),full:ft([bt(A[0],m[0],E/C),bt(A[1],m[1],E/C)],[bt(A[0],m[0],(E+1)/C),bt(A[1],m[1],(E+1)/C)]),lit:0})}for(const n of W)for(const a of n.dashes)a.el=_("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,_("path",{d:tt(pt(I,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=Be(g,a,n.l?1.1:1.3),n.el=q(H),n.l||(n.rec=Be(g,a,2.8),n.recEl=_("path",{class:"nf lo"},n.el.g))}const j=(n,a)=>{Q(n.el,We(I,L,n.ring,n.inner,a,a+y(n))),n.rec&&n.recEl.setAttribute("d",tt(pt(I,n.rec,a+y(n))))},F=kt(t,(n,a)=>{let l=!1;for(const d of h){const f=Wt(d.tw,a);Jt(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=Jt(d.pt,a);l=!0;const x=Wt(d.pt,a);let M=0,S=1;for(let m=0;m<14;m++){const C=(M+S)/2;h0(C)<x?M=C:S=C}const A=f?9:bt(M,x,.3)*(1+Bo);for(const m of d.dashes){const C=A-m.u,w=C<0||C>=Bo?0:C<Bo*.4?2:1;w!==m.lit&&(m.lit=w,m.el.classList.toggle("sil",w>0),m.el.setAttribute("d",w===2?m.full:m.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&&Qc(n,a.i)?c*ef**ps(n,a.i):0,z=(n,a)=>{const l=a.map((d,f)=>{const x=a[(f+1)%a.length];return(x[0]-d[0])*(n[1]-d[1])-(x[1]-d[1])*(n[0]-d[0])});return l.every(d=>d>=0)||l.every(d=>d<=0)};function D(n){for(let d=P.length-1;d>=0;d--){const f=P[d],x=X(r,f);if(z(n,Pt(pt(I,f.ring,0).concat(pt(I,f.ring,x+y(f))))))return f.i}const[a,l]=le(g,n[0],n[1],0);return h.some(d=>Math.hypot(a-d.x,l-d.y)<d.h+nf-Uc)?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}`,b=(n,a,l,d)=>{if(n.tw.to===a)return;const f=a>n.tw.to;oe(n.tw,a,l,d),n.tw.dur=f?Jc:sf};function T(n){if(n===r)return;const a=performance.now(),l=r,d=h.map(x=>X(n,x));r=n;let f=0;h.forEach((x,M)=>{d[M]<x.tw.to&&l>=0&&(f=Math.max(f,ps(l,x.i)))}),h.forEach((x,M)=>b(x,d[M],a,d[M]<x.tw.to?(f-ps(l,x.i))*rf:n>=0?ps(n,x.i)*Vc:0));for(const x of W){x.pt.from=x.pt.to=0,x.pt.t0=-1e9,x.on=!1;for(const M of x.dashes)M.lit=0,M.el.classList.remove("sil"),M.el.setAttribute("d",M.d);n>=0&&Qc(n,x.n.i)&&x.n.i!==n&&(x.on=!0,oe(x.pt,1,a,ps(n,x.n.p)*Vc+20))}for(const x of h){const M=x.i===(n<0?0:n);M!==x.want&&(x.want=M,x.at=M?a+of: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=D(n);if(a<0&&r>=0&&!Le()){i===null&&(i=performance.now()+cf,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)&&(oe(l.tw,X(r,l),a,0),l.tw.dur=Jc);F.wake()},destroy:o.dispose}},Lo=3,Io=7,_o=9,ir=9,de=17,uf=[{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]}],ff=31;function df(){const t=[];return uf.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*ff),par:o+1,dep:3,tag:"leaf "+(s+1)+"·"+(r+1)}))}),t}var hf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r=df(),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[x,M]of[[-1,-1],[1,-1],[-1,1],[1,1]])v.push([f.c[0]+x*ir,f.c[1]+M*ir,Lo+_o]);Ct(h,v,200,166);const y=Mt(h),p=Bt(h),g=_("g",{},e);for(const f of r){const x=f.par<0?[0,0]:r[f.par].c,M=f.c[0]-x[0],S=f.c[1]-x[1],A=Math.hypot(M,S),m=f.par<0?de:0,C=0;f.a=y(x[0]+M/A*m,x[1]+S/A*m,0),f.b=y(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)/$)]);_("path",{d:w,class:"nf"},g)}for(const f of r)f.link=_("path",{class:"nf sil"},g),f.l=Ft(0),f.z=Ft(0),f.h=Ft(0),f.ld=NaN,f.zd=NaN,f.hd=!1;const N=q(g),I=rt(-de,-de,de,de,7,8);Q(N,We(y,p,I,Be(h,I,1.3),0,Io));const L=_("path",{d:tt(pt(y,Be(h,I,2.8),Io)),class:"nf hi"},g),H=Ft(1);let W=!0;_("path",{d:tt(pt(y,Be(h,I,3.8),Io)),class:"nf lo"},g);for(const f of r.slice().sort((x,M)=>x.c[0]+x.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=Be(h,f.ring,1),f.el=q(g);const P=kt(t,(f,x)=>{let M=!1;for(const A of r){const m=Wt(A.l,x),C=Wt(A.z,x);if(m!==A.ld&&(A.ld=m,A.link.setAttribute("d",m>.002?ft(A.a,[bt(A.a[0],A.b[0],m),bt(A.a[1],A.b[1],m)]):"")),C!==A.zd&&(A.zd=C,Q(A.el,We(y,p,A.ring,A.inner,C*_o,C*_o+Lo))),A.tag){const w=Wt(A.h,x)>.5;w!==A.hd&&(A.hd=w,A.el.sil.classList.toggle("hi",w))}(!Jt(A.l,x)||!Jt(A.z,x)||!Jt(A.h,x))&&(M=!0)}const S=Wt(H,x)>.5;return S!==W&&(W=S,L.classList.toggle("hi",S)),Jt(H,x)||(M=!0),M});o.add(P.unregister);const j=i.map(f=>y(f.c[0],f.c[1],Lo)),F=78,X=18,z=(f,[x,M])=>Math.hypot(j[f][0]-x,j[f][1]-M);function D(f){let x=-1,M=F;return j.forEach((S,A)=>{const m=z(A,f);m<M&&(M=m,x=A)}),l>=0&&x!==l&&z(l,f)<F&&z(l,f)-M<X?l:x}const k=700,b=1500,T=(f,x,M,S,A)=>{f.to!==x&&(oe(f,x,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 x=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)),m=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,x,C+(w.dep-1)*c,k),T(w.z,1,x,C+w.dep*c,k)):(T(w.z,0,x,(m-w.dep)*S,b),T(w.l,0,x,(m-w.dep)*S+S*.5,b)),w.tag&&(E?T(w.h,1,x,C+w.dep*c,40):T(w.h,0,x,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,x,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(D(f)),leave:()=>d(-1)})),o.add(()=>e.replaceChildren()),{set:f=>{c=f},destroy:o.dispose}},tn=8,Gn=84,Vt=54,m0=13,u0=22,$s=7,pf=[6,31,56],qc=1.4,ya=-12,vf=-24,mf=20,$i=16,Lr=-5,Ir=Gn+5,Sr=-9,Fs=(tn-1)*m0+9,Ma=20,ti=6,vs=2.4;function gf(){const t=At(45,.5,1.62);return Ct(t,[[Lr,Sr,0],[Ir,Fs,-8],[Ir,Sr,0],[Lr,Fs,0],[Lr,Sr,Vt+$s],[Ir,Sr,Vt+$s+$i]],200,166),t}var xf=()=>({outer:rt(Lr,Sr,Ir,Fs,ti,6),inner:rt(Lr+vs,Sr+vs,Ir-vs,Fs-vs,ti-vs,6)}),zo=t=>t[0][0]<=t[t.length-1][0]?t:t.slice().reverse();function bf(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,Kt(u,p=>!e(p)),2.5)),"nf lo"]],c=zo(pt(t,Kt(u,e),Ma)),r=zo(pt(t,Kt(s,e),Ma)),i=zo(pt(t,Kt(s,e),0)),h=(Lr+Ir)/2,v=p=>p.map(g=>t(g.u,Fs,g.v)),y=[[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:y}}function yf(t){const e=tn-t,s=pf[(tn-1-t)%3],u=ge([[0,0],[Gn,0],[Gn,Vt],[s+u0,Vt],[s+u0,Vt+$s],[s,Vt+$s],[s,Vt],[0,Vt]],[1,1,3.2,1.8,2.4,2.4,1.8,3.2]);return{n:e,t0:s,shape:u}}function Mf(t,e,s,u,o,c){const r=e*m0,i=Math.sin(vt(o)),h=Math.cos(vt(o)),v=(g,N)=>t(g,r+N*i,N*h+c),y=(g,N)=>t(g,r+N*i-qc*h,N*h+qc*i+c),p=[];for(let g=0;g<8;g++)p.push(v(s+u0/2+(g%4-1.5)*3.6,Vt+$s/2+(.5-Math.floor(g/4))*2.8));return{back:tt(u.map(g=>y(g[0],g[1]))),face:tt(u.map(g=>v(g[0],g[1]))),head:ft(v(6,Vt-11),v(Gn-6,Vt-11)),rules:[Vt-18,Vt-25,Vt-32,Vt-39].map(g=>ft(v(6,g),v(Gn-6,g))).join(""),punch:p}}function wf(){const t=gf();return{C:t,P:Mt(t),front:Bt(t),...xf()}}var kf=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const{P:r,front:i,outer:h,inner:v}=wf(),y=bf(r,i,h,v),p=_("g",{},e);Ri(e,p,r,i,h,0,14);for(const[a,l]of y.far)_("path",{d:a,class:l},p);const g=[];for(let a=0;a<tn;a++){const{n:l,t0:d,shape:f}=yf(a),x=_("g",{},p),M=_("path",{class:"lo"},x),S=_("path",{class:"sil"},x),A=_("path",{class:"nf"},x),m=_("path",{class:"nf lo"},x),C=[];for(let w=0;w<8;w++)C.push(_("circle",{r:1.05,class:"dot "+(w===l-1?"m":"off")},x));g.push({n:l,t0:d,shape:f,back:M,face:S,head:A,rules:m,punch:C,a:Ft(ya),z:Ft(0)})}for(const[a,l]of y.near)_("path",{d:a,class:l},p);const N=a=>r(Gn/2,a*m0+Vt*Math.sin(vt(ya)),Vt*Math.cos(vt(ya))),I=N(0),L=N(1),H=[L[0]-I[0],L[1]-I[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-I[0],f=l-I[1],x=(d*j[1]-f*j[0])/X,M=(H[0]*f-H[1]*d)/X;return Math.abs(M)>F||x<-.5||x>tn+1?-1:lt(Math.round(x),0,tn-1)}function D(a,l,d){const f=g[a],x=Mf(r,a,f.t0,f.shape,l,d);f.back.setAttribute("d",x.back),f.face.setAttribute("d",x.face),f.head.setAttribute("d",x.head),f.rules.setAttribute("d",x.rules),f.punch.forEach((M,S)=>Qt(M,x.punch[S]))}const k=kt(t,(a,l)=>{let d=!1;return g.forEach((f,x)=>{D(x,Wt(f.a,l),Wt(f.z,l)),(!Jt(f.a,l)||!Jt(f.z,l))&&(d=!0)}),d});o.add(k.unregister);let b=-1;const T=a=>a<0?"rest":String(tn-a).padStart(2,"0");function n(a){if(a===b)return;const l=performance.now(),d=a>=0?a:b;b=a,g.forEach((f,x)=>{const M=Math.abs(x-d)*c,S=a<0?ya:x<a?vf:x>a?mf:0;oe(f.a,S,l,M),oe(f.z,a===x?$i:0,l,M),f.face.classList.toggle("hi",x===a),f.head.classList.toggle("hi",x===a),f.punch[f.n-1].classList.toggle("m",x!==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(b<0?tn-1:Math.min(tn-1,b+1)),a.preventDefault()):a.key==="ArrowRight"||a.key==="ArrowUp"?(n(b<0?tn-1:Math.max(0,b-1)),a.preventDefault()):a.key==="Escape"&&b>=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,f0=[18,48,78,108],Fi=11,Wi=5,ei=4.6,gs=56,ni=3.3,za=2.1,ri=.21,Af=za+1,wa=44,si=[-9,3,-4,32],ai=3,Ka=[Math.SQRT1_2,-Math.SQRT1_2],Ef=(t,e)=>lt(1-t/e,.1,1),xs=(t,e,s)=>{const u=Math.sin(vt(e)),o=Math.cos(vt(e));return[f0[t]+Ka[0]*u*s,Fi+Ka[1]*u*s,kn+Wi-1+o*s]},Tf=({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]];f0.forEach((l,d)=>{for(const f of[-wa,0,wa])v.push(xs(d,f,gs+za))}),Ct(h,v,200,166);const y=Mt(h),p=Bt(h),g=l=>y(l[0],l[1],l[2]),N=y(0,0,0),I=y(Ka[0],Ka[1],0),L=y(0,0,1),H=Math.hypot(I[0]-N[0],I[1]-N[1]),W=N[1]-L[1],P=_("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(y,j,0).concat(pt(y,F,kn)))),crease:jt(pt(y,Kt(X,p),kn))});for(let l=0;l<6;l++){const d=kn*.56,f=lr-He*(d/kn)+.1;Qt(_("circle",{r:1.05,class:l===0?"dot m":"dot off"},P),y(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"),y(26+l%2*3+d*6,29+l*5.5,kn));const z=f0.map((l,d)=>{const f=q(P),x=M=>M.map(S=>({...S,u:S.u+l,v:S.v+Fi}));return Q(f,it(y,p,x(ht(ei,16)),x(ht(ei-1.1,16)),kn,kn+Wi)),{i:d,el:q(P),sp:yt(si[d],{eps:.05}),drawn:NaN,piv:g(xs(d,0,0))}}),D=Math.abs(z[1].piv[0]-z[0].piv[0])/H,k=(l,d)=>Array.from({length:20},(f,x)=>[l[0]+d*H*Math.cos(x*Math.PI/10),l[1]+d*H*Math.sin(x*Math.PI/10)]);function b(l){const d=l.sp.x;if(d===l.drawn)return;l.drawn=d;const f=g(xs(l.i,d,0)),x=g(xs(l.i,d,gs)),M=g(xs(l.i,d,gs*ri)),S=Math.hypot(x[0]-f[0],x[1]-f[1]),A=[-(x[1]-f[1])/S,(x[0]-f[0])/S],m=bt(ni,za,ri)*H-1.1;Q(l.el,{sil:tt(Pt(k(f,ni).concat(k(x,za)))),crease:ft([M[0]+A[0]*m,M[1]+A[1]*m],[M[0]-A[0]*m,M[1]-A[1]*m])})}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),b(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)),x=z[d.findIndex(M=>Math.abs(M)===f)];z.forEach((M,S)=>{const A=Math.sign(d[S])*Math.max(Math.abs(d[S])-Af,0),m=Math.max((M.piv[1]-l[1])/W,Math.sqrt(Math.max(gs*gs-A*A,0)),0),C=Math.atan2(A,m)*180/Math.PI;M.sp.t=lt(C,-wa,wa)*Ef((Math.abs(d[S])-f)/D,c)}),T(x),s.textContent=`antenna ${x.i+1} · ${Math.round(Math.abs(x.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}},Sf=3.2,ka=9,bs=17,Do=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 Nf(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 Cf=({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,Do],[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),y=Bt(i),p=_("g",{},e);let g="";for(let n=-oi;n<=oi;n++){const a=Math.sqrt(ur*ur-(n*ys)**2);g+=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]),x=[(d[0]-l[0])/f,(d[1]-l[1])/f],M=n[2]<0?bs:ka,S=[l[0]+x[0]*(M+2),l[1]+x[1]*(M+2)],A=[d[0]-x[0]*(ka+2),d[1]-x[1]*(ka+2)];return{i:a,from:S,to:A,tw:Ft(0),p:I(a),el:_("path",{class:"nf"},p),drawn:NaN}});function I(n){return fr[n][2]}const L=_("g",{},p),H=rt(-bs,-bs,bs,bs,7,8),W=q(L);Q(W,We(v,y,H,Be(i,H,1.3),0,Do)),W.sil.classList.add("hi"),_("path",{d:tt(pt(v,Be(i,H,2.8),Do)),class:"nf lo"},L);const P=fr.map((n,a)=>({i:a,t:n,el:q(_("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,x,M,S]=n.t,A=lt(a,0,1),m=6.5*A*(1-A)*4/4,C=bt(f,l,a),w=bt(x,d,a),E=bt(M,0,a),$=Math.max(0,bt(S,0,A)+m);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=Nf(a.x,a.y,ka,3.6,a.a);Q(n.el,We(v,y,d,Be(i,d,1),a.z,a.z+Sf))}let X="";function z(){const n=P.slice().sort((x,M)=>x.k-M.k),a=n.findIndex(x=>x.k>0),l=n.slice(),d=a<0?l.map(x=>x.el.g).concat(L):l.slice(0,a).map(x=>x.el.g).concat(L,l.slice(a).map(x=>x.el.g)),f=d.map(x=>x===L?"h":P.findIndex(M=>M.el.g===x)).join();if(f!==X){X=f;for(const x of d)p.appendChild(x)}}function D(n,a){const l=n.p<0?null:P[n.p],d=P[n.i],f=l?l.sp.x:1,x=d.sp.x,M=Math.min(f,x)>.96&&d.want>=1&&(!l||l.want>=1)?1:0;n.tw.to!==M&&(oe(n.tw,M,a,0),n.tw.dur=M?700:900);const S=Wt(n.tw,a);if(S===n.drawn)return;n.drawn=S;const A=v(n.from[0],n.from[1],0),m=v(n.to[0],n.to[1],0),C=Math.max(2,Math.round(Math.hypot(m[0]-A[0],m[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],m[0],$),bt(A[1],m[1],$)],[bt(A[0],m[0],G),bt(A[1],m[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)D(d,a),Jt(d.tw,a)||(l=!0);return z(),l});o.add(k.unregister);function b(){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=Le()?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)),b()},leave:()=>{r=0,b()}})),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,jf=1.6,Rf=[-22,-11,0,11,22],Pf=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},Lf=({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,y=[];for(const[m,C]of[[-he,0],[he,0],[0,-he],[0,he]])y.push([m,C,v-h],[m,C,h]);Ct(i,y,200,166);const p=Mt(i),g=p(0,0,0)[1],N=m=>p(0,0,m)[1]-g,I=ht(he,72),L=ht(he-Aa,72),H=_("g",{},e),W=(m,C)=>Pt(I.map(w=>p(w.u,w.v,m)).concat(I.map(w=>p(w.u,w.v,C))));Q(q(H),{sil:tt(W(0,dr)),crease:tt(L.map(m=>p(m.u,m.v,dr)))});const P=Array.from({length:Ms},()=>({s:q(H),mesh:_("path",{class:"nf lo"},H)})),j=(m,C,w)=>{const E=[[]];for(const[$,G]of m){const J=p($,G,C),B=le(i,J[0],J[1],w);Math.hypot($,G)<he-Aa&&Math.hypot(B[0],B[1])<he-Aa?E[E.length-1].push(J):E[E.length-1].length&&E.push([])}return E.filter($=>$.length>1)},F=(m,C)=>Array.from({length:29},(w,E)=>[m[0]+(C[0]-m[0])*E/28,m[1]+(C[1]-m[1])*E/28]),X=Rf.flatMap(m=>[F([m,-he],[m,he]),F([-he,m],[he,m])]);X.push(Array.from({length:73},(m,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),D=L.map(m=>p(m.u,m.v,gn)),k=X.flatMap(m=>j(m,jf,gn)),b=(m,C)=>m.map(w=>[w[0],w[1]+C]),T=Array.from({length:Ms},()=>Ft(Ha)),n=T.map(()=>NaN);let a=-2,l=u;function d(m){let C=dr;T.forEach((w,E)=>{if(C+=Wt(w,m),C!==n[E]){n[E]=C;const $=N(C);Q(P[E].s,{sil:tt(b(z,$)),crease:tt(b(D,$))}),P[E].mesh.setAttribute("d",k.map(G=>jt(b(G,$))).join(""))}C+=gn})}const f=kt(t,(m,C)=>(d(C),T.some(w=>!Jt(w,C))));o.add(f.unregister);function x(m,C){if(m===a)return;a=m;const w=m<0?1:m;T.forEach((E,$)=>oe(E,ci(m,$,l),C,Math.abs($-w)*Pf)),P.forEach((E,$)=>E.s.sil.classList.toggle("hi",$===w)),s.textContent=m<0?"rest":`sieve ${Ms-m} · 0`,f.wake()}x(-1,-1e9),d(0);const M=()=>{let m=dr;return T.map((C,w)=>{m+=ci(-1,w,l);const E=p(0,0,m+gn/2)[1];return m+=gn,E})};let S=M();const A=m=>S.reduce((C,w,E)=>Math.abs(m[1]-w)<Math.abs(m[1]-S[C])?E:C,0);return o.add(Et(t,{move:m=>x(A(m),performance.now()),leave:()=>x(-1,performance.now())})),o.add(()=>e.replaceChildren()),{set:m=>{l=m,S=M();const C=a;a=-2,x(C,performance.now())},destroy:o.dispose}},ln=210,pe=26,ws=5,If=15,Ar=6,ii=1/9,Dn=ln*.62,hr=38,_f=t=>{const e=lt(Math.min(t,1-t)/.08,0,1);return e*e*(3-2*e)},Yi=ln/Ar/2,zf=Yi/2,Hf=t=>{const e=t-Dn,s=e<0?Yi:zf;return Math.abs(e)>=s?0:Math.cos(Math.PI/2*(Math.abs(e)/s))**2},Df=({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],[Dn,-8,hr]],200,168);const y=Mt(v),p=Bt(v),g=_("g",{},e),[N,I]=mt(0,0,ln,pe,5,1.3);Q(q(g),it(y,p,N,I,0,ws));const L=_("path",{class:"nf lo"},g),H=_("g",{},g),W=[];for(let k=0;k<Ar;k++){const b={...q(H),dots:[]};for(let T=0;T<9;T++)b.dots.push(en(b.g,v,1,"dot off"));W.push(b)}const P=[[-8,-3,0,hr-4,Dn-5.5],[pe+3,pe+8,0,hr-4,Dn+pe+5.5],[-8,pe+8,hr-4,hr,Dn+pe+8.5]].map(([k,b,T,n,a])=>{const l=q(H),[d,f]=mt(Dn-1.6,k,Dn+1.6,b,1.4,.6);return Q(l,it(y,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 D=kt(t,k=>{let b=wt(h,k);const T=Le()?0:1;r||(h.t=T),i+=k*h.x;const n=[];for(let m=0;m<Ar;m++){const C=m/Ar+i*ii,w=C-Math.floor(C),E=Math.floor(C);n.push({j:m,x:w*ln,s:_f(w),serial:141+E*Ar+m})}let a=-1;if(r){let m=34;for(const C of n)C.s>.6&&Math.abs(C.x-r[0])<m&&(m=Math.abs(C.x-r[0]),a=C.j)}F=a,j.forEach((m,C)=>{m.t=C===F?11:0,wt(m,k)&&(b=!0)}),n.sort((m,C)=>m.x-C.x);let l=0,d=0;const f=P.map((m,C)=>({id:"g"+C,key:m.key,g:m.el.g}));n.forEach((m,C)=>{const w=W[C],E=If*m.s,$=m.x-E/2,G=m.x+E/2,J=pe/2-E/2,B=pe/2+E/2,R=ws+j[m.j].x,Y=R+E;if(f.push({id:C,key:m.x+pe/2,g:w.g}),E<.3){w.g.setAttribute("visibility","hidden");return}w.g.removeAttribute("visibility");const[Z,V]=mt($,J,G,B,2.6*m.s,.9*m.s);Q(w,it(y,p,Z,V,R,Y));const K=m.j===F;w.sil.classList.toggle("hi",K);const O=E*.2,et=$t(.55*m.s*v.S);w.dots.forEach((nt,ct)=>{Qt(nt,y(m.x+(ct%3-1)*O,pe/2+(Math.floor(ct/3)-1)*O,Y)),nt.setAttribute("rx",String(et)),nt.setAttribute("ry",String($t(et*v.k))),nt.setAttribute("class",m.serial>>ct&1?K?"dot":"dot m":"dot off")}),K&&(d=m.serial),l=Math.max(l,Hf(m.x)*m.s)}),f.sort((m,C)=>m.key-C.key);const x=f.map(m=>m.id).join();x!==X&&(X=x,f.forEach(m=>H.appendChild(m.g)));const M=Math.round(l*100);if(M!==z){z=M;const m=M?`color-mix(in srgb, var(--hl-hi) ${M}%, var(--hl-edge))`:"";P.forEach(C=>{C.el.sil.style.stroke=m})}const S=(i*ii*ln%21+21)%21,A=[];for(let m=S;m<ln;m+=21)m>5&&m<ln-5&&A.push(ft(y(m,4,ws),y(m,pe-4,ws)));return L.setAttribute("d",A.join("")),s.textContent=`rate ${h.x.toFixed(2)}×`+(F>=0?` · #${String(d).padStart(4,"0")}`:""),Le()&&!r&&h.x===0?b:!0});return o.add(D.unregister),o.add(Et(t,{move:k=>{r=le(v,k[0],k[1],ws),h.t=c,D.wake()},leave:()=>{r=null,D.wake()}})),o.add(()=>e.replaceChildren()),{set:k=>{c=k,r&&(h.t=k),D.wake()},destroy:o.dispose}},on=5,Oo=4,$o=9,Fo=7,pr=56,Of=55,Te=[-8,-8,64,64],li=4,$f=700,Ff=1250,Wf=45,ui=.42,Xf=230,fi=5,Ea=[[-1.5,1],[1.5,-1.2],[-.5,-1.8],[2,1.2],[0,0]],Gf=({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+Oo;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),y=Bt(i),p=_("g",{},e),[g,N]=Ba(Te[0],Te[1],Te[2],Te[3],7,2);Q(q(p),We(v,y,g,N,0,li));const[I]=mt(4,4,52,52,4,1);_("path",{d:tt(pt(v,I,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]=Ba(l,d,l+pr,d+pr,5,1.1),x=q(p),[M]=Ba(l+4,d+4,l+pr-4,d+pr-4,2.5,.6);L.push({j:a,ring:f,el:x,rim:M,tw:Ft(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,y,a.ring,a.rim,d,d+Oo))}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 x=f.sp.x!==0||f.sp.v!==0?(wt(f.sp,a),f.sp.x):0,M=Wt(f.tw,l)+x;(!Jt(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+Oo)[1]),j=pt(v,g,0).map(a=>a[0]),F=Math.max(...pt(v,g,0).map(a=>a[1])),X=Math.min(...j)+4,z=Math.max(...j)-4,D=P[on-1]-150;function k([a,l]){if(a<X||a>z||l>F||l<D)return-1;if(b>=0){const f=b<on-1?(P[b]+P[b+1])/2:-1e9,x=b>0?(P[b-1]+P[b])/2:1e9;if(l>=f-fi&&l<=x+fi)return b}let d=0;for(;d<on-1&&l<(P[d]+P[d+1])/2;)d++;return d}let b=-1;function T(a,l){const d=performance.now(),f=a<0?on-1:a;L.forEach(x=>{const M=a<0?0:r(x.j,a),S=Wt(x.tw,d);if(M!==x.tw.to){const A=M<S;oe(x.tw,M,d,A?a<0?x.j*Wf:Math.abs(x.j-l)*30:Math.abs(x.j-l)*Of),x.tw.dur=A?Ff:$f,A||(x.kick=x.tw.t0+Xf,x.sp.v0=Math.max(6,M-S)*.5,x.sp.v0/=ui)}x.el.sil.classList.toggle("hi",x.j===f)}),W.wake()}T(-1,on-1),s.textContent="rest";function n(a){if(a===b)return;const l=a<0?b:a;b=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(b,b<0?on-1:b)},destroy:o.dispose}},Da=24,Nr=7,Oa=11,Ue=2.1,di=1.8,Wo=3.9,hi=5.5,Ve=3.4,xn=150,Yf=17,Zi=17,vr=11,Se=2.5,Zf=37,On=Zi,qe=Zi+Nr*Oa,bn=qe+Yf,pi=4,Kf=["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=Da-Nr-2.6,Uf=18,Vf=2,Jf=(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,On,qe)})),Qf=({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,y=null,p=[];const g=_("g",{},e),[N,I]=mt(0,0,xn,bn,9,2);Q(q(g),it(h,mr,N,I,-3,0));const L=Kf.map((M,S)=>{const[A,...m]=M.split(" ").map(Number),C=[];let w=A;for(const E of m){const $=vr+w*Wo;C.push({x0:$,x1:$+E*Wo-1.4,el:q(g)}),w+=E+1}return{j:S,segs:C,sp:yt(0,{eps:.01}),drawn:""}}),[H,W]=mt(Se,Se,xn-Se,On,6,1.4);Q(q(g),it(h,mr,H,W,0,Ve));const P=(Se+On)/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=_("path",{d:tt(j.map(([M,S])=>h(vr+M,P+S,Ve))),class:"nf"},g),[X,z]=mt(vr+13,P-5.2,vr+13+Wo*1.5,P+5.2,1.2,.8),D=q(g);Q(D,it(h,mr,X,z,Ve,Ve+2.8));const[k,b]=mt(Se,qe,xn-Se,bn-Se,6,1.4);Q(q(g),it(h,mr,k,b,0,Ve));for(let M=0;M<3;M++){const S=vr+M*8.5,A=(qe+bn-Se)/2,[m,C]=mt(S-2.8,A-2.8,S+2.8,A+2.8,2.8,.8);Q(q(g),it(h,mr,m,C,Ve,Ve+1.3))}function T(M,S){const A=S+"|"+M.sp.x;if(A===M.drawn)return;M.drawn=A;const m=qe-(M.j-S+.5)*Oa,C=Math.max(m-Ue,On),w=Math.min(m+Ue,qe),E=mi(lt((qe-m-Ue)/pi,0,1))*mi(lt((m-Ue-On)/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,m-Ue,G.x1,m+Ue,Ue,4)),B=gi(rt(G.x0+.7,m-Ue+.7,G.x1-.7,m+Ue-.7,Ue-.7,4));Q(G.el,it(h,mr,J,B,$,$+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 m=h(0,0,A),C=h(1,0,A),w=h(0,1,A),E=C[0]-m[0],$=C[1]-m[1],G=w[0]-m[0],J=w[1]-m[1],B=E*J-$*G;return[((M-m[0])*J-(S-m[1])*G)/B,(E*(S-m[1])-$*(M-m[0]))/B]}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]<On)return"prompt";if(A(S)&&S[1]>qe&&S[1]<bn-Se)return 0;const m=d(M,0);return m[0]<0||m[0]>xn||m[1]<0||m[1]>bn?null:m[1]<=On?"prompt":lt((qe-Oa/2-m[1])/((Nr-1)*Oa),0,1)}function x(){let M,S,A=v;y===null?(M=vi,S=Uf,A=Vf,s.textContent="rest"):y==="prompt"?(M=Da-Nr,S=-1,s.textContent="prompt"):(M=y*(Da-Nr),S=lt(Math.round(y*(Da-1)),Math.ceil(M),Math.floor(M+Nr-1)),s.textContent="line "+(Zf+S)),a.t=M;for(const m of L)m.sp.t=S<0?0:hi*Jf(Math.abs(m.j-S),A);n(S<0?[D.sil,F]:L[S].segs.map(m=>m.el.sil)),l.wake()}x();for(const M of L)M.sp.x=M.sp.t;return o.add(Et(t,{move:M=>{y=f(M),x()},leave:()=>{y=null,x()}})),o.add(()=>e.replaceChildren()),{set:M=>{v=M,y!==null&&x()},destroy:o.dispose}},An=9,me=14,Ta=11,Xo=58,gr=An*me,qf=t=>t<=0?1:t<=.417?1-t/.417*.6875:t<=1?.3125-(t-.417)/.583*.2185:.094,td=({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=Bt(c);let h=u*me,v=null;const y=_("g",{},e),p=[],[g,N]=mt(-6,-6,gr+6,gr+6,9,2.2);Q(q(y),it(r,i,g,N,-5,0));for(let k=0;k<=2*(An-1);k++)for(let b=0;b<An;b++){const T=k-b;if(T<0||T>=An)continue;const n=b/(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=b*me+(me-Ta)/2,f=T*me+(me-Ta)/2,[x,M]=mt(d,f,d+Ta,f+Ta,2.6,.9);p.push({i:b,j:T,h0:l,ring:x,inner:M,sp:yt(l,{eps:.04}),el:q(y),drawn:NaN})}const I=_("g",{},y),L=[];for(let k=0;k<9;k++)L.push(en(I,c,.55,k===4?"dot":"dot m"));const H=p.reduce((k,b)=>b.h0>k.h0?b: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(I));const k=(P.i+.5)*me,b=(P.j+.5)*me,T=Math.max(.6,P.sp.x);L.forEach((n,a)=>Qt(n,r(k+(a%3-1)*2.5,b+(Math.floor(a/3)-1)*2.5,T)))}function X(k){const b=Math.max(.6,k.sp.x);b!==k.drawn&&(k.drawn=b,Q(k.el,it(r,i,k.ring,k.inner,0,b)),k.el.sil.classList.toggle("hi",b>Xo*.5))}const z=kt(t,k=>{let b=!1;for(const T of p)wt(T.sp,k)&&(b=!0),X(T);return F(),b});o.add(z.unregister);function D(){for(const k of p){if(!v){k.sp.t=k.h0;continue}const b=(k.i+.5)*me-v[0],T=(k.j+.5)*me-v[1];k.sp.t=Xo*qf(Math.hypot(b,T)/h)}if(v){const k=lt(Math.floor(v[0]/me),0,An-1),b=lt(Math.floor(v[1]/me),0,An-1);j=W.get(k+","+b),s.textContent=`cell ${k}·${b}`}else j=H,s.textContent="rest";z.wake()}return o.add(Et(t,{move:k=>{v=le(c,k[0],k[1],0),D()},leave:()=>{v=null,D()}})),o.add(()=>e.replaceChildren()),{set:k=>{h=k*me,v&&D()},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]],Ds=45,xi=90,bi=t=>Ds+xi*Math.round((t-Ds)/xi),Ua=(t,e,s)=>(t[0]+t[3])*e+(t[1]+t[4])*s+(t[2]+t[5])*.01;function ed(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 nd(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 y of[t[1],t[4]])for(const p of[t[2],t[5]]){const g=v*s-y*e,N=(v*e+y*s)*u-p*o;c=Math.min(c,g),r=Math.max(r,g),i=Math.min(i,N),h=Math.max(h,N)}return[c,i,r,h]}function rd(t,e,s,u){const o=t.length,c=t.map(p=>nd(p,e,s,u)),r=t.map(()=>[]),i=t.map(()=>0);for(let p=0;p<o;p++)for(let g=0;g<o;g++){const N=c[p],I=c[g];p===g||N[2]<=I[0]||I[2]<=N[0]||N[3]<=I[1]||I[3]<=N[1]||ed(t[p],t[g],e,s)&&(r[p].push(g),i[g]++)}const h=[],v=t.map(()=>!1);let y=0;for(;h.length<o;){let p=-1,g=0;for(;g<2&&p<0;g++)for(let N=0;N<o;N++)!v[N]&&(g||!i[N])&&(p<0||Ua(t[N],e,s)<Ua(t[p],e,s))&&(p=N);g===2&&y++,v[p]=!0,h.push(p);for(const N of r[p])i[N]--}return{order:h,forced:y}}var sd=(t,e,s,u)=>rd(t,e,s,u).order,Bn=70,yi=4,Mi=540,ad=14,od=({stage:t,svg:e,read:s},u)=>{const o=Tt();let c=u;const r={a:Ds,w:0,mode:"rest",tgt:Ds},i=yt(.5,{eps:5e-4});let h=null,v=0,y=-1e9;function p(d,f){if(r.mode==="rest")return!1;const x=Math.max(1,Math.ceil(d*240)),M=d/x;for(let S=0;S<x;S++)r.mode==="coast"?(r.w*=Math.exp(-M*1e3/c),r.a+=r.w*M,Math.abs(r.w)<45&&f-y>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 g=At(Ds,.5,1.85);g.ox=200,g.oy=184;const N=ht(Bn),I=ht(Bn-1.5),L=Go.map(d=>{const[f,x]=mt(d[0],d[1],d[3],d[4],3,1.1);return{b:d,ring:f,inner:x}}),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=_("g",{},e),F=q(j),X=_("path",{class:"nf lo"},j),z=_("path",{class:"nf"},j),D=en(j,g,1.7,"dot m"),k=_("path",{class:"nf"},j),b=Go.map(()=>q(j)),T=_("g",{},j),n=[];for(let d=0;d<16;d++){const f=Math.floor(d/4),x=d%4,M=f%3===0,S=x%3===0;M&&S||n.push({r:f,q:x,el:en(T,g,.6,M||S?"dot m":"dot")})}let a=null;const l=kt(t,(d,f)=>{let x=p(d,f);wt(i,d)&&(x=!0),g.az=vt(r.a),g.k=i.x;const M=Mt(g),S=Bt(g),A=Math.cos(g.az),m=Math.sin(g.az);Q(F,it(M,S,N,I,-yi,0));const C=[],w=[];for(let O=0;O<360;O+=15){const et=vt(O),nt=O%90===0,ct=nt?Bn-12:Bn-8;(nt?w:C).push(ft(M(Math.cos(et)*ct,Math.sin(et)*ct,0),M(Math.cos(et)*(Bn-4.5),Math.sin(et)*(Bn-4.5),0)))}X.setAttribute("d",C.join("")),z.setAttribute("d",w.join("")),Qt(D,M(0,-53,0)),D.setAttribute("ry",String($t(1.7*g.S*g.k)));const E=g.oy+Bn*g.S*g.k+yi*g.S*Math.sqrt(1-g.k*g.k);k.setAttribute("d",`M${g.ox-4} ${$t(E+10)}L${g.ox} ${$t(E+4)}L${g.ox+4} ${$t(E+10)}`);let $=-1,G=ad;if(h!==null||r.mode!=="rest")for(const O in P){const[et,nt]=P[O],ct=Math.abs(Math.atan2(et*A-nt*m,et*m+nt*A))*180/Math.PI;ct<G&&(G=ct,$=+O)}sd(Go,m,A,g.k).forEach((O,et)=>{const nt=L[O];Q(b[et],it(M,S,nt.ring,nt.inner,nt.b[2],nt.b[5])),b[et].sil.classList.toggle("hi",nt===W[$]),nt===H&&a!==b[et]&&(a=b[et],a.g.after(T))});const[J,B,,R,Y,Z]=H.b,V=(J+R)/2,K=(B+Y)/2;return n.forEach(({r:O,q:et,el:nt})=>{Qt(nt,M(V+(et-1.5)*2.6,K+(O-1.5)*2.6,Z)),nt.setAttribute("ry",String($t(.6*g.S*g.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)}°`,x});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 x=d[0]-h;if(Le())r.a-=x*.9;else{const M=x/Math.max(.008,(f-v)/1e3);r.w=lt(bt(r.w,-M*.9,.35),-Mi,Mi),r.mode="coast"}Math.abs(x)>.5&&(y=f)}h=d[0],v=f,l.wake()},leave:()=>{h=null,i.t=.5,Le()&&(r.a=bi(r.a)),l.wake()}})),o.add(()=>e.replaceChildren()),{set:d=>{c=d,l.wake()},destroy:o.dispose}},ae=40,se=14,Ne=64,Ln=17,Sa=4,wi=6,cd=6,In=10,Na=11,Ca=12,Yo=10,ki=3.6,Zo=-ae-8,Ai=4.6,xr=-70,br=70,yr=130,Ei=40,Ko=30,id=50,Ti=150,Uo=[72,26,-20],ld=[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,g)=>t(e[0]+s[0]*g+u[0]*p.u+o[0]*p.v,e[1]+s[1]*g+u[1]*p.u+o[1]*p.v,e[2]+s[2]*g+u[2]*p.u+o[2]*p.v),y=p=>[0,1,2].reduce((g,N)=>g+(u[N]*p.nu+o[N]*p.nv)*ld[N],0)>0;return{sil:tt(Pt(c.map(p=>v(p,i)).concat(c.map(p=>v(p,h))))),crease:jt(Kt(r,y).map(p=>v(p,h)))}}var ud=({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],y=At(45,.5,1.5);Ct(y,[[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(y),g=_("g",{},e);Q(q(g),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(g),yn(p,[Zo,se*.55,0],h,i,r,ht(Ai,28),ht(Ai-1,28),Ne-26,Ne+26));for(const B of[-15,15])Q(q(g),yn(p,[0,0,Ne+B],r,i,h,rt(Zo,-4,-ae+6,4,3,4),rt(Zo+1,-3,-ae+5,3,2,4),1,se*.8));Q(q(g),yn(p,v,r,i,h,ht(ae,72),ht(ae-2.4,72),0,se)),_("path",{class:"nf lo",d:tt(ht(ae-8,64).map(B=>p(B.u,se,Ne+B.v)))},g),_("path",{class:"nf",d:ft(p(0,se,Ne+Ln+1.8),p(0,se,Ne+Ln+6.5))},g);const N=q(g);Q(N,yn(p,v,r,i,h,ht(Ln,56),ht(Ln-1.4,56),se,se+Sa));const I=_("path",{class:"nf lo"},g),L=_("path",{class:"nf"},g),H=_("path",{class:"nf"},g);Q(q(g),yn(p,v,r,i,h,ht(wi,32),ht(wi-1,32),se+Sa,se+Sa+cd));const W=Uo.map(B=>{const R=Vo(B),Y=Vo(B+90),Z=q(g),V=q(g);Q(V,yn(p,v,r,R,Y,rt(ae+In,-Ca/2,ae+In+Na,Ca/2,3,4),rt(ae+In+1.4,-Ca/2+1.4,ae+In+Na-1.4,Ca/2-1.4,1.8,4),0,Yo));for(const K of[-3.4,3.4]){const O=ae+In+Na/2+K;Qt(_("circle",{r:.9,class:"dot off"},V.g),p(R[0]*O,Yo,Ne+R[2]*O))}return{th:B,e:R,t:Y,el:Z,tw:Ft(0),drawn:NaN}}),P=(B,R)=>{const Y=bt(ae+In+4.5,ae+1.2,R);Y!==B.drawn&&(B.drawn=Y,Q(B.el,yn(p,[0,se/2,Ne],B.e,B.t,r,ht(ki,24),ht(ki-.9,24),ae-.2,Y)))},j={a:Ko,w:0,mode:"rest",tgt:Ko};let F=Ko,X="",z=null,D=0,k=-1e9,b=!1,T=!1,n=1,a=null,l=NaN;function d(){if(j.a===l)return;l=j.a;const B=[],R=[],Y=se+Sa;for(let Z=0;Z<100;Z+=5){const V=90+(Z-j.a)*3.6,K=Vo(V),O=Z%10?Ln-4:Ln-6.5,et=Ln-1.8,nt=ft(p(K[0]*O,Y,Ne+K[2]*O),p(K[0]*et,Y,Ne+K[2]*et));Z===Ei?H.setAttribute("d",nt):(Z%10?B:R).push(nt)}I.setAttribute("d",B.join("")),L.setAttribute("d",R.join(""))}function f(){const B=T?"bolts":b?"dial":"combo";B!==a&&(a=B,W.forEach(R=>R.el.sil.classList.toggle("hi",B==="bolts")),N.sil.classList.toggle("hi",B==="dial"),H.classList.toggle("hi",B==="combo"))}function x(B,R){T=B,W.forEach((Y,Z)=>oe(Y.tw,B?1:0,R,Math.abs(Z-n)*id)),f()}function M(B,R){if(j.mode==="rest")return!1;const Y=Math.max(1,Math.ceil(B*240)),Z=B/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,(B,R)=>{let Y=M(B,R);const Z=Math.abs(Jo(j.a-Ei));!T&&Z<.8&&Math.abs(j.w)<6?x(!0,R):T&&Z>2.5&&x(!1,R),d(),W.forEach(O=>{P(O,Wt(O.tw,R)),Jt(O.tw,R)||(Y=!0)});const V=String((Math.round(j.a)%100+100)%100).padStart(2,"0"),K=b||j.mode!=="rest"?`dial ${V}`+(T?" · open":""):"rest";return K!==X&&(s.textContent=X=K),Y});o.add(S.unregister);const A=p(0,se,0),m=p(1,se,0),C=p(0,se,1),w=[m[0]-A[0],m[1]-A[1]],E=[C[0]-A[0],C[1]-A[1]],$=w[0]*E[1]-w[1]*E[0];function G([B,R]){const Y=B-A[0],Z=R-A[1];return[(Y*E[1]-Z*E[0])/$,(w[0]*Z-w[1]*Y)/$-Ne]}function J(){b=!1,z=null,Le()&&(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:B=>{const[R,Y]=G(B),Z=Math.hypot(R,Y);if(Z>ae+In+Na+10)return J();const V=performance.now(),K=Math.atan2(Y,R)*180/Math.PI;if(b=!0,n=Uo.reduce((O,et,nt)=>Math.abs(Jo((K-et)/3.6))<Math.abs(Jo((K-Uo[O])/3.6))?nt:O,0),z!==null){const O=-((K-z+540)%360-180)/3.6*lt(Z/22,0,1);Le()?(F+=O,j.a=Math.round(F/10)*10,j.mode="rest"):(j.w=lt(bt(j.w,O/Math.max(.008,(V-D)/1e3),.35),-Ti,Ti),j.mode="coast",F=j.a),Math.abs(O)>.05&&(k=V)}z=K,D=V,f(),S.wake()},leave:J})),f(),o.add(()=>e.replaceChildren()),{set:B=>{c=B,S.wake()},destroy:o.dispose}};function fd(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:kf,focusable:!0},t,e)}function dd(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:td},t,e)}function hd(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:o1},t,e)}function pd(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:hu},t,e)}function vd(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:Df},t,e)}function md(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:od},t,e)}function gd(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:y1},t,e)}function xd(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:s1},t,e)}function bd(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:ou},t,e)}function yd(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:w1},t,e)}function Md(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:Qf},t,e)}function wd(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:Gl},t,e)}function kd(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:Fl},t,e)}function Ad(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:ud},t,e)}function Ed(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:T1},t,e)}function Td(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:R1},t,e)}function Sd(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:O1},t,e)}function Nd(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:J1},t,e)}function Cd(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:Ul},t,e)}function jd(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:Tf},t,e)}function Rd(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:Lf},t,e)}function Pd(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:Qu},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 Ld(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:Gu},t,e)}function Id(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:t1},t,e)}function _d(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:Hl},t,e)}function zd(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:wu},t,e)}function Hd(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:v1,tour:[[205,112],[260,144],[328,179],[263,207],[201,243],[131,209],[76,177],[136,141],null]},t,e)}function Dd(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:hf,tour:[[45,145],[140,253],[271,258],[355,216],[344,151],null]},t,e)}function Od(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:Cf,tour:[[360,40],[320,120],[203,155],null]},t,e)}function $d(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:f1,tour:[[290,162],[199,168],[135,200],null]},t,e)}function Fd(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:lf,tour:[[47,236],[276,172],[181,106],null]},t,e)}function Wd(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:Gf,tour:[[200,250],[200,216],[200,199],null]},t,e)}var Qo=typeof window>"u"?ie.useEffect:ie.useLayoutEffect;function Nt(t,e){const s=ie.forwardRef(function(o,c){const{intensity:r,theme:i,label:h,onRead:v,play:y,style:p,...g}=o,N=h??o["aria-label"],I=ie.useRef(null),L=ie.useRef(null),H=ie.useRef(v),W=ie.useCallback(P=>{I.current=P,typeof c=="function"?c(P):c&&(c.current=P)},[c]);return Qo(()=>{H.current=v}),Qo(()=>{const P=e(I.current,{intensity:r,theme:i,label:N,play:y,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:y})},[r,i,N,y]),U.jsx("div",{...g,ref:W,style:{aspectRatio:"5 / 4",...p}})});return s.displayName=t,s}Nt("Riffle",fd);Nt("Terrain",dd);Nt("Exploded",hd);Nt("Phosphor",pd);Nt("Slow",vd);Nt("Turntable",md);Nt("Keyboard",gd);Nt("Elevator",xd);Nt("Phone",bd);Nt("Laptop",yd);Nt("Terminal",Md);Nt("Cabinet",wd);Nt("Branches",kd);Nt("Vault",Ad);Nt("Lockers",Ed);Nt("Loupe",Td);Nt("Padlock",Sd);Nt("Patch",Nd);Nt("Dish",Cd);Nt("Router",jd);Nt("Sieve",Rd);Nt("Rail",Pd);Nt("Plug",Bd);Nt("Query",Ld);Nt("Drawer",Id);Nt("Basket",_d);Nt("Plot",zd);var Xd=Nt("Hub",Hd);Nt("Relay",Dd);Nt("Settle",Od);Nt("Format",$d);Nt("Rebuild",Fd);Nt("Stack",Wd);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(dl,{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 th(){const t=Ui(),e=Vi(),{state:s}=Ji();return U.jsx(Gd,{catalogState:t,accountState:e,initialSelection:s?.cloudPlanSelection,restoreFocus:s?.cloudPlanRestoreFocus})}function Gd({catalogState:t,accountState:e,initialSelection:s,selection:u,restoreFocus:o=!1}){const c=ie.useRef(null),r=ie.useRef(null),i=ie.useRef(!1);ie.useLayoutEffect(()=>{const O=c.current?.parentElement;O&&(O.scrollTop=0)},[]);const h=Qi(),{openLoginModal:v}=qi(),{catalog:y,loading:p,error:g,refresh:N}=t,{account:I,auth:L,loading:H,error:W,refresh:P}=e,[j,F]=ie.useState(s?.billingMode==="fixed"?"fixed":"recurring"),[X,z]=ie.useState(s?.termMonths===1?1:12),D=u?.billingMode||j,k=u?.termMonths||X,b=I?.membership,T=b?.has_gift===!0||b?.access_source==="gift"||I?.gifts?.some(O=>["active","pending"].includes(O.state)),n=I?.subscriptions?.some(O=>["active","trialing","past_due","paused"].includes(O.status)&&!O.cancel_at_period_end),a=b?.status==="active"&&!n&&!T,l=a?"fixed":D,d=y?.prices?.find(O=>O.billing_mode===l&&O.term_months===k),f=typeof d?.sku=="string"&&!!d.sku.trim(),x=y?.prices?.find(O=>O.billing_mode===l&&O.term_months===1),M=y?.prices?.find(O=>O.billing_mode===l&&O.term_months===12),S=d?.currency||"USD",A=tl(x,M),m=el(y),C=y?.providers?.waffo,w=[...I?.conflict_orders||[],...I?.pending_orders||[]].some(O=>O.retry_payment_conflict_at),E=b&&["active","trial","transition","legacy_free"].includes(b.status),$=b?.trial_available===!1,G=!L?.signedIn||b?.trial_available===!0,J=!!(L?.loading||L?.signedIn&&(H||W||!b)),B=n||T,R=!E&&!n&&!T&&!$,Y=b?.status==="transition"?b.transition_ends_at:b?.status==="trial"?b.trial_ends_at:a?b.expires_at:null,Z=st(a?"cloud.action.renew":l==="fixed"?"cloud.action.buy_pro":"cloud.action.subscribe"),V=!f||!m||p||g||J||!C||w;ie.useLayoutEffect(()=>{if(!o||i.current||p||J)return;const O=r.current?.querySelector("button:not([disabled]), a[href]");O&&(O.focus(),i.current=!0)},[o,p,J]);const K=(O=!1)=>{if(!f)return;const et=il({trial:O,sku:d?.sku,userId:L?.signedIn?L.user?.id:null});if(!L?.signedIn){v({nextPath:et,subtitle:st(O?"cloud.login.trial_context":"cloud.login.purchase_context")});return}h(et)};return y?.policy?.hosting_mode==="self_hosted"||b?.status==="self_hosted"?U.jsx(nl,{}):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(Xd,{className:"tt-cloud-figure pointer-events-auto w-full translate-x-8",intensity:.4,play:!0,tabIndex:-1})}),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(rl,{})}):null,U.jsxs("div",{className:"tt-plan-grid relative z-10",children:[U.jsxs(x0,{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(sl,{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.tracking"),st("cloud.free.limits"),st("cloud.free.desktop"),st("cloud.free.exports"),st("cloud.plan.local_community")]}),U.jsx("div",{className:"flex items-center border-t border-oai-gray-200 py-4 dark:border-oai-gray-800",children:U.jsx("p",{className:"text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.free.installations")})}),U.jsx(Dr,{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(x0,{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(al,{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(ll,{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.anywhere"),st("cloud.plan.sync",{minutes:y?.limits?.sync_minutes||15}),st("cloud.plan.retained_history",{days:y?.limits?.hourly_history_days||90,months:y?.limits?.daily_history_months||24}),st("cloud.plan.identity")]}),U.jsxs("div",{className:"border-t border-oai-gray-200 py-4 dark:border-oai-gray-800",children:[R?U.jsx("p",{className:"flex min-h-11 items-center text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:st("cloud.plan.trial_setup_hint")}):null,!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,B?U.jsx("p",{className:"flex min-h-11 items-center text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:g0(b?.status)}):null,!R&&!a&&!B?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(D==="recurring"?"cloud.plan.renewal_hint":"cloud.plan.renewal_off")})]}),U.jsx("button",{id:"pro-renewal-toggle",type:"button",role:"switch","aria-checked":D==="recurring","aria-label":st("cloud.billing_mode.recurring"),onClick:()=>F(O=>O==="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 ${D==="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 ${D==="recurring"?"translate-x-[19px] bg-white dark:bg-oai-gray-900":"translate-x-[3px] bg-white"}`})})})]}):null]}),U.jsxs("div",{ref:r,children:[B?U.jsx(Dr,{as:Gs,to:"/settings?section=cloud",className:"w-full no-underline",children:st("cloud.action.manage_membership")}):null,!B&&R?U.jsxs(Dr,{type:"button",onClick:()=>K(!0),disabled:!f||!m||p||g||J||!G||w,className:"w-full",children:[st("cloud.action.try",{days:y?.limits?.trial_days||7}),U.jsx(Qa,{size:16,className:"ml-2","aria-hidden":!0})]}):null,!B&&!R?U.jsxs(Dr,{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 ${!B&&(E||$)||T?"pt-3":""}`,children:[!B&&!E&&$?U.jsx("p",{children:st("cloud.trial.used_hint")}):null,E&&!B?U.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-x-2 gap-y-1",children:[U.jsx("span",{children:g0(b?.status)}),Y?U.jsxs("span",{children:["· ",st("cloud.membership.expires",{date:ol(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,g?U.jsx(Yn,{error:g,onRetry:N}):null,!g&&p?U.jsx(Yn,{children:st("cloud.catalog.loading")}):null,!g&&!p&&!m?U.jsx(Yn,{children:st("cloud.catalog.preview")}):null,!g&&!p&&m&&!C?U.jsx(Yn,{children:st("cloud.catalog.provider_unavailable")}):null,!g&&!p&&m&&y?.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 p-6 dark:border-oai-gray-800 dark:bg-oai-gray-900 md:p-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(b0,{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:"max-w-2xl pb-5",children:[U.jsx(cl,{limits:y?.limits}),U.jsx("p",{className:"mt-4 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(([O,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:[O,U.jsx(b0,{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:"max-w-2xl pb-5 text-sm leading-7 text-oai-gray-500 dark:text-oai-gray-400",children:et})]},O))]})]}),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(ul,{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(Dr,{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(fl,{size:15,className:"mt-0.5 shrink-0","aria-hidden":!0}),st("cloud.feature.privacy_detail")]})]})})}export{th as CloudPage,Gd as CloudPlanView};
@@ -1,4 +0,0 @@
1
- import{o as be,bh as we,bi as ye,r as i,M as _e,J as ke,bj as ve,x as ce,ai as le,bk as Ee,aB as je,ak as Se,aj as Ce,ah as Ne,j as r,aM as De,X as Re,c as f,a as Pe,bl as de,B as Z,ax as Te,bm as Ie}from"./__vite-browser-external-DWN9Fb-H.js";import{u as Oe,D as ze,a as Le,b as Ae,c as Ue,d as $e,e as Be}from"./DialogTitle-B9NNSz5p.js";import{u as Me,d as Fe,t as qe}from"./composite-Cq0CmNAv.js";import{k as Ge,l as Je}from"./SelectItemText-aaQK_QIt.js";import{u as Ke}from"./safePolygon-DsolkMUX.js";import{D as Ye}from"./DialogClose-DjnC3P4V.js";import{D as Ve}from"./DateRangePopover-DuqNLatr.js";import{C as He}from"./calendar-days-bzh7-lab.js";import{C as ue}from"./chevron-down-CsiGcG0G.js";import{D as fe}from"./download-DqLpubIF.js";import{P as Qe,a as Ze,b as Xe,c as We,d as et}from"./PopoverPopup-BzfELnIC.js";const pe={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};pe.node;const yt=be(pe),tt=we(function(a,t){const{render:c,className:s,style:n,disabled:h=!1,nativeButton:_=!0,id:k,payload:o,handle:m,...b}=a,O=Oe(!0),l=Ke(m)??O;if(!l)throw new Error(ye(79));const v=Me(k),T=l.useState("floatingRootContext"),u=l.useState("isOpenedByTrigger",v),E=l.useState("triggerPopupId",v),j=i.useRef(null),{registerTrigger:w,isMountedByThisTrigger:x}=Fe(v,j,l,{payload:o}),{getButtonProps:C,buttonRef:N}=_e({disabled:h,native:_}),y=Ge(T),S=Je(()=>l.select("open"),J=>{l.set("openMethod",J)}),F={disabled:h,open:u},I=l.useState("triggerProps",x);return ke("button",a,{state:F,ref:[N,t,w,j],props:[y.reference,I,S,{[ve]:"",id:v,"aria-haspopup":"dialog","aria-expanded":u,"aria-controls":E},b,C],stateAttributesMapping:qe})}),ee="tt.qualityPerDollar.enabled";function X(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(ee)==="1"}catch{return!1}}function _t(){const[e,a]=i.useState(X);i.useEffect(()=>{if(typeof window>"u")return;const s=n=>{(n.key===null||n.key===ee)&&a(X())};return window.addEventListener("storage",s),()=>window.removeEventListener("storage",s)},[]);const t=i.useCallback(s=>{const n=!!s;a(n);try{window.localStorage.setItem(ee,n?"1":"0")}catch{}},[]),c=i.useCallback(()=>t(!X()),[t]);return{enabled:e,setEnabled:t,toggle:c}}const te="tt.sessionEfficiency.enabled";function W(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(te)==="1"}catch{return!1}}function kt(){const[e,a]=i.useState(W);i.useEffect(()=>{if(typeof window>"u")return;const s=n=>{(n.key===null||n.key===te)&&a(W())};return window.addEventListener("storage",s),()=>window.removeEventListener("storage",s)},[]);const t=i.useCallback(s=>{const n=!!s;a(n);try{window.localStorage.setItem(te,n?"1":"0")}catch{}},[]),c=i.useCallback(()=>t(!W()),[t]);return{enabled:e,setEnabled:t,toggle:c}}const G=["total_tokens","billable_total_tokens","input_tokens","output_tokens","cached_input_tokens","cache_creation_input_tokens","reasoning_output_tokens","conversation_count","total_cost_usd"];class p extends Error{constructor(a,t=0){super(a),this.code=a,this.status=t}code;status}function M(e){return typeof e=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(e)&&Number.isFinite(Date.parse(e+"T00:00:00Z"))&&new Date(e+"T00:00:00Z").toISOString().slice(0,10)===e}function at(e,a){if(!Ne(e))throw new p("export_auth_required",401);try{const t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),c=JSON.parse(atob(t.padEnd(Math.ceil(t.length/4)*4,"=")));if((c.sub||c.user_id)!==a||c.role!=="authenticated"||!Number.isFinite(c.exp)||c.exp*1e3<=Date.now())throw Error()}catch{throw new p("export_auth_required",401)}}function ge(e){if(typeof e?.membership?.can_read_cloud!="boolean")throw new p("export_invalid_data",503);if(!e.membership.can_read_cloud)throw new p("export_access_denied",402);const a=e.membership;return JSON.stringify([e.environment,a.phase,a.status,a.hosting_mode,a.expires_at,a.trial_ends_at,a.transition_ends_at,a.read_only_until])}async function rt({userId:e,auth:a,from:t,to:c,deviceId:s=null,signal:n,assertCurrent:h=()=>{},fetchImpl:_=fetch}){if(!M(t)||!M(c)||t>c)throw new p("export_invalid_dates",400);if(typeof a!="function")throw new p("export_auth_required",401);if(!e||s&&!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(s))throw new p("export_invalid_scope",400);const k=ce(),o=le();if(!k)throw new p("export_instance_changed",409);const m=()=>{if(n?.aborted)throw new p("export_cancelled",409);if(h(),k!==ce()||o!==le())throw new p("export_instance_changed",409)};async function b(u,E){m();const j=await je(a);m(),at(j||"",e);const w=new URL(Se(k,u));for(const[y,S]of Object.entries(E))w.searchParams.set(y,S);const x=new AbortController,C=()=>x.abort();n?.addEventListener("abort",C,{once:!0});const N=setTimeout(C,25e3);try{const y=await Ce(w.toString(),{method:"GET",cache:"no-store",redirect:"error",signal:x.signal,headers:{Accept:"application/json",Authorization:"Bearer "+j,...o?{apikey:o}:{}}},_);if(m(),!y.ok)throw new p(y.status===401?"export_auth_required":y.status===402||y.status===403?"export_access_denied":"export_failed",y.status);const S=await y.json();return m(),S}finally{clearTimeout(N),n?.removeEventListener("abort",C)}}const O=ge(await b("tokentracker-billing",{action:"account"})),U={from:t,to:c,tz_offset_minutes:"0",...s?{device_id:s}:{}};if(await b("tokentracker-account-daily",U),ge(await b("tokentracker-billing",{action:"account"}))!==O)throw new p("export_access_changed",409);const l=await b("tokentracker-account-daily",U);if(!M(l?.from)||!M(l?.to)||l.from<t||l.to>c||l.from>l.to||!Array.isArray(l.data)||l.data.length>1096)throw new p("export_invalid_data",503);const v=new Set,T=l.data.map(u=>{if(!M(u?.day)||u.day<l.from||u.day>l.to||v.has(u.day))throw new p("export_invalid_data",503);v.add(u.day);const E={day:u.day};for(const j of G){const w=u[j];if(typeof w!="number"||!Number.isFinite(w)||w<0||j!=="total_cost_usd"&&!Number.isSafeInteger(w))throw new p("export_invalid_data",503);E[j==="total_cost_usd"?"estimated_cost_usd":j]=w}return E}).sort((u,E)=>u.day.localeCompare(E.day));return m(),{schema:"tokentracker.cloud-usage.v1",metadata:{source:"cloud",backend_origin:new URL(k).origin,exported_at:new Date().toISOString(),timezone:"UTC",requested_range:{from:t,to:c},effective_range:{from:l.from,to:l.to},device_scope:s?"selected":"all",aggregation:"daily_all_providers",cost_currency:"USD",cost_basis:"estimated",row_count:T.length},rows:T}}function ot(e){const a=String(e??"");return'"'+(/^[\s]*[=+\-@]/.test(a)?"'"+a:a).replace(/"/g,'""')+'"'}function nt(e,a){if(a==="json")return JSON.stringify(e,null,2)+`
2
- `;const t=e.metadata,c=["row_type","source","backend_origin","exported_at","timezone","cost_currency","cost_basis","requested_from","requested_to","effective_from","effective_to","device_scope","aggregation","row_count","day",...G.map(n=>n==="total_cost_usd"?"estimated_cost_usd":n)],s=[t.source,t.backend_origin,t.exported_at,t.timezone,t.cost_currency,t.cost_basis,t.requested_range.from,t.requested_range.to,t.effective_range.from,t.effective_range.to,t.device_scope,t.aggregation,t.row_count];return[c,["metadata",...s,"",...G.map(()=>"")],...e.rows.map(n=>["usage",...s,n.day,...G.map(h=>n[h==="total_cost_usd"?"estimated_cost_usd":h])])].map(n=>n.map(ot).join(",")).join(`\r
3
- `)+`\r
4
- `}async function st(e,a,{signal:t,assertCurrent:c=()=>{}}={}){const s=nt(e,a),n=`tokentracker-cloud-usage-${e.metadata.effective_range.from}-${e.metadata.effective_range.to}.${a}`,h=()=>{if(t?.aborted)throw new p("export_cancelled",409);c()};h();const _=await Ee({filename:n,content:s,format:a,signal:t});if(h(),_?.saved===!0)return;if(_!==null)throw new p("export_failed",503);const k=new Blob([s],{type:a==="csv"?"text/csv;charset=utf-8":"application/json;charset=utf-8"}),o=URL.createObjectURL(k);try{const m=document.createElement("a");m.href=o,m.download=n,document.body.appendChild(m);try{m.click()}finally{m.remove()}}finally{setTimeout(()=>URL.revokeObjectURL(o),1e3)}}function it({open:e,onOpenChange:a,title:t,triggerLabel:c=t,icon:s,wide:n=!1,preventClose:h=!1,initialFocus:_,children:k}){return r.jsxs(ze,{open:e,onOpenChange:(o,m)=>{if(!o&&h){m.cancel();return}a(o)},children:[r.jsxs(tt,{className:"inline-flex h-11 w-full items-center gap-3 rounded-md border-0 bg-transparent p-0 text-left text-sm font-medium text-oai-black transition-colors hover:bg-oai-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-oai-gray-500 dark:text-oai-white dark:hover:bg-oai-gray-800",children:[s?r.jsx(s,{size:16,className:"shrink-0","aria-hidden":!0}):null,r.jsx("span",{className:"min-w-0 flex-1",children:c}),r.jsx(De,{size:16,className:"shrink-0 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0})]}),r.jsxs(Le,{children:[r.jsx(Ae,{className:"tt-cloud-action-backdrop fixed inset-0 z-[100] bg-black/40 dark:bg-black/60"}),r.jsx(Ue,{className:"tt-cloud-settings fixed inset-0 z-[101] flex items-center justify-center overflow-y-auto overscroll-contain p-4",children:r.jsxs($e,{initialFocus:_,"aria-modal":"true",className:`tt-cloud-action-popup tt-cloud-theme relative max-h-[calc(100dvh-2rem)] w-full ${n?"max-w-2xl":"max-w-lg"} overflow-y-auto overscroll-contain rounded-xl bg-white p-5 shadow-xl outline-none dark:bg-oai-gray-900`,children:[r.jsxs("div",{className:"mb-3 flex min-h-11 items-center justify-between gap-4",children:[r.jsx(Be,{className:"min-w-0 text-lg font-semibold text-oai-black dark:text-oai-white",children:t}),r.jsx(Ye,{disabled:h,"aria-label":f("shared.dialog.close"),className:"inline-flex size-11 min-h-11 min-w-11 shrink-0 items-center justify-center rounded-md border-0 bg-transparent p-0 text-oai-gray-500 transition-colors hover:bg-oai-gray-100 hover:text-oai-black focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-oai-gray-500 disabled:cursor-wait disabled:opacity-40 dark:text-oai-gray-400 dark:hover:bg-oai-gray-800 dark:hover:text-oai-white",children:r.jsx(Re,{size:18,"aria-hidden":!0})})]}),r.jsx("div",{"data-settings-panel":"cloud",className:"min-w-0",children:k})]})})]})]})}function ct(e){return e?.status===401?f("cloud.export.error_auth"):e?.status===402||e?.status===403?f("cloud.export.error_access"):e?.code==="export_invalid_dates"?f("cloud.export.error_dates"):e?.status===409?f("cloud.export.error_changed"):f("cloud.export.error_failed")}function vt({from:e,to:a,deviceId:t=null,auth:c,compact:s=!1,panelContainer:n=null,layout:h="default",dialogOpen:_,onDialogOpenChange:k}){const o=h==="settings-row",m=Pe(),b=c||m,O=b?.signedIn?b.user?.id:null,U=new Date().toISOString().slice(0,10),l=new Date(Date.now()-29*864e5).toISOString().slice(0,10),[v,T]=i.useState(e||l),[u,E]=i.useState(a||U),[j,w]=i.useState(!1),x=o&&typeof _=="boolean"?_:j,[C,N]=i.useState(!1),[y,S]=i.useState(null),[F,I]=i.useState(null),[J,L]=i.useState(!1),[me,he]=i.useState(2),ae=i.useId(),K=i.useRef(null),D=i.useRef(0),A=i.useRef(null),z=i.useRef(!1),$=i.useRef(!1),re=i.useRef(x);re.current=x;const oe=i.useRef(x);if(K.current={userId:O,client:b?.client,start:v,end:u,deviceId:t,from:e,to:a},i.useEffect(()=>{$.current=!0;const d=()=>{++D.current,A.current?.abort(),z.current=!1,N(!1),I(null),S(null),L(!1)};return window.addEventListener(de,d),()=>{$.current=!1,++D.current,A.current?.abort(),window.removeEventListener(de,d)}},[]),i.useEffect(()=>{++D.current,A.current?.abort(),z.current=!1,N(!1),S(null),I(null),L(!1),e&&T(e),a&&E(a)},[O,b?.client,e,a,t]),i.useEffect(()=>{o&&oe.current&&!x&&ne(),oe.current=x},[x,o]),i.useEffect(()=>{const d=window.matchMedia?.("(max-width: 639px)");if(!d)return;const g=()=>he(d.matches?1:2);return g(),d.addEventListener("change",g),()=>d.removeEventListener("change",g)},[]),!O||b?.enabled===!1)return null;function ne(){++D.current,A.current?.abort(),z.current=!1,N(!1),S(null),I(null),L(!1)}function xe(d){d||ne(),typeof _!="boolean"&&w(d),k?.(d)}function Y(d,g){++D.current,A.current?.abort(),z.current=!1,N(!1),S(null),I(null),d(g)}async function se(d){if(z.current)return;z.current=!0;const g=K.current,H=++D.current,Q=new AbortController;A.current=Q,N(!0),S(null),I(null);const q=()=>{const R=K.current;if(!$.current||H!==D.current||o&&!re.current||!R||Object.keys(g).some(P=>g[P]!==R[P])||g.client&&!Ie(g.client))throw new p("export_cancelled",409)};try{const R=await rt({userId:g.userId,auth:b.getAccessToken,from:g.start,to:g.end,deviceId:g.deviceId,signal:Q.signal,assertCurrent:q});q(),await st(R,d,{signal:Q.signal,assertCurrent:q}),q();const P=R.metadata.effective_range,ie=R.rows.length?f("cloud.export.success",{count:R.rows.length,from:P.from,to:P.to}):f("cloud.export.empty");I(P.from!==g.start||P.to!==g.end?`${ie} ${f("cloud.export.truncated",{from:P.from,to:P.to})}`:ie)}catch(R){$.current&&H===D.current&&S(ct(R))}finally{H===D.current&&(z.current=!1,$.current&&N(!1))}}const V="hover:!text-oai-black dark:hover:!text-oai-white hover:!bg-oai-gray-100 dark:hover:!bg-oai-gray-800 focus:!ring-oai-gray-500/40";let B=null;return(o||x)&&(B=r.jsxs("div",{id:ae,className:o?void 0:s?"w-full rounded-lg bg-oai-gray-50 p-4 dark:bg-oai-gray-950/50":"mt-2 border-l-2 border-oai-gray-200 pl-3 dark:border-oai-gray-700","aria-busy":C,children:[o?null:r.jsx("p",{className:"text-xs leading-5 text-oai-gray-600 dark:text-oai-gray-300",children:f("cloud.export.description")}),r.jsxs("div",{className:o?"space-y-4":"mt-3 flex flex-wrap items-end gap-3",children:[o?r.jsxs(Qe,{open:J,onOpenChange:L,children:[r.jsxs(Ze,{disabled:C,"aria-label":f("trend.zoom.pick_range"),className:"inline-flex h-10 min-h-10 w-full items-center gap-2 rounded-md border border-oai-gray-300 bg-transparent px-3 text-sm text-oai-black transition-colors hover:bg-oai-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-oai-gray-500 disabled:opacity-50 dark:border-oai-gray-700 dark:text-oai-white dark:hover:bg-oai-gray-800",children:[r.jsx(He,{size:16,className:"shrink-0 text-oai-gray-500","aria-hidden":!0}),r.jsxs("span",{className:"flex-1 text-left tabular-nums",children:[v," → ",u]}),r.jsx(ue,{size:14,className:"shrink-0 text-oai-gray-500","aria-hidden":!0})]}),r.jsx(Xe,{children:r.jsx(We,{sideOffset:8,side:"bottom",align:"start",className:"z-[110]",children:r.jsx(et,{className:"max-w-[calc(100vw-2rem)] rounded-xl border border-oai-gray-200 bg-white shadow-lg outline-none dark:border-oai-gray-700 dark:bg-oai-gray-900",children:r.jsx(Ve,{from:v,to:u,numberOfMonths:me,onApply:(d,g)=>{Y(T,d),E(g),L(!1)},onCancel:()=>L(!1)})})})})]}):r.jsxs(r.Fragment,{children:[r.jsxs("label",{className:"min-w-0 text-xs text-oai-gray-700 dark:text-oai-gray-200",children:[f("cloud.export.from"),r.jsx("input",{type:"date",value:v,onChange:d=>Y(T,d.target.value),className:`${o?"min-h-10 min-w-0 w-full ":""}mt-1 block rounded-md border border-oai-gray-300 bg-white px-2 py-1.5 text-sm text-oai-black focus:outline-none focus:ring-2 focus:ring-inset focus:ring-oai-gray-500/40 dark:border-oai-gray-700 dark:bg-oai-gray-900 dark:text-oai-white`})]}),r.jsxs("label",{className:"min-w-0 text-xs text-oai-gray-700 dark:text-oai-gray-200",children:[f("cloud.export.to"),r.jsx("input",{type:"date",value:u,onChange:d=>Y(E,d.target.value),className:`${o?"min-h-10 min-w-0 w-full ":""}mt-1 block rounded-md border border-oai-gray-300 bg-white px-2 py-1.5 text-sm text-oai-black focus:outline-none focus:ring-2 focus:ring-inset focus:ring-oai-gray-500/40 dark:border-oai-gray-700 dark:bg-oai-gray-900 dark:text-oai-white`})]})]}),r.jsxs("div",{className:o?"flex justify-end gap-2":"flex gap-2",children:[r.jsx(Z,{type:"button",variant:o?"secondary":"ghost",size:"sm",className:`${V} ${o?"!min-h-8 !h-8":""}`,disabled:C,onClick:()=>se("csv"),children:f("cloud.export.csv")}),r.jsx(Z,{type:"button",variant:o?"secondary":"ghost",size:"sm",className:`${V} ${o?"!min-h-8 !h-8":""}`,disabled:C,onClick:()=>se("json"),children:f("cloud.export.json")})]})]}),C?r.jsx("p",{role:"status",className:"mt-2 text-xs text-oai-gray-600 dark:text-oai-gray-300",children:f("cloud.export.busy")}):null,y?r.jsx("p",{role:"alert",className:"mt-2 text-xs text-red-700 dark:text-red-300",children:y}):null,F?r.jsx("p",{role:"status",className:"mt-2 text-xs text-oai-gray-600 dark:text-oai-gray-300",children:F}):null]})),o?r.jsx(it,{open:x,onOpenChange:xe,title:f("cloud.export.open"),icon:fe,children:B}):r.jsxs("section",{className:s&&!o?"tt-cloud-theme contents":"tt-cloud-theme","aria-label":f("cloud.export.open"),children:[r.jsxs(Z,{type:"button",variant:"ghost",size:"sm",className:`${V} ${o?"!h-11 !w-full !justify-start !px-0 !text-oai-black dark:!text-oai-white active:!scale-100":s?"!h-10 !px-0":""}`,"aria-expanded":x,"aria-controls":ae,onClick:()=>w(d=>!d),children:[r.jsx(fe,{className:`${o?"mr-3":"mr-2"} h-4 w-4 shrink-0`,"aria-hidden":"true"}),f("cloud.export.open"),o?r.jsx(ue,{size:16,className:`ml-auto shrink-0 transition-transform motion-reduce:transition-none ${x?"rotate-180":""}`,"aria-hidden":!0}):null]}),!o&&n&&B?Te.createPortal(B,n):B]})}export{it as C,yt as P,vt as a,kt as b,_t as u};