@vocalstack/player 0.1.0-alpha.2 → 0.1.0-alpha.4

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.
package/dist/index.js CHANGED
@@ -2,10 +2,10 @@ var Gi = Object.defineProperty;
2
2
  var Zi = (t, e, n) => e in t ? Gi(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
3
  var he = (t, e, n) => Zi(t, typeof e != "symbol" ? e + "" : e, n);
4
4
  import { jsx as a, jsxs as f, Fragment as Pe } from "react/jsx-runtime";
5
- import { useState as O, useRef as z, useEffect as E, useLayoutEffect as mn, createContext as $s, useMemo as Ie, useContext as qi, useCallback as tt, Fragment as Ki } from "react";
5
+ import { useState as O, useRef as z, useEffect as E, useLayoutEffect as mn, createContext as Bs, useMemo as ze, useContext as qi, useCallback as tt, Fragment as Ki } from "react";
6
6
  import { createPortal as Ji } from "react-dom";
7
- import { VocalStackError as Bs, VocalStack as Hs } from "@vocalstack/js-sdk";
8
- const Vs = "https://vocalstack.com", Xi = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ea = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ta = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", na = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
7
+ import { VocalStackError as Hs, VocalStack as Vs } from "@vocalstack/js-sdk";
8
+ const Fs = "https://vocalstack.com", Xi = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzU1YWJlNTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZmZmZmZmIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ea = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDUxLjY5MDciIGhlaWdodD0iMTU1LjMwNjQxIiB2aWV3Qm94PSIwIDAgMTA1MS42OTA2IDE1NS4zMDY0MSI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMC44ODczNDc3MSwwLDAsMC44OTExODY4MiwtNDIuNzE2NjMsLTEyMy44NTM4OCkiPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDVCOEY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDE2NS43NDM2OSwzMTIuMzQ1MTQgYyAtMy42NTkwNCwtMC45NTg2MSAtNi44OTEzMSwtMy4zNTM0OCAtOS4yMTQ5NCwtNi44Mjc1OSAtMS45MTIyNiwtMi44NTkwOCAtMi4zOTcwNSwtNC41Njk3MSAtMi4zOTcwNSwtOC40NTgzNiAwLC0zLjk5MjU0IDAuMDgyNCwtNC4yNzU3IDQuMjMwMTIsLTE0LjU0NTUzIDQuMDA5MjMsLTkuOTI2ODEgMTEuNzQ1OTcsLTI5LjYwODA0IDE0LjE3MjU0LC0zNi4wNTMwMiAxLjA1NTUsLTIuODAzNDQgNC42MzU3OSwtMTIuMDkwMiA3Ljk1NjE5LC0yMC42MzcyNSAzLjMyMDQsLTguNTQ3MDYgOS40NzI2NSwtMjQuNDkxMiAxMy42NzE2OCwtMzUuNDMxNDMgOS40MTE2MywtMjQuNTIxMjUgMTIuMTUxMjQsLTMxLjM5NjE0IDE0LjE5MjIyLC0zNS42MTQ1NSAxLjMzMjI5LC0yLjc1MzY0IDEuODc4NjcsLTMuNTkyNTggMy4zNDU0NiwtNS4xMzY3MiAxLjk2ODIyLC0yLjA3MjAzIDQuMDk4NCwtMy41NjI1MyA2LjQ2Njg3LC00LjUyNDkzIDEuMjcxMzgsLTAuNTE2NiAyLjI1NzYzLC0wLjY5MzAyIDQuODI2NzksLTAuODYzNCA1LjIxODMsLTAuMzQ2MDcgMjQuNTc0NjIsLTAuNTU0NTggMjQuOTg1MDgsLTAuMjY5MTQgMC40Mzc5NywwLjMwNDU2IDEuMTMxMzEsLTEuNTAwMjEgLTE1LjE1NDEyLDM5LjQ0Njc4IC0yMC42ODg0Miw1Mi4wMTc1NyAtMjguOTYxODUsNzIuOTgyNjUgLTM2Ljc1MTgxLDkzLjEzMDA0IC04LjQwMzU2LDIxLjczNDM0IC05LjM5NDk1LDI0LjIwNzY0IC0xMC43NjMxNiwyNi44NTE2NSAtMi4zNTQ1LDQuNTUgLTYuMzgyNCw3Ljc4MzMxIC0xMS4yNzY2MSw5LjA1MjA3IC0yLjA3MjU5LDAuNTM3MjkgLTYuMDAwMTUsMC40ODEwOSAtOC4yODkyNiwtMC4xMTg2MiB6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzI0NUI4RjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4zNzI5NjIiIGQ9Im0gMTIyLjQ5MjIsMzEyLjU4OTE2IGMgLTQuMDc5NTYsLTAuNzMyNTggLTguNjUxMjMsLTMuOTM0MSAtMTEuMjMyNTgsLTcuODY2MTYgLTAuNzMwMDQsLTEuMTEyMDMgLTEuODU0NTksLTMuNDgzMjYgLTIuODQzMDksLTUuOTk0OTYgLTAuODk5NDMsLTIuMjg1NCAtNC43NjI4NywtMTIuMTU1MyAtOC41ODU0MDksLTIxLjkzMzEzIC0zLjgyMjU0LC05Ljc3NzgzIC04LjQ3OTA3MiwtMjEuNjM4MDMgLTEwLjM0Nzg1MiwtMjYuMzU2MDEgLTEuODY4NzgsLTQuNzE3OTcgLTcuNDA0OTY4LC0xOC44MTU5NSAtMTIuMzAyNjQ2LC0zMS4zMjg4NCAtNC44OTc2ODEsLTEyLjUxMjg4IC0xMC44NjE5MjMsLTI3LjcyOTc1IC0xMy4yNTM4NzYsLTMzLjgxNTI1IC0yLjM5MTk1MywtNi4wODU1IC01LjY2NTIxNiwtMTQuNDc3MTUgLTcuMjczOTE4LC0xOC42NDgxMSAtMS42MDg2OTgsLTQuMTcwOTcgLTQuMjM1OTUsLTEwLjg0ODI2IC01LjgzODMzNCwtMTQuODM4NDMgLTIuMDcyNzc5LC01LjE2MTUzIC0yLjgzNjUwOSwtNy4zMzE3NyAtMi42NDY4NjksLTcuNTIxNCAwLjM0NzkwMywtMC4zNDc5MSAyMC44Mjg4ODcsLTAuMzU5MTcgMjQuNzMyODc0LC0wLjAxMzYgNC42NDkyNTYsMC40MTE1NCA3LjAxMjg0OCwxLjUyODExIDEwLjUxNzU0Niw0Ljk2ODUyIDEuNDUwODE5LDEuNDI0MjEgMi4zOTgsMi42MDIxMyAyLjkwNDM3NSwzLjYxMTkgMS43OTg2OTMsMy41ODY3OCA4LjQxODEwMywyMC4wMjg2OSAxOC42NjYyNzksNDYuMzY1MDYgMy42OTgzOSw5LjUwNDMyIDExLjE2MDY3LDI4LjQxMzUxIDE2LjU4Mjg1LDQyLjAyMDQyIDE0LjYzNDMzLDM2LjcyNDY3IDE4Ljc0NzUzLDQ3LjEzNzY1IDE5LjUzOTc1LDQ5LjQ2Njg3IDIuMjI5ODEsNi41NTU4OSAxLjA1NTMzLDEyLjcwMjE0IC0zLjMwNDI2LDE3LjI5MTc2IC0zLjEwMzU5LDMuMjY3MzYgLTYuMjIwNDMsNC42MDg0NSAtMTEuMDIxNzgsNC43NDI0IC0xLjY0MzMxLDAuMDQ1OCAtMy41NzUxOCwtMC4wMjIxIC00LjI5MzA2LC0wLjE1MTAzIHoiLz48cmVjdCBzdHlsZT0iZmlsbDojZWM2MzRkIiB3aWR0aD0iMTEuMjY5NTQiIGhlaWdodD0iNDIuMDk3NjIyIiB4PSIxNjQuODgwMTQiIHk9IjE3Ni4yNTkwOSIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjYyMTU2IiBoZWlnaHQ9Ijg3LjAzODYwNSIgeD0iMTQyLjE1ODY4IiB5PSIxNTMuNzg4NiIgcnk9IjUuNjEwNDk2Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTE5Ljc4OTI0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjwvZz48cGF0aCBzdHlsZT0iZmlsbDojZWM2MzRkIiBkPSJtIDIyMi4yNTEzMiw2OC40Nzk4OTcgcSAtMTIuNzk5OTgsMCAtMjEuNzU5OTcsOC45NTk5ODYgLTguOTU5OTgsOC45NTk5ODYgLTguOTU5OTgsMjEuNzU5OTY1IDAsMTIuNTg2NjQyIDguOTU5OTgsMjEuNTQ2NjMyIDQuMjY2NjYsNC40Nzk5OSA5LjgxMzMyLDYuODI2NjYgNS43NTk5OSwyLjEzMzMzIDExLjk0NjY1LDIuMTMzMzMgNi4xODY2NiwwIDExLjczMzMxLC0yLjEzMzMzIDUuNTQ2NjYsLTIuMzQ2NjcgMTAuMDI2NjUsLTYuODI2NjYgOC45NTk5OSwtOC45NTk5OSA4Ljk1OTk5LC0yMS41NDY2MzIgMCwtMTIuNzk5OTc5IC04Ljk1OTk5LC0yMS43NTk5NjUgLTkuMzg2NjUsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgeiBtIDAsLTI1LjU5OTk1OSBxIDExLjczMzMxLDAgMjEuOTczMyw0LjQ3OTk5MyAxMC4yMzk5OCw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCA3LjY3OTk5LDcuNjc5OTg3IDExLjk0NjY1LDE3LjkxOTk3MSA0LjQ3OTk5LDEwLjIzOTk4NCA0LjQ3OTk5LDIxLjk3MzI5OCAwLDExLjUxOTk4MiAtNC40Nzk5OSwyMS43NTk5NjIgLTQuMjY2NjYsMTAuMjM5OTkgLTExLjk0NjY1LDE3LjkxOTk3IC03LjY3OTk5LDcuNjc5OTkgLTE3LjkxOTk3LDEyLjE1OTk5IC0xMC4yMzk5OSw0LjI2NjY2IC0yMS45NzMzLDQuMjY2NjYgLTExLjczMzMyLDAgLTIxLjk3MzMsLTQuMjY2NjYgLTEwLjIzOTk4LC00LjQ4IC0xNy45MTk5NywtMTIuMTU5OTkgLTcuNjc5OTksLTcuNjc5OTggLTEyLjE1OTk4LC0xNy45MTk5NyAtNC4yNjY2NiwtMTAuMjM5OTggLTQuMjY2NjYsLTIxLjc1OTk2MiAwLC0xMS43MzMzMTQgNC4yNjY2NiwtMjEuOTczMjk4IDQuNDc5OTksLTEwLjIzOTk4NCAxMi4xNTk5OCwtMTcuOTE5OTcxIDcuNjc5OTksLTcuNjc5OTg4IDE3LjkxOTk3LC0xMS45NDY2NDggMTAuMjM5OTgsLTQuNDc5OTkzIDIxLjk3MzMsLTQuNDc5OTkzIHogTSAzODMuMzE3OSwxMzguODc5NzggcSAtNy42Nzk5OSw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTksNC4yNjY2NiAtMjEuOTczMyw0LjI2NjY2IC0xMS43MzMzMiwwIC0yMS45NzMzLC00LjI2NjY2IC0xMC4yMzk5OCwtNC40OCAtMTcuOTE5OTcsLTEyLjE1OTk5IC03LjY3OTk5LC03LjY3OTk4IC0xMi4xNTk5OCwtMTcuOTE5OTcgLTQuMjY2NjYsLTEwLjIzOTk4IC00LjI2NjY2LC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMjY2NjYsLTIxLjk3MzI5OCA0LjQ3OTk5LC0xMC4yMzk5ODQgMTIuMTU5OTgsLTE3LjkxOTk3MSA3LjY3OTk5LC03LjY3OTk4OCAxNy45MTk5NywtMTEuOTQ2NjQ4IDEwLjIzOTk4LC00LjQ3OTk5MyAyMS45NzMzLC00LjQ3OTk5MyAxMS43MzMzMSwwIDIxLjk3MzMsNC40Nzk5OTMgMTAuMjM5OTgsNC4yNjY2NiAxNy45MTk5NywxMS45NDY2NDggbCAtMTguMTMzMzEsMTguMTMzMzA0IHEgLTguOTU5OTgsLTguOTU5OTg2IC0yMS43NTk5NiwtOC45NTk5ODYgLTEyLjM3MzMyLDAgLTIxLjc1OTk3LDguOTU5OTg2IC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjQ4LDQuNDc5OTkgMTAuMDI2NjUsNi44MjY2NiA1LjU0NjY2LDIuMTMzMzMgMTEuNzMzMzIsMi4xMzMzMyAxMy4wMTMzMSwwIDIxLjc1OTk2LC04Ljk1OTk5IHogTSA0OTguMDkxMTQsNDUuNjUzMjY3IFYgMTUyLjUzMzEgSCA0NzIuNDkxMTggViA5OS4xOTk4NDggcSAwLC0xMi43OTk5NzkgLTguOTU5OTgsLTIxLjc1OTk2NSAtOC45NTk5OSwtOC45NTk5ODYgLTIxLjc1OTk3LC04Ljk1OTk4NiAtNi4xODY2NiwwIC0xMS45NDY2NSwyLjM0NjY2MyAtNS41NDY2NSwyLjM0NjY2MyAtOS44MTMzMSw2LjYxMzMyMyAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC4yNjY2Niw0LjQ3OTk5IDkuODEzMzEsNi44MjY2NiA1Ljc1OTk5LDIuMTMzMzMgMTEuOTQ2NjUsMi4xMzMzMyA2LjM5OTk5LDAgMTEuNTE5OTgsLTIuMTMzMzMgbCA5LjE3MzMyLDIyLjgyNjYzIHEgLTkuODEzMzIsNC45MDY2NiAtMjIuODI2NjMsNC45MDY2NiAtMTEuNzMzMzEsMCAtMjEuNzU5OTYsLTQuMjY2NjYgLTkuODEzMzIsLTQuNDggLTE3LjA2NjY0LC0xMi4xNTk5OSAtNy4yNTMzMiwtNy42Nzk5OCAtMTEuMzA2NjUsLTE3LjkxOTk3IC00LjA1MzMzLC0xMC4yMzk5OCAtNC4wNTMzMywtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjA1MzMzLC0yMS45NzMyOTggNC4wNTMzMywtMTAuMjM5OTg0IDExLjMwNjY1LC0xNy45MTk5NzEgNy4yNTMzMiwtNy42Nzk5ODggMTcuMDY2NjQsLTExLjk0NjY0OCAxMC4wMjY2NSwtNC40Nzk5OTMgMjEuNzU5OTYsLTQuNDc5OTkzIDEwLjQ1MzMyLDAgMTguNTU5OTcsMy4xOTk5OTUgOC4xMDY2NiwzLjE5OTk5NSAxNC4yOTMzMSw4LjEwNjY1NCB2IC04LjUzMzMyIHogTSA1MzguNjI0NDYsMTUyLjUzMzEgSCA1MTMuMDI0NSBWIDMuMjAwMDAxNSBoIDI1LjU5OTk2IFYgMTUyLjUzMzEgWiBtIDEyMC4xMDY1OSwtNDIuNjY2NiBxIDAsMTAuNDUzMzEgLTMuNDEzMzMsMTguOTg2NjMgLTMuNDEzMzIsOC4zMTk5OSAtOS44MTMzMSwxNC4yOTMzMSAtNi4xODY2Niw1Ljc2IC0xNS4xNDY2NSw4Ljk1OTk5IC04Ljk1OTk4LDMuMiAtMjAuMDUzMywzLjIgLTE3LjcwNjY0LDAgLTMxLjU3MzI4LC01LjU0NjY2IC0xMy44NjY2NCwtNS43NTk5OSAtMjIuODI2NjMsLTEzLjAxMzMyIGwgMTcuNzA2NjQsLTE3LjcwNjYzIHEgNy4wMzk5OSw2LjM5OTk5IDE1Ljc4NjY0LDkuODEzMzEgNS4zMzMzMiwyLjEzMzMzIDEwLjAyNjY1LDIuNzczMzMgNC42OTMzMywwLjY0IDcuNjc5OTksMC42NCA1LjU0NjY2LDAgMTAuMDI2NjUsLTEuMjggNC42OTMzMiwtMS40OTMzMyA4LjEwNjY1LC0zLjgzOTk5IDcuMjUzMzIsLTUuMzMzMzIgNy4yNTMzMiwtMTQuMDc5OTggMCwtNS4zMzMzMiAtMy44Mzk5OSwtOS41OTk5OCAtMi45ODY2NiwtMy40MTMzMyAtNy42Nzk5OSwtNS41NDY2NiAtMy44Mzk5OSwtMi4xMzMzMyAtOC4xMDY2NSwtMy40MTMzMjggLTQuMjY2NjYsLTEuMjc5OTk4IC03LjY3OTk5LC0yLjM0NjY2MyAtMS4wNjY2NiwtMC40MjY2NjYgLTEuOTIsLTAuNDI2NjY2IC0wLjg1MzMzLC0wLjIxMzMzMyAtMS40OTMzMywtMC42Mzk5OTkgLTAuNDI2NjYsMCAtMS4yNzk5OSwtMC40MjY2NjYgLTQuNDgsLTEuMjc5OTk3IC0xMy4wMTMzMiwtNC40Nzk5OTIgLTguMzE5OTgsLTMuMTk5OTk1IC0xNi42Mzk5NywtOC43NDY2NTMgLTE5LjQxMzMsLTEzLjAxMzMxMyAtMTkuNDEzMywtMzEuOTk5OTQ5IDAsLTEyLjU4NjY0NyA0LjI2NjY2LC0yMS4xMTk5NjYgNC40Nzk5OSwtOC43NDY2NTMgMTEuNTE5OTgsLTE0LjA3OTk3OCA3LjAzOTk5LC01LjU0NjY1NzUgMTUuNTczMzEsLTcuODkzMzIwNCBRIDU5MS41MzExNiw2LjYzNzU3MzNlLTYgNTk5Ljg1MTE1LDYuNjM3NTczM2UtNiBxIDE1LjM1OTk3LDAgMjUuODEzMjksMy42MjY2NjA4NjI0MjY3IDEwLjQ1MzMyLDMuNjI2NjYwOSAxNi42Mzk5Nyw3LjI1MzMyMTUgMy4yLDEuOTE5OTk3IDUuMzMzMzMsMy44Mzk5OTQgMi4zNDY2NiwxLjcwNjY2NCA0LjA1MzMyLDMuMTk5OTk1IGwgLTE4LjEzMzMsMTguMzQ2NjM3IHEgLTUuNzU5OTksLTUuNzU5OTkgLTExLjczMzMyLC04Ljc0NjY1MiAtOC45NTk5OCwtNC4yNjY2NiAtMTguNzczMywtNC4yNjY2NiAtNC4yNjY2NiwwIC04LjUzMzMyLDEuMDY2NjY1IC00LjI2NjY2LDEuMDY2NjY1IC03LjQ2NjY1LDIuNzczMzI5IC05LjM4NjY1LDUuNzU5OTkgLTkuMzg2NjUsMTUuMTQ2NjQyIDAsNS43NTk5OTEgMy44Mzk5OSw5LjgxMzMxOCAyLjc3MzMzLDMuMTk5OTk1IDcuNjc5OTksNS43NTk5OTEgNC4wNTMzMiwyLjEzMzMzIDguNTMzMzIsMy40MTMzMjggNC40Nzk5OSwxLjI3OTk5NyA4LjMxOTk4LDIuMzQ2NjYyIGwgMi41NiwwLjYzOTk5OSBxIDEuMDY2NjYsMC40MjY2NjYgNC4wNTMzMywxLjI3OTk5OCAyLjk4NjY2LDAuODUzMzMyIDcuMDM5OTgsMi41NTk5OTYgNC4wNTMzMywxLjcwNjY2NCA4Ljc0NjY2LDQuMDUzMzI3IDQuOTA2NjYsMi4zNDY2NjMgOS41OTk5OCw1LjU0NjY1OCAyMC42OTMzLDEzLjY1MzMxMSAyMC42OTMzLDMyLjIxMzI4NCB6IG0gNjkuMTE5NzcsNDIuNjY2NiBoIC0yMy40NjY2MyBxIC03LjI1MzMyLDAgLTEzLjY1MzMxLC0yLjc3MzMzIC02LjM5OTk5LC0yLjc3MzMzIC0xMS4wOTMzMiwtNy40NjY2NiAtNC42OTMzMiwtNC45MDY2NiAtNy40NjY2NSwtMTEuMzA2NjUgLTIuNzczMzMsLTYuMzk5OTkgLTIuNzczMzMsLTEzLjY1MzMxIFYgMjQuMzE5OTY4IGwgMjUuNTk5OTYsLTYuMzk5OTkgViA1OC42NjY1OCBoIDE0LjkzMzMxIGwgNi4zOTk5OSwyNS41OTk5NTkgaCAtMjEuMzMzMyB2IDMzLjA2NjYxMSBxIDAsNC4wNTMzMyAyLjc3MzMzLDYuODI2NjYgMi43NzMzMywyLjc3MzMzIDYuNjEzMzIsMi43NzMzMyBoIDE3LjA2NjY0IHogbSAxMTEuMzYsLTEwNi44Nzk4MzMgViAxNTIuNTMzMSBIIDgxMy42MTA4NiBWIDk5LjE5OTg0OCBxIDAsLTEyLjc5OTk3OSAtOC45NTk5OSwtMjEuNzU5OTY1IC04Ljk1OTk4LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC02LjE4NjY2LDAgLTExLjk0NjY1LDIuMzQ2NjYzIC01LjU0NjY2LDIuMzQ2NjYzIC05LjgxMzMyLDYuNjEzMzIzIC04Ljk1OTk4LDguOTU5OTg2IC04Ljk1OTk4LDIxLjc1OTk2NSAwLDEyLjU4NjY0MiA4Ljk1OTk4LDIxLjU0NjYzMiA0LjI2NjY2LDQuNDc5OTkgOS44MTMzMiw2LjgyNjY2IDUuNzU5OTksMi4xMzMzMyAxMS45NDY2NSwyLjEzMzMzIDYuMzk5OTksMCAxMS41MTk5OCwtMi4xMzMzMyBsIDkuMTczMzIsMjIuODI2NjMgcSAtOS44MTMzMiw0LjkwNjY2IC0yMi44MjY2Myw0LjkwNjY2IC0xMS43MzMzMiwwIC0yMS43NTk5NywtNC4yNjY2NiAtOS44MTMzMiwtNC40OCAtMTcuMDY2NjQsLTEyLjE1OTk5IC03LjI1MzMyLC03LjY3OTk4IC0xMS4zMDY2NSwtMTcuOTE5OTcgLTQuMDUzMzIsLTEwLjIzOTk4IC00LjA1MzMyLC0yMS43NTk5NjIgMCwtMTEuNzMzMzE0IDQuMDUzMzIsLTIxLjk3MzI5OCA0LjA1MzMzLC0xMC4yMzk5ODQgMTEuMzA2NjUsLTE3LjkxOTk3MSA3LjI1MzMyLC03LjY3OTk4OCAxNy4wNjY2NCwtMTEuOTQ2NjQ4IDEwLjAyNjY1LC00LjQ3OTk5MyAyMS43NTk5NywtNC40Nzk5OTMgMTAuNDUzMzEsMCAxOC41NTk5NywzLjE5OTk5NSA4LjEwNjY1LDMuMTk5OTk1IDE0LjI5MzMxLDguMTA2NjU0IHYgLTguNTMzMzIgeiBtIDEwNy45NDY1Miw5My4yMjY1MTMgcSAtNy42Nzk5OCw3LjY3OTk5IC0xNy45MTk5NywxMi4xNTk5OSAtMTAuMjM5OTgsNC4yNjY2NiAtMjEuOTczMjksNC4yNjY2NiAtMTEuNzMzMzIsMCAtMjEuOTczMywtNC4yNjY2NiAtMTAuMjM5OTksLTQuNDggLTE3LjkxOTk3LC0xMi4xNTk5OSAtNy42Nzk5OSwtNy42Nzk5OCAtMTIuMTU5OTgsLTE3LjkxOTk3IC00LjI2NjY2LC0xMC4yMzk5OCAtNC4yNjY2NiwtMjEuNzU5OTYyIDAsLTExLjczMzMxNCA0LjI2NjY2LC0yMS45NzMyOTggNC40Nzk5OSwtMTAuMjM5OTg0IDEyLjE1OTk4LC0xNy45MTk5NzEgNy42Nzk5OCwtNy42Nzk5ODggMTcuOTE5OTcsLTExLjk0NjY0OCAxMC4yMzk5OCwtNC40Nzk5OTMgMjEuOTczMywtNC40Nzk5OTMgMTEuNzMzMzEsMCAyMS45NzMyOSw0LjQ3OTk5MyAxMC4yMzk5OSw0LjI2NjY2IDE3LjkxOTk3LDExLjk0NjY0OCBsIC0xOC4xMzMzLDE4LjEzMzMwNCBxIC04Ljk1OTk5LC04Ljk1OTk4NiAtMjEuNzU5OTYsLTguOTU5OTg2IC0xMi4zNzMzMiwwIC0yMS43NTk5Nyw4Ljk1OTk4NiAtOC45NTk5OSw4Ljk1OTk4NiAtOC45NTk5OSwyMS43NTk5NjUgMCwxMi41ODY2NDIgOC45NTk5OSwyMS41NDY2MzIgNC40Nzk5OSw0LjQ3OTk5IDEwLjAyNjY1LDYuODI2NjYgNS41NDY2NiwyLjEzMzMzIDExLjczMzMyLDIuMTMzMzMgMTMuMDEzMzEsMCAyMS43NTk5NiwtOC45NTk5OSB6IE0gMTA1MS42OTA3LDQ1Ljg2NjYgOTk4LjM1NzQsOTkuMTk5ODQ4IDEwNTEuNjkwNywxNTIuNTMzMSBoIC0zNi4wNTMzIEwgOTgwLjIyNDEsMTE3LjExOTgyIFYgMTUyLjUzMzEgSCA5NTQuNjI0MTQgViAzLjIwMDAwMTUgSCA5ODAuMjI0MSBWIDgxLjA2NjU0NCBMIDEwMTUuNDI0LDQ1Ljg2NjYgaCAzNi4yNjY3IHoiLz48L3N2Zz4=", ta = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojNTVhYmU1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NWFiZTU7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2Y3ODQ3MiIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNmNzg0NzIiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==", na = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0Ni45NTU0ODJtbSIgaGVpZ2h0PSIzOS44NDUzMW1tIiB2aWV3Qm94PSIwIDAgNDYuOTU1NDgyIDM5Ljg0NTMxIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTYyNSwtMTI4LjU4NzUpIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjIzNDc3NzQxLDAsMCwwLjIzNTc5MzE4LDY5LjY2MDM5Miw5NC42Njg4MzgpIj48cGF0aCBzdHlsZT0iZmlsbDojMjQ1YjhmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDowLjM3Mjk2MiIgZD0ibSAxNjUuNzQzNjksMzEyLjM0NTE0IGMgLTMuNjU5MDQsLTAuOTU4NjEgLTYuODkxMzEsLTMuMzUzNDggLTkuMjE0OTQsLTYuODI3NTkgLTEuOTEyMjYsLTIuODU5MDggLTIuMzk3MDUsLTQuNTY5NzEgLTIuMzk3MDUsLTguNDU4MzYgMCwtMy45OTI1NCAwLjA4MjQsLTQuMjc1NyA0LjIzMDEyLC0xNC41NDU1MyA0LjAwOTIzLC05LjkyNjgxIDExLjc0NTk3LC0yOS42MDgwNCAxNC4xNzI1NCwtMzYuMDUzMDIgMS4wNTU1LC0yLjgwMzQ0IDQuNjM1NzksLTEyLjA5MDIgNy45NTYxOSwtMjAuNjM3MjUgMy4zMjA0LC04LjU0NzA2IDkuNDcyNjUsLTI0LjQ5MTIgMTMuNjcxNjgsLTM1LjQzMTQzIDkuNDExNjMsLTI0LjUyMTI1IDEyLjE1MTI0LC0zMS4zOTYxNCAxNC4xOTIyMiwtMzUuNjE0NTUgMS4zMzIyOSwtMi43NTM2NCAxLjg3ODY3LC0zLjU5MjU4IDMuMzQ1NDYsLTUuMTM2NzIgMS45NjgyMiwtMi4wNzIwMyA0LjA5ODQsLTMuNTYyNTMgNi40NjY4NywtNC41MjQ5MyAxLjI3MTM4LC0wLjUxNjYgMi4yNTc2MywtMC42OTMwMiA0LjgyNjc5LC0wLjg2MzQgNS4yMTgzLC0wLjM0NjA3IDI0LjU3NDYyLC0wLjU1NDU4IDI0Ljk4NTA4LC0wLjI2OTE0IDAuNDM3OTcsMC4zMDQ1NiAxLjEzMTMxLC0xLjUwMDIxIC0xNS4xNTQxMiwzOS40NDY3OCAtMjAuNjg4NDIsNTIuMDE3NTcgLTI4Ljk2MTg1LDcyLjk4MjY1IC0zNi43NTE4MSw5My4xMzAwNCAtOC40MDM1NiwyMS43MzQzNCAtOS4zOTQ5NSwyNC4yMDc2NCAtMTAuNzYzMTYsMjYuODUxNjUgLTIuMzU0NSw0LjU1IC02LjM4MjQsNy43ODMzMSAtMTEuMjc2NjEsOS4wNTIwNyAtMi4wNzI1OSwwLjUzNzI5IC02LjAwMDE1LDAuNDgxMDkgLTguMjg5MjYsLTAuMTE4NjIgeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMyNDViOGY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjAuMzcyOTYyIiBkPSJtIDEyMi40OTIyLDMxMi41ODkxNiBjIC00LjA3OTU2LC0wLjczMjU4IC04LjY1MTIzLC0zLjkzNDEgLTExLjIzMjU4LC03Ljg2NjE2IC0wLjczMDA0LC0xLjExMjAzIC0xLjg1NDU5LC0zLjQ4MzI2IC0yLjg0MzA5LC01Ljk5NDk2IC0wLjg5OTQzLC0yLjI4NTQgLTQuNzYyODcsLTEyLjE1NTMgLTguNTg1NDA5LC0yMS45MzMxMyAtMy44MjI1NCwtOS43Nzc4MyAtOC40NzkwNzIsLTIxLjYzODAzIC0xMC4zNDc4NTIsLTI2LjM1NjAxIC0xLjg2ODc4LC00LjcxNzk3IC03LjQwNDk2OCwtMTguODE1OTUgLTEyLjMwMjY0NiwtMzEuMzI4ODQgLTQuODk3NjgxLC0xMi41MTI4OCAtMTAuODYxOTIzLC0yNy43Mjk3NSAtMTMuMjUzODc2LC0zMy44MTUyNSAtMi4zOTE5NTMsLTYuMDg1NSAtNS42NjUyMTYsLTE0LjQ3NzE1IC03LjI3MzkxOCwtMTguNjQ4MTEgLTEuNjA4Njk4LC00LjE3MDk3IC00LjIzNTk1LC0xMC44NDgyNiAtNS44MzgzMzQsLTE0LjgzODQzIC0yLjA3Mjc3OSwtNS4xNjE1MyAtMi44MzY1MDksLTcuMzMxNzcgLTIuNjQ2ODY5LC03LjUyMTQgMC4zNDc5MDMsLTAuMzQ3OTEgMjAuODI4ODg3LC0wLjM1OTE3IDI0LjczMjg3NCwtMC4wMTM2IDQuNjQ5MjU2LDAuNDExNTQgNy4wMTI4NDgsMS41MjgxMSAxMC41MTc1NDYsNC45Njg1MiAxLjQ1MDgxOSwxLjQyNDIxIDIuMzk4LDIuNjAyMTMgMi45MDQzNzUsMy42MTE5IDEuNzk4NjkzLDMuNTg2NzggOC40MTgxMDMsMjAuMDI4NjkgMTguNjY2Mjc5LDQ2LjM2NTA2IDMuNjk4MzksOS41MDQzMiAxMS4xNjA2NywyOC40MTM1MSAxNi41ODI4NSw0Mi4wMjA0MiAxNC42MzQzMywzNi43MjQ2NyAxOC43NDc1Myw0Ny4xMzc2NSAxOS41Mzk3NSw0OS40NjY4NyAyLjIyOTgxLDYuNTU1ODkgMS4wNTUzMywxMi43MDIxNCAtMy4zMDQyNiwxNy4yOTE3NiAtMy4xMDM1OSwzLjI2NzM2IC02LjIyMDQzLDQuNjA4NDUgLTExLjAyMTc4LDQuNzQyNCAtMS42NDMzMSwwLjA0NTggLTMuNTc1MTgsLTAuMDIyMSAtNC4yOTMwNiwtMC4xNTEwMyB6Ii8+PHJlY3Qgc3R5bGU9ImZpbGw6I2VjNjM0ZCIgd2lkdGg9IjExLjI2OTU0IiBoZWlnaHQ9IjQyLjA5NzYyMiIgeD0iMTY0Ljg4MDE0IiB5PSIxNzYuMjU5MDkiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS42MjE1NiIgaGVpZ2h0PSI4Ny4wMzg2MDUiIHg9IjE0Mi4xNTg2OCIgeT0iMTUzLjc4ODYiIHJ5PSI1LjYxMDQ5NiIvPjxyZWN0IHN0eWxlPSJmaWxsOiNlYzYzNGQiIHdpZHRoPSIxMS4yNjk1NCIgaGVpZ2h0PSI0Mi4wOTc2MjIiIHg9IjExOS43ODkyNCIgeT0iMTc2LjI1OTA5IiByeT0iNS42MTA0OTYiLz48L2c+PC9nPjwvc3ZnPg==";
9
9
  function ra({ size: t = 16, sw: e = 1.5, children: n, style: r, ...s }) {
10
10
  return /* @__PURE__ */ a("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "none", stroke: "currentColor", strokeWidth: e, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", style: { flex: "none", ...r }, ...s, children: n });
11
11
  }
@@ -54,7 +54,7 @@ const K = {
54
54
  function ue({ d: t, ...e }) {
55
55
  return /* @__PURE__ */ a(ra, { ...e, children: (Array.isArray(t) ? t : [t]).map((n) => /* @__PURE__ */ a("path", { d: n }, n)) });
56
56
  }
57
- function Fs({ size: t = 13 }) {
57
+ function Ws({ size: t = 13 }) {
58
58
  return /* @__PURE__ */ a("svg", { viewBox: "0 0 24 24", width: t, height: t, fill: "currentColor", style: { marginLeft: 2 }, "aria-hidden": "true", children: /* @__PURE__ */ a("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" }) });
59
59
  }
60
60
  function ct({ size: t = 15, color: e = "currentColor", track: n = "rgba(127,127,127,.35)", sw: r }) {
@@ -84,18 +84,18 @@ function sa({ size: t = 12 }) {
84
84
  }
85
85
  function Vt({ dark: t, height: e = 20, link: n = !0 }) {
86
86
  const r = /* @__PURE__ */ a("img", { src: t ? Xi : ea, alt: "VocalStack", decoding: "sync", style: { height: e, width: "auto", display: "block" } });
87
- return n ? /* @__PURE__ */ a("a", { href: Vs, style: { display: "block" }, children: r }) : r;
87
+ return n ? /* @__PURE__ */ a("a", { href: Fs, style: { display: "block" }, children: r }) : r;
88
88
  }
89
- function Ws({ dark: t, size: e = 30 }) {
89
+ function Gs({ dark: t, size: e = 30 }) {
90
90
  return /* @__PURE__ */ a("img", { src: t ? ta : na, alt: "VocalStack", style: { width: e, height: Math.round(e * 26 / 30 * 100) / 100, display: "block" } });
91
91
  }
92
- function ys({ children: t, panel: e, inset: n, className: r = "", style: s }) {
92
+ function Ts({ children: t, panel: e, inset: n, className: r = "", style: s }) {
93
93
  return /* @__PURE__ */ a("div", { className: `vs-card${e ? " panel" : ""}${n ? " vs-card--inset" : ""} ${r}`, style: s, children: t });
94
94
  }
95
95
  function Pt({ checked: t, onChange: e, label: n, disabled: r }) {
96
96
  return /* @__PURE__ */ a("button", { type: "button", role: "switch", "aria-checked": t, "aria-label": n, className: "vs-toggle", disabled: r, onClick: () => e(!t), children: /* @__PURE__ */ a("span", { className: "vs-toggle__knob" }) });
97
97
  }
98
- function Ts({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill: i }) {
98
+ function Ls({ value: t, onChange: e, options: n, size: r, bordered: s = !0, fill: i }) {
99
99
  const o = z(null), [l, c] = O(null), u = Math.max(0, n.findIndex((d) => d.value === t));
100
100
  return mn(() => {
101
101
  const d = o.current;
@@ -210,15 +210,15 @@ function Nn({ open: t, onClose: e, title: n, titleNode: r, note: s, doneLabel: i
210
210
  /* @__PURE__ */ a("div", { className: "vs-sheet__body", children: o })
211
211
  ] }) }) : null;
212
212
  }
213
- $s(0);
213
+ Bs(0);
214
214
  function er({ children: t, style: e, className: n }) {
215
215
  return /* @__PURE__ */ a("div", { className: n ? `eyebrow ${n}` : "eyebrow", style: e, children: t });
216
216
  }
217
217
  let Mn = null;
218
- function Tc(t) {
218
+ function Lc(t) {
219
219
  Mn = t;
220
220
  }
221
- function Gs(t) {
221
+ function Zs(t) {
222
222
  Mn == null || Mn(t);
223
223
  }
224
224
  function yn() {
@@ -251,7 +251,7 @@ function da(t, e, n = {}) {
251
251
  const r = new URLSearchParams({ kind: "delivery", format: yn() });
252
252
  return n.accessToken && r.set("access_token", n.accessToken), n.listenerToken && r.set("listenerToken", n.listenerToken), n.shareCode && r.set("shareCode", n.shareCode), `${t}/v1/recordings/${e}/audio?${r}`;
253
253
  }
254
- function Ls(t, e, n = {}, r = "background") {
254
+ function ws(t, e, n = {}, r = "background") {
255
255
  const s = new URLSearchParams({ kind: r, format: yn() });
256
256
  return n.accessToken && s.set("access_token", n.accessToken), n.listenerToken && s.set("listenerToken", n.listenerToken), n.shareCode && s.set("shareCode", n.shareCode), `${t}/v1/recordings/${e}/audio?${s}`;
257
257
  }
@@ -268,11 +268,11 @@ function ga(t, e, n, r, s, i) {
268
268
  }
269
269
  function ha(t, e = !0) {
270
270
  const n = (t == null ? void 0 : t.code) ?? 0, r = n === 2 ? "the download failed" : n === 3 ? "this browser could not decode it" : n === 4 ? "the file is not available, or this browser cannot play it" : n === 1 ? "the load was stopped" : "something went wrong";
271
- return e && Zs(t), `The audio could not be played: ${r}.`;
271
+ return e && qs(t), `The audio could not be played: ${r}.`;
272
272
  }
273
- function Zs(t) {
273
+ function qs(t) {
274
274
  const e = (t == null ? void 0 : t.code) ?? 0;
275
- e !== 1 && Gs(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
275
+ e !== 1 && Zs(new Error(`media error ${e}${t != null && t.message ? `: ${t.message}` : ""}`));
276
276
  }
277
277
  const fa = 3e3;
278
278
  function Na(t, e, n) {
@@ -375,13 +375,13 @@ class pa {
375
375
  }).catch(() => r(n.signal.aborted ? null : { state: "failed", at: this.now() }));
376
376
  }
377
377
  }
378
- const qs = { video: !1 };
379
- function Ks(t) {
380
- if (!qs.video) return new Audio(t);
378
+ const Ks = { video: !1 };
379
+ function Js(t) {
380
+ if (!Ks.video) return new Audio(t);
381
381
  const e = document.createElement("video");
382
382
  return e.playsInline = !0, t && (e.src = t), e;
383
383
  }
384
- class Js extends Error {
384
+ class Xs extends Error {
385
385
  constructor() {
386
386
  super("The voice did not start in time."), this.name = "VoiceNotStarted";
387
387
  }
@@ -784,7 +784,7 @@ const Xe = class Xe {
784
784
  }, i);
785
785
  return;
786
786
  }
787
- this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new Js()), this.onSentence(e);
787
+ this.startingSince.delete(e), this.playing = !1, this.onStarting(null), this.onWaiting(null), this.onError(new Xs()), this.onSentence(e);
788
788
  return;
789
789
  }
790
790
  const o = (this.retries.get(e) ?? 0) + 1;
@@ -812,7 +812,7 @@ const Xe = class Xe {
812
812
  }
813
813
  element() {
814
814
  if (this.el) return this.el;
815
- const e = Ks();
815
+ const e = Js();
816
816
  e.preload = "auto";
817
817
  const n = e;
818
818
  return n.dataset && (n.dataset.vsVoice = "1"), e.playsInline = !0, e.onplaying = () => {
@@ -866,7 +866,7 @@ const Xe = class Xe {
866
866
  };
867
867
  he(Xe, "WAIT_MS", 15e3), he(Xe, "START_WAIT_MS", 4e3), he(Xe, "COMING_MS", 12e4), he(Xe, "SKEW_LINES", 3), he(Xe, "RETRIES", 4), he(Xe, "RETRY_MS", 1200), he(Xe, "STARTING_MS", 3e5);
868
868
  let tr = Xe;
869
- function Xs(t, e) {
869
+ function ei(t, e) {
870
870
  return e == null ? t.find((n) => !n.voiceKey) ?? null : t.find((n) => n.voiceKey === e) ?? t.find((n) => !n.voiceKey && n.voice === e) ?? null;
871
871
  }
872
872
  function ma(t, e, n, r = {}, s) {
@@ -892,7 +892,7 @@ function ma(t, e, n, r = {}, s) {
892
892
  });
893
893
  });
894
894
  }
895
- function ei(t, e) {
895
+ function ti(t, e) {
896
896
  const n = e.words;
897
897
  if (n && n.length === t.length && t.length > 0) {
898
898
  let r = 0;
@@ -919,7 +919,7 @@ function sr(t, e) {
919
919
  return e;
920
920
  }
921
921
  }
922
- function ti(t, e) {
922
+ function ni(t, e) {
923
923
  try {
924
924
  e == null ? localStorage.removeItem(t) : localStorage.setItem(t, JSON.stringify(e));
925
925
  } catch {
@@ -934,12 +934,12 @@ function gr(t, e) {
934
934
  rr.delete(s), window.removeEventListener("storage", s);
935
935
  };
936
936
  }, [t]), [n, (s) => {
937
- r(s), ti(t, s);
937
+ r(s), ni(t, s);
938
938
  }];
939
939
  }
940
- function ws(t) {
940
+ function ks(t) {
941
941
  const e = sr(nr, []);
942
- ti(nr, Array.isArray(e) ? e.filter((n) => n !== t) : []);
942
+ ni(nr, Array.isArray(e) ? e.filter((n) => n !== t) : []);
943
943
  }
944
944
  function Ta() {
945
945
  const [t, e] = gr(nr, []), n = Array.isArray(t) ? t : [];
@@ -961,21 +961,21 @@ function va(t) {
961
961
  const [e, n] = gr(t === "ga" ? "vs.colW.ga" : "vs.colW", null);
962
962
  return [typeof e == "number" && e > 0 ? e : t === "ga" ? 560 : ka, n];
963
963
  }
964
- function ni({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPlaceholder: i = "Search languages", none: o, pinned: l = [], recent: c = [], requireVoice: u, keepOpen: d, busy: g }) {
964
+ function ri({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPlaceholder: i = "Search languages", none: o, pinned: l = [], recent: c = [], requireVoice: u, keepOpen: d, busy: g }) {
965
965
  const [M, p] = O(""), [y, j] = O(!1), [T, N] = O(null);
966
966
  E(() => {
967
967
  t && (p(""), j(!1), N(null));
968
968
  }, [t]);
969
- const h = Ie(() => {
969
+ const h = ze(() => {
970
970
  const b = M.trim().toLowerCase();
971
971
  return [...b ? s.filter((v) => v.label.toLowerCase().includes(b) || v.native.toLowerCase().includes(b) || v.code.toLowerCase().includes(b)) : s].sort((v, S) => {
972
972
  const ne = l.indexOf(v.code), $ = l.indexOf(S.code);
973
973
  return ne !== -1 || $ !== -1 ? (ne === -1 ? 999 : ne) - ($ === -1 ? 999 : $) : v.label.localeCompare(S.label);
974
974
  });
975
- }, [s, M, l]), C = Ie(
975
+ }, [s, M, l]), C = ze(
976
976
  () => M ? [] : c.map((b) => h.find((Q) => Q.code === b)).filter((b) => !!b).sort((b, Q) => b.label.localeCompare(Q.label)),
977
977
  [c, h, M]
978
- ), D = Ie(() => C.length ? h.filter((b) => !C.some((Q) => Q.code === b.code)) : h, [h, C]), k = y || M ? D : D.slice(0, 12), te = D.length - k.length, R = (b, Q = !1) => {
978
+ ), D = ze(() => C.length ? h.filter((b) => !C.some((Q) => Q.code === b.code)) : h, [h, C]), k = y || M ? D : D.slice(0, 12), te = D.length - k.length, R = (b, Q = !1) => {
979
979
  const L = !!u && !b.voice;
980
980
  return /* @__PURE__ */ f(
981
981
  "button",
@@ -997,9 +997,9 @@ function ni({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
997
997
  /* @__PURE__ */ a("div", { className: "vs-picker__native", children: b.native })
998
998
  ] }),
999
999
  /* @__PURE__ */ a("span", { className: "vs-picker__slot", children: Q && /* @__PURE__ */ a("span", { className: "vs-picker__forget", role: "button", tabIndex: 0, title: `Remove ${b.label} from recent`, "aria-label": `Remove ${b.label} from recent`, onClick: (v) => {
1000
- v.stopPropagation(), ws(b.code);
1000
+ v.stopPropagation(), ks(b.code);
1001
1001
  }, onKeyDown: (v) => {
1002
- (v.key === "Enter" || v.key === " ") && (v.preventDefault(), v.stopPropagation(), ws(b.code));
1002
+ (v.key === "Enter" || v.key === " ") && (v.preventDefault(), v.stopPropagation(), ks(b.code));
1003
1003
  }, children: /* @__PURE__ */ a(ue, { d: K.close, size: 16 }) }) }),
1004
1004
  /* @__PURE__ */ a("span", { className: `vs-picker__slot${L ? " vs-picker__slot--wide" : ""}`, title: b.voice ? "Voice available" : L ? "No voice speaks this language yet" : void 0, children: L ? T === b.code && /* @__PURE__ */ a("span", { className: "vs-picker__off", children: "UNAVAILABLE" }) : b.voice && /* @__PURE__ */ a(ue, { d: K.headphones, size: 16 }) }),
1005
1005
  /* @__PURE__ */ a("span", { className: "vs-picker__check", children: n === b.code && (g === b.code ? /* @__PURE__ */ a(ct, { size: 15, color: "var(--vs-link-hover)", track: "var(--vs-border)" }) : /* @__PURE__ */ a(ue, { d: K.check, size: 16, sw: 2.2 })) })
@@ -1043,15 +1043,15 @@ function ni({ open: t, onClose: e, value: n, onSelect: r, languages: s, searchPl
1043
1043
  return { search: X, list: I };
1044
1044
  }
1045
1045
  function ja({ open: t, onClose: e, title: n, note: r, sticky: s, ...i }) {
1046
- const { search: o, list: l } = ni({ ...i, open: t, onClose: e });
1046
+ const { search: o, list: l } = ri({ ...i, open: t, onClose: e });
1047
1047
  return /* @__PURE__ */ a(Nn, { open: t, onClose: e, title: n, note: r, drawer: !1, sticky: s, kind: "picker", header: o, children: l });
1048
1048
  }
1049
1049
  const za = 0.3;
1050
- function ks(t, e) {
1050
+ function vs(t, e) {
1051
1051
  t.muted = e.muted, Math.abs(t.currentTime - e.t) > za && (t.currentTime = Math.max(0, e.t)), e.playing ? t.paused && Promise.resolve(t.play()).catch(() => {
1052
1052
  }) : t.paused || t.pause();
1053
1053
  }
1054
- const vs = "Remove background sound", Ia = "Takes out everything that isn't speech: music, ambience and noise.";
1054
+ const js = "Remove background sound", Ia = "Takes out everything that isn't speech: music, ambience and noise.";
1055
1055
  function Oa(t) {
1056
1056
  const e = Math.max(0, Math.floor(t)), n = Math.floor(e / 3600), r = Math.floor(e % 3600 / 60), s = String(e % 60).padStart(2, "0");
1057
1057
  return n ? `${n}:${String(r).padStart(2, "0")}:${s}` : `${r}:${s}`;
@@ -1112,7 +1112,7 @@ async function Ua(t) {
1112
1112
  function Fn(t) {
1113
1113
  t && (t.pause(), t.removeAttribute("src"), t.load());
1114
1114
  }
1115
- function ri(t, e) {
1115
+ function si(t, e) {
1116
1116
  const [n, r] = O("off"), [s, i] = O([]), [o, l] = O(!1), c = z(null), u = z([null, null]), d = z([NaN, NaN]), g = z(0);
1117
1117
  return E(() => {
1118
1118
  if (i([]), l(!1), !t) {
@@ -1151,7 +1151,7 @@ function ri(t, e) {
1151
1151
  for (const N of u.current) N && !N.paused && N.pause();
1152
1152
  };
1153
1153
  if (n === "ready" && c.current) {
1154
- M(), ks(c.current, e), l(!0);
1154
+ M(), vs(c.current, e), l(!0);
1155
1155
  return;
1156
1156
  }
1157
1157
  const p = n === "making" ? Ya(s, e.t) : -1;
@@ -1166,20 +1166,20 @@ function ri(t, e) {
1166
1166
  }
1167
1167
  g.current = y.play;
1168
1168
  const j = u.current[y.play], T = u.current[1 - y.play];
1169
- T && !T.paused && T.pause(), ks(j, { ...e, t: e.t - s[p].startS }), l(!e.playing || j.readyState >= 3);
1169
+ T && !T.paused && T.pause(), vs(j, { ...e, t: e.t - s[p].startS }), l(!e.playing || j.readyState >= 3);
1170
1170
  }, [n, s, e.t, e.playing, e.muted]), { state: n, on: o, untilS: n === "ready" ? 1 / 0 : s.length ? s[s.length - 1].endS : 0 };
1171
1171
  }
1172
1172
  function Ra(t, e) {
1173
- return ri(t, e).state;
1173
+ return si(t, e).state;
1174
1174
  }
1175
1175
  const Pa = 0.5, Qa = 3;
1176
- function si(t, e) {
1176
+ function hr(t, e) {
1177
1177
  let n = -1;
1178
1178
  for (let r = 0; r < t.length && t[r].start <= e + 0.02; r++) n = r;
1179
1179
  return n;
1180
1180
  }
1181
1181
  function $a(t, e, n) {
1182
- const r = si(t, n);
1182
+ const r = hr(t, n);
1183
1183
  if (r < 0) return { kind: "none" };
1184
1184
  const s = t[r];
1185
1185
  if (n >= s.end) return { kind: "none" };
@@ -1196,16 +1196,23 @@ function $a(t, e, n) {
1196
1196
  }
1197
1197
  return { kind: "done", sid: s.sid };
1198
1198
  }
1199
- function Ba(t, e, n, r = Qa) {
1200
- const s = Math.max(0, si(t, n)), i = [];
1199
+ function Ba(t, e, n) {
1200
+ if (n == null) return !1;
1201
+ const r = hr(t, e);
1202
+ if (r < 0) return !1;
1203
+ const s = t[r];
1204
+ return e >= s.end ? s.sid === n : r > 0 && t[r - 1].sid === n && e - s.start < 1.5;
1205
+ }
1206
+ function Ha(t, e, n, r = Qa) {
1207
+ const s = Math.max(0, hr(t, n)), i = [];
1201
1208
  for (let o = s; o < t.length && o <= s + r; o++) {
1202
1209
  const l = (e.get(t[o].sid) ?? []).find((c) => c.part === 0);
1203
1210
  l && i.push(l.src);
1204
1211
  }
1205
1212
  return i;
1206
1213
  }
1207
- function Ha(t) {
1208
- const e = Ie(() => {
1214
+ function Va(t) {
1215
+ const e = ze(() => {
1209
1216
  const c = /* @__PURE__ */ new Map();
1210
1217
  for (const u of t.clips) c.set(u.sentenceId, [...c.get(u.sentenceId) ?? [], u]);
1211
1218
  return c;
@@ -1227,7 +1234,7 @@ function Ha(t) {
1227
1234
  }
1228
1235
  const c = $a(t.lines, e, t.t), u = c.kind === "missing" ? c.sid : null, d = c.kind === "none" ? null : c.sid;
1229
1236
  i((y) => y.missing === u && y.sid === d ? y : { missing: u, sid: d });
1230
- const g = new Set(Ba(t.lines, e, t.t));
1237
+ const g = new Set(Ha(t.lines, e, t.t));
1231
1238
  for (const y of g) o(y);
1232
1239
  const M = r.current;
1233
1240
  M && g.add(M.src);
@@ -1237,9 +1244,8 @@ function Ha(t) {
1237
1244
  return;
1238
1245
  }
1239
1246
  if (c.kind !== "play") {
1240
- const y = M && !M.el.paused && !M.el.ended;
1241
- if (y && c.kind !== "none") return;
1242
- y || (r.current = null);
1247
+ if (M && !M.el.paused && !M.el.ended && Ba(t.lines, t.t, M.sid)) return;
1248
+ M && M.el.pause(), r.current = null;
1243
1249
  return;
1244
1250
  }
1245
1251
  if (M && M.src === c.src) {
@@ -1259,12 +1265,12 @@ function Ha(t) {
1259
1265
  p.currentTime = c.offset;
1260
1266
  } catch {
1261
1267
  }
1262
- r.current = { src: c.src, el: p }, p.play().catch(() => {
1268
+ r.current = { src: c.src, sid: c.sid, el: p }, p.play().catch(() => {
1263
1269
  });
1264
1270
  }, [t.on, t.t, t.playing, t.muted, t.lines, e]), s;
1265
1271
  }
1266
- const js = ["play", "pause", "stop", "nexttrack", "previoustrack"];
1267
- function Va(t, e) {
1272
+ const zs = ["play", "pause", "stop", "nexttrack", "previoustrack"];
1273
+ function Fa(t, e) {
1268
1274
  var n, r;
1269
1275
  if (t === "play") {
1270
1276
  e.playing || e.toggle();
@@ -1280,31 +1286,31 @@ function Va(t, e) {
1280
1286
  }
1281
1287
  (r = e.prev) == null || r.call(e);
1282
1288
  }
1283
- function Fa(t, e) {
1284
- for (const n of js)
1289
+ function Wa(t, e) {
1290
+ for (const n of zs)
1285
1291
  try {
1286
1292
  t.setActionHandler(n, () => {
1287
1293
  const r = e();
1288
- r && Va(n, r);
1294
+ r && Fa(n, r);
1289
1295
  });
1290
1296
  } catch {
1291
1297
  }
1292
1298
  return () => {
1293
- for (const n of js)
1299
+ for (const n of zs)
1294
1300
  try {
1295
1301
  t.setActionHandler(n, null);
1296
1302
  } catch {
1297
1303
  }
1298
1304
  };
1299
1305
  }
1300
- function Wa(t, e) {
1306
+ function Ga(t, e) {
1301
1307
  const n = z(t);
1302
1308
  n.current = t;
1303
1309
  const r = !!t;
1304
1310
  E(() => {
1305
1311
  const i = typeof navigator < "u" ? navigator.mediaSession : void 0;
1306
1312
  if (!(!i || !r))
1307
- return Fa(i, () => n.current);
1313
+ return Wa(i, () => n.current);
1308
1314
  }, [r]);
1309
1315
  const s = !!(t != null && t.playing);
1310
1316
  E(() => {
@@ -1336,7 +1342,7 @@ function _t() {
1336
1342
  spans: []
1337
1343
  };
1338
1344
  }
1339
- function Ga(t, e) {
1345
+ function Za(t, e) {
1340
1346
  for (const r of t.spans) {
1341
1347
  const s = r.mediaEnd ?? 1 / 0;
1342
1348
  if (e < s || r.mediaEnd == null) return r.wallStart + Math.max(0, e - r.mediaStart);
@@ -1409,11 +1415,11 @@ function Wn(t, e) {
1409
1415
  ])
1410
1416
  ), n;
1411
1417
  }
1412
- function zs(t, e) {
1418
+ function Is(t, e) {
1413
1419
  const n = e ?? {};
1414
1420
  return !t || !Object.keys(t).length ? n : Object.keys(n).length ? { ...t, ...n } : t;
1415
1421
  }
1416
- function Za(t, e) {
1422
+ function qa(t, e) {
1417
1423
  const n = e.tail;
1418
1424
  if (!n || !Array.isArray(n.words) || n.replaced !== t.length || n.words.length !== t.length) return !1;
1419
1425
  let r = !1;
@@ -1430,7 +1436,7 @@ function Za(t, e) {
1430
1436
  }
1431
1437
  return r;
1432
1438
  }
1433
- function qa(t, e) {
1439
+ function Ka(t, e) {
1434
1440
  var n;
1435
1441
  switch (delete t.numbers, e.type) {
1436
1442
  case "transcript.committed": {
@@ -1450,7 +1456,7 @@ function qa(t, e) {
1450
1456
  confidence: r.confidence ?? (s == null ? void 0 : s.confidence),
1451
1457
  latencyS: r.latencyS,
1452
1458
  language: r.language,
1453
- translations: zs(s == null ? void 0 : s.translations, r.translations),
1459
+ translations: Is(s == null ? void 0 : s.translations, r.translations),
1454
1460
  scriptPos: r.scriptPos ?? (s == null ? void 0 : s.scriptPos),
1455
1461
  scriptFrom: r.scriptPos != null ? r.scriptFrom ?? void 0 : s == null ? void 0 : s.scriptFrom
1456
1462
  }), r.speakerName && (t.speakers[r.speaker] = r.speakerName);
@@ -1471,7 +1477,7 @@ function qa(t, e) {
1471
1477
  }
1472
1478
  case "transcript.amended": {
1473
1479
  const r = t.segments.get(e.seq);
1474
- if (r && r.corrected && Za(r.words, e)) {
1480
+ if (r && r.corrected && qa(r.words, e)) {
1475
1481
  r.text = e.text, r.words = Bt(e.seq, e.tail.words);
1476
1482
  break;
1477
1483
  }
@@ -1519,7 +1525,7 @@ function qa(t, e) {
1519
1525
  seqs: r.seqs,
1520
1526
  speaker: r.speaker,
1521
1527
  start: r.start,
1522
- wallStart: Ga(t, r.start),
1528
+ wallStart: Za(t, r.start),
1523
1529
  text: i ? s.text : r.text,
1524
1530
  status: r.status === "open" ? "open" : "closed",
1525
1531
  settled: !!r.settled,
@@ -1528,7 +1534,7 @@ function qa(t, e) {
1528
1534
  suppressed: !!r.suppressed,
1529
1535
  unclear: !!r.unclear,
1530
1536
  language: r.language,
1531
- translations: i ? s.translations : zs(s == null ? void 0 : s.translations, r.translations),
1537
+ translations: i ? s.translations : Is(s == null ? void 0 : s.translations, r.translations),
1532
1538
  provisional: !!r.provisional,
1533
1539
  translationLatencyS: r.translationLatencyS
1534
1540
  }), r.speakerName && (t.speakers[r.speaker] = r.speakerName), r.settled) for (const o of r.seqs) {
@@ -1571,7 +1577,7 @@ function qa(t, e) {
1571
1577
  }
1572
1578
  return typeof e.seq == "number" && (t.lastSeq = Math.max(t.lastSeq, e.seq)), t;
1573
1579
  }
1574
- function Ka(t) {
1580
+ function Ja(t) {
1575
1581
  const e = [], n = [...t.sentences.values()].sort((r, s) => r.start - s.start || (r.sentenceId ?? 0) - (s.sentenceId ?? 0));
1576
1582
  for (const r of n) {
1577
1583
  const s = r.seqs.map((l) => t.segments.get(l)).filter(Boolean), i = s.length === r.seqs.length || !r.text ? s.flatMap((l) => l.words) : [], o = s[s.length - 1];
@@ -1584,16 +1590,16 @@ function Ka(t) {
1584
1590
  catchup: s.some((l) => l.catchup),
1585
1591
  suppressed: r.suppressed || s.length > 0 && s.every((l) => l.suppressed),
1586
1592
  unclear: r.unclear || s.length > 0 && s.every((l) => l.unclear),
1587
- confidence: Ja(s),
1593
+ confidence: Xa(s),
1588
1594
  latencyS: o == null ? void 0 : o.latencyS,
1589
1595
  settled: r.settled || s.length > 0 && s.every((l) => l.settled),
1590
- translations: Object.keys(r.translations).length ? r.translations : Xa(s),
1596
+ translations: Object.keys(r.translations).length ? r.translations : eo(s),
1591
1597
  speaker: r.speaker >= 0 ? r.speaker : (o == null ? void 0 : o.speaker) ?? -1
1592
1598
  });
1593
1599
  }
1594
1600
  return e.sort((r, s) => r.start - s.start), e;
1595
1601
  }
1596
- function Ja(t) {
1602
+ function Xa(t) {
1597
1603
  let e = 0, n = 0;
1598
1604
  for (const r of t) {
1599
1605
  if (r.confidence == null) continue;
@@ -1602,20 +1608,20 @@ function Ja(t) {
1602
1608
  }
1603
1609
  return n ? e / n : void 0;
1604
1610
  }
1605
- function Xa(t) {
1611
+ function eo(t) {
1606
1612
  const e = {};
1607
1613
  for (const n of t) for (const [r, s] of Object.entries(n.translations)) e[r] = e[r] ? `${e[r]} ${s}` : s;
1608
1614
  return e;
1609
1615
  }
1610
- const eo = 0.85, to = 0.75;
1611
- function no(t) {
1612
- return t == null ? "" : t < to ? "low" : t < eo ? "mid" : "";
1616
+ const to = 0.85, no = 0.75;
1617
+ function ro(t) {
1618
+ return t == null ? "" : t < no ? "low" : t < to ? "mid" : "";
1613
1619
  }
1614
1620
  const dn = ["a", "b", "c", "d", "e", "f", "g", "h"];
1615
- function ro(t) {
1621
+ function so(t) {
1616
1622
  return dn[(t % dn.length + dn.length) % dn.length];
1617
1623
  }
1618
- function so(t) {
1624
+ function io(t) {
1619
1625
  if (t.numbers) return t.numbers;
1620
1626
  const e = /* @__PURE__ */ new Map(), n = (i, o) => {
1621
1627
  if (i < 0) return;
@@ -1631,18 +1637,18 @@ function so(t) {
1631
1637
  }
1632
1638
  function pn(t, e) {
1633
1639
  if (e < 0) return 0;
1634
- const n = so(t);
1640
+ const n = io(t);
1635
1641
  return n.get(e) ?? n.size + 1 + e;
1636
1642
  }
1637
- const io = /^\s*speaker\s+\d+\s*$/i;
1638
- function Is(t) {
1639
- return t && t.trim() && !io.test(t) ? t : void 0;
1643
+ const ao = /^\s*speaker\s+\d+\s*$/i;
1644
+ function Os(t) {
1645
+ return t && t.trim() && !ao.test(t) ? t : void 0;
1640
1646
  }
1641
1647
  function ii(t, e) {
1642
1648
  var n;
1643
- return Is(t.speakers[e]) ?? Is((n = t.speakerIds[e]) == null ? void 0 : n.name);
1649
+ return Os(t.speakers[e]) ?? Os((n = t.speakerIds[e]) == null ? void 0 : n.name);
1644
1650
  }
1645
- function hr(t, e) {
1651
+ function fr(t, e) {
1646
1652
  return e < 0 ? "" : ii(t, e) ?? `Speaker ${pn(t, e)}`;
1647
1653
  }
1648
1654
  function ai(t, e) {
@@ -1650,7 +1656,7 @@ function ai(t, e) {
1650
1656
  const n = ii(t, e);
1651
1657
  return n ? (n.split(" ").filter(Boolean).slice(0, 2).map((s) => s[0]).join("") || `S${pn(t, e)}`).toUpperCase() : `S${pn(t, e)}`;
1652
1658
  }
1653
- function ao(t) {
1659
+ function oo(t) {
1654
1660
  if (t) {
1655
1661
  if (t.startsWith("#"))
1656
1662
  return { fg: t, soft: `color-mix(in srgb, ${t} 16%, transparent)` };
@@ -1658,11 +1664,11 @@ function ao(t) {
1658
1664
  return { fg: `var(--vx-${t})`, soft: `var(--vx-${t}-soft)` };
1659
1665
  }
1660
1666
  }
1661
- function fr(t, e) {
1662
- const n = t.speakerIds[e], r = ao(n == null ? void 0 : n.color);
1663
- return { fg: r == null ? void 0 : r.fg, soft: r == null ? void 0 : r.soft, lane: ro(pn(t, e) - 1), hasVoice: !!n };
1667
+ function Nr(t, e) {
1668
+ const n = t.speakerIds[e], r = oo(n == null ? void 0 : n.color);
1669
+ return { fg: r == null ? void 0 : r.fg, soft: r == null ? void 0 : r.soft, lane: so(pn(t, e) - 1), hasVoice: !!n };
1664
1670
  }
1665
- function oo(t, e, n, r = !1) {
1671
+ function lo(t, e, n, r = !1) {
1666
1672
  const s = n ? n.speakerLabels ?? "auto" : null, i = (r ? s : null) ?? t.labels ?? s ?? "on";
1667
1673
  if (i !== "auto") return i === "on";
1668
1674
  const o = /* @__PURE__ */ new Set();
@@ -1670,7 +1676,7 @@ function oo(t, e, n, r = !1) {
1670
1676
  return !0;
1671
1677
  return !1;
1672
1678
  }
1673
- const lo = /* @__PURE__ */ new Set([
1679
+ const co = /* @__PURE__ */ new Set([
1674
1680
  "invalid_audio",
1675
1681
  "invalid_options",
1676
1682
  "invalid_token",
@@ -1702,7 +1708,7 @@ const lo = /* @__PURE__ */ new Set([
1702
1708
  engine_lost: "The transcription engine stopped. Please try again.",
1703
1709
  capacity_exceeded: "Every transcription engine is busy right now. Please try again in a moment.",
1704
1710
  timeout: "That took too long. Please try again."
1705
- }, ir = oi.internal, Gn = "Can't reach VocalStack. Check your connection.", Os = {
1711
+ }, ir = oi.internal, Gn = "Can't reach VocalStack. Check your connection.", Cs = {
1706
1712
  NotAllowedError: "The browser blocked this. Allow it for this site, then try again.",
1707
1713
  NotSupportedError: "This browser cannot play this.",
1708
1714
  AbortError: "It was cancelled."
@@ -1710,45 +1716,45 @@ const lo = /* @__PURE__ */ new Set([
1710
1716
  function yt(t) {
1711
1717
  const e = t, n = typeof (e == null ? void 0 : e.code) == "string" ? e.code : void 0, r = typeof (e == null ? void 0 : e.status) == "number" ? e.status : void 0, s = e == null ? void 0 : e.details;
1712
1718
  if (n || r && r >= 400)
1713
- return n && lo.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: r, details: s } : n === "unavailable" && r === void 0 ? { message: Gn, code: n, details: s } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : Gn, code: n, status: r, details: s } : { message: n && oi[n] || ir, code: n, status: r, details: s };
1719
+ return n && co.has(n) && typeof (e == null ? void 0 : e.message) == "string" ? { message: e.message, code: n, status: r, details: s } : n === "unavailable" && r === void 0 ? { message: Gn, code: n, details: s } : r === 0 ? { message: typeof (e == null ? void 0 : e.message) == "string" ? e.message : Gn, code: n, status: r, details: s } : { message: n && oi[n] || ir, code: n, status: r, details: s };
1714
1720
  const i = (e == null ? void 0 : e.name) ?? "";
1715
- return i === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && Gs(t instanceof Error ? t : new Error(String(t))), { message: Gn }) : Os[i] ? { message: Os[i] } : t instanceof Error && i === "Error" && !(t instanceof Bs) ? { message: t.message } : { message: ir };
1721
+ return i === "TypeError" && /fetch|network|load failed/i.test(String((e == null ? void 0 : e.message) ?? "")) ? (typeof navigator < "u" && navigator.onLine !== !1 && Zs(t instanceof Error ? t : new Error(String(t))), { message: Gn }) : Cs[i] ? { message: Cs[i] } : t instanceof Error && i === "Error" && !(t instanceof Hs) ? { message: t.message } : { message: ir };
1716
1722
  }
1717
- const li = "https://api.vocalstack.com", Nr = $s(null);
1723
+ const li = "https://api.vocalstack.com", pr = Bs(null);
1718
1724
  function Ct() {
1719
- const t = qi(Nr);
1725
+ const t = qi(pr);
1720
1726
  if (!t) throw new Error("VocalStack player hooks must be used inside <VocalStackPlayer> or <PlayerApiProvider>");
1721
1727
  return t;
1722
1728
  }
1723
- function co(t) {
1724
- return t.value ? /* @__PURE__ */ a(Nr.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ a(uo, { ...t });
1729
+ function uo(t) {
1730
+ return t.value ? /* @__PURE__ */ a(pr.Provider, { value: t.value, children: t.children }) : /* @__PURE__ */ a(Mo, { ...t });
1725
1731
  }
1726
- function uo({ children: t, ...e }) {
1732
+ function Mo({ children: t, ...e }) {
1727
1733
  const n = ci(e);
1728
- return /* @__PURE__ */ a(Nr.Provider, { value: n, children: t });
1734
+ return /* @__PURE__ */ a(pr.Provider, { value: n, children: t });
1729
1735
  }
1730
- const Mo = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1731
- function go(t) {
1732
- return Mo.test(t);
1736
+ const go = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1737
+ function ho(t) {
1738
+ return go.test(t);
1733
1739
  }
1734
1740
  function ci(t) {
1735
- const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || go(t.id)), s = (t.baseUrl ?? li).replace(/\/$/, ""), i = z(t.token);
1741
+ const e = t.listen ?? null, n = e ? null : t.listenerToken ?? null, r = !e && !n && !!t.token && (!t.id || ho(t.id)), s = (t.baseUrl ?? li).replace(/\/$/, ""), i = z(t.token);
1736
1742
  i.current = t.token;
1737
- const o = !!t.token, l = Ie(() => async () => {
1743
+ const o = !!t.token, l = ze(() => async () => {
1738
1744
  const d = i.current;
1739
1745
  return (typeof d == "function" ? await d() : d) || void 0;
1740
- }, []), c = t.client ?? null, u = Ie(() => c ?? new Hs({ baseUrl: s, token: o && !e ? l : void 0 }), [c, s, o, l, e]);
1741
- return Ie(() => {
1746
+ }, []), c = t.client ?? null, u = ze(() => c ?? new Vs({ baseUrl: s, token: o && !e ? l : void 0 }), [c, s, o, l, e]);
1747
+ return ze(() => {
1742
1748
  if (e) return { client: u, origin: s, owner: !1, shareCode: null, listen: e, bearer: l, cred: { listenerToken: e.token }, readAs: { listenerToken: e.token } };
1743
1749
  if (n) return { client: u, origin: s, owner: !1, shareCode: null, listen: null, bearer: l, cred: { listenerToken: n }, readAs: { listenerToken: n } };
1744
1750
  const d = r ? null : t.id || null;
1745
1751
  return { client: u, origin: s, owner: r, shareCode: d, listen: null, bearer: l, cred: { shareCode: d }, readAs: d ? { shareCode: d } : {} };
1746
1752
  }, [u, s, r, t.id, l, e, n]);
1747
1753
  }
1748
- function ho(t, e) {
1754
+ function fo(t, e) {
1749
1755
  return e ? { ...t, cred: { media: e } } : t;
1750
1756
  }
1751
- async function fo(t, e) {
1757
+ async function No(t, e) {
1752
1758
  if (t.listen) {
1753
1759
  const r = await t.client.recordings.get(t.listen.recordingId, t.readAs), s = r;
1754
1760
  return { key: e, code: null, transcriptionId: t.listen.transcriptionId, name: s.name ?? s.title ?? "", recording: r, job: s.job ?? null, allowDownload: !0, allowExport: !0, allowTranslate: !0, sharedBy: null };
@@ -1773,11 +1779,11 @@ async function fo(t, e) {
1773
1779
  sharedBy: n.sharedBy ?? null
1774
1780
  };
1775
1781
  }
1776
- function No(t, e) {
1782
+ function po(t, e) {
1777
1783
  const [n, r] = O(null), [s, i] = O(!1), [o, l] = O(null), [c, u] = O(0);
1778
1784
  return E(() => {
1779
1785
  let d = !0;
1780
- return fo(t, e).then((g) => {
1786
+ return No(t, e).then((g) => {
1781
1787
  d && (r(g), i(!1), l(null));
1782
1788
  }).catch((g) => {
1783
1789
  if (!d) return;
@@ -1788,7 +1794,7 @@ function No(t, e) {
1788
1794
  };
1789
1795
  }, [t, e, c]), { source: n, gone: s, error: o, reload: () => u((d) => d + 1) };
1790
1796
  }
1791
- function po(t, e) {
1797
+ function mo(t, e) {
1792
1798
  const [n, r] = O(null);
1793
1799
  return E(() => {
1794
1800
  if (!t.owner || !e) {
@@ -1809,7 +1815,7 @@ function po(t, e) {
1809
1815
  };
1810
1816
  }, [t, e]), n;
1811
1817
  }
1812
- async function Cs(t, e, n = {}) {
1818
+ async function xs(t, e, n = {}) {
1813
1819
  const r = new URLSearchParams();
1814
1820
  for (const [o, l] of Object.entries(n.query ?? {})) l != null && r.set(o, l);
1815
1821
  t.shareCode && r.set("shareCode", t.shareCode), t.listen && r.set("listenerToken", t.listen.token);
@@ -1822,7 +1828,7 @@ async function Cs(t, e, n = {}) {
1822
1828
  return fetch(`${t.origin}${e}${i ? `${e.includes("?") ? "&" : "?"}${i}` : ""}`, { method: n.method ?? "GET", headers: s, body: n.body === void 0 ? void 0 : JSON.stringify(n.body) });
1823
1829
  }
1824
1830
  const Zn = /* @__PURE__ */ new Map();
1825
- function mo() {
1831
+ function yo() {
1826
1832
  const t = Ct(), [e, n] = O(Zn.get(t.origin) ?? null);
1827
1833
  return E(() => {
1828
1834
  Zn.has(t.origin) || t.client.languages.list().then((r) => {
@@ -1840,8 +1846,8 @@ function ui(t, e) {
1840
1846
  };
1841
1847
  }, [...e, o]), { data: n, error: s, reload: () => l((c) => c + 1) };
1842
1848
  }
1843
- const yo = (t) => new Promise((e) => setTimeout(e, t)), To = 2500, Lo = 72;
1844
- function wo(t, e) {
1849
+ const To = (t) => new Promise((e) => setTimeout(e, t)), Lo = 2500, wo = 72;
1850
+ function ko(t, e) {
1845
1851
  const n = Ct(), r = z(n);
1846
1852
  r.current = n;
1847
1853
  const [s, i] = O(_t), o = z(_t()), l = z(null), c = z(e.lang ?? null), [u, d] = O(!1), [g, M] = O(null), [p, y] = O(!1), j = tt(() => {
@@ -1862,20 +1868,20 @@ function wo(t, e) {
1862
1868
  return (async () => {
1863
1869
  var $, U, Me, P;
1864
1870
  for (; Q; ) {
1865
- let H = null;
1871
+ let V = null;
1866
1872
  try {
1867
1873
  const oe = c.current;
1868
- if (H = await v.recordings.subscribe(t, { lang: oe ?? void 0, ...n.readAs, asOwner: n.owner, voice: e.voice ?? void 0 }), !Q) {
1869
- H.close();
1874
+ if (V = await v.recordings.subscribe(t, { lang: oe ?? void 0, ...n.readAs, asOwner: n.owner, voice: e.voice ?? void 0 }), !Q) {
1875
+ V.close();
1870
1876
  return;
1871
1877
  }
1872
- L = 0, l.current = H, c.current !== oe && H.setLanguage(c.current), d(!0), M(null), o.current = Wn(H.snapshot, o.current), j(), ne();
1873
- for await (const re of H) {
1878
+ L = 0, l.current = V, c.current !== oe && V.setLanguage(c.current), d(!0), M(null), o.current = Wn(V.snapshot, o.current), j(), ne();
1879
+ for await (const re of V) {
1874
1880
  if (!Q) break;
1875
1881
  if (re.type === "snapshot")
1876
1882
  o.current = Wn(re.snapshot, re.reason === "gap" ? o.current : _t()), j(), ne();
1877
1883
  else if (re.type === "frame") {
1878
- qa(o.current, re.frame);
1884
+ Ka(o.current, re.frame);
1879
1885
  const we = re.frame;
1880
1886
  we.type === "recording.state" && (S = o.current.state, (U = ($ = T.current).onState) == null || U.call($, we.state, we.reason)), (P = (Me = T.current).onFrame) == null || P.call(Me, we), j();
1881
1887
  } else re.type === "closed" && d(!1);
@@ -1906,11 +1912,11 @@ function wo(t, e) {
1906
1912
  }
1907
1913
  M(re);
1908
1914
  } finally {
1909
- l.current === H && (l.current = null), d(!1);
1915
+ l.current === V && (l.current = null), d(!1);
1910
1916
  }
1911
1917
  const ae = o.current.state;
1912
1918
  if (!Q || ae === "ended" || ae === "finalized" || ae === "processing") return;
1913
- L += 1, await yo(Math.min(15e3, 1e3 * 2 ** Math.min(L, 4)));
1919
+ L += 1, await To(Math.min(15e3, 1e3 * 2 ** Math.min(L, 4)));
1914
1920
  }
1915
1921
  })(), () => {
1916
1922
  var $;
@@ -1926,9 +1932,9 @@ function wo(t, e) {
1926
1932
  v === k.current && (o.current = Wn(U, o.current), R(Q), j(), U.translationPending && $ > 0 && window.setTimeout(() => {
1927
1933
  v === k.current && S($ - 1).catch(() => {
1928
1934
  });
1929
- }, To));
1935
+ }, Lo));
1930
1936
  });
1931
- S(Lo).catch(() => {
1937
+ S(wo).catch(() => {
1932
1938
  v === k.current && Q && D(Q);
1933
1939
  }).finally(() => {
1934
1940
  v === k.current && h(!1);
@@ -1944,7 +1950,7 @@ function wo(t, e) {
1944
1950
  }, [j]), b = tt(() => M(null), []);
1945
1951
  return { model: s, connected: u, error: g, notFound: p, clearError: b, setLanguage: X, mergeTranslations: I, translating: N, translateFailed: C, shownLang: te };
1946
1952
  }
1947
- const xs = {
1953
+ const Ds = {
1948
1954
  English: { vcFor: "Voice for", vcMute: "Mute", vcUnmute: "Unmute", vcMuted: "MUTED", vcShared: "Also used by", vcUsedBy: "Used by", vcUnknownSpk: "Unknown", vcUse: "Use this voice", vcGetting: "Downloading…", vcSample: "Here’s how it sounds.", vcPreview: "PREVIEW", vcMale: "Male", vcFemale: "Female", vcSynth: "SYNTHETIC", origAudio: "ORIGINAL AUDIO", vcCloned: "VOICES", vcBadge: "CLONED", vcNone: "TEXT ONLY", vcNoVoice: "No voice for ", vcSheet: "VOICE", vcNeutral: "SYNTHETIC VOICE", vcWarm: "SYNTHETIC VOICE", searchPlaceholder: "Search this broadcast", noise: "Audio unclear", newLines: "new", live: "LIVE", ended: "ENDED", waiting: "WAITING", corrected: "CORRECTED", hostLine: "Hosted by Marcus Reed · 4 speakers", langLabel: "LANGUAGE", langCount: "100+ languages", read: "Read", listen: "Listen", watch: "Watch", waitTitle: "The broadcast hasn’t started yet", waitBody: "The transcript appears here as soon as the host starts speaking.", english: "ENGLISH", playing: "Playing the live audio", ready: "Tap to start audio", readyNote: "Set your volume first", voiceMeta: "ORIGINAL AUDIO", voice: "Voice", sheetTitle: "APP LANGUAGE", done: "Done", search: "Search 100+ languages", sheetNote: "Follow along in your language.", moreLangs: "more", confTitle: "Some words weren't heard clearly", confBody: "The transcript marks words the model is unsure about with a dashed underline. The words keep their colour, so only the underline tells you where to look.", confMid: "Slightly unsure — probably right", confHigh: "Low confidence — may be wrong", settings: "BROADCAST", setOrig: "Show original language", setTheme: "Appearance", light: "Light", dark: "Dark", setConf: "Show uncertain words", setConfHint1: "Colours words the model is unsure about — ", setConfMid: "amber", setConfSep: " or ", setConfLow: "red", setConfHint2: "", behindLive: "TRANSLATION LATENCY", behindNote: "How far the translation trails the speaker right now.", shareLabel: "LIVE TRANSLATION LINK", copy: "Copy", copied: "Copied" },
1949
1955
  Spanish: { vcFor: "Voz de", vcMute: "Silenciar", vcUnmute: "Activar", vcMuted: "SILENCIADO", vcShared: "También la usa", vcUsedBy: "La usa", vcUnknownSpk: "Desconocido", vcUse: "Usar esta voz", vcGetting: "Descargando…", vcSample: "Así suena esta voz.", vcPreview: "MUESTRA", vcMale: "Hombre", vcFemale: "Mujer", vcSynth: "SINTÉTICA", origAudio: "AUDIO ORIGINAL", vcCloned: "VOCES", vcBadge: "CLONADA", vcNone: "SOLO TEXTO", vcNoVoice: "Sin voz para ", vcSheet: "VOZ", vcNeutral: "VOZ SINTÉTICA", vcWarm: "VOZ SINTÉTICA", searchPlaceholder: "Buscar en esta emisión", noise: "Audio poco claro", newLines: "nuevas", live: "EN VIVO", ended: "FINALIZADA", waiting: "EN ESPERA", corrected: "CORREGIDO", hostLine: "Presenta Marcus Reed · 4 hablantes", langLabel: "IDIOMA", langCount: "100+ idiomas", read: "Leer", listen: "Escuchar", watch: "Ver", waitTitle: "La emisión aún no ha comenzado", waitBody: "La transcripción aparecerá aquí en cuanto el anfitrión empiece a hablar.", english: "INGLÉS", playing: "Reproduciendo la traducción al español", ready: "Toca para iniciar el audio", readyNote: "Ajusta el volumen primero", voiceMeta: "VOZ NEUTRA", voice: "Voz", sheetTitle: "IDIOMA DE LA APP", done: "Listo", search: "Buscar entre 100+ idiomas", sheetNote: "Sigue la emisión en tu idioma.", moreLangs: "más", confTitle: "Algunas palabras no se oyeron bien", confBody: "La transcripción marca las palabras dudosas con un subrayado discontinuo. Las palabras conservan su color, así que solo el subrayado te indica dónde mirar.", confMid: "Poca duda: probablemente correcta", confHigh: "Baja confianza: puede estar mal", settings: "EMISIÓN", setOrig: "Mostrar idioma original", setTheme: "Apariencia", light: "Claro", dark: "Oscuro", setConf: "Mostrar palabras dudosas", setConfHint1: "Colorea las palabras dudosas: ", setConfMid: "ámbar", setConfSep: " o ", setConfLow: "rojo", setConfHint2: "", behindLive: "LATENCIA DE TRADUCCIÓN", behindNote: "Cuánto se retrasa la traducción respecto a quien habla.", shareLabel: "ENLACE PARA SEGUIR", copy: "Copiar", copied: "Copiado" },
1950
1956
  French: { vcFor: "Voix de", vcMute: "Couper", vcUnmute: "Réactiver", vcMuted: "COUPÉ", vcShared: "Aussi utilisée par", vcUsedBy: "Utilisée par", vcUnknownSpk: "Inconnu", vcUse: "Utiliser cette voix", vcGetting: "Téléchargement…", vcSample: "Voici le rendu.", vcPreview: "APERÇU", vcMale: "Homme", vcFemale: "Femme", vcSynth: "SYNTHÉTIQUE", origAudio: "AUDIO ORIGINAL", vcCloned: "VOIX", vcBadge: "CLONÉE", vcNone: "TEXTE SEUL", vcNoVoice: "Aucune voix pour ", vcSheet: "VOIX", vcNeutral: "VOIX SYNTHÉTIQUE", vcWarm: "VOIX SYNTHÉTIQUE", searchPlaceholder: "Rechercher dans la diffusion", noise: "Audio peu clair", newLines: "nouvelles", live: "EN DIRECT", ended: "TERMINÉ", waiting: "EN ATTENTE", corrected: "CORRIGÉ", hostLine: "Animé par Marcus Reed · 4 intervenants", langLabel: "LANGUE", langCount: "100+ langues", read: "Lire", listen: "Écouter", watch: "Regarder", waitTitle: "La diffusion n’a pas encore commencé", waitBody: "La transcription s’affichera ici dès que l’animateur prendra la parole.", english: "ANGLAIS", playing: "Lecture de la traduction française", ready: "Touchez pour lancer l'audio", readyNote: "Réglez le volume d'abord", voiceMeta: "VOIX NEUTRE", voice: "Voix", sheetTitle: "LANGUE DE L'APP", done: "Terminé", search: "Rechercher parmi 100+ langues", sheetNote: "Suivez la diffusion dans votre langue.", moreLangs: "autres", confTitle: "Certains mots n'ont pas été bien entendus", confBody: "La transcription marque les mots incertains d'un soulignement en pointillés. Les mots gardent leur couleur : seul le soulignement attire l'attention.", confMid: "Léger doute — probablement juste", confHigh: "Faible confiance — peut être faux", settings: "DIFFUSION", setOrig: "Afficher la langue d'origine", setTheme: "Apparence", light: "Clair", dark: "Sombre", setConf: "Afficher les mots incertains", setConfHint1: "Colore les mots incertains — ", setConfMid: "ambre", setConfSep: " ou ", setConfLow: "rouge", setConfHint2: "", behindLive: "LATENCE DE TRADUCTION", behindNote: "De combien la traduction suit le locuteur en ce moment.", shareLabel: "LIEN DE SUIVI", copy: "Copier", copied: "Copié" },
@@ -1953,12 +1959,12 @@ const xs = {
1953
1959
  Portuguese: { vcFor: "Voz de", vcMute: "Silenciar", vcUnmute: "Ativar", vcMuted: "SILENCIADO", vcShared: "Também usada por", vcUsedBy: "Usada por", vcUnknownSpk: "Desconhecido", vcUse: "Usar esta voz", vcGetting: "Baixando…", vcSample: "É assim que soa.", vcPreview: "AMOSTRA", vcMale: "Homem", vcFemale: "Mulher", vcSynth: "SINTÉTICA", origAudio: "ÁUDIO ORIGINAL", vcCloned: "VOZES", vcBadge: "CLONADA", vcNone: "SÓ TEXTO", vcNoVoice: "Sem voz para ", vcSheet: "VOZ", vcNeutral: "VOZ SINTÉTICA", vcWarm: "VOZ SINTÉTICA", searchPlaceholder: "Pesquisar nesta transmissão", noise: "Áudio pouco claro", newLines: "novas", live: "AO VIVO", ended: "ENCERRADA", waiting: "AGUARDANDO", corrected: "CORRIGIDO", hostLine: "Apresentado por Marcus Reed · 4 falantes", langLabel: "IDIOMA", langCount: "100+ idiomas", read: "Ler", listen: "Ouvir", watch: "Assistir", waitTitle: "A transmissão ainda não começou", waitBody: "A transcrição aparece aqui assim que o apresentador começar a falar.", english: "INGLÊS", playing: "Reproduzindo a tradução em português", ready: "Toque para iniciar o áudio", readyNote: "Ajuste o volume primeiro", voiceMeta: "VOZ NEUTRA", voice: "Voz", sheetTitle: "IDIOMA DO APP", done: "Concluído", search: "Pesquisar entre 100+ idiomas", sheetNote: "Acompanhe a transmissão no seu idioma.", moreLangs: "mais", confTitle: "Algumas palavras não foram bem ouvidas", confBody: "A transcrição marca as palavras duvidosas com um sublinhado tracejado. As palavras mantêm a sua cor, por isso só o sublinhado indica onde olhar.", confMid: "Pouca dúvida — provavelmente certa", confHigh: "Baixa confiança — pode estar errada", settings: "TRANSMISSÃO", setOrig: "Mostrar idioma original", setTheme: "Aparência", light: "Claro", dark: "Escuro", setConf: "Mostrar palavras duvidosas", setConfHint1: "Colore as palavras duvidosas: ", setConfMid: "âmbar", setConfSep: " ou ", setConfLow: "vermelho", setConfHint2: "", behindLive: "LATÊNCIA DE TRADUÇÃO", behindNote: "Quanto a tradução está atrás de quem fala agora.", shareLabel: "LINK PARA ACOMPANHAR", copy: "Copiar", copied: "Copiado" }
1954
1960
  };
1955
1961
  function di(t) {
1956
- return t && xs[t] || xs.English;
1962
+ return t && Ds[t] || Ds.English;
1957
1963
  }
1958
1964
  async function Mi(t) {
1959
1965
  var s, i, o, l, c;
1960
1966
  const e = await t.json().catch(() => null), n = ((s = e == null ? void 0 : e.error) == null ? void 0 : s.code) ?? (e == null ? void 0 : e.code), r = ((i = e == null ? void 0 : e.error) == null ? void 0 : i.message) ?? (e == null ? void 0 : e.message);
1961
- return new Bs(typeof n == "string" ? n : "internal", typeof r == "string" ? r : ir, { status: t.status, details: ((l = (o = e == null ? void 0 : e.error) == null ? void 0 : o.data) == null ? void 0 : l.details) ?? ((c = e == null ? void 0 : e.data) == null ? void 0 : c.details) });
1967
+ return new Hs(typeof n == "string" ? n : "internal", typeof r == "string" ? r : ir, { status: t.status, details: ((l = (o = e == null ? void 0 : e.error) == null ? void 0 : o.data) == null ? void 0 : l.details) ?? ((c = e == null ? void 0 : e.data) == null ? void 0 : c.details) });
1962
1968
  }
1963
1969
  function qn(t) {
1964
1970
  switch (t) {
@@ -1976,14 +1982,14 @@ function qn(t) {
1976
1982
  return "queued";
1977
1983
  }
1978
1984
  }
1979
- function ko(t) {
1985
+ function vo(t) {
1980
1986
  return t ? { state: t.state, processedS: t.progress.processedS, totalS: t.progress.totalS ?? null, segmentsDone: t.progress.segmentsDone, segmentsTotal: t.progress.segmentsTotal ?? null, pct: t.progress.pct, error: t.error ?? null } : null;
1981
1987
  }
1982
- const vo = (t, e) => {
1988
+ const jo = (t, e) => {
1983
1989
  const n = (t == null ? void 0 : t.segmentsDone) ?? e, r = Math.max(n, (t == null ? void 0 : t.segmentsTotal) ?? n);
1984
1990
  return `${n} / ${r} SEGMENTS`;
1985
1991
  };
1986
- function jo(t, e) {
1992
+ function zo(t, e) {
1987
1993
  var s;
1988
1994
  const n = ((s = t == null ? void 0 : t.source) == null ? void 0 : s.durationS) ?? (e == null ? void 0 : e.totalS) ?? null, r = t == null ? void 0 : t.crop;
1989
1995
  if (r && (r.startS != null || r.endS != null)) {
@@ -1998,24 +2004,24 @@ const ar = [
1998
2004
  { key: "srt", name: "Subtitles", ext: "SRT / VTT", note: "Timed caption cues, ready for a video editor or a player.", icon: "M2.25 15.75V8.25A2.25 2.25 0 0 1 4.5 6h15a2.25 2.25 0 0 1 2.25 2.25v7.5A2.25 2.25 0 0 1 19.5 18h-15a2.25 2.25 0 0 1-2.25-2.25Zm4.5-4.5h4.5m-4.5 3h1.5m3 0h6m-3-3h3" },
1999
2005
  { key: "json", name: "JSON", ext: "JSON", note: "Word-level timings, confidence scores and speaker turns.", icon: "M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5" }
2000
2006
  ];
2001
- function pr(t) {
2007
+ function mr(t) {
2002
2008
  const e = document.createElement("a");
2003
2009
  e.href = t, e.style.display = "none", document.body.appendChild(e), e.click(), e.remove();
2004
2010
  }
2005
- async function zo(t) {
2011
+ async function Io(t) {
2006
2012
  const e = await fetch(t, { redirect: "manual" });
2007
2013
  if (e.type !== "opaqueredirect" && !e.ok) throw await Mi(e);
2008
- pr(t);
2014
+ mr(t);
2009
2015
  }
2010
- async function Io(t, e, n, r = {}) {
2016
+ async function Oo(t, e, n, r = {}) {
2011
2017
  var M, p;
2012
2018
  const s = await t.client.recordings.export(e, n, { lang: r.lang ?? void 0, ...t.readAs });
2013
2019
  if (!s.ok) throw await Mi(s);
2014
2020
  const i = await s.blob(), o = s.headers.get("content-disposition") ?? "", l = (M = /filename\*=UTF-8''([^;]+)/i.exec(o)) == null ? void 0 : M[1], c = (p = /filename="([^"]+)"/i.exec(o)) == null ? void 0 : p[1], u = l ? decodeURIComponent(l) : c ?? `transcript.${n}`, d = URL.createObjectURL(i), g = document.createElement("a");
2015
2021
  g.href = d, g.download = u, g.style.display = "none", document.body.appendChild(g), g.click(), g.remove(), window.setTimeout(() => URL.revokeObjectURL(d), 6e4);
2016
2022
  }
2017
- async function Oo(t, e) {
2018
- const { recordingId: n, lang: r, voiceKey: s, cred: i } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((g) => g.lang === r), l = (d) => Xs(d, s);
2023
+ async function Co(t, e) {
2024
+ const { recordingId: n, lang: r, voiceKey: s, cred: i } = e, o = async () => (await t.client.recordings.voice(n, r, t.readAs)).filter((g) => g.lang === r), l = (d) => ei(d, s);
2019
2025
  let c = l(await o());
2020
2026
  (!c || c.state === "clips" || c.state === "failed") && await e.request();
2021
2027
  const u = Date.now() + (e.timeoutMs ?? 10 * 6e4);
@@ -2024,25 +2030,25 @@ async function Oo(t, e) {
2024
2030
  if (Date.now() > u) throw new Error("The spoken track is taking too long; try again in a moment.");
2025
2031
  await new Promise((d) => setTimeout(d, 4e3)), c = l(await o());
2026
2032
  }
2027
- pr(Ma(t.origin, n, r, c.voiceKey, i));
2033
+ mr(Ma(t.origin, n, r, c.voiceKey, i));
2028
2034
  }
2029
2035
  const or = (t) => {
2030
2036
  var e;
2031
2037
  return ((e = t == null ? void 0 : t.match(/(?:youtu\.be\/|[?&]v=|\/shorts\/|\/embed\/|\/live\/)([\w-]{11})/)) == null ? void 0 : e[1]) ?? null;
2032
- }, Co = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, Ds = 0.3, xo = 1.5;
2038
+ }, xo = (t) => `https://www.youtube-nocookie.com/embed/${t}?autoplay=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, bs = 0.3, Do = 1.5;
2033
2039
  function gi(t, e, n) {
2034
2040
  var s;
2035
2041
  const r = (s = t.words[t.words.length - 1]) == null ? void 0 : s.end;
2036
2042
  return r != null && r > t.start ? r : t.end != null && t.end > t.start ? t.end : (e == null ? void 0 : e.start) ?? n;
2037
2043
  }
2038
- function Do(t, e, n) {
2044
+ function bo(t, e, n) {
2039
2045
  var c, u;
2040
2046
  const r = t[e];
2041
2047
  if (!r) return !1;
2042
- const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) - Ds, i = t[e + 1], o = gi(r, i, r.start + 4) + xo, l = i ? Math.min(o, (((u = i.words[0]) == null ? void 0 : u.start) ?? i.start) - Ds) : o;
2048
+ const s = (((c = r.words[0]) == null ? void 0 : c.start) ?? r.start) - bs, i = t[e + 1], o = gi(r, i, r.start + 4) + Do, l = i ? Math.min(o, (((u = i.words[0]) == null ? void 0 : u.start) ?? i.start) - bs) : o;
2043
2049
  return n >= s && n < Math.max(l, s + 0.5);
2044
2050
  }
2045
- function bo(t, e, n) {
2051
+ function So(t, e, n) {
2046
2052
  const r = Math.max(0, n - e), s = t.map((l) => Math.max(1, [...l.replace(/[^\p{L}\p{N}]/gu, "")].length)), i = s.reduce((l, c) => l + c, 0) || 1;
2047
2053
  let o = e;
2048
2054
  return t.map((l, c) => {
@@ -2057,7 +2063,7 @@ function Kn(t) {
2057
2063
  bottom: Math.min(parseFloat(e.paddingBottom) || 0, n)
2058
2064
  };
2059
2065
  }
2060
- function So(t, e, n = 0) {
2066
+ function Ao(t, e, n = 0) {
2061
2067
  const r = z(() => {
2062
2068
  });
2063
2069
  E(() => {
@@ -2120,10 +2126,10 @@ function So(t, e, n = 0) {
2120
2126
  };
2121
2127
  }, []);
2122
2128
  }
2123
- function Ao({ thumbRef: t }) {
2129
+ function Eo({ thumbRef: t }) {
2124
2130
  return /* @__PURE__ */ a("div", { className: "feedbar", "aria-hidden": "true", children: /* @__PURE__ */ a("div", { ref: t, className: "feedbar__thumb" }) });
2125
2131
  }
2126
- function Eo({ error: t, onClose: e }) {
2132
+ function Yo({ error: t, onClose: e }) {
2127
2133
  const n = z(e);
2128
2134
  if (n.current = e, E(() => {
2129
2135
  if (!t) return;
@@ -2146,7 +2152,7 @@ function Eo({ error: t, onClose: e }) {
2146
2152
  function hi({ color: t }) {
2147
2153
  return /* @__PURE__ */ a("span", { title: "Cloned voice", style: { flex: "none", display: "inline-flex" }, children: /* @__PURE__ */ a(ue, { d: K.voiceClone, size: 13, sw: 1.7, stroke: t }) });
2148
2154
  }
2149
- function Lc({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: i, play: o, next: l }) {
2155
+ function wc({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: i, play: o, next: l }) {
2150
2156
  return /* @__PURE__ */ f("div", { className: "vs-tt", children: [
2151
2157
  /* @__PURE__ */ f("div", { className: "vs-tt__r1", children: [
2152
2158
  /* @__PURE__ */ a("div", { className: "vs-tt__chip", children: t }),
@@ -2163,7 +2169,7 @@ function Lc({ chip: t, note: e, scrub: n, mute: r, voice: s, prev: i, play: o, n
2163
2169
  ] })
2164
2170
  ] });
2165
2171
  }
2166
- function Yo({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: i, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
2172
+ function _o({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek: i, onSeekFrac: o, onScrubStart: l, onScrubEnd: c, frac: u, glideMs: d = 260 }) {
2167
2173
  const g = z(null), M = z(!1), [p, y] = O(null), j = Math.max(1, e), T = p ?? u, N = T != null ? Math.min(100, Math.max(0, T * 100)) : t / Math.max(1, j - 1) * 100, h = u != null && d > 0 && p == null ? `width ${d}ms linear, left ${d}ms linear` : "none", C = (k) => {
2168
2174
  var I;
2169
2175
  const te = (I = g.current) == null ? void 0 : I.getBoundingClientRect();
@@ -2207,7 +2213,7 @@ function Yo({ index: t, total: e, atLabel: n, durLabel: r, stepLabel: s, onSeek:
2207
2213
  ] })
2208
2214
  ] });
2209
2215
  }
2210
- function _o(t, e, n) {
2216
+ function Uo(t, e, n) {
2211
2217
  const r = new Set(t.seqs ?? t.words.map((l) => l.seq)), s = (e ?? []).filter((l) => !l.revertedAt && l.seq != null && r.has(l.seq) && (l.kind === "word" || l.kind === "line")), i = s.some((l) => l.kind === "line"), o = (l) => !!(n != null && n.has(`${l.seq}:${l.idx}`));
2212
2218
  return {
2213
2219
  script: i ? 0 : t.words.filter((l) => l.script && !o(l)).length,
@@ -2215,7 +2221,7 @@ function _o(t, e, n) {
2215
2221
  manualCount: i ? 0 : s.filter((l) => l.kind === "word").length
2216
2222
  };
2217
2223
  }
2218
- function Uo({ f: t, desk: e, onOpen: n }) {
2224
+ function Ro({ f: t, desk: e, onOpen: n }) {
2219
2225
  const r = (s, i, o) => /* @__PURE__ */ f("span", { role: "button", title: "Open this line in Fix", className: "badge badge--fix", style: { marginLeft: o ? "auto" : 0 }, onClick: (l) => {
2220
2226
  l.stopPropagation(), n == null || n();
2221
2227
  }, children: [
@@ -2228,7 +2234,7 @@ function Uo({ f: t, desk: e, onOpen: n }) {
2228
2234
  t.manual && r(e ? "MANUAL FIX" : "MANUAL", t.manualCount, t.script === 0)
2229
2235
  ] });
2230
2236
  }
2231
- function Ro({ onOpen: t, alone: e }) {
2237
+ function Po({ onOpen: t, alone: e }) {
2232
2238
  const [n, r] = O(!1);
2233
2239
  return /* @__PURE__ */ f("span", { role: "button", title: "Fix this line", className: `badge badge--pen${n ? " is-over" : ""}`, style: { marginLeft: e ? "auto" : 0 }, onMouseEnter: () => r(!0), onMouseLeave: () => r(!1), onClick: (s) => {
2234
2240
  s.stopPropagation(), t();
@@ -2237,8 +2243,8 @@ function Ro({ onOpen: t, alone: e }) {
2237
2243
  n && "FIX"
2238
2244
  ] });
2239
2245
  }
2240
- function Po(t, e, n, r) {
2241
- const s = Ct(), [i, o] = O([]), [l, c] = O(0), u = z(/* @__PURE__ */ new Set()), d = z(!1), g = Ie(() => new Map(n.filter((p) => p.sentenceId != null).map((p) => [p.sentenceId, p])), [n]);
2246
+ function Qo(t, e, n, r) {
2247
+ const s = Ct(), [i, o] = O([]), [l, c] = O(0), u = z(/* @__PURE__ */ new Set()), d = z(!1), g = ze(() => new Map(n.filter((p) => p.sentenceId != null).map((p) => [p.sentenceId, p])), [n]);
2242
2248
  E(() => {
2243
2249
  u.current = /* @__PURE__ */ new Set();
2244
2250
  }, [t, e]);
@@ -2264,13 +2270,13 @@ function Po(t, e, n, r) {
2264
2270
  }
2265
2271
  }, [t, e, i, l, g, r]), M;
2266
2272
  }
2267
- function Qo(t) {
2273
+ function $o(t) {
2268
2274
  return t.live || t.auto ? "From this session" : t.cloned ? t.library === !1 ? "This transcription only" : "Saved in Voices" : "";
2269
2275
  }
2270
2276
  function Qt(t, e) {
2271
2277
  return t.cloned ? { rank: 0, head: e.vcSheet } : t.gender === "male" ? { rank: 1, head: e.vcMale.toUpperCase() } : t.gender === "female" ? { rank: 2, head: e.vcFemale.toUpperCase() } : { rank: 3, head: e.vcSynth };
2272
2278
  }
2273
- function $o(t, e) {
2279
+ function Bo(t, e) {
2274
2280
  const n = t.slice().sort((s, i) => Qt(s, e).rank - Qt(i, e).rank || s.name.localeCompare(i.name, void 0, { numeric: !0 })), r = {};
2275
2281
  for (const s of n) {
2276
2282
  const i = Qt(s, e).head;
@@ -2281,17 +2287,17 @@ function $o(t, e) {
2281
2287
  return { v: s, headOn: l, head: o, headCount: r[o], rule: l ? "0" : "1px solid var(--hair)" };
2282
2288
  });
2283
2289
  }
2284
- function Bo(t, e, n) {
2290
+ function Ho(t, e, n) {
2285
2291
  const r = /* @__PURE__ */ new Set();
2286
2292
  let s = !1;
2287
2293
  for (const o of t)
2288
2294
  o.speaker < 0 ? s = !0 : r.add(o.speaker);
2289
2295
  const i = [...r].sort((o, l) => o - l).map((o) => {
2290
2296
  var c;
2291
- const l = fr(e, o);
2297
+ const l = Nr(e, o);
2292
2298
  return {
2293
2299
  key: o,
2294
- name: hr(e, o),
2300
+ name: fr(e, o),
2295
2301
  initial: ai(e, o),
2296
2302
  lane: l.lane,
2297
2303
  sex: e.speakerSex[o] ?? null,
@@ -2303,11 +2309,11 @@ function Bo(t, e, n) {
2303
2309
  });
2304
2310
  return s && i.push({ key: -1, name: n, initial: "?", lane: null, sex: null }), i;
2305
2311
  }
2306
- function bs(t) {
2312
+ function Ss(t) {
2307
2313
  const e = [...t.entries()].filter(([, n]) => n.trim()).sort((n, r) => n[0] - r[0]).map(([n, r]) => `${n}=${r.trim()}`).join(";");
2308
2314
  return e ? `cast:${e}` : "";
2309
2315
  }
2310
- function Ss(t) {
2316
+ function As(t) {
2311
2317
  if (!t || !t.startsWith("cast:")) return null;
2312
2318
  const e = /* @__PURE__ */ new Map();
2313
2319
  for (const n of t.slice(5).split(";")) {
@@ -2318,10 +2324,10 @@ function Ss(t) {
2318
2324
  }
2319
2325
  return e.size ? e : null;
2320
2326
  }
2321
- function As(t, e, n = !0) {
2327
+ function Es(t, e, n = !0) {
2322
2328
  const r = e.filter((o) => !o.cloned), s = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map();
2323
2329
  for (const o of t) {
2324
- const c = (o.voiceId ? e.find((M) => M.cloned && !M.auto && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (n ? (o.voiceId ? e.find((M) => M.cloned && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (o.key >= 0 ? e.find((M) => M.cloned && M.auto && M.consent !== "pending" && M.speaker === o.key) : void 0) ?? (o.name ? e.find((M) => M.cloned && !M.auto && M.consent !== "pending" && M.name === o.name) : void 0) : void 0);
2330
+ const c = (o.voiceId ? e.find((M) => M.cloned && !M.auto && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (n ? (o.voiceId ? e.find((M) => M.cloned && M.consent !== "pending" && M.id === `clone:${o.voiceId}`) : void 0) ?? (o.key >= 0 ? e.find((M) => M.cloned && M.auto && M.consent !== "pending" && M.speaker === o.key) : void 0) : void 0);
2325
2331
  if (c) {
2326
2332
  i.set(o.key, c.id), s.add(c.id);
2327
2333
  continue;
@@ -2331,7 +2337,7 @@ function As(t, e, n = !0) {
2331
2337
  }
2332
2338
  return i;
2333
2339
  }
2334
- function Ho({ roster: t, selected: e, onSelect: n, noClone: r, building: s, short: i, sexOf: o, t: l }) {
2340
+ function Vo({ roster: t, selected: e, onSelect: n, noClone: r, building: s, short: i, sexOf: o, t: l }) {
2335
2341
  const c = t.find((u) => u.key === e) ?? t[0] ?? null;
2336
2342
  return c ? /* @__PURE__ */ a("div", { style: { display: "flex", flexWrap: "wrap", gap: 6, padding: "0 2px 9px", margin: "0 -2px" }, children: t.map((u) => {
2337
2343
  const d = u.key === c.key, g = u.key >= 0 && !!(s != null && s(u)), M = u.key >= 0 && !g && r(u), p = u.key >= 0 && !g && !M && !u.hasVoice && !!(i != null && i(u));
@@ -2362,8 +2368,8 @@ function Ho({ roster: t, selected: e, onSelect: n, noClone: r, building: s, shor
2362
2368
  );
2363
2369
  }) }) : null;
2364
2370
  }
2365
- function Vo({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s = null, dlId: i = null, onPick: o, onAdd: l, onUse: c, usedBy: u, foldKey: d, foldFor: g = null, problem: M, noClone: p = null, t: y }) {
2366
- const j = Ie(() => $o(e, y), [e, y]), [T, N] = O({});
2371
+ function Fo({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s = null, dlId: i = null, onPick: o, onAdd: l, onUse: c, usedBy: u, foldKey: d, foldFor: g = null, problem: M, noClone: p = null, t: y }) {
2372
+ const j = ze(() => Bo(e, y), [e, y]), [T, N] = O({});
2367
2373
  E(() => {
2368
2374
  N({});
2369
2375
  }, [d, g]);
@@ -2392,7 +2398,7 @@ function Vo({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
2392
2398
  ] })
2393
2399
  ] }),
2394
2400
  j.map(({ v: k, headOn: te, head: R, headCount: X, rule: I }, b) => {
2395
- const Q = Qo(k), L = i === k.id, v = C(R), S = (u == null ? void 0 : u(k)) ?? null;
2401
+ const Q = $o(k), L = i === k.id, v = C(R), S = (u == null ? void 0 : u(k)) ?? null;
2396
2402
  return /* @__PURE__ */ f(Ki, { children: [
2397
2403
  te && R === y.vcSheet && /* @__PURE__ */ a("div", { style: { display: "flex", alignItems: "center", padding: "14px 2px 6px", borderTop: b === 0 && !p ? "0" : "1px solid var(--hair)", userSelect: "none" }, children: /* @__PURE__ */ a("span", { style: { font: "600 9px var(--vs-font-mono)", letterSpacing: ".13em", color: "var(--ink-62)" }, children: R }) }),
2398
2404
  te && R !== y.vcSheet && /* @__PURE__ */ f(
@@ -2422,7 +2428,7 @@ function Vo({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
2422
2428
  onClick: () => o(k),
2423
2429
  style: { width: "100%", textAlign: "left", font: "inherit", border: 0, borderTop: v ? I : "0", display: "flex", alignItems: "center", gap: 11, padding: v ? "11px 8px" : "0px 8px", margin: "0 -6px", borderRadius: 10, background: r === k.id ? "var(--brand-tint)" : "transparent", cursor: "pointer", opacity: v ? 1 : 0, maxHeight: v ? 120 : 0, overflow: "hidden", transition: "max-height 280ms cubic-bezier(.32,.72,0,1),padding 280ms cubic-bezier(.32,.72,0,1),opacity 200ms ease" },
2424
2430
  children: [
2425
- /* @__PURE__ */ a("span", { title: L ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: L ? "transparent" : k.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: L ? /* @__PURE__ */ a("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : s === k.id ? /* @__PURE__ */ a(Fo, { height: 13, width: 2.5 }) : /* @__PURE__ */ a(ue, { d: k.cloned ? K.voiceClone : k.gender === "female" ? K.venus : k.gender === "male" ? K.mars : K.mic, size: 15, sw: 1.6, style: { color: k.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
2431
+ /* @__PURE__ */ a("span", { title: L ? "Downloading this voice" : void 0, style: { flex: "none", width: 32, height: 32, borderRadius: "50%", background: L ? "transparent" : k.cloned ? "var(--brand-soft)" : "var(--fill-06)", display: "flex", alignItems: "center", justifyContent: "center" }, children: L ? /* @__PURE__ */ a("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : s === k.id ? /* @__PURE__ */ a(Wo, { height: 13, width: 2.5 }) : /* @__PURE__ */ a(ue, { d: k.cloned ? K.voiceClone : k.gender === "female" ? K.venus : k.gender === "male" ? K.mars : K.mic, size: 15, sw: 1.6, style: { color: k.cloned ? "var(--brand)" : "var(--ink-55)" } }) }),
2426
2432
  /* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
2427
2433
  /* @__PURE__ */ a("div", { style: { display: "flex", alignItems: "center", gap: 7, minWidth: 0 }, children: /* @__PURE__ */ a("span", { style: { minWidth: 0, fontSize: 14.5, fontWeight: k.id === n ? 600 : 400, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: k.name }) }),
2428
2434
  Q && /* @__PURE__ */ a("div", { style: { fontSize: 12, fontWeight: 300, color: "var(--ink-62)", marginTop: 2, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: Q }),
@@ -2449,7 +2455,7 @@ function Vo({ cast: t, voices: e, currentId: n, armedId: r = null, sampleId: s =
2449
2455
  D && /* @__PURE__ */ a("div", { style: { position: "sticky", bottom: 0, zIndex: 3, marginTop: 6, padding: "11px 0 3px", animation: "vs-slide-up .18s ease-out" }, children: /* @__PURE__ */ a("button", { type: "button", className: "vcuse", title: "Apply this voice", onClick: () => r && c(r), children: /* @__PURE__ */ a("span", { children: y.vcUse }) }) })
2450
2456
  ] });
2451
2457
  }
2452
- function Fo({ height: t, width: e = 2 }) {
2458
+ function Wo({ height: t, width: e = 2 }) {
2453
2459
  const n = { width: e, height: "100%", borderRadius: 1, background: "var(--brand)" };
2454
2460
  return /* @__PURE__ */ f("span", { style: { flex: "none", display: "flex", alignItems: "flex-end", gap: 2, height: t }, children: [
2455
2461
  /* @__PURE__ */ a("span", { style: { ...n, animation: "vs-eq .62s ease-in-out infinite" } }),
@@ -2457,16 +2463,16 @@ function Fo({ height: t, width: e = 2 }) {
2457
2463
  /* @__PURE__ */ a("span", { style: { ...n, animation: "vs-eq .62s ease-in-out .38s infinite" } })
2458
2464
  ] });
2459
2465
  }
2460
- const Wo = /* @__PURE__ */ f("span", { style: { display: "inline-flex", alignItems: "center", gap: 3 }, children: [
2466
+ const Go = /* @__PURE__ */ f("span", { style: { display: "inline-flex", alignItems: "center", gap: 3 }, children: [
2461
2467
  /* @__PURE__ */ a(ue, { d: K.langAuto, size: 19, sw: 1.7, style: { color: "var(--ink-62)", display: "block" } }),
2462
2468
  /* @__PURE__ */ a(ue, { d: K.globe, size: 18, sw: 1.6, style: { color: "var(--ink-62)", display: "block" } })
2463
2469
  ] });
2464
- function Es(t, e) {
2470
+ function Ys(t, e) {
2465
2471
  const n = e ? t == null ? void 0 : t.languages.find((r) => r.code === e) : null;
2466
- return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : Wo, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
2472
+ return { flag: e ? (n == null ? void 0 : n.flag) ?? "🌐" : Go, code: e ? e.toUpperCase() : "", label: (n == null ? void 0 : n.native) ?? "As spoken", name: (n == null ? void 0 : n.name) ?? "Original" };
2467
2473
  }
2468
- const Ys = { minHeight: 36, height: 36, padding: "0 11px", background: "var(--fill-06)" };
2469
- function Go(t, e, n = 0, r) {
2474
+ const _s = { minHeight: 36, height: 36, padding: "0 11px", background: "var(--fill-06)" };
2475
+ function Zo(t, e, n = 0, r) {
2470
2476
  const s = (r == null ? void 0 : r.id) ?? null, i = (r == null ? void 0 : r.token) ?? null, o = (r == null ? void 0 : r.shareCode) ?? null, l = Ct(), { data: c } = ui(async () => {
2471
2477
  if (!t || !e) return null;
2472
2478
  try {
@@ -2477,25 +2483,25 @@ function Go(t, e, n = 0, r) {
2477
2483
  }, [t, e, n, s, i, o]);
2478
2484
  return c;
2479
2485
  }
2480
- function Zo(t) {
2486
+ function qo(t) {
2481
2487
  return (/* @__PURE__ */ new Set([...Object.keys(t.speakers), ...Object.keys(t.speakerIds)])).size;
2482
2488
  }
2483
- function qo({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, sentenceIds: i }) {
2489
+ function Ko({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, sentenceIds: i }) {
2484
2490
  const o = Ct(), { data: l, reload: c } = ui(async () => {
2485
2491
  if (!t || !e) return null;
2486
2492
  const $ = await o.client.recordings.voice(t, e, o.readAs).catch(() => []);
2487
2493
  return { recordingId: t, lang: e, rows: $.filter((U) => U.lang === e) };
2488
- }, [t, e, o, n]), u = Ie(
2494
+ }, [t, e, o, n]), u = ze(
2489
2495
  () => l && l.lang === e && l.recordingId === t ? l.rows : [],
2490
2496
  [l, e, t]
2491
- ), d = Ie(() => Xs(u, s), [u, s]), g = d ? d.voiceKey || null : s, [M, p] = O(null), [y, j] = O(null), T = z(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${g ?? ""}`, h = tt(async ($, U) => {
2497
+ ), d = ze(() => ei(u, s), [u, s]), g = d ? d.voiceKey || null : s, [M, p] = O(null), [y, j] = O(null), T = z(/* @__PURE__ */ new Set()), N = `${t ?? ""}|${e ?? ""}|${g ?? ""}`, h = tt(async ($, U) => {
2492
2498
  if (!t || !e || !n) return;
2493
- const Me = U != null && U.size ? null : Ss($), P = U != null && U.size ? U : Me, H = P && P.size ? Object.fromEntries([...P].map(([we, pe]) => [String(we), pe])) : null, ae = `${t}|${e}|${H ? JSON.stringify(H) : $ ?? ""}`;
2499
+ const Me = U != null && U.size ? null : As($), P = U != null && U.size ? U : Me, V = P && P.size ? Object.fromEntries([...P].map(([we, pe]) => [String(we), pe])) : null, ae = `${t}|${e}|${V ? JSON.stringify(V) : $ ?? ""}`;
2494
2500
  if (T.current.has(ae)) return;
2495
2501
  T.current.add(ae), p(ae), j(null);
2496
2502
  const oe = { langs: [e] };
2497
- H ? oe.voiceBySpeaker = H : $ && (oe.voice = $);
2498
- const re = await Cs(o, `/v1/recordings/${t}/voice`, { method: "POST", body: oe }).catch(() => null);
2503
+ V ? oe.voiceBySpeaker = V : $ && (oe.voice = $);
2504
+ const re = await xs(o, `/v1/recordings/${t}/voice`, { method: "POST", body: oe }).catch(() => null);
2499
2505
  if (p((we) => we === ae ? null : we), !(re != null && re.ok)) {
2500
2506
  T.current.delete(ae);
2501
2507
  const we = re ? await re.json().catch(() => null) : null;
@@ -2507,14 +2513,14 @@ function qo({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
2507
2513
  const $ = `${t ?? ""}|${e ?? ""}|`;
2508
2514
  for (const U of [...T.current]) U.startsWith($) && T.current.delete(U);
2509
2515
  j(null);
2510
- }, [t, e]), D = !!d && (d.state === "queued" || d.state === "running") || M === N, k = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : y, te = (i == null ? void 0 : i.join(",")) ?? "", [R, X] = O(null), I = Ie(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), b = Ie(() => n && te ? te.split(",").map(Number).filter(($) => !I.has($)) : [], [n, te, I]), Q = z(null);
2516
+ }, [t, e]), D = !!d && (d.state === "queued" || d.state === "running") || M === N, k = (d == null ? void 0 : d.state) === "failed" ? d.error || "the render failed" : y, te = (i == null ? void 0 : i.join(",")) ?? "", [R, X] = O(null), I = ze(() => new Set((d == null ? void 0 : d.clips) ?? []), [d]), b = ze(() => n && te ? te.split(",").map(Number).filter(($) => !I.has($)) : [], [n, te, I]), Q = z(null);
2511
2517
  E(() => {
2512
2518
  if (!n || !t || !e || !b.length) return;
2513
2519
  const $ = R ?? b[0], U = b.find((oe) => oe >= $) ?? b[0], Me = `${t}|${e}|${g ?? ""}`, P = Q.current;
2514
2520
  if (P && P.key === Me && Math.abs(P.near - U) < 12 && Date.now() - P.at < 6e4) return;
2515
2521
  Q.current = { key: Me, near: U, at: Date.now() };
2516
- const H = Ss(g), ae = { langs: [e], near: U };
2517
- H && H.size ? ae.voiceBySpeaker = Object.fromEntries([...H].map(([oe, re]) => [String(oe), re])) : g && (ae.voice = g), Cs(o, `/v1/recordings/${t}/voice`, { method: "POST", body: ae }).then((oe) => {
2522
+ const V = As(g), ae = { langs: [e], near: U };
2523
+ V && V.size ? ae.voiceBySpeaker = Object.fromEntries([...V].map(([oe, re]) => [String(oe), re])) : g && (ae.voice = g), xs(o, `/v1/recordings/${t}/voice`, { method: "POST", body: ae }).then((oe) => {
2518
2524
  oe.ok || (Q.current = null);
2519
2525
  }).catch(() => {
2520
2526
  Q.current = null;
@@ -2529,14 +2535,14 @@ function qo({ recordingId: t, lang: e, ended: n, cred: r, pickedVoice: s, senten
2529
2535
  }, 3e3);
2530
2536
  return () => clearInterval($);
2531
2537
  }, [L, c, I]);
2532
- const S = Ie(() => {
2538
+ const S = ze(() => {
2533
2539
  if (!t) return [];
2534
2540
  const $ = te ? te.split(",").map(Number).filter((Me) => !n || I.has(Me)) : void 0, U = d ?? ($ != null && $.length && e ? { lang: e, voiceKey: s ?? "", clips: [], voice: null } : null);
2535
2541
  return ma(U, t, o.origin, r, $);
2536
- }, [d, t, o, r, te, e, s, n, I]), ne = Ie(() => new Set(b), [b]);
2542
+ }, [d, t, o, r, te, e, s, n, I]), ne = ze(() => new Set(b), [b]);
2537
2543
  return { listed: l, rows: u, track: d, renderVoiceId: g, rendering: D, failed: k, clips: S, requestRender: h, forget: C, reload: c, setNear: X, missing: b.length, coming: ne };
2538
2544
  }
2539
- const Ko = { share: K.share, delay: K.tabGauge, video: K.video, source: K.tabSources, script: K.tabScript, fix: K.tabFix, ending: K.tabEnding, summary: K.tabSummary, export: K.tabExport, settings: K.tabSettings, sources: K.tabSources, recs: K.mic };
2545
+ const Jo = { share: K.share, delay: K.tabGauge, video: K.video, source: K.tabSources, script: K.tabScript, fix: K.tabFix, ending: K.tabEnding, summary: K.tabSummary, export: K.tabExport, settings: K.tabSettings, sources: K.tabSources, recs: K.mic };
2540
2546
  function fi({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: i = !s }) {
2541
2547
  const o = s && t.length <= 3, l = t.some((T) => T.key === e), [c, u] = O(null), d = z(null), [g, M] = O(0);
2542
2548
  E(() => {
@@ -2565,7 +2571,7 @@ function fi({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: i = !s
2565
2571
  }
2566
2572
  return /* @__PURE__ */ f("div", { role: "tablist", className: `tabbar tabbar--icons${s ? "" : " tabbar--desk"}`, "data-desk-tabs": i ? "" : void 0, "data-tab-n": i ? t.length : void 0, style: { marginBottom: r ? 12 : 0 }, onMouseLeave: y, children: [
2567
2573
  t.map((T) => {
2568
- const N = e === T.key, h = o || N, C = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", D = T.icon ?? Ko[T.key], k = () => {
2574
+ const N = e === T.key, h = o || N, C = o ? "1 1 0" : N ? "1 1 auto" : s && !l ? "1 1 0" : "0 0 auto", D = T.icon ?? Jo[T.key], k = () => {
2569
2575
  y(), n(s && N ? "none" : T.key);
2570
2576
  };
2571
2577
  return s ? /* @__PURE__ */ f("button", { type: "button", role: "tab", "aria-selected": N, title: T.label, className: `tabbar__tab${N ? " is-on" : ""}`, style: { flex: C }, onClick: k, children: [
@@ -2579,8 +2585,8 @@ function fi({ tabs: t, current: e, onPick: n, gap: r, fold: s = !0, side: i = !s
2579
2585
  j
2580
2586
  ] });
2581
2587
  }
2582
- const Jo = "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3", Xo = "m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z";
2583
- function el({ audio: t, video: e, formats: n, onExport: r }) {
2588
+ const Xo = "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3", el = "m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z";
2589
+ function tl({ audio: t, video: e, formats: n, onExport: r }) {
2584
2590
  const [s, i] = O(null), [o, l] = O(null), c = z(void 0), u = z(!0);
2585
2591
  E(() => (u.current = !0, () => {
2586
2592
  u.current = !1, window.clearTimeout(c.current);
@@ -2609,11 +2615,11 @@ function el({ audio: t, video: e, formats: n, onExport: r }) {
2609
2615
  /* @__PURE__ */ a("span", { style: { fontSize: 13, fontWeight: 500, color: "var(--ink-96)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: j.name }),
2610
2616
  /* @__PURE__ */ a("span", { style: { font: "500 9.5px var(--vs-font-mono)", color: "var(--ink-40)", letterSpacing: ".04em" }, children: j.meta })
2611
2617
  ] }),
2612
- /* @__PURE__ */ a(ue, { d: s === y ? K.check : Jo, size: 17, sw: 1.6, style: { flex: "none", color: s === y ? "var(--brand)" : "var(--ink-62)" } })
2618
+ /* @__PURE__ */ a(ue, { d: s === y ? K.check : Xo, size: 17, sw: 1.6, style: { flex: "none", color: s === y ? "var(--brand)" : "var(--ink-62)" } })
2613
2619
  ] })
2614
2620
  ] });
2615
2621
  return /* @__PURE__ */ f("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
2616
- t && p("audio", t, Xo, "DOWNLOAD AUDIO"),
2622
+ t && p("audio", t, el, "DOWNLOAD AUDIO"),
2617
2623
  e && p("video", e, K.video, "DOWNLOAD VIDEO"),
2618
2624
  n !== !1 && /* @__PURE__ */ f(Pe, { children: [
2619
2625
  /* @__PURE__ */ a(er, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "EXPORT AS" }),
@@ -2638,7 +2644,7 @@ function Ni(t, e, n) {
2638
2644
  }
2639
2645
  r();
2640
2646
  }
2641
- function tl(t, e, n) {
2647
+ function nl(t, e, n) {
2642
2648
  const [r, s] = O(null), i = t.state === "ready", o = `${e ?? ""}|${n ?? ""}|${i ? `${t.title}
2643
2649
  ${t.summary}` : ""}`, l = Ct();
2644
2650
  return E(() => {
@@ -2655,12 +2661,12 @@ ${t.summary}` : ""}`, l = Ct();
2655
2661
  };
2656
2662
  }, [o, l]), !n || !i ? t : (r == null ? void 0 : r.key) === o ? r.s : { state: "pending", retry: t.retry };
2657
2663
  }
2658
- function nl(t) {
2664
+ function rl(t) {
2659
2665
  return t != null && t.title && (t != null && t.summary) ? { state: "ready", title: t.title, summary: t.summary, retry: () => {
2660
2666
  } } : { state: "unavailable", retry: () => {
2661
2667
  } };
2662
2668
  }
2663
- function rl({ s: t }) {
2669
+ function sl({ s: t }) {
2664
2670
  const [e, n] = O(!1), r = z(void 0);
2665
2671
  E(() => () => window.clearTimeout(r.current), []);
2666
2672
  const s = t.title ?? "", i = t.summary ?? "", o = () => {
@@ -2677,7 +2683,7 @@ ${i}`).catch(() => {
2677
2683
  /* @__PURE__ */ f("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 8, minHeight: 24 }, children: [
2678
2684
  /* @__PURE__ */ a(er, { style: { letterSpacing: ".12em", color: "var(--ink-35)" }, children: "SUMMARY" }),
2679
2685
  t.state === "ready" && /* @__PURE__ */ f("button", { type: "button", className: "sumcopy", title: "Copy title and summary", style: { color: e ? "var(--brand)" : "var(--ink-70)" }, onClick: o, children: [
2680
- /* @__PURE__ */ a(ue, { d: e ? K.check : al, size: 13, sw: 1.6 }),
2686
+ /* @__PURE__ */ a(ue, { d: e ? K.check : ol, size: 13, sw: 1.6 }),
2681
2687
  e ? "Copied" : "Copy"
2682
2688
  ] })
2683
2689
  ] }),
@@ -2690,15 +2696,15 @@ ${i}`).catch(() => {
2690
2696
  ] })
2691
2697
  ] });
2692
2698
  }
2693
- function sl({ ytId: t, title: e, timeLabel: n, radius: r, style: s, large: i, children: o, picture: l }) {
2699
+ function il({ ytId: t, title: e, timeLabel: n, radius: r, style: s, large: i, children: o, picture: l }) {
2694
2700
  return /* @__PURE__ */ f("div", { className: "livevid", style: { ...r != null ? { borderRadius: r } : null, ...s }, children: [
2695
2701
  /* @__PURE__ */ a(ue, { d: "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", size: i ? 34 : 30, sw: 1.2 }),
2696
- l ?? /* @__PURE__ */ a("iframe", { src: Co(t), title: e, referrerPolicy: "strict-origin-when-cross-origin", allow: "autoplay; encrypted-media; picture-in-picture" }),
2702
+ l ?? /* @__PURE__ */ a("iframe", { src: xo(t), title: e, referrerPolicy: "strict-origin-when-cross-origin", allow: "autoplay; encrypted-media; picture-in-picture" }),
2697
2703
  n && /* @__PURE__ */ a("span", { className: "livevid__t", style: i ? { bottom: 10, right: 10 } : void 0, children: n }),
2698
2704
  o
2699
2705
  ] });
2700
2706
  }
2701
- function il(t = !0, e) {
2707
+ function al(t = !0, e) {
2702
2708
  const n = z(null), r = e ?? n;
2703
2709
  return E(() => {
2704
2710
  const s = r.current;
@@ -2719,8 +2725,8 @@ function il(t = !0, e) {
2719
2725
  };
2720
2726
  }, [t]), r;
2721
2727
  }
2722
- const al = "M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75";
2723
- function ol(t, e) {
2728
+ const ol = "M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75";
2729
+ function ll(t, e) {
2724
2730
  const [n, r] = wa(t), s = e.tabs.map((h) => h.key), i = e.tabbed !== !1, o = e.pinnable ?? s;
2725
2731
  let l = n;
2726
2732
  [...e.autoPin ?? []].reverse().forEach((h) => {
@@ -2759,8 +2765,8 @@ function ol(t, e) {
2759
2765
  };
2760
2766
  return { id: t, tabbed: i && g.length > 1, cur: M, seq: d, pinnable: o, tabKeys: g, stripTabs: e.tabs.filter((h) => g.includes(h.key)), panel: N, pin: y, unpin: j };
2761
2767
  }
2762
- function ll({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: i }) {
2763
- return cl(t), /* @__PURE__ */ f(Pe, { children: [
2768
+ function cl({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: i }) {
2769
+ return ul(t), /* @__PURE__ */ f(Pe, { children: [
2764
2770
  e.map((o) => {
2765
2771
  const l = t.panel(o);
2766
2772
  if (!l.show) return null;
@@ -2776,7 +2782,7 @@ function ll({ col: t, order: e, render: n, grip: r, onPick: s, wrapClass: i }) {
2776
2782
  }, fold: !1 }) })
2777
2783
  ] });
2778
2784
  }
2779
- function cl(t) {
2785
+ function ul(t) {
2780
2786
  const e = z(t);
2781
2787
  e.current = t;
2782
2788
  const n = t.id;
@@ -2877,9 +2883,9 @@ function cl(t) {
2877
2883
  };
2878
2884
  }, [n]);
2879
2885
  }
2880
- function ul({ id: t, className: e, gap: n, hidden: r, plain: s, children: i }) {
2886
+ function dl({ id: t, className: e, gap: n, hidden: r, plain: s, children: i }) {
2881
2887
  const [o, l] = va(t), c = z(null), u = z(null);
2882
- dl(u), E(() => {
2888
+ Ml(u), E(() => {
2883
2889
  document.documentElement.style.setProperty("--colw", `${o}px`);
2884
2890
  }, [o]);
2885
2891
  const d = (M) => {
@@ -2903,7 +2909,7 @@ function ul({ id: t, className: e, gap: n, hidden: r, plain: s, children: i }) {
2903
2909
  /* @__PURE__ */ a("div", { ref: c, "data-tab-col": t, className: `${e} sidecol`, style: { flex: `0 0 ${o}px`, ...g }, children: s ? i : /* @__PURE__ */ a("div", { ref: u, "data-panel-grid": "", className: "panelgrid", children: i }) })
2904
2910
  ] });
2905
2911
  }
2906
- function dl(t) {
2912
+ function Ml(t) {
2907
2913
  E(() => {
2908
2914
  const e = t.current;
2909
2915
  if (!e) return;
@@ -2931,11 +2937,11 @@ function dl(t) {
2931
2937
  };
2932
2938
  }, [t]);
2933
2939
  }
2934
- function Ml(t) {
2940
+ function gl(t) {
2935
2941
  return /\bwas not captured\b/i.test(t ?? "");
2936
2942
  }
2937
- const gl = 1500, hl = 3e5;
2938
- function fl(t) {
2943
+ const hl = 1500, fl = 3e5;
2944
+ function Nl(t) {
2939
2945
  const e = Ct(), [n, r] = O(null), [s, i] = O(null), [o, l] = O(null), [c, u] = O(null), d = z(null), g = z(null), M = z(null), p = z(0), y = tt(() => {
2940
2946
  M.current && (clearTimeout(M.current), M.current = null), d.current && (d.current.pause(), d.current.removeAttribute("src"), d.current.load(), d.current = null), g.current && (URL.revokeObjectURL(g.current), g.current = null);
2941
2947
  }, []), j = tt(() => {
@@ -2967,13 +2973,13 @@ function fl(t) {
2967
2973
  }
2968
2974
  if (p.current !== C) return;
2969
2975
  if (R.status === 202 || R.status === 503) {
2970
- if (Date.now() - k > hl) {
2976
+ if (Date.now() - k > fl) {
2971
2977
  l(null), u({ message: "This voice is still being fetched. Try it again in a moment." });
2972
2978
  return;
2973
2979
  }
2974
2980
  l(h.id), M.current = setTimeout(() => {
2975
2981
  te();
2976
- }, gl);
2982
+ }, hl);
2977
2983
  return;
2978
2984
  }
2979
2985
  if (!R.ok) {
@@ -3003,7 +3009,7 @@ const lr = 0.05, pi = (t, e) => {
3003
3009
  for (let r = 0; r < t.length; r++) t[r].start <= e + 1e-6 && (n = r);
3004
3010
  return n;
3005
3011
  };
3006
- function Nl(t, e, n, r) {
3012
+ function pl(t, e, n, r) {
3007
3013
  const s = Math.max(0, e), i = r > 0 && s >= r - lr, o = t.length && t[0].start <= s + 1e-6 ? pi(t, s) : -1;
3008
3014
  return o < 0 ? { t: s, playing: n && !i, sentenceId: null, offset: 0, ended: i } : { t: s, playing: n && !i, sentenceId: t[o].sentenceId ?? null, offset: Math.max(0, s - t[o].start), ended: i };
3009
3015
  }
@@ -3026,11 +3032,11 @@ function mi(t, e, n) {
3026
3032
  const r = t[e], s = n && r.translations[n] && r.language !== n ? r.translations[n] : null;
3027
3033
  if (!s && r.words.length) return r.words;
3028
3034
  const i = (s ?? r.text).split(/\s+/).filter(Boolean), o = ((c = r.words[0]) == null ? void 0 : c.start) ?? r.start, l = gi(r, t[e + 1], r.start + Math.max(2, i.length * 0.4));
3029
- return bo(i, o, l).map((u, d) => ({ ...u, seq: r.seqs[0] ?? 0, idx: d }));
3035
+ return So(i, o, l).map((u, d) => ({ ...u, seq: r.seqs[0] ?? 0, idx: d }));
3030
3036
  }
3031
- function _s(t, e, n) {
3037
+ function Us(t, e, n) {
3032
3038
  if (!t.engaged || e !== t.idx || !n.length) return null;
3033
- if (!t.wordSync) return t.clipPos ? ei(n.map((i) => ({ t: i.text, sp: " " })), t.clipPos) : null;
3039
+ if (!t.wordSync) return t.clipPos ? ti(n.map((i) => ({ t: i.text, sp: " " })), t.clipPos) : null;
3034
3040
  const r = t.t;
3035
3041
  let s = -1;
3036
3042
  for (let i = 0; i < n.length && n[i].start <= r; i++) s = i;
@@ -3048,7 +3054,7 @@ function Ot(t, e, n) {
3048
3054
  const r = (s = t == null ? void 0 : t.words[t.words.length - 1]) == null ? void 0 : s.end;
3049
3055
  return r != null && r > e ? r : (t == null ? void 0 : t.end) != null && t.end > e ? t.end : n > e ? n : e + 4;
3050
3056
  }
3051
- function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd: o, endT: l, onGone: c, onKnown: u, lead: d, onTime: g, waiting: M = !1 }) {
3057
+ function ml({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd: o, endT: l, onGone: c, onKnown: u, lead: d, onTime: g, waiting: M = !1 }) {
3052
3058
  const p = z(null), [y, j] = O(!1);
3053
3059
  E(() => {
3054
3060
  if (!M) {
@@ -3083,7 +3089,7 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
3083
3089
  S.current = n;
3084
3090
  const ne = z(g);
3085
3091
  ne.current = g;
3086
- const $ = z(null), U = z(null), [Me, P] = O(!1), [H, ae] = O(!1), oe = () => {
3092
+ const $ = z(null), U = z(null), [Me, P] = O(!1), [V, ae] = O(!1), oe = () => {
3087
3093
  D("unloadModule", ["captions"]), D("unloadModule", ["cc"]);
3088
3094
  }, re = z([]), we = () => {
3089
3095
  oe(), re.current.forEach(clearTimeout), re.current = [400, 1200, 2500, 5e3].map((Z) => window.setTimeout(oe, Z));
@@ -3098,7 +3104,7 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
3098
3104
  (!b.current || b.current.muted) && D("mute"), ae(!0);
3099
3105
  };
3100
3106
  E(() => (d == null || d.bind(D), () => d == null ? void 0 : d.bind(null)), [!!d]), E(() => {
3101
- !d && H && D("mute");
3107
+ !d && V && D("mute");
3102
3108
  }, [!!d]);
3103
3109
  const Ce = z(null), xe = z(l);
3104
3110
  xe.current = l;
@@ -3116,8 +3122,8 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
3116
3122
  }, Ne = () => $.current;
3117
3123
  return E(() => {
3118
3124
  const Z = (de) => {
3119
- var je, fe, ge, q, ze, $e, ye, be, He, Oe, Ye, Y, _, B, ee, ie;
3120
- if (de.source !== ((je = p.current) == null ? void 0 : je.contentWindow) || typeof de.data != "string") return;
3125
+ var ve, fe, ge, q, je, $e, ye, be, He, Ie, Ye, Y, _, B, ee, ie;
3126
+ if (de.source !== ((ve = p.current) == null ? void 0 : ve.contentWindow) || typeof de.data != "string") return;
3121
3127
  let W = null;
3122
3128
  try {
3123
3129
  W = JSON.parse(de.data);
@@ -3126,14 +3132,14 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
3126
3132
  }
3127
3133
  (ge = (fe = W == null ? void 0 : W.info) == null ? void 0 : fe.videoData) != null && ge.isLive && (te.current = !0);
3128
3134
  const De = (q = W == null ? void 0 : W.info) == null ? void 0 : q.duration;
3129
- typeof De == "number" && De > 0 && !te.current && (k.current == null ? k.current = De : (R.current = Math.abs(De - k.current) > 1.5, v())), (W == null ? void 0 : W.event) === "onReady" && ((!b.current || b.current.muted) && D("mute"), we(), (ze = b.current) == null || ze.onInfo({ ready: !0 })), typeof (($e = W == null ? void 0 : W.info) == null ? void 0 : $e.playerState) == "number" && (W.info.playerState !== U.current && (W.info.playerState === 1 || W.info.playerState === 2) && we(), U.current = W.info.playerState, P(W.info.playerState === 2 || W.info.playerState === 0), (ye = b.current) == null || ye.onInfo({ state: W.info.playerState }));
3130
- const V = (be = W == null ? void 0 : W.info) == null ? void 0 : be.progressState;
3131
- if (V && typeof V.seekableStart == "number" && typeof V.seekableEnd == "number" && V.seekableEnd > V.seekableStart) {
3135
+ typeof De == "number" && De > 0 && !te.current && (k.current == null ? k.current = De : (R.current = Math.abs(De - k.current) > 1.5, v())), (W == null ? void 0 : W.event) === "onReady" && ((!b.current || b.current.muted) && D("mute"), we(), (je = b.current) == null || je.onInfo({ ready: !0 })), typeof (($e = W == null ? void 0 : W.info) == null ? void 0 : $e.playerState) == "number" && (W.info.playerState !== U.current && (W.info.playerState === 1 || W.info.playerState === 2) && we(), U.current = W.info.playerState, P(W.info.playerState === 2 || W.info.playerState === 0), (ye = b.current) == null || ye.onInfo({ state: W.info.playerState }));
3136
+ const F = (be = W == null ? void 0 : W.info) == null ? void 0 : be.progressState;
3137
+ if (F && typeof F.seekableStart == "number" && typeof F.seekableEnd == "number" && F.seekableEnd > F.seekableStart) {
3132
3138
  const Te = Ce.current == null;
3133
- if (Ce.current = { start: V.seekableStart, end: V.seekableEnd }, Te && !Qe.current && (D("pauseVideo"), m(S.current) || D("seekTo", [S.current, !0])), !Ae.current && xe.current != null) {
3139
+ if (Ce.current = { start: F.seekableStart, end: F.seekableEnd }, Te && !Qe.current && (D("pauseVideo"), m(S.current) || D("seekTo", [S.current, !0])), !Ae.current && xe.current != null) {
3134
3140
  Ae.current = !0;
3135
- const _e = xe.current < V.seekableStart - 1;
3136
- (He = ke.current) == null || He.call(ke, _e), _e && ((Oe = ce.current) == null || Oe.call(ce));
3141
+ const _e = xe.current < F.seekableStart - 1;
3142
+ (He = ke.current) == null || He.call(ke, _e), _e && ((Ie = ce.current) == null || Ie.call(ce));
3137
3143
  }
3138
3144
  }
3139
3145
  typeof ((Ye = W == null ? void 0 : W.info) == null ? void 0 : Ye.currentTime) == "number" && ($.current = W.info.currentTime, (Y = b.current) == null || Y.onInfo({ t: W.info.currentTime }), !N.current && U.current === 1 && ((_ = ne.current) == null || _.call(ne, W.info.currentTime))), ((B = W == null ? void 0 : W.info) == null ? void 0 : B.muted) === !1 && !b.current && D("mute"), typeof ((ee = W == null ? void 0 : W.info) == null ? void 0 : ee.muted) == "boolean" && ((ie = b.current) == null || ie.onInfo({ muted: W.info.muted }));
@@ -3142,33 +3148,33 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
3142
3148
  }, []), E(() => {
3143
3149
  if (d) return;
3144
3150
  const Z = m(n);
3145
- Z !== se && (le(Z), Z ? D("pauseVideo") : H && (D("seekTo", [n, !0]), T && D("playVideo")));
3151
+ Z !== se && (le(Z), Z ? D("pauseVideo") : V && (D("seekTo", [n, !0]), T && D("playVideo")));
3146
3152
  }), E(() => {
3147
- if (!H || se || d) return;
3153
+ if (!V || se || d) return;
3148
3154
  if (!T && Ce.current == null && !G.current) {
3149
3155
  G.current = !0, D("seekTo", [S.current, !0]), D("playVideo");
3150
3156
  return;
3151
3157
  }
3152
3158
  const Z = Ne();
3153
3159
  T && (Z == null || Math.abs(Z - S.current) > 1.5) && A(), D(T ? "playVideo" : "pauseVideo");
3154
- }, [T, H, se]), E(() => {
3155
- if (!H || s === 0 || se || d) return;
3160
+ }, [T, V, se]), E(() => {
3161
+ if (!V || s === 0 || se || d) return;
3156
3162
  const Z = Ne();
3157
3163
  (Z == null || Math.abs(Z - S.current) > 0.5) && A(), T || D("pauseVideo");
3158
- }, [s, H]), E(() => {
3159
- if (!H) return;
3164
+ }, [s, V]), E(() => {
3165
+ if (!V) return;
3160
3166
  let Z = null, de = 0;
3161
3167
  const W = setInterval(() => {
3162
3168
  const De = $.current;
3163
3169
  de = U.current === 1 && De != null && Z != null && Math.abs(De - Z) < 0.05 ? de + 1 : 0, Z = De;
3164
- const V = de >= 3;
3165
- V !== X.current && (X.current = V, v());
3170
+ const F = de >= 3;
3171
+ F !== X.current && (X.current = F, v());
3166
3172
  }, 1e3);
3167
3173
  return () => clearInterval(W);
3168
- }, [H]), /* @__PURE__ */ f("div", { className: `txyt${h ? " txyt--ad" : ""}`, children: [
3174
+ }, [V]), /* @__PURE__ */ f("div", { className: `txyt${h ? " txyt--ad" : ""}`, children: [
3169
3175
  /* @__PURE__ */ a("iframe", { ref: p, onLoad: pe, referrerPolicy: "strict-origin-when-cross-origin", src: `https://www.youtube-nocookie.com/embed/${t}?enablejsapi=1&mute=1&controls=0&rel=0&modestbranding=1&playsinline=1&iv_load_policy=3`, title: e, allow: "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" }),
3170
3176
  !h && /* @__PURE__ */ a("div", { "aria-hidden": "true", className: "txyt__tap", onClick: i, style: { cursor: i ? "pointer" : "default" } }),
3171
- /* @__PURE__ */ a("div", { className: `txyt__paused${Me && !h && !se ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ a("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ a(Fs, { size: 44 }) }) }),
3177
+ /* @__PURE__ */ a("div", { className: `txyt__paused${Me && !h && !se ? " txyt__paused--on" : ""}`, "aria-hidden": "true", children: /* @__PURE__ */ a("span", { className: "txyt__pausedplay", children: /* @__PURE__ */ a(Ws, { size: 44 }) }) }),
3172
3178
  h && /* @__PURE__ */ a("div", { className: "txyt__ad", "aria-live": "polite", children: "Ad on YouTube · the transcript carries on after it" }),
3173
3179
  se && /* @__PURE__ */ f("div", { className: "txyt__gone", children: [
3174
3180
  /* @__PURE__ */ a("span", { children: "YouTube no longer has this part of the broadcast" }),
@@ -3176,22 +3182,22 @@ function pl({ ytId: t, title: e, t: n, playing: r, seekN: s, onToggle: i, onAd:
3176
3182
  ] })
3177
3183
  ] });
3178
3184
  }
3179
- const ml = /* @__PURE__ */ f(Pe, { children: [
3185
+ const yl = /* @__PURE__ */ f(Pe, { children: [
3180
3186
  /* @__PURE__ */ a("rect", { x: "6.5", y: "5", width: "3.75", height: "14", rx: "1.2" }),
3181
3187
  /* @__PURE__ */ a("rect", { x: "13.75", y: "5", width: "3.75", height: "14", rx: "1.2" })
3182
- ] }), yl = /* @__PURE__ */ a("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" });
3183
- function Tl({ player: t, size: e }) {
3188
+ ] }), Tl = /* @__PURE__ */ a("path", { d: "M7.5 5.6a1 1 0 0 1 1.52-.85l9.1 5.55a1 1 0 0 1 0 1.7l-9.1 5.55a1 1 0 0 1-1.52-.85V5.6Z" });
3189
+ function Ll({ player: t, size: e }) {
3184
3190
  const n = t.muted ? "Unmute" : "Mute";
3185
3191
  return /* @__PURE__ */ a("button", { type: "button", className: `mutebtn${e < 36 ? " mutebtn--sm" : e > 36 ? " mutebtn--lg" : ""}`, "aria-label": n, title: n, "aria-pressed": t.muted, onClick: t.toggleMute, children: /* @__PURE__ */ a(ue, { d: t.muted ? K.volumeOff : K.volume, size: 17, sw: 1.6, style: { color: t.muted ? "var(--ink-38)" : "var(--ink-70)" } }) });
3186
3192
  }
3187
- function Ll() {
3193
+ function wl() {
3188
3194
  const [t, e] = O(""), n = z(null), r = tt((s) => {
3189
3195
  clearTimeout(n.current), e(s), n.current = setTimeout(() => e(""), 3e3);
3190
3196
  }, []);
3191
3197
  return E(() => () => clearTimeout(n.current), []), [t, r];
3192
3198
  }
3193
- const wl = 0.2, kl = 140, vl = 320;
3194
- function jl(t, e) {
3199
+ const kl = 0.2, vl = 140, jl = 320;
3200
+ function zl(t, e) {
3195
3201
  const n = z(t);
3196
3202
  n.current = t;
3197
3203
  const r = z(0), s = z(1), i = tt((o, l) => {
@@ -3205,13 +3211,13 @@ function jl(t, e) {
3205
3211
  d();
3206
3212
  }, []);
3207
3213
  E(() => {
3208
- i(e ? wl : 1, e ? kl : vl);
3214
+ i(e ? kl : 1, e ? vl : jl);
3209
3215
  }, [e, i]), E(() => () => {
3210
3216
  cancelAnimationFrame(r.current), s.current = 1;
3211
3217
  for (const o of n.current) o.setVolume(1);
3212
3218
  }, []);
3213
3219
  }
3214
- function zl(t, e, n, r) {
3220
+ function Il(t, e, n, r) {
3215
3221
  var Qe;
3216
3222
  const s = z(null), i = z(!1), o = z(!1), [l, c] = O(null), [u, d] = O(!0), g = z(!0), M = z(!1), [p, y] = O(0), j = z(0);
3217
3223
  j.current = p;
@@ -3224,7 +3230,7 @@ function zl(t, e, n, r) {
3224
3230
  }, R = (G, ce) => {
3225
3231
  var ke;
3226
3232
  return (ke = s.current) == null ? void 0 : ke.call(s, G, ce);
3227
- }, X = l === 1 || l === 3, I = z(null), b = z(null), Q = Ie(() => ({
3233
+ }, X = l === 1 || l === 3, I = z(null), b = z(null), Q = ze(() => ({
3228
3234
  muted: !0,
3229
3235
  bind: (G) => {
3230
3236
  s.current = G, G || (i.current = !1);
@@ -3253,7 +3259,7 @@ function zl(t, e, n, r) {
3253
3259
  }, [C, r, p]), E(() => {
3254
3260
  r == null && k.current && (te(!1), R("playVideo"));
3255
3261
  }, [r]);
3256
- const L = t.length ? ((Qe = t[t.length - 1].words[t[t.length - 1].words.length - 1]) == null ? void 0 : Qe.end) ?? t[t.length - 1].start + 4 : 0, v = e || L || 1, S = Ie(() => {
3262
+ const L = t.length ? ((Qe = t[t.length - 1].words[t[t.length - 1].words.length - 1]) == null ? void 0 : Qe.end) ?? t[t.length - 1].start + 4 : 0, v = e || L || 1, S = ze(() => {
3257
3263
  if (!t.length) return 0;
3258
3264
  let G = 0;
3259
3265
  for (let ce = 0; ce < t.length; ce++) t[ce].start <= p + 0.05 && (G = ce);
@@ -3269,7 +3275,7 @@ function zl(t, e, n, r) {
3269
3275
  R("playVideo");
3270
3276
  }, P = () => {
3271
3277
  o.current = !1, te(!1), R("pauseVideo");
3272
- }, H = () => {
3278
+ }, V = () => {
3273
3279
  if (!i.current) {
3274
3280
  o.current = !0;
3275
3281
  return;
@@ -3313,7 +3319,7 @@ function zl(t, e, n, r) {
3313
3319
  dur: v,
3314
3320
  muted: u,
3315
3321
  seekN: ne,
3316
- toggle: H,
3322
+ toggle: V,
3317
3323
  seekRow: ae,
3318
3324
  toggleMute: () => {
3319
3325
  const G = !g.current;
@@ -3348,7 +3354,7 @@ function zl(t, e, n, r) {
3348
3354
  setVolume: (G) => R("setVolume", [Math.round(G * 100)])
3349
3355
  }, lead: Q, setVideoSound: pe };
3350
3356
  }
3351
- function Il(t, e, n, r, s = 0, i = null) {
3357
+ function Ol(t, e, n, r, s = 0, i = null) {
3352
3358
  var le;
3353
3359
  const o = z(null), [l, c] = O(!1), [u, d] = O(0), [g, M] = O(!1), p = z(g);
3354
3360
  p.current = g;
@@ -3362,7 +3368,7 @@ function Il(t, e, n, r, s = 0, i = null) {
3362
3368
  c(!1), o.current = null;
3363
3369
  return;
3364
3370
  }
3365
- const A = Ks(t), Ne = C.current;
3371
+ const A = Js(t), Ne = C.current;
3366
3372
  return A.preload = "metadata", A.muted = p.current || y.current, A.onplay = () => c(!0), A.onpause = () => c(!1), A.onended = () => c(!1), A.onloadedmetadata = () => {
3367
3373
  h(!0), A.currentTime = ((m == null ? void 0 : m.t) ?? 0) + Ne, m != null && m.playing && A.play().catch((Z) => {
3368
3374
  m.asked && (Z == null ? void 0 : Z.name) === "NotAllowedError" || T(yt(Z));
@@ -3371,7 +3377,7 @@ function Il(t, e, n, r, s = 0, i = null) {
3371
3377
  c(!1);
3372
3378
  const Z = A.error, de = ha(Z, !1);
3373
3379
  ua(t).then((W) => {
3374
- Ml(W == null ? void 0 : W.message) || Zs(Z), o.current === A && (T({ message: (W == null ? void 0 : W.message) ?? de }), W != null && W.permanent || (o.current = null));
3380
+ gl(W == null ? void 0 : W.message) || qs(Z), o.current === A && (T({ message: (W == null ? void 0 : W.message) ?? de }), W != null && W.permanent || (o.current = null));
3375
3381
  });
3376
3382
  }, o.current = A, () => {
3377
3383
  D.current = { t: Math.max(0, A.currentTime - Ne), playing: !A.paused && !A.ended }, A.pause(), A.onplay = A.onpause = A.onended = A.onloadedmetadata = A.onerror = null, o.current = null;
@@ -3417,12 +3423,12 @@ function Il(t, e, n, r, s = 0, i = null) {
3417
3423
  };
3418
3424
  return m = requestAnimationFrame(A), () => cancelAnimationFrame(m);
3419
3425
  }, [l]);
3420
- const U = Ie(() => {
3426
+ const U = ze(() => {
3421
3427
  if (!n.length) return 0;
3422
3428
  let m = 0;
3423
3429
  for (let A = 0; A < n.length; A++) n[A].start <= u + 0.05 && (m = A);
3424
3430
  return m;
3425
- }, [n, u]), [Me, P] = O(0), H = (m) => {
3431
+ }, [n, u]), [Me, P] = O(0), V = (m) => {
3426
3432
  const A = L.current != null ? Math.min(m, Math.max(0, L.current - 0.5)) : m, Ne = o.current;
3427
3433
  d(A), Ne && (Ne.currentTime = A + C.current), P((Z) => Z + 1);
3428
3434
  }, ae = (m) => {
@@ -3446,13 +3452,13 @@ function Il(t, e, n, r, s = 0, i = null) {
3446
3452
  $(!1);
3447
3453
  return;
3448
3454
  }
3449
- m.currentTime < C.current && (m.currentTime = C.current), u >= I - 0.25 && H(0), m.play().catch(ae);
3455
+ m.currentTime < C.current && (m.currentTime = C.current), u >= I - 0.25 && V(0), m.play().catch(ae);
3450
3456
  }, re = (m) => {
3451
3457
  const A = n[Math.max(0, Math.min(n.length - 1, m))];
3452
- A && H(A.start);
3453
- }, we = (m) => H(Math.max(0, Math.min(1, m)) * I), pe = (m) => {
3458
+ A && V(A.start);
3459
+ }, we = (m) => V(Math.max(0, Math.min(1, m)) * I), pe = (m) => {
3454
3460
  const A = gn(m, n, I);
3455
- H(A.t);
3461
+ V(A.t);
3456
3462
  const Ne = o.current;
3457
3463
  if (Ne) {
3458
3464
  if (!A.playing) {
@@ -3461,7 +3467,7 @@ function Il(t, e, n, r, s = 0, i = null) {
3461
3467
  }
3462
3468
  $(!1), Ne.play().catch(ae);
3463
3469
  }
3464
- }, Ce = (m) => H(m.start), xe = (m) => {
3470
+ }, Ce = (m) => V(m.start), xe = (m) => {
3465
3471
  re(m);
3466
3472
  const A = o.current;
3467
3473
  A && A.paused && A.play().catch(ae);
@@ -3540,15 +3546,15 @@ function Il(t, e, n, r, s = 0, i = null) {
3540
3546
  }
3541
3547
  };
3542
3548
  }
3543
- function Ol(t, e, n, r, s, i, o = !1, l) {
3549
+ function Cl(t, e, n, r, s, i, o = !1, l) {
3544
3550
  const c = z(/* @__PURE__ */ new Set());
3545
3551
  c.current = l ?? c.current;
3546
3552
  const u = z(null), [d, g] = O(!1), [M, p] = O(0), [y, j] = O(0), [T, N] = O(!1), h = z(T);
3547
3553
  h.current = T;
3548
3554
  const [C, D] = O(null), [k, te] = O(null), [R, X] = O(null), [I, b] = O(null), Q = z(I);
3549
3555
  Q.current = I;
3550
- const [L, v] = O(null), [S, ne] = O(null), [$, U] = O(null), [Me, P] = O(!1), H = z(e);
3551
- H.current = e;
3556
+ const [L, v] = O(null), [S, ne] = O(null), [$, U] = O(null), [Me, P] = O(!1), V = z(e);
3557
+ V.current = e;
3552
3558
  const ae = z(o), oe = z([]);
3553
3559
  ae.current = o, u.current && (u.current.flow = o);
3554
3560
  const re = z(null), we = z(s);
@@ -3558,13 +3564,13 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
3558
3564
  const Ce = tt((Y) => {
3559
3565
  Y.finite = !0, Y.coming = (_) => c.current.has(_), Y.readAhead = 6, Y.readAheadS = 45, Y.onWaiting = (_) => te(_), Y.onStarting = (_) => X(_), Y.onSentence = (_) => {
3560
3566
  if (g(Y.playing), _ == null) return;
3561
- const B = H.current.findIndex((ee) => ee.sentenceId === _);
3567
+ const B = V.current.findIndex((ee) => ee.sentenceId === _);
3562
3568
  B >= 0 && p(B);
3563
3569
  }, Y.onError = (_) => {
3564
- g(Y.playing), D(_ instanceof Js ? { message: "The voice could not be started. Press Play to try again.", code: "voice_not_started" } : { message: "A line of this reading could not be played." });
3570
+ g(Y.playing), D(_ instanceof Xs ? { message: "The voice could not be started. Press Play to try again.", code: "voice_not_started" } : { message: "A line of this reading could not be played." });
3565
3571
  }, Y.gapBefore = (_, B) => {
3566
3572
  if (!ae.current) return 0;
3567
- const ee = H.current, ie = ee.find((Le) => Le.sentenceId === _), Te = ee.find((Le) => Le.sentenceId === B);
3573
+ const ee = V.current, ie = ee.find((Le) => Le.sentenceId === _), Te = ee.find((Le) => Le.sentenceId === B);
3568
3574
  if (!Te) return 0;
3569
3575
  const _e = Q.current;
3570
3576
  if (_ == null) return _e && _e.sid === B ? Math.max(0, Te.start - _e.t) : 0;
@@ -3572,20 +3578,20 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
3572
3578
  return Ee && Date.now() - Ee.at < 2e3 ? Math.max(0, Te.start - (Ee.t + (Date.now() - Ee.at) / 1e3 * Y.rate)) : !ie || Te.start <= ie.start ? 0 : Math.max(0, Te.start - Ot(ie, ie.start, ie.start + 4));
3573
3579
  }, Y.flow = ae.current, Y.silentSpan = (_) => {
3574
3580
  var qe;
3575
- const B = H.current, ee = B.findIndex((at) => at.sentenceId === _), ie = B[ee];
3581
+ const B = V.current, ee = B.findIndex((it) => it.sentenceId === _), ie = B[ee];
3576
3582
  if (!ie) return null;
3577
3583
  const Te = ((qe = B[ee + 1]) == null ? void 0 : qe.start) ?? Ot(ie, ie.start, ie.start + 4), _e = Math.max(0, Te - ie.start), Ee = re.current, Le = Ee && Date.now() - Ee.at < 2e3 ? Ee.t + (Date.now() - Ee.at) / 1e3 * (Y.rate || 1) : ie.start, Ve = Math.max(0, Math.min(_e, Le - ie.start));
3578
3584
  return { fromS: Ve, ms: (_e - Ve) * 1e3 / (Y.rate || 1) };
3579
3585
  }, Y.speakable = (_) => {
3580
3586
  const B = we.current;
3581
3587
  if (!B || !B.size) return !0;
3582
- const ee = H.current.find((ie) => ie.sentenceId === _);
3588
+ const ee = V.current.find((ie) => ie.sentenceId === _);
3583
3589
  return !ee || !B.has(ee.speaker);
3584
3590
  };
3585
3591
  }, []), xe = z(null), Qe = z(null), G = z(null), [ce, ke] = O(!1), Ae = z(() => {
3586
3592
  }), se = (Y) => {
3587
3593
  if (G.current = Y, ke(!!(Y != null && Y.playing)), !Y) return;
3588
- const _ = gn(Y, H.current, V).index;
3594
+ const _ = gn(Y, V.current, F).index;
3589
3595
  p(_), fe.current = _;
3590
3596
  }, le = () => {
3591
3597
  G.current && se(null);
@@ -3602,7 +3608,7 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
3602
3608
  const _ = G.current;
3603
3609
  _ && (ae.current || t.some((ee) => ee.sentenceId >= (_.sentenceId ?? 0))) && (se(null), Ae.current(_));
3604
3610
  }, [r, t]);
3605
- const m = Ie(() => o ? e.map((Y) => Y.sentenceId).filter((Y) => Y != null) : [], [e, o]);
3611
+ const m = ze(() => o ? e.map((Y) => Y.sentenceId).filter((Y) => Y != null) : [], [e, o]);
3606
3612
  oe.current = m, E(() => {
3607
3613
  var Y;
3608
3614
  (Y = u.current) == null || Y.setSequence(m);
@@ -3629,14 +3635,14 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
3629
3635
  const _ = setInterval(Y, 100);
3630
3636
  return () => clearInterval(_);
3631
3637
  }, [d, A]);
3632
- const Ne = Ie(() => new Set(t.map((Y) => Y.sentenceId)), [t]), Z = (Y) => {
3638
+ const Ne = ze(() => new Set(t.map((Y) => Y.sentenceId)), [t]), Z = (Y) => {
3633
3639
  var B;
3634
3640
  const _ = (B = e[Y]) == null ? void 0 : B.sentenceId;
3635
3641
  return _ != null && Ne.has(_);
3636
3642
  }, de = (Y, _) => {
3637
3643
  for (let B = Y; B >= 0 && B < e.length; B += _) if (Z(B)) return B;
3638
3644
  return null;
3639
- }, W = Math.max(0, Math.min(M, Math.max(0, e.length - 1))), De = e.length ? e[e.length - 1].start + 4 : 0, V = n || De || 1, je = z(!1), fe = z(M);
3645
+ }, W = Math.max(0, Math.min(M, Math.max(0, e.length - 1))), De = e.length ? e[e.length - 1].start + 4 : 0, F = n || De || 1, ve = z(!1), fe = z(M);
3640
3646
  fe.current = M;
3641
3647
  const ge = (Y) => {
3642
3648
  var _, B, ee;
@@ -3645,22 +3651,22 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
3645
3651
  var B, ee, ie;
3646
3652
  const _ = Math.max(0, Math.min(Math.max(0, e.length - 1), Y));
3647
3653
  p(_), fe.current = _, j((Te) => Te + 1), (ee = u.current) == null || ee.seek(((B = e[_]) == null ? void 0 : B.sentenceId) ?? null), g(!!((ie = u.current) != null && ie.playing));
3648
- }, ze = (Y) => {
3654
+ }, je = (Y) => {
3649
3655
  var _;
3650
3656
  le(), b(null), (_ = u.current) == null || _.startWithin(-1, 0), q(Y);
3651
3657
  }, $e = (Y) => {
3652
3658
  var ie;
3653
- const _ = e[Y], B = (_ == null ? void 0 : _.start) ?? 0, ee = ((ie = e[Y + 1]) == null ? void 0 : ie.start) ?? Ot(_, B, V);
3659
+ const _ = e[Y], B = (_ == null ? void 0 : _.start) ?? 0, ee = ((ie = e[Y + 1]) == null ? void 0 : ie.start) ?? Ot(_, B, F);
3654
3660
  return { from: B, span: Math.max(0, ee - B) };
3655
3661
  }, ye = $e(W), be = Math.max(0, Math.min(ye.span, Ot(e[W], ye.from, ye.from + 4) - ye.from)), He = I ? I.t : o ? S != null && Me ? ye.from + Math.min(ye.span, S) : S != null ? $ != null ? Math.min(ye.from, $ + S) : ye.from + Math.min(ye.span, be + S) : L && L.dur > 0 ? ye.from + Math.min(be, L.t / L.dur * be) : ye.from : L && L.dur > 0 ? ye.from + Math.min(ye.span, L.t / L.dur * ye.span) : ye.from;
3656
3662
  E(() => {
3657
- Qe.current = G.current ?? Nl(e, He, d, V);
3663
+ Qe.current = G.current ?? pl(e, He, d, F);
3658
3664
  });
3659
- const Oe = {
3665
+ const Ie = {
3660
3666
  playing: d || ce,
3661
3667
  t: He,
3662
3668
  idx: W,
3663
- dur: V,
3669
+ dur: F,
3664
3670
  muted: T,
3665
3671
  wordSync: !1,
3666
3672
  timed: o,
@@ -3706,20 +3712,20 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
3706
3712
  var Y, _, B;
3707
3713
  le(), (Y = u.current) == null || Y.pause(), g(!1), p(0), v(null), (B = u.current) == null || B.seek(((_ = e[0]) == null ? void 0 : _.sentenceId) ?? null);
3708
3714
  },
3709
- seekRow: ze,
3715
+ seekRow: je,
3710
3716
  resumeAt: (Y) => {
3711
3717
  se(Y), t.some((_) => _.sentenceId >= (Y.sentenceId ?? 0)) && (se(null), Ae.current(Y));
3712
3718
  },
3713
3719
  seekFrac: (Y) => {
3714
- var at, Tt, Mt;
3720
+ var it, Tt, gt;
3715
3721
  le();
3716
- const _ = Math.max(0, Math.min(1, Y)) * V;
3722
+ const _ = Math.max(0, Math.min(1, Y)) * F;
3717
3723
  let B = 0;
3718
3724
  for (let We = 0; We < e.length; We++) e[We].start <= _ && (B = We);
3719
3725
  const ee = e[B], ie = o && ee && _ < ee.start - 0.05;
3720
3726
  if (o && ee && (ie || e[B + 1] && _ >= Ot(ee, ee.start, ee.start + 4))) {
3721
3727
  const We = ie ? B : B + 1, Ue = e[We];
3722
- (at = u.current) == null || at.startWithin(-1, 0);
3728
+ (it = u.current) == null || it.startWithin(-1, 0);
3723
3729
  const nt = { t: _, sid: Ue.sentenceId ?? null };
3724
3730
  Q.current = nt, b(nt), q(We);
3725
3731
  return;
@@ -3733,7 +3739,7 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
3733
3739
  const Ue = ee.words[We], nt = Ue.end > Ue.start ? Math.max(0, Math.min(1, (_ - Ue.start) / (Ue.end - Ue.start))) : 0;
3734
3740
  Le = Math.min(1, (Ve[We][0] + nt * (Ve[We][1] - Ve[We][0])) / qe);
3735
3741
  }
3736
- Te != null && ((Mt = u.current) == null || Mt.startWithin(Te, Le)), b(Le > 0.01 ? { t: _, sid: Te } : null), q(B);
3742
+ Te != null && ((gt = u.current) == null || gt.startWithin(Te, Le)), b(Le > 0.01 ? { t: _, sid: Te } : null), q(B);
3737
3743
  },
3738
3744
  seekWord: i ? (Y) => {
3739
3745
  var ie, Te, _e, Ee;
@@ -3750,18 +3756,18 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
3750
3756
  },
3751
3757
  prev: () => {
3752
3758
  const Y = de(W - 1, -1);
3753
- Y != null && ze(Y);
3759
+ Y != null && je(Y);
3754
3760
  },
3755
3761
  next: () => {
3756
3762
  const Y = de(W + 1, 1);
3757
- Y != null && ze(Y);
3763
+ Y != null && je(Y);
3758
3764
  },
3759
3765
  hold: () => {
3760
3766
  var Y;
3761
- d && ((Y = u.current) == null || Y.pause(), je.current = !0);
3767
+ d && ((Y = u.current) == null || Y.pause(), ve.current = !0);
3762
3768
  },
3763
3769
  release: () => {
3764
- je.current && (je.current = !1, ge(fe.current));
3770
+ ve.current && (ve.current = !1, ge(fe.current));
3765
3771
  },
3766
3772
  clearError: () => D(null),
3767
3773
  setVolume: (Y) => {
@@ -3777,51 +3783,51 @@ function Ol(t, e, n, r, s, i, o = !1, l) {
3777
3783
  const B = ((Te = u.current) == null ? void 0 : Te.resting()) ?? null;
3778
3784
  ne((B == null ? void 0 : B.s) ?? null), P(!!(B != null && B.silent)), g(!!((_e = u.current) != null && _e.playing));
3779
3785
  }
3780
- return Oe.joinAt = o ? (Y) => {
3781
- le(), Ye(gn({ t: Y, playing: !0, sentenceId: null, offset: 0, ended: !1 }, e, V).index);
3786
+ return Ie.joinAt = o ? (Y) => {
3787
+ le(), Ye(gn({ t: Y, playing: !0, sentenceId: null, offset: 0, ended: !1 }, e, F).index);
3782
3788
  } : void 0, Ae.current = (Y) => {
3783
3789
  var B;
3784
- const _ = gn(Y, e, V);
3790
+ const _ = gn(Y, e, F);
3785
3791
  if (ae.current) {
3786
3792
  p(_.index), fe.current = _.index, _.playing && Ye(_.index);
3787
3793
  return;
3788
3794
  }
3789
- (B = Oe.seekFrac) == null || B.call(Oe, _.t / V), _.playing && ge(fe.current);
3790
- }, Oe;
3795
+ (B = Ie.seekFrac) == null || B.call(Ie, _.t / F), _.playing && ge(fe.current);
3796
+ }, Ie;
3791
3797
  }
3792
- const Cl = () => {
3793
- }, xl = "The language this recording is read aloud in.", Dl = { title: "READ IN", note: "The transcript and its voice switch to this language." };
3794
- function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: g, hearOriginal: M = !1, timed: p = !1, stockVoices: y = !1, stickyPicker: j = !1, pickerBusy: T = null, voiceSheet: N }) {
3798
+ const xl = () => {
3799
+ }, Dl = "The language this recording is read aloud in.", bl = { title: "READ IN", note: "The transcript and its voice switch to this language." };
3800
+ function Sl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, langs: o, srcLang: l, canTranslate: c, pickedLang: u, setPickedLang: d, side: g, hearOriginal: M = !1, timed: p = !1, stockVoices: y = !1, stickyPicker: j = !1, pickerBusy: T = null, voiceSheet: N }) {
3795
3801
  var ft, Kt, Jt, Xt;
3796
- const { onAddVoice: h, onPickVoice: C, onSelectSpeaker: D, noCloneFor: k, castNoClone: te, castShort: R, castBuilding: X, badge: I, titleNode: b } = N ?? {}, Q = !!N, L = !!(N != null && N.pendingClones), [v, S] = Ta(), [ne, $] = O(null), [U, Me] = O(!1), [P, H] = O(!1), [ae, oe] = O(!1), [re, we] = O(!1), pe = u ?? l, Ce = u === null, xe = u != null || ne != null, G = ((F) => !!F && !!(o != null && o.voice.includes(F)))(Ce ? l : pe) ? Ce ? l : pe : "en", ce = fl(G), ke = (N == null ? void 0 : N.cloneOn) ?? !0, [Ae, se] = O(0), le = z(ke);
3802
+ const { onAddVoice: h, onPickVoice: C, onSelectSpeaker: D, noCloneFor: k, castNoClone: te, castShort: R, castBuilding: X, badge: I, titleNode: b } = N ?? {}, Q = !!N, L = !!(N != null && N.pendingClones), [v, S] = Ta(), [ne, $] = O(null), [U, Me] = O(!1), [P, V] = O(!1), [ae, oe] = O(!1), [re, we] = O(!1), pe = u ?? l, Ce = u === null, xe = u != null || ne != null, G = ((H) => !!H && !!(o != null && o.voice.includes(H)))(Ce ? l : pe) ? Ce ? l : pe : "en", ce = Nl(G), ke = (N == null ? void 0 : N.cloneOn) ?? !0, [Ae, se] = O(0), le = z(ke);
3797
3803
  E(() => {
3798
- le.current !== ke && (le.current = ke, se((F) => F + 1));
3804
+ le.current !== ke && (le.current = ke, se((H) => H + 1));
3799
3805
  }, [ke]);
3800
- const m = Go(G, xe || s || P, Zo(e) * 1e3 + Ae, { id: t ?? null, shareCode: i.shareCode ?? null }), A = Ie(() => ((m == null ? void 0 : m.voices) ?? []).filter((F) => Q || !F.cloned || F.speaker != null), [m, Q]), Ne = A.length > 1, Z = Es(o, pe), de = di(), W = Ie(() => La(o, "translation"), [o]), [De, V] = O(null), [je] = O(() => /* @__PURE__ */ new Set()), [fe, ge] = O({}), q = Ie(() => Bo(n, e, de.vcUnknownSpk), [n, e, de]), ze = Ne && q.filter((F) => F.key >= 0).length > 1, $e = De != null && q.some((F) => F.key === De) ? De : ((ft = q[0]) == null ? void 0 : ft.key) ?? null, ye = Ie(() => {
3801
- const F = As(q, A, ke);
3802
- for (const [ve, Be] of Object.entries(fe[G ?? ""] ?? {})) F.set(Number(ve), Be);
3803
- return F;
3804
- }, [q, A, fe, G, ke]), be = ze && Object.keys(fe[G ?? ""] ?? {}).length > 0, He = Ie(() => y && !be ? As(q, A, !1) : null, [y, be, q, A]), Oe = Ie(() => be ? bs(ye) || null : He && bs(He) || null, [be, ye, He]), Ye = be ? ye : He, Y = A.some((F) => F.cloned && F.consent !== "pending"), _ = !!pe && !!(o != null && o.voice.includes(pe)), B = _ && !M, ee = Ie(
3805
- () => n.filter((F) => !F.suppressed && !F.unclear).map((F) => F.sentenceId).filter((F) => F != null),
3806
+ const m = Zo(G, xe || s || P, qo(e) * 1e3 + Ae, { id: t ?? null, shareCode: i.shareCode ?? null }), A = ze(() => ((m == null ? void 0 : m.voices) ?? []).filter((H) => Q || !H.cloned || H.speaker != null), [m, Q]), Ne = A.length > 1, Z = Ys(o, pe), de = di(), W = ze(() => La(o, "translation"), [o]), [De, F] = O(null), [ve] = O(() => /* @__PURE__ */ new Set()), [fe, ge] = O({}), q = ze(() => Ho(n, e, de.vcUnknownSpk), [n, e, de]), je = Ne && q.filter((H) => H.key >= 0).length > 1, $e = De != null && q.some((H) => H.key === De) ? De : ((ft = q[0]) == null ? void 0 : ft.key) ?? null, ye = ze(() => {
3807
+ const H = Es(q, A, ke);
3808
+ for (const [Oe, Be] of Object.entries(fe[G ?? ""] ?? {})) H.set(Number(Oe), Be);
3809
+ return H;
3810
+ }, [q, A, fe, G, ke]), be = je && Object.keys(fe[G ?? ""] ?? {}).length > 0, He = ze(() => y && !be ? Es(q, A, !1) : null, [y, be, q, A]), Ie = ze(() => be ? Ss(ye) || null : He && Ss(He) || null, [be, ye, He]), Ye = be ? ye : He, Y = A.some((H) => H.cloned && H.consent !== "pending"), _ = !!pe && !!(o != null && o.voice.includes(pe)), B = _ && !M, ee = ze(
3811
+ () => n.filter((H) => !H.suppressed && !H.unclear).map((H) => H.sentenceId).filter((H) => H != null),
3806
3812
  [n]
3807
- ), ie = qo({ recordingId: t, lang: pe, ended: s, cred: i, pickedVoice: Oe ?? ne, sentenceIds: s && B ? ee : void 0 }), Te = A.find((F) => F.id === ne) ?? A.find((F) => {
3808
- var ve;
3809
- return F.id === ((ve = ie.track) == null ? void 0 : ve.voice);
3810
- }) ?? A.find((F) => F.default) ?? A[0] ?? null, _e = (Te == null ? void 0 : Te.id) ?? null;
3813
+ ), ie = Ko({ recordingId: t, lang: pe, ended: s, cred: i, pickedVoice: Ie ?? ne, sentenceIds: s && B ? ee : void 0 }), Te = A.find((H) => H.id === ne) ?? A.find((H) => {
3814
+ var Oe;
3815
+ return H.id === ((Oe = ie.track) == null ? void 0 : Oe.voice);
3816
+ }) ?? A.find((H) => H.default) ?? A[0] ?? null, _e = (Te == null ? void 0 : Te.id) ?? null;
3811
3817
  E(() => {
3812
3818
  if (!ie.rendering) return;
3813
- const F = setInterval(ie.reload, 4e3);
3814
- return () => clearInterval(F);
3819
+ const H = setInterval(ie.reload, 4e3);
3820
+ return () => clearInterval(H);
3815
3821
  }, [ie.rendering, ie.reload]);
3816
- const Ee = `${t ?? ""}|${pe ?? ""}|${Oe ?? ne ?? ((Kt = ie.track) == null ? void 0 : Kt.voiceKey) ?? "default"}`, Le = Ol(ie.clips, n, r, Ee, je, (Jt = ie.track) == null ? void 0 : Jt.wordTimes, p, ie.coming);
3822
+ const Ee = `${t ?? ""}|${pe ?? ""}|${Ie ?? ne ?? ((Kt = ie.track) == null ? void 0 : Kt.voiceKey) ?? "default"}`, Le = Cl(ie.clips, n, r, Ee, ve, (Jt = ie.track) == null ? void 0 : Jt.wordTimes, p, ie.coming);
3817
3823
  E(() => {
3818
- var ve;
3819
- const F = (ve = n[Le.idx]) == null ? void 0 : ve.sentenceId;
3820
- F != null && ie.setNear(F);
3824
+ var Oe;
3825
+ const H = (Oe = n[Le.idx]) == null ? void 0 : Oe.sentenceId;
3826
+ H != null && ie.setNear(H);
3821
3827
  }, [Le.idx]), E(() => {
3822
3828
  !re || !Le.has || (we(!1), Le.playing || Le.toggle());
3823
3829
  }, [re, Le.has]);
3824
- const Ve = ie.rendering, qe = Ve ? null : ie.failed ?? null, at = !1, Tt = xe && B, Mt = xe && !Ce && B && !(ie.listed && ie.listed.lang === pe && ie.listed.recordingId === t), We = {
3830
+ const Ve = ie.rendering, qe = Ve ? null : ie.failed ?? null, it = !1, Tt = xe && B, gt = xe && !Ce && B && !(ie.listed && ie.listed.lang === pe && ie.listed.recordingId === t), We = {
3825
3831
  ...Le,
3826
3832
  has: Le.has || Tt && s,
3827
3833
  toggle: () => {
@@ -3832,108 +3838,101 @@ function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, lan
3832
3838
  Le.toggle();
3833
3839
  }
3834
3840
  }, Ue = () => Me(!0), nt = () => {
3835
- Me(!1), H(ae), oe(!1);
3836
- }, Fe = (F) => {
3837
- if (d(F), S(F), !((g || j) && !ae)) {
3838
- if (F != null) {
3841
+ Me(!1), V(ae), oe(!1);
3842
+ }, Fe = (H) => {
3843
+ if (d(H), S(H), !((g || j) && !ae)) {
3844
+ if (H != null) {
3839
3845
  nt();
3840
3846
  return;
3841
3847
  }
3842
- ce.reset(), Me(!1), H(!1), oe(!1);
3848
+ ce.reset(), Me(!1), V(!1), oe(!1);
3843
3849
  }
3844
3850
  }, Lt = () => {
3845
- ce.reset(), H(!0);
3851
+ ce.reset(), V(!0);
3846
3852
  }, ut = () => {
3847
- ce.reset(), H(!1);
3853
+ ce.reset(), V(!1);
3848
3854
  }, vt = U && !ae, J = P || U && ae, Ut = () => {
3849
3855
  if (vt) {
3850
3856
  Me(!1);
3851
3857
  return;
3852
3858
  }
3853
- ce.reset(), H(!1), oe(!1), Me(!0);
3859
+ ce.reset(), V(!1), oe(!1), Me(!0);
3854
3860
  }, x = () => {
3855
3861
  if (ce.reset(), J) {
3856
- H(!1), Me(!1), oe(!1);
3862
+ V(!1), Me(!1), oe(!1);
3857
3863
  return;
3858
3864
  }
3859
- Me(!1), oe(!1), H(!0);
3860
- }, Tn = (F) => {
3861
- if (ce.reset(), H(ze), (pe !== G || Ce) && d(G), ie.forget(), we(!0), ze && $e != null && G) {
3862
- const ve = new Map(ye);
3863
- ve.set($e, F), ge((Be) => ({ ...Be, [G]: Object.fromEntries(ve) })), $(null);
3865
+ Me(!1), oe(!1), V(!0);
3866
+ }, Tn = (H) => {
3867
+ if (ce.reset(), V(je), (pe !== G || Ce) && d(G), ie.forget(), we(!0), je && $e != null && G) {
3868
+ const Oe = new Map(ye);
3869
+ Oe.set($e, H), ge((Be) => ({ ...Be, [G]: Object.fromEntries(Oe) })), $(null);
3864
3870
  return;
3865
3871
  }
3866
- $(F);
3867
- }, rt = Ce ? { ...Es(o, null), flag: /* @__PURE__ */ a(ue, { d: K.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : Z, xt = c ? g ? /* @__PURE__ */ a("span", { className: "barchip", style: vt ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ a(fn, { flag: rt.flag, code: rt.code, bordered: !1, onClick: Ut, style: Ys }) }) : /* @__PURE__ */ a(fn, { flag: rt.flag, code: rt.code, bordered: !1, onClick: Ue, style: Ys }) : null, jt = K.voiceClone, Ft = xe && (!!ie.track || Ve), Wt = qe ? "var(--conf-low)" : Ft || g && J ? "var(--brand)" : "var(--ink-55)", Ge = Ve || !!Le.preparing && xe, dt = Le.preparing ? `Speaking this line in ${(Te == null ? void 0 : Te.name) ?? "this voice"}…` : Ve ? `Preparing this recording in ${(Te == null ? void 0 : Te.name) ?? "this voice"} — it will play as soon as it is ready` : qe ? `This voice could not be prepared: ${qe}` : _ ? Ne ? "Choose a voice" : Te ? Te.name : de.vcNoVoice + Z.label : `${de.vcNoVoice}${Z.label}`, Dt = /* @__PURE__ */ a(ja, { open: U, onClose: nt, keepOpen: (!!g || j) && !ae, value: Ce ? null : pe, onSelect: Fe, languages: W, title: (g == null ? void 0 : g.title) ?? "SPOKEN LANGUAGE", note: (g == null ? void 0 : g.note) ?? xl, searchPlaceholder: de.search, none: "Original", pinned: (Ce ? l : pe) ? [Ce ? l : pe] : [], recent: v, requireVoice: ae, sticky: j, busy: T }), st = Ie(() => A.filter((F) => F.cloned && !F.auto), [A]), ot = (F) => (F.voiceId ? st.find((ve) => ve.id === `clone:${F.voiceId}`) : void 0) ?? st.find((ve) => ve.name === F.name) ?? null, gt = Ie(() => q.filter((F) => F.key >= 0), [q]), bt = Ie(() => {
3868
- const F = A.filter((Be) => !Be.cloned);
3869
- if (!ze) return [...F, ...st];
3870
- const ve = [];
3871
- for (const Be of gt) {
3872
- if (ot(Be)) continue;
3872
+ $(H);
3873
+ }, rt = Ce ? { ...Ys(o, null), flag: /* @__PURE__ */ a(ue, { d: K.langAuto, size: 21, sw: 1.7, style: { color: "currentColor", display: "block" } }) } : Z, xt = c ? g ? /* @__PURE__ */ a("span", { className: "barchip", style: vt ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)" } : void 0, children: /* @__PURE__ */ a(fn, { flag: rt.flag, code: rt.code, bordered: !1, onClick: Ut, style: _s }) }) : /* @__PURE__ */ a(fn, { flag: rt.flag, code: rt.code, bordered: !1, onClick: Ue, style: _s }) : null, jt = K.voiceClone, Ft = xe && (!!ie.track || Ve), Wt = qe ? "var(--conf-low)" : Ft || g && J ? "var(--brand)" : "var(--ink-55)", Ge = Ve || !!Le.preparing && xe, dt = Le.preparing ? `Speaking this line in ${(Te == null ? void 0 : Te.name) ?? "this voice"}…` : Ve ? `Preparing this recording in ${(Te == null ? void 0 : Te.name) ?? "this voice"} — it will play as soon as it is ready` : qe ? `This voice could not be prepared: ${qe}` : _ ? Ne ? "Choose a voice" : Te ? Te.name : de.vcNoVoice + Z.label : `${de.vcNoVoice}${Z.label}`, Dt = /* @__PURE__ */ a(ja, { open: U, onClose: nt, keepOpen: (!!g || j) && !ae, value: Ce ? null : pe, onSelect: Fe, languages: W, title: (g == null ? void 0 : g.title) ?? "SPOKEN LANGUAGE", note: (g == null ? void 0 : g.note) ?? Dl, searchPlaceholder: de.search, none: "Original", pinned: (Ce ? l : pe) ? [Ce ? l : pe] : [], recent: v, requireVoice: ae, sticky: j, busy: T }), at = ze(() => A.filter((H) => H.cloned && !H.auto), [A]), lt = (H) => H.voiceId ? at.find((Oe) => Oe.id === `clone:${H.voiceId}`) ?? null : null, Mt = ze(() => q.filter((H) => H.key >= 0), [q]), bt = ze(() => {
3874
+ const H = A.filter((Be) => !Be.cloned);
3875
+ if (!je) return [...H, ...s && Mt.length === 1 ? at.filter((Be) => Be.id === `clone:${Mt[0].voiceId}`) : []];
3876
+ const Oe = [];
3877
+ for (const Be of Mt) {
3878
+ if (lt(Be)) continue;
3873
3879
  const Nt = A.find((zt) => zt.cloned && zt.auto && zt.speaker === Be.key);
3874
- !Nt || Nt.ready === !1 || Nt.consent === "pending" && !L || ve.push({ id: Nt.id, name: Be.name, cloned: !0, default: !1, live: !0, auto: !0, gender: Be.sex ?? Nt.gender ?? null, speaker: Be.key, consent: Nt.consent ?? null });
3880
+ !Nt || Nt.ready === !1 || Nt.consent === "pending" && !L || Oe.push({ id: Nt.id, name: Be.name, cloned: !0, default: !1, live: !0, auto: !0, gender: Be.sex ?? Nt.gender ?? null, speaker: Be.key, consent: Nt.consent ?? null });
3875
3881
  }
3876
- return [...F, ...st, ...ve];
3877
- }, [A, st, ze, gt, L]), it = ze ? gt.find((F) => F.key === $e) ?? null : null, Gt = (F) => {
3878
- var ve;
3879
- return F ? ((ve = A.find((Be) => Be.id === F)) == null ? void 0 : ve.gender) ?? null : null;
3880
- }, Rt = it ? it.sex ?? Gt(ye.get(it.key)) : null, wt = Ie(() => {
3881
- if (!it) return bt;
3882
- const F = new Set(gt.filter((ve) => ve.key !== it.key).map((ve) => {
3883
- var Be;
3884
- return (Be = ot(ve)) == null ? void 0 : Be.id;
3885
- }).filter(Boolean));
3886
- return bt.filter((ve) => ve.cloned ? ve.live ? ve.speaker === it.key : !F.has(ve.id) : !0);
3887
- }, [bt, it, Rt, gt]), et = (F) => A.find((ve) => ve.cloned && ve.auto && ve.speaker === F) ?? null, ht = { people: gt, gvList: A, autoOf: et, savedFor: ot }, St = (I == null ? void 0 : I(ht)) ?? 0, Zt = /* @__PURE__ */ f("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": g ? J : void 0, title: Ge || qe ? dt : void 0, style: { cursor: "pointer", background: Ft || Ge || g && J ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: g && J ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: g ? x : Lt, children: [
3882
+ return [...H, ...at, ...Oe];
3883
+ }, [A, at, je, Mt, L, s]), st = je ? Mt.find((H) => H.key === $e) ?? null : null, Gt = (H) => {
3884
+ var Oe;
3885
+ return H ? ((Oe = A.find((Be) => Be.id === H)) == null ? void 0 : Oe.gender) ?? null : null;
3886
+ }, Rt = st ? st.sex ?? Gt(ye.get(st.key)) : null, wt = ze(() => st ? bt.filter((H) => H.cloned ? H.live ? H.speaker === st.key : H.id === `clone:${st.voiceId}` : !0) : bt, [bt, st, Rt, Mt]), et = (H) => A.find((Oe) => Oe.cloned && Oe.auto && Oe.speaker === H) ?? null, ht = { people: Mt, gvList: A, autoOf: et, savedFor: lt }, St = (I == null ? void 0 : I(ht)) ?? 0, Zt = /* @__PURE__ */ f("button", { type: "button", className: "txvoice", "aria-label": "Voice", "aria-pressed": g ? J : void 0, title: Ge || qe ? dt : void 0, style: { cursor: "pointer", background: Ft || Ge || g && J ? "var(--brand-tint)" : "var(--fill-06)", boxShadow: g && J ? "inset 0 0 0 1.5px var(--brand)" : void 0 }, onClick: g ? x : Lt, children: [
3888
3887
  Ge ? /* @__PURE__ */ a("span", { style: { width: 16, height: 16, borderRadius: "50%", border: "2px solid var(--fill-10)", borderTopColor: "var(--brand)", animation: "vs-spin .7s linear infinite" } }) : /* @__PURE__ */ a(ue, { d: jt, size: 17, sw: 1.6, style: { color: Wt } }),
3889
3888
  !!St && /* @__PURE__ */ a("span", { className: "txvoice__n", title: `${St} speaker${St === 1 ? "" : "s"} can get a cloned voice`, children: St })
3890
- ] }), lt = /* @__PURE__ */ a(Nn, { open: P, onClose: ut, title: de.vcSheet, titleNode: b, doneLabel: de.done, children: /* @__PURE__ */ a(
3891
- Vo,
3889
+ ] }), ot = /* @__PURE__ */ a(Nn, { open: P, onClose: ut, title: de.vcSheet, titleNode: b, doneLabel: de.done, children: /* @__PURE__ */ a(
3890
+ Fo,
3892
3891
  {
3893
3892
  t: de,
3894
- cast: ze && /* @__PURE__ */ a(
3895
- Ho,
3893
+ cast: je && /* @__PURE__ */ a(
3894
+ Vo,
3896
3895
  {
3897
3896
  t: de,
3898
3897
  roster: q,
3899
3898
  selected: $e,
3900
- onSelect: (F) => {
3901
- ce.reset(), V(F), D == null || D(F);
3899
+ onSelect: (H) => {
3900
+ ce.reset(), F(H), D == null || D(H);
3902
3901
  },
3903
- noClone: (F) => !!(te != null && te(F, ht)),
3904
- short: (F) => !!(R != null && R(F, ht)),
3905
- building: (F) => !ot(F) && (A.some((ve) => ve.cloned && ve.speaker === F.key && ve.ready === !1) || !!(X != null && X(F, ht))),
3906
- sexOf: (F) => F.sex ?? Gt(ye.get(F.key))
3902
+ noClone: (H) => !!(te != null && te(H, ht)),
3903
+ short: (H) => !!(R != null && R(H, ht)),
3904
+ building: (H) => !lt(H) && (A.some((Oe) => Oe.cloned && Oe.speaker === H.key && Oe.ready === !1) || !!(X != null && X(H, ht))),
3905
+ sexOf: (H) => H.sex ?? Gt(ye.get(H.key))
3907
3906
  }
3908
3907
  ),
3909
3908
  voices: wt,
3910
- onAdd: (F) => {
3911
- ce.reset(), h == null || h(F);
3909
+ onAdd: (H) => {
3910
+ ce.reset(), h == null || h(H);
3912
3911
  },
3913
- noClone: it && !wt.some((F) => F.cloned) ? (k == null ? void 0 : k(it, et(it.key), ht)) ?? null : null,
3914
- usedBy: ze && $e != null ? (F) => {
3915
- const ve = q.filter((Be) => Be.key !== $e && ye.get(Be.key) === F.id);
3916
- return ve.length ? ve.map((Be) => Be.name).join(", ") : null;
3912
+ noClone: st && !wt.some((H) => H.cloned) ? (k == null ? void 0 : k(st, et(st.key), ht)) ?? null : null,
3913
+ usedBy: je && $e != null ? (H) => {
3914
+ const Oe = q.filter((Be) => Be.key !== $e && ye.get(Be.key) === H.id);
3915
+ return Oe.length ? Oe.map((Be) => Be.name).join(", ") : null;
3917
3916
  } : void 0,
3918
3917
  foldKey: $e,
3919
3918
  foldFor: Rt,
3920
- currentId: ze && $e != null ? ye.get($e) ?? null : _e,
3919
+ currentId: je && $e != null ? ye.get($e) ?? null : _e,
3921
3920
  armedId: ce.armId,
3922
3921
  sampleId: ce.sampleId,
3923
3922
  dlId: ce.dlId,
3924
- onPick: (F) => {
3925
- if ((C == null ? void 0 : C(F)) === !1) {
3923
+ onPick: (H) => {
3924
+ if ((C == null ? void 0 : C(H)) === !1) {
3926
3925
  ce.reset();
3927
3926
  return;
3928
3927
  }
3929
- ce.arm(F);
3928
+ ce.arm(H);
3930
3929
  },
3931
3930
  onUse: Tn
3932
3931
  }
3933
3932
  ) }), qt = g ? null : /* @__PURE__ */ f(Pe, { children: [
3934
3933
  Dt,
3935
- lt
3936
- ] }), At = g && (U || P) ? /* @__PURE__ */ a("div", { className: "vs-side", children: U ? Dt : lt }) : null, Ln = Tt && qe ? `This voice could not be prepared: ${qe}` : null, wn = at;
3934
+ ot
3935
+ ] }), At = g && (U || P) ? /* @__PURE__ */ a("div", { className: "vs-side", children: U ? Dt : ot }) : null, Ln = Tt && qe ? `This voice could not be prepared: ${qe}` : null, wn = it;
3937
3936
  return {
3938
3937
  barChip: { flag: rt.flag, code: rt.code, label: rt.label, onClick: g || j ? Ut : Ue, active: !!((g || j) && vt), can: c },
3939
3938
  sheetsOpen: U || P,
@@ -3947,33 +3946,33 @@ function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, lan
3947
3946
  toggleVoices: x,
3948
3947
  cloningOn: ke,
3949
3948
  playTitle: Ln,
3950
- noVoice: at,
3949
+ noVoice: it,
3951
3950
  noVoiceNote: wn,
3952
- relang: Mt,
3951
+ relang: gt,
3953
3952
  sampling: ce.sampleId != null,
3954
3953
  error: ce.error,
3955
3954
  clearError: () => ce.clearError(),
3956
3955
  openVoices: Lt,
3957
3956
  openPicker: Ue,
3958
3957
  original: Ce,
3959
- reloadVoices: () => se((F) => F + 1),
3958
+ reloadVoices: () => se((H) => H + 1),
3960
3959
  voicesVer: Ae,
3961
- people: gt,
3960
+ people: Mt,
3962
3961
  gvList: A,
3963
3962
  autoOf: et,
3964
- savedFor: ot,
3963
+ savedFor: lt,
3965
3964
  closeVoices: ut,
3966
- setSheet: H,
3967
- selectedSpeaker: it,
3965
+ setSheet: V,
3966
+ selectedSpeaker: st,
3968
3967
  armVoice: ce.arm,
3969
3968
  resetPreview: ce.reset,
3970
3969
  armedId: ce.armId,
3971
- resetCast: () => ge((F) => ({ ...F, [G ?? ""]: {} })),
3970
+ resetCast: () => ge((H) => ({ ...H, [G ?? ""]: {} })),
3972
3971
  readLang: typeof u == "string" && u !== l ? u : null,
3973
- readVoiceKey: Oe ?? ne ?? ((Xt = ie.track) == null ? void 0 : Xt.voiceKey) ?? "",
3972
+ readVoiceKey: Ie ?? ne ?? ((Xt = ie.track) == null ? void 0 : Xt.voiceKey) ?? "",
3974
3973
  readVoiceName: (Te == null ? void 0 : Te.name) ?? null,
3975
3974
  canSpeak: _,
3976
- requestTrack: () => ie.requestRender(Oe ?? ne, Oe ? Ye : null),
3975
+ requestTrack: () => ie.requestRender(Ie ?? ne, Ie ? Ye : null),
3977
3976
  hasClone: Y,
3978
3977
  clips: ie.clips,
3979
3978
  setNear: ie.setNear,
@@ -3983,12 +3982,12 @@ function bl({ recordingId: t, model: e, rows: n, lenS: r, ended: s, cred: i, lan
3983
3982
  langList: { value: Ce ? null : pe, onSelect: Fe, languages: W, searchPlaceholder: de.search, none: "Original", pinned: (Ce ? l : pe) ? [Ce ? l : pe] : [], recent: v }
3984
3983
  };
3985
3984
  }
3986
- function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: g = !0, tail: M, tailFg: p, running: y, desk: j, feedRef: T, listener: N, showLabels: h, find: C, findOpen: D, lang: k, warm: te, onVisible: R, wordHl: X = !0 }) {
3985
+ function Al({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i, onWord: o, onFix: l, fixMode: c, fixingId: u, marks: d = !0, fixBadges: g = !0, tail: M, tailFg: p, running: y, desk: j, feedRef: T, listener: N, showLabels: h, find: C, findOpen: D, lang: k, warm: te, onVisible: R, wordHl: X = !0 }) {
3987
3986
  const { playing: I, engaged: b, t: Q, idx: L, seekN: v, wordSync: S, clipPos: ne } = n;
3988
- il(!0, T);
3987
+ al(!0, T);
3989
3988
  const $ = z(null);
3990
- So(T, $);
3991
- const [U, Me] = O(null), P = (C ?? "").trim().toLowerCase(), [H, ae] = O(0), oe = z(0), re = z(null), we = z(L), pe = (se) => {
3989
+ Ao(T, $);
3990
+ const [U, Me] = O(null), P = (C ?? "").trim().toLowerCase(), [V, ae] = O(0), oe = z(0), re = z(null), we = z(L), pe = (se) => {
3992
3991
  var le;
3993
3992
  return ((le = T.current) == null ? void 0 : le.querySelector(`[data-tx-row="${se}"]`)) ?? null;
3994
3993
  }, Ce = z("");
@@ -3998,8 +3997,8 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
3998
3997
  const le = () => {
3999
3998
  const Z = se.getBoundingClientRect(), de = [];
4000
3999
  for (const De of Array.from(se.querySelectorAll("[data-sentence]"))) {
4001
- const V = De.getBoundingClientRect();
4002
- V.bottom > Z.top && V.top < Z.bottom && de.push(Number(De.dataset.sentence));
4000
+ const F = De.getBoundingClientRect();
4001
+ F.bottom > Z.top && F.top < Z.bottom && de.push(Number(De.dataset.sentence));
4003
4002
  }
4004
4003
  const W = de.join(",");
4005
4004
  W !== Ce.current && (Ce.current = W, R(de));
@@ -4026,14 +4025,14 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
4026
4025
  oe.current = performance.now() + 420;
4027
4026
  const le = T.current, m = pe(se);
4028
4027
  if (!le || !le.clientHeight || !m) return;
4029
- const A = m.getBoundingClientRect(), Ne = le.getBoundingClientRect(), Z = le.scrollHeight - le.clientHeight, de = le.scrollTop, W = Kn(le), De = Math.max(80, le.clientHeight - W.top - W.bottom), V = A.height > De ? 8 : (De - A.height) / 2, je = Math.max(0, Math.min(Z, de + (A.top - Ne.top) - W.top - V));
4030
- if (re.current && cancelAnimationFrame(re.current), Math.abs(je - de) < 2) {
4031
- le.scrollTop = je, re.current = null;
4028
+ const A = m.getBoundingClientRect(), Ne = le.getBoundingClientRect(), Z = le.scrollHeight - le.clientHeight, de = le.scrollTop, W = Kn(le), De = Math.max(80, le.clientHeight - W.top - W.bottom), F = A.height > De ? 8 : (De - A.height) / 2, ve = Math.max(0, Math.min(Z, de + (A.top - Ne.top) - W.top - F));
4029
+ if (re.current && cancelAnimationFrame(re.current), Math.abs(ve - de) < 2) {
4030
+ le.scrollTop = ve, re.current = null;
4032
4031
  return;
4033
4032
  }
4034
4033
  const fe = performance.now(), ge = 360, q = () => {
4035
- const ze = Math.min(1, (performance.now() - fe) / ge);
4036
- le.scrollTop = de + (je - de) * (1 - Math.pow(1 - ze, 3)), re.current = ze < 1 ? requestAnimationFrame(q) : null;
4034
+ const je = Math.min(1, (performance.now() - fe) / ge);
4035
+ le.scrollTop = de + (ve - de) * (1 - Math.pow(1 - je, 3)), re.current = je < 1 ? requestAnimationFrame(q) : null;
4037
4036
  };
4038
4037
  re.current = requestAnimationFrame(q);
4039
4038
  };
@@ -4065,27 +4064,27 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
4065
4064
  "Now playing"
4066
4065
  ] }) });
4067
4066
  return /* @__PURE__ */ f("div", { ref: T, "data-tx-feed": "1", className: `txfeed${j ? " txfeed--desk" : ""}${D && !y ? " is-find" : ""}`, children: [
4068
- /* @__PURE__ */ a(Ao, { thumbRef: $ }),
4069
- I && H === -1 && Ae("up"),
4067
+ /* @__PURE__ */ a(Eo, { thumbRef: $ }),
4068
+ I && V === -1 && Ae("up"),
4070
4069
  e.map((se, le) => {
4071
4070
  var ye;
4072
4071
  const m = I && le === L, A = b && le === L, Ne = !!u && u === se.id, Z = P && !se.text.toLowerCase().includes(P) && !(k && ((ye = se.translations[k]) != null && ye.toLowerCase().includes(P))) ? 0.22 : !b || le <= L || Ne ? 1 : 0.38, de = N ? () => n.playRow(le) : c && l ? () => {
4073
4072
  I && !m && n.seekRow(le), l(se);
4074
- } : I && m ? void 0 : () => n.playRow(le), W = N ? null : _o(se, s, r), De = !!W && (W.script > 0 || W.manual), V = j && !!i && U === se.id && !!W && !De, je = hr(t, se.speaker), fe = fr(t, se.speaker), ge = fe.lane, q = k && se.translations[k] && se.language !== k ? se.translations[k] : null, ze = mi(e, le, k), $e = A && !S && ne ? ei(ze.map((be) => ({ t: be.text, sp: " " })), ne) : null;
4073
+ } : I && m ? void 0 : () => n.playRow(le), W = N ? null : Uo(se, s, r), De = !!W && (W.script > 0 || W.manual), F = j && !!i && U === se.id && !!W && !De, ve = fr(t, se.speaker), fe = Nr(t, se.speaker), ge = fe.lane, q = k && se.translations[k] && se.language !== k ? se.translations[k] : null, je = mi(e, le, k), $e = A && !S && ne ? ti(je.map((be) => ({ t: be.text, sp: " " })), ne) : null;
4075
4074
  return /* @__PURE__ */ f("div", { "data-tx-row": le, "data-sentence": se.sentenceId, className: `txline${te ? " txline--warm" : ""}${Ne ? " txline--fixing" : ""}`, "aria-current": Ne || void 0, style: { opacity: Z }, onClick: de, onMouseEnter: j && i ? () => Me(se.id) : void 0, onMouseLeave: j && i ? () => Me(null) : void 0, children: [
4076
4075
  /* @__PURE__ */ f("div", { className: "txline__meta", children: [
4077
4076
  /* @__PURE__ */ a("span", { className: "txline__at", children: mt(se.start) }),
4078
4077
  h && se.speaker >= 0 && /* @__PURE__ */ f(Pe, { children: [
4079
4078
  /* @__PURE__ */ a("div", { className: `lanechip bg-lane-${ge}`, style: fe.soft ? { background: fe.soft, color: fe.fg } : void 0, children: ai(t, se.speaker) }),
4080
- /* @__PURE__ */ a("span", { className: `txline__who lane-${ge}`, style: fe.fg ? { color: fe.fg } : void 0, children: je }),
4079
+ /* @__PURE__ */ a("span", { className: `txline__who lane-${ge}`, style: fe.fg ? { color: fe.fg } : void 0, children: ve }),
4081
4080
  fe.hasVoice && /* @__PURE__ */ a(hi, { color: fe.fg ?? `var(--lane-${ge})` })
4082
4081
  ] }),
4083
4082
  m && /* @__PURE__ */ a("span", { title: "Playing", style: { flex: "none", display: "inline-flex", alignItems: "center" }, children: /* @__PURE__ */ a(ue, { d: K.headphones, size: j ? 15 : 14, sw: 1.6, stroke: h && se.speaker >= 0 ? fe.fg ?? `var(--lane-${ge})` : "var(--ink-45)" }) }),
4084
- W && g && /* @__PURE__ */ a(Uo, { f: W, desk: j, onOpen: i ? () => i(se, !0) : void 0 }),
4085
- V && /* @__PURE__ */ a(Ro, { alone: !0, onOpen: () => i == null ? void 0 : i(se, !1) })
4083
+ W && g && /* @__PURE__ */ a(Ro, { f: W, desk: j, onOpen: i ? () => i(se, !0) : void 0 }),
4084
+ F && /* @__PURE__ */ a(Po, { alone: !0, onOpen: () => i == null ? void 0 : i(se, !1) })
4086
4085
  ] }),
4087
- /* @__PURE__ */ a("div", { className: "txline__text", children: ze.map((be, He) => {
4088
- const Oe = `${be.seq}:${be.idx}`, Ye = no(be.prob), Y = A && X, _ = Y && (S ? Q >= be.start && (Q < be.end || He === ze.length - 1 || Q < ze[He + 1].start) : He === $e), B = Y && !_ && (S ? be.start > Q : $e != null && He > $e), ee = !q && !N && (!!(r != null && r.has(Oe)) || !!be.script), ie = !q && !N && d && !!Ye && !ee, Te = ie ? Ye === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, _e = ee ? "var(--brand)" : B ? "var(--ink-40)" : Te ?? "var(--ink-96)";
4086
+ /* @__PURE__ */ a("div", { className: "txline__text", children: je.map((be, He) => {
4087
+ const Ie = `${be.seq}:${be.idx}`, Ye = ro(be.prob), Y = A && X, _ = Y && (S ? Q >= be.start && (Q < be.end || He === je.length - 1 || Q < je[He + 1].start) : He === $e), B = Y && !_ && (S ? be.start > Q : $e != null && He > $e), ee = !q && !N && (!!(r != null && r.has(Ie)) || !!be.script), ie = !q && !N && d && !!Ye && !ee, Te = ie ? Ye === "low" ? "var(--conf-low-half)" : "var(--conf-mid-half)" : null, _e = ee ? "var(--brand)" : B ? "var(--ink-40)" : Te ?? "var(--ink-96)";
4089
4088
  return /* @__PURE__ */ f("span", { children: [
4090
4089
  /* @__PURE__ */ a(
4091
4090
  "span",
@@ -4109,7 +4108,7 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
4109
4108
  }
4110
4109
  ),
4111
4110
  /* @__PURE__ */ a("span", { style: { whiteSpace: "pre-wrap" }, children: " " })
4112
- ] }, Oe + He);
4111
+ ] }, Ie + He);
4113
4112
  }) })
4114
4113
  ] }, se.id);
4115
4114
  }),
@@ -4118,10 +4117,10 @@ function Sl({ model: t, rows: e, player: n, fixed: r, applied: s, onFixOpen: i,
4118
4117
  /* @__PURE__ */ a("span", {}),
4119
4118
  /* @__PURE__ */ a("span", {})
4120
4119
  ] }) }) : /* @__PURE__ */ a("div", { className: "txtail", style: { color: p }, children: M }),
4121
- I && H === 1 && Ae("down")
4120
+ I && V === 1 && Ae("down")
4122
4121
  ] });
4123
4122
  }
4124
- function Al({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: i, inline: o, flash: l }) {
4123
+ function El({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: i, inline: o, flash: l }) {
4125
4124
  return /* @__PURE__ */ a("div", { className: o ? "searchbar searchbar--inline" : `searchbar searchbar--float${i ? " searchbar--desk" : ""}${t ? "" : " is-hidden"}`, children: /* @__PURE__ */ f("div", { children: [
4126
4125
  /* @__PURE__ */ a(ue, { d: K.search, size: 16, sw: 1.7, style: { color: "var(--ink-45)", flex: "none" } }),
4127
4126
  /* @__PURE__ */ a("input", { value: e, onChange: (c) => n(c.target.value), onKeyDown: (c) => {
@@ -4135,7 +4134,7 @@ function Al({ open: t, q: e, onQ: n, onClose: r, hits: s, desk: i, inline: o, fl
4135
4134
  e.trim() && /* @__PURE__ */ a("button", { type: "button", className: "searchbar__x", onClick: () => n(""), "aria-label": "Clear", title: "Clear", children: /* @__PURE__ */ a(ue, { d: K.close, size: 15, sw: 1.7 }) })
4136
4135
  ] }) });
4137
4136
  }
4138
- function El(t, e, n, r, s) {
4137
+ function Yl(t, e, n, r, s) {
4139
4138
  const i = z(n);
4140
4139
  i.current = n;
4141
4140
  const o = z(r);
@@ -4173,14 +4172,14 @@ function yi(t) {
4173
4172
  }
4174
4173
  return e;
4175
4174
  }
4176
- const Us = (t) => Math.floor(yi(t) / 8) - Ht.perBlock[t] * Ht.blocks[t];
4175
+ const Rs = (t) => Math.floor(yi(t) / 8) - Ht.perBlock[t] * Ht.blocks[t];
4177
4176
  function cr(t, e) {
4178
4177
  let n = 0;
4179
4178
  for (let r = 7; r >= 0; r--)
4180
4179
  n = n << 1 ^ (n >>> 7) * 285, n ^= (e >>> r & 1) * t;
4181
4180
  return n;
4182
4181
  }
4183
- function Yl(t) {
4182
+ function _l(t) {
4184
4183
  const e = new Array(t).fill(0);
4185
4184
  e[t - 1] = 1;
4186
4185
  let n = 1;
@@ -4190,7 +4189,7 @@ function Yl(t) {
4190
4189
  }
4191
4190
  return e;
4192
4191
  }
4193
- function _l(t, e) {
4192
+ function Ul(t, e) {
4194
4193
  const n = new Array(e.length).fill(0);
4195
4194
  for (const r of t) {
4196
4195
  const s = r ^ n.shift();
@@ -4200,19 +4199,19 @@ function _l(t, e) {
4200
4199
  }
4201
4200
  return n;
4202
4201
  }
4203
- function Ul(t) {
4202
+ function Rl(t) {
4204
4203
  if (t === 1) return [];
4205
4204
  const e = Math.floor(t / 7) + 2, n = t * 4 + 17, r = t === 32 ? 26 : Math.ceil((t * 4 + 4) / (e * 2 - 2)) * 2, s = [6];
4206
4205
  for (let i = n - 7; s.length < e; i -= r) s.splice(1, 0, i);
4207
4206
  return s;
4208
4207
  }
4209
- function Rl(t) {
4208
+ function Pl(t) {
4210
4209
  const e = Array.from(new TextEncoder().encode(t));
4211
4210
  let n = 1;
4212
- for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= Us(n) * 8); n++)
4211
+ for (; n <= 40 && !(4 + (n <= 9 ? 8 : 16) + e.length * 8 <= Rs(n) * 8); n++)
4213
4212
  ;
4214
4213
  if (n > 40) throw new Error("Text too long for a QR code");
4215
- const r = n * 4 + 17, s = Us(n) * 8, i = [], o = (L, v) => {
4214
+ const r = n * 4 + 17, s = Rs(n) * 8, i = [], o = (L, v) => {
4216
4215
  for (let S = v - 1; S >= 0; S--) i.push(L >>> S & 1);
4217
4216
  };
4218
4217
  o(4, 4), o(e.length, n <= 9 ? 8 : 16);
@@ -4221,11 +4220,11 @@ function Rl(t) {
4221
4220
  for (let L = 236; i.length < s; L ^= 253) o(L, 8);
4222
4221
  const l = [];
4223
4222
  for (let L = 0; L < i.length; L += 8) l.push(i.slice(L, L + 8).reduce((v, S) => v << 1 | S, 0));
4224
- const c = Ht.blocks[n], u = Ht.perBlock[n], d = Math.floor(yi(n) / 8), g = c - d % c, M = Math.floor(d / c), p = [], y = Yl(u);
4223
+ const c = Ht.blocks[n], u = Ht.perBlock[n], d = Math.floor(yi(n) / 8), g = c - d % c, M = Math.floor(d / c), p = [], y = _l(u);
4225
4224
  for (let L = 0, v = 0; L < c; L++) {
4226
4225
  const S = l.slice(v, v + M - u + (L < g ? 0 : 1));
4227
4226
  v += S.length;
4228
- const ne = _l(S, y);
4227
+ const ne = Ul(S, y);
4229
4228
  L < g && S.push(0), p.push(S.concat(ne));
4230
4229
  }
4231
4230
  const j = [];
@@ -4244,7 +4243,7 @@ function Rl(t) {
4244
4243
  }
4245
4244
  };
4246
4245
  C(3, 3), C(r - 4, 3), C(3, r - 4);
4247
- const D = Ul(n);
4246
+ const D = Rl(n);
4248
4247
  for (let L = 0; L < D.length; L++) for (let v = 0; v < D.length; v++)
4249
4248
  if (!(L === 0 && v === 0 || L === 0 && v === D.length - 1 || L === D.length - 1 && v === 0))
4250
4249
  for (let S = -2; S <= 2; S++) for (let ne = -2; ne <= 2; ne++) h(D[L] + ne, D[v] + S, Math.max(Math.abs(ne), Math.abs(S)) !== 1);
@@ -4301,25 +4300,25 @@ function Rl(t) {
4301
4300
  }, I = () => {
4302
4301
  let L = 0;
4303
4302
  const v = (P) => {
4304
- const H = P[1], ae = H > 0 && P[2] === H && P[3] === H * 3 && P[4] === H && P[5] === H;
4305
- return (ae && P[0] >= H * 4 && P[6] >= H ? 1 : 0) + (ae && P[6] >= H * 4 && P[0] >= H ? 1 : 0);
4306
- }, S = (P, H) => {
4307
- P[0] === 0 && (H += r), P.pop(), P.unshift(H);
4308
- }, ne = (P, H, ae) => (H && (S(P, ae), ae = 0), S(P, ae + r), v(P)), $ = (P) => {
4309
- let H = !1, ae = 0;
4303
+ const V = P[1], ae = V > 0 && P[2] === V && P[3] === V * 3 && P[4] === V && P[5] === V;
4304
+ return (ae && P[0] >= V * 4 && P[6] >= V ? 1 : 0) + (ae && P[6] >= V * 4 && P[0] >= V ? 1 : 0);
4305
+ }, S = (P, V) => {
4306
+ P[0] === 0 && (V += r), P.pop(), P.unshift(V);
4307
+ }, ne = (P, V, ae) => (V && (S(P, ae), ae = 0), S(P, ae + r), v(P)), $ = (P) => {
4308
+ let V = !1, ae = 0;
4310
4309
  const oe = [0, 0, 0, 0, 0, 0, 0];
4311
4310
  for (let re = 0; re < r; re++)
4312
- P(re) === H ? (ae++, ae === 5 ? L += 3 : ae > 5 && L++) : (S(oe, ae), H || (L += v(oe) * 40), H = P(re), ae = 1);
4313
- L += ne(oe, H, ae) * 40;
4311
+ P(re) === V ? (ae++, ae === 5 ? L += 3 : ae > 5 && L++) : (S(oe, ae), V || (L += v(oe) * 40), V = P(re), ae = 1);
4312
+ L += ne(oe, V, ae) * 40;
4314
4313
  };
4315
- for (let P = 0; P < r; P++) $((H) => T[P][H]);
4316
- for (let P = 0; P < r; P++) $((H) => T[H][P]);
4317
- for (let P = 0; P < r - 1; P++) for (let H = 0; H < r - 1; H++) {
4318
- const ae = T[P][H];
4319
- ae === T[P][H + 1] && ae === T[P + 1][H] && ae === T[P + 1][H + 1] && (L += 3);
4314
+ for (let P = 0; P < r; P++) $((V) => T[P][V]);
4315
+ for (let P = 0; P < r; P++) $((V) => T[V][P]);
4316
+ for (let P = 0; P < r - 1; P++) for (let V = 0; V < r - 1; V++) {
4317
+ const ae = T[P][V];
4318
+ ae === T[P][V + 1] && ae === T[P + 1][V] && ae === T[P + 1][V + 1] && (L += 3);
4320
4319
  }
4321
4320
  let U = 0;
4322
- for (const P of T) for (const H of P) H && U++;
4321
+ for (const P of T) for (const V of P) V && U++;
4323
4322
  const Me = r * r;
4324
4323
  return L += (Math.ceil(Math.abs(U * 20 - Me * 10) / Me) - 1) * 10, L;
4325
4324
  };
@@ -4331,30 +4330,30 @@ function Rl(t) {
4331
4330
  }
4332
4331
  return X(b), k(b), T;
4333
4332
  }
4334
- function Pl(t) {
4335
- const e = Rl(t), n = e.length, r = 2;
4333
+ function Ql(t) {
4334
+ const e = Pl(t), n = e.length, r = 2;
4336
4335
  let s = "";
4337
4336
  for (let o = 0; o < n; o++) for (let l = 0; l < n; l++) e[o][l] && (s += `M${l} ${o}h1v1h-1z`);
4338
4337
  const i = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${-r} ${-r} ${n + r * 2} ${n + r * 2}" shape-rendering="crispEdges"><rect x="${-r}" y="${-r}" width="${n + r * 2}" height="${n + r * 2}" fill="#fff"/><path fill="#111" d="${s}"/></svg>`;
4339
4338
  return `data:image/svg+xml,${encodeURIComponent(i)}`;
4340
4339
  }
4341
- const Ti = "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15", Ql = "M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25";
4340
+ const Ti = "M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15", $l = "M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25";
4342
4341
  function Xn() {
4343
4342
  const t = document;
4344
4343
  return t.fullscreenElement ?? t.webkitFullscreenElement ?? null;
4345
4344
  }
4346
- let mr = null;
4347
- function Rs(t) {
4348
- mr = t;
4345
+ let yr = null;
4346
+ function Ps(t) {
4347
+ yr = t;
4349
4348
  }
4350
- function Ps() {
4349
+ function Qs() {
4351
4350
  const t = document;
4352
4351
  return !!(t.fullscreenEnabled || t.webkitFullscreenEnabled);
4353
4352
  }
4354
- function $l() {
4353
+ function Bl() {
4355
4354
  var e;
4356
4355
  if (typeof document > "u" || !((e = window.matchMedia) != null && e.call(window, "(pointer: coarse)").matches)) return !1;
4357
- const t = mr ?? document.documentElement;
4356
+ const t = yr ?? document.documentElement;
4358
4357
  return !t.requestFullscreen && !t.webkitRequestFullscreen;
4359
4358
  }
4360
4359
  function $t(t) {
@@ -4364,7 +4363,7 @@ function $t(t) {
4364
4363
  function hn(t) {
4365
4364
  var s, i, o, l;
4366
4365
  if (typeof document > "u") return;
4367
- const e = document, n = mr ?? document.documentElement, r = e.fullscreenElement ?? e.webkitFullscreenElement;
4366
+ const e = document, n = yr ?? document.documentElement, r = e.fullscreenElement ?? e.webkitFullscreenElement;
4368
4367
  try {
4369
4368
  t && !r && ((i = (s = n.requestFullscreen ?? n.webkitRequestFullscreen) == null ? void 0 : s.call(n, { navigationUI: "hide" })) == null || i.catch(() => {
4370
4369
  })), !t && r && ((l = (o = e.exitFullscreen ?? e.webkitExitFullscreen) == null ? void 0 : o.call(e)) == null || l.catch(() => {
@@ -4372,7 +4371,7 @@ function hn(t) {
4372
4371
  } catch {
4373
4372
  }
4374
4373
  }
4375
- function Bl(t) {
4374
+ function Hl(t) {
4376
4375
  const [e, n] = O(() => {
4377
4376
  var r;
4378
4377
  return typeof window < "u" && !!((r = window.matchMedia) != null && r.call(window, t).matches);
@@ -4424,7 +4423,7 @@ function ur({ pos: t, interactive: e, axis: n = "x" }) {
4424
4423
  /* @__PURE__ */ a("span", { className: "gfull__t gfull__end", style: { color: t.live ? "#ec634d" : "rgba(234,236,250,.6)" }, children: t.endLabel })
4425
4424
  ] });
4426
4425
  }
4427
- function wc({ pos: t }) {
4426
+ function kc({ pos: t }) {
4428
4427
  const [e, n] = O(null), r = (l) => {
4429
4428
  const c = l.currentTarget.getBoundingClientRect();
4430
4429
  return Math.min(1, Math.max(0, (l.clientX - c.left) / Math.max(1, c.width)));
@@ -4478,7 +4477,7 @@ function dr({ t, mini: e }) {
4478
4477
  disabled: !t.playable,
4479
4478
  style: { background: t.playable ? t.playing ? "rgba(238,240,248,.92)" : "var(--brand)" : "rgba(5,6,21,.42)", color: t.playable ? t.playing ? "#131326" : "var(--brand-ink)" : "rgba(234,236,250,.5)", cursor: t.playable ? "pointer" : "default" },
4480
4479
  onClick: t.onPlay,
4481
- children: t.busy ? /* @__PURE__ */ a("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ a(sa, { size: e ? 14 : 18 }) : /* @__PURE__ */ a(Fs, { size: e ? 15 : 19 })
4480
+ children: t.busy ? /* @__PURE__ */ a("span", { className: "gfull__spin", "aria-hidden": "true" }) : t.playing ? /* @__PURE__ */ a(sa, { size: e ? 14 : 18 }) : /* @__PURE__ */ a(Ws, { size: e ? 15 : 19 })
4482
4481
  }
4483
4482
  ),
4484
4483
  /* @__PURE__ */ a("button", { type: "button", className: "gfull__step", "aria-label": "Next line", title: "Next line", style: { opacity: t.nextOn ? 1 : 0.3 }, onClick: t.onNext, children: /* @__PURE__ */ a(ue, { d: K.chevronRight, size: e ? 13 : 16, sw: e ? 1.8 : 1.9 }) })
@@ -4486,7 +4485,7 @@ function dr({ t, mini: e }) {
4486
4485
  }
4487
4486
  function Mr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
4488
4487
  return /* @__PURE__ */ f("div", { className: `gfull__brand${s ? " gfull__brand--mark" : ""}`, children: [
4489
- /* @__PURE__ */ a("a", { href: Vs, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ a(Ws, { dark: !0, size: 22 }) : /* @__PURE__ */ a(Vt, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
4488
+ /* @__PURE__ */ a("a", { href: Fs, target: "_blank", rel: "noopener", style: { display: "block", lineHeight: 0 }, "aria-label": "VocalStack", title: "VocalStack", children: s ? /* @__PURE__ */ a(Gs, { dark: !0, size: 22 }) : /* @__PURE__ */ a(Vt, { dark: !0, link: !1, height: e ? 11 : n ? 18 : 15 }) }),
4490
4489
  t && /* @__PURE__ */ f("span", { className: "gfull__live", children: [
4491
4490
  /* @__PURE__ */ a("i", {}),
4492
4491
  "LIVE"
@@ -4497,7 +4496,7 @@ function Mr({ live: t, mini: e, desk: n, pct: r, mark: s }) {
4497
4496
  function Li({ v: t, size: e }) {
4498
4497
  return /* @__PURE__ */ a("button", { type: "button", className: "gfull__btn", "aria-label": "Voices", title: t.title, disabled: !t.on, style: { opacity: t.on ? 1 : 0.45, cursor: t.on ? "pointer" : "default" }, onClick: t.on ? t.onClick : void 0, children: /* @__PURE__ */ a(ue, { d: K.headphones, size: e, sw: 1.6 }) });
4499
4498
  }
4500
- function Hl({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: i, copied: o }) {
4499
+ function Vl({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: i, copied: o }) {
4501
4500
  return /* @__PURE__ */ f("div", { className: "gmini", "data-theme": "dark", children: [
4502
4501
  /* @__PURE__ */ a("div", { className: "gmini__shade", "aria-hidden": "true" }),
4503
4502
  /* @__PURE__ */ a("div", { className: "gmini__top", children: /* @__PURE__ */ a(Mr, { live: t.live, mini: !0 }) }),
@@ -4517,13 +4516,13 @@ function Hl({ pos: t, transport: e, chip: n, voices: r, onShare: s, onFull: i, c
4517
4516
  o
4518
4517
  ] });
4519
4518
  }
4520
- const Vl = { color: "rgba(255,255,255,.4)" };
4521
- function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos: i, sub: o, wait: l, pct: c, mute: u, cc: d, ad: g, chip: M, transport: p, picker: y, sheet: j, voices: T, voicesBtn: N, sheetOpen: h, onShare: C, onSettings: D, paused: k, copied: te, onTouch: R, onClose: X }) {
4519
+ const Fl = { color: "rgba(255,255,255,.4)" };
4520
+ function Wl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos: i, sub: o, wait: l, pct: c, mute: u, cc: d, ad: g, chip: M, transport: p, picker: y, sheet: j, voices: T, voicesBtn: N, sheetOpen: h, onShare: C, onSettings: D, paused: k, copied: te, onTouch: R, onClose: X }) {
4522
4521
  const [I, b] = O(() => !!Xn());
4523
4522
  E(() => {
4524
- const V = () => b(!!Xn());
4525
- return document.addEventListener("fullscreenchange", V), document.addEventListener("webkitfullscreenchange", V), () => {
4526
- document.removeEventListener("fullscreenchange", V), document.removeEventListener("webkitfullscreenchange", V);
4523
+ const F = () => b(!!Xn());
4524
+ return document.addEventListener("fullscreenchange", F), document.addEventListener("webkitfullscreenchange", F), () => {
4525
+ document.removeEventListener("fullscreenchange", F), document.removeEventListener("webkitfullscreenchange", F);
4527
4526
  };
4528
4527
  }, []);
4529
4528
  const Q = z(X);
@@ -4533,86 +4532,86 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
4533
4532
  const [v, S] = O(!1), [ne, $] = O(0), U = z(!1);
4534
4533
  E(() => () => hn(!1), []), E(() => {
4535
4534
  if (!e) return;
4536
- const V = [document.documentElement, document.body], je = V.map((q) => q.style.background);
4537
- V.forEach((q) => {
4535
+ const F = [document.documentElement, document.body], ve = F.map((q) => q.style.background);
4536
+ F.forEach((q) => {
4538
4537
  q.style.background = "#050507";
4539
4538
  });
4540
4539
  const fe = document.querySelector('meta[name="theme-color"]'), ge = fe == null ? void 0 : fe.content;
4541
4540
  return fe && (fe.content = "#050507"), () => {
4542
- V.forEach((q, ze) => {
4543
- q.style.background = je[ze];
4541
+ F.forEach((q, je) => {
4542
+ q.style.background = ve[je];
4544
4543
  }), fe && ge && (fe.content = ge);
4545
4544
  };
4546
4545
  }, []);
4547
- const Me = Ie(() => e && $l(), [e]), [P, H] = O(Me);
4546
+ const Me = ze(() => e && Bl(), [e]), [P, V] = O(Me);
4548
4547
  E(() => {
4549
4548
  if (!e) return;
4550
- const V = [document.documentElement, document.body], je = V.map((q) => [q.style.overflow, q.style.overscrollBehavior]);
4549
+ const F = [document.documentElement, document.body], ve = F.map((q) => [q.style.overflow, q.style.overscrollBehavior]);
4551
4550
  if (!Me)
4552
- return V.forEach((q) => {
4551
+ return F.forEach((q) => {
4553
4552
  q.style.overflow = "hidden", q.style.overscrollBehavior = "none";
4554
- }), () => V.forEach((q, ze) => {
4555
- q.style.overflow = je[ze][0], q.style.overscrollBehavior = je[ze][1];
4553
+ }), () => F.forEach((q, je) => {
4554
+ q.style.overflow = ve[je][0], q.style.overscrollBehavior = ve[je][1];
4556
4555
  });
4557
4556
  const fe = document.createElement("div");
4558
4557
  fe.setAttribute("aria-hidden", "true"), fe.style.cssText = "position:absolute;top:0;left:0;width:1px;height:calc(100lvh + 160px);pointer-events:none", document.body.appendChild(fe), document.documentElement.style.overscrollBehavior = "none";
4559
4558
  const ge = () => {
4560
- window.scrollY > 24 && H(!1);
4559
+ window.scrollY > 24 && V(!1);
4561
4560
  };
4562
4561
  return window.addEventListener("scroll", ge, { passive: !0 }), () => {
4563
- window.removeEventListener("scroll", ge), fe.remove(), document.documentElement.style.overscrollBehavior = je[0][1], window.scrollTo(0, 0);
4562
+ window.removeEventListener("scroll", ge), fe.remove(), document.documentElement.style.overscrollBehavior = ve[0][1], window.scrollTo(0, 0);
4564
4563
  };
4565
4564
  }, [Me, e]);
4566
4565
  const ae = z(h);
4567
4566
  ae.current = h, E(() => {
4568
- const V = (ge) => ge instanceof HTMLElement && (ge.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ge.tagName)), je = (ge) => {
4567
+ const F = (ge) => ge instanceof HTMLElement && (ge.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(ge.tagName)), ve = (ge) => {
4569
4568
  var q;
4570
- ge.key === "Escape" && !ae.current && Q.current && (ge.stopPropagation(), Q.current()), ge.key === " " && !ae.current && !V(ge.target) && (ge.preventDefault(), ge.stopPropagation(), ge.repeat || (q = L.current) == null || q.call(L)), (ge.key === "f" || ge.key === "F") && !ge.metaKey && !ge.ctrlKey && !ge.altKey && !ae.current && !V(ge.target) && Ps() && (ge.preventDefault(), ge.repeat || hn(!Xn()));
4569
+ ge.key === "Escape" && !ae.current && Q.current && (ge.stopPropagation(), Q.current()), ge.key === " " && !ae.current && !F(ge.target) && (ge.preventDefault(), ge.stopPropagation(), ge.repeat || (q = L.current) == null || q.call(L)), (ge.key === "f" || ge.key === "F") && !ge.metaKey && !ge.ctrlKey && !ge.altKey && !ae.current && !F(ge.target) && Qs() && (ge.preventDefault(), ge.repeat || hn(!Xn()));
4571
4570
  }, fe = (ge) => {
4572
- ge.key === " " && !ae.current && !V(ge.target) && ge.preventDefault();
4571
+ ge.key === " " && !ae.current && !F(ge.target) && ge.preventDefault();
4573
4572
  };
4574
- return window.addEventListener("keydown", je, !0), window.addEventListener("keyup", fe, !0), () => {
4575
- window.removeEventListener("keydown", je, !0), window.removeEventListener("keyup", fe, !0);
4573
+ return window.addEventListener("keydown", ve, !0), window.addEventListener("keyup", fe, !0), () => {
4574
+ window.removeEventListener("keydown", ve, !0), window.removeEventListener("keyup", fe, !0);
4576
4575
  };
4577
4576
  }, []);
4578
- const oe = Bl("(orientation: landscape) and (max-height: 540px)"), re = s && !oe;
4577
+ const oe = Hl("(orientation: landscape) and (max-height: 540px)"), re = s && !oe;
4579
4578
  E(() => {
4580
4579
  if (S(!1), !p.playing || h) return;
4581
- const V = setTimeout(() => S(!0), 3e3);
4582
- return () => clearTimeout(V);
4580
+ const F = setTimeout(() => S(!0), 3e3);
4581
+ return () => clearTimeout(F);
4583
4582
  }, [p.playing, h, ne]);
4584
4583
  const we = z(v);
4585
4584
  we.current = v;
4586
- const pe = z(0), Ce = (V) => {
4587
- if (V.pointerType !== "mouse") return;
4588
- const je = Date.now();
4589
- !we.current && je - pe.current < 1e3 || (pe.current = je, $((fe) => fe + 1));
4590
- }, xe = !re && oe, Qe = z(null), G = o ? o.words.map((V) => V.dim ? 0 : 1).join("") + o.words.length + ":" + (o.cursor ?? "") : "";
4585
+ const pe = z(0), Ce = (F) => {
4586
+ if (F.pointerType !== "mouse") return;
4587
+ const ve = Date.now();
4588
+ !we.current && ve - pe.current < 1e3 || (pe.current = ve, $((fe) => fe + 1));
4589
+ }, xe = !re && oe, Qe = z(null), G = o ? o.words.map((F) => F.dim ? 0 : 1).join("") + o.words.length + ":" + (o.cursor ?? "") : "";
4591
4590
  mn(() => {
4592
- const V = Qe.current;
4593
- if (!V) return;
4594
- const je = !!(o != null && o.words.some((Oe) => Oe.dim)) || (o == null ? void 0 : o.cursor) != null, fe = V.querySelectorAll((o == null ? void 0 : o.cursor) != null && !o.words.some((Oe) => Oe.dim) ? "[data-at]" : "[data-said]"), ge = parseFloat(getComputedStyle(V).lineHeight) || 24, q = Math.round(V.scrollHeight / ge) - Math.round(V.clientHeight / ge), ze = Math.max(0, q) * ge;
4595
- if (ze <= 0) {
4596
- V.scrollTop && V.scrollTo({ top: 0 });
4591
+ const F = Qe.current;
4592
+ if (!F) return;
4593
+ const ve = !!(o != null && o.words.some((Ie) => Ie.dim)) || (o == null ? void 0 : o.cursor) != null, fe = F.querySelectorAll((o == null ? void 0 : o.cursor) != null && !o.words.some((Ie) => Ie.dim) ? "[data-at]" : "[data-said]"), ge = parseFloat(getComputedStyle(F).lineHeight) || 24, q = Math.round(F.scrollHeight / ge) - Math.round(F.clientHeight / ge), je = Math.max(0, q) * ge;
4594
+ if (je <= 0) {
4595
+ F.scrollTop && F.scrollTo({ top: 0 });
4597
4596
  return;
4598
4597
  }
4599
- const $e = (Oe) => Math.round((Oe.getBoundingClientRect().top - V.getBoundingClientRect().top + V.scrollTop) / ge), ye = Math.max(1, Math.round(V.clientHeight / ge)), be = je ? fe.length ? Math.floor($e(fe[fe.length - 1]) / ye) * ye * ge : 0 : ze, He = Math.max(0, Math.min(ze, be));
4600
- Math.abs(He - V.scrollTop) > 1 && (V.scrollTop = He);
4598
+ const $e = (Ie) => Math.round((Ie.getBoundingClientRect().top - F.getBoundingClientRect().top + F.scrollTop) / ge), ye = Math.max(1, Math.round(F.clientHeight / ge)), be = ve ? fe.length ? Math.floor($e(fe[fe.length - 1]) / ye) * ye * ge : 0 : je, He = Math.max(0, Math.min(je, be));
4599
+ Math.abs(He - F.scrollTop) > 1 && (F.scrollTop = He);
4601
4600
  }, [G, xe]);
4602
4601
  const [ce, ke] = O(!0), [Ae, se] = O(!1), le = z(void 0);
4603
4602
  E(() => () => window.clearTimeout(le.current), []);
4604
- const m = k != null && k.share ? k.share.url(ce && k.share.at >= 1 ? Math.floor(k.share.at) : null) : "", A = Ie(() => re && m && !p.playing ? Pl(m) : "", [re, m, p.playing]), Ne = () => {
4605
- var V;
4606
- (V = navigator.clipboard) == null || V.writeText(m).then(() => {
4603
+ const m = k != null && k.share ? k.share.url(ce && k.share.at >= 1 ? Math.floor(k.share.at) : null) : "", A = ze(() => re && m && !p.playing ? Ql(m) : "", [re, m, p.playing]), Ne = () => {
4604
+ var F;
4605
+ (F = navigator.clipboard) == null || F.writeText(m).then(() => {
4607
4606
  se(!0), window.clearTimeout(le.current), le.current = window.setTimeout(() => se(!1), 1800);
4608
4607
  }, () => {
4609
4608
  });
4610
- }, Z = re && (k == null ? void 0 : k.share) && /* @__PURE__ */ f("div", { className: "gfull__sharecard", onPointerDown: (V) => V.stopPropagation(), onClick: (V) => V.stopPropagation(), children: [
4609
+ }, Z = re && (k == null ? void 0 : k.share) && /* @__PURE__ */ f("div", { className: "gfull__sharecard", onPointerDown: (F) => F.stopPropagation(), onClick: (F) => F.stopPropagation(), children: [
4611
4610
  A && /* @__PURE__ */ a("div", { className: "gfull__shareqr", role: "img", "aria-label": "QR code for this link", style: { backgroundImage: `url("${A}")` } }),
4612
4611
  /* @__PURE__ */ f("div", { className: "gfull__sharebody", children: [
4613
4612
  /* @__PURE__ */ a("div", { className: "gfull__shareeyebrow", children: "SHARE THIS MOMENT" }),
4614
4613
  /* @__PURE__ */ f("label", { className: "gfull__shareat", children: [
4615
- /* @__PURE__ */ a("input", { type: "checkbox", checked: ce, onChange: (V) => ke(V.target.checked), disabled: k.share.at < 1 }),
4614
+ /* @__PURE__ */ a("input", { type: "checkbox", checked: ce, onChange: (F) => ke(F.target.checked), disabled: k.share.at < 1 }),
4616
4615
  "Start at ",
4617
4616
  mt(Math.floor(k.share.at))
4618
4617
  ] }),
@@ -4628,10 +4627,10 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
4628
4627
  ] })
4629
4628
  ] })
4630
4629
  ] })
4631
- ] }), de = (V, je, fe, ge, q, ze = 0) => /* @__PURE__ */ a("button", { type: "button", className: "gfull__btn", title: V, "aria-label": V, onClick: ge, children: /* @__PURE__ */ a(ue, { d: je, size: (re ? 20 : 18) + ze, sw: fe, style: q }) }), W = /* @__PURE__ */ f("div", { className: "gfull__acts", children: [
4630
+ ] }), de = (F, ve, fe, ge, q, je = 0) => /* @__PURE__ */ a("button", { type: "button", className: "gfull__btn", title: F, "aria-label": F, onClick: ge, children: /* @__PURE__ */ a(ue, { d: ve, size: (re ? 20 : 18) + je, sw: fe, style: q }) }), W = /* @__PURE__ */ f("div", { className: "gfull__acts", children: [
4632
4631
  N && /* @__PURE__ */ a(Li, { v: N, size: re ? 20 : 18 }),
4633
4632
  C && de("Share", K.share, 1.6, C),
4634
- Ps() && !t && de(I ? "Exit full screen" : "Full screen", I ? Ql : Ti, 1.7, () => hn(!I)),
4633
+ Qs() && !t && de(I ? "Exit full screen" : "Full screen", I ? $l : Ti, 1.7, () => hn(!I)),
4635
4634
  X && de("Close player", K.close, 1.7, X)
4636
4635
  ] }), De = (u || d || D) && /* @__PURE__ */ f("div", { className: "gfull__top", children: [
4637
4636
  u && de(u.muted ? "Unmute" : "Mute", u.muted ? K.volumeOff : K.volume, 1.6, u.onToggle),
@@ -4646,12 +4645,12 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
4646
4645
  role: "dialog",
4647
4646
  "aria-label": r,
4648
4647
  onPointerMove: Ce,
4649
- onPointerDownCapture: (V) => {
4650
- var je, fe;
4651
- v && (U.current = !0), $((ge) => ge + 1), (fe = (je = V.target).closest) != null && fe.call(je, '[aria-label="Exit full screen"], [aria-label="Full screen"], [aria-label="Close player"]') || R();
4648
+ onPointerDownCapture: (F) => {
4649
+ var ve, fe;
4650
+ v && (U.current = !0), $((ge) => ge + 1), (fe = (ve = F.target).closest) != null && fe.call(ve, '[aria-label="Exit full screen"], [aria-label="Full screen"], [aria-label="Close player"]') || R();
4652
4651
  },
4653
- onClickCapture: (V) => {
4654
- U.current && (U.current = !1, V.stopPropagation(), V.preventDefault());
4652
+ onClickCapture: (F) => {
4653
+ U.current && (U.current = !1, F.stopPropagation(), F.preventDefault());
4655
4654
  },
4656
4655
  children: [
4657
4656
  Me && P && /* @__PURE__ */ f("div", { className: "gfull__swipe", "aria-live": "polite", children: [
@@ -4682,7 +4681,7 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
4682
4681
  ] }),
4683
4682
  " "
4684
4683
  ] }),
4685
- o.words.map((V) => V.t + V.sp).join("")
4684
+ o.words.map((F) => F.t + F.sp).join("")
4686
4685
  ] }) }),
4687
4686
  /* @__PURE__ */ f("span", { children: [
4688
4687
  o.who && /* @__PURE__ */ f(Pe, { children: [
@@ -4692,10 +4691,10 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
4692
4691
  ] }),
4693
4692
  " "
4694
4693
  ] }),
4695
- o.words.map((V, je) => /* @__PURE__ */ f("span", { "data-said": V.dim ? void 0 : "", "data-at": o.cursor != null && je <= o.cursor ? "" : void 0, style: V.dim ? Vl : void 0, children: [
4696
- V.t,
4697
- V.sp
4698
- ] }, je))
4694
+ o.words.map((F, ve) => /* @__PURE__ */ f("span", { "data-said": F.dim ? void 0 : "", "data-at": o.cursor != null && ve <= o.cursor ? "" : void 0, style: F.dim ? Fl : void 0, children: [
4695
+ F.t,
4696
+ F.sp
4697
+ ] }, ve))
4699
4698
  ] })
4700
4699
  ] }) }),
4701
4700
  /* @__PURE__ */ a("div", { className: `gfull__prog${re ? "" : " gfull__prog--two"}`, children: re ? /* @__PURE__ */ f(Pe, { children: [
@@ -4724,10 +4723,10 @@ function Fl({ noFull: t = !1, page: e = !0, picture: n, title: r, desk: s, pos:
4724
4723
  }
4725
4724
  );
4726
4725
  }
4727
- function Wl({ dark: t, back: e, home: n, live: r, title: s, badge: i, subline: o, onOptions: l, optionsActive: c }) {
4726
+ function Gl({ dark: t, back: e, home: n, live: r, title: s, badge: i, subline: o, onOptions: l, optionsActive: c }) {
4728
4727
  return /* @__PURE__ */ f("div", { className: "ghead", children: [
4729
4728
  e && /* @__PURE__ */ a("button", { type: "button", className: "ghead__back", "aria-label": "Back", title: "Back", onClick: e, children: /* @__PURE__ */ a(ue, { d: K.chevronLeft, size: 19, sw: 1.7 }) }),
4730
- r && /* @__PURE__ */ a("span", { className: "mark", children: /* @__PURE__ */ a(Ws, { dark: t, size: 30 }) }),
4729
+ r && /* @__PURE__ */ a("span", { className: "mark", children: /* @__PURE__ */ a(Gs, { dark: t, size: 30 }) }),
4731
4730
  /* @__PURE__ */ a("div", { style: { flex: 1, minWidth: 0, display: "flex" }, children: n ? /* @__PURE__ */ a("div", { className: "ghead__logo", children: /* @__PURE__ */ a(Vt, { dark: t, height: 22 }) }) : /* @__PURE__ */ f("div", { className: "ghead__title", onClick: e, title: e ? "Back" : void 0, style: { cursor: e ? "pointer" : "default" }, children: [
4732
4731
  /* @__PURE__ */ f("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
4733
4732
  /* @__PURE__ */ a("span", { className: "ghead__name", children: s }),
@@ -4742,13 +4741,13 @@ function Wl({ dark: t, back: e, home: n, live: r, title: s, badge: i, subline: o
4742
4741
  ] }) })
4743
4742
  ] });
4744
4743
  }
4745
- const Gl = "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", Zl = (t, e = !1) => [{ value: "read", label: t.read, icon: /* @__PURE__ */ a(ue, { d: K.book, size: 17 }) }, { value: "listen", label: /* @__PURE__ */ a("span", { style: { display: "inline-block", minWidth: 52, textAlign: "center" }, children: e ? t.watch : t.listen }), icon: /* @__PURE__ */ a(ue, { d: e ? Gl : K.headphones, size: 19, sw: 1.5 }) }];
4746
- function ql(t) {
4744
+ const Zl = "m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z", ql = (t, e = !1) => [{ value: "read", label: t.read, icon: /* @__PURE__ */ a(ue, { d: K.book, size: 17 }) }, { value: "listen", label: /* @__PURE__ */ a("span", { style: { display: "inline-block", minWidth: 52, textAlign: "center" }, children: e ? t.watch : t.listen }), icon: /* @__PURE__ */ a(ue, { d: e ? Zl : K.headphones, size: 19, sw: 1.5 }) }];
4745
+ function Kl(t) {
4747
4746
  if (!t.lang) return null;
4748
4747
  const e = t.langName;
4749
4748
  return t.translateFailed === t.lang ? { kind: "translateFailed", lang: e } : t.voiceFailed ? { kind: "voiceFailed", lang: e } : t.translating ? { kind: "translating", lang: e } : t.starting != null ? { kind: "starting", lang: e, since: t.starting } : t.relang || t.slowLine ? { kind: "voice", lang: e, since: t.lineSince } : null;
4750
4749
  }
4751
- function Kl(t, e) {
4750
+ function Jl(t, e) {
4752
4751
  const [n, r] = O(null), [s, i] = O(!1);
4753
4752
  return E(() => {
4754
4753
  if (!t) {
@@ -4761,8 +4760,8 @@ function Kl(t, e) {
4761
4760
  return () => clearTimeout(l);
4762
4761
  }, [t, e]), [s, n];
4763
4762
  }
4764
- const Jl = (t) => `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
4765
- function Xl({ state: t, line: e, onRetry: n, onOriginal: r }) {
4763
+ const Xl = (t) => `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
4764
+ function ec({ state: t, line: e, onRetry: n, onOriginal: r }) {
4766
4765
  const [s, i] = O(() => Date.now());
4767
4766
  E(() => {
4768
4767
  if (t.since == null) return;
@@ -4795,7 +4794,7 @@ function Xl({ state: t, line: e, onRetry: n, onOriginal: r }) {
4795
4794
  /* @__PURE__ */ f("div", { className: "pwait__head", children: [
4796
4795
  l ? /* @__PURE__ */ a("div", { className: "pwait__mark", "aria-hidden": "true", children: /* @__PURE__ */ a(ue, { d: K.warnCircle, size: 18, sw: 1.8 }) }) : /* @__PURE__ */ a("div", { className: "pwait__spin", "aria-hidden": "true" }),
4797
4796
  /* @__PURE__ */ a("div", { className: "pwait__t", children: c }),
4798
- !l && o != null && o >= 3 && /* @__PURE__ */ a("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: Jl(o) })
4797
+ !l && o != null && o >= 3 && /* @__PURE__ */ a("div", { className: "pwait__clock", "aria-label": `${o} seconds`, children: Xl(o) })
4799
4798
  ] }),
4800
4799
  /* @__PURE__ */ a("div", { className: "pwait__note", children: u }),
4801
4800
  !l && /* @__PURE__ */ a("div", { className: "pwait__bar", "aria-hidden": "true", children: /* @__PURE__ */ a("div", {}) }),
@@ -4808,13 +4807,13 @@ function Xl({ state: t, line: e, onRetry: n, onOriginal: r }) {
4808
4807
  }
4809
4808
  );
4810
4809
  }
4811
- const ec = "https://app.vocalstack.com", tc = "/connect/transcribe";
4812
- function nc() {
4810
+ const tc = "https://app.vocalstack.com", nc = "/connect/transcribe";
4811
+ function rc() {
4813
4812
  const t = new Uint8Array(24);
4814
4813
  return crypto.getRandomValues(t), btoa(String.fromCharCode(...t)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
4815
4814
  }
4816
4815
  function wi(t, e, n) {
4817
- const r = new URL(t ?? ec), s = nc(), i = new URL(tc, r);
4816
+ const r = new URL(t ?? tc), s = rc(), i = new URL(nc, r);
4818
4817
  e.url && i.searchParams.set("url", e.url), e.transcription && i.searchParams.set("transcription", e.transcription), e.ask && i.searchParams.set("ask", "1"), i.searchParams.set("origin", window.location.origin), i.searchParams.set("nonce", s);
4819
4818
  const o = 480, l = 640, c = Math.max(0, (window.screenX ?? 0) + ((window.outerWidth ?? o) - o) / 2), u = Math.max(0, (window.screenY ?? 0) + ((window.outerHeight ?? l) - l) / 2), d = window.open(i.toString(), "vocalstack-connect", `popup=yes,width=${o},height=${l},left=${Math.round(c)},top=${Math.round(u)}`);
4820
4819
  return d ? new Promise((g, M) => {
@@ -4850,16 +4849,16 @@ function wi(t, e, n) {
4850
4849
  }, 500);
4851
4850
  }) : Promise.reject(new Error("Your browser blocked the VocalStack window. Allow pop-ups for this site and try again."));
4852
4851
  }
4853
- function rc(t, e, n) {
4852
+ function sc(t, e, n) {
4854
4853
  return wi(t, { url: e }, n);
4855
4854
  }
4856
- const sc = {
4855
+ const ic = {
4857
4856
  "signing-in": "Sign in to VocalStack in the window that opened…",
4858
4857
  consent: "Confirm in the VocalStack window…",
4859
4858
  checking: "Checking the link…",
4860
4859
  starting: "Starting the transcription…"
4861
- }, ic = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
4862
- function ac({ options: t, onStarted: e, onReplay: n, onClose: r }) {
4860
+ }, ac = /^(https?:\/\/)?([\w-]+\.)+[a-z]{2,}(\/\S*)?$/i;
4861
+ function oc({ options: t, onStarted: e, onReplay: n, onClose: r }) {
4863
4862
  const [s, i] = O(""), [o, l] = O(!1), [c, u] = O(null), [d, g] = O(null);
4864
4863
  E(() => {
4865
4864
  const j = (T) => {
@@ -4867,11 +4866,11 @@ function ac({ options: t, onStarted: e, onReplay: n, onClose: r }) {
4867
4866
  };
4868
4867
  return window.addEventListener("keydown", j), () => window.removeEventListener("keydown", j);
4869
4868
  }, [r]);
4870
- const M = s.trim(), p = ic.test(M), y = async () => {
4869
+ const M = s.trim(), p = ac.test(M), y = async () => {
4871
4870
  if (!(!p || o)) {
4872
4871
  l(!0), u(null);
4873
4872
  try {
4874
- const j = await rc(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, g);
4873
+ const j = await sc(t.appUrl, /^https?:\/\//i.test(M) ? M : `https://${M}`, g);
4875
4874
  j && e(j);
4876
4875
  } catch (j) {
4877
4876
  u(j instanceof Error ? j.message : "Something went wrong. Please try again.");
@@ -4895,7 +4894,7 @@ function ac({ options: t, onStarted: e, onReplay: n, onClose: r }) {
4895
4894
  }, "aria-label": "Video link" }),
4896
4895
  /* @__PURE__ */ a("button", { type: "submit", className: "vsp-end__go", disabled: !p || o, children: o ? /* @__PURE__ */ a(ct, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : "Transcribe" })
4897
4896
  ] }),
4898
- o && /* @__PURE__ */ a("div", { className: "vsp-end__note", role: "status", children: sc[d ?? "checking"] }),
4897
+ o && /* @__PURE__ */ a("div", { className: "vsp-end__note", role: "status", children: ic[d ?? "checking"] }),
4899
4898
  c && /* @__PURE__ */ a("div", { className: "vsp-end__err", role: "alert", children: c }),
4900
4899
  /* @__PURE__ */ f("div", { className: "vsp-end__foot", children: [
4901
4900
  /* @__PURE__ */ a("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }),
@@ -4906,7 +4905,7 @@ function ac({ options: t, onStarted: e, onReplay: n, onClose: r }) {
4906
4905
  ] })
4907
4906
  ] }) });
4908
4907
  }
4909
- function oc(t) {
4908
+ function lc(t) {
4910
4909
  const [e, n] = O(() => typeof window > "u" ? !0 : window.innerWidth >= 880);
4911
4910
  return E(() => {
4912
4911
  if (t != null) return;
@@ -4914,20 +4913,20 @@ function oc(t) {
4914
4913
  return window.addEventListener("resize", r), () => window.removeEventListener("resize", r);
4915
4914
  }, [t]), t ?? e;
4916
4915
  }
4917
- const lc = {
4916
+ const cc = {
4918
4917
  "signing-in": "Sign in to VocalStack in the window that opened…",
4919
4918
  consent: "Confirm in the VocalStack window…",
4920
4919
  checking: "Looking for your transcription of this video…",
4921
4920
  starting: "Starting the transcription…"
4922
4921
  };
4923
- function cc(t) {
4922
+ function uc(t) {
4924
4923
  try {
4925
4924
  return new URL(t).hostname.replace(/^www\./, "");
4926
4925
  } catch {
4927
4926
  return t;
4928
4927
  }
4929
4928
  }
4930
- function uc({ src: t, appUrl: e, title: n, onReady: r }) {
4929
+ function dc({ src: t, appUrl: e, title: n, onReady: r }) {
4931
4930
  const [s, i] = O(!1), [o, l] = O(null), [c, u] = O(null), d = or(t), g = async () => {
4932
4931
  if (!s) {
4933
4932
  i(!0), u(null);
@@ -4946,18 +4945,18 @@ function uc({ src: t, appUrl: e, title: n, onReady: r }) {
4946
4945
  /* @__PURE__ */ f("div", { className: "vsp-end__card vsp-gate__card", children: [
4947
4946
  /* @__PURE__ */ a("div", { className: "vsp-end__brand", children: /* @__PURE__ */ a(Vt, { dark: !0, link: !1, height: 16 }) }),
4948
4947
  /* @__PURE__ */ a("div", { className: "vsp-end__title", children: n ?? "Watch with subtitles and spoken translations" }),
4949
- /* @__PURE__ */ a("div", { className: "vsp-end__note", children: `From ${cc(t)}. If you have transcribed it with VocalStack it plays right away; if not, you can start it here.` }),
4948
+ /* @__PURE__ */ a("div", { className: "vsp-end__note", children: `From ${uc(t)}. If you have transcribed it with VocalStack it plays right away; if not, you can start it here.` }),
4950
4949
  /* @__PURE__ */ a("button", { type: "button", className: "vsp-end__go vsp-gate__go", onClick: () => void g(), disabled: s, children: s ? /* @__PURE__ */ a(ct, { size: 15, color: "#050507", track: "rgba(5,5,7,.2)" }) : /* @__PURE__ */ f(Pe, { children: [
4951
4950
  /* @__PURE__ */ a(ue, { d: K.cc, size: 16, sw: 1.7 }),
4952
4951
  "Open with VocalStack"
4953
4952
  ] }) }),
4954
- s && /* @__PURE__ */ a("div", { className: "vsp-end__note", role: "status", children: lc[o ?? "checking"] }),
4953
+ s && /* @__PURE__ */ a("div", { className: "vsp-end__note", role: "status", children: cc[o ?? "checking"] }),
4955
4954
  c && /* @__PURE__ */ a("div", { className: "vsp-end__err", role: "alert", children: c }),
4956
4955
  /* @__PURE__ */ a("div", { className: "vsp-end__foot", children: /* @__PURE__ */ a("span", { children: "Uses your VocalStack account. You'll be asked to sign in if you're not." }) })
4957
4956
  ] })
4958
4957
  ] });
4959
4958
  }
4960
- function dc(t, e, n) {
4959
+ function Mc(t, e, n) {
4961
4960
  const [r, s] = O(t && e ? void 0 : null);
4962
4961
  return E(() => {
4963
4962
  if (!t) {
@@ -4970,7 +4969,7 @@ function dc(t, e, n) {
4970
4969
  }
4971
4970
  let i = !0;
4972
4971
  s(void 0);
4973
- const o = new Hs({ baseUrl: (n ?? li).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
4972
+ const o = new Vs({ baseUrl: (n ?? li).replace(/\/$/, ""), token: async () => (typeof e == "function" ? await e() : e) || void 0 }), l = o.transcriptions.lookup;
4974
4973
  if (!l) {
4975
4974
  s(null);
4976
4975
  return;
@@ -4984,13 +4983,13 @@ function dc(t, e, n) {
4984
4983
  };
4985
4984
  }, [t, e, n]), r;
4986
4985
  }
4987
- const Qs = (t) => t == null ? null : t ? "on" : "off";
4988
- function Mc(t) {
4986
+ const $s = (t) => t == null ? null : t ? "on" : "off";
4987
+ function gc(t) {
4989
4988
  const e = t.syncUrl && typeof window < "u" ? new URLSearchParams(window.location.search) : null, n = { ...t.initial ?? {}, ...t.settings ?? {} }, r = (i) => i === "on" || i === "off" ? i : null, s = Number(e == null ? void 0 : e.get("t"));
4990
4989
  return {
4991
4990
  lang: (e == null ? void 0 : e.get("lang")) || n.lang || null,
4992
- labels: r(e == null ? void 0 : e.get("labels")) ?? Qs(n.speakerLabels),
4993
- words: r(e == null ? void 0 : e.get("words")) ?? Qs(n.wordHighlight),
4991
+ labels: r(e == null ? void 0 : e.get("labels")) ?? $s(n.speakerLabels),
4992
+ words: r(e == null ? void 0 : e.get("words")) ?? $s(n.wordHighlight),
4994
4993
  cc: e != null && e.get("cc") ? e.get("cc") !== "off" : n.subtitles ?? !0,
4995
4994
  translateAudio: e != null && e.get("audio") ? e.get("audio") !== "original" : n.translateAudio ?? !0,
4996
4995
  clonedVoices: e != null && e.get("voices") ? e.get("voices") !== "stock" : (n.voices ?? "cloned") === "cloned",
@@ -4998,16 +4997,16 @@ function Mc(t) {
4998
4997
  startAt: Number.isFinite(s) && s > 0 ? s : t.startAt ?? null
4999
4998
  };
5000
4999
  }
5001
- function kc(t) {
5000
+ function vc(t) {
5002
5001
  const [e, n] = O({ id: t.id ?? "", token: t.token });
5003
5002
  E(() => {
5004
5003
  n({ id: t.id ?? "", token: t.token });
5005
5004
  }, [t.id, t.token, t.src]);
5006
- const r = dc(t.src ?? null, t.token ?? null, t.baseUrl ?? null);
5005
+ const r = Mc(t.src ?? null, t.token ?? null, t.baseUrl ?? null);
5007
5006
  E(() => {
5008
5007
  r != null && r.id && n({ id: r.id, token: t.token });
5009
5008
  }, [r == null ? void 0 : r.id]);
5010
- const s = !e.id && !!t.src && r !== void 0, i = ci({ id: e.id, token: e.token, baseUrl: t.baseUrl, listen: e.listen }), { source: o, gone: l, error: c, reload: u } = No(i, e.id), d = po(i, (o == null ? void 0 : o.recording.id) ?? null), g = Ie(() => ho(i, d), [i, d]);
5009
+ const s = !e.id && !!t.src && r !== void 0, i = ci({ id: e.id, token: e.token, baseUrl: t.baseUrl, listen: e.listen }), { source: o, gone: l, error: c, reload: u } = po(i, e.id), d = mo(i, (o == null ? void 0 : o.recording.id) ?? null), g = ze(() => fo(i, d), [i, d]);
5011
5010
  E(() => {
5012
5011
  var T;
5013
5012
  o && ((T = t.onSource) == null || T.call(t, o));
@@ -5015,23 +5014,23 @@ function kc(t) {
5015
5014
  var T;
5016
5015
  c && ((T = t.onError) == null || T.call(t, c));
5017
5016
  }, [c]);
5018
- const M = oc(t.desk), p = (t.layout ?? "embed") === "embed", y = t.appUrl ?? (t.endCard ? t.endCard.appUrl : void 0), j = z(null);
5019
- return E(() => (Rs(p ? j.current : null), () => Rs(null)), [p]), /* @__PURE__ */ a(co, { value: g, children: /* @__PURE__ */ a("div", { ref: j, className: `vsp${p ? " vsp--embed" : ""}${t.className ? ` ${t.className}` : ""}`, "data-theme": t.mode === "video" || t.dark ? "dark" : "light", "data-mode": t.mode === "video" ? "video" : "transcript", children: s ? /* @__PURE__ */ a(uc, { src: t.src, appUrl: y, onReady: (T) => n({ id: T.transcriptionId, token: null, listen: { transcriptionId: T.transcriptionId, recordingId: T.recordingId, token: T.token } }) }) : e.id ? /* @__PURE__ */ a(gc, { ...t, id: e.id, api: g, shared: o, gone: l, loadError: c, reread: u, desk: M, dark: t.mode === "video" || !!t.dark, onStarted: (T) => n({ id: T.transcriptionId, token: null, listen: { transcriptionId: T.transcriptionId, recordingId: T.recordingId, token: T.token } }) }, e.id) : /* @__PURE__ */ a("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ a("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
5017
+ const M = lc(t.desk), p = (t.layout ?? "embed") === "embed", y = t.appUrl ?? (t.endCard ? t.endCard.appUrl : void 0), j = z(null);
5018
+ return E(() => (Ps(p ? j.current : null), () => Ps(null)), [p]), /* @__PURE__ */ a(uo, { value: g, children: /* @__PURE__ */ a("div", { ref: j, className: `vsp${p ? " vsp--embed" : ""}${t.className ? ` ${t.className}` : ""}`, "data-theme": t.mode === "video" || t.dark ? "dark" : "light", "data-mode": t.mode === "video" ? "video" : "transcript", children: s ? /* @__PURE__ */ a(dc, { src: t.src, appUrl: y, onReady: (T) => n({ id: T.transcriptionId, token: null, listen: { transcriptionId: T.transcriptionId, recordingId: T.recordingId, token: T.token } }) }) : e.id ? /* @__PURE__ */ a(hc, { ...t, id: e.id, api: g, shared: o, gone: l, loadError: c, reread: u, desk: M, dark: t.mode === "video" || !!t.dark, onStarted: (T) => n({ id: T.transcriptionId, token: null, listen: { transcriptionId: T.transcriptionId, recordingId: T.recordingId, token: T.token } }) }, e.id) : /* @__PURE__ */ a("div", { className: "vsp-gate", "data-theme": "dark", children: /* @__PURE__ */ a("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) }) }) });
5020
5019
  }
5021
- function gc(t) {
5022
- var Gr, Zr, qr, Kr, Jr, Xr, es, ts, ns, rs, ss, is, as, os, ls, cs, us, ds, Ms, gs, hs, fs, Ns, ps;
5023
- const { api: e, shared: n, gone: r, desk: s, dark: i } = t, o = t.id ?? "", l = Ie(() => Mc(t), []), c = t.mode === "video", u = ((Zr = (Gr = n == null ? void 0 : n.job) == null ? void 0 : Gr.source) == null ? void 0 : Zr.kind) === "url" ? or(n.job.source.url) : null, d = c && !(n && !u), [g, M] = O(t.loadError);
5020
+ function hc(t) {
5021
+ var Zr, qr, Kr, Jr, Xr, es, ts, ns, rs, ss, is, as, os, ls, cs, us, ds, Ms, gs, hs, fs, Ns, ps, ms;
5022
+ const { api: e, shared: n, gone: r, desk: s, dark: i } = t, o = t.id ?? "", l = ze(() => gc(t), []), c = t.mode === "video", u = ((qr = (Zr = n == null ? void 0 : n.job) == null ? void 0 : Zr.source) == null ? void 0 : qr.kind) === "url" ? or(n.job.source.url) : null, d = c && !(n && !u), [g, M] = O(t.loadError);
5024
5023
  E(() => {
5025
5024
  t.loadError && M(t.loadError);
5026
5025
  }, [t.loadError]);
5027
- const [p, y] = O("none"), [j, T] = O(!1), [N, h] = O(""), [C, D] = Ll(), [k, te] = O(null), [R, X] = O(d ? "listen" : "read"), [I, b] = O(!1), Q = z(null), L = z(/* @__PURE__ */ new Map()), [v, S] = O("main"), ne = (w) => {
5026
+ const [p, y] = O("none"), [j, T] = O(!1), [N, h] = O(""), [C, D] = wl(), [k, te] = O(null), [R, X] = O(d ? "listen" : "read"), [I, b] = O(!1), Q = z(null), L = z(/* @__PURE__ */ new Map()), [v, S] = O("main"), ne = (w) => {
5028
5027
  const me = document.querySelector(".vs-sheet--settings"), Re = me == null ? void 0 : me.parentElement;
5029
5028
  me && Re && v === "main" && w !== "main" && Re.style.setProperty("--vs-sheet-top", `${Math.round(me.getBoundingClientRect().top - Re.getBoundingClientRect().top)}px`), S(w);
5030
5029
  };
5031
5030
  E(() => {
5032
5031
  I || ne("main");
5033
5032
  }, [I]);
5034
- const [$, U] = O(d), Me = (n == null ? void 0 : n.recording) ?? null, P = (Me == null ? void 0 : Me.id) ?? null, [H, ae] = O(l.lang), oe = typeof H == "string" ? H : null, [re, we] = O(l.labels), [pe, Ce] = O(l.words), [xe, Qe] = O(l.cc), [G, ce] = O(l.translateAudio), [ke, Ae] = O(l.clonedVoices), [se, le] = O(l.removeBackground), m = t.settings;
5033
+ const [$, U] = O(d), Me = (n == null ? void 0 : n.recording) ?? null, P = (Me == null ? void 0 : Me.id) ?? null, [V, ae] = O(l.lang), oe = typeof V == "string" ? V : null, [re, we] = O(l.labels), [pe, Ce] = O(l.words), [xe, Qe] = O(l.cc), [G, ce] = O(l.translateAudio), [ke, Ae] = O(l.clonedVoices), [se, le] = O(l.removeBackground), m = t.settings;
5035
5034
  E(() => {
5036
5035
  (m == null ? void 0 : m.lang) !== void 0 && ae(m.lang);
5037
5036
  }, [m == null ? void 0 : m.lang]), E(() => {
@@ -5055,16 +5054,16 @@ function gc(t) {
5055
5054
  }, [oe, re, pe, xe, G, ke, se]), E(() => {
5056
5055
  n && !n.allowTranslate && oe && ae(null);
5057
5056
  }, [n, oe]);
5058
- const { model: Z, error: de, clearError: W, setLanguage: De, mergeTranslations: V, translating: je, translateFailed: fe, shownLang: ge } = wo(P, {
5057
+ const { model: Z, error: de, clearError: W, setLanguage: De, mergeTranslations: F, translating: ve, translateFailed: fe, shownLang: ge } = ko(P, {
5059
5058
  lang: null,
5060
5059
  onFrame: (w) => {
5061
5060
  w.type === "job.progress" && te({ state: w.state, processedS: w.processedS ?? 0, totalS: w.totalS ?? null, segmentsDone: w.segmentsDone ?? 0, segmentsTotal: w.segmentsTotal ?? null, pct: w.pct ?? 0, error: w.error ?? null });
5062
5061
  }
5063
- }), q = Ie(() => Ka(Z).filter((w) => !w.suppressed), [Z]), ze = ko((n == null ? void 0 : n.job) ?? null), $e = ["done", "failed", "stopped"].includes(qn((ze == null ? void 0 : ze.state) ?? ((qr = n == null ? void 0 : n.job) == null ? void 0 : qr.state))), ye = $e ? ze : k ?? ze, be = !!k && !["done", "failed", "stopped"].includes(qn(k.state)), He = z(0);
5062
+ }), q = ze(() => Ja(Z).filter((w) => !w.suppressed), [Z]), je = vo((n == null ? void 0 : n.job) ?? null), $e = ["done", "failed", "stopped"].includes(qn((je == null ? void 0 : je.state) ?? ((Kr = n == null ? void 0 : n.job) == null ? void 0 : Kr.state))), ye = $e ? je : k ?? je, be = !!k && !["done", "failed", "stopped"].includes(qn(k.state)), He = z(0);
5064
5063
  E(() => {
5065
5064
  !$e || !be || Date.now() - He.current < 1e4 || (He.current = Date.now(), t.reread());
5066
5065
  }, [$e, be, k == null ? void 0 : k.state, k == null ? void 0 : k.processedS, o]);
5067
- const Oe = qn((ye == null ? void 0 : ye.state) ?? ((Kr = n == null ? void 0 : n.job) == null ? void 0 : Kr.state)), Ye = !!P && (Oe === "transcribing" || Oe === "queued"), Y = d && !r && (!n || (Ye || Oe === "cropping") && q.length === 0), _ = Ye ? (ye == null ? void 0 : ye.pct) ?? 0 : 100, B = jo(n == null ? void 0 : n.job, ye) ?? (Me == null ? void 0 : Me.mediaDurationS) ?? null, ee = ((Jr = Z.segments.values().next().value) == null ? void 0 : Jr.language) ?? (Me == null ? void 0 : Me.spokenLanguage) ?? null, ie = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", Te = ((ts = (es = (Xr = n == null ? void 0 : n.job) == null ? void 0 : Xr.source) == null ? void 0 : es.name) == null ? void 0 : ts.trim()) || null, _e = n ? ((ns = n.name) == null ? void 0 : ns.trim()) || Te : null, Ee = !!((rs = n == null ? void 0 : n.job) != null && rs.hasAudio), Le = (ss = n == null ? void 0 : n.job) == null ? void 0 : ss.source, Ve = !Ee && !!Le && (Le.kind !== "url" || Le.bytes != null) && (Oe === "transcribing" || Oe === "queued" || Oe === "done"), qe = P && (n != null && n.allowDownload) && Ee ? da(e.origin, P, e.cred) : P && (n != null && n.allowDownload) && Ve ? Vn(e.origin, P, "source", e.cred) : null, at = q[q.length - 1], Tt = at ? ((is = at.words[at.words.length - 1]) == null ? void 0 : is.end) ?? at.start : 0, Mt = d && Ye ? Math.max(Tt, (ye == null ? void 0 : ye.processedS) ?? 0) : null, We = Il(qe, (Ee || Ve) && !!(n != null && n.allowDownload), q, B, Ve ? ((os = (as = n == null ? void 0 : n.job) == null ? void 0 : as.crop) == null ? void 0 : os.startS) ?? 0 : 0, Mt), Ue = ((cs = (ls = n == null ? void 0 : n.job) == null ? void 0 : ls.source) == null ? void 0 : cs.kind) === "url" ? or(n.job.source.url) : null, nt = zl(q, B, ((ds = (us = n == null ? void 0 : n.job) == null ? void 0 : us.crop) == null ? void 0 : ds.startS) ?? 0, Mt), Fe = !!Ue, Lt = Fe ? nt.player : We, ut = mo(), vt = z(null), J = bl({ recordingId: P, model: Z, rows: q, lenS: B, ended: !!P && !Ye, cred: e.cred, langs: ut, srcLang: ee, canTranslate: !!(n != null && n.allowTranslate), pickedLang: H, setPickedLang: ae, side: s && !$ ? Dl : void 0, hearOriginal: Ne, timed: !!Ue, stockVoices: d && !ke, stickyPicker: d, pickerBusy: vt.current }), Ut = z(null);
5066
+ const Ie = qn((ye == null ? void 0 : ye.state) ?? ((Jr = n == null ? void 0 : n.job) == null ? void 0 : Jr.state)), Ye = !!P && (Ie === "transcribing" || Ie === "queued"), Y = d && !r && (!n || (Ye || Ie === "cropping") && q.length === 0), _ = Ye ? (ye == null ? void 0 : ye.pct) ?? 0 : 100, B = zo(n == null ? void 0 : n.job, ye) ?? (Me == null ? void 0 : Me.mediaDurationS) ?? null, ee = ((Xr = Z.segments.values().next().value) == null ? void 0 : Xr.language) ?? (Me == null ? void 0 : Me.spokenLanguage) ?? null, ie = n != null && n.sharedBy ? `Shared by ${n.sharedBy}` : "", Te = ((ns = (ts = (es = n == null ? void 0 : n.job) == null ? void 0 : es.source) == null ? void 0 : ts.name) == null ? void 0 : ns.trim()) || null, _e = n ? ((rs = n.name) == null ? void 0 : rs.trim()) || Te : null, Ee = !!((ss = n == null ? void 0 : n.job) != null && ss.hasAudio), Le = (is = n == null ? void 0 : n.job) == null ? void 0 : is.source, Ve = !Ee && !!Le && (Le.kind !== "url" || Le.bytes != null) && (Ie === "transcribing" || Ie === "queued" || Ie === "done"), qe = P && (n != null && n.allowDownload) && Ee ? da(e.origin, P, e.cred) : P && (n != null && n.allowDownload) && Ve ? Vn(e.origin, P, "source", e.cred) : null, it = q[q.length - 1], Tt = it ? ((as = it.words[it.words.length - 1]) == null ? void 0 : as.end) ?? it.start : 0, gt = d && Ye ? Math.max(Tt, (ye == null ? void 0 : ye.processedS) ?? 0) : null, We = Ol(qe, (Ee || Ve) && !!(n != null && n.allowDownload), q, B, Ve ? ((ls = (os = n == null ? void 0 : n.job) == null ? void 0 : os.crop) == null ? void 0 : ls.startS) ?? 0 : 0, gt), Ue = ((us = (cs = n == null ? void 0 : n.job) == null ? void 0 : cs.source) == null ? void 0 : us.kind) === "url" ? or(n.job.source.url) : null, nt = Il(q, B, ((Ms = (ds = n == null ? void 0 : n.job) == null ? void 0 : ds.crop) == null ? void 0 : Ms.startS) ?? 0, gt), Fe = !!Ue, Lt = Fe ? nt.player : We, ut = yo(), vt = z(null), J = Sl({ recordingId: P, model: Z, rows: q, lenS: B, ended: !!P && !Ye, cred: e.cred, langs: ut, srcLang: ee, canTranslate: !!(n != null && n.allowTranslate), pickedLang: V, setPickedLang: ae, side: s && !$ ? bl : void 0, hearOriginal: Ne, timed: !!Ue, stockVoices: d && !ke, stickyPicker: d, pickerBusy: vt.current }), Ut = z(null);
5068
5067
  E(() => {
5069
5068
  !P || Ut.current === oe || (Ut.current = oe, De(oe));
5070
5069
  }, [oe, P]);
@@ -5076,39 +5075,39 @@ function gc(t) {
5076
5075
  }
5077
5076
  (J.on ? Lt : J.player).pause();
5078
5077
  }, [J.on, Fe]);
5079
- const Tn = Ie(() => q.filter((w) => w.sentenceId != null).map((w, me, Re) => {
5078
+ const Tn = ze(() => q.filter((w) => w.sentenceId != null).map((w, me, Re) => {
5080
5079
  var Ze;
5081
5080
  return { sid: w.sentenceId, start: w.start, end: ((Ze = Re[me + 1]) == null ? void 0 : Ze.start) ?? Ot(w, w.start, w.start + 4) };
5082
- }), [q]), rt = Ha({ on: Fe && J.on, lines: Tn, clips: J.clips, t: x.t, playing: x.playing, muted: x.muted }), xt = !!oe && (je || J.relang || J.on && rt.missing != null);
5081
+ }), [q]), rt = Va({ on: Fe && J.on, lines: Tn, clips: J.clips, t: x.t, playing: x.playing, muted: x.muted }), xt = !!oe && (ve || J.relang || J.on && rt.missing != null);
5083
5082
  vt.current = xt ? oe : null, E(() => {
5084
5083
  Fe && J.on && rt.sid != null && J.setNear(rt.sid);
5085
- }, [rt.sid, Fe, J.on]), jl([Lt, J.player], J.sampling);
5084
+ }, [rt.sid, Fe, J.on]), zl([Lt, J.player], J.sampling);
5086
5085
  const jt = z(null);
5087
5086
  E(() => {
5088
5087
  Ye && !x.playing && jt.current && (jt.current.scrollTop = jt.current.scrollHeight);
5089
5088
  }, [Ye, q.length]);
5090
- const Ft = El(jt, q, j, N, T), Wt = /* @__PURE__ */ a(Al, { open: j, q: N, onQ: h, onClose: () => T(!1), hits: Ft, desk: s, inline: s }), Ge = (n == null ? void 0 : n.name) || t.src || o, dt = !!(n != null && n.allowDownload), Dt = !!(n != null && n.allowExport), st = J.readLang, ot = st ? ((Ms = ut == null ? void 0 : ut.languages.find((w) => w.code === st)) == null ? void 0 : Ms.name) ?? st.toUpperCase() : null, gt = async () => {
5089
+ const Ft = Yl(jt, q, j, N, T), Wt = /* @__PURE__ */ a(El, { open: j, q: N, onQ: h, onClose: () => T(!1), hits: Ft, desk: s, inline: s }), Ge = (n == null ? void 0 : n.name) || t.src || o, dt = !!(n != null && n.allowDownload), Dt = !!(n != null && n.allowExport), at = J.readLang, lt = at ? ((gs = ut == null ? void 0 : ut.languages.find((w) => w.code === at)) == null ? void 0 : gs.name) ?? at.toUpperCase() : null, Mt = async () => {
5091
5090
  if (P)
5092
5091
  try {
5093
- if (st && J.canSpeak) {
5094
- D(`Preparing ${Ge} in ${ot}${J.readVoiceName ? `, read by ${J.readVoiceName}` : ""} — the download starts when it is ready.`), await Oo(e, { recordingId: P, lang: st, voiceKey: J.readVoiceKey, cred: e.cred, request: J.requestTrack }), D(`Downloading ${Ge} in ${ot}.`);
5092
+ if (at && J.canSpeak) {
5093
+ D(`Preparing ${Ge} in ${lt}${J.readVoiceName ? `, read by ${J.readVoiceName}` : ""} — the download starts when it is ready.`), await Co(e, { recordingId: P, lang: at, voiceKey: J.readVoiceKey, cred: e.cred, request: J.requestTrack }), D(`Downloading ${Ge} in ${lt}.`);
5095
5094
  return;
5096
5095
  }
5097
5096
  if (Ee) {
5098
- D(`Preparing ${Ge} as MP3 — the download starts when it is ready.`), await zo(Vn(e.origin, P, "delivery", e.cred)), D(`Downloading ${Ge}.`);
5097
+ D(`Preparing ${Ge} as MP3 — the download starts when it is ready.`), await Io(Vn(e.origin, P, "delivery", e.cred)), D(`Downloading ${Ge}.`);
5099
5098
  return;
5100
5099
  }
5101
- pr(Vn(e.origin, P, "source", e.cred)), D(`Downloading ${Ge} — the full audio, since the transcript is still being written.`);
5100
+ mr(Vn(e.origin, P, "source", e.cred)), D(`Downloading ${Ge} — the full audio, since the transcript is still being written.`);
5102
5101
  } catch (w) {
5103
5102
  throw M(yt(w)), w;
5104
5103
  }
5105
5104
  }, bt = (w) => {
5106
5105
  if (!P) return;
5107
- const me = ar.find((Ze) => Ze.key === w).name, Re = ot ? ` in ${ot}` : "";
5108
- return Io(e, P, w, { lang: st }).then(() => D(Ye ? `${me} exported${Re} for the first ${q.length} segments — the rest is still transcribing.` : `${me} exported${Re}.`)).catch((Ze) => {
5106
+ const me = ar.find((Ze) => Ze.key === w).name, Re = lt ? ` in ${lt}` : "";
5107
+ return Oo(e, P, w, { lang: at }).then(() => D(Ye ? `${me} exported${Re} for the first ${q.length} segments — the rest is still transcribing.` : `${me} exported${Re}.`)).catch((Ze) => {
5109
5108
  throw M(yt(Ze)), Ze;
5110
5109
  });
5111
- }, it = Ye ? "MORE TO COME…" : "END OF TRANSCRIPT", Gt = Ye ? "var(--brand)" : "var(--ink-28)", Rt = vo(ye, q.length), wt = x.has && (!J.relang || !!Ue), et = z(x);
5110
+ }, st = Ye ? "MORE TO COME…" : "END OF TRANSCRIPT", Gt = Ye ? "var(--brand)" : "var(--ink-28)", Rt = jo(ye, q.length), wt = x.has && (!J.relang || !!Ue), et = z(x);
5112
5111
  et.current = x;
5113
5112
  const ht = `${oe ?? ""}|${J.on ? "voice" : "source"}`, St = z({ key: ht, idx: 0, t: 0, playing: !1, until: 0 });
5114
5113
  E(() => {
@@ -5122,17 +5121,17 @@ function gc(t) {
5122
5121
  w.until = 0;
5123
5122
  return;
5124
5123
  }
5125
- !x.has || J.relang || (w.until = 0, Math.abs(x.t - w.t) > 0.5 && (x.seekFrac && x.dur > 0 ? x.seekFrac(w.t / x.dur) : x.seekRow(w.idx)), w.playing && !x.playing && (lt.current = !0, x.toggle()));
5124
+ !x.has || J.relang || (w.until = 0, Math.abs(x.t - w.t) > 0.5 && (x.seekFrac && x.dur > 0 ? x.seekFrac(w.t / x.dur) : x.seekRow(w.idx)), w.playing && !x.playing && (ot.current = !0, x.toggle()));
5126
5125
  }
5127
5126
  });
5128
- const Zt = z(!1), lt = z(!1);
5129
- d && (qs.video = !0);
5127
+ const Zt = z(!1), ot = z(!1);
5128
+ d && (Ks.video = !0);
5130
5129
  const [qt, At] = O(!1), [Ln, wn] = O(!1);
5131
5130
  E(() => {
5132
5131
  if (!d || Zt.current || !wt || !$ || Y || t.autoplay === !1) return;
5133
5132
  Zt.current = !0;
5134
5133
  const w = (Ze) => {
5135
- et.current.playing || lt.current || (et.current.toggle(), Ze > 0 && setTimeout(() => w(Ze - 1), 1500));
5134
+ et.current.playing || ot.current || (et.current.toggle(), Ze > 0 && setTimeout(() => w(Ze - 1), 1500));
5136
5135
  }, me = () => {
5137
5136
  et.current.muted || et.current.toggleMute(), At(!0), w(3);
5138
5137
  }, Re = et.current;
@@ -5141,7 +5140,7 @@ function gc(t) {
5141
5140
  return;
5142
5141
  }
5143
5142
  Re.autoplay().then((Ze) => {
5144
- Ze === !1 ? At(!0) : Ze == null && !lt.current && me();
5143
+ Ze === !1 ? At(!0) : Ze == null && !ot.current && me();
5145
5144
  });
5146
5145
  }, [d, wt, $, Y]);
5147
5146
  const ft = z(!1), Kt = () => {
@@ -5159,26 +5158,26 @@ function gc(t) {
5159
5158
  ft.current = !1;
5160
5159
  return;
5161
5160
  }
5162
- lt.current = !0, et.current.toggle();
5163
- }, F = (w) => /* @__PURE__ */ a(Tl, { player: x, size: w }), ve = !!P && !Ye, [Be, Nt] = O(!1);
5161
+ ot.current = !0, et.current.toggle();
5162
+ }, H = (w) => /* @__PURE__ */ a(Ll, { player: x, size: w }), Oe = !!P && !Ye, [Be, Nt] = O(!1);
5164
5163
  E(() => {
5165
- if (!je) {
5164
+ if (!ve) {
5166
5165
  Nt(!1);
5167
5166
  return;
5168
5167
  }
5169
5168
  const w = setTimeout(() => Nt(!0), 180);
5170
5169
  return () => clearTimeout(w);
5171
- }, [je]);
5172
- const zt = Be ? ge : oe, ki = Po(P, oe, q, V), kn = tl(nl(Me), P, J.readLang), vi = dt || Dt, ji = (((hs = (gs = n == null ? void 0 : n.job) == null ? void 0 : gs.crop) == null ? void 0 : hs.startS) ?? 0) + Jn(x, q), vn = R === "listen", It = vn && !!Ue, zi = (w) => {
5170
+ }, [ve]);
5171
+ const zt = Be ? ge : oe, ki = Qo(P, oe, q, F), kn = nl(rl(Me), P, J.readLang), vi = dt || Dt, ji = (((fs = (hs = n == null ? void 0 : n.job) == null ? void 0 : hs.crop) == null ? void 0 : fs.startS) ?? 0) + Jn(x, q), vn = R === "listen", It = vn && !!Ue, zi = (w) => {
5173
5172
  Lt.pause(), J.player.pause(), X(w), w === "read" && $ && ($t(!1), U(!1));
5174
- }, Se = J.barChip, Et = di(Se.label), yr = /* @__PURE__ */ a(Ts, { value: R, onChange: zi, bordered: !1, options: Zl(Et, !!Ue) }), Yt = [...ve ? [{ key: "summary", label: "Summary" }] : [], ...vi ? [{ key: "export", label: "Export" }] : []], Tr = (w) => /* @__PURE__ */ f(Pe, { children: [
5175
- w === "summary" && ve && /* @__PURE__ */ a(rl, { s: kn }),
5176
- w === "export" && /* @__PURE__ */ a(el, { audio: dt ? { name: Ge, meta: st && J.canSpeak || Ee ? `MP3${B ? ` · ${mt(B)}` : ""}` : "ORIGINAL AUDIO", onClick: gt } : null, formats: Dt, onExport: bt })
5177
- ] }), Ii = (w) => /* @__PURE__ */ a(Yo, { index: x.idx, total: Math.max(1, q.length), frac: x.dur > 0 ? Math.min(1, x.t / x.dur) : 0, glideMs: x.wordSync ? 0 : 220, atLabel: mt(x.t), durLabel: mt(x.dur), stepLabel: w ? `${x.idx + 1} / ${q.length}` : "", onSeek: J.relang ? Cl : x.seekRow, onSeekFrac: J.relang ? void 0 : x.seekFrac, onScrubStart: x.hold, onScrubEnd: x.release }), Lr = {
5173
+ }, Se = J.barChip, Et = di(Se.label), Tr = /* @__PURE__ */ a(Ls, { value: R, onChange: zi, bordered: !1, options: ql(Et, !!Ue) }), Yt = [...Oe ? [{ key: "summary", label: "Summary" }] : [], ...vi ? [{ key: "export", label: "Export" }] : []], Lr = (w) => /* @__PURE__ */ f(Pe, { children: [
5174
+ w === "summary" && Oe && /* @__PURE__ */ a(sl, { s: kn }),
5175
+ w === "export" && /* @__PURE__ */ a(tl, { audio: dt ? { name: Ge, meta: at && J.canSpeak || Ee ? `MP3${B ? ` · ${mt(B)}` : ""}` : "ORIGINAL AUDIO", onClick: Mt } : null, formats: Dt, onExport: bt })
5176
+ ] }), Ii = (w) => /* @__PURE__ */ a(_o, { index: x.idx, total: Math.max(1, q.length), frac: x.dur > 0 ? Math.min(1, x.t / x.dur) : 0, glideMs: x.wordSync ? 0 : 220, atLabel: mt(x.t), durLabel: mt(x.dur), stepLabel: w ? `${x.idx + 1} / ${q.length}` : "", onSeek: J.relang ? xl : x.seekRow, onSeekFrac: J.relang ? void 0 : x.seekFrac, onScrubStart: x.hold, onScrubEnd: x.release }), wr = {
5178
5177
  live: !1,
5179
5178
  atEdge: !1,
5180
5179
  edgeFrac: null,
5181
- readyFrac: Mt != null && x.dur > 0 ? Math.min(1, Mt / x.dur) : null,
5180
+ readyFrac: gt != null && x.dur > 0 ? Math.min(1, gt / x.dur) : null,
5182
5181
  pct: x.dur > 0 ? Math.min(100, Math.round(x.t / x.dur * 1e3) / 10) : 0,
5183
5182
  atLabel: mt(x.t),
5184
5183
  labelAt: (w) => mt(w * x.dur),
@@ -5187,55 +5186,55 @@ function gc(t) {
5187
5186
  var me;
5188
5187
  J.relang || (me = x.seekFrac) == null || me.call(x, w);
5189
5188
  }
5190
- }, [Oi, Ci] = Kl(J.on && !!x.preparing && x.playing, 1500), jn = J.on && ((fs = x.error) == null ? void 0 : fs.code) === "voice_not_started", zn = J.canSpeak && !J.error && !jn, en = oe ? ((Ns = ut == null ? void 0 : ut.languages.find((w) => w.code === oe)) == null ? void 0 : Ns.name) ?? Se.label : "", Je = $ ? ql({ lang: oe, langName: en, translating: je && !!oe, translateFailed: fe, voiceFailed: jn, relang: J.relang, starting: J.on ? x.starting : null, slowLine: Oi, lineSince: Ci }) : null, In = !!Ue && !!Je && (Je.kind === "translating" || Je.kind === "voice" && J.relang), wr = !In || !Je ? null : Je.kind === "translating" ? `Translating into ${en || "the new language"}…` : `Preparing the ${en || "translated"} voice…`, tn = !In && ((Je == null ? void 0 : Je.kind) === "voice" || (Je == null ? void 0 : Je.kind) === "starting"), kr = ni({ ...J.langList, keepOpen: !0, open: v === "lang", onClose: () => ne("main") }), vr = xa(se, J.on), xi = d && vr.bed && dt && P && (!Ye || qe) ? Ls(e.origin, P, e.cred) : null, jr = Ra(xi, { t: Jn(x, q), playing: x.playing && !tn && !(x.timed && x.preparing), muted: x.muted }), Di = d && vr.speech && dt && P && (!Ye || qe) ? Ls(e.origin, P, e.cred, "speech") : null, On = ri(Di, { t: Jn(x, q), playing: !J.on && x.playing, muted: x.muted }), Cn = !J.on && On.on;
5189
+ }, [Oi, Ci] = Jl(J.on && !!x.preparing && x.playing, 1500), jn = J.on && ((Ns = x.error) == null ? void 0 : Ns.code) === "voice_not_started", zn = J.canSpeak && !J.error && !jn, en = oe ? ((ps = ut == null ? void 0 : ut.languages.find((w) => w.code === oe)) == null ? void 0 : ps.name) ?? Se.label : "", Je = $ ? Kl({ lang: oe, langName: en, translating: ve && !!oe, translateFailed: fe, voiceFailed: jn, relang: J.relang, starting: J.on ? x.starting : null, slowLine: Oi, lineSince: Ci }) : null, In = !!Ue && !!Je && (Je.kind === "translating" || Je.kind === "voice" && J.relang), kr = !In || !Je ? null : Je.kind === "translating" ? `Translating into ${en || "the new language"}…` : `Preparing the ${en || "translated"} voice…`, tn = !In && ((Je == null ? void 0 : Je.kind) === "voice" || (Je == null ? void 0 : Je.kind) === "starting"), vr = ri({ ...J.langList, keepOpen: !0, open: v === "lang", onClose: () => ne("main") }), jr = xa(se, J.on), xi = d && jr.bed && dt && P && (!Ye || qe) ? ws(e.origin, P, e.cred) : null, zr = Ra(xi, { t: Jn(x, q), playing: x.playing && !tn && !(x.timed && x.preparing), muted: x.muted }), Di = d && jr.speech && dt && P && (!Ye || qe) ? ws(e.origin, P, e.cred, "speech") : null, On = si(Di, { t: Jn(x, q), playing: !J.on && x.playing, muted: x.muted }), Cn = !J.on && On.on;
5191
5190
  E(() => {
5192
5191
  var w;
5193
5192
  nt.setVideoSound(!(Fe && (J.on || Cn))), (w = We.silence) == null || w.call(We, !Fe && Cn);
5194
5193
  }, [Fe, J.on, Cn, qe]);
5195
- const xn = dt ? J.on ? jr : On.state : "unavailable", Dn = G && zn && !!oe, bi = Dn ? [`Translated${J.hasClone ? ke ? ", cloned voices" : ", synthetic voices" : ""}`, !se && dt && jr !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : se && xn !== "unavailable" ? "Original speech, background removed" : "Original sound", Si = () => {
5194
+ const xn = dt ? J.on ? zr : On.state : "unavailable", Dn = G && zn && !!oe, bi = Dn ? [`Translated${J.hasClone ? ke ? ", cloned voices" : ", synthetic voices" : ""}`, !se && dt && zr !== "unavailable" ? "with background sound" : null].filter(Boolean).join(" ") : se && xn !== "unavailable" ? "Original speech, background removed" : "Original sound", Si = () => {
5196
5195
  if ((Je == null ? void 0 : Je.kind) === "translateFailed") {
5197
5196
  De(oe);
5198
5197
  return;
5199
5198
  }
5200
- lt.current = !0, x.toggle();
5199
+ ot.current = !0, x.toggle();
5201
5200
  }, Ai = () => {
5202
5201
  const w = x.idx;
5203
- x.pause(), ae(null), lt.current = !0, Lt.playRow(w);
5204
- }, zr = { prevOn: x.idx > 0, nextOn: x.idx < q.length - 1, onPrev: x.prev, onNext: x.next, playing: x.playing, playable: wt, playTitle: J.playTitle ?? (x.playing ? "Pause" : "Play"), onPlay: () => {
5205
- lt.current = !0, x.toggle();
5202
+ x.pause(), ae(null), ot.current = !0, Lt.playRow(w);
5203
+ }, Ir = { prevOn: x.idx > 0, nextOn: x.idx < q.length - 1, onPrev: x.prev, onNext: x.next, playing: x.playing, playable: wt, playTitle: J.playTitle ?? (x.playing ? "Pause" : "Play"), onPlay: () => {
5204
+ ot.current = !0, x.toggle();
5206
5205
  }, busy: J.relang && !Ue || tn };
5207
- Wa(wt ? { playing: x.playing, toggle: () => {
5208
- lt.current = !0, x.toggle();
5206
+ Ga(wt ? { playing: x.playing, toggle: () => {
5207
+ ot.current = !0, x.toggle();
5209
5208
  }, next: x.next, prev: x.prev } : null, _e);
5210
5209
  const bn = { background: "transparent", color: "#eef0f8", width: 74, justifyContent: "center", boxSizing: "border-box" }, Sn = (w, me) => !Se.can || !A.language ? null : d ? /* @__PURE__ */ f("button", { type: "button", className: "gfull__btn", title: xt ? `${Se.label ?? Se.code}: still being prepared` : Se.label ?? Se.code, "aria-label": `Language: ${Se.label ?? Se.code}`, "aria-busy": xt || void 0, onClick: () => {
5211
5210
  b(!1), Se.onClick();
5212
5211
  }, style: { position: "relative" }, children: [
5213
5212
  /* @__PURE__ */ a("span", { style: { fontSize: me === "sm" ? 17 : 21, lineHeight: 1 }, children: Se.flag }),
5214
5213
  xt && /* @__PURE__ */ a("span", { style: { position: "absolute", right: 2, bottom: 2, display: "flex", borderRadius: 999, background: "rgba(5,6,21,.7)", padding: 1 }, children: /* @__PURE__ */ a(ct, { size: 11, color: "#eef0f8", track: "rgba(255,255,255,.25)" }) })
5215
- ] }) : /* @__PURE__ */ a(fn, { flag: Se.flag, code: Se.code, label: Se.label, bordered: !1, size: me, onClick: Se.onClick, style: w }), Ir = { on: !1, title: "Voices", onClick: () => {
5216
- } }, Or = Ue && /* @__PURE__ */ a(pl, { ytId: Ue, title: Ge, t: ji, playing: x.playing && !tn, waiting: J.on && !!x.timed && !!x.preparing, seekN: x.seekN, onTime: (w) => {
5214
+ ] }) : /* @__PURE__ */ a(fn, { flag: Se.flag, code: Se.code, label: Se.label, bordered: !1, size: me, onClick: Se.onClick, style: w }), Or = { on: !1, title: "Voices", onClick: () => {
5215
+ } }, Cr = Ue && /* @__PURE__ */ a(ml, { ytId: Ue, title: Ge, t: ji, playing: x.playing && !tn, waiting: J.on && !!x.timed && !!x.preparing, seekN: x.seekN, onTime: (w) => {
5217
5216
  var me, Re, Ze;
5218
5217
  return (Ze = x.videoAt) == null ? void 0 : Ze.call(x, w - (((Re = (me = n == null ? void 0 : n.job) == null ? void 0 : me.crop) == null ? void 0 : Re.startS) ?? 0));
5219
- }, onToggle: x.has ? Xt : void 0, onAd: wn, lead: Fe ? nt.lead : void 0 }), Cr = It && Ue && !$ ? /* @__PURE__ */ a(sl, { ytId: Ue, title: Ge, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: Or, children: /* @__PURE__ */ a(Hl, { pos: Lr, transport: zr, chip: Sn({ ...bn, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: Ir, onFull: () => {
5218
+ }, onToggle: x.has ? Xt : void 0, onAd: wn, lead: Fe ? nt.lead : void 0 }), xr = It && Ue && !$ ? /* @__PURE__ */ a(il, { ytId: Ue, title: Ge, radius: 14, large: !0, style: s ? void 0 : { margin: "8px 20px 2px" }, picture: Cr, children: /* @__PURE__ */ a(Vl, { pos: wr, transport: Ir, chip: Sn({ ...bn, width: 64, height: 28, minHeight: 28, padding: "0 8px" }, "sm"), voices: Or, onFull: () => {
5220
5219
  $t(!0), U(!0);
5221
- }, copied: null }) }) : null, Ke = x.wordSync ? Do(q, x.idx, x.t) ? q[x.idx] : void 0 : q[x.idx];
5220
+ }, copied: null }) }) : null, Ke = x.wordSync ? bo(q, x.idx, x.t) ? q[x.idx] : void 0 : q[x.idx];
5222
5221
  for (const w of q) for (const [me, Re] of Object.entries(w.translations)) Re && L.current.set(`${w.sentenceId ?? w.start}|${me}`, Re);
5223
- const xr = (w, me) => w.translations[me] || L.current.get(`${w.sentenceId ?? w.start}|${me}`) || null, An = (w, me) => !w || !me || w.language === me || !!xr(w, me), pt = An(Ke, oe) ? oe : An(Ke, Q.current) ? Q.current : oe;
5222
+ const Dr = (w, me) => w.translations[me] || L.current.get(`${w.sentenceId ?? w.start}|${me}`) || null, An = (w, me) => !w || !me || w.language === me || !!Dr(w, me), pt = An(Ke, oe) ? oe : An(Ke, Q.current) ? Q.current : oe;
5224
5223
  Ke && An(Ke, pt) && (Q.current = pt);
5225
- const Dr = Ke && pt && Ke.language !== pt ? xr(Ke, pt) : null, Ei = Ke && Dr && pt && !Ke.translations[pt] ? Object.assign([...q], { [x.idx]: { ...Ke, translations: { ...Ke.translations, [pt]: Dr } } }) : q, nn = Ke ? mi(Ei, x.idx, pt) : [], rn = pe ? pe === "on" : !d || J.on || !zt || zt === ee, br = rn ? _s(x, x.idx, nn) : null, Sr = nn.map((w, me) => ({ t: w.text, sp: me < nn.length - 1 ? " " : "", dim: br != null && me > br })), sn = re ? re === "on" : d ? !1 : oo(Z, q, Me == null ? void 0 : Me.settings), Ar = { lang: oe, subtitles: xe, speakerLabels: sn, wordHighlight: rn, translateAudio: G, voices: ke ? "cloned" : "synthetic", removeBackground: se }, Yi = JSON.stringify(Ar), an = z(t.onSettingsChange);
5224
+ const br = Ke && pt && Ke.language !== pt ? Dr(Ke, pt) : null, Ei = Ke && br && pt && !Ke.translations[pt] ? Object.assign([...q], { [x.idx]: { ...Ke, translations: { ...Ke.translations, [pt]: br } } }) : q, nn = Ke ? mi(Ei, x.idx, pt) : [], rn = pe ? pe === "on" : !d || J.on || !zt || zt === ee, Sr = rn ? Us(x, x.idx, nn) : null, Ar = nn.map((w, me) => ({ t: w.text, sp: me < nn.length - 1 ? " " : "", dim: Sr != null && me > Sr })), sn = re ? re === "on" : d ? !1 : lo(Z, q, Me == null ? void 0 : Me.settings), Er = { lang: oe, subtitles: xe, speakerLabels: sn, wordHighlight: rn, translateAudio: G, voices: ke ? "cloned" : "synthetic", removeBackground: se }, Yi = JSON.stringify(Er), an = z(t.onSettingsChange);
5226
5225
  an.current = t.onSettingsChange, E(() => {
5227
5226
  var w;
5228
- (w = an.current) == null || w.call(an, Ar);
5227
+ (w = an.current) == null || w.call(an, Er);
5229
5228
  }, [Yi]);
5230
- const on = Ke && Ke.speaker >= 0 && sn ? fr(Z, Ke.speaker) : null, [_i, Er] = O(!1), [En, Yr] = O(null), [Ui, _r] = O(null), Yn = z(void 0);
5229
+ const on = Ke && Ke.speaker >= 0 && sn ? Nr(Z, Ke.speaker) : null, [_i, Yr] = O(!1), [En, _r] = O(null), [Ui, Ur] = O(null), Yn = z(void 0);
5231
5230
  E(() => () => window.clearTimeout(Yn.current), []);
5232
5231
  const _n = z(void 0);
5233
5232
  E(() => () => window.clearTimeout(_n.current), []);
5234
- const Ur = (w) => {
5233
+ const Rr = (w) => {
5235
5234
  if (t.shareUrl) return t.shareUrl(w);
5236
5235
  const me = new URL(window.location.href);
5237
5236
  return w != null && w > 0 ? me.searchParams.set("t", String(w)) : me.searchParams.delete("t"), me.href;
5238
- }, Un = z(l.startAt), Rr = (w) => {
5237
+ }, Un = z(l.startAt), Pr = (w) => {
5239
5238
  if (x.seekFrac && x.dur > 0) {
5240
5239
  x.seekFrac(Math.min(1, w / x.dur));
5241
5240
  return;
@@ -5243,30 +5242,30 @@ function gc(t) {
5243
5242
  let me = 0;
5244
5243
  for (let Re = 0; Re < q.length; Re++) q[Re].start <= w && (me = Re);
5245
5244
  x.seekRow(me);
5246
- }, Pr = z(!1);
5245
+ }, Qr = z(!1);
5247
5246
  E(() => {
5248
5247
  const w = Un.current;
5249
- w == null || Pr.current || !x.has || q.length === 0 || (Pr.current = !0, Rr(w));
5248
+ w == null || Qr.current || !x.has || q.length === 0 || (Qr.current = !0, Pr(w));
5250
5249
  }, [x.has, q.length]), E(() => {
5251
5250
  const w = Un.current;
5252
- w == null || !x.playing || (Un.current = null, Math.abs(x.t - w) > 2 && Rr(w));
5251
+ w == null || !x.playing || (Un.current = null, Math.abs(x.t - w) > 2 && Pr(w));
5253
5252
  }, [x.playing]);
5254
- const Ri = () => Ni(Ur(null), Ge, () => {
5255
- window.clearTimeout(_n.current), Er(!0), _n.current = window.setTimeout(() => Er(!1), 2200);
5256
- }), Qr = (w, me, Re) => {
5257
- const Ze = ar.find((Wi) => Wi.key === w), Hn = En === w, ms = Ui === w;
5253
+ const Ri = () => Ni(Rr(null), Ge, () => {
5254
+ window.clearTimeout(_n.current), Yr(!0), _n.current = window.setTimeout(() => Yr(!1), 2200);
5255
+ }), $r = (w, me, Re) => {
5256
+ const Ze = ar.find((Wi) => Wi.key === w), Hn = En === w, ys = Ui === w;
5258
5257
  return /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", "aria-busy": Hn || void 0, style: En && !Hn ? { opacity: 0.45, pointerEvents: "none" } : void 0, onClick: () => {
5259
- En || (Yr(w), Promise.resolve().then(() => bt(w)).then(() => {
5260
- _r(w), window.clearTimeout(Yn.current), Yn.current = window.setTimeout(() => _r(null), 1600);
5258
+ En || (_r(w), Promise.resolve().then(() => bt(w)).then(() => {
5259
+ Ur(w), window.clearTimeout(Yn.current), Yn.current = window.setTimeout(() => Ur(null), 1600);
5261
5260
  }).catch(() => {
5262
- }).finally(() => Yr(null)));
5261
+ }).finally(() => _r(null)));
5263
5262
  }, children: [
5264
5263
  Hn ? /* @__PURE__ */ a(ct, { size: 17, color: "var(--brand)", track: "var(--fill-12)" }) : /* @__PURE__ */ a(ue, { d: Ze.icon, size: 17, sw: 1.5, style: { flex: "none", color: "var(--ink-70)" } }),
5265
5264
  /* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
5266
5265
  /* @__PURE__ */ a("div", { className: "srow__t", children: me }),
5267
5266
  /* @__PURE__ */ a("div", { className: "srow__s", children: Re })
5268
5267
  ] }),
5269
- /* @__PURE__ */ a(ue, { d: ms ? K.check : K.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: ms ? "var(--brand)" : "var(--ink-62)" } })
5268
+ /* @__PURE__ */ a(ue, { d: ys ? K.check : K.downloaded, size: 17, sw: 1.6, style: { flex: "none", color: ys ? "var(--brand)" : "var(--ink-62)" } })
5270
5269
  ] });
5271
5270
  }, Pi = /* @__PURE__ */ f("span", { className: "vs-sheet__title", style: { position: "relative" }, children: [
5272
5271
  " ",
@@ -5275,8 +5274,8 @@ function gc(t) {
5275
5274
  "Back"
5276
5275
  ] })
5277
5276
  ] }), ln = /* @__PURE__ */ a(ue, { d: K.chevronRight, size: 17, sw: 1.6, style: { flex: "none", color: "var(--ink-45)" } }), Qi = { main: "SETTINGS", lang: "LANGUAGE", subs: "SUBTITLES", audio: "AUDIO", export: "EXPORT" }[v], cn = { display: "flex", flexDirection: "column", gap: 2, paddingBottom: 14 }, Rn = d ? /* @__PURE__ */ a(Nn, { open: I, onClose: () => b(!1), title: Qi, titleNode: v === "main" ? void 0 : Pi, doneLabel: Et.done, kind: v === "main" ? "settings" : "settings vs-sheet--page", sticky: !0, children: /* @__PURE__ */ a(la, { children: v === "lang" ? /* @__PURE__ */ f("div", { style: { display: "flex", flexDirection: "column" }, children: [
5278
- /* @__PURE__ */ a("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: kr.search }),
5279
- kr.list
5277
+ /* @__PURE__ */ a("div", { style: { position: "sticky", top: 0, zIndex: 1, padding: "4px 14px 10px", background: "var(--vs-surface-raised)" }, children: vr.search }),
5278
+ vr.list
5280
5279
  ] }) : v === "subs" ? /* @__PURE__ */ f("div", { style: cn, children: [
5281
5280
  /* @__PURE__ */ f("div", { className: "srow", children: [
5282
5281
  /* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
@@ -5312,18 +5311,18 @@ function gc(t) {
5312
5311
  /* @__PURE__ */ a("div", { className: "srow__t", children: "Voices" }),
5313
5312
  /* @__PURE__ */ a("div", { className: "srow__s", children: ke ? "Each speaker in their own cloned voice" : "Synthetic voices matched to each speaker" })
5314
5313
  ] }),
5315
- /* @__PURE__ */ a(Ts, { value: ke ? "clone" : "stock", onChange: (w) => Ae(w === "clone"), size: "sm", options: [{ value: "stock", label: "Synthetic" }, { value: "clone", label: "Cloned" }] })
5314
+ /* @__PURE__ */ a(Ls, { value: ke ? "clone" : "stock", onChange: (w) => Ae(w === "clone"), size: "sm", options: [{ value: "stock", label: "Synthetic" }, { value: "clone", label: "Cloned" }] })
5316
5315
  ] }),
5317
5316
  /* @__PURE__ */ f("div", { className: "srow", children: [
5318
5317
  /* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
5319
- /* @__PURE__ */ a("div", { className: "srow__t", children: vs }),
5318
+ /* @__PURE__ */ a("div", { className: "srow__t", children: js }),
5320
5319
  /* @__PURE__ */ a("div", { className: "srow__s", children: Ca(se, xn, "video", J.on ? 0 : On.untilS) })
5321
5320
  ] }),
5322
- /* @__PURE__ */ a(Pt, { checked: se && dt, onChange: le, label: vs, disabled: !dt || xn === "unavailable" && !se })
5321
+ /* @__PURE__ */ a(Pt, { checked: se && dt, onChange: le, label: js, disabled: !dt || xn === "unavailable" && !se })
5323
5322
  ] })
5324
5323
  ] }) : v === "export" ? /* @__PURE__ */ f("div", { style: cn, children: [
5325
- Qr("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
5326
- Qr("pdf", "PDF", "Formatted transcript in paragraphs, with timestamps and speaker labels")
5324
+ $r("srt", "Subtitles", "SRT / VTT caption cues, ready for a video editor or a player"),
5325
+ $r("pdf", "PDF", "Formatted transcript in paragraphs, with timestamps and speaker labels")
5327
5326
  ] }) : /* @__PURE__ */ a("div", { style: cn, children: [
5328
5327
  Se.can && A.language && /* @__PURE__ */ f("div", { className: "srow srow--tap", role: "button", onClick: () => ne("lang"), children: [
5329
5328
  /* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
@@ -5351,7 +5350,7 @@ function gc(t) {
5351
5350
  /* @__PURE__ */ f("div", { style: { flex: 1, minWidth: 0 }, children: [
5352
5351
  /* @__PURE__ */ f("div", { className: "srow__t", children: [
5353
5352
  "Export",
5354
- ot ? ` in ${ot}` : ""
5353
+ lt ? ` in ${lt}` : ""
5355
5354
  ] }),
5356
5355
  /* @__PURE__ */ a("div", { className: "srow__s", children: "Subtitles (SRT / VTT) or a PDF of the transcript" })
5357
5356
  ] }),
@@ -5374,41 +5373,41 @@ function gc(t) {
5374
5373
  ] }),
5375
5374
  t.settingsExtra
5376
5375
  ] }) }), kt = $ && It && Ue && /* @__PURE__ */ a(
5377
- Fl,
5376
+ Wl,
5378
5377
  {
5379
5378
  page: (t.layout ?? "embed") === "page",
5380
- picture: Or,
5379
+ picture: Cr,
5381
5380
  title: Ge,
5382
5381
  desk: s,
5383
- pos: Lr,
5382
+ pos: wr,
5384
5383
  mute: { muted: x.muted, onToggle: Jt },
5385
5384
  cc: A.subtitles ? { on: xe, onToggle: () => Qe((w) => !w) } : void 0,
5386
5385
  noFull: !A.fullscreen,
5387
5386
  ad: Ln,
5388
- wait: Je && !In ? /* @__PURE__ */ a(Xl, { state: Je, line: tn ? Sr.map((w) => w.t + w.sp).join("") : null, onRetry: Si, onOriginal: Ai }) : x.edgeWait ? `Transcribing ${Math.round(_)}% — it plays on as more is written` : null,
5387
+ wait: Je && !In ? /* @__PURE__ */ a(ec, { state: Je, line: tn ? Ar.map((w) => w.t + w.sp).join("") : null, onRetry: Si, onOriginal: Ai }) : x.edgeWait ? `Transcribing ${Math.round(_)}% — it plays on as more is written` : null,
5389
5388
  pct: Ye ? Math.round(_) : null,
5390
- sub: xe && Ke ? { who: on ? hr(Z, Ke.speaker) : null, color: on ? on.fg ?? `var(--lane-${on.lane})` : "#fff", words: Sr, cursor: _s(x, x.idx, nn) } : null,
5389
+ sub: xe && Ke ? { who: on ? fr(Z, Ke.speaker) : null, color: on ? on.fg ?? `var(--lane-${on.lane})` : "#fff", words: Ar, cursor: Us(x, x.idx, nn) } : null,
5391
5390
  chip: Sn(s ? bn : { ...bn, width: 64, padding: "0 6px" }, s ? void 0 : "sm"),
5392
- transport: zr,
5391
+ transport: Ir,
5393
5392
  picker: J.sheets,
5394
5393
  sheet: d ? Rn : null,
5395
5394
  voices: null,
5396
- voicesBtn: d ? null : Ir,
5395
+ voicesBtn: d ? null : Or,
5397
5396
  sheetOpen: J.sheetsOpen || I,
5398
5397
  onShare: d && A.share ? Ri : void 0,
5399
5398
  onSettings: d && A.settings ? () => {
5400
5399
  J.closePicker(), b((w) => !w);
5401
5400
  } : void 0,
5402
- paused: { title: Ge, summary: kn.state === "ready" ? kn.summary ?? null : null, share: { url: Ur, at: x.t } },
5401
+ paused: { title: Ge, summary: kn.state === "ready" ? kn.summary ?? null : null, share: { url: Rr, at: x.t } },
5403
5402
  copied: _i ? /* @__PURE__ */ f("div", { className: "gfull__toast", "aria-live": "polite", children: [
5404
5403
  /* @__PURE__ */ a(ue, { d: K.check, size: 13, sw: 2 }),
5405
5404
  "Link copied"
5406
5405
  ] }) : qt ? /* @__PURE__ */ f("div", { className: "gfull__toast gfull__soundtip", "aria-live": "polite", children: [
5407
5406
  /* @__PURE__ */ a(ue, { d: K.volumeOff, size: 14, sw: 1.8 }),
5408
5407
  "Tap for sound"
5409
- ] }) : wr ? /* @__PURE__ */ f("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
5408
+ ] }) : kr ? /* @__PURE__ */ f("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
5410
5409
  /* @__PURE__ */ a(ct, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
5411
- wr
5410
+ kr
5412
5411
  ] }) : J.on && (Fe ? rt.missing != null : x.silent) ? /* @__PURE__ */ f("div", { className: "gfull__toast", role: "status", "aria-live": "polite", children: [
5413
5412
  /* @__PURE__ */ a(ct, { size: 13, color: "#eef0f8", track: "rgba(255,255,255,.25)" }),
5414
5413
  `${en || "Translated"} voice is still being prepared · playing with subtitles`
@@ -5424,7 +5423,7 @@ function gc(t) {
5424
5423
  E(() => {
5425
5424
  !d && $ && !It && ($t(!1), U(!1));
5426
5425
  }, [d, $, It]);
5427
- const $r = Ye && /* @__PURE__ */ f("div", { className: `pubprog${s ? " pubprog--desk" : ""}${j ? " pubprog--find" : ""}`, children: [
5426
+ const Br = Ye && /* @__PURE__ */ f("div", { className: `pubprog${s ? " pubprog--desk" : ""}${j ? " pubprog--find" : ""}`, children: [
5428
5427
  /* @__PURE__ */ f("div", { className: "pubprog__row", children: [
5429
5428
  /* @__PURE__ */ a("span", { className: "l", children: `TRANSCRIBING ${_}%` }),
5430
5429
  !s && /* @__PURE__ */ a("div", { style: { flex: 1 } }),
@@ -5432,42 +5431,42 @@ function gc(t) {
5432
5431
  /* @__PURE__ */ a("span", { className: "s", children: Rt })
5433
5432
  ] }),
5434
5433
  !s && /* @__PURE__ */ a("div", { className: "pubprog__bar", style: { marginTop: 8 }, children: /* @__PURE__ */ a("div", { style: { width: `${_}%` } }) })
5435
- ] }), Pn = r && /* @__PURE__ */ a("div", { className: "hint", style: { padding: "30px 20px", textAlign: "center", fontSize: 13 }, children: "This link is no longer shared. Ask the person who sent it for a new one." }), Br = /* @__PURE__ */ a(Sl, { model: Z, rows: q, player: x, tail: it, tailFg: Gt, running: Ye, desk: s, feedRef: jt, listener: !0, showLabels: sn, find: N, findOpen: !s && j, lang: zt, warm: Be, onVisible: ki, wordHl: rn }), Qn = /* @__PURE__ */ a(Eo, { error: g ?? de ?? (jn && $ ? null : x.error) ?? J.error, onClose: () => {
5434
+ ] }), Pn = r && /* @__PURE__ */ a("div", { className: "hint", style: { padding: "30px 20px", textAlign: "center", fontSize: 13 }, children: "This link is no longer shared. Ask the person who sent it for a new one." }), Hr = /* @__PURE__ */ a(Al, { model: Z, rows: q, player: x, tail: st, tailFg: Gt, running: Ye, desk: s, feedRef: jt, listener: !0, showLabels: sn, find: N, findOpen: !s && j, lang: zt, warm: Be, onVisible: ki, wordHl: rn }), Qn = /* @__PURE__ */ a(Yo, { error: g ?? de ?? (jn && $ ? null : x.error) ?? J.error, onClose: () => {
5436
5435
  M(null), W(), x.clearError(), J.clearError();
5437
- } }), Hr = [B ? mt(B) : null, ee ? ee.toUpperCase() : null, ie || "Read-only copy"].filter(Boolean).join(" · "), Vr = (w) => /* @__PURE__ */ a("div", { className: "ctrans", children: J.noVoice ? J.noVoiceNote : /* @__PURE__ */ f(Pe, { children: [
5436
+ } }), Vr = [B ? mt(B) : null, ee ? ee.toUpperCase() : null, ie || "Read-only copy"].filter(Boolean).join(" · "), Fr = (w) => /* @__PURE__ */ a("div", { className: "ctrans", children: J.noVoice ? J.noVoiceNote : /* @__PURE__ */ f(Pe, { children: [
5438
5437
  /* @__PURE__ */ f("div", { className: "ctrans__row", children: [
5439
5438
  /* @__PURE__ */ a("span", { className: "ctrans__sp", "aria-hidden": "true" }),
5440
5439
  /* @__PURE__ */ f("div", { className: "ctrans__mid", children: [
5441
5440
  /* @__PURE__ */ a("button", { type: "button", className: "ctrans__step", "aria-label": "Previous segment", title: "Previous segment", style: { opacity: x.idx <= 0 ? 0.3 : 1 }, onClick: x.prev, children: /* @__PURE__ */ a(ue, { d: K.chevronLeft, size: 16, sw: 1.8 }) }),
5442
- /* @__PURE__ */ a("button", { type: "button", className: "ctrans__play", "aria-label": J.relang ? "Preparing audio" : x.playing ? "Pause" : "Play", title: J.relang ? "Preparing audio…" : J.playTitle ?? (x.playing ? "Pause" : "Play"), disabled: !wt, onClick: x.toggle, children: J.relang ? /* @__PURE__ */ a("span", { className: "ctrans__spin" }) : /* @__PURE__ */ a("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: x.playing ? void 0 : { marginLeft: 2 }, children: x.playing ? ml : yl }) }),
5441
+ /* @__PURE__ */ a("button", { type: "button", className: "ctrans__play", "aria-label": J.relang ? "Preparing audio" : x.playing ? "Pause" : "Play", title: J.relang ? "Preparing audio…" : J.playTitle ?? (x.playing ? "Pause" : "Play"), disabled: !wt, onClick: x.toggle, children: J.relang ? /* @__PURE__ */ a("span", { className: "ctrans__spin" }) : /* @__PURE__ */ a("svg", { viewBox: "0 0 24 24", width: 16, height: 16, fill: "currentColor", "aria-hidden": "true", style: x.playing ? void 0 : { marginLeft: 2 }, children: x.playing ? yl : Tl }) }),
5443
5442
  /* @__PURE__ */ a("button", { type: "button", className: "ctrans__step", "aria-label": "Next segment", title: "Next segment", style: { opacity: x.idx >= q.length - 1 ? 0.3 : 1 }, onClick: x.next, children: /* @__PURE__ */ a(ue, { d: K.chevronRight, size: 16, sw: 1.8 }) })
5444
5443
  ] }),
5445
- /* @__PURE__ */ a("span", { className: "ctrans__mute", children: F(36) })
5444
+ /* @__PURE__ */ a("span", { className: "ctrans__mute", children: H(36) })
5446
5445
  ] }),
5447
5446
  /* @__PURE__ */ a("div", { className: "ctrans__scrub", children: Ii(w) })
5448
- ] }) }), $i = ol("ga", { tabs: Yt, cur: p, pref: (ps = Yt[0]) == null ? void 0 : ps.key, onPick: y }), Fr = Math.max(0, Math.min(100, Math.round(_))), Bi = Y && /* @__PURE__ */ f("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
5447
+ ] }) }), $i = ll("ga", { tabs: Yt, cur: p, pref: (ms = Yt[0]) == null ? void 0 : ms.key, onPick: y }), Wr = Math.max(0, Math.min(100, Math.round(_))), Bi = Y && /* @__PURE__ */ f("div", { className: "gfull gfull--hold", "data-theme": "dark", role: "status", "aria-live": "polite", children: [
5449
5448
  Ue && /* @__PURE__ */ a("div", { className: "gfull__holdbg", style: { backgroundImage: `url(https://i.ytimg.com/vi/${Ue}/hqdefault.jpg)` } }),
5450
5449
  /* @__PURE__ */ a("div", { className: "gfull__hold", children: n ? /* @__PURE__ */ f(Pe, { children: [
5451
5450
  Ge && /* @__PURE__ */ a("div", { className: "gfull__holdt", children: Ge }),
5452
- /* @__PURE__ */ a("div", { className: "gfull__holdpct", children: Oe === "transcribing" ? `${Fr}%` : /* @__PURE__ */ a("span", { className: "gfull__spin gfull__holdspin" }) }),
5453
- /* @__PURE__ */ a("div", { className: "gfull__holdbar", children: /* @__PURE__ */ a("div", { style: { width: `${Oe === "transcribing" ? Fr : 0}%` } }) }),
5451
+ /* @__PURE__ */ a("div", { className: "gfull__holdpct", children: Ie === "transcribing" ? `${Wr}%` : /* @__PURE__ */ a("span", { className: "gfull__spin gfull__holdspin" }) }),
5452
+ /* @__PURE__ */ a("div", { className: "gfull__holdbar", children: /* @__PURE__ */ a("div", { style: { width: `${Ie === "transcribing" ? Wr : 0}%` } }) }),
5454
5453
  /* @__PURE__ */ f("div", { className: "gfull__holds", children: [
5455
- Oe === "transcribing" ? "Transcribing" : Oe === "cropping" ? "Preparing the video" : "Waiting to start",
5456
- Oe === "transcribing" && (ye != null && ye.segmentsDone) ? ` · ${Rt.toLowerCase()}` : ""
5454
+ Ie === "transcribing" ? "Transcribing" : Ie === "cropping" ? "Preparing the video" : "Waiting to start",
5455
+ Ie === "transcribing" && (ye != null && ye.segmentsDone) ? ` · ${Rt.toLowerCase()}` : ""
5457
5456
  ] }),
5458
5457
  /* @__PURE__ */ a("div", { className: "gfull__holdn", children: "The video starts as soon as the first lines are transcribed." })
5459
5458
  ] }) : /* @__PURE__ */ a("span", { className: "gfull__spin gfull__holdspin", "aria-label": "Loading" }) })
5460
- ] }), Wr = d && n && (Ye || Oe === "cropping") ? Math.max(0, Math.min(100, Math.round(_))) : null, un = z(t.onProgress);
5459
+ ] }), Gr = d && n && (Ye || Ie === "cropping") ? Math.max(0, Math.min(100, Math.round(_))) : null, un = z(t.onProgress);
5461
5460
  un.current = t.onProgress, E(() => {
5462
5461
  var w;
5463
- (w = un.current) == null || w.call(un, Wr);
5464
- }, [Wr]);
5462
+ (w = un.current) == null || w.call(un, Gr);
5463
+ }, [Gr]);
5465
5464
  const [Hi, $n] = O(!1), Bn = !!kt && !Y && (Fe ? !!x.ended : !x.playing && x.dur > 0 && x.t >= x.dur - 0.5);
5466
5465
  E(() => {
5467
5466
  Bn || $n(!1);
5468
5467
  }, [Bn]);
5469
- const Vi = t.endCard !== !1 && Bn && !Hi && /* @__PURE__ */ a(ac, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => $n(!0), onReplay: () => {
5470
- $n(!0), lt.current = !0, x.seekFrac ? x.seekFrac(0) : x.seekRow(0), x.playing || x.toggle();
5468
+ const Vi = t.endCard !== !1 && Bn && !Hi && /* @__PURE__ */ a(oc, { options: { appUrl: t.appUrl, ...t.endCard || {} }, onStarted: t.onStarted, onClose: () => $n(!0), onReplay: () => {
5469
+ $n(!0), ot.current = !0, x.seekFrac ? x.seekFrac(0) : x.seekRow(0), x.playing || x.toggle();
5471
5470
  } });
5472
5471
  if (d) return /* @__PURE__ */ f(Pe, { children: [
5473
5472
  r ? /* @__PURE__ */ a("div", { className: "gfull", "data-theme": "dark", children: Pn }) : Bi || kt || /* @__PURE__ */ a("div", { className: "gfull", "data-theme": "dark" }),
@@ -5475,14 +5474,14 @@ function gc(t) {
5475
5474
  Qn
5476
5475
  ] });
5477
5476
  if (s) {
5478
- const w = vn && !It && !r && /* @__PURE__ */ a("div", { className: "pubdeskctl", children: Vr(!0) }), me = !r && (Yt.length > 0 || It || !!J.sidePanel || !!w);
5477
+ const w = vn && !It && !r && /* @__PURE__ */ a("div", { className: "pubdeskctl", children: Fr(!0) }), me = !r && (Yt.length > 0 || It || !!J.sidePanel || !!w);
5479
5478
  return /* @__PURE__ */ f(Pe, { children: [
5480
5479
  /* @__PURE__ */ a("div", { className: "dhead dhead--listener dhead--cols", children: /* @__PURE__ */ f("div", { className: "gcolhead", children: [
5481
5480
  /* @__PURE__ */ a("div", { className: "gcolhead__main", children: /* @__PURE__ */ f("div", { className: "gcolhead__col", children: [
5482
5481
  /* @__PURE__ */ a("div", { style: { flex: "none" }, children: /* @__PURE__ */ a(Vt, { dark: i, height: 20.38 }) }),
5483
5482
  !r && /* @__PURE__ */ f("div", { className: "dhead__session", children: [
5484
5483
  /* @__PURE__ */ a("span", { className: "t", children: n ? Ge : "" }),
5485
- /* @__PURE__ */ a("span", { className: "s", children: n ? Hr : "" })
5484
+ /* @__PURE__ */ a("span", { className: "s", children: n ? Vr : "" })
5486
5485
  ] })
5487
5486
  ] }) }),
5488
5487
  me && /* @__PURE__ */ a("div", { className: "gcolhead__side" })
@@ -5491,18 +5490,18 @@ function gc(t) {
5491
5490
  /* @__PURE__ */ f("div", { className: "listenerlive__main", children: [
5492
5491
  Pn,
5493
5492
  !r && Wt,
5494
- $r,
5493
+ Br,
5495
5494
  C && /* @__PURE__ */ a("div", { className: "pubflash", children: C }),
5496
- !r && /* @__PURE__ */ a("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children: Br }),
5495
+ !r && /* @__PURE__ */ a("div", { className: "listenerlive__inner", style: { flex: 1, minHeight: 0, display: "flex", flexDirection: "column", marginTop: 6 }, children: Hr }),
5497
5496
  !r && /* @__PURE__ */ f("div", { className: "listenerlive__inner gdeskbar", "data-transport": "1", children: [
5498
5497
  Se.can && /* @__PURE__ */ a("span", { className: "barchip", style: Se.active ? { background: "var(--brand-tint)", boxShadow: "0 0 0 1.5px var(--brand)", borderRadius: 12 } : void 0, children: /* @__PURE__ */ a(fn, { flag: Se.flag, code: Se.code, label: Se.label, bordered: !1, onClick: Se.onClick }) }),
5499
- yr
5498
+ Tr
5500
5499
  ] })
5501
5500
  ] }),
5502
- me && /* @__PURE__ */ f(ul, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
5501
+ me && /* @__PURE__ */ f(dl, { id: "ga", className: "listenerside", gap: 20, plain: !0, children: [
5503
5502
  !J.sidePanel && w,
5504
- !J.sidePanel && Cr,
5505
- !J.sidePanel && Yt.length > 0 && /* @__PURE__ */ a("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ a(ll, { col: $i, order: ["summary", "export"], onPick: y, grip: { summary: 40, export: 28 }, render: (Re) => /* @__PURE__ */ a(ys, { panel: !0, children: Tr(Re) }) }) }),
5503
+ !J.sidePanel && xr,
5504
+ !J.sidePanel && Yt.length > 0 && /* @__PURE__ */ a("div", { "data-panel-grid": "", className: "listenerside__panels", children: /* @__PURE__ */ a(cl, { col: $i, order: ["summary", "export"], onPick: y, grip: { summary: 40, export: 28 }, render: (Re) => /* @__PURE__ */ a(Ts, { panel: !0, children: Lr(Re) }) }) }),
5506
5505
  J.sidePanel
5507
5506
  ] })
5508
5507
  ] }),
@@ -5512,26 +5511,26 @@ function gc(t) {
5512
5511
  Qn
5513
5512
  ] });
5514
5513
  }
5515
- const Fi = Yt.length > 0 && !j && /* @__PURE__ */ a("div", { className: "txwidget", children: /* @__PURE__ */ f(ys, { panel: !0, children: [
5514
+ const Fi = Yt.length > 0 && !j && /* @__PURE__ */ a("div", { className: "txwidget", children: /* @__PURE__ */ f(Ts, { panel: !0, children: [
5516
5515
  /* @__PURE__ */ a(fi, { tabs: Yt, current: p, onPick: y, gap: p !== "none" }),
5517
- p !== "none" && Tr(p)
5516
+ p !== "none" && Lr(p)
5518
5517
  ] }) });
5519
5518
  return /* @__PURE__ */ f(Pe, { children: [
5520
- /* @__PURE__ */ a(Wl, { dark: i, title: n ? Ge : "", subline: n ? Hr : "", onOptions: () => b(!0), optionsActive: I }),
5519
+ /* @__PURE__ */ a(Gl, { dark: i, title: n ? Ge : "", subline: n ? Vr : "", onOptions: () => b(!0), optionsActive: I }),
5521
5520
  Pn,
5522
- $r,
5521
+ Br,
5523
5522
  !r && Fi,
5524
- !r && Cr,
5523
+ !r && xr,
5525
5524
  !r && /* @__PURE__ */ f("div", { style: { position: "relative", flex: 1, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
5526
5525
  Wt,
5527
- Br,
5526
+ Hr,
5528
5527
  C && /* @__PURE__ */ a("div", { className: "txflash", children: C })
5529
5528
  ] }),
5530
5529
  !r && /* @__PURE__ */ f("div", { className: "gbottom", "data-transport": "1", children: [
5531
- vn && !It && /* @__PURE__ */ a("div", { className: "pubctl", children: Vr(!1) }),
5530
+ vn && !It && /* @__PURE__ */ a("div", { className: "pubctl", children: Fr(!1) }),
5532
5531
  /* @__PURE__ */ f("div", { className: "gbottom__bar", children: [
5533
5532
  Se.can && /* @__PURE__ */ a("div", { style: { flex: "none" }, children: Sn({ width: 87 }, void 0) }),
5534
- /* @__PURE__ */ a("div", { style: { flex: 1, minWidth: 0 }, children: yr })
5533
+ /* @__PURE__ */ a("div", { style: { flex: 1, minWidth: 0 }, children: Tr })
5535
5534
  ] })
5536
5535
  ] }),
5537
5536
  !kt && J.sheets,
@@ -5541,27 +5540,27 @@ function gc(t) {
5541
5540
  ] });
5542
5541
  }
5543
5542
  export {
5544
- el as ExportPanel,
5545
- Fl as FullVideo,
5546
- Hl as MiniPlayer,
5547
- Tl as MuteButton,
5548
- Cl as NO_SEEK,
5549
- ml as PAUSE_D,
5550
- yl as PLAY_D,
5551
- Dl as PUB_SIDE,
5552
- wc as PanelSeek,
5553
- co as PlayerApiProvider,
5554
- vs as REMOVE_BG_LABEL,
5543
+ tl as ExportPanel,
5544
+ Wl as FullVideo,
5545
+ Vl as MiniPlayer,
5546
+ Ll as MuteButton,
5547
+ xl as NO_SEEK,
5548
+ yl as PAUSE_D,
5549
+ Tl as PLAY_D,
5550
+ bl as PUB_SIDE,
5551
+ kc as PanelSeek,
5552
+ uo as PlayerApiProvider,
5553
+ js as REMOVE_BG_LABEL,
5555
5554
  Ia as REMOVE_BG_NOTE,
5556
- Yo as ReplayScrub,
5557
- Ho as SpeakerCast,
5558
- rl as SummaryPanel,
5559
- Lc as Transport,
5560
- Al as TxFind,
5561
- Sl as TxLines,
5562
- kc as VocalStackPlayer,
5563
- Vo as VoiceSheetBody,
5564
- pl as YtFollow,
5555
+ _o as ReplayScrub,
5556
+ Vo as SpeakerCast,
5557
+ sl as SummaryPanel,
5558
+ wc as Transport,
5559
+ El as TxFind,
5560
+ Al as TxLines,
5561
+ vc as VocalStackPlayer,
5562
+ Fo as VoiceSheetBody,
5563
+ ml as YtFollow,
5565
5564
  Ca as bedNote,
5566
5565
  $t as browserFull,
5567
5566
  Ot as lineEnd,
@@ -5569,25 +5568,25 @@ export {
5569
5568
  Jn as pictureT,
5570
5569
  gn as placePosition,
5571
5570
  hn as realFull,
5572
- Tc as setErrorReporter,
5573
- Rs as setFullTarget,
5574
- Nl as snapPosition,
5575
- _s as spokenWordOf,
5571
+ Lc as setErrorReporter,
5572
+ Ps as setFullTarget,
5573
+ pl as snapPosition,
5574
+ Us as spokenWordOf,
5576
5575
  xa as trackPlan,
5577
5576
  ci as useApi,
5578
- qo as useArchiveVoice,
5577
+ Ko as useArchiveVoice,
5579
5578
  Ra as useBackgroundBed,
5580
- jl as useDuck,
5581
- El as useFindPull,
5582
- Ll as useFlash,
5579
+ zl as useDuck,
5580
+ Yl as useFindPull,
5581
+ wl as useFlash,
5583
5582
  Ct as usePlayerApi,
5584
- ri as useSeparatedTrack,
5585
- tl as useSummaryIn,
5586
- wo as useTranscript,
5587
- Il as useTxPlayer,
5588
- bl as useTxVoice,
5589
- Po as useViewportTranslation,
5590
- Go as useVoiceCatalogue,
5591
- zl as useYtLead
5583
+ si as useSeparatedTrack,
5584
+ nl as useSummaryIn,
5585
+ ko as useTranscript,
5586
+ Ol as useTxPlayer,
5587
+ Sl as useTxVoice,
5588
+ Qo as useViewportTranslation,
5589
+ Zo as useVoiceCatalogue,
5590
+ Il as useYtLead
5592
5591
  };
5593
5592
  //# sourceMappingURL=index.js.map